登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

『簡體書』Windows内核原理与实现

書城自編碼: 2067447
分類: 簡體書→大陸圖書→計算機/網絡操作系統/系統開發
作者: 潘爱民
國際書號(ISBN): 9787121200564
出版社: 电子工业出版社
出版日期: 2013-05-01
版次: 1
頁數/字數: 716/
書度/開本: 16 釘裝: 平装

售價:NT$ 921

share:

** 我創建的書架 **
未登入.



新書推薦:
就业、利息和货币通论(徐毓枬译本)(经济学名著译丛)
《 就业、利息和货币通论(徐毓枬译本)(经济学名著译丛) 》

售價:NT$ 306.0
瘦肝
《 瘦肝 》

售價:NT$ 454.0
股票大作手回忆录
《 股票大作手回忆录 》

售價:NT$ 254.0
秩序四千年:人类如何运用法律缔造文明
《 秩序四千年:人类如何运用法律缔造文明 》

售價:NT$ 704.0
民法典1000问
《 民法典1000问 》

售價:NT$ 454.0
国术健身 易筋经
《 国术健身 易筋经 》

售價:NT$ 152.0
古罗马800年
《 古罗马800年 》

售價:NT$ 857.0
权力与相互依赖(第四版)(中译本修订版)
《 权力与相互依赖(第四版)(中译本修订版) 》

售價:NT$ 658.0

建議一齊購買:

+

NT$ 1152
《 深入解析Windows操作系统:第6版(上册) 》
+

NT$ 921
《 Rootkit:系统灰色地带的潜伏者(原书第2版)(Amazon五星级畅销书,rootkit领域的重要著作,计算机安全领域公认经典) 》
+

NT$ 921
《 Windows环境下32位汇编语言程序设计(典藏版)(含CD光盘1张) 》
+

NT$ 614
《 格蠹汇编——软件调试案例集锦 》
+

NT$ 941
《 Windows核心编程(第5版) 》
編輯推薦:
潘爱民老师十年磨一剑之作 用真实的源代码剖析Windows操作系统核心原理 ,Windows内核专家Dave
Probert作序力荐
內容簡介:
本书从操作系统原理的角度,详细解析了Windows如何实现现代操作系统的各个关键部件,包括进程、线程、物理内存和虚拟内存的管理,Windows中的同步和并发性支持,以及Windows的IO模型。在介绍这些关键部件时,本书直接以Windows的源代码(WRK,Windows
Research Kernel)为参照,因而读者可以了解像Windows这样的复杂操作系统是如何在x86处理器上运行的。
在内容选取方面,本书侧重于Windows内核中最基本的系统部件,同时也兼顾到作为一个操作系统的完整性,所以,本书也介绍了像存储体系、网络、Windows环境子系统等,这些虽然并不位于内核模块但却支撑整个Windows运行的重要部件。在本书最后,也介绍了Windows
Server 2003以后的内核发展和变化。
虽然书中有大量关于Windows代码实现的描述,但是本书并没有罗列WRK中的代码,即使读者不对照WRK的源代码,也可以从这些章节的描述中理解Windows的实现机理。在每一个技术专题的介绍中,本书几乎都提供了一个框架图,并且有关键细节的实现分析,这样做的意图是让读者既能够对一项技术有总体上的把握,也通晓关键的实现细节。
Windows操作系统已经有20年历史了,市面上有大量关于Windows技术的文档和书籍,但是,真正从源代码来诠释Windows底层机理的,本书还是第一次尝试。在本书覆盖的内容中,有相当一部分是第一次以文字形式披露出来的,期望这些内容能消除人们对于Windows的神秘感。
写作本书的目的是让对Windows有好奇心的人真正了解到Windows中的核心机理,让计算机专业的学生和老师,以及系统软件工程师可以快速地领略到Windows中先进的系统技术,以及在Windows上编写出更加高效的软件。本书也配备了一些小工具,通过这些小工具,读者可以查看内核中的静态或动态的信息,甚至观察系统的行为。
關於作者:
潘爱民

任职于阿里云计算有限公司,担任阿里云OS首席架构师。长期从事软件和系统技术的研究与开发工作,撰写了大量软件技术文章,著译了多部经典计算机图书,在国内外学术刊物上发表了30多篇文章。曾经任教于北京大学和清华大学(兼职)。后进入工业界,先后任职于微软亚洲研究院、盛大网络发展有限公司和阿里云计算有限公司。目前也是工信部移动操作系统专家组成员。

潘爱民先生获得了数学学士学位和计算机科学博士学位,主要研究领域包括软件设计、信息安全、操作系统和互联网技术。
目錄
第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中的PTE
251
4.4.2 软件PTE:无效PTE和原型PTE
253
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 内存监视工具MemMon
293
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 执行体资源(executive
resource) 370
5.4.5 推锁(push
lock) 373
5.4.6 死锁 378
5.5 观察线程同步关系——DPerfLite
379
5.5.1 DPerfLite使用示例 379
5.5.2 DPerfLite实现原理 381
5.6 本章总结
382
第6章
Windows IO系统 383
6.1 IO概述 384
6.1.1 现代计算机系统的IO
384
6.1.2 IO软件技术
388
6.1.3 Windows IO系统结构
390
6.2 IO管理器 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 例子驱动程序toaster
425
6.5.3 驱动程序的代码结构
427
6.5.4 toaster设备的设备栈
432
6.5.5 过滤驱动程序的配置和加载 434
6.5.6 非即插即用驱动程序
437
6.6 IO处理 440
6.6.1 IO请求包(IRP)
440
6.6.2 针对独立设备对象的IO处理
447
6.6.3 处理IO请求过程中的事项 451
6.6.4 针对设备栈的IO处理 461
6.6.5 IO完成端口
465
6.7 IO请求监视工具IRPMon 468
6.7.1 IRPMon使用介绍
468
6.7.2 IRPMon实现原理
469
6.8 本章总结
470
第7章
Windows存储管理
471
7.1 存储管理概述
471
7.1.1 硬件存储体系(memory
hierarchy)
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 文件对象的IO处理
510
7.4 Windows文件系统
513
7.4.1 文件系统驱动程序结构 514
7.4.2 RAW文件系统与FsRtl
519
7.4.3 文件系统的IO过滤
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 命名管道(Named
Pipe)服务 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显示工具SDTViewer
588
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 VistaServer
20087的重要变化 640
9.4.1 MinWin工程
640
9.4.2 进程和线程管理
643
9.4.3 内存管理 645
9.4.4 IO处理的改进 647
9.5 本章总结
650
附录A 建立WRK工作环境
651
A.1 编译WRK
651
A.2 启动WRK
655
A.3 调试WRK
658
附录B 内核代码插入工具KInjectToolKit 665
B.1 KInjectToolKit功能介绍
666
B.2 KInjectToolKit的代码实现 667
B.3 KInjectToolKit的限制 671
参考资料
673
术语对照表 681
索引
687
內容試閱
The Windows Operating System has been evolving, along with
the PC-based computer. Although systems based on UNIX have
dominated in the universities since the 1970s, Windows has
completely surpassed UNIX in commercial systems. Yet relatively
little information about the internals of Windows – the
architecture and code of the kernel – has been available outside of
Microsoft.
With the support of Microsoft’s executive management
particularly Rob Short, Jim Allchin, and Bill Gates, my
colleagues Arkady Retik, Chris Fagan, and I set out to make the
sources for the Windows kernel available to faculty, researchers,
and students throughout the world. We wanted them to have the
opportunity to examine the internals of the kernel and understand
its implementation and thus be able to decide for themselves what
is admirable about the Windows kernel – and what is not.
This project became the Windows Research Kernel WRK, and
is part of the Windows Academic Program WAP
www.microsoft.comWindowsAcademic. The WAP also includes a large
amount of teaching materials in the Curriculum Resource Kit CRK.
Effectively the WRK is the Windows kernel in source form, and the
CRK is the Windows kernel in PowerPoint with exercises,
experiments, projects, and other learning aids.
All along we knew that the WRK and CRK by themselves would
not make the Windows kernel as accessible as we wanted it to be. It
would take books like Understanding the Windows
Kernel to draw together and organize the ideas
in the kernel and explain the source code.
Our intention with the Windows Academic Program has never
been to advocate that Windows supplant UNIX in the teaching of
operating systems in universities. We believe that both the UNIX
and the Windows kernel should be taught, so that it is possible to
compare and contrast the architecture and design choices that are
evident in both systems.
As you will see from this book, Windows has made some very
different choices than UNIX. In large part this is because Windows
was developed to target a very different system and user
environment than UNIX did when it was created. Windows would run on
multiprocessors, so threads are the unit of scheduling rather than
processes. The systems would have at least 32 bits of pageable
virtual address space, so the Windows kernel had the opportunity to
build general purpose mechanisms such as the object manager and
stackable IO. Windows expected to run in a very dynamic
environment, so the object name space resides outside the file
system and is maintained by the kernel itself. Although not a
microkernel, Windows did incorporate the Mach idea of multiple
operating system personalities in user-mode “subsystem” processes,
initially supporting OS2, POSIX, and Win32 interfaces.
The internal architecture of the kernel reflects learning
from UNIX, Mach and VMS, Digital’s VAX operating system that was
also designed by Dave Cutler, the senior architect of the Windows
OS. There is a layer within the kernel which abstracts and
schedules the CPUs as threads, interrupts, traps, etc. This
“kernel of the kernel” layer is about 5% of the code. The rest of
the kernel is in the “executive” layer including the device
drivers, file systems, and network code which run outside of the
kernel proper. The executive is implemented as fairly ordinary
multithreaded code, which greatly simplifies the expertise required
by kernel-mode developers.
For those who learned operating systems by reading and
understanding only the ideas in UNIX, learning about Windows
creates a great opportunity to evaluate their own assumptions about
what an operating system should be. This is important because the
nature of computer systems continues to rapidly evolve. UNIX was
designed for 16-bit, low-memory, swapping systems. Windows for
32-bit systems with paged virtual addressing and megabytes of
physical memory. But contemporary systems are 64-bit with gigabytes
of memory, and many new features like virtualization hardware,
solid-state disks, and integrated computational and graphics
accelerators. Connectivity has evolved from the dial-up modems at
UNIX’s birth in 1969 to the 10 Mbps local Ethernet at Windows birth
in 1989. And now we have multiple Gbps networks interconnecting
computers around the world. Will a new operating system emerge
which targets these new hardware environments? Or will existing
systems just continue to evolve their capabilities? It is only by
having a broader understanding than either just UNIX or just
Windows that software engineers will be able to judge for
themselves.
Our colleague, Aimin Pan, is one of the bright stars in the
new generation of computer scientists teaching and researching some
of these important questions about the future of operating systems.
His presentation of the Windows kernel will be a great asset for
those who want to also participate in the evolving future of
operating systems, as well as those who are just simply curious, or
want to better understand the software architecture that they are
using daily.
Dave Probert, Ph.D.

compsci@microsoft.com

Windows Kernel Architect – Microsoft

Developer of the Windows Research Kernel
release

14 February 2010





序 二


Windows作为用户最多的主流操作系统,备受广大师生和工程技术人员的关注,大家希望能通过深入内核的实验和分析源代码的方式,来透彻地了解Windows操作系统。微软亚洲研究院认真地考虑了这一需求,并和微软Windows产品部的专家一起做了大量的努力,终于在2005年促成了微软公司面向教育界发布的Windows学术支持计划,其中就包括了为教育和科研提供Windows内核源代码的访问许可WRK(Windows
Research Kernel)。
我们围绕WRK进行了一系列的教师培训,大家认为WRK的发布是深入了解Windows操作系统内核的一个里程碑,但同时也反映出一个问题:WRK包含大量的源代码,如何阅读和分析它们,并将这些源代码与教学中的知识结构对应起来,是进一步使用WRK的瓶颈。
潘爱民博士写的《Windows内核原理与实现》这本书很好地解决了这一问题。潘博士采取将全局系统框图和关键实现分析相结合的方式,详细解析了Windows对现代操作系统的各个关键部件的实现。书中采用了Windows操作系统的真实数据结构,并将操作系统的实现机理与WRK中的源代码描述对应了起来。书中附带有很多分析工具,使读者可以方便地跟踪和观察操作系统内核的运行过程。
潘爱民博士是软件技术和操作系统方面的专家,他从2004年开始在微软亚洲研究院从事系统性能分析的研究工作,在Windows操作系统的内核优化方面有着丰富的知识和经验。潘博士承担了Windows Internals, 4th Edition一书中文版的翻译工作,他还参与了很多与操作系统有关的高校合作项目,通过教师培训和指导学生,对Windows操作系统在教学和科研中的实际需求有着深入的了解。

本书是潘爱民博士对Windows操作系统以及WRK深入研究的结晶,代表了微软亚洲研究院的科研人员对探究技术和帮助中国教育的极大热情。我很高兴看到本书的顺利出版,它是一本很好的操作系统教学参考书;对广大希望深入了解Windows操作系统的读者来说,它是一本很好的学习用书。

微软亚洲研究院 副院长 宋罗兰

2010年2月13日

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.