搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Windows内核情景分析:采用开源代码ReactOS
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121081149
  • 作      者:
    毛德操著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2009
收藏
编辑推荐
  历时3年,近1500页篇幅,毛德操老师重磅著作
展开
内容介绍
  《Windows内核情景分析:采用开源代码ReactOS(上、下册)》通过分析ReactOS的源代码介绍了Windows内核各个方面的结构、功能、算法与具体实现。全书从“内存管理”、“进程”、“进程间通信”、“设备驱动”等多个方面进行分析介绍,所有的分析都有ReactOS的源代码(以及部分由微软公开的源代码)作为依据,使读者能深入理解Windows内核的方方面面,也可以使读者的软件开发能力和水平得到提高。
  《Windows内核情景分析:采用开源代码ReactOS(上、下册)》可供大学有关专业的高年级学生和研究生用做教学参考,也可供广大的软件工程师,特别是从事系统软件研发的工程师用于工作参考或用做进修教材。
展开
精彩书摘
  上册
  第2章 系统调用
  2.1 内核与系统调用
  对于应用程序的运行即应用进程而言,操作系统内核的作用体现在一组可以供其调用的函数,称为“系统调用(System Call)”,正是这些系统调用加上一些辅助的手段构成了应用软件的运行环境,即日常所说的“运行平台”。从应用软件的角度看,这些系统调用都是操作系统为其提供的服务,所以也称“系统服务(System Service)”。在本书中,“系统调用”与“系统服务”是可以互换的同义词。
  从程序运行的角度看,进程是主动的、“活性(Active)”的,是发出调用请求的一方;而内核是被动(Passive)的,只是应进程的要求而提供服务。但是,从整个系统的角度看,则内核也有活性的一面,诸多应用进程就是在内核的调度下运行,所以内核有其两面性。离开进程调度,内核就只剩下了被动的一面,那就类似于一个运行时程序库了。而系统调用即系统服务,就体现了内核被动的一面。内核活性的一面即进程调度,对于应用程序而言是无形的,其目的就在于为应用软件创造一种似乎独占着CPU的假象;相比之下内核被动的一面即系统调用则是有形的,要不然应用程序就无法调用这些服务。
  系统调用所提供的服务是在内核中,一般是在“系统空间”实现的,而应用软件则都在用户空间运行,二者之间有着空间的间隔,实质上是CPU运行模式的不同。所以,在应用软件与内核之间必定存在着一个明确定义的“系统调用界面”。
  不过要由应用软件直接按规定的形式进行系统调用是不方便的,所以一般都要在外面包上一层,提供一套便于调用的(用户空间)库函数作为中介。在UNIX/Linux系统及后来的POSIX标准中,这就是c语言运行库的一部分。就调用的参数、返回值、作用而言,由标准C语言运行库提供的“系统调用”函数与实际的系统调用一一对应并基本相同。例如,read()是个系统调用,而用户程序引用的read()实际上是库函数,二者是对应的,并且参数的数量、类型、次序等基本相同,功能则完全相同。标准C语言运行库也提供一些建立在系统调用基础上功能有所扩充的高层库函数,例如fread0是建立在read()基础上的,但是用起来更加方便,可是那就不叫系统调用。
展开
目录
上册
第1章  概述 1
1.1  Windows操作系统发展简史 1
1.2  用户空间和系统空间 3
1.3  Windows内核 4
1.4  开源项目ReactOS及其代码 9
1.5  Windows内核函数的命名 10

第2章  系统调用 12
2.1  内核与系统调用 12
2.2  系统调用的内核入口KiSystemService() 22
2.3  系统调用的函数跳转 29
2.4  系统调用的返回 32
2.5  快速系统调用 35
2.6  从内核中发起系统调用 42

第3章  内存管理 44
3.1  内存区间的动态分配 47
3.1.1  内核对用户空间的管理 48
3.1.2  内核对于物理页面的管理 60
3.1.3  虚存页面的映射 67
3.1.4  Hyperspace的临时映射 78
3.1.5  系统空间的映射 86
3.1.6  系统调用NtAllocateVirtualMemory() 90
3.2  页面异常 97
3.3  页面的换出 107
3.4  共享映射区(Section) 115
3.5  系统空间的缓冲区管理 133

第4章  对象管理 136
4.1  对象与对象目录 136
4.2  对象类型 148
4.3  句柄和句柄表 162
4.4  对象的创建 169
4.5  几个常用的内核函数 179
4.5.1  ObReferenceObjectByHandle() 179
4.5.2  ObReferenceObjectByPointer() 187
4.5.3  ObpLookupEntryDirectory() 188
4.5.4  ObpLookupObjectName() 192
4.5.5  ObOpenObjectByName() 209
4.5.6  ObReferenceObjectByName() 213
4.5.7  ObDereferenceObject() 214
4.6  对象的访问控制 218
4.7  句柄的遗传和继承 218
4.8  系统调用NtDuplicateObject() 223
4.9  系统调用NtClose() 233

第5章  进程与线程 241
5.1  概述 241
5.2  Windows进程的用户空间 253
5.3  系统调用NtCreateProcess() 273
5.4  系统调用NtCreateThread() 284
5.5  Windows的可执行程序映像 300
5.6  Windows的进程创建和映像装入 305
5.7  Windows DLL的装入和连接 329
5.8  Windows的APC机制 358
5.9  Windows线程的调度和切换 381
5.9.1  x86系统结构与线程切换 382
5.9.2  几个重要的数据结构 385
5.9.3  线程的切换 388
5.9.4  线程的调度 395
5.10  线程和进程的优先级 409
5.11  线程本地存储TLS 421
5.12  进程挂靠 434
5.13  Windows的跨进程操作 442
5.14  Windows线程间的相互作用 450

第6章  进程间通信 467
6.1  概述 467
6.2  共享内存区(Section) 469
6.3  线程的等待/唤醒机制 470
6.4  信号量(Semaphore) 499
6.5  互斥门(Mutant) 505
6.6  事件(Event) 512
6.7  命名管道(Named Pipe)和信插(Mailslot) 516
6.8  本地过程调用(LPC) 521
6.9  视窗报文(Message) 555

第7章  视窗报文 556
7.1  视窗线程与Win32k扩充系统调用 556
7.2  视窗报文的接收 566
7.3  Win32k的用户空间回调机制 590
7.4  用户空间的外挂函数 602
7.5  视窗报文的发送 615
7.6  键盘输入线程 628
7.7  鼠标器输入线程 642
7.8  默认的报文处理 662

第8章  结构化异常处理 665
8.1  结构化异常处理的程序框架 666
8.2  系统空间的结构化异常处理 683
8.3  用户空间的结构化异常处理 710
8.4  软异常 720

下册
第9章  设备驱动 729
9.1  Windows的设备驱动框架 729
9.2  一个“老式”驱动模块的实例 745
9.3  DPC函数及其执行 769
9.4  内核劳务线程 778
9.5  一组PnP设备驱动模块的实例 783
9.6  中断处理 817
9.7  一个过滤设备驱动模块的示例 828
9.8  设备驱动模块的装载 830
9.9  磁盘的设备驱动堆叠 858
9.9.1  类驱动disk.sys 860
9.10  磁盘的Miniport驱动模块 887
9.11  命名管道与Mailslot 896
9.12  MDL 918
9.13  同步I/O与异步I/O 932
9.14  IRP请求的完成与返回 946

第10章  网络操作 957
10.1  概述 957
10.2  NDIS及其实现 959
10.3  Windows的网络驱动堆叠 974
10.3.1  NIC驱动 975
10.3.2  LAN驱动模块 997
10.3.3  TCP/IP驱动模块 1014
10.3.4  AFD驱动与Winsock 1035
10.4  Socket的无连接通信 1062
10.5  Socket的有连接通信 1089
10.6  Winsock的实现 1093

第11章  文件操作 1099
11.1  Win32 API函数CreateFileW() 1099
11.2  NT路径名 1109
11.3  文件路径名的解析 1119
11.4  FAT32文件系统 1144
11.5  文件系统驱动的装载和初始化 1169
11.6  文件卷的安装 1175
11.7  文件的创建 1199
11.8  缓存管理 1214
11.9  文件的读写 1237
11.10  NTFS文件系统简介 1252

第12章  操作系统的安全性 1278
12.1  概述 1278
12.2  证章 1289
12.3  安全描述块和ACL 1305
12.4  访问权限检查 1322

第13章  注册表 1351
13.1  注册表操作 1351
13.2  注册表的初始化和装载 1369
13.3  库函数RtlQueryRegistryValues() 1376

第14章  系统管理进程与服务进程 1394
14.1  系统管理进程Smss 1394
14.2  Windows子系统的服务进程Csrss 1408
14.3  服务管理进程Services 1424
14.4  服务进程Svchost 1449
跋 1464
参考文献 1466
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证