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