简介
本书通过分析ReactOS的源代码介绍了Windows内核各个方面的结构、
功能、算法与具体实现。全书从“内存管理”、“进程”、“进程间通信
”、“设备驱动”等多个方面进行分析介绍,所有的分析都有ReactOS的源
代码(以及部分由微软公开的源代码)作为依据,使读者能深入理解Windows
内核的方方面面,也可以使读者的软件开发能力和水平得到提高。
本书可供大学有关专业的高年级学生和研究生用做教学参考,也可供
广大的软件工程师,特别是从事系统软件研发的工程师用于工作参考或用
做进修教材。
目录
上册
第1章 概述
1.1 Windows操作系统发展简史
1.2 用户空间和系统空间
1.3 Windows内核
1.4 开源项目ReactOS及其代码
1.5 Windows内核函数的命名
第2章 系统调用
2.1 内核与系统调用
2.2 系统调用的内核入口KiSystemService()
2.3 系统调用的函数跳转
2.4 系统调用的返回
2.5 快速系统调用
2.6 从内核中发起系统调用
第3章 内存管理
3.1 内存区间的动态分配
3.1.1 内核对用户空间的管理
3.1.2 内核对于物理页面的管理
3.1.3 虚存页面的映射
3.1.4 Hyperspace的临时映射
3.1.5 系统空间的映射
3.1.6 系统调用NtAllocateVirtualMemory()
3.2 页面异常
3.3 页面的换出
3.4 共享映射区(Section)
3.5 系统空间的缓冲区管理
第4章 对象管理
4.1 对象与对象目录
4.2 对象类型
4.3 句柄和句柄表
4.4 对象的创建
4.5 几个常用的内核函数
4.5.1 ObReferenceObjectByHandle()
4.5.2 ObReferenceObjectByPointer()
4.5.3 ObpLookupEntryDirectory()
4.5.4 ObpLookupObjectName()
4.5.5 ObOpenObjectByName()
4.5.6 ObReferenceObjectByName()
4.5.7 ObDereferenceObject()
4.6 对象的访问控制
4.7 句柄的遗传和继承
4.8 系统调用NtDuplicateObject()
4.9 系统调用NtClose()
第5章 进程与线程
5.1 概述
5.2 Windows进程的用户空间
5.3 系统调用NtCreateProcess()
5.4 系统调用NtCreateThread()
5.5 Windows的可执行程序映像
5.6 Windows的进程创建和映像装入
5.7 Windows DLL的装入和连接
5.8 Windows的APC机制
5.9 Windows线程的调度和切换
5.9.1 x86系统结构与线程切换
5.9.2 几个重要的数据结构
5.9.3 线程的切换
5.9.4 线程的调度
5.10 线程和进程的优先级
5.11 线程本地存储TLS
5.12 进程挂靠
5.13 Windows的跨进程操作
5.14 Windows线程间的相互作用
第6章 进程间通信
6.1 概述
6.2 共享内存区(Section)
6.3 线程的等待/唤醒机制
6.4 信号量(Semaphore)
6.5 互斥门(Mutant)
6.6 事件(Event)
6.7 命名管道(Named Pipe)和信插(Mailslot)
6.8 本地过程调用(LPC)
6.9 视窗报文(Message)
第7章 视窗报文
7.1 视窗线程与Win32k扩充系统调用
7.2 视窗报文的接收
7.3 Win32k的用户空间回调机制
7.4 用户空间的外挂函数
7.5 视窗报文的发送
7.6 键盘输入线程
7.7 鼠标器输入线程
7.8 默认的报文处理
第8章 结构化异常处理
8.1 结构化异常处理的程序框架
8.2 系统空间的结构化异常处理
8.3 用户空间的结构化异常处理
8.4 软异常
下册
第9章 设备驱动
9.1 Windows的设备驱动框架
9.2 一个“老式”驱动模块的实例
9.3 DPC函数及其执行
9.4 内核劳务线程
9.5 一组PnP设备驱动模块的实例
9.6 中断处理
9.7 一个过滤设备驱动模块的示例
9.8 设备驱动模块的装载
9.9 磁盘的设备驱动堆叠
9.9.1 类驱动disk.sys
9.10 磁盘的Miniport驱动模块
9.11 命名管道与Mailslot
9.12 MDL
9.13 同步I/O与异步I/O
9.14 IRP请求的完成与返回
第10章 网络操作
10.1 概述
10.2 NDIS及其实现
10.3 Windows的网络驱动堆叠
10.3.1 NIC驱动
10.3.2 LAN驱动模块
10.3.3 TCP/IP驱动模块
10.3.4 AFD驱动与Winsock
10.4 Socket的无连接通信
10.5 Socket的有连接通信
10.6 Winsock的实现
第11章 文件操作
11.1 Win32 API函数CreateFileW()
11.2 NT路径名
11.3 文件路径名的解析
11.4 FAT32文件系统
11.5 文件系统驱动的装载和初始化
11.6 文件卷的安装
11.7 文件的创建
11.8 缓存管理
11.9 文件的读写
11.10 NTFS文件系统简介
第12章 操作系统的安全性
12.1 概述
12.2 证章
12.3 安全描述块和ACL
12.4 访问权限检查
第13章 注册表
13.1 注册表操作
13.2 注册表的初始化和装载
13.3 库函数RtlQueryRegistryValues()
第14章 系统管理进程与服务进程
14.1 系统管理进程Smss
14.2 Windows子系统的服务进程Csrss
14.3 服务管理进程Services
14.4 服务进程Svchost
跋
参考文献
第1章 概述
1.1 Windows操作系统发展简史
1.2 用户空间和系统空间
1.3 Windows内核
1.4 开源项目ReactOS及其代码
1.5 Windows内核函数的命名
第2章 系统调用
2.1 内核与系统调用
2.2 系统调用的内核入口KiSystemService()
2.3 系统调用的函数跳转
2.4 系统调用的返回
2.5 快速系统调用
2.6 从内核中发起系统调用
第3章 内存管理
3.1 内存区间的动态分配
3.1.1 内核对用户空间的管理
3.1.2 内核对于物理页面的管理
3.1.3 虚存页面的映射
3.1.4 Hyperspace的临时映射
3.1.5 系统空间的映射
3.1.6 系统调用NtAllocateVirtualMemory()
3.2 页面异常
3.3 页面的换出
3.4 共享映射区(Section)
3.5 系统空间的缓冲区管理
第4章 对象管理
4.1 对象与对象目录
4.2 对象类型
4.3 句柄和句柄表
4.4 对象的创建
4.5 几个常用的内核函数
4.5.1 ObReferenceObjectByHandle()
4.5.2 ObReferenceObjectByPointer()
4.5.3 ObpLookupEntryDirectory()
4.5.4 ObpLookupObjectName()
4.5.5 ObOpenObjectByName()
4.5.6 ObReferenceObjectByName()
4.5.7 ObDereferenceObject()
4.6 对象的访问控制
4.7 句柄的遗传和继承
4.8 系统调用NtDuplicateObject()
4.9 系统调用NtClose()
第5章 进程与线程
5.1 概述
5.2 Windows进程的用户空间
5.3 系统调用NtCreateProcess()
5.4 系统调用NtCreateThread()
5.5 Windows的可执行程序映像
5.6 Windows的进程创建和映像装入
5.7 Windows DLL的装入和连接
5.8 Windows的APC机制
5.9 Windows线程的调度和切换
5.9.1 x86系统结构与线程切换
5.9.2 几个重要的数据结构
5.9.3 线程的切换
5.9.4 线程的调度
5.10 线程和进程的优先级
5.11 线程本地存储TLS
5.12 进程挂靠
5.13 Windows的跨进程操作
5.14 Windows线程间的相互作用
第6章 进程间通信
6.1 概述
6.2 共享内存区(Section)
6.3 线程的等待/唤醒机制
6.4 信号量(Semaphore)
6.5 互斥门(Mutant)
6.6 事件(Event)
6.7 命名管道(Named Pipe)和信插(Mailslot)
6.8 本地过程调用(LPC)
6.9 视窗报文(Message)
第7章 视窗报文
7.1 视窗线程与Win32k扩充系统调用
7.2 视窗报文的接收
7.3 Win32k的用户空间回调机制
7.4 用户空间的外挂函数
7.5 视窗报文的发送
7.6 键盘输入线程
7.7 鼠标器输入线程
7.8 默认的报文处理
第8章 结构化异常处理
8.1 结构化异常处理的程序框架
8.2 系统空间的结构化异常处理
8.3 用户空间的结构化异常处理
8.4 软异常
下册
第9章 设备驱动
9.1 Windows的设备驱动框架
9.2 一个“老式”驱动模块的实例
9.3 DPC函数及其执行
9.4 内核劳务线程
9.5 一组PnP设备驱动模块的实例
9.6 中断处理
9.7 一个过滤设备驱动模块的示例
9.8 设备驱动模块的装载
9.9 磁盘的设备驱动堆叠
9.9.1 类驱动disk.sys
9.10 磁盘的Miniport驱动模块
9.11 命名管道与Mailslot
9.12 MDL
9.13 同步I/O与异步I/O
9.14 IRP请求的完成与返回
第10章 网络操作
10.1 概述
10.2 NDIS及其实现
10.3 Windows的网络驱动堆叠
10.3.1 NIC驱动
10.3.2 LAN驱动模块
10.3.3 TCP/IP驱动模块
10.3.4 AFD驱动与Winsock
10.4 Socket的无连接通信
10.5 Socket的有连接通信
10.6 Winsock的实现
第11章 文件操作
11.1 Win32 API函数CreateFileW()
11.2 NT路径名
11.3 文件路径名的解析
11.4 FAT32文件系统
11.5 文件系统驱动的装载和初始化
11.6 文件卷的安装
11.7 文件的创建
11.8 缓存管理
11.9 文件的读写
11.10 NTFS文件系统简介
第12章 操作系统的安全性
12.1 概述
12.2 证章
12.3 安全描述块和ACL
12.4 访问权限检查
第13章 注册表
13.1 注册表操作
13.2 注册表的初始化和装载
13.3 库函数RtlQueryRegistryValues()
第14章 系统管理进程与服务进程
14.1 系统管理进程Smss
14.2 Windows子系统的服务进程Csrss
14.3 服务管理进程Services
14.4 服务进程Svchost
跋
参考文献
采用开源代码ReactOS
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×