书籍详情
Windows NT技术内幕:第二版
作者:(美)[D.A.所罗门]David A.Solomon著;北京博彦科技发展有限公司译
出版社:清华大学出版社
出版时间:1999-01-01
ISBN:9787302033561
定价:¥50.00
购买这本书可以去
内容简介
简介《WindoWsNT技术内幕(第二版)》是供高级计算机专业人员(包括开发者和系统管理者)使用的参考书。这些专业人员希望了解MicrosoftWindoWsNT操作系统中核心组件的内部工作方式。凭借对WindoWSNT内部的了解,在建立运行于WindoWsNT平台的应用程序时,程序开发者可以更好地领会在设计选择背后的基本原理。类似这样的知识可以帮助他们解决在调试当中的一些复杂问题。因为了解操作系统内部的工作方式有助于理解系统的运作方式,而且在处理故障时也会使系统问题的故障诊断更加容易,所以系统管理者也可以从这些信息得到帮助。在读过此书以后,您将会更好地理解Wind0WsNT如何工作和为什么会这样工作。本书是根据WindoWsNT4.0ServicePack3编写而成的。在正文中以说明的形式引用了在WindoWsNT5.0中的变更,并在后面加上“(WindowsNT5.0)”以示标记,如下所示:第二版中的差异《WindoWsNT技术内幕(第二版)》中包含了在第一版中的所有主题,并增添了高速缓存管理程序、WindoWsNT文件系统(NTFS)和预览在WindoWsNT5.0即将出现的更改。第二版与第一版相比,内容更加详尽。例如本书包含了关键系统功能的代码流程,也更加详细地描述了关键的内部数据结构与系统全局变量。本书的这些信息主要来源于对WindowsNT4.0源代码的阅读,也来源于同主要的WindoWsNT开发人员及设计人员的切磋。(在此衷心感谢Micros0ft的大力支持!)此修订版的另一个主要新特性是其中的实验。尽管我是根据源代码来汇集此版本的信息的,但是通过使用一些标准工具(例如内核调试程序和性能监视器)以及在WindoWsNT资源工具包、Win32软件开发工具包(sDK)和Wind0WsNT设备驱动程序工具包(DDK)中的一些其他工具,您将可以学习或演绎许多有关WindowsNT内部的情况。当您需要使用某些工具来揭示或显示WindoWsNT内部行为的某些方面时,在“实验”框中还将列出使用工具时所要执行的必要步骤。我建议您在阅读本书的同时,尝试着去使用这些工具,实际观察并体会Wind0WsNT的内部是怎样工作的,这样会使您对所读内容有更深刻的印象。本书没有包含的主题WindowsNT是一个庞大而复杂的操作系统。本书并未包含所有与WindoWsNT内部有关的内容,而是着重于基本的系统组件。唯一在第一版中出现而在这个版本中没有涉及的主题是网络。Wind0WsNT网络已经发展成为系统的极其重要的组成部分,可以单独编写成书。我希望有一天有人能写这样的一本书。本书没有探讨的系统的另一个重要领域是COM(C0mponentObjectMode1)。COM(和DCOM——分布式的COM)是WindoWs分布式面向对象程序设计的构造基础。在微软出版社出版的其他几本书中,详细讲述了有关COM的内容,其中一本是由DaleRogerson写的《InsideCOM》。最后,因为本书是介绍WindoWsNT内部情况的书,而不是有关用户、程序设计和系统管理的书,因此本书并不介绍WindoWsNT的使用、程序设计以及配置的方法。本书的结构除了前面三章(分别是“概念和工具”、“系统体系结构”和“系统机制”)覆盖了在整本书中要用到的基本术语和概念以外,您可以按任意顺序读其他章节,例如进程和线程、内存管理、安全、I/O系统、高速缓存管理程序、WindoWsNT文件系统(NTFs)、Wind0WsNT5.0及以后版本。如果按顺序阅读本书,您将会获得更多的知识。通知和警告因为本书描述了Wind0WsNT的内部构造和操作,所以在不同版本间某些信息会有所变化(尽管外部接口,例如Win32API,没有经过不兼容的修改)。例如,我参考了内部WindoWsNT系统例程、数据结构和变量以及在内部使用的用来确定资源大小和相关性能的算法和数值。这些细节根据定义在不同版本间会有所变化。说“可能会有变动”,并不是说在本书中的详细描述在不同的版本间“一定会”改变——但是您不要以为它们不会改变。任何使用了这些非文档化的接口的软件在将来发行的WindoWsNT中可能不会工作。更糟糕的是,当升级新版本的WindoWsNT时,运行在核心态的软件(例如设备驱动程序)如果使用了这些非文档化的接口,可能会导致系统崩溃。更新信息和勘误表这本书并不完美。毫无疑问,它会存在一些不太准确的地方,或者可能遗漏了一些应该涉及的内容。如果您发现了您认为不正确的内容或是应该涉及而没有涉及到的内容,请把电子邮件发到daves@solsem.com。如果在这个修订版中存在任何重大错误,我准备在微软出版社技术支持知识库(Kn0WledgeBase)中以知识库文章来发表它们。您可以进入http://mspress.microsoft.com/support/support.htm中查询“Kn0wledgeBase”。
作者简介
作者简介DavidA.S0l0m0n是Davidsolom0neXpertSeminarsInc.(WWW.solsem.com)的总裁,该公司是培训WindowsNT开发人员的公司。David以前曾经是DEC公司的VMS操作系统的主要开发人员。他也是一个在业界的研讨会上——包括MicrosoftTechED、WinDev和WindowsSolutions——经常出现的演讲者。
目录
前言
致谢
简介
第一章 概念和工具
1.1 基本概念和术语
1.1.1 Win32API
1.1.2 服务、函数和例程
1.1.3 进程和线程
1.1.4 虚拟内存
1.1.5 核心态和用户态
1.1.6 对象和句柄
1.1.7 安全性
1.1.8 注册表
1.1.9 网络
1.1.10Unic0de
1.2 深入Wind0WsNT内部的工具
1.2.1 WindowsNT资源工具包
1.2.2 PlatformsDK和Wind0WsNTDDK
1.2.3 关键的WindoWsNT基本工具
1.2.4 纯运行版本和带调试信息版本
1.2.5 查看内部数据结构和变量
结论
第二章 系统体系结构
2.1 需求与设计目标
2.2 操作系统模型
2.3 体系结构综述
2.3.1 可移植性
2.3.2 对称多处理
2.3.3 Wind0WsNTW0rkstation和WindoWsNTserver
2.4 关键系统组件
2.4.1 环境子系统和子系统动态链接库
2.4.2 NTDLL.DLL
2.4.3 执行体
2.4.4 内核
2.4.5 硬件抽象层(HAL)
2.4.6 设备驱动程序
2.4.7 窥视非文档化接口
2.4.8 系统进程
结论
第三章 系统机制
3.1 陷阱调度
3.1.1 中断调度
3.1.2 异常调度
3.1.3 系统服务调度
3.2 对象管理器
3.2.1 执行体对象
3.2.2 对象结构
3.3 同步
3.3.1 内核同步
3.3.2 执行体同步
3.4 WindoWsNT全局标志
3.5 本地过程调用(LPC)
结论
第四章 进程和线程
4.1 进程的本质
4.1.1 数据结构
4.1.2 系统变量
4.1.3 性能计数器
4.1.4 相关函数
4.1.5 相关工具
4.2CreateProcess流程
4.2.1 阶段1:打开要执行的映像
4.2.2 阶段2:创建WindoWsNT执行体进程对象
4.2.3 阶段3:创建初始线程及其堆栈和描述表
4.2.4 阶段4:把创建新进程的情况通知Win32子系统
4.2.5 阶段5:开始初始线程的执行
4.2.6 阶段6:完成在新进程描述表中的进程初始化
4.3 线程的本质
4.3.1 数据结构
4.3.2 系统变量
4.3.3 性能计数器
4.3.4 相关函数
4.3.5 相关工具
4.4 CreateThread流程
4.5 线程调度
4.5.1 WindowsNT调度概述
4.5.2 优先级
4.5.3 Win32调度API
4.5.4 相关工具
4.5.5 实时优先级
4.5.6 中断级与优先级对比
4.5.7 线程状态
4.5.8 时间片
4.5.9 调度数据结构
4.5.10 系统变量
4.5.11 调度方案
4.5.12 描述表切换
4.5.13 空闲线程
4.5.14 调整线程调度
4.5.15 对称多处理系统上的线程调度
结论
第五章 内存管理
5.1 内存管理器提供的服务
5.1.1 保留和提交虚拟内存
5.1.2 共享内存和映射文件
5.1.3 保护内存
5.1.4 写时复制
5.1.5 堆函数
5.1.6 系统内存交换区
5.2 深入内存管理器
5.2.1 组件
5.2.2 内部同步
5.2.3 调整内存管理器
5.2.4 检查内存的使用
5.3 地址空间布局
5.3.1 用户地址空间布局
5.3.2 系统地址空间布局
5.4 地址转换
5.4.1 转换虚拟地址
5.4.2 页目录
5.4.3 进程和系统页表
5.4.4 页表项
5.4.5 页面内的字节
5.4.6 转换后备缓冲区
5.5 页错误处理
5.5.1 无效的PTE
5.5.2 原型PTE
5.5.3 入页I/O
5.5.4 冲突页错误
5.5.5 页面文件
5.6 虚拟地址描述符
5.7 工作集
5.7.1 页面调度策略
5.7.2 进程工作集
5.7.3 平衡集管理器和交换程序
5.7.4 系统工作集
5.8 页帧数据库
5.8.1 页面列表动态
5.8.2 更改页面写入程序
5.8.3 PFN数据结构
5.9 区域对象
结论
第六章 安全性
6.1 安全性系统组件
6.2 保护对象
6.2.1 安全描述体和访问控制
6.2.2 访问令牌与模仿
6.3 安全审核
6.4 登录
6.4.1 WinLogon初始化
6.4.2 用户登录步骤
结论
第七章 I/O系统
7.1 I/O系统结构和模型
7.1.1 I/O管理器
7.1.2 I/O函数
7.2 设备驱动程序
7.2.1 驱动程序结构
7.2.2 同步
7.3 数据结构
7.3.1 文件对象
7.3.2 驱动程序对象和设备对象
7.3.3 I/O请求包
7.4 I/O处理
7.4.1 对单层驱动程序的I/O请求
7.4.2 对分层驱动程序的I/O请求
结论
第八章 高速缓存管理器
8.1 WindoWsNT高速缓存管理器的主要特性
8.1.1 单个、集中的系统高速缓存
8.1.2 内存管理器
8.1.3 高速缓存一致性
8.1.4 虚拟块高速缓存
8.1.5 基于流的高速缓存
8.1.6 可恢复文件系统支持
8.2 高速缓存结构
8.3 高速缓存的大小
8.3.1 高速缓存的虚拟大小
8.3.2 高速缓存的物理大小
8.4 高速缓存数据结构
8.4.1 系统范围的高速缓存数据结构
8.4.2 每个文件的高速缓存数据结构
8.5 高速缓存操作
8.5.1 回写高速缓存和延迟书写
8.5.2 智能预读
8.5.3 系统线程
8.5.4 快速I/O
8.6 高速缓存支持例程
8.6.1 复制到高速缓存和从高速缓存复制
8.6.2 使用映射和Pinning接口高速缓存
8.6.3 使用直接存储器存取接口高速缓存
8.6.4 写入调速
结论
第九章 WindowsNT文件系统(NTFS)
9.1 NTFS的设计目标和特性
9.1.1 高端文件系统需求
9.1.2 NTFS的其他特性
9.2 NTFS的内部结构
9.3 NTFS在磁盘上的结构
9.3.1 卷
9.3.2 簇
9.3.3 主控文件表(MFT)
9.3.4 文件引用号
9.3.5 文件记录
9.3.6 文件名
9.3.7 常驻属性和非常驻属性
9.3.8 文件名索引
9.3.9 数据压缩
9.4 可恢复支持
9.4.1 文件系统设计的发展
9.4.2 记录
9.4.3 恢复
9.5 容错支持
9.5.1 卷管理特性
9.5.2 容错卷
9.5.3 NTFS坏簇恢复
结论
第十章 WindowsNT5.0和64位WindowsNT
10.1 WindoWsNT5.0中的新特性概述
10.1.1 活动目录
10.1.2 分布式安全性扩展
10.1.3 加密
10.1.4 安全配置编辑程序
10.1.5 分布式文件服务
10.1.6 NTFS扩展
10.1.7 Microsoft管理控制台
10.1.8 Microsoft软件安装程序
10.1.9 存储管理
10.1.10 IntelliMirror
10.1.11 应用程序的开发
10.1.12 作业对象
10.1.13 即插即用和WDM
10.1.14 Alpha上的大容量内存
10.1.15 用户改进
10.2 系统扩展
10.2.1 簇
10.2.2 Microsoft终端服务器
10.3 即插即用和电源管理
10.3.1 即插即用的发展
10.3.2 在WindoWsNT5.0中的实现
10.3.3 驱动程序的更改
10.3.4 WindoWsNT5.0即插即用结构
10.4 64位WindoWsNT
结论
词汇表
致谢
简介
第一章 概念和工具
1.1 基本概念和术语
1.1.1 Win32API
1.1.2 服务、函数和例程
1.1.3 进程和线程
1.1.4 虚拟内存
1.1.5 核心态和用户态
1.1.6 对象和句柄
1.1.7 安全性
1.1.8 注册表
1.1.9 网络
1.1.10Unic0de
1.2 深入Wind0WsNT内部的工具
1.2.1 WindowsNT资源工具包
1.2.2 PlatformsDK和Wind0WsNTDDK
1.2.3 关键的WindoWsNT基本工具
1.2.4 纯运行版本和带调试信息版本
1.2.5 查看内部数据结构和变量
结论
第二章 系统体系结构
2.1 需求与设计目标
2.2 操作系统模型
2.3 体系结构综述
2.3.1 可移植性
2.3.2 对称多处理
2.3.3 Wind0WsNTW0rkstation和WindoWsNTserver
2.4 关键系统组件
2.4.1 环境子系统和子系统动态链接库
2.4.2 NTDLL.DLL
2.4.3 执行体
2.4.4 内核
2.4.5 硬件抽象层(HAL)
2.4.6 设备驱动程序
2.4.7 窥视非文档化接口
2.4.8 系统进程
结论
第三章 系统机制
3.1 陷阱调度
3.1.1 中断调度
3.1.2 异常调度
3.1.3 系统服务调度
3.2 对象管理器
3.2.1 执行体对象
3.2.2 对象结构
3.3 同步
3.3.1 内核同步
3.3.2 执行体同步
3.4 WindoWsNT全局标志
3.5 本地过程调用(LPC)
结论
第四章 进程和线程
4.1 进程的本质
4.1.1 数据结构
4.1.2 系统变量
4.1.3 性能计数器
4.1.4 相关函数
4.1.5 相关工具
4.2CreateProcess流程
4.2.1 阶段1:打开要执行的映像
4.2.2 阶段2:创建WindoWsNT执行体进程对象
4.2.3 阶段3:创建初始线程及其堆栈和描述表
4.2.4 阶段4:把创建新进程的情况通知Win32子系统
4.2.5 阶段5:开始初始线程的执行
4.2.6 阶段6:完成在新进程描述表中的进程初始化
4.3 线程的本质
4.3.1 数据结构
4.3.2 系统变量
4.3.3 性能计数器
4.3.4 相关函数
4.3.5 相关工具
4.4 CreateThread流程
4.5 线程调度
4.5.1 WindowsNT调度概述
4.5.2 优先级
4.5.3 Win32调度API
4.5.4 相关工具
4.5.5 实时优先级
4.5.6 中断级与优先级对比
4.5.7 线程状态
4.5.8 时间片
4.5.9 调度数据结构
4.5.10 系统变量
4.5.11 调度方案
4.5.12 描述表切换
4.5.13 空闲线程
4.5.14 调整线程调度
4.5.15 对称多处理系统上的线程调度
结论
第五章 内存管理
5.1 内存管理器提供的服务
5.1.1 保留和提交虚拟内存
5.1.2 共享内存和映射文件
5.1.3 保护内存
5.1.4 写时复制
5.1.5 堆函数
5.1.6 系统内存交换区
5.2 深入内存管理器
5.2.1 组件
5.2.2 内部同步
5.2.3 调整内存管理器
5.2.4 检查内存的使用
5.3 地址空间布局
5.3.1 用户地址空间布局
5.3.2 系统地址空间布局
5.4 地址转换
5.4.1 转换虚拟地址
5.4.2 页目录
5.4.3 进程和系统页表
5.4.4 页表项
5.4.5 页面内的字节
5.4.6 转换后备缓冲区
5.5 页错误处理
5.5.1 无效的PTE
5.5.2 原型PTE
5.5.3 入页I/O
5.5.4 冲突页错误
5.5.5 页面文件
5.6 虚拟地址描述符
5.7 工作集
5.7.1 页面调度策略
5.7.2 进程工作集
5.7.3 平衡集管理器和交换程序
5.7.4 系统工作集
5.8 页帧数据库
5.8.1 页面列表动态
5.8.2 更改页面写入程序
5.8.3 PFN数据结构
5.9 区域对象
结论
第六章 安全性
6.1 安全性系统组件
6.2 保护对象
6.2.1 安全描述体和访问控制
6.2.2 访问令牌与模仿
6.3 安全审核
6.4 登录
6.4.1 WinLogon初始化
6.4.2 用户登录步骤
结论
第七章 I/O系统
7.1 I/O系统结构和模型
7.1.1 I/O管理器
7.1.2 I/O函数
7.2 设备驱动程序
7.2.1 驱动程序结构
7.2.2 同步
7.3 数据结构
7.3.1 文件对象
7.3.2 驱动程序对象和设备对象
7.3.3 I/O请求包
7.4 I/O处理
7.4.1 对单层驱动程序的I/O请求
7.4.2 对分层驱动程序的I/O请求
结论
第八章 高速缓存管理器
8.1 WindoWsNT高速缓存管理器的主要特性
8.1.1 单个、集中的系统高速缓存
8.1.2 内存管理器
8.1.3 高速缓存一致性
8.1.4 虚拟块高速缓存
8.1.5 基于流的高速缓存
8.1.6 可恢复文件系统支持
8.2 高速缓存结构
8.3 高速缓存的大小
8.3.1 高速缓存的虚拟大小
8.3.2 高速缓存的物理大小
8.4 高速缓存数据结构
8.4.1 系统范围的高速缓存数据结构
8.4.2 每个文件的高速缓存数据结构
8.5 高速缓存操作
8.5.1 回写高速缓存和延迟书写
8.5.2 智能预读
8.5.3 系统线程
8.5.4 快速I/O
8.6 高速缓存支持例程
8.6.1 复制到高速缓存和从高速缓存复制
8.6.2 使用映射和Pinning接口高速缓存
8.6.3 使用直接存储器存取接口高速缓存
8.6.4 写入调速
结论
第九章 WindowsNT文件系统(NTFS)
9.1 NTFS的设计目标和特性
9.1.1 高端文件系统需求
9.1.2 NTFS的其他特性
9.2 NTFS的内部结构
9.3 NTFS在磁盘上的结构
9.3.1 卷
9.3.2 簇
9.3.3 主控文件表(MFT)
9.3.4 文件引用号
9.3.5 文件记录
9.3.6 文件名
9.3.7 常驻属性和非常驻属性
9.3.8 文件名索引
9.3.9 数据压缩
9.4 可恢复支持
9.4.1 文件系统设计的发展
9.4.2 记录
9.4.3 恢复
9.5 容错支持
9.5.1 卷管理特性
9.5.2 容错卷
9.5.3 NTFS坏簇恢复
结论
第十章 WindowsNT5.0和64位WindowsNT
10.1 WindoWsNT5.0中的新特性概述
10.1.1 活动目录
10.1.2 分布式安全性扩展
10.1.3 加密
10.1.4 安全配置编辑程序
10.1.5 分布式文件服务
10.1.6 NTFS扩展
10.1.7 Microsoft管理控制台
10.1.8 Microsoft软件安装程序
10.1.9 存储管理
10.1.10 IntelliMirror
10.1.11 应用程序的开发
10.1.12 作业对象
10.1.13 即插即用和WDM
10.1.14 Alpha上的大容量内存
10.1.15 用户改进
10.2 系统扩展
10.2.1 簇
10.2.2 Microsoft终端服务器
10.3 即插即用和电源管理
10.3.1 即插即用的发展
10.3.2 在WindoWsNT5.0中的实现
10.3.3 驱动程序的更改
10.3.4 WindoWsNT5.0即插即用结构
10.4 64位WindoWsNT
结论
词汇表
猜您喜欢