Windows操作系统架构
2020-12-13 02:47
标签:style class blog code http com 用户态有四类组件,这四类组件都是以进程形式存在的,也就是说,它们都有自己的进程地址空间(其实就是一套页表)。 这些是固化的进程,也就是说是操作系统结合在一起的进程。 比如logon process(winlogon.exe),Session manager(smss.exe)。 它们都不属于service,因为它们都不是由SCM(Service Control Manager)启动的。 Service进程是由SCM启动的,它们与user logon是独立的,因为有些service的启动时机比winlogon.exe还早。 Task Scheduler和Print Spooler都是services。 就是常说的应用程序。 就是常说的“环境子系统”,也就是“Win32子系统”。 由四个dll组成: 它们实际上是Service Processes和User Applications的一部分,以dll的形式加载到它们的进程地址空间中去的。 它们的作用是向Service Processes和User Applications提供Win32 API接口。 Win32 API在实现上分为三类: 1. 完全在这四个dll的内部实现。 2. 通过这四个dll,调用更加底层的(内核态,比如内核或者驱动)实现。 3. 这四个dll与Environment Subsystem Server
Processes建立C/S通信模型,dll作为client请求Win32子系统的server进程(用户态进程)来提供相应的实现。 内核态组件分为以下几类: 可以理解为内核态的管理程序,其实就是各个模块子系统。 比如内存管理模块,进程与线程管理模块,安全模块,IO模块,网络模块,以及进程间通信模块。 狭义上的内核,提供内核态中的核心操作,比如线程调度与切换,中断和异常的分发与处理,以及多处理的同步等等。 它其实就是一组函数的集合。 内核态驱动。 Hardware Abstract Layer 用来隐藏与平台相关的细节,并且向上提供统一的API接口。 窗口与绘图系统。用来提供GUI相关功能。 这5个组件大部分都存在于一个Ntoskrnl.exe中,当然一些第三方的driver除外。 Windows子系统包含两部分: 即上面所描述的用户态的Environment Subsystem Service
Processes和内核态的Windowing and Graphics System。 向Win32 Subsystem dll代表的client提供以下功能支持: 1. Console Windows(命令行窗口,即不带GUI功能,不涉及到Win32k.sys) 2. 创建和删除Process/Thread 3. Side-by-Side(Sxs)支持 等等。 提供以下功能: 1. 窗口管理器,以及与GUI相关的输入输出设备,消息传递等机制。 2. 提供GDI绘图库。 3. DirectX的支持(在另一个驱动Dxgkrnl.sys中实现) Windows操作系统架构,搜素材,soscw.com Windows操作系统架构 标签:style class blog code http com 原文地址:http://www.cnblogs.com/long123king/p/3782442.html用户态
1. System Support Processes
Session Manager [smss.exe]
Local Session Manager [lsm.exe]
Service Control Manager [services.exe]
Local Security Authority [lsass.exe]
Winlogon [winlogon.exe]
Wininit [wininit.exe]
2. Service Processes
Service Host [svchost.exe]
3. User Applications
4. Environment Subsystem Server Processes
[csrss.exe]
Subsystem Dynamic Libraries
Kernel32.dll
Advapi32.dll
User32.dll
Gdi32.dll
内核态
1. Windows Executive
2. Windows Kernel
3. Device Driver
4. HAL
5. Windowing and Graphics System
Windows Subsystem
用户态的Win32子系统服务进程
[csrss.exe]
Basesrv.dll
Winsrv.dll
Csrsrv.dll
内核态的Win32k.sys驱动
Ntdll
Executive
Kernel
HAL
Device Driver
Subsystem Processes
上一篇:PHP中使用Ajax
下一篇:线性方程组的迭代求解算法——原理