Понятия «пользовательский режим» и «режим
ядра» При обсуждении архитектуры ОС Windows NT постоянно используются понятия «режим пользователя» и «режим ядра», поэтому стоит определить,
что это значит. Начнем с обсуждения разницы между пользовательским режимом и режимом
ядра (user mode/kernel mode). Пользовательский режим - наименее привилегированный
режим, поддерживаемый NT; он не имеет прямого доступа к оборудованию и у него
ограниченный доступ к памяти. Режим ядра - привилегированный режим. Те части
NT, которые исполняются в режиме ядра, такие как драйверы устройств и подсистемы
типа Диспетчера Виртуальной Памяти, имеют прямой доступ ко всей аппаратуре и памяти.
Различия в работе программ пользовательского режима и режима ядра поддерживаются
аппаратными средствами компьютера (а именно - процессором). Большинство архитектур
процессоров обеспечивают, по крайней мере, два аппаратных уровня привилегий. Аппаратный
уровень привилегий процессора определяет возможное множество инструкций, которые
может вызывать исполняемый в данный момент процессором код. Хотя понятия «режим
пользователя» и «режим ядра» часто используются для описания кода, на самом деле
это уровни привилегий, ассоциированные с процессором. Уровень привилегий накладывает
три типа ограничений: 1) возможность выполнения привилегированных команд, 2) запрет
обращения к данным с более высоким уровнем привилегий, 3) запрет передачи управления
коду с уровнем привилегий, не равным уровню привилегий вызывающего кода. |