我又一次发现自己真的要感谢David Solomon和Mark Russinovich了,他们提供了机会让我在他们合著的关于Windows内部机理的系列图书的最新版本中写一些话。在这一系列图书中,上一版本的出版距新版本已经有三年了,在此期间Windows已经有了两个主要的发行版本:一个是对客户系统的重大更新,另一个则是对刚刚准备就绪要发行的服务器系统的重大更新。
对于像这样一本书的作者,他们面临的两个日益显著的问题是,跟踪Microsoft Windows NT系统在实现方面的进展,以及记录下在每一个版本中哪些特性的实现发生的变化。最终,本书的作者们完成了这一杰出的工作,为全书提供了例子和解释。

(从左至右)David Solomon、David Cutler和Mark Russinovich
当我第一次碰到David Solomon时,我还在DEC(Digital Equipment Corporation)为VAX的VMS操作系统工作,当时他只有16岁。从那时起,他一直涉足于操作系统的开发和对操作系统内部机理的教学。我认识Mark Russinovich的时间要短一些,但知晓他在操作系统领域的专业特长也很有一段时间了。他曾经做出了很杰出的工作,比如可在Microsoft Windows 98上运行的NTFS文件系统,以及他的“实时”Windows内核调试器(通过该工具可以在Windows系统运行的时候探查其内部状态)。
Windows NT项目最初是从1988年10月份开始的,起初的目标是实现一个可移植的系统,能够解决OS/2兼容性、安全性、POSIX、多处理能力、集成的网络功能,以及可靠性等诸多问题。随着Windows 3.0的发行和巨大成功,这些系统目标很快也随之发生变化,变成了直接处理Windows的兼容性,而把OS/2兼容性移到一个子系统中。
我们最初认为,可以在两年多时间内完成第一个Windows NT系统。实际上,第一个发行版本花了四年半时间,到1993年夏天才完成,这一发行版本支持Intel i386、Intel i486和MIPS R4000处理器。六周以后,我们也引入了对于Digital Alpha处理器的支持。
Windows NT的第一个发行版本比预期的要大、要慢,所以,下一个重要的阶段是一个称为Daytona的项目(用Florida的一条高速公路来命名)。这一发行版本的主要目标是减小系统的尺寸,提高系统的速度,当然,也要使它更加可靠。1994年秋天我们发布了Windows NT 3.5,过了6个月,又发布了Windows NT 3.51,此更新版本包含了对于IBM PowerPC处理器的支持。
Windows NT下一个版本的目标是,更新用户界面以便与Windows 95兼容,以及将Microsoft已经开发多年的各种Cairo技术融合进来。这一系统的开发花了两年多时间,最终在1996年夏天作为Windows NT 4.0面市。
NT的下一个版本是Windows 2000,这是最后一个客户和服务器系统同时发布的系统。这一版本建立在与以前版本相同的Windows NT技术基础之上,同时也引入了一些重要的新特性,比如活动目录。花了三年半时间来开发Windows 2000,对当时的Windows NT技术作了全面的测试和调节。开发Windows 2000是过去11年来跨越4种体系结构的系统开发之巅峰。
在Windows 2000开发结束时,我们又启动了一个宏伟计划,要在新的客户和服务器系统中融入新的、增强的客户特性和改进的服务器能力。在这一计划实施过程中,有一点越来越清楚,即服务器特性的实现将会导致客户特性实现的滞后,因此,客户和服务器系统的版本被分开了。在2001年8月,Windows XP Professional和Windows XP Home Edition发布了,一年多以后,在2003年3月,Microsoft Windows Server 2003也发布了。除了对Intel x86体系结构的支持以外,这些系统还包含了对于Intel IA-64的支持,这标志着Windows NT第一次进入了64位处理的领域。
本书是有关Windows XP和Windows Server 2003的内部结构和工作机理的一部权威之作。而且,它也提供了Windows将来转移到64位计算上的大略介绍,包括AMD在2003年引入的x64体系结构(AMD64)和Intel于2004年2月份宣称的64位支持(EM64T)。完全支持x64的客户和服务器版本计划在2005年上半年发行,本书包含了有关x64系统实现细节的诸多精辟观点。
当x86体系结构开始显现出旧时代征兆之时,x64体系结构即是Windows NT的新时代的开始。这一体系结构提供了32位x86兼容性,以保护过去的软件投资,同时它也提供了64位寻址能力以便满足新应用程序更大的空间需求。这既保护了32位软件的投资,同时也为Windows NT进入下一个10年或走得更远而提供了必不可少的支撑。
尽管在过去几年中,Windows NT系统经历了几次名称上的变化,但是,它仍然完全建立在最初的Windows NT代码基(code base)的基础之上。随着时间的推移和各种发明创造的诞生,许多内部特性的实现发生了重大的变化。本书作者已经做了令人赞不绝口的工作来诠释Windows NT代码基的细节,及其在不同版本之间和不同平台之间的实现上的差异,同时他们也开发了一些例子和工具来帮助读者理解Windows NT内部是如何工作的。每一个认真的操作系统开发人员都应该在自己的案头有这本书。
David N. Cutler
Senior Distinguished Engineer
Microsoft Corporation







