+------------------+ | | | +-------+ | | | 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: