Разделение памяти на уровне привилегий
Многие из средств защиты основаны на понятии иерархии привилегий. В любой момент привилегия задачи эквивалентна уровню привилегий её кодового сегмента.
В каждом дескрипторе сегмента имеется поле, которое определяет уровень привилегий связанного с ним сегмента.
Процессоры используют схему защиты ОС и программ друг от друга, состоящую из привилегий 4-х уровней от 0 до 3.
Когда ОС подготавливает программу для запуска, она формирует в GDT или IDT дескриптор, описывающий сегмент кода программы. В этом дескрипторе в поле DPL байта доступа проставляется уровень привилегий, в котором будет работать данная программа. Получаем текущий уровень привилегий CPL. CPL копируется в поле RPL селектора сегмента кода, загруженного в регистр CS. Программа всегда может проанализировать свой текущий уровень привилегий, но не может изменить его заменой содержимого поля RPL в регистре CS.
Поле уровня привилегий дескриптора, описывающее сегмент данных, содержит минимальные привилегии, которые нужны для доступа к сегменту данных. Перед тем как обратиться к DS, программа должна загрузить в один из сегментных регистров селектор, соответствующий нужному сегменту данных. В селекторе необходимо указать поле уровня запрашиваемых привилегий RPL.
Программа будет предоставлять доступ к сегментам только в случае, когда уровень привилегий дескриптора запрашиваемого сегмента