深入解析Windows操作系统:第6版.pdf

深入解析Windows操作系统:第6版.pdf
 

书籍描述

内容简介
本书是著名的操作系统内核专家Mark Russinovich和David Solomon、Allen Ionescu撰写的关于Windows操作系统原理的最新版著作, 全面深入地阐述了Windows操作系统的整体结构及内部工作细节。 本书针对Windows 7、 Windows Server 2008 R2做了全面更新,通过许多练习实验让你直接感受到Windows的内部行为。另外,本书还介绍了一些高级诊断技术,以便使系统运行得更加平稳和高校。无论你是开发人员还是系统管理员,都可以在本书中找到一些关键的、有关体系结构方面的知识,从而更好地做系统设计、调试,以及性能优化。

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

目录
目录

译者序
引言
本书的结构
本书的历史
第6版的变化
练习实验
本书没有覆盖的话题
提醒和告诫
致谢
勘误和本书支持
倾听您的声音
保持联系
第1章 概念和工具
1.1 Windows操作系统的版本
1.2 基础概念和术语
Windows API
服务、函数和例程
进程、线程和作业
虚拟内存
内核模式和用户模式
终端服务及多个会话
对象和句柄
安全性
注册表
Unicode
1.3 挖掘Windows内部机理
性能监视器
内核调试
Windows软件开发工具(Windows SDK)
Windows驱动程序开发工具
Sysinternals工具
1.4 本章总结
第2章 系统架构
2.1 需求和设计目标
2.2 操作系统模型
2.3 总体架构
可移植性
对称多处理
可伸缩性
客户机和服务器版本之间的差异
检查版本
2.4 关键的系统组件
环境子系统和子系统DLL
Ntdll.dll
执行体
内核
硬件抽象层(HAL)
设备驱动程序
系统进程
2.5 本章总结
第3章 系统机制
3.1 陷阱分发
中断分发
定时器处理
异常分发
系统服务分发
3.2 对象管理器
执行体对象
对象结构
3.3 同步
高IRQL的同步
低IRQL的同步
3.4 系统辅助线程
3.5 Windows全局标志
3.6 高级本地过程调用(ALPC)
连接模型
消息模型
异步操作
视图、区域和内存区
属性
Blob、句柄和资源
安全性
性能
调试和跟踪
3.7 内核事件跟踪
3.8 Wow64
Wow64进程地址空间布局结构
系统调用
异常分发
用户APC分发
控制台支持
用户回调
文件系统重定向
注册表的重定向
I/O控制请求
16位安装器应用程序
打印
一些限制
3.9 用户模式调试
内核支持
原生支持
Windows子系统支持
3.10 映像加载器
进程初始化早期工作
DLL名称解析
DLL名称重定向
已加载模块数据库
导入信息解析
导入过程初始化的后期处理
SwitchBack
API集
3.11 超级监督者(Hyper-V)
分区
父分区
子分区
硬件仿真和支持
3.12 内核事务管理器
3.13 热补丁支持
3.14 内核补丁保护
3.15 代码完整性
3.16 本章总结
第4章 管理机制
4.1 注册表
查看和修改注册表
注册表用法
注册表数据类型
注册表逻辑结构
事务型注册表(TxR)
监视注册表活动
注册表的内部机理
4.2 服务
服务应用
服务账户
服务控制管理器
服务启动
启动错误
接受当前引导和“最后已知的好控制集”
服务失败
服务停机
共享的服务进程
服务标记
4.3 统一的后台进程管理器
初始化
UBPM API
提供者注册
消费者注册
TaskHost
服务控制程序
4.4 Windows管理设施
提供者
公共信息模型(CIM)和可管理对象的格式语言
类关联
WMI实现
WMI安全性
4.5 Windows诊断基础设施
WDI设施
诊断策略服务
诊断功能
4.6 本章总结
第5章 进程、线程和作业
5.1 进程的内部机理
数据结构
5.2 受保护进程
5.3 CreateProcess的流程
阶段1:转换并验证参数和标志
阶段2:打开将要被执行的映像
阶段3:创建Windows执行体进程对象(PspAllocateProcess)
阶段4:创建初始线程,以及它的栈和执行环境
阶段5:执行特定于Windows子系统的初始化后处理
阶段6:启动初始线程的执行
阶段7:在新进程环境下执行进程初始化
5.4 线程的内部机理
数据结构
一个线程的诞生
5.5 检查线程活动
受保护进程的线程上的访问限制
5.6 工作者工厂(线程池)
5.7 线程调度
Windows调度概述
优先级别
线程状态
分发器数据库
时限
优先级提升
环境切换
调度情形
空闲(Idle)线程
线程选择
多处理器系统
多处理器系统上的线程选择
处理器的选择
5.8 基于处理器份额的调度
分布式公平份额调度
CPU比率的限制
5.9 动态的处理器添加与更换
5.10 作业对象
作业的限制
作业集
5.11 本章总结
第6章 安全性
6.1 安全等级
可信计算机系统评估标准(TCSEC)
6.2 安全系统组件
6.3 保护对象
访问检查
安全标识符(SID)
虚拟服务账户
安全描述符和访问控制
6.4 AuthZ API
6.5 账户权限和特权
账户权限
特权
超级特权
6.6 进程和线程的访问令牌
6.7 安全审计
对象访问的审计
全局审计策略
高级审计策略设置
6.8 登录(Logon)
Winlogon初始化
用户登录步骤
可保证的认证
用户认证的生物识别框架
6.9 用户账户控制和虚拟化
文件系统和注册表虚拟化
权限提升
6.10 应用程序标识(AppID)
6.11 AppLocker
6.12 软件限制策略
6.13 本章总结
第7章 网络
7.1 Windows的网络总体结构
OSI参考模型
Windows网络组件
7.2 网络API
Windows套接字(Windows Sockets)
Winsock内核
远过程调用
Web访问API
命名管道和邮件槽
NetBIOS
其他的网络API
7.3 多重定向器支持
多提供者转发器
多UNC提供者
代理提供者
重定向器
小重定向器
服务器消息块与子重定向器
7.4 分布式文件系统名字空间
7.5 分布式文件系统复制
7.6 脱机文件
缓存模式
幻影(ghosts)
数据安全性
缓存的结构
7.7 BranchCache
缓存模式
BranchCache优化下的应用程序数据获取:SMB序列
BranchCache优化下的应用程序数据获取:HTTP序列
7.8 名称解析
域名系统
对等体名称解析协议
7.9 位置和拓扑结构
网络位置感知
网络连接状态指示器
链路层拓扑发现
7.10 协议驱动程序
Windows过滤平台
7.11 NDIS驱动程序
NDIS小端口的变化形式
面向连接的NDIS
外接NDIS(Remote NDIS)
QoS
7.12 绑定
7.13 分层的网络服务
术语对照表

文摘
在所有介绍Windows操作系统的图书中,我相信都离不开Windows Internals提供的信息。除公开可见到的Windows源代码以外,本书是披露Windows系统机理最为详尽的一份资料,尤其对于Windows的每一份最新版本。本书的第6版专门针对Windows 7和Windows Server 2008 R2进行了大幅度更新。由于篇幅的增加,这一版本改成上下两册来发行,由此也可见本书的“分量”。
在Windows操作系统的发展历程中,Windows 7是一个具有特殊意义的版本。它是目前最为复杂的单机操作系统,无论从代码规模、代码复杂度,到系统适应场景的复杂程度,都超过了以前所有的版本。从某种意义上,Windows 7代表了软件工程的一个顶峰——人类可以构造出如此复杂且能稳定工作的软件系统!与此相对应,要用一本书来涵盖其中的各种机理也同样是一项艰巨的任务,本书作者们基于他们过去所做的大量工作,以及对Windows的深入理解,出色地完成了这一诠释工作。
本书的权威性毋庸置疑。Mark Russinovich因其在Windows内核探索方面所做出的贡献而成为Microsoft Fellow,本书中用到的大量Sysinternals工具均出自他的手笔。David Solomon从事Windows NT内部机理的培训有十多年经历,他不仅在全球各地培训Windows系统程序员,甚至也为Microsoft的内部员工提供Windows内核培训服务,他从本书第2版开始奠定了卓有成效的叙述风格。Alex Ionescu是一名年轻的黑客型Windows专家,曾经为ReactOS(一个开源的操作系统项目,旨在兼容Windows 2000/XP/Server 2003的应用程序)编写了绝大多数内核代码。他曾经发现和报告了一些与Windows内核相关的软件漏洞,也跟David Solomon一起教授Windows内部机理的课程。有如此强大的作者组合,再加上Microsoft的内部支持(包括提供源代码,以及Windows开发组的细致解释),本书无疑成为Windows最新版本的第一手技术资料。
每一个对Windows操作系统有浓厚兴趣的读者都不应该错过这本书。那么,如何发挥本书的作用呢?首先,本书并非如教材那样循序渐进,而是全景式地讲述了Windows的系统机理。第3章和第4章介绍总体结构,尤其是系统内部的核心机制和管理机制,值得每个人认真阅读,其他后续的章节可以有选择地阅读。其次,阅读本书之前最好有操作系统的基础知识,以及一定程度的Windows编程技能,否则难以深刻领会Windows中大量的精妙设计。再次,在阅读过程中,最好能动手做一做书中描述的实验。做这些实验的门槛并不高,但效果非常好,可以让你直观地领会Windows内部的一些设计和实现。
我与这本书的渊源是从第4版(针对Windows XP/Server 2003)开始的,当时博文视点武汉分部的周筠老师强烈推荐我来翻译第4版。后来第5版(针对Windows Vista/Server 2008)原版出版后,又交给我来翻译。由于第5版与第6版之间时间差较短,内容更新也相对较少,在我手上又拖了太长时间,导致最后第5版中文版失去了出版时机。很抱歉,辜负了周筠老师的重托。我也要特别感谢电子工业出版社的编辑刘皎,依然把第6版的翻译工作交给了我,使我有机会弥补第5版中文版未能出版之缺憾。
本书的翻译工作由范德成和我共同完成,其中第1~4章由我完成,第5~7章由范德成完成。全书由我统稿。Windows的各种技术涉及大量的术语,甚至一些全新的技术术语,为此我们尽可能按照中文习惯来表达这些术语,或适当地保留一些专有名词。若在译稿中有任何不妥之处,请读者原谅。此外,本书正文之后列出了英汉习惯用语对照表,以方便阅读。
潘爱民
2012年12月,于北京西二旗

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多