深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第二章 系统结构 (二)
来源:互联网 发布:网站快速排名优化方式 编辑:程序博客网 时间:2024/05/17 01:58
2.4 关键的系统组件
这一节将会深入介绍Windows内部结构和每个关键的系统组件所扮演的角色。下图是Windows核心组件更详细的图,它是2.1节的结构图细化版本。
环境子系统和子系统DLL Windows最初有三个子系统:OS/2、POSIX和Windows。但是到了Windows XP以后,只有Windows子系统随系统一起发布。实际上Windows子系统已经成了Windows必不可少的组件,而其他两个子系统被配置成按需启动。 HKLM/SYSTEM/CurrentControlSet/Control/Session Manager/SubSystems下面保存了子系统启动信息。其下的Required键值为必选子系统,被设置成Windows。其下的Optional键值为按需启动子系统,可以是Os2和Posix中的一个或全部。 环境子系统的角色是将Windows基本服务(Native API)的部分子集暴露给应用程序。 每一个可执行的映像(.exe)被绑定到唯一一个子系统上。映像文件的头部有子系统类型信息。Visual C++的链接器的/SUBSYSTEM选项可以指定此信息。已经链接好的映像,可以使用exetype工具来查看这个信息。 Windows子系统 组成部分: l 环境子系统进程(csrss.exe),包含以下支持: ² 控制台(文本)窗口 ² 创建或删除进程和线程 ² 对16位虚拟DOS机的支持 ² 其他一些函数,如GetTempFile、ExitWindowsEx等。 l 内核模式设备驱动程序(win32k.sys),包含: ² 窗口管理器(窗口显示,屏幕输出,键盘、鼠标的输入等) ² 图形设备接口(GDI) l 子系统DLL(Kernel32.dll、Advapi32.dll、User32.dll、Gdi32.dll) l 图形设备驱动程序 POSIX子系统 POSIX: Portable Operating System Interface based on Unix l Windows只实现了众多POSIX标准中的一个,即POSIX.1。这个标准只提供了对POSIX应用程序极其有限的支持。 l Microsoft提供一个称为“Windows Services for Unix”的产品,提供了一个增加的POSIX支持环境。 l 在Windows中编译和链接一个POSIX应用程序,应该使用Platform SDK中的POSIX头文件和库文件(psxdll.dll)。 l POSIX子系统默认配置成按需启动。当第一次启动POSIX程序时,POSIX子系统进程(psxss.exe)会被启动。 实验 书中提供了一个实验可以观察POSIX子系统的启动。只需要运行一个POSIX程序,如“Windows Services for Unix”中带的C Shell,即可用进程管理器观察到POSIX子系统进程psxss.exe被启动起来。但从我的实际操作结果来看,安装了Windows Services for Unix 3.5以后,每次操作系统启动后,psxss.exe进程就已经启动,似乎不太符合书中所说的按需启动。 安装Windows Services for Unix 3.5以后,系统中多了以下进程: init进程(linux下耳熟能详的名字) initd进程(同上) psxss.exe(POSIX子系统进程) psxrun.exe(不知为何物) zzinterix(不知为何物) tcsh(C Shell进程,同样是linux下耳熟能详的名字) OS/2子系统 OS/2子系统在可用性方面比POSIX子系统更逊一筹,略去。 Ntdll.dll Ntdll包含两类函数: l 系统服务分发存根。这类函数以Nt开头,就是所谓的Native API,通过调用它们可切换到内核模式下,从而调用系统服务。 l 内部支持函数。在ntdll.dll中具体实现的函数,以Ldr开头的是映像加载器,Csr开头的是子系统进程通信函数,以Rtl开头的是运行库函数。 执行体 Windows执行体是Ntoskrnl.exe中的上层(内核是其下层),包含以下组件: l 配置管理器 l 进程和线程管理器 l 安全引用监视器 l I/O管理器 l 即插即用管理器 l 电源管理器 l WDM Windows管理规范例程 l 高速缓存管理器 l 内在管理器 l 逻辑预取器 l 对象管理器 l LPC设施 l 公共运行库 l 执行体支持例程 内核 内核是由Ntoskrnl.exe中的一组函数和硬件低层支持(如中断和异常分发)构成,提供了一些基本的机制,如线程调度和同步服务。内核中的许多函数以Ke开头。在DDK中有详细描述。当然,如果下载了Windows Research Kernel,就可以直接看这些函数的实现细节。
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第二章 系统结构 (二)
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第二章 系统结构 (一)
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第二章 系统结构 (三)
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第一章 概念和工具(二)
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第四章 管理机制 (一)
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 序言
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第一章 概念和工具(一)
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第一章 概念和工具(三)
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书备忘录
- windows internals(深入解析windows操作系统)笔记
- 电子书下载:深入解析Windows操作系统第6版 Windows Internals 6th Part1, Part2
- 关于《Microsoft Windows Internals》(4th Edition)的翻译体会
- 关于《Microsoft Windows Internals》(4th Edition)的翻译体会
- 关于《Microsoft Windows Internals》(4th Edition)的翻译体会
- 《深入解析Windows操作系统》- 读书笔记
- windows internals 6th edition 初读笔记
- 《深入解析Windows操作系统》- 读书笔记(II)
- New Words From -- Microsoft Windows Internals 4th Edition
- 【zz】【DESIGN】【SL】Blend Express 矢量工具的使用
- 获得请求参数
- 获得存储过程返回值和输出参数有什么不同
- setsockopt 设置socket
- JSP处理中文参数乱码
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第二章 系统结构 (二)
- 第一次用openfire 服务器,用smack 发送消息
- C++实现Photoshop色相/饱和度/明度功能
- Delphi用WebBrowser编程-自动登录操作
- 管理信息系统实验报告
- char vchar nchar nvchar的区别
- 学习JSON
- JSP中获得用户的使用的浏览器
- 给未来的电子工程师