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

2020-01-11 21:34 来源:未知

国外和国内的操作系统论坛里都有同样的言论,似乎大家都一致认定,Windows Server 2008比Vista SP1从各方面来讲性能都要高,但是奇怪的是为什么会产生这种现象呢?毕竟Vista SP1就是采用了与Win2008同样的系统核心啊,如果你查看系统信息,就会发现它们的核心版本是一样的。

一个简单的回答就是,Server 2008提供了用户想要的功能,而Vista提供的是微软认为用户应该有的功能.这个回答很有意思,但是不能解决我们心中的疑问。


根据一个Windows性能研究项目exo.performance.network的数据,运行几个典型应用测试表明,Server 2008比Vista SP1的性能要高11~17%.而且这是在Server 2008打开Aero界面的情况下(安装Server 2008的桌面体验功能就可打开Windows Media Player、Aero等Vista的界面功能),同样的代码为何性能会不同呢?

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

我们的猜测是,第一,有可能是微软撒谎了,Win2008和Vista SP1的代码实际上是不同的,这需要深入的研究一下系统里的DLL文件,对比一下哪些是相同的哪些是不同的。

图片 1
IBM OS/2 2.0,1992年

第二种可能性就是Vista除了桌面体验之外,还有比Server 2008多出一些后台运行的东西,从而拖慢了性能.还有一种可能性就是测试错误,它们的性能基本是相同的,而只是测试的时候Vista运行了后台的更新或是什么模块从而影响了表现。

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

Server 2003跟XP的核心代码也是基本相同的,但是很多人认为打开一些桌面效果之后2003的性能还是高于XP,也有人认为这是错觉,现在同样的事情发生在Vista和2008上了,你是怎么认为的呢?

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

(责任编辑:admin)

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

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

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

图片 3
微内核架构: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带来了更好的灵活性和健壮性。

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

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

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

图片 5
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。设备相关以及性能关键的部分则是汇编。

图片 6
Windows NT Server 3.5,1994年

图片 7
Windows NT Workstation 3.5,1994年

图片 8
Microsoft Windows NT Server 3.51,1995年

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

图片 9
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:

图片 10
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,微软将图形相关的部分从用户层放入了内核层:

图片 11
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竞争。

图片 12
Microsoft Windows NT Server 4.0,1996年

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

图片 13
Microsoft Windows NT Workstation 4.0,1996年

图片 14

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

图片 15
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系统。笔者也使用了好长一段时间。

图片 16
Microsoft Windows 98,1998年

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

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

TAG标签:
版权声明:本文由澳门新浦金网站发布于操作系统,转载请注明出处:Win 1.0 到 Win 7 Windows 操作系统二十六年-2