- •1. Завдання апаратного захисту
- •2. Підтримка керування пам'яттю
- •2.1. Віртуальні адреси
- •2.2. Віртуальна пам'ять
- •1. Завдання апаратного захисту
- •2. Підтримка керування пам'яттю
- •2.1. Віртуальні адреси
- •2.2. Віртуальна пам'ять
- •2.3. Трансляція адрес
- •3. Підтримка керування процесами
- •4. Особливості архітектури процесорів Intel х86
- •4.1. Регістри процесорів х86
- •4.2. Селектори та дескриптори сегментів і сторінок
- •5. Керування оперативною пам'яттю
- •5.1. Сегментний розподіл пам'яті
- •10. Порівнюються cpl, rpl і dpl:
- •5.2. Сегментно-сторінковий розподіл пам'яті
- •6. Керування задачами
- •6.1. Виклик процедур
- •6.2. Виклик задач
- •6.3. Привілейовані команди
Л_6!!!
Захист інформації на рівні операційної системи
Апаратне забезпечення засобів захисту
+ Керування пам'яттю: віртуальна пам'ять і трансляція адрес
Захист сегментів і сторінок пам'яті
Керування процесами (задачами)
Реалізація функцій захисту в процесорах Intel х86
1. Завдання апаратного захисту
До апаратного забезпечення засобів захисту (АЗЗЗ) належать засоби підтримки функцій захисту операційних систем, які вбудовано у процесор та (або) в мікросхеми системної плати. Ці засоби визначаються архітектурою процесора і обчислювальної системи. їх може бути реалізовано частково апаратно та частково програмно. Деякі з таких програм жорстко «зашиті» у систему та не можуть бути модифікованими (наприклад, мікропрограми процесора), а деякі розташовані у постійній пам'яті, що піддається перепрограмуванню (наприклад, функції BIOS).
Необхідно враховувати, що операційна система може використовувати або ігнорувати деякі функції АЗЗЗ, а також замінювати їх своїми програмними модулями (наприклад, встановлювати власні оброблювачі переривань замість оброблювачів переривань BIOS).
За усталеною термінологією [91], до АЗЗЗ долучають засоби не за ознакою їх апаратної реалізації, а за колом завдань, що вони вирішують:
підтримка керування пам'яттю;
підтримка керування процесами (задачами);
підтримка взаємодії між процесами.
З цього переліку видно, що АЗЗЗ не забезпечує виконання завдань повністю, а лише надає необхідну підтримку. Як правило, АЗЗЗ виконує функції доступу до об'єктів, перевірки, переключення, реалізація ж складних алгоритмів, що здійснює планування таких функцій, виноситься за межі апаратних засобів.
Слід зауважити, що в цьому контексті у складі АЗЗЗ не розглядають апаратні модулі, що виконують певні функції із захисту інформації, які не підтримує ОС наприклад апаратні модулі шифрування.
2. Підтримка керування пам'яттю
Основними завданнями розподілу пам'яті є такі [92]:
відстеження вільної та зайнятої пам'яті, виділення пам'яті процесам під час їх запуску і в процесі роботи, звільнення і дефрагментація пам'яті;
трансляція адрес, що використовують програми;
організація віртуальної пам'яті;
розмежування доступу процесів до окремих областей пам'яті як з метою ізоляції адресних просторів процесів від інших процесів, так і з метою організації контрольованого спільного доступу процесів до виділених областей пам'яті.
2.1. Віртуальні адреси
У програмах використовують різні типи адрес команд і операндів, які під час виконання програмного коду процесором перетворюються на фізичні адреси, тобто на номери комірок фізичної пам'яті комп'ютера. Програміст, створюючи програму, використовує символьні імена (ідентифікатори, мітки). Компілятор під час трансляції програми заміняє їх віртуальними адресами. Якщо програмний код не компілюється, а виконується інтерпретатором, то він перетворює символьні імена на віртуальні адреси під час виконання програми.
Віртуальні адреси дають змогу однозначно адресувати команду або дані у виділеному програмі (процесу) адресному просторі. Основна вимога до віртуальних адрес — це наявність можливості їх трансляції задля забезпечення коректної адресації незалежно від розташування програми (або навіть конкретного екземпляра програми) в оперативній пам'яті комп'ютера.
Найтиповішим варіантом є використання відносних адрес, тобто зміщення від деякої базової адреси. Якщо кожному процесу виділяється єдина безперервна послідовність віртуальних адрес, зміщення дає змогу однозначно вказати на розташування даних або команди в адресному просторі цього процесу. Таку модель пам'яті називають пласкою (Flat).
Альтернативною моделлю є сегментна модель пам'яті. Адресний простір процесу поділяється на окремі частини, які називають сегментами (іноді секціями чи областями). У такому випадку віртуальна адреса задається парою чисел (я, ти), де п позначає сегмент, am — зміщення в ньому.
