Архитектура 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 | Межпроцессное взаимодействие между клиентами и серверами на одной машине |