欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 教程文档 > 操作系统&服务器 > Windows内核原理与实现[PDF][68.79MB]

Windows内核原理与实现[PDF][68.79MB]

2019-05-27 1108 收藏 0 赞一个 0 真差劲 0 去评论 去下载

内容简介

本书从操作系统原理的角度,详细解析了Windows如何实现现代操作系统的各个关键部件,包括进程、线程、物理内存和虚拟内存的管理,Windows中的同步和并发性支持,以及Windows的I/O模型。在介绍这些关键部件时,本书直接以Windows的源代码(WRK,WindowsResearch Kernel)为参照,因而读者可以了解像Windows这样的复杂操作系统是如何在x86处理器上运行的。

在内容选取方面,本书侧重于Windows内核中最基本的系统部件,同时也兼顾到作为一个操作系统的完整性,所以,本书也介绍了像存储体系、网络、Windows环境子系统等,这些虽然并不位于内核模块但却支撑整个Windows运行的重要部件。在本书最后,也介绍了WindowsServer 2003以后的内核发展和变化。

虽然书中有大量关于Windows代码实现的描述,但是本书并没有罗列WRK中的代码,即使读者不对照WRK的源代码,也可以从这些章节的描述中理解Windows的实现机理。在每一个技术专题的介绍中,本书几乎都提供了一个框架图,并且有关键细节的实现分析,这样做的意图是让读者既能够对一项技术有总体上的把握,也通晓关键的实现细节。

Windows操作系统已经有20年历史了,市面上有大量关于Windows技术的文档和书籍,但是,真正从源代码来诠释Windows底层机理的,本书还是第一次尝试。在本书覆盖的内容中,有相当一部分是第一次以文字形式披露出来的,期望这些内容能消除人们对于Windows的神秘感。

写作本书的目的是让对Windows有好奇心的人真正了解到Windows中的核心机理,让计算机专业的学生和老师,以及系统软件工程师可以快速地领略到Windows中先进的系统技术,以及在Windows上编写出更加高效的软件。本书也配备了一些小工具,通过这些小工具,读者可以查看内核中的静态或动态的信息,甚至观察系统的行为。

目录

第1章 概述1

1.1 操作系统基础2

1.1.1 计算机系统的硬件资源管理 2

1.1.2 为应用程序提供执行环境5

1.2 学习操作系统之必备知识 7

1.3 Windows操作系统发展历史9

1.4 Windows内核的版本 11

1.5 操作系统的研究与发展13

1.6 本章总结16

第2章Windows系统总述17

2.1 现代操作系统的基本结构 17

2.2 Windows系统结构18

2.2.1 Windows内核结构 20

2.2.2 Windows内核中的关键组件 22

2.2.3 Windows子系统32

2.2.4 系统线程和系统进程35

2.3 关于Windows研究内核37

2.3.1 WRK包含了什么38

2.3.2 WRK源代码说明39

2.3.3 本书对WRK源代码的引用41

2.4 Windows内核的基本概念 42

2.4.1 处理器模式43

2.4.2 内存管理 44

2.4.3 进程和线程管理46

2.4.4 中断和异常48

2.4.5 同步 51

2.5 Windows内核中的公共管理设施53

2.5.1 Windows内核中的对象管理 53

2.5.2 注册表和配置管理器61

2.5.3 事件追踪(ETW)72

2.5.4 安全性管理75

2.6 Windows引导过程81

2.6.1 内核加载 82

2.6.2 内核初始化85

2.6.3 建立用户登录会话 90

2.7 本章总结96

第3章Windows进程和线程97

3.1 进程基本概念97

3.1.1 多进程模型98

3.1.2 进程与程序99

3.2 线程基本概念102

3.2.1 线程模型 102

3.2.2 线程调度算法 104

3.2.3 线程与进程的关系 106

3.3 Windows中进程和线程的数据结构 106

3.3.1 内核层的进程和线程对象106

3.3.2 执行体层的进程和线程对象 118

3.4 Windows的进程和线程管理129

3.4.1 Windows进程的句柄表 129

3.4.2 获得当前线程或进程135

3.4.3 进程和线程的创建过程 136

3.4.4 进程和线程的结束处理 146

3.4.5 系统初始进程和线程148

3.5 Windows中的线程调度150

3.5.1 线程优先级150

3.5.2 线程状态转移 153

3.5.3 时限管理 163

3.5.4 优先级调度和环境切换 165

3.6 进程和线程运行状态监视工具 171

3.6.1 ProcMon使用示例 171

3.6.2 ProcMon实现原理 173

3.7 本章总结174

第4章Windows内存管理175

4.1 内存管理概述176

4.1.1 页式内存管理 177

4.1.2 段式内存管理 181

4.1.3 内存管理算法介绍 184

4.1.4 Windows内存管理概述 192

4.2 Windows系统内存管理194

4.2.1 系统地址空间初始化194

4.2.2 系统地址空间内存管理 209

4.2.3 系统PTE区域的管理223

4.3 进程内存管理229

4.3.1 地址空间的创建和初始化229

4.3.2 地址空间切换 234

4.3.3 进程地址空间的内存管理235

4.3.4 内存区对象241

4.4 内存页面交换250

4.4.1 Intel x86中的PTE251

4.4.2 软件PTE:无效PTE和原型PTE253

4.4.3 页面错误处理 257

4.4.4 Windows的写时复制263

4.5 物理内存管理265

4.5.1 PFN数据库 266

4.5.2 物理页面的状态变化272

4.5.3 物理页面链表的管理和操作 275

4.5.4 修改页面写出器280

4.5.5 进程/栈交换器 282

4.5.6 低内存通知和高内存通知285

4.6 工作集管理 286

4.6.1 Windows工作集管理器 286

4.6.2 平衡集管理器 292

4.7 内存监视工具MemMon293

4.7.1 MemMon使用介绍 293

4.7.2 MemMon实现原理 295

4.8 本章总结295

第5章Windows并发和同步297

5.1 进程和线程的同步基础297

5.1.1 并发性基础298

5.1.2 进程或线程之间的通信 301

5.1.3 经典的同步问题305

5.2 Windows中断与异常 310

5.2.1 硬件中断的发生和处理 311

5.2.2 中断请求级别(IRQL) 317

5.2.3 中断对象 320

5.2.4 DPC(延迟过程调用) 323

5.2.5 时钟中断和定时器管理 327

5.2.6 APC(异步过程调用) 330

5.2.7 异常分发 336

5.3 不依赖于线程调度的同步机制 343

5.3.1 提升IRQL实现数据同步 343

5.3.2 互锁操作 345

5.3.3 无锁的单链表实现 346

5.3.4 自旋锁349

5.4 基于线程调度的同步机制 354

5.4.1 线程进入等待 354

5.4.2 分发器对象361

5.4.3 门等待369

5.4.4 执行体资源(executiveresource) 370

5.4.5 推锁(pushlock) 373

5.4.6 死锁 378

5.5 观察线程同步关系——DPerfLite379

5.5.1 DPerfLite使用示例 379

5.5.2 DPerfLite实现原理 381

5.6 本章总结382

第6章Windows I/O系统 383

6.1 I/O概述 384

6.1.1 现代计算机系统的I/O384

6.1.2 I/O软件技术388

6.1.3 Windows I/O系统结构390

6.2 I/O管理器 392

6.2.1 驱动程序初始化393

6.2.2 驱动程序对象和设备对象399

6.2.3 文件对象 404

6.2.4 对象生命周期管理 407

6.3 即插即用管理器 408

6.3.1 即插即用的基本要求409

6.3.2 Windows中驱动程序的即插即用支持 410

6.3.3 设备列举与设备树 411

6.4 电源管理器 414

6.4.1 电源管理概述 414

6.4.2 Windows中的电源管理 417

6.5 设备驱动程序422

6.5.1 设备驱动程序分类 423

6.5.2 例子驱动程序toaster425

6.5.3 驱动程序的代码结构427

6.5.4 toaster设备的设备栈432

6.5.5 过滤驱动程序的配置和加载 434

6.5.6 非即插即用驱动程序437

6.6 I/O处理 440

6.6.1 I/O请求包(IRP)440

6.6.2 针对独立设备对象的I/O处理447

6.6.3 处理I/O请求过程中的事项 451

6.6.4 针对设备栈的I/O处理 461

6.6.5 I/O完成端口465

6.7 I/O请求监视工具IRPMon 468

6.7.1 IRPMon使用介绍468

6.7.2 IRPMon实现原理469

6.8 本章总结470

第7章Windows存储管理471

7.1 存储管理概述471

7.1.1 硬件存储体系(memoryhierarchy)472

7.1.2 Windows的存储管理结构474

7.2 Windows缓存管理476

7.2.1 Windows缓存空间的内存管理476

7.2.2 缓存管理器的数据访问路径 483

7.2.3 直接使用系统缓存中的数据 486

7.2.4 缓存管理器的预读处理 493

7.2.5 缓存管理器的延迟写496

7.3 Windows中卷的管理 499

7.3.1 Windows存储栈结构500

7.3.2 卷的挂载 504

7.3.3 卷与文件系统 507

7.3.4 文件对象的I/O处理510

7.4 Windows文件系统513

7.4.1 文件系统驱动程序结构 514

7.4.2 RAW文件系统与FsRtl519

7.4.3 文件系统的I/O过滤522

7.4.4 FAT文件系统 530

7.4.5 NTFS文件系统 534

7.5 本章总结542

第8章Windows系统服务545

8.1 Windows系统服务原理545

8.1.1 Intel x86的用户模式-内核模式切换545

8.1.2 Windows的用户模式-内核模式切换550

8.1.3 Windows中的系统服务分发 555

8.1.4 增加系统服务表或表项 562

8.2 LPC(本地过程调用)服务 565

8.2.1 LPC结构模型 565

8.2.2 LPC端口和LPC消息567

8.2.3 LPC通信模型的实现 569

8.2.4 LPC应用 575

8.3 命名管道(NamedPipe)服务 577

8.3.1 命名管道的名称解析577

8.3.2 命名管道的通信模型579

8.3.3 命名管道的实现581

8.4 邮件槽(Mailslot)服务584

8.4.1 邮件槽的名称解析 584

8.4.2 邮件槽的通信模型 585

8.4.3 邮件槽的实现 586

8.5 SDT显示工具SDTViewer588

8.5.1 SDTViewer使用介绍 588

8.5.2 SDTViewer实现原理 589

8.6 本章总结590

第9章Windows系统高级话题591

9.1 网络591

9.1.1 Windows网络体系结构 591

9.1.2 TDI(传输驱动程序接口)595

9.1.3 NDIS(网络驱动程序接口规范) 599

9.1.4 Windows Vista及以后版本的网络结构 601

9.2 Windows子系统 603

9.2.1 Windows子系统结构603

9.2.2 Windows子系统初始化与GUI线程607

9.2.3 窗口管理 610

9.2.4 GDI(图形设备接口) 620

9.2.5 Windows Vista及以后的子系统变化627

9.3 内核日志629

9.3.1 内核日志记录器629

9.3.2 利用内核日志信息诊断性能问题 632

9.4 Windows Vista/Server2008/7的重要变化 640

9.4.1 MinWin工程640

9.4.2 进程和线程管理643

9.4.3 内存管理 645

9.4.4 I/O处理的改进 647

9.5 本章总结650

附录A 建立WRK工作环境651

A.1 编译WRK651

A.2 启动WRK655

A.3 调试WRK658

附录B 内核代码插入工具KInjectToolKit 665

B.1 KInjectToolKit功能介绍666

B.2 KInjectToolKit的代码实现 667

B.3 KInjectToolKit的限制 671

参考资料673

术语对照表 681

索引687

文档截图

QQ截图20190527095529.jpg

Windows内核原理与实现[PDF][68.79MB]

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

下载地址
大家评论