Как процессор отличает код для разных колец, то есть существует какой-то регистр или флаг регистра? Как меняется режим при вызове системных сервисов? И почему нельзя самому перейти в режим ядра (установив регистр?)?
В таблице сегментов записаны права доступа к каждому из них. В том числе - и кольцо защиты, которому оно "принадлежит". 3-ий вопрос: Все программы в Win исполняются на уровне 3-го кольца. А на нем запрещено выполнять команды, которые меняют кольцо защиты. P.S. Щас кто-нибудь зайдет и поправит меня как всегда.
Не, ring3 вообще запрещено читать / писать / запускать сегменты с более высшими привелегиями. Надо устанавливать драйвер. А то, как это внутри происходит - я не знаю.
В данный момент - это младшие два байта CS. И нельзя установить там уровень привилегий, меньше чем в дескрипторе afair