Режим ядра
Важные для производительности операционной системы компоненты выполняются в режиме ядра, где они взаимодействуют с оборудованием и друг с другом без использования переключателей контекста и смены режимов. Например, менеджер памяти, менеджер кэш-памяти, менеджер объектов, менеджер системы безопасности, сетевые протоколы, файловые системы, управление потоками и процессами работают в режиме ядра. Все эти компоненты полностью защищены от выполняемых приложений, которые не имеют прямого доступа к коду и данным из привилегированной части операционной системы.
Компоненты режима ядра Windows NT спроектированы на основе принципов построения объектно-ориентированных систем. Например, они не работают напрямую со структурами данных, поддерживаемых индивидуальными компонентами. Вместо этого для передачи параметров, доступа и/или модификации структур данных они используют формальный интерфейс. Вместе с тем, несмотря на повсеместное использование объектов для представления разделяемых системных ресурсов, Windows NT не является объектно-ориентированной системой в точном смысле этого понятия, поскольку основная часть кода системы написана на Си из соображений обеспечения высокой скорости выполнения и переносимости.
В режиме ядра выполняются следующие компоненты ОС:
- исполняемая часть NT которая включает управление памятью, процессами, потоками, безопасностью, вводом/выводом, межпроцессорными обменами;
- ядро Windows NT выполняет низкоуровневые функции операционной системы: диспетчеризация потоков, прерываний и исключений, синхронизация процессоров. Ядро также включает набор процедур и базовых объектов, используемый исполняемой частью для создания высокоуровневых конструкций;
- слой абстракции от оборудования (HAL - Hardware Abstraction Layer), изолирует ядро, драйверы устройств и исполняемую часть NT от аппаратных платформ, на которых должна работать операционная система;
- драйверы устройств включают как файловую систему, так и аппаратные драйверы, которые транслируют пользовательские вызовы функций ввода/вывода в запросы физических устройств ввода/вывода;
- функции графического интерфейса пользователя работают с окнами, элементами управления и рисунками.