Из приведенных выражений для условия доступа ясно, что значение RPL может только уменьшить круг допустимых по обращению к данным уровней привилегий. Например:
При RPL < CPL значение EPL всегда равно CPL, т.е. при помощи уменьшения RPL нельзя увеличить круг допустимых по обращению к данным уровней привилегий. Подбором значения RPL при необходимости можно только ослабить возможности текущего уровня привилегий по доступу к данным. В этом заключается основное предназначение параметра RPL. При загрузке нового сегмента данных в команде загрузки указывается, непосредственно или косвенно, селектор сегмента данных, который содержит значение RPL. Пользователь, программирующий на уровне ассемблера, имеет возможность манипулировать значением RPL. Но при любом значении RPL он не сможет задать EPL <= (CPL = 3). Процедуры более высоких уровней привилегий пишутся системными программистами. Для системных программистов RPL является средством управлять доступом к данным на системных уровнях в соответствии с общей сервисной стратегией конкретной операционной системы. Программа может получить доступ к данным на более высоком уровне привилегий, только если он предусмотрен системными программистами и только через системные процедуры. |