Windows NT 内核架构(主通用模型)流 NT 5.x/10+

结合Windows NT 内核架构 (主流 NT 5.x/10+ 通用模型),分分层架构、核心组件、调用流程三部分整理,附带可视化架构图、模块说明,同时适配 ReactOS 对标体系。

一、Windows NT 整体分层架构(经典双层模型)

Windows 采用用户态 (User Mode) + 内核态 (Kernel Mode) 严格隔离架构,通过系统调用切换权限,硬件资源仅内核态可直接访问。

复制代码
┌─────────────────────────────────────────────────────────────┐
│                        用户态 User Mode                       │
│  权限低、隔离安全,应用程序、服务、外壳全部运行在此层级        │
├─────────────┬─────────────────────────────────────────────┤
│ 应用层      │ 普通应用、记事本、浏览器、Office、第三方软件   │
│ Win32 子系统 │ User32.dll / Gdi32.dll / Kernel32.dll        │
│ 系统进程    │ winlogon.exe、lsass.exe、svchost.exe、explorer │
│ 其他子系统  │ POSIX 子系统、WoW64(32位兼容层)                │
└─────────────┴─────────────────────────────────────────────┘
          ↓ 系统调用 / 中断 / 异常
┌─────────────────────────────────────────────────────────────┐
│                        内核态 Kernel Mode                     │
│ 最高权限,直接操作硬件、内存、CPU、中断,操作系统核心所在      │
├─────────────┬─────────────────────────────────────────────┤
│ 系统执行体   │ 内核主体(ntoskrnl.exe) 绝大多数系统服务       │
│ 内核核心     │ 调度、对象管理、内存管理、I/O、安全、进程线程  │
│ 设备驱动层   │ 各类硬件驱动、文件系统驱动、过滤器驱动        │
│ 硬件抽象层 HAL │ hal.dll 屏蔽硬件差异,适配不同主板/CPU      │
└─────────────┴─────────────────────────────────────────────┘

二、用户态(User Mode)核心组件详解

1. Win32 子系统(最核心,桌面应用依赖)

Windows 桌面生态全部基于该子系统,也是 ReactOS 重点兼容对象:

  1. Kernel32.dll 基础系统服务:进程、线程、文件、目录、注册表、同步对象、内存管理(用户态接口)。
  2. User32.dll 窗口管理:窗口创建、消息循环、菜单、按钮、控件、桌面交互。
  3. Gdi32.dll 图形设备接口:绘图、字体、位图、窗口渲染、打印。
  4. Shell 组件 shell32.dll、explorer.exe(资源管理器 / 桌面 / 任务栏)、控制面板、文件对话框。
  5. COM 组件 系统组件通信标准,外壳、控制面板、大量系统工具均依赖 COM。

2. 关键系统进程

  • smss.exe:会话管理器,系统启动早期核心,创建会话、加载子系统
  • winlogon.exe:登录管理器,负责用户登录、锁屏、会话切换
  • lsass.exe:本地安全授权子系统,身份验证、权限、安全策略
  • svchost.exe:服务宿主进程,承载绝大多数 Windows 系统服务

3. 兼容层

  • WoW64:64 位系统下运行 32 位应用的兼容层,双向转发 API 调用。

三、内核态(Kernel Mode)核心架构(NT 内核本体)

内核态由 4 大层级 组成,从上至下依次为:执行体 → 内核核心 → 驱动程序 → HAL

1. 系统执行体(Executive)

文件:ntoskrnl.exe 主体部分,对外提供系统调用接口,是用户态与内核的桥梁。 包含八大核心管理器:

  • 对象管理器:统一管理所有内核对象(进程、线程、文件、句柄、事件、互斥体等)
  • 进程 / 线程管理器:创建、终止、管理进程与线程,维护进程地址空间
  • 虚拟内存管理器 (VMM):分页、物理内存管理、地址空间映射、缓存、内存保护
  • I/O 管理器:统一管理设备 I/O、驱动调用、异步 IO、文件系统、网络 IO
  • 安全引用监视器 (SRM):权限校验、访问控制、安全审计
  • 配置管理器:内核态注册表读写
  • 电源管理器:电源策略、休眠、待机、硬件节电控制
  • 即插即用管理器 (PnP):硬件枚举、驱动加载、热插拔管理

2. 内核核心(Kernel Core)

同属 ntoskrnl.exe,偏向底层硬件与调度,为执行体提供基础支撑:

  • 线程调度器:CPU 时间片分配、优先级调度、上下文切换
  • 中断与异常处理:硬件中断、CPU 异常、陷阱处理
  • 同步原语:自旋锁、内核信号量、事件、互斥体(内核专用同步机制)
  • 陷阱处理:承接用户态发起的系统调用,完成权限切换

3. 设备驱动层(Drivers)

运行在内核态,直接对接硬件,分层设计:

  1. 高层驱动:文件系统驱动、网络协议驱动、过滤器驱动(加密、压缩、监控)
  2. 类驱动:通用设备驱动(磁盘、键盘、鼠标、显卡、USB 通用协议)
  3. 微型端口驱动:硬件厂商专属驱动,对接具体硬件芯片
  4. 分类:字符设备、块设备、网络设备、总线驱动(PCI/USB/SATA)

4. 硬件抽象层 HAL

文件:hal.dll 作用:屏蔽不同硬件平台差异,让内核不用关心具体主板、CPU、芯片组细节。 负责:硬件中断路由、时钟控制、DMA、主板总线、CPU 平台适配。 ReactOS 同样独立实现多平台 HAL。


四、完整调用流程(示例:打开一个文件)

以「应用双击打开文件」为例,梳理全链路:

  1. 应用程序(用户态)→ 调用 Kernel32.dll 打开文件 API
  2. Kernel32.dll 发起系统调用,陷入内核态
  3. 内核陷阱处理器接收请求,转交 I/O 管理器
  4. I/O 管理器调用 文件系统驱动
  5. 文件系统驱动 调用 磁盘类驱动 + 磁盘微型端口驱动
  6. 驱动通过 HAL 操作物理磁盘硬件
  7. 数据原路逐层返回,切回用户态,应用读取文件内容

五、精简版拓扑图(纯文本,可直接文档使用)

复制代码
【用户态】
应用程序
   │
   ├─ Win32 DLL: Kernel32 / User32 / Gdi32
   ├─ 系统进程: smss / winlogon / lsass / svchost / explorer
   └─ 子系统: WoW64 / COM / Shell
          ↓ 系统调用
【内核态 - ntoskrnl.exe】
   ├─ 执行体(Executive)
   │   ├─ 对象管理器
   │   ├─ 进程/线程管理器
   │   ├─ 虚拟内存管理器(VMM)
   │   ├─ I/O 管理器
   │   ├─ 安全监视器
   │   └─ 配置/电源/PnP管理器
   │
   └─ 内核核心(Kernel)
       ├─ 线程调度
       ├─ 中断/异常处理
       └─ 内核同步
          ↓
【驱动层】文件系统 / 网络 / 磁盘 / USB / 显卡 等驱动
          ↓
【硬件抽象层 HAL (hal.dll)】
          ↓
【物理硬件】CPU / 内存 / 磁盘 / 网卡 / 外设

六、补充:Windows 10/11 现代架构新增模块

在经典 NT 架构基础上扩展:

  1. Hyper-V 虚拟机监控程序:底层虚拟化,隔离内核与用户环境(核心隔离、安全基础)
  2. UMDF / KMDF:微软驱动框架,简化驱动开发,替代传统 WDM 驱动
  3. 容器子系统:基于进程隔离的应用容器
  4. 安全内核 (Secure Kernel):独立安全分区,处理加密、安全启动、隔离权限

该架构完全兼容 ReactOS 开发文档中对应的模块划分,可直接用于学习、文档、绘图参考。

相关推荐
caimouse2 小时前
Reactos 第 3 章 内存管理 — 【中篇】Hyperspace、系统空间、API 与异常
c语言·开发语言·windows·架构
zzz_23682 小时前
【RabbitMQ】面试系列 · 第三期:从线上故障到架构选型
面试·架构·rabbitmq
提子拌饭1333 小时前
爆发效果技术——基于鸿蒙PC Electron框架实现
华为·架构·electron·开源·harmonyos·鸿蒙·鸿蒙系统
caimouse3 小时前
Reactos 第 4 章 对象管理 — 4.1 对象与对象目录
服务器·c语言·开发语言·windows·架构
C137的本贾尼3 小时前
InnoDB 内存架构:Buffer Pool、Change Buffer 与 Log Buffer
数据库·oracle·架构
canonical_entropy3 小时前
吸引子引导与轨迹挖掘:AI Native Engineering 的收敛机制
数学·架构·ai编程
invicinble3 小时前
关于postgersql相关技术栈的总结
架构
@insist1233 小时前
系统架构设计师-从 PDR到 WPDRRC 的模型演进与架构实践
架构·系统架构·软考·系统架构设计师·软件水平考试
ting94520003 小时前
Superlog 开源自主可观测性工具全栈技术深度剖析
人工智能·架构·开源