E.4.1. Четырехуровневая система привилегий в микропроцессорах с архитектурой x86.
Процессоры x86 поддерживают четыре уровня привилегий для сегментов программ и данных. Уровень 0 самый привилегированный, уровень 3 наименее привилегированный. Корпорация Intel рекомендует процессам занимать следующие уровни привилегий:
0 - ядро операционной системы;
1 - операционная система;
2 - системы программирования и базы данных;
3 - прикладные (пользовательские) программы.
На каждом уровне привилегий проверяется:
- Может ли программа выполнить указанную подпрограмму?
- К данным каких программ может обратиться та или иная программа?
- Имеет ли программа право передавать управлению внешнему процессу и какому именно?
Рассмотрим накладываемые ограничения:
1. Привилегированные команды, управляющие сегментацией или влияющие на механизм защиты, могут работать только на нулевом уровне привилегий.
2. Программам не разрешается считывать/записывать элементы данных, которые имеют более высокий уровень привилегий. Однако программы могут использовать данные на своем и более низком уровне привилегий.
3. Передача управления внешним процедурам возможна, только если они имеют тот же уровень привилегий, что и исходный процесс.