+------------------+
| |
| +-------+ |
| | User | |
| +-------+ |
| Supervisor |
+------------------+
Надо защитить операционную систему от прикладных программ
(и программы друг от друга).
Объекты памяти
Сегменты
Страницы
Доступ на чтение
Доступ на запись
Доступ на выполнение
Соответственно кольцу защиты
Порты ввода/вывода
Привелигированные инструкции
Ввод Вывод
Остановка процессора
Работа с системными регистрами
Обьекты выполнения
Задачи
Прерывания
Шлюзы
уровень привелегий для доступа
правила
Реализация правил возлагается на архитектуру.
Например в HP PA часть адрессных пространств доступна USER программам
по определению, а остальные только SUPERVISORу.
RULE #1: Должно быть невозможно передать управление OS, кроме как в
предопределенной точке входа.
User Frame Supervisor frame
| | | |
| | +------+
+-----+ +--->| P |
| P |----+ +------+
+-----+ |RetAdr|
| | +------+
| | | |
С целью повышения надежности разные кольца используют разные stacks.
Потому что USER задача может испортить stack.
И при переключение контекста часть стека копируется в stack другово кольца.
Кольца защиты
i286
Кольца защиты:
Правила доступа:
Шлюзы:
Capacity-based systems
THIS SECTION IS UNDER CONSTRUCTION
iAPX432
Все защищено на аппаратном уровне.
Подпрограмма может обратиться к только тем объектам на которые есть права
(т.е. она не видит объекты вызывающей подпрограммы, только если ей явно не
передали их дескрипторы доступа с соответствующими правами).
TODO: Схема дескрипторного доступа в iAPX 432
Segment:
Segment Descriptor:
Access Descriptor:
Call: