Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

2.3.1. Структура операционной системы

Рассмотрим нижние уровни операционной системы (см. рис. 2.1), работающие в режиме ядра. Центральным элементом является само ядро NTOS, загружаемое операционной системой из файла ntoskrnl.exe. NTOS, в свою очередь, состоит из двух уровней: исполнительного (executive), содержащего большую часть служб, и меньшего по размеру уровня, называемого ядром (kernel) и реализующего планирование и синхронизацию потоков, обработчики исключений, прерывания и другие аспекты управления процессором.

На рис. 2.3 изображены уровни режима ядра. Над исполнительным уровнем находится уровень ядра NTOS, так как на этом уровне реализуются механизмы прерываний и ловушек, используемые для перехода в режим ядра из пользовательского режима. Системная библиотека ntdll.dll занимает верхний уровень и фактически работает в режиме пользователя. В этой системной библиотеке содержатся вспомогательные функции для библиотек компилятора, а также специальные точки входа, которые используются ядром для инициализации потоков, диспетчеризации исключений и асинхронных вызовов процедур (Asynchronous Procedure Calls (APC)) пользовательского режима.

Следующим уровнем является уровень абстрагирования оборудования (Hardware Abstraction Layer (HAL)), абстрагирующий детали работы низкоуровневого оборудования (например, доступ к регистрам различных устройств или работу в режиме DMA).

Самый нижний уровень занимает гипервизор, который является дополнительным средством системы и перехватывает некоторые привилегированные операции, которые выполняет ядро системы. После перехвата операций гипервизор эмулирует их таким образом, что на одной и той же машине может одновременно работать несколько операционных систем. В таком случае каждая операционная система будет выполняться на собственной виртуальной машине, называемой разделом (partition). Возможности в архитектуре оборудования используются гипервизором для защиты физической памяти, а также чтобы обеспечить изолированность разделов друг от друга. Система, которая запускается поверх гипервизора, обрабатывает прерывания виртуальных процессоров, работу которых на физических процессорах планирует гипервизор, а также выполняет потоки.

Рис

Рис. 2.3. Организация режима ядра Windows

BIOS является энергонезависимой памятью и находится на системной плате компьютера. Программа, которая находится в BIOS, управляет загрузкой операционных систем, настройкой некоторых аппаратных характеристик компьютера.

Также важным компонентом режима ядра являются драйверы устройств. Система использует драйверы для тех компонентов режима ядра, которые не являются частью исполнительного уровня или уровня абстрагирования оборудования. Например, драйверы устройств управляют доступом к файловым системам, стекам сетевых протоколов, антивирусам, программному обеспечению, управляющему цифровыми правами, а также физическим устройствам, системным шинам и т. д.

Загрузкой и выгрузкой драйверов устройств в память ядра управляют компоненты ввода-вывода и компоненты виртуальной памяти. Они также связывают драйверы с исполнительным уровнем и уровнем абстрагирования оборудования. Интерфейсы, обнаруживающие подключенные к системе устройства, а также организующие работу с этими устройствами, загружая соответствующие драйверы, обеспечиваются диспетчером ввода-вывода. Конфигурационная информация для управления устройствами и их драйверами хранится в разделе SYSTEM системного реестра Windows.

Предыдущий раздел Оглавление Следующий раздел