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