热门搜索: 中考 高考 考试 开卷17
服务电话 024-96192/23945006
 

深入解析Windows操作系统 第7版 卷1

编号:
wx1202327685
销售价:
¥154.71
(市场价: ¥179.90)
赠送积分:
155
数量:
   
商品介绍

深入研究Windows系统架构和内部构件,并了解核心组件在幕后的工作原理。
这本指南由微软内部专家团队撰写,针对Windows 10和Windows Server 2016进行了全面更新。
无论你是一名开发人员还是IT专业人士,都可以学到关于Windows如何运作的关键的内部观点。
通过亲身实践,你将体验到Windows操作系统的内部行为——获取可用于改进应用程序设计、调试、系统性能和支持的知识。

本书将帮助读者:
● 了解Windows系统架构及其zui重要的实体,例如进程和线程;
● 了解进程如何管理资源以及在进程执行中如何调度线程;
● 观察Windows如何管理虚拟和物理内存;
● 深入了解Windows I/O系统,了解设备驱动程序如何工作并与系统的其余部分整合在一起;
● 学习Windows安全模型,了解它如何管理访问、审核和shou权,并了解Windows 10和Windows Server 2016中的新机制。

本书基于Windows 10和Windows Server 2016编写,深入解析Windows操作系统的系统架构、进程、线程、内存管理等知识,旨在帮助读者了解Windows 10和Windows Server 2016操作系统内部工作原理,使之在针对Windows平台开发应用程序时,可以更好地理解不同设计机制间的关系。
本书先介绍Windows的基本概念和工具以及Windows的架构和主要组件,然后详细介绍进程和作业、内存管理、I/O系统等内容,很后介绍Windows内置的安全机制以及用于阻止滥用的各种缓解措施。
本书辅以大量实验,并给出了具体步骤,可供读者自行尝试,让他们通过内核调试器、Sysinternals工具和专为本书内容开发的其他工具一窥Windows的工作原理,进而能够将这些知识应用于改进应用程序设计、调试以及系统性能和支持。
本书适合希望了解Windows 10和Windows Server 2016操作系统内部工作原理的开发者、系统管理员及安全研究人员阅读。

帕维尔·约西沃维奇(Pavel Yosifovich)是一位精通微软技术和工具的开发者、讲师,还是微软 MVP 以及在线教育网站 Pluralsight 的签约作者。

亚历克斯·伊奥尼斯库(Alex Ionescu) 是CrowdStrike 的 EDR 战略副总裁,也是底层系统软件、操作系统研究与内核开发、 安全培训和逆向工程领域的专家。他曾在世界各地讲授有关 Windows 内部机理的课程,并活跃于安全研究社区,多次参加会议讲座和 bug 赏金计划。

马克· E.鲁辛诺维奇( Mark E.Russinovich)是 Microsoft Azure( 微软的优选化、企业级云平台)的首席技术官。他是分布式系统和操作系统领域的专家,曾是 Winternals Software 公司的联合创始人,并在该公司被微软收购后加入了微软。他还是 Sysinternals 工具的发明者和Sysinternals 网站的创立者。

大卫· A . 所罗门(David A. Solomon)在其退休前的 20 余年里,不遗余力地为众多开发者和 IT 专业人士讲授有关 Windows 内核接口的课程。 在出版了自己的本书 Windows NT for OpenVMS Professionals 后,他撰写了 Inside Windows NT 的第 2 版,并与马克·E.鲁辛诺维奇合著了第3 ~ 6 版。他曾多次在微软的大会上发言,并于 1993 年和 2005 年荣获微软很有价值专家(MVP)奖项。

第  1章 概念和工具  1
1.1  Windows操作系统的版本  1
1.1.1  Windows 10和未来的Windows版本  3
1.1.2  Windows 10和OneCore  3
1.2  基本概念和术语  3
1.2.1  Windows API  3
1.2.2  服务、函数和例程  6
1.2.3  进程  7
1.2.4  线程  15
1.2.5  作业  17
1.2.6  虚拟内存  18
1.2.7  内核模式和用户模式  20
1.2.8  虚拟机监控程序  23
1.2.9  固件  25
1.2.10  终端服务和多会话  25
1.2.11  对象和句柄  26
1.2.12  安全性  26
1.2.13  注册表  28
1.2.14  Unicode  28
1.3  深入了解Windows内部原理  30
1.3.1  性能监视器和资源监视器  30
1.3.2  内核调试  32
1.3.3  Windows软件开发包  36
1.3.4  Sysinternals工具  37
1.4  小结  37
第  2章 系统架构  38
2.1  需求和设计目标  38
2.2  操作系统模型  39
2.3  架构概述  39
2.3.1  可移植性  41
2.3.2  对称多处理器  42
2.3.3  可伸缩性  45
2.3.4  客户端和服务器版本之间的差异  45
2.3.5  已检验版本  48
2.4  基于虚拟化的安全架构概述  49
2.5  重要的系统组件  51
2.5.1  环境子系统和子系统DLL  52
2.5.2  其他子系统  57
2.5.3  执行体  61
2.5.4  内核  63
2.5.5  硬件抽象层  66
2.5.6  设备驱动程序  69
2.5.7  系统进程  74
2.6  小结  84
第3章  进程和作业  85
3.1  创建进程  85
3.1.1  CreateProcess*函数的参数  86
3.1.2  创建Windows“现代化”进程  87
3.1.3  创建其他类型的进程  87
3.2  进程的内部构造  88
3.3  受保护进程  95
3.3.1  受保护进程轻型(PPL)  96
3.3.2  对第三方PPL的支持  99
3.4  最小进程和Pico进程  100
3.4.1  最小进程  100
3.4.2  Pico进程  101
3.5  Trustlet(安全进程)  102
3.5.1  Trustlet的构造  103
3.5.2  Trustlet策略元数据  103
3.5.3  Trustlet的属性  104
3.5.4  系统内置的Trustlet  104
3.5.5  Trustlet的标识  105
3.5.6  隔离用户模式服务  105
3.5.7  Trustlet可访问的系统调用  106
3.6  CreateProcess的流程  107
3.6.1  第 1阶段:转换并验证参数和标志  108
3.6.2  第 2阶段:打开要执行的映像  112
3.6.3  第3阶段:创建Windows执行体进程对象  114
3.6.4  第4阶段:创建初始线程及其栈和上下文  118
3.6.5  第5阶段:执行与Windows子系统有关的初始化工作  120
3.6.6  第6阶段:初始线程的启动执行  121
3.6.7  第7阶段:在新进程的上下文中执行进程初始化工作  122
3.7  进程的终止  126
3.8  映像加载程序  127
3.8.1  进程初始化的早期工作  129
3.8.2  DLL名称解析和重定向  131
3.8.3  已加载模块数据库  135
3.8.4  导入解析  138
3.8.5  导入过程初始化的后处理  139
3.8.6  SwitchBack  140
3.8.7  API集  142
3.9  作业  144
3.9.1  作业的限制  145
3.9.2  使用作业  146
3.9.3  嵌套的作业  146
3.9.4  Windows容器(Server Silo)  150
3.10  小结  157
第4章  线程  158
4.1  创建线程  158
4.2  线程的内部机理  159
4.2.1  数据结构  159
4.2.2  线程的诞生  169
4.3  查看线程的活动  170
4.4  线程的调度  175
4.4.1  Windows调度概述  175
4.4.2  优先级级别  176
4.4.3  线程的状态  181
4.4.4  调度程序数据库  186
4.4.5  量程  188
4.4.6  优先级提升  193
4.4.7  上下文切换  207
4.4.8  调度场景  208
4.4.9  空闲线程  211
4.4.10  线程的挂起  214
4.4.11  (深度)冻结  214
4.4.12  线程的选择  216
4.4.13  多处理器系统  217
4.4.14  多处理器系统中线程的选择  230
4.4.15  处理器的选择  231
4.4.16  异质调度(big.LITTLE)  233
4.5  基于组的调度  234
4.5.1  动态公平共享调度  235
4.5.2  CPU速率限制  238
4.5.3  处理器的动态添加和替换  241
4.6  工作者工厂(线程池)  242
4.7  小结  245
第5章  内存管理  246
5.1  内存管理器简介  246
5.1.1  内存管理器组件  247
5.1.2  大页面和小页面  247
5.1.3  查看内存使用情况  249
5.1.4  内部同步  252
5.2  内存管理器提供的服务  252
5.2.1  页面状态和内存的分配  253
5.2.2  提交用量和提交限制  256
5.2.3  锁定到内存  256
5.2.4  分配的粒度  257
5.2.5  共享内存和映射文件  257
5.2.6  保护内存  259
5.2.7  数据执行保护  260
5.2.8  写入时复制  263
5.2.9  地址窗口扩展  264
5.3  内核模式堆(系统内存池)  265
5.3.1  池的大小  266
5.3.2  监视内存池的使用  267
5.3.3  旁视列表  270
5.4  堆管理器  271
5.4.1  进程堆  272
5.4.2  堆的类型  273
5.4.3  NT堆  273
5.4.4  堆同步  273
5.4.5  段堆  275
5.4.6  堆的安全特性  279
5.4.7  堆的调试特性  280
5.4.8  页堆  280
5.4.9  容错堆  283
5.5  虚拟地址空间布局  284
5.5.1  x86地址空间布局  285
5.5.2  x86系统地址空间布局  288
5.5.3  x86会话空间  288
5.5.4  系统页表项  290
5.5.5  ARM地址空间布局  291
5.5.6  64位地址空间布局  291
5.5.7  x64虚拟寻址的局限  293
5.5.8  动态系统虚拟地址空间管理  293
5.5.9  系统虚拟地址空间配额  298
5.5.10  用户地址空间布局  298
5.6  地址转换  303
5.6.1  x86虚拟地址转换  303
5.6.2  地址转换旁视缓冲区  308
5.6.3  x64虚拟地址转换  311
5.6.4  ARM虚拟地址转换  311
5.7  页面错误的处理  312
5.7.1  无效PTE  313
5.7.2  原型PTE  314
5.7.3  页面换入I/O  316
5.7.4  冲突的页面错误  316
5.7.5  聚簇的页面错误  317
5.7.6  页面文件  317
5.7.7  提交用量和系统提交限制  322
5.7.8  提交用量和页面文件大小  325
5.8  栈  326
5.8.1  用户栈  326
5.8.2  内核栈  327
5.8.3  DPC栈  328
5.9  虚拟地址描述符  328
5.9.1  进程的VAD  329
5.9.2  旋转VAD  330
5.10  NUMA  331
5.11  节对象  331
5.12  工作集  338
5.12.1  按需换页  338
5.12.2  逻辑预取器和ReadyBoot  339
5.12.3  放置策略  341
5.12.4  工作集管理  342
5.12.5  平衡集管理器和交换器  346
5.12.6  系统工作集  346
5.12.7  内存通知事件  347
5.13  页帧编号数据库  349
5.13.1  页面列表的转换  351
5.13.2  页面优先级  357
5.13.3  已修改页面写出器和映射页面写出器  359
5.13.4  PFN的数据结构  361
5.13.5  页面文件的保留  364
5.14  物理内存的限制  366
5.15  内存压缩  369
5.15.1  压缩过程图解  370
5.15.2  压缩架构  372
5.16  内存分区  374
5.17  内存联合  376
5.17.1  搜索阶段  378
5.17.2  分类阶段  378
5.17.3  页面联合阶段  379
5.17.4  从私有到共享PTE  380
5.17.5  联合页面的释放  381
5.18  内存飞地  384
5.18.1  编程接口  385
5.18.2  内存飞地的初始化  385
5.18.3  飞地的构造  386
5.18.4  将数据载入飞地  387
5.18.5  飞地的初始化  388
5.19  前瞻性内存管理(SuperFetch)  388
5.19.1  组件  388
5.19.2  跟踪和日志记录  390
5.19.3  场景  390
5.19.4  页面优先级和重均衡  391
5.19.5  健壮性能  393
5.19.6  ReadyBoost  394
5.19.7  ReadyDrive  395
5.19.8  进程反射  395
5.20  小结  397
第6章  I/O系统  398
6.1  I/O系统组件  398
6.1.1  I/O管理器  400
6.1.2  典型的I/O处理  400
6.2  中断请求级别和延迟过程调用  402
6.2.1  中断请求级别  402
6.2.2  延迟过程调用  404
6.3  设备驱动程序  405
6.3.1  设备驱动程序的类型  406
6.3.2  驱动程序的结构  410
6.3.3  驱动程序对象和设备对象  412
6.3.4  打开设备  417
6.4  I/O的处理  421
6.4.1  I/O的类型  421
6.4.2  I/O请求包  423
6.4.3  针对单层硬件驱动程序的I/O请求  433
6.4.4  针对分层驱动程序的I/O请求  440
6.4.5  线程无关I/O  443
6.4.6  I/O的取消  443
6.4.7  I/O完成端口  447
6.4.8  I/O优先级处理  451
6.4.9  容器通知  455
6.5  驱动程序验证程序  456
6.5.1  与I/O有关的验证选项  458
6.5.2  与内存有关的验证选项  458
6.6  即插即用管理器  462
6.6.1  即插即用的支持级别  462
6.6.2  设备的枚举  463
6.6.3  设备栈  465
6.6.4  驱动程序对即插即用的支持  470
6.6.5  即插即用驱动程序的安装  472
6.7  常规驱动程序的加载和安装  475
6.7.1  驱动程序的加载  475
6.7.2  驱动程序的安装  477
6.8  Windows驱动程序基础  477
6.8.1  内核模式驱动程序框架  478
6.8.2  用户模式驱动程序框架  485
6.9  电源管理器  488
6.9.1  连接待机和新型待机  491
6.9.2  电源管理器操作  491
6.9.3  驱动程序的电源操作  492
6.9.4  驱动程序和应用程序对设备电源的控制  495
6.9.5  电源管理框架  495
6.9.6  电源可用性请求  497
6.10  小结  498
第7章  安全性  500
7.1  安全评级  500
7.1.1  可信计算机系统评估标准  500
7.1.2  通用标准  501
7.2  安全系统组件  502
7.3  基于虚拟化的安全性  504
7.3.1  Credential Guard  505
7.3.2  Device Guard  510
7.4  保护对象  512
7.4.1  访问检查  513
7.4.2  安全标识符  516
7.4.3  虚拟服务账户  533
7.4.4  安全描述符和访问控制  537
7.4.5  动态访问控制  550
7.5  AuthZ API  551
7.6  账户权限和特权  552
7.6.1  账户权限  553
7.6.2  特权  554
7.6.3  超级特权  558
7.7  进程和线程的访问令牌  559
7.8  安全审核  559
7.8.1  审核对象访问  560
7.8.2  全局审核策略  563
7.8.3  不错审核策略设置  564
7.9  AppContainer  565
7.9.1  UWP应用概述  566
7.9.2  AppContainer  567
7.10  登录  587
7.10.1  Winlogon的初始化  588
7.10.2  用户登录的步骤  590
7.10.3  可保证的身份验证  594
7.10.4  Windows Biometric Framework  595
7.10.5  Windows Hello  597
7.11  用户账户控制和虚拟化  598
7.11.1  文件系统和注册表虚拟化  598
7.11.2  权限提升  603
7.12  攻击缓解  608
7.12.1  进程缓解策略  608
7.12.2  控制流完整性  612
7.12.3  安全声明  622
7.13  应用程序标识  626
7.14  AppLocker  626
7.15  软件限制策略  630
7.16  内核补丁保护  632
7.17  PatchGuard  633
7.18  HyperGuard  635
7.19  小结  636

商品参数
基本信息
出版社 人民邮电出版社
ISBN 9787115556943
条码 9787115556943
编者 [美]帕维尔·约西沃维奇,[美]亚历克斯·伊奥尼斯库,[美]Mark E.Russinovich 等
译者
出版年月 2021-04-01 00:00:00.0
开本 16开
装帧 平装
页数 636
字数
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]