系统架构
关键组件
环境子系统和子系统DLL
环境子系统向应用程序提供环境和应用程序编程接口(Appplication Programming Interface, API)。Windows 2000/XP支持三种环境子系统:Win32、POSIX和OS/2,其中最重要的环境子系统是Win32子系统,其他子系统都要通过Win32子系统接收用户的输入和显示输出。环境子系统的作用是将基本的执行体系统服务的某些子集提供给应用程序。 用户应用程序调用系统服务时必须通过一个或多个子系统动态链接库作为中介才可以完成。
子系统由会话管理器(Session Manager)(Smss.exe)进程启动。
Ntdll.dll
Ntdll.dll是一个特殊的系统支持库,主要用于子系统DLL。包含两种类型的函数:
- 系统服务分发存根(stub),在用户模式下可通过这些函数调用windows执行体的系统服务。
- 内部支持函数,供子系统、子系统DLL及其他的原生镜像文件使用。
执行体
是Ntoskrnl.exe中的上层,包含了基本的操作系统服务,比如内存管理、进程和线程管理、安全性、I/O、网络和跨进程通信等。
内核
由Ntoskrnl.exe的一组函数以及对于硬件体系架构的低层支持(如中断和异常分发)构成。这些函数提供了一些最基本的机制,如线程调度和同步服务供执行体组件使用,但是所有的策略决定都留给了执行体,除了线程调度和分发。
硬件抽象层(HAL)
Windows内部组件以及用户编写的驱动程序通过hal.dll访问硬件。
Ntoskrnl与hal相互链接。
设备驱动程序
- 硬件设备驱动程序
- 文件系统驱动程序
- 文件系统过滤驱动程序
- 网络重定向器和服务器
- 协议驱动程序
-
内核流式驱动程序
安装驱动程序是在系统中添加用户编写的内核模式代码的唯一方法。
系统进程
- Idle进程(空闲进程,无实际的用户模式映像文件)
- System进程
- 会话管理器(Smss.exe,第一个用户模式进程)
- 本地会话管理器(Lsm.exe)
- Windows子系统(Csrss.exe)
- 会话0初始化(Wininit.exe)
- 登录进程(Winlogon.exe)
- 服务控制管理器(Services.exe)和它创建的子服务进程(如Svchost.exe)
- 本地安全认证服务器(Lsass.exe)
--------------------- 本文来自 yunongkugeng 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u010676483/article/details/78816901?utm_source=copy