Секция 5.2 FIELDS AND FLAGS USED FOR SEGMENT-LEVEL AND PAGE-LEVEL PROTECTION
Другие главы
- Глава 3. Менеджмент памяти в защищенном режиме
- Глава 4. Paging Страничный механизм IA-32 Intel 64
- Глава 6. Обработка прерываний и исключений
Механизм защиты процессора использует следующие поля и флаги с системных структурах данных для контроля доступа к сегментам и страницам:
- Descriptor type (S) flag — (бит 12 во втором двойном слове сегментного дескриптора) определяет является ли сегмент системным или сегментом кода или данных.
- Type field — (Биты с 8 по 11 во втором двойном слове сегментного дескриптора) определяют тип сегмента (кодовый, данных или системный).
- Limit field — (Биты с 0 по 15 первого двойного слова и биты с 16 по 19 второго двойного слова сегментного дескриптора) вместе с флагами G (granularity) и E определяют размер сегмента.
- G flag — (Бит 23 второго двойного слова сегментного дескриптора). Вместе с полем limit и флагом E определяет размер сегмента (для сегментов данных).
- E flag — (Бит 10 второго двойного слова сегментного дескриптора для сегмента данных) вместе с флагом G и полем limit определяет размер сегмента.
- Descriptor privilege level (DPL) field — (Биты 13 и 14 во втором двойном слове сегментного дескриптора) определяют уровень привелегий сегмента.
- Requested privilege level (RPL) field — (Биты 0 и 1 любого селектора сегмента)
Определяют требуемый уровень привелегий сегментного селектора. - Current privilege level (CPL) field — (Биты 0 и 1 сегментного регистра CS) означают уровень привелегий текущей выполняемой программы или процедуры. Термин CPL относится к значению этого поля.
- User/supervisor (U/S) flag — (Бит 2 записей в страничных структурах) определяет тип страницы: пользователи или супервизор.
- Read/write (R/W) flag — (Бит 1 в записях страничных структур) определяет тип доступа разрешенный для страницы: read-only (только чтение) или read/write (чтение запись).
- Execute-disable (XD) flag — (Бит 63 некоторых записей страничных структур) определяет тип доступа разрешенный для страницы: executable (выполнимая) или not-executable (не выполнимая).
Рисунок 5-1 показывает расположение различных полей и флагов в дескрипторах сегментов данных, кода и системных; Рисунок 3-6 показывает расположение RPL (или CPL) полей в селекторах сегментов (или регистре CS); Глава 4 указывает расположение различных полей и флагов U/S, R/W и XD в записях страничных структур.
(Иллюстрация из руководства Intel)
Много различных стилей схем защиты может быть реализовано с помощью имеющихся полей и флагов. Когда операционная система создает дескриптор, она присваивает значения этим полям и флагам в соответствии с выбранным стилем защиты. Прикладная программа обычно не имеет доступа к этим полям и флагам.
Следующие разделы описывают как процессор использует выше перечисленные поля и флаги для осуществления различных категорий проверок перечисленных во введении к этой главе.