Win 1.0 到 Win 7 Windows 操作系统二十六年-2

作者: 来源:IT168 日期:2009-10-23

在 1988 年开始,微软在研发 Windows 2.0 的时候,同时也在寻找新的道路,盖茨一直渴望研发一个可以运行在大多数处理器上,并具有 Unix 系统上的多种强大功能的、运行在 PC 机上的全新的操作系统。这或许是对比 Unix 和 Windows 下得到的结果的影响。盖茨对 Unix 和 Windows 都很了解,盖茨曾开发过一个叫做 Xenix 的 Unix 操作系统。


IBM OS/2 2.0,1992年

在1988年10月31日,比尔·盖茨做了一个现在来看非常重要的决定:雇用一群以David Cutler为首的来自DEC的员工,Cutler领导开发了DEC VMS系统。很快他们加入了和IBM合作的OS/2 2.0开发,OS/2 2.0是一个纯32位的操作系统,它大概就是盖茨梦想中的强大的高端桌面操作系统,而Windows 2.0/3.0则算是低端的桌面操作系统。然而后来在开发方向上的分歧,最后两家终于分道扬镳。

合作决裂之前,微软本来负责OS/2 3.0的开发,在决裂之后,这些来自原DEC的人马开始专心制作盖茨梦想中的操作系统,新的操作系统部分基于OS/2 3.0,同时还带有DEC VMS的因素,这个操作系统被命名为Windows NT,NT就是New Technology新技术的意思。从现在来看,在名字中出现New这个单词不算是一个好主意,因为新旧总是相对的,昔日的新到了现代就很难称之为新。因此现在沿袭Windows NT架构的系统都已经不再使用Windows NT这个名字,而是千奇百怪,无所不有。


Microsoft Windows NT 3.1,1993年,一直到现在,发展了16年

为此什么称之为NT呢?Windows NT采用了全新的设计思想,这牵涉到操作系统内核上的理念。在80年代前,主流的操作系统,要么是属于原始的没有内核的产品,要么属于单内核产品,到了80年代,学术界开始流行一种微内核的风潮,出现了如Mach(1985年)这样的经典微内核操作系统。典型的单内核系统则有各种Unix和类Unix。

在一个分层设计的操作系统中,为其他组件提供最基本的系统功能的部件就叫做内核。单内核就是单个大的进程映像中集成了操作系统中所有基础功能,而微内核就是在内核中仅集成了经过挑选的、基本的功能,其它的操作系统功能构建在其上——用户应用程序再构建其上。微内核的设计可以让系统变得更模块化,带来可移植性和新功能开发上的好处,此外操作系统层次更明晰,维护也会更加方便。


微内核架构:Windows NT架构图,适合3.1~3.51版本

谈到了内核之后,必须介绍一下特权等级(Privilege Level)和双模式(Dual Mode)的概念,操作系统必须安全地在多个程序间共享资源。资源不能让应用程序随意访问而必须由操作系统进行管理,它需要具有特殊的权限,因此在一些处理器上,设计了多种指令等级,不同的等级可以运行的指令并不相同。在80386处理器上,除了以前提到的各种改变之外,还有一个重要的改进就是在保护模式下引进了特权等级的概念:一共四个,从Ring 0到Ring 3,特权依次下降。Ring 0是被用于运行操作系统最核心的部分:内核,Ring 1和Ring 2用于不那么关键的部分:操作系统服务,Ring 3则用于应用程序。然而实际上很多当时的RISC处理器都只有两个特权等级,所以大多数操作系统包括Windows NT都只使用了两个等级,即Ring 0和Ring 3,如下图所示。

Windows NT之前的Windows由于并不支持这个设计,任意程序都可以直接操作硬件并破坏其它软件,系统十分脆弱。运行在两种特权等级下的系统模型就叫做双模式(Dual Mode),分别是用户模式(User Mode)和监察者模式(Monitor Mode)或者系统模式(System Mode ),后者通常叫做核心模式(Kernel Mode)。基于种种强大的特性,很多比较高级的操作系统都构建在386之上。


Ring 0~Ring 3:80386处理器引入的四层特权等级架构

特权模式也让真正的多任务功能成为了可能:处理器的定时器每隔一段时间就会产生一个中断,操作系统内核通过管理这个中断来获得不断的对系统的控制权,并根据特定的策略来调度多个程序的执行。Windows NT实现了基于优先级的抢先式多任务,操作系统可以随时中断其它程序的运行;而Windows 1.x/2.x/3.x只能实现协同多任务,也就是说一个程序愿意放出控制权的时候,其他程序才能继续执行,操作系统也一样。微内核设计给Windows NT带来了更好的灵活性和健壮性。


Windows NT 3.1的界面和Windows 3.x的界面很相像

基于可移植性和健壮性的要求,Windows NT还引入了新的内核模式驱动程序体系,它在实际的硬件上放加入了一层叫做硬件抽象层(Hardware Abstraction Layer)的东西,或许它也可以认为是内核的一部分,这取决于你怎么定义。硬件抽象层建立在驱动程序和实际的硬件之间,为驱动程序隐藏了硬件的不同,这样就可以编制出跨处理器(比如Intel x86和DEC Alpha、IBM PowerPC等)、源代码兼容的设备驱动程序,每一种硬件体系都有着不同的HAL版本,这部分需要针对不同的架构针对编写。这些依赖于具体硬件的部分使用了汇编语言来编写。在硬件抽象层之上,就是设备无关的部分了,在不同的体系之间进行移植至需要重新编译。

总的来说,Windows NT是一个全新的、基于微内核的、模块化分层的纯32位操作系统,符合了盖茨当年的想法:强大、健壮,可移植,功能齐全。Windows NT很快获得了学术界的认可。


Microsoft Windows NT Advanced Server 3.1,1993年

Windows NT发布后的第二年,微软发布了开发代号为Daytona的Windows NT 3.5,从这个版本开始,微软把NT操作系统分为了工作站版本和服务器版本,它们在系统服务上有些不同,同时,内核的任务调度策略选择上也有不同的倾向。Windows NT 3.5包括了新的开机画面和类似于Windows for Workgroups 3.x的用户界面,以及改进的OLE (对象链接环境) 技术。Windows NT实质上是一个基于对象的操作系统,在内核内部,资源都按照Object对象为单位进行管理,管理对象的凭据叫做Handle句柄。Windows NT部分代码采用了C++,由于性能方面的考虑,大部分代码仍然使用了C。设备相关以及性能关键的部分则是汇编。


Windows NT Server 3.5,1994年


Windows NT Workstation 3.5,1994年


Microsoft Windows NT Server 3.51,1995年

微内核设计一切都很好,但是有一个主要的问题:性能,第一代微内核设计如Mach等都有这个问题,因此Windows NT一统江山的时候还没能到来,微软在Windows 3.x的基础上继续开发,实际上,在开发Windows NT的时候,微软就在酝酿着两条操作系统线的融合,首先是API,微软希望它能成为未来操作系统的基础:


Win32 API,1991年1月

  显然Win32 API是一个32位的API,作为16位操作系统Windows x.x的替代。Windows NT就使用了这个API并替代了之前计划中的OS/2 API。最初的Windows NT面向服务器和工作站市场,在桌面系统上,微软希望能有一款不再依赖于MS-DOS、同样基于Win32 API的32位操作系统,于是代号为"Chicago" (芝加哥) 的操作系统被提上了开发日程,这就是后来的Windows 95:


Microsoft Windows 95,1995年

1995年8月24日,Windows 95正式发行,这是一个里程碑式的作品,也是第一个以年份来命名的Windows,正式的版本号是4.0。为了实现对以往的兼容,Windows 95是一个16位/32位代码混合的单内核操作系统,大量的组件和新概念在Windows 95中被引入,如开始菜单和任务栏这样等。Windows 95还同样实现了抢占式多任务和多线程技术,虽然在16位程序仍然基于协同多任务调度。Windows 95还支持即插即用(Plug and Play)技术和更丰富的多媒体程序,系统最低必须提供640×480分辨率和256色的支持。Windows 95迅速成为了一个流行的游戏/多媒体平台。

95年年底,微软发布了Windows 95 Service Release 1,第二年又推出了Windows 95 OEM Service Release 2(Windows 95 OSR2) ,开始正式支持FAT32文件系统,并开始捆绑Internet Explorer,这个举动引起了互联网浏览器格局的变迁。Windows 95 OSR2还开始集成了Direct X 2.0,这个API在图形界面上将会变得越来越重要。由于Windows 95 OSR2的重要性,人们叫它为Windows 97。

在Windows 95获得了巨大的成功的同时,微软还在不停地改进Windows NT,作为一个以GUI为根本的操作系统,图形性能是基础。在通常情况下,微内核的性能比单内核性能要低,因为单内核通过系统调用而微内核通过消息传递。虽然Windows NT发布的时候采用了特别的方式改进了图形性能,如优化的消息传递协议LPC(Local Procedure Call,本地过程调用,用来和RPC对应),并且还从中特别创造了Quick LPC,通过事件对(Event Pair)这个特别的结构来加速CSR subsystem(Win32子系统)的图形操作。然而微软感到还未足够,到了1996年发布的Windows NT 4.0,微软将图形相关的部分从用户层放入了内核层:


Windows NT 4.0架构图,带颜色的部分在之前的版本中原本属于CSR subsystem的一部分;Windows NT 4.0之前,驱动程序也有一部分在用户层

在Windows NT系统中,所有的图形界面操作都和Win32子系统(上图是CSR subsystem)相关,系统通过调用Win32子系统的GDI(Graphics Device Interface,图形设备接口)API,然后GDI部件调用显卡驱动来实现图形操作,后一种调用比前一个调用频繁的多,因为一个简单的GDI命令需要和显卡驱动进行频繁的交流来完成。在Windows NT 4.0之前,GDI和搭配的USER、WIndows管理器都在CSR subsytem进程中,也就是在用户层,因此图形操作会需要频繁地在用户态和核心态之间切换,引起很多的系统开销。而在Windows NT 4.0中,只有数量相对较少的GDI API调用会导致用户态和核心态之间切换,因此图形性能得到了很明显的改进。如PowerPoint的性能就提升了15%-20%。在“便宜”的高端工作站上,Windows NT 4.0开始和Unix竞争。


Microsoft Windows NT Server 4.0,1996年

1996年6月29日,Windows NT 4.0正式发布,它看起来和Windows 95很像,同样集成了DirectX 2.0,并增加了许多服务应用程序,如以后越来越重要的微软Web服务器:IIS (Internet Information Services,因特网信息服务) 工具。


Microsoft Windows NT Workstation 4.0,1996年
1995年发布的Intel Pentium Pro高能奔腾处理器,根据当时的测试表明,混合16位和32位代码的Windows 95在Pentium Pro平台上运行不佳,而运行纯32位的Windows NT正好,表现非常强劲

Windows NT 4.0 & IE 2.0
在Windows 95和Windows NT 4.0各自取得成功之后,微软开始考虑两条产品线融合的问题,这个要首先解决驱动的问题:Windows 9x系列使用的是VxD驱动模型,而Windows NT使用的是独特的Windows Driver Model,或WDM,在更早的技术文档中也曾用过Win32 Driver Model这个名字。

1998年6月25日,微软推出了Windows 95的接班人Windows 98,它开始支持WDM驱动模型。Windows 98原开发代号为 "Memphis" (孟菲斯),版本号是4.10.1998。Windows 98开始集成了Internet Explorer(IE4.0)并因此惹上了官司……Windows 98还开始集成快速启动栏(Quick Launch Bar)作为重要的界面元素,总的来说,Windows 98较Windows 95方便易用,并且增加了大量驱动程序并对系统代码进行了大量的完善,随后1999年6月10日发行的Windows 98 SE (Second Edition,第二版)更是号称最稳定的Windows 9x系统。笔者也使用了好长一段时间。


Microsoft Windows 98,1998年

Windows 98 SE包括了一系列的更新,如Internet Explorer 5、Windows NetMeeting 3、Internet连接共享、对DVD-ROM和对USB的支持,以及DirectX 6.1 API,使得Windows系统成为了绝佳的游戏平台。


其时流行多媒体,1997年,Intel推出MMX技术提升了PC的多媒体体验 


Windows 98界面

  在Windows 98 SE发布、推出的时候,长寿的Windows NT 4.0仍然在不停进行Service Pack升级之中,同时Windows NT 5.0也已经在进行开发(笔者使用过其测试版),不过由于一些非技术性的因素,向Windows NT统一的大业仍未能完成,因此在2000年,微软分别放出了两个操作系统系列的继任版,Windows 98 SE的升级版本就是Windows Millennium Edition(Windows千禧版),简称Windows Me,发行日期是2000年9月14日,从4.9的系统版本号可以看出Windows 9x内核的命运。

  和Windows 9x系列一样,Windows Me的定位是家庭娱乐,主要升级了一些常用软件如Internet Explorer 5.5和Windows Media Player 7.0,同时还加入了System Restore系统还原技术。Windows Me还有一个比较重要的变化是去掉了实模式的DOS。从Windows 95开始实际上Windows 9x系列就已经不再需要DOS——只不过在启动的时候用到,并且通过提供实模式DOS来提供更好的兼容性。Windows Me彻底摆脱了这个包袱,不过实际上……实模式DOS在维护时仍然很重要,因此这时出现了将实模式DOS加回去的方法。


Microsoft Windows Millennium Edition,2000年

  在Windows Me发布的稍候,Windows NT 5.0版本发布了,不过其名字被改为了Windows 2000,从原定的Windows NT 5.0统一操作系统产品线可以看出它的重要性。Windows 2000于2000年2月17日正式推出,针对不同的用户群体共发布了4个版本: Professional(专业版)、Server(服务器版)、Advanced Server(高级服务器版)以及Datacenter Server(数据中心服务器版)。其中,专业版其实定位和以前的工作站(Workstation)版本很接近,同时更靠近桌面应用,Windows 2000在Alpha测试时曾经还有一个代号Neptune的家庭版本,不过最终没有推出。Windows 2000带来了很多的新特性,如新的NTFS 5.0文件系统、EFS文件加密系统、分布式文件系统、Active Directory活动目录等。重要的系统管理工具MMC管理控制台也被引入。Direct X也被重写以适应Windows NT内核,从而使Windows 2000也成为了一个不错的游戏平台。


Microsoft Windows 2000,2000年
在Windows Me算是还过得去的终结之后,Windows 9x单内核设计寿终,Windows NT微内核架构终于统一了微软的操作系统设计,并带来了家用版NT架构Windows:Windows XP,这是迄今为止最畅销的Windows操作系统。


Microsoft Windows XP Professional,2001年

  Windows XP于2001年8月24日正式发布,XP的意思是eXPerience(体验)的意思。Windows XP的版本号是5.1(Windows NT 5.1),内核没什么大变动,不过界面比起Windows 2000来有了很大的变化,更适合家庭用户,Windows XP继承并升级了Windows Me中的很多组件,如Media Player、Movie Maker、Windows Messenger、帮助中心、系统还原等等,以及IE的升级版本IE 6.0和一个简单的Windows防火墙。在集中精力到同一个架构之后,微软以及IHV们有足够的精力为系统编写硬件驱动,因此Windows XP发布时集成了大量的硬件驱动程序,使得其兼容性有了明显的进步。 


Windows XP SP2,启动界面上Windows XP下方的字样被去掉了

  Windows XP是一个长命的版本,直到2009年的现在Windows 7出现之后仍然有不少用户坚持使用XP。XP最初只发行了两个版本:Professional专业版和Home Edition家庭版,后来又相继推出了Media Center Edition媒体中心版、Tablet PC Edition平板电脑版、Embedded嵌入版、Starter Edition入门版以及为低端PC定制的Fundamentals for Legacy PCs精简版等。此外,为了配合Intel Itanium 64位处理器,Windows XP还有一个特别的64-Bit Edition,专门为Itanium安腾平台设计。


Microsoft Windows XP 64-Bit Edition,2003年

  虽然统一使用了同样的Windows NT架构,并把工作站版本的定位拿了过去,不过服务器版本仍然是一个单独的代码树,并最终形成了一个新的版本:Windows Server 2003,虽然是对应Windows XP的服务端版本(Windows XP被定位成一个Client客户端版本),不过它们的区别是挺大的。 Windows Server 2003早期开发代号为Whistler Server,后来曾一度被改名为Windows .NET Server(为了符合.NET Framework、Visual Studio .Net等一系列计划)。


Microsoft Windows Server 2003,2003年
  Windows Server 2003于2003年3月28日问世,版本号为5.2。Windows Server 2003对Windows 2000中的各种部件作了较大的改进,功能和稳定性都有着实质性的飞跃。2005年,微软又推出了Windows Server 2003 R2,包含了较多的功能升级。Windows Server 2003 R2也是我们IT168评测中心进行服务器评测时经常使用的一个操作系统之一。 

  在2005年,AMD推出了AMD64技术,走在了Intel的前面,为了配合硬件的发展,Windows XP Professional x64 Edition版本出现了,x64专门指非IA64架构的AMD64和EM64T技术,实际上,这个系统就是Windows Server 2003 x64 SP1,它们基于相同的代码树,因为推出的时候Windows Server 2003出了SP1,因此Windows XP Professional x64 Edition推出的时候就自带了SP1,没有不带SP的版本。顺便说一下,基于和Windows Server 2003 x64相同的稳定性,而能支持更多的桌面应用程序特别是游戏,因此笔者使用了一段时间用来当游戏/工作两用机。


Microsoft Windows XP Professional x64 Edition,2005年;图上的测试版本日期是2004年
Windows Vista的开发代号为Longhorn,原定于2003年发布,然而由于微软雄心勃勃的改进计划,把越来越多的功能加入到了这个系统中,导致发布一拖再拖。为了能和Windows XP/Windows Server 2003相隔太久,最终微软砍掉了不少功能,并于2005年11月30日发布给商业用户,于2006年1月30日发布给零售用户。Windows Vista最大的改进是在其界面,Windows Aero GUI集成了一个DWM桌面窗口管理器并改变了显示驱动的模型:从XPDM变成了WDDM。关于这个模型架构的变化可以察看这里:

垂直同步之谜 XP/Vista与3D性能测试

  全新的设计让Windows Vista的界面看起来更加漂亮,不过代价是这个全新而不成熟的设计让系统性能比较明显地降低,因此Vista并没有受到广泛的好评,而没有流行起来。

  Vista相比XP,内核进行了更新以支持IO优先级和内存优先级,以及ReadyBoost等功能。在配置比较好的机器上,Vista表现不错,因此笔者从Vista SP1开始就转向了Vista x64 SP1。由于此时一些用户的内存配置已经达到或者超过了4GB,64位Vista比起32位版本来反而要更流行。

谁限制了4GB内存 32位Vista大内存实战


Microsoft Windows Vista,2005年

Windows Vista Ultimate x64 SP2

  Windows Vista包括了很多新的功能, 包括先进的搜索和信息组织方式(不过笔者很讨厌Vista的搜索)、.Net Framework 3.0 、侧边栏Windows Sidebar、Windows Defender反间谍软件、KPG内核保护、令人诟病的UAC用户帐户控制功能和充分利用内存的ReadyBoost技术,以及软件升级版本:Internet Explorer 7.0和Windows Media Player 11.0等,由于推出比Vista略迟,因此Windows Server 2008一出现就集成了SP1包。Windows Server 2008还首次提供了Hyper-V的虚拟化技术。

  从Windows Vista开始,Windows的桌面版和服务器版使用的代码树开始融合——这样可以减少同时为两个不同的代码树进行维护的消耗。Windows Vista对应的服务器版本被命名为Windows Server 2008。一开始的代号为Longhorn Server。Windows Server 2008是一个首次提供了无GUI界面的Windows产品,这种界面叫做Server Core。尽管这个形式和Windows的名字有些不对头,不过为了尽量提供更好的服务器性能,这是可以理解的。默认的Windows Server 2008 GUI安装还仅用了Vista上具有的Aero效果。


Microsoft Windows Server 2008,2008年
Vista与其上一代XP相比,提供了非常大的改进,然而一方面这些改进过于巨大,用户乃至相应软件厂商(如,DirectX 10应用开发商)一时无法完全接受,另一方面,由于特性的不完全具备,Vista的表现没有想象之中的那么好。到了Windows 7,包括操作系统本身、软件厂商和用户都已经做好了准备,因此反响比Vista更好也就不难理解了。

Microsoft Window 7,2009年10月22日

  Windows 7它其实是Windows Vista的改进版,从内部版本号6.1可以看出。Windows 7在Windows Vista的基础上进行了大量的完善工作,也加入了不少新特性。


Windows 6.1
  关于最近推出的Windows 7,最大的变化在于图形架构,如下所示:


Windows 7核心图形架构

  因为新的图形架构,Windows 7的系统性性能有了明显的提升,根据我们的测试,提升达到了10%。我们已经有相当多的文章来说明这个问题:

企业专用操作系统 Windows 7企业版测试

比Vista更完善 Windows 7图形架构解析

性能提升10% Vista/7系统性能对比测试
 

  和Windows 7同时推出的服务器版本则名字没有太大的变化:因为大部分主要的变化都集中在图形界面上了,因此新的服务器版本就简单地称为Windows Server 2008 R2,和之前版本不同的是,Windows Server 2008 R2只有64位的版本。


Microsoft Windows Server 2008 R2,2009年10月22日


相关文章