Режим работы процессора
Режим работы процессора (англ. CPU mode) — состояние процессора, определяющее его поведение при выполнении различных команд и возможность доступа к различным данным.
По способу адресации памяти (на примере x86):
- Реальный режим: обращение к оперативной памяти происходит по реальным (действительным) адресам. Набор доступных операций не ограничен, защита памяти не используется.
- Защищённый режим: обращение к памяти происходит по виртуальным адресам с использованием механизмов защиты памяти. Набор доступных операций определяется уровнем привилегий.
По уровню привилегий:
- Режим пользователя (прикладной): минимальный уровень привилегий, разрешены только операции с данными и переходы в пределах адресного пространства пользователя. Все остальные операции либо игнорируются, либо с помощью механизма обработки исключений вызывают переключение в привилегированный режим и передачу управления ядру операционной системы для выполнения специальных функций (например, отображения данных на дисплее) или аварийного завершения потока управления.
- Привилегированный режим (режим ядра): наравне с операциями режима пользователя, разрешены дополнительные операции — запрет или разрешение прерываний, доступ к портам ввода-вывода, специальным регистрам процессора (например, для настройки блока управления памятью).
После включения процессор всегда начинает работу в реальном привилегированном режиме.
Переключение с понижением уровня привилегий (из режима ядра в режим пользователя) возможно с продолжением работы в любой конфигурации и с любого адреса. Обратное переключение (с повышением уровня привилегий) возможно лишь в определенные конфигурации и адреса в коде, заранее установленные в привилегированном режиме, за счет чего обеспечивается полный контроль ядра за повышением привилегий исполняемого кода.