11.1.3 21世纪:基于NT的Windows

在20世纪80年代末,微软认识到继续开发以MS-DOS为核心的操作系统不是一个最佳商业发展方向。计算机硬件在不断地提高计算速度和能力,最后PC市场会出现同桌面工作站和企业服务器的碰撞,而在这些领域UNIX操作系统是占优势的。微软同时也注意到Intel微处理器家族可能不再具有很大的竞争优势,因为它已经受到了RISC架构的挑战。为了讨论这些因素,微软从DEC公司招聘了一些由Dave Cutler带领的工程师,他是DEC的VMS操作系统的主要架构设计者。Cutler被指派开发一种全新的32位操作系统用于实现OS/2,微软当时联合IBM在合作开发OS/2操作系统的API接口。最初的设计文档中,Cutler的团队称这种操作系统为NT OS/2。

Cutler的系统由于包含很多新技术被称作NT(New Technology)(也因为最初的目标处理器是新型的Intel 860代码名称是N10)。NT开发的重点是方便地在不同的处理器之间切换和着重在安全性和可靠性方面,它同样兼容基于MS-DOS的Windows版本。Cutler的DEC工作背景展现在多个方面,有不止一处体现出NT系统的设计和VMS以及其他系统设计的相似性,如图11-2所示。

阅读 ‧ 电子书库
图 11-2 由Dave Cutler开发的DEC操作系统

当DEC的工程师(包括后来的律师)看到NT与VMS是如此相似时(也包括他们没有发布的版本MICA),一场有关于微软使用了DEC的知识产权的争论在DEC和微软之间展开了。最终的结果是庭外和解。另外,微软同意在一段时间内支持NT系统在DEC的Alpha机器上的使用。然而,这些都不能把DEC从它在微型计算机上的错误定位和轻视个人计算机的观点中挽救回来。如同DEC的创始者Ken Olsen在1977年评论的:“没有人会想要在家里拥有计算机。”这使得DEC在1998年被出售给康柏(Compaq),而后者稍后又被惠普(Hewlett-Packard)收购。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

那些仅仅熟悉UNIX的程序员发现NT的架构非常不同。这不仅仅是因为受到了VMS的影响,也是因为在当时计算机系统的不同导致设计不同。UNIX是在20世纪70年代为单处理器、16位、微内存、切换系统设计的,那时进程是最小的并行和组成单元。而且fork/exec是并不消耗很多资源的操作命令(因为切换系统经常被通过磁盘拷贝)。NT是在20世纪90年代初期设计的,当时多处理器、32位、大容量存储、虚拟内存系统已经非常普及。在NT系统中,线程是并行单元,动态连接库是组成的单元,并且fork/exec是被通过单一操作命令来实现创建一个全新的进程,然后运行另外一个程序而不需要首先复制一个拷贝。

第一个基于NT的Windows版本(Windows NT 3.1)在1993年发布,它被称作3.1是因为那时的消费版本是3.1。与IBM合作开发的版本也建立了,虽然OS/2的界面仍然被支持,Windows API的32位扩展称为Win32。在生产和销售NT的那段时间里,Windows 3.0发布了,并且在商业上取得了成功。它不仅可以运行Win32程序,并且使用Win32兼容库。

就像基于MS-DOS的Windows的最初版本一样,基于NT的Windows的最初版本也不是完全成功的。NT需要更多的内存,那时只有很少的32位应用程序。并且与设备驱动和应用程序的不兼容使得许多消费者重新回到微软仍在改进的基于MS-DOS的Windows——发布于1995年的Windows 95。Windows 95提供像NT一样的本地的32位程序界面,但是与现存的16位程序和应用软件有更好的兼容性。并不使人惊奇的是,NT的早期成功是在服务器市场与VMS和NetWare的竞争中。

NT确实达到了可移植性的目标,在后续的1994和1995年发布的版本中增加了对(小指令字节)MIPS和Power PC架构的支持。NT最初最主要的升级是在1996年升级成为Windows NT 4.0。这个系统包含了性能、安全性和可靠性,也拥有跟Windows 95同样的用户界面。

图11-3显示了Win32 API和Windows之间的关系。具有通用的API接口的基于MS-DOS的Windows和基于NT的Windows促成了NT的成功。

阅读 ‧ 电子书库
图 11-3 Win32 API接口允许程序在几乎所有版本的Windows上运行

这种兼容性使得用户可以方便地从Windows 95移植到NT,操作系统也在高端的计算机市场上比如说服务器领域中扮演了很重要的角色。然而,用户并不急切地希望接纳其他处理器架构,在1996年Windows NT支持的四种架构中(在这个版本中增加了对DEC Alpha的支持),只有x86(就是奔腾家族)在下一个主要的发布——Windows 2000中被着重地支持。

Windows 2000代表了NT的重大进化。增加的关键技术包括即插即用功能(当使用者要安装新的PCI卡时,不再需要更改跳线)、网络目录服务(对于企业用户)、改进的电源管理(对于笔记本用户)和改进的GUI(对于任何用户)。

Windows 2000技术上的成功,领导着微软继续朝着通过提高应用程序和设备的兼容性来引导下一个系统Windows XP,而Windows 98则逐步淡出市场。Windows XP包含了一个更加友好的外观及感觉的图形界面,更加增强了微软关于关联消费者以及增加了消费者推动他们的雇主来接纳他们已经熟悉的环境的销售策略。这一策略获得了压倒性的成功,在最初的几年里,Windows XP被安装在成千上万台计算机上,这使得微软成功实现了有效地结束基于MS-DOS的Windows系统这个目标。

Windows XP代表着微软的一种新的发展路径,为桌面用户和企业用户发布了不同的版本。Windows XP系统太复杂以至于不能同时提供高质量的客户端以及服务器发布。Windows 2003服务器版本是Windows XP客户端操作系统的补充,它提供了对Intel 64位安腾处理器的支持,并且在它的第一个补丁包中,对AMD x64架构的服务器和客户机都提供了支持。微软利用用户版本和企业版本不同的发布时间来增加服务器特性,引导在商业主要应用的测试。图11-4显示了Windows用户版本和服务器版本的关系。

阅读 ‧ 电子书库
图 11-4 Windows用户版本和服务器版本在不同时间发布

微软紧跟着Windows XP后面的是一个雄心勃勃的发布,令PC消费者兴奋的全新体验。最终的结果,Windows Vista,在2006年下半年完成,距离Windows XP发布大约五年。Windows Vista声称有全新开发的图形用户界面,新的安全特性。大多数改变是在使用者的可视化经验和兼容性方面。系统内部的技术大幅度地提高了,进行了很多内部编码优化和许多在界面上的改善、可测量性和可信赖性。Vista的服务器版本(Windows Server 2008)在用户版本的一年之后发布,它分享了同样的系统内核,例如核心、驱动、底层库和程序。

关于早期开发NT的人物历史在一本书《Show stopper》 [1] (Zachary 1994)里有相关的介绍。书中讲述到很多关键的人物,以及在如此庞大的软件开发工程中所经历的困难。

[1] 本书中文版已由机械工业出版社引进出版,书名为《观止——微软创建NT和未来的夺命狂奔》,书号为ISBN 978-7-111-26530-6。——编辑注