七、微软与IBM的分道扬镳
那是1989年末,微软正在努力工作,最终敲定了它所知道的迄今为止最好的Windows版本。Windows 3.0版将通过一个令人兴奋的新的3D斜面设计(它最初出现在OS/2版本1.2上)和闪亮的新图标在图形用户界面上投下了重注。Windows 3.0还将支持80386上的虚拟8086模式,使人们更容易在Windows上花费更多的时间,而无须花时间用回DOS。这将是一个令人兴奋的产品,微软这样告诉IBM。
1989年下半年发布的OS/2 版本1.2
1990年中发布的Windows 3.0
IBM仍将微软视为操作系统业务的合作伙伴,并表示愿意通过全面推广Windows 3.0来帮助这家较小的公司。但作为交换条件,IBM希望买下该软件本身的版权,并且取消允许微软向第三方授权的DOS协议。比尔盖茨看了这一点,仔细考虑了一下,决定放弃这笔交易。
IBM认为这是一种背叛,并散发内部备忘录,称公司将不再为Windows编写任何第三方应用程序。双方的分离即将变得非常令人不快。
不幸的是,微软仍然有开发OS/2的合同义务。IBM一气之下决定不再需要这家软件公司的帮助。考虑到操作系统的名字,两家公司决定将OS/2一分为二。当时,这两家公司的分道扬镳被比作离婚。
IBM将接管OS/2版本1.x的开发,包括即将发布的1.3版本,该版本旨在降低对内存的需求。它还将接管在OS/2版本2.0上已经完成的工作,这是期待已久的32位重写。此时,IBM终于向不可避免的趋势低头,承认它的旗舰操作系统确实需要脱离80286芯片。
微软将保留其现有的Windows系统的权力,不再支持IBM的市场需求,微软还将接管开发OS/2 版本3的权力。这个系统在内部被称为OS/2 NT,是对操作系统的一种“空中楼阁式”的重写,它将包含一些未指明的“新技术”,并且是真正的先进和独立于平台的。考虑到OS/2也会蚕食大型机市场,IBM似乎很乐意摆脱这一高端版本,事实上IBM有自己的高端版本计划。
OS/2 1.3于1991年发布,并取得了一定的成功,部分原因是因为内存价格的最终下降,而新版本对内存的需求并不大。然而,此时Windows 3.0已经像坐上了火箭一样,快速起飞了。它表面上看起来很像OS/2,但成本更低,占用的资源更少,而且没有以一种可笑的似是而非的方式预装进PS/2系列计算机中。微软还积极地以极具吸引力的捆绑交易来吸引克隆计算机生产商,将Windows 3.0应用到大多数新销售的电脑上。
IBM再次失去了对个人计算机行业的控制。市场并没有远离克隆机器,真正的DOS继承者是Windows,而不是OS/2。如果说熊(注:指IBM)以前只是生气,现在它是愤怒了。它将在自己的地盘上与微软抗争,希望永远摧毁这个Windows新贵。这将是一场史诗般的战斗。
八、制造怪兽
实际上,IBM与微软合作开发OS/2版本2.0已经有很长一段时间了,1990年两家公司分拆时,很多代码已经编写完成。这使得IBM能够在1992年4月发布了OS/2 2.0版本,而在此一个月前,微软发布了Windows 3.1。游戏开始了。
OS/2版本 2.0是操作系统向前迈出的一大步。
OS/2 2.0版是一个32位操作系统,但它仍然包含它的前期版本1.x中的大部分16位代码。和许多设备驱动程序和运行图形用户界面的图形引擎(Graphics Engine)一样,高性能文件系统(HPFS)仍然是一个16位的子系统。不过,内核和内存管理器都已经改用32位的代码重新实现了。
IBM还进行了一次大型的采购考察,寻找任何可能有助于使OS/2更华丽、更闪亮的新技术。它与苹果公司达成合作协议,开发下一代操作系统技术,并从史蒂夫?乔布斯(Steve Jobs)手中获得了NeXTStep的许可权。虽然这两个平台的技术并没有直接融合进OS/2中,但Amiga操作系统的一部分代码确实进入OS/2了:IBM向Commodore公司授予了REXX脚本语言的许可证,以交换一些Amiga技术和图形用户界面的思想,并将它们包含在OS/2 2.0版中。
当时,最热门的行业流行语是“面向对象”,虽然面向对象编程已经存在多年,但它刚刚开始在个人电脑上获得吸引力。IBM本身就是面向对象技术的老手,在20世纪80年代就使用面向对象的Smalltalk语言开发出了Visual Age软件,因此IBM希望将OS/2吹嘘为比其他任何操作系统都更面向对象,这是有理由的。但是这项任务的棘手部分是,面向对象主要是一个内部技术问题,即如何构造程序代码,而最终用户是无法看到的。
IBM决定让OS/2 2.0版的用户界面以一种“面向对象”的方式运行,这个项目最终被称为Workplace Shell,它也成为OS/2的粉丝们既崇拜又鄙视的头号功能。
九、没有给Shell内存空间的Workplace
作为OS/2的默认桌面,2.0版本看起来相当简单,图标也不是特别醒目,因此它并不能立即显示Workplace Shell的新特性和不同之处。但是,当你开始使用它时,你会发现它与其他的图形用户界面非常不同。右击任何图标都会弹出一个上下文菜单,这是以前从未见过的。图标在这里被看作“对象”,你可以对它们做一些像对象一样模糊的操作。比如说:将一个图标拖到打印机图标上即可开始打印。而把把一个图标拖到碎纸机图标上,它就被删除了(是的,永久删除!)。有一个奇怪的图标叫做“模板”,你可以打开,然后“拖出”空白页,如果你点击这些空白页,就会打开各种各样的应用程序 – Apple Lisa (注:苹果公司发布的世界首台图形界面计算机)在1983年做了类似的事情。对于OS/2来说,这样的面向对象足够了吗?不,还不够。
有很多不同的东西可以拖动到每个文件夹窗口,文件夹会有不同的反应。如果从调色板中将一种颜色拖入一个文件夹,那么该文件夹的背景色就变成这种颜色。你也可以对壁纸做同样的事情。字体也是一样。事实上,你可以对所有文件夹做这三件事,并,然后以一个可怕的组合,迅速改变任何一个文件夹,使得每个文件夹都可以用这种方式获得不同的样式。
你完全可以这么更改你的文件夹的风格,糟糕的是,这并不意味着是个好主意。
实际的情形可能大部分是这样的:你无意中这样做了,然后不知道如何修复,或者给朋友演示了一次,然后再也没法改回来。这些功能虽然很酷炫,但是占用了大量内存,而1992年的计算机通常仍有2MB或4 MB的内存。
OS/2 2.0版本对内存的最低要求,如包装盒子上所示(它是一个很重的盒子,带有不少于21张3.5英寸的软盘!),是4MB。我曾经目睹过我的本地Egghead经销商试图在一个有这么多内存的系统上启动OS/2。启动过程很不顺利。操作系统甚至在启动完成之前就开始发出写磁盘的嘈杂声以交换内存。然后它尝试继续启动,再交换内存,再继续启动,再交换内存,如此反复多次,可能要花10分钟才能进入功能桌面。想象一下如果你右键单击一个图标会发生什么?内存交换。基本上,OS/2 2.0版本在这个数量的内存中无法正常使用。
在内存8MB时,系统可以会如广告承诺般地运行,而在16MB时,系统将运行得很顺畅,而不会过度读写磁盘。幸运的是,到目前为止,内存已经降到了每MB 30美元左右,所以内存升级并不像OS/2 版本1.x时代那么重大。尽管如此,这仍然是一个采用的障碍,特别是当Windows 3.1在2MB中都可以运行得很顺畅的时候。
但Windows 3.1也是易于崩溃的,这个协作多任务操作系统有一个奇怪的、风格不一致的用户界面,只有比尔·盖茨才会喜欢这样的用户界面。OS/2渴望做得更好。在很多方面,它确实做到了。