Архитектура Windows NT

Общая структура

Уровень (сверху вниз)
Подсистемы окружения (Win32, POSIX, OS/2)
Системные DLL (ntdll.dll, kernel32.dll и др.)
Исполнительная система (Executive) — ntoskrnl.exe
Микроядро (Kernel)
Уровень аппаратной абстракции (HAL) — hal.dll
Аппаратное обеспечение

Режимы работы:

  • User Mode — ограниченный доступ, процессы не обращаются к аппаратуре напрямую.
  • Kernel Mode — полный доступ к аппаратным ресурсам и памяти всех процессов.

HAL — уровень аппаратной абстракции

Скрывает аппаратные различия от остальной части ОС. Файл: hal.dll.

Функции HAL:

  • Доступ к регистрам устройств через порты или память
  • Адресация устройств независимо от типа шины
  • Обработка прерываний
  • Управление DMA (прямой доступ к памяти)
  • Управление таймерами
  • Синхронизация в многопроцессорных системах
  • Взаимодействие с BIOS и CMOS
HAL не предоставляет абстракций для мышей, клавиатур и дисков.

Микроядро

Выполняет низкоуровневые операции:

  • Переключение контекста — сохранение регистров, настройка карты памяти, восстановление регистров нового потока.
  • Обработка прерываний — диспетчеризация аппаратных и программных прерываний.
  • Объекты синхронизации — семафоры, мьютексы, события, таймеры.
  • DPC (Deferred Procedure Call) — отложенный вызов процедуры.
  • APC (Asynchronous Procedure Call) — асинхронный вызов процедуры.
Управляющие объекты Объекты диспетчеризации
ПроцессыСемафоры
ПотокиМьютексы
ПрерыванияСобытия
DPCКритические секции
Таймеры

Исполнительная система (Executive)

Диспетчер Функции
Объектов Управление объектами ОС (процессы, потоки, файлы). Выделение памяти при создании, возврат в пул при уничтожении
Ввода-вывода Унифицированный интерфейс для файловых систем и драйверов
Процессов Создание, завершение и управление процессами и потоками
Памяти Виртуальная память со страничной подкачкой, преобразование адресов
Безопасности Проверка прав доступа, аудит операций
Кэша Кэширование данных файловых систем (отдельный кэш для каждой ФС)
Plug and Play Обнаружение и настройка устройств, загрузка драйверов
Электропитания Управление энергопотреблением, перевод устройств в режим сна
Конфигурации Работа с реестром
LPC Межпроцессное взаимодействие между клиентами и серверами на одной машине
← Назад к списку тем