引 言
《深入解析Windows操作系统,第4版》的读者对象是那些想要理解Microsoft Windows 2000、Windows XP和Microsoft Windows Server 2003操作系统的核心组件内部工作机理的高级计算机专业人员(包括开发人员和系统管理员)。开发人员利用这些知识,可以在构建Windows平台上的应用程序时更好地理解各种设计决策背后的基本原理。这样的知识也可以帮助开发人员调试复杂的问题。系统管理员也可以从这些信息中获益,因为理解了操作系统背后的工作原理,可以有助于理解系统的性能行为,以及当事情变糟时更易于诊断各种系统问题。在阅读了这本书以后,你应该可以更好地理解Windows是如何工作的,以及它为什么有这样那样的表现。
本书的结构
前两章(“概念和工具”和“系统结构”)奠定了本书后面用到的术语和概念的基础。接下去的三章——“系统机制”、“管理机制”以及“启动和停机”——讲述了系统中关键的底层机制。接下来的八章解释了操作系统的核心组件:进程、线程和作业、内存管理、安全性、I/O系统、存储管理、缓存管理器、文件系统,以及网络,最后一章介绍了崩溃转储分析。
本书的历史
本书以前的名称是Inside Windows NT(Microsoft Press,1992,中文版的名称是《Windows NT技术内幕》),现在是第4版。第1版是由Helen Custer著的(在Microsoft Windows NT 3.1的最初发布以前出版)。Inside Windows NT是第一本关于Windows NT的书籍,它提供了有关Windows NT系统的体系结构和设计方面的关键要点。Inside Windows NT,Second Edition(Microsoft Press, 1998)是由David Solomon著的。该书在内容上做了更新,涵盖了Windows NT 4.0,并且大大地提高了技术深度的层次。Inside Windows 2000,Third Edition(Microsoft Press,2000)是由David Solomon和Mark Russinovich合著的。第3版增加了许多新的话题,比如启动和停机、Windows服务的内部机理、注册表的内部机理、文件系统驱动程序、网络,以及Windows 2000中内核的变化,其中,关于Windows 2000中内核的变化,包含了Windows驱动程序模型(WDM,Windows Driver Model)、即插即用、电源管理、Windows管理规范(WMI,Windows Management Instrumentation)、加密、作业对象和终端服务。
第4版的变化
这一最新的版本,现在称为“Microsoft Windows Internals(Fourth Edition)”,在内容上做了更新,以覆盖Windows XP和Windows Server 2003中所做的内核变化,包括对于64位系统的支持。练习用的实验也相应地做了更新,以反映出工具中的变化;新增加的实验用到了一些在第3版写作时尚未可用的新工具。
由于从Windows 2000到后续版本之间的内核变化相对较小(与“Windows NT 4.0和Windows 2000之间的变化”相比较而言),所以,本书中绝大部分内容适用于Windows 2000、Windows XP和Windows Server 2003。因此,除非特别声明,否则一切内容都适用于这三个版本。
练习实验
即使没有访问源代码,你也可以通过一些工具(比如内核调试器)来获得许多有关Windows内部机理的知识。每当可以通过一个工具来揭示或演示Windows内部行为的某一方面时,本书中的“实验”辅助章节就会列出让你自己试用该工具时遵从的步骤。这样的实验遍布全书,我们鼓励你在阅读本书时试一试这些实验——看一看Windows内部是如何工作的,这比你仅仅读一遍本书所得到的印象要深刻得多。
本书没有涵盖的话题
Windows是一个大而复杂的操作系统。本书并没有涵盖与Windows内部机理相关的一切内容,而是把焦点集中在基本的系统组件上。例如,本书没有讲述COM+(Windows分布式面向对象编程基础设施),也没有讲述.NET框架(下一代托管代码的应用程序的基础)。
因为这是一本讲述内部机理的书籍,不是一本用户指南、程序设计或系统管理类型的书籍,所以,本书没有描述如何使用、编程或配置Windows。
提醒和告诫
因为本书讲述的是Windows操作系统中未文档化的内部结构和内部操作的行为(比如内核结构和函数),所以,这些内容有可能会在不同的发行版本中有所变化(外部的接口,比如Windows API,则不会受到不兼容变化的影响)。
说到“受版本变化的影响”,我们并不是指,本书讲述的细节会在不同发行版本中一定有所变化,但是你不能认为它们不会改变。任何使用了这些未文档化接口的软件都有可能在将来
.
的Windows版本上无法正常工作。更糟的是,在内核模式下运行并且用到了这些未文档化接口的软件(比如设备驱动程序)在新的Windows发行版本中运行时可能会导致系统崩溃。
支持
我们做了各种努力来确保本书的精确性。如果你遇到了任何问题,或者有任何疑问,请参考下面列出的资源。
来自作者的支持
本书远未达到完美。毫无疑问,它包含一些不精确的地方;或者也有可能,我们忽略了一些本该讲述的话题。如果你发现了任何你认为不正确的地方,或者你相信我们应该包含一些尚未涵盖的材料,欢迎发送电子邮件到windowsinternals@sysinternals.com。本书的更新和修正将张贴在www.microsoft.com/technet/sysinternals/information.windowsinternals.mspx页面上。
来自出版商Microsoft Press的支持
Microsoft也通过Web为本书提供修正内容,地址如下:
http://www.microsoft.com/learning/support
你可以直接连接到Microsoft学习知识库(Microsoft Learning Knowledge Base),针对你学习过程中可能碰到的问题,输入一个相关的查询请求,Web地址是:http://www.microsoft.com/learning/support/search.asp。
除了直接给作者们发送反馈信息以外,如果你对本书的表述或用途有任何建议、疑问或者想法,可以通过以下任何一种方法将它们发送给Microsoft。
通信地址:
Microsoft Press
Attn: Windows Internals Editor
One Microsoft Way
Redmond, WA 98052-6399
电子邮件地址:
mspinput@microsoft.com
请注意,通过上述地址并不提供产品支持。关于Microsoft Windows的支持信息,请访问www.microsoft.com/windows。你也可以在工作日的太平洋时间上午6点到下午6点打电话给(425) 635-7011,呼叫标准支持程序,或者搜索Microsoft的在线支持站点:suppport.microssft.com/support。