IBM的计划是,PC仿造商必须得到自己的技术授权,这样OS/2和Presentation Manager才能取代MS-DOS和Windows,重新令自己的公司控制住PC的开发。更为重要的是,IBM相信仿造商们不敢放弃PS/2标准去生产基于80386的系统,如果他们这样做了会导致出现更多互相不兼容的32位扩展插槽标准。
但是IBM的计划并不成功,康柏在1986年底用Deskpro/386回应了PS/2的发布,那是一种完全兼容32位80386处理器,并且具有标准的16位AT扩展插槽,可以使用现有扩展卡的系统。仿造商们最终使用了ISA(Industry Standard Architecture,工业标准体系结构)插槽,而PS/2成了IBM在企业客户端领域外的一大败笔。
微软此时也遇到了问题。他们当时已经有了可以正常运行在带有ISA总线的新一代计算机上的Windows,而且所有应用程序都可以正常使用,但是他们和IBM还有一条合约,因此微软在开发自己操作系统的同时还必须继续OS/2的开发。
这个问题一直持续到1989年OS/2 1.1以及Presentation Manager的发布,虽然该系统发布了,但是缺少用户和第三方应用程序开发商的支持。最终的决裂在微软发布了第一个PC版的Word后正式发生了,IBM抱怨说微软承诺过要首先发布OS/2版的Word,因此他们的合约正式作废,而IBM开始独自继续OS/2的开发。微软终于可以一门心思专注于对Windows的改良。 第三次飞跃
Windows 3.0的发布使其成为微软最具突破性的产品之一。当时的内存管理技术已经发生了改头换面的更新,而且首次加入了对虚拟内存的支持。这个操作系统可以使用80286和80386处理器提供的每个操作模式,同时依然可以运行在老的基于8088的机器上。这意味着Windows 3.0可以使用用户添加的所有内存,并控制分配所有的内存和其他资源,以保证Windows应用程序的多任务运行。
新版的Windows还受益于1989协议(1989 settlement),解决了所有和Apple有关的用户界面的版权问题,这也意味着Windows 3.0更像Macintosh了。
微软售出了一千万份Windows 3.0,并吸引了大量第三方开发商。当时Windows 3.0已经可以在主流硬件配置的计算机上提供很高的性能以及流畅的图形效果,Windows又一次达到顶峰。
Windows NT 3.1是第一个32位,具有保护模式的可移植(Portable)操作系统,因为缺乏硬件驱动以及对硬件的过高要求,因此通常都是用在服务器上。
但是有关OS/2的故事还没有结束。1988年,在和IBM的协议依然有效的时候,微软从Digital Equipment公司请了Dave Cutler开发“可移植的OS/2”,这个版本的操作系统应该可以在多种硬件平台上运行。当时的打算是希望同一个软件能像在英特尔处理器的平台上那样运行在RISC(Reduced Instruction Set Computer,精简指令集计算机)平台上,不过当时尚不明了到底哪个系统架构可以在未来成为主流。
但是Cutler决定开发一种全新的操作系统替代OS/2,这种系统是源自scratch的,可以被叫做Windows New Technology或Windows NT。这应该是一个32位操作系统,其内核运行在一个“硬件抽象层”上,这样就可以隔离来自系统平台的代码。
在开发Windows NT的同时微软还在继续改进16位的Windows,当时的意图是希望这两种操作系统可以共用通用的用户界面以及API(Application Programming Interface,应用程序接口)。1992年发布的第一个版本的Windows NT被编号为3.1,以符合Windows系统的版本编号。尽管包含了可缩放的TrueType字体、多媒体扩展以及更广泛的硬件支持,但随后发布的Windows 3.1更像是一个修复补丁后重新发布的系统。
Windows 95用户界面显示了一些与Internet有关的元素,而且通过设置,该系统可以使用单击操作代替“传统”的双击操作。
类似的,Windows for Workgroups 3.11也仅包含了一些小的升级,例如增加了点对点网络的支持。虽然默认没有包含,不过它是第一个以安装补丁的形式提供TCP/IP协议的系统。
Windows 3.1和Windows for Workgroups 3.11继承了Windows 3.0的成功,但是NT的市场却遇到了麻烦。硬件抽象模式使得为该系统编写特定外设或组件的驱动变得异常困难,而且NT的体积、严格的安全和内存管理技术意味着该系统不仅需要更昂贵的硬件来运行,而且在这些硬件上运行的性能会相当好。要将现有的Windows应用程序移植到NT平台很困难,而且很不值得这样做,因此该系统的市场份额就要比Windows小很多。NT注定是为以后的网络服务器编写的。
微软计划在未来通过将Windows和NT合并到一起的方法解决这些问题。名为“芝加哥”的下一代Windows可以使用新一代NT中的Win32 API,但同时还包含了一个叫做Win32s的Win32子集,这样开发人员就能开发可以同时运行在Windows 3.1和NT上的程序,而且“芝加哥”通过兼容模式依然可以运行老的16位Win16应用程序。通过上述方法产生了一个开发代号为“开罗”的操作系统,其中包含了通用API,不过事实证明通往开罗的路并不平坦
启航
“芝加哥”最后成了Windows 95,该系统第一次对硬件PnP(Plug and Play,即插即用)技术提供了支持。这也是第一个可以运行在32位80386增强模式下的Window 操作系统,具有平坦(Flat)32位内存空间,虚拟内存寻址最高达到了4GB,而且这些地址空间可以被操作系统和应用程序一起使用。从Windows 3.1开始,用户界面就没有太大的变化,不过在“开罗”项目快要结束时,随着发布日期的临近,用户界面也经过了适当的改进。
随着Windows 98的发布,互联网功能被完全集成在这一操作系统中,这直接导致了针对微软的反垄断诉讼。这是当时一本从互联网角度介绍Windows的书。
Windows 95主要是面向新的消费领域,当时的家庭和办公室中,PC的普及速度越来越快,但是微软依然没有充分认识到互联网的重要性,只不过是在日后的OEM版Windows中包含了Internet Explorer。同时该系统增加了对USB设备的支持,而很多包含了内置硬件的老计算机上捆绑的操作系统都无法使用这类设备。
在接下来的几年里,Windows和NT的开发持续了相对独立的趋势。NT 4.0中增添了Windows 95所用的用户界面,但同时通过将显卡驱动设计为内核模式以图增强性能。Windows 98增加了对大硬盘的支持,并将Internet Explorer更深入地集成进用户界面和文件管理器中,这一行动直接导致了美国和欧盟持续很久的反垄断诉讼。Windows 98第二版原本被计划为16位Windows产品线上最后一代产品。
但事实并非如此。NT 5.0(也就是Windows 2000)依然不适合大部分用户,虽然该系统采用了统一的驱动模块,但是受限于NT的硬件抽象模型,性能问题依然很严峻。一些Windows应用程序和某些游戏都习惯于直接访问硬件以便获得更高性能的,虽然微软自己试图通过类似DirectX和OpenGL之类的驱动解决这个问题,不过对于家庭用户,Windows 2000在这方面做得并不好。
正因为如此,为了填补Windows 2000和下一代开发代号为Whistler的操作系统之间的空白,一个匆忙推出的,叫做Windows Millennium Edition(或Windows ME)的16位Windows发布了。
该系统对Internet的支持有所提高,而且首次出现了可以撤销对计算机的有害操作的系统还原功能,不过该系统并未获得目标用户的支持。这些用户大部分依然停留在Windows 98 SE系统下,并继续等待Whistler的发布。Whistler最后的发布名称 Windows XP,Windows XP是Windows历史上存活时间最长的系统,从2001年10月一直持续到2006年11月发布,而且该系统一共销售出了超过4亿套。
该系统实际上是基于Windows 2000的,因为有了一些广泛采用的技术,例如DirectX和OpenGL可以访问显卡并进行加速,该系统更容易被家庭用户和游戏玩家接受。
为了让界面更友好,Windows XP的用户界面经过了一些彻底的改进。虽然很多有经验的用户不喜欢那种界面,宁愿切换回“经典”外观。而在用户界面内部,所有为Windows开发的技术都已经在过去21年里的操作系统进化过程中经过了自然选择的过程。
我敢说,在Windows XP或Vista中完全没有留下Windows 1.0的一点影子,我们甚至都已经看不到任何一点Windows的前辈,MS-DOS操作系统的影子。如果喜欢,一些怀旧的人依然可以打开一个全屏的命令提示行窗口,去体会一下Windows发布之前的漫长岁月里,个人电脑的样子。 内存问题
Windows总是会使用可以找到的所有内存,同时当内存不够用的时候还会将硬盘空间当作“虚拟内存”来使用。但是Windows可以使用的内存数量受到了英特尔的处理器以及内存芯片价格的限制。
最初用于PC的8088和8086处理器只能寻址1MB的内存,而当时的PC架构导致只有其中的640KB可以和程序使用。但是随着应用程序需要越来越多的空间以便能运行,解决这种限制的方法出现了。其中一个是EMS(Expanded Memory Specification,扩展内存规范),该技术使用了一块64KB的内存区域映射物理地址超过1MB地址线(Address Line)的更高容量的内存区域。最初该标准允许我们添加最多8MB的EMS内存,但是这些内存只能用来保存数据,程序依然无法从超过640KB的内存空间中运行。
另一种对立的标准是EEMS(Enhanced Expanded Memory Specification,增强的扩展内存规范),这种标准使得低于640KB地址线的内存可以被映射,这样应用程序就可以使用扩展的内存空间了。EMS和EEMS标准最终被合并为LIM EMS 4.0,微软在Windows 3.0中对该标准提供了支持。
80286处理器可以寻址16MB物理内存,但是只能在操作系统被引导为一种特殊的“保护模式”下才能实现,而这种情况下将无法运行MS-DOS。在保护模式下,超过1MB的内存被叫做“扩展内存”。在Windows/286中,微软使用了底层驱动在80286处理器的扩展内存空间中模拟扩展内存,这样这些控件就可以被应用程序使用了。
32位80386处理器具有更多的内存选项。Windows/386同时使用了保护模式和虚拟8086模式让MS-DOS实现多任务功能。
64位,苹果熟了?
在Windows XP的众多版本中,Windows XP Professional X64 Edition支持Intel和AMD的芯片使用的32位处理器架构上的64位扩展功能。该功能实际上意味着64位操作系统可以在同一台计算机上同时运行64位和32位的应用程序,不过前者可以访问到的内存地址空间要比32位的4GB大不少。
那么,我们是否都需要尽快迁移到64位Windows中?很遗憾的是,事情并不是那么简单。其中一个很重要的问题是,64位操作系统需要所有设备的驱动都重新编写为支持64位系统的形式,哪怕只有32位程序要使用这些驱动。这意味着很多设备都无法支持64位的Windows XP和Vista,而且除非这些设备制造商认为值得开发64位驱动,否则这些设备永远无法用在64位系统中。随后还有硬件要求方面的问题,不过目前看上去还不是很严重。虽然32位应用程序可以寻址4GB内存,不过大部分用户的计算机还只有1GB甚至更少的内存,这对64位运算来说还有点少。
目前看来,在64位Windows上,微软遇到的问题和当年在早期版本的Windows NT中遇到的问题基本类似:缺乏足够的应用程序,驱动支持有限,硬件要求超过大部分用户的接受范围或者实际需要。而且和Windows NT类似,64位Windows可能只适合运行在服务器以及高端系统,例如专门的图形工作站上,并使用专门的少数应用程序和驱动。64位市场正式活跃起来还要等很久。
共2页: 上一页 [1] 2 下一页
|