Skip to content

Windows NT InternalsПолное руководство по архитектуре ядра

Низкоуровневый интерактивный разбор устройства Windows NT

Pipeline загрузки Windows

Firmware
1. Firmware & UEFI / MBR
SEC -> PEI -> DXE -> BDS
SecStartupPeiMainDxeMain+2
Loader
2. Windows Boot Manager
bootmgr.efi / bootmgr
BmMainBmOpenBootConfigurationDataStoreBmFveOpenVolume+1
Loader
3. Windows OS Loader
winload.efi
OslMainOslLoadAndInitializeKernelOslpLoadBootDrivers+1
Ring 0
4. Kernel Phase 0 Initialization
ntoskrnl.exe (Single CPU, IRQL HIGH)
KiSystemStartupKiInitializeKernelInitBootProcessor+2
Ring 0
5. Kernel Phase 1 & Subsystems
ntoskrnl.exe (Multi-CPU, IRQL PASSIVE)
Phase1InitializationDiscardHalInitSystem(1)IopInitializeBootDrivers+1
Ring 3
6. Session Manager Subsystem
smss.exe (Master & Child Instances)
SmpInitSmpCreatePagingFilesSmpExecuteInitialCommand+1
Ring 3
7. System Init & Services (Session 0)
wininit.exe, services.exe, lsass.exe
WinMainScMainScStartService+1
Ring 3
8. Logon, User Session & Shell
winlogon.exe -> userinit.exe -> explorer.exe
WlInitializeLogonUI.exeUserinit+1
Ring 0

4. Kernel Phase 0 Initialization

Настройка KPCR, IDT, GDT, TSS, CR3, базовая инициализация памяти Mm, объектов Ob, процессов Ps, безопасности Se.

Ключевые функции этапа:
•KiSystemStartup
•KiInitializeKernel
•InitBootProcessor
•HalInitSystem(0)
•MmInitSystem(0)

Краткий обзор запуска Windows NT ​

  1. Firmware / UEFI & MBR:

    • Аппаратная инициализация чипсета, памяти и процессора (фазы SEC -> PEI -> DXE).
    • Выбор устройства загрузки (BDS), валидация ключей Secure Boot и запуск \EFI\Microsoft\Boot\bootmgfw.efi.
  2. Windows Boot Manager (bootmgfw.efi):

    • Чтение и разбор базы конфигурации BCD.
    • Проверка TPM и расшифровка разделов BitLocker (Full Volume Encryption).
    • Запуск целевого загрузчика ОС winload.efi.
  3. Windows OS Loader (winload.efi):

    • Загрузка ntoskrnl.exe, hal.dll, куста SYSTEM и драйверов типа SERVICE_BOOT_START (включая ELAM).
    • Подготовка таблиц страниц памяти (CR3 / PTE) и структуры LOADER_PARAMETER_BLOCK.
    • Завершение Boot Services прошивки (ExitBootServices) и переход в ядро на KiSystemStartup.
  4. Kernel Phase 0 (ntoskrnl.exe):

    • Выполняется на главном процессоре (BSP): ранний старт с CR8=0 с последующим повышением до IRQL HIGH_LEVEL.
    • Настройка структур KPCR, KPRCB, IDT, GDT, TSS.
    • Вызов InitBootProcessor: инициализация HAL, менеджера памяти MmInitSystem(0), объектов ObInitSystem(0), процессов PsInitSystem(0).
  5. Kernel Phase 1 (Многоядерность, Диспетчер I/O и Драйверы):

    • Переход на IRQL PASSIVE_LEVEL в контексте системного потока Phase1Initialization.
    • Запуск дополнительных ядер CPU (Application Processors).
    • Диспетчер PnP инициализирует драйверы устройств через IopInitializeBootDrivers и создает объекты IRP.
    • Запуск первого пользовательского процесса \SystemRoot\System32\smss.exe.
  6. Session Manager Subsystem (smss.exe):

    • Запуск утилиты проверки дисков autochk.exe (BootExecute).
    • Создание файлов подкачки (pagefile.sys) через SmpCreatePagingFiles.
    • Разделение окружения на изолированную Сессию 0 (системные службы) и Сессию 1 (интерактивный пользователь).
  7. System Initialization & Services (wininit.exe, services.exe):

    • Запуск в Сессии 0: создание оконной станции WinSta0 и десктопа Winlogon.
    • Запуск диспетчера служб SCM (services.exe), подсистемы безопасности LSASS (lsass.exe) и менеджера сессий lsm.exe.
    • SCM поднимает службы автозапуска, RPC-эндпоинты и сетевой стек.
  8. User Session & Shell (winlogon.exe -> userinit.exe -> explorer.exe):

    • Запуск LogonUI.exe, сбор учетных данных и аутентификация через LSASS.
    • Загрузка пользовательского куста реестра HKEY_CURRENT_USER (NTUSER.DAT).
    • Запуск userinit.exe, который выполняет логон-скрипты, GPO и стартует процесс оболочки explorer.exe (Панель задач, Рабочий стол, системный трей).

Интерактивные подсказки

Любое подчеркнутое слово (например, SSDT, KPCR, APC, VBS) является интерактивной сноской. Наведите курсор мыши, чтобы просмотреть краткое резюме, структуру данных и кольцо привилегий.

Interactive documentation of Windows NT (Build 10.0.19045.2965 x64) • Source Code