Windows操作系统架构
作者:网络转载 发布时间:[ 2014/6/16 13:44:43 ] 推荐标签:Windows 操作系统
4. HAL
Hardware Abstract Layer
用来隐藏与平台相关的细节,并且向上提供统一的API接口。
5. Windowing and Graphics System
窗口与绘图系统。用来提供GUI相关功能。
这5个组件大部分都存在于一个Ntoskrnl.exe中,当然一些第三方的driver除外。
Windows Subsystem
Windows子系统包含两部分:
即上面所描述的用户态的Environment Subsystem Service Processes和内核态的Windowing and Graphics System。
用户态的Win32子系统服务进程
[csrss.exe]
Basesrv.dll
Winsrv.dll
Csrsrv.dll
向Win32 Subsystem dll代表的client提供以下功能支持:
1. Console Windows(命令行窗口,即不带GUI功能,不涉及到Win32k.sys)
2. 创建和删除Process/Thread
3. Side-by-Side(Sxs)支持
等等。
内核态的Win32k.sys驱动
提供以下功能:
1. 窗口管理器,以及与GUI相关的输入输出设备,消息传递等机制。
2. 提供GDI绘图库。
3. DirectX的支持(在另一个驱动Dxgkrnl.sys中实现)
Ntdll
与Subsystem dll不同,Ntdll是所有用户态进程与内核态进行交互的必经之路。
ntdll包含两类函数:
1. System Service Stub
这些函数是调用内核Executive组件提供的系统服务的入口函数。
函数内部包含与平台相关的代码,使代码的执行由用户态转入内核态执行,比如int 80H或者sysenter等等。
在内核中与Stub对应的是SSDT,System Service Dispatch Table,根据ntdll的stub函数传入的系统调用号,从SSDT表中选择对应的service routine执行。
2. Operating System Internal Support Functions
这部分不是给应用程序使用的,而是给用户态的操作系统组件,比如System Support Processes和Environment Subsystem Service Processes来使用。
包括下面几类:
|
Image Loader functions, Ldr[XXXX]
Heap Manager
Windows Subsystem Process Communication functions, Csr[XXXX]
Runtime Library Routines, Rtl[XXXX]
User-mode Debugging, DbgUi[XXXX]
Event Tracing for Windows, Etw[XXXX]
User-mode Asynchronous Procedure Call(APC) Dispatcher
Exception Dispatcher
subset of C Run-time(CRT)
|
Executive
executive,可以理解为内核的表现层
包含以下几类函数集合:
1. System Services
导出给用户态进程使用的函数,其中大部分通过API向普通应用程序开放,而少部分则只能给用户态的操作系统组件使用。
2. Device Driver
3. WDK Interface Functions
可以被内核态的驱动调用的函数,比如Zw[XXXX]
4. WDK未导出的函数
内核态的驱动也不能够调用
比如Inbv[XXXX]
5. 未导出的全局变量
Internal IO manager support functions, Iop[XXXX]
Internal Memory management support functions, Mi[XXXX]
6. 各个模块内部的函数,没有被定义为全局符号

sales@spasvo.com