Режим ядра
Режим ядра — это привилегированный режим работы, в котором код имеет прямой доступ ко всем аппаратным ресурсам и всей памяти, включая адресные пространства всех процессов режима пользователя (рис. 6.7).
Ниже перечислены функциональные возможности компонентов режима ядра, которые имеют:
прямой доступ к оборудованию;
прямой доступ ко всем видам памяти компьютера;
более высокий приоритет исполнения, чем процессы режима пользователя.
Кроме того, компоненты не выгружаются на жесткий диск в файл подкачки виртуальной памяти; Функционирование режима ядра обеспечивается исполнительной системой, включающей в себя системные службы, микроядро и слой абстрагирования от оборудования (HAL).
Исполнительная система представляет собой обобщенное наименование ряда подсистем и компонентов ОС, работающих в режиме ядра.
Поскольку системные (исполнительные) службы обеспечивают работу всех основных функций ОС, очень важно защитить их от влияния приложений и подсистем пользовательского режима. Такую защиту обеспечивают системные службы, работающие в режиме ядра:
диспетчеры - различные модули, осуществляющие управление вводом/выводом, объектами, безопасностью, процессами, взаимодействием между процессами, виртуальной памятью, окнами и графикой;
драйверы устройств - программные компоненты, управляющие доступом к оборудованию;
Микроядро предоставляет наиболее общие службы ОС, такие, как диспетчеризация потоков, обработка прерываний первого уровня и отложенный вызов процедур. Микроядро расположено между слоем системных служб и HAL.
Слой абстрагирования от оборудования (HAL) представляет собой библиотеку режима ядра, включающую процедуры управления оборудованием. Этот программный слой позволяет скрыть особенности аппаратных платформ, предоставив ОС стандартные точки входа в процедуры, благодаря чему для нее исчезают различия между платформами и архитектурами. Поэтому ОС может функционировать на разных платформах с разными процессорами. Сетевая операционная система способна работать на одно- и многопроцессорных компьютерах и позволяет высокоуровневым драйверам графических адаптеров форматировать данные для мониторов разных типов.
Сетевые ОС обеспечивает работу с приложениями с помощью подсистем среды. Подсистема среды предоставляет API приложениям, разработанным под конкретную среду или ОС. Рассмотрим функционирование на примере широко распространенной подсистемы Win32.
Подсистемы среды являются промежуточным звеном между приложением, спроектированным для работы в конкретной операционной среде, и службами исполнительной системы. Подсистема среды транслирует инструкции, специфичные для рабочей среды приложения, в команды, которые могут быть выполнены службами исполнительной системы. Работа приложений, созданных для других ОС, поддерживается двумя подсистемами среды Windows NT: POSIX и OS/2. Эти подсистемы обрабатывают все функциональные запросы от поддерживаемых приложений. Подсистема либо самостоятельно обрабатывает запрос, либо передает его службам исполнительной системы СОС.