Концепция привилегированного кольца
Концепция привилегированного кольца реализована компанией Intel в ее оборудовании.
В руководстве для разработчиков Intel содержится около 15 инструкций, для выполнения которых необходимо обязательно вызвать 0.
В OS-книгах и на других ресурсах вы можете прочитать, что большая часть кода ядра выполняется на уровне 0. Но трудно понять, что большая часть кода ядра относится к этим 15 инструкциям.
Означает ли это, что операционная система реализует свои собственные виртуальные защитные кольца? (например, вы можете рассматривать управление виртуальной памятью как компонент этого) Или, что более важно, что запускает регистр RPL в 0?
надеюсь, что вы можете понять и в конечном итоге помочь,
Спасибо заранее
2 ответа
Операционные системы обычно используют программные прерывания для реализации системы, называемой syscall и sysret(urn). Таблица дескрипторов прерываний может быть установлена, если этот обработчик будет повышен до уровня 0. Именно так реализуются концепции "пространства ядра" и "пространства пользователя".
x86 также имеет более гибкую концепцию, называемую вызовами. Они работают путем вызова функции, за исключением того, что как часть этого вызова глобальная или локальная таблица дескрипторов может изменить кольцо, называемое удаленным вызовом. Большинство современных ОС не используют их для совместимости.
Но трудно понять, что большая часть кода ядра состоит из этих 15 инструкций.
Это не так. Кольцо 0 имеет полный доступ к тем же инструкциям, что и кольцо 3.
На самом деле это означает, что кольцо 0 может использовать на 15 инструкций больше, чем кольцо 3.