本月初,一篇1995年的Usenet贴文重新浮出水面,引发《The Register》自由及开源软件专栏重新审视这个关键操作系统失败的历史及其长远影响。

一篇由戈登‧雷特文(Gordon Letwin)撰写的1995年Usenet贴文再次被发掘。在现代人眼中,它看起来像一封电子邮件,但其实并不是。Usenet是最早的社交媒体网络,而这篇贴文是一则公开的发文。如果你对戈登‧雷特文的名字不熟悉,他是微软创始员工之一——出现在著名的1978年阿布奎基照片中的人之一。他还撰写了关于OS/2的权威书籍《Inside OS/2》。

雷特文在1995年的贴文中写道:

原本我打算在8月24日发布这篇文章,但现实生活中的一些事件有所暗示,所以我决定提前发布。

为什么不是8月24日?因为1995年8月24日是微软推出Windows 95的日子。这篇文章有趣的地方在于,它似乎表明,即使到了1995年——就在微软即将迎来其有史以来最成功的操作系统发布之前——OS/2负责人戈登‧雷特文似乎仍未能准确地指出为什么OS/2会失败。

可以说,塑造现代运算的最重要的软件和硬件变化在1980年代开始蓬勃发展。业界标准台式机从8位元机器发展到16位元,然后到32位元,所有这些都发生在短短十年内。这为1990年代的发展奠定了基础,使我们今天处于一个多核心64位元机器的世界,这些机器主要运行着两个主要的操作系统家族——Windows NT和Unix——这些系统需要占用数十GB的空间,并且还在持续膨胀。

Windows 95是一个盛大的发布,但它的成功并不令人意外。测试版已经流传了一年多。可以公平地说,到1995年,OS/2已是即将被淘汰的软件。这并不是什么大发现;它是雷特文贴文的核心主题。几乎整整一年后,也就是1996年9月25日,OS/2的最后一个主要版本Warp 4发布了。

那时的背景是,到1995年,每个人都知道Windows 95将成为一个重要的事件,而OS/2则只剩最后的余波。作为OS/2 2.0的忠实用户,笔者在Windows 95仍处于测试阶段时就将他的家用计算机换成了Windows 95。它的用户界面更加优越,支持更多硬件,而且《毁灭战士》(Doom)的运行也更加流畅。

但雷特文的贴文是否忽略了真正的核心问题?

他说,没有:

OS/2的问题是什么?为什么它注定要失败?因为它(原文如此)主要的吸引力是作为运行MS-Windows应用程序的引擎。

我们认为,这种说法在多个层面上都是错误的。只有32位元的OS/2——也就是OS/2 2.0及其后续版本——才能运行Windows应用程序。这不是它失败的原因。这是一个误导的说法。事实虽然如此,但这是失败的表征,而不是原因。缺乏原生应用程序是OS/2已经失败的明确证据。

(顺便一提,OS/2 1.x确实有一些知名的原生应用程序。例如,市场领导者Lotus 1-2-3和WordPerfect都在Windows之前出现在OS/2上。OS/2上的Lotus 1-2-3/G早于Windows的1-2-3/W。在第一个Windows版本之前,就有一个OS/2版本的Wordperfect。)

你不需要对历史有深厚的知识,就可以理解为何这是一个结果,而非原因。这个逻辑是无可辩驳的。我们按照时间顺序,逐步回顾推理过程。

OS/2 32位元版本缺乏高知名度的原生应用程序,因为它能运行Windows 3.x应用程序。

这意味着,所有重要的商业应用程序已经是Windows应用程序了。

为什么?因为Windows已经占据了主导地位。

当OS/2 2.0在1992年4月推出时,一个足够好且商业上成功的Windows版本已经在市场上占据优势,那就是1990年5月推出的Windows 3.0。

换句话说,OS/2 2.0比Windows 3.0落后了将近两年。当OS/2终于进入32位元时,它作为一个平台已经输掉了战斗。缺乏原生应用程序并不是它失败的原因;缺乏原生应用程序是Windows 3已经赢得胜利的证据。

Windows 3为什么会胜利?因为OS/2 1.x已经失败了。

这才是真正的关键,但雷特文却掩盖了这点,几乎没有深入探讨。他提到Windows应用程序的部分,但这并不是重点。真正的问题是,Windows 3为什么能够获得那样的主导地位,以及为什么其他公司选择为其开发应用程序。

雷特文提到了这一点,但他忽略了其重要性。就是这一部分:

“我们的误判是因为386比我们预期的更早上市……当386比预期更早问世时,我们看到了事态的发展,微软(Microsoft)希望在OS/2 1.0发布前放弃它,转而开发一个仅支持386的版本,那个版本将能够模拟多个DOS窗口,并在这方面做得更好。”

这绝对是正确的。但雷特文仍然忽略了故事的关键要素。

IBM如果在80386上开发OS/2 1版本,可能是更正确的选择。微软(Microsoft)于1987年4月联合宣布OS/2 1.0,那时距离英特尔(Intel)在1985年10月推出80386已经过了一年半的时间。OS/2 1.0当时的完成度极低,它甚至还没有图形桌面。它是一个文本模式、仅限命令行的操作系统,售价325美元,需要2 MB的内存。

如果这个仅支持文本模式的OS/2 1.0能够多任务执行DOS应用程序,那么它可能成为一个具吸引力的选项。例如Quarterdeck的DESQview就仅能做到DOS的多任务执行,但它售价高达399美元。

但是,正如雷特文所阐述的那样,OS/2 1.x被限制在16位元的80286上:

但是,正如您所记得的那样,康柏(Compaq)是第一家拥有386计算机的公司;IBM在286领域占优势,却在386领域较弱,因此他们强烈反对抛弃286并全力投入386,而是坚持我们继续支持286的路线。

他写的是事实,但我们认为这不是IBM坚持己见的核心原因。

是的,康柏首先推出了首款386计算机,即康柏Deskpro 386,我们之前已经分析过它的重要性。尽管如此,IBM在386市场上并不算晚,还有强大的竞争力。

IBM PS/2 Model 80是一款畅销产品。当年还是20岁菜鸟的笔者,曾经在许多态号80机器上设置SCO Xenix系统。作者甚至至今仍拥有一台。

康柏虽然是第一个推出产品的公司,Deskpro 386在1986年9月上市,但它被16位元的ISA扩展总线所拖累——只有专有的内存插槽是32位元的,而且售价高达6,499美元(相当于今天的18,718美元),对于一台功能有限的机器来说,这价格实在太高。

IBM于1987年4月推出PS/2系列,随后在7月发布型号80(386)。与康柏不同的是,IBM的386机型具备完整的32位元扩展总线,可以驱动32位元的周边设备。

没有人能在不到一年的时间内设计并制造出一款超越性的机器。从设计到实现再到制造第一款完整的32位元PC,至少需要11个月以上。

的确,IBM的上市速度较慢,这对其造成了一些伤害。但型号80(以及桌面的型号70——当时世界上速度最快的x86 PC)在当时是令人惊艳的硬件,而且尽管价格相当于一辆高级跑车,它们的销量仍然很好。

IBM确实上市较慢,但还不算太慢。相较之下,康柏匆忙推出的Deskpro 386虽然令人印象深刻,但缺陷明显。

关键点不在于时间,正如雷特文所说的那样。是的,最初的复制厂商之一匆忙推出了一款令人印象深刻但有缺陷的产品;康柏抢先上市,这对IBM确实是个尴尬。

但这仅仅是个小尴尬。真正的问题在于以下这一点。

IBM信守承诺,也坚持其承诺。它推出的PS/2系列以286为主,并向客户保证将支持OS/2——这是IBM绝不会打破的承诺。因此,IBM否决了微软将新操作系统转向386的计划,即使该计划合理且具远见。

如果OS/2 1.0是一款针对80386开发的系统,并能够多任务执行DOS应用程序,我们认为它会成为一个大受欢迎的产品。在这种假设的成功之下,IBM可以个别发送一块80386的“主板”(当时IBM称其为“planar”,其他厂商称为motherboard)给所有购买80286 PS/2且想使用OS/2的客户。从长远来看,IBM仍能赚到更多钱。

当时笔者还是一名20多岁的年轻人,在许多286 PS/2上工作过,大多数拥有者根本没听说过OS/2,也不在乎。IBM将这些机器当作高品质的DOS计算机来销售,而这正是大多数客户所需要的。

然而,若承认所有PS/2机型都能运行OS/2的承诺是一个错误,这相当于承认IBM犯了错误。但IBM绝不会承认自己会犯错。

举个例子,PS/2计算机没有重置按钮,因为重置按钮是用来重新启动一台计算机的方式,当计算机宕机到Ctrl-Alt-Del都无法工作时,就需要使用重置按钮。一个重置按钮意味着承认IBM计算机会宕机,这是不可接受的。相反,你必须浪费一两分钟的时间来关闭和打开电源。我们当时经常这样做。

即使在OS/2惨败将近十年之后,它的首席架构师高登·雷特文仍然无法承认它是在何时以及为什么失败的。但他其实很清楚。正如他所说,OS/2的最初版本在1980年代因为IBM的坚持,只是一款16位元产品。

这正是失败的时刻。当时OS/2就注定会失败,因为初期的16位元版本在运行DOS应用程序方面并不比DOS本身优越。

因为OS/2 1.x的失败,微软推出了一款修复OS/2 1.x关键缺陷的产品。该产品就是Windows 3,它能够在286机型上运行良好,但如果将同一版本安装于32位元的386计算机上,效果更佳。Windows 3.0可以利用386的更高级硬件来更好地多任务运行主流的DOS应用程序。

OS/2 1.x虽然可以在386上运行,但它的表现与在286上完全一样。您无法从32位元硬件中获得任何额外的好处。然而,Windows 3.0可以带来内存保护和虚拟内存,以及一个实用的图形界面。

Windows 3战胜了OS/2,因为IBM坚持OS/2必须支持80286,从而限制了新操作系统的发展。IBM坚持为其80286 PS/2用户服务并套现承诺,导致OS/2失败。这才让Windows取得了优势。

换句话说,雷特文文章中最重要的部分并不是他认为的重要内容。IBM的规划不当,比微软的成功更深刻地影响了1990年代的PC产业。

Windows 3.0虽然称不上伟大,但它“够好”。它扭转了人们对Windows的看法,让Windows 1和Windows 2的失败成为过去。Windows 3实现了OS/2的目标。它将IBM PC兼容机从单任务的纯文本计算机变成了图形化的计算机,并具备了虽然不完善但勉强可用的多任务能力。

IBM和微软分道扬镳,走上了不同的道路。IBM继续开发基于386芯片的32位元OS/2,该产品在1990年几乎接近完成。而微软则保留了计划中的跨架构、可移植OS/2(称为OS/2 3,但内部代号为OS/2 NT,源于英特尔i860 RISC处理器的代号N-Ten)。

在Windows 3.0成功后不久,OS/2 NT被重命名为Windows NT。即使是最狂热的Linux爱好者也必须承认,Windows NT在接下来的三十年间表现相当出色。

OS/2的失败,是因为支付开发费用的公司IBM,将其设计成一款服务于已售出机器的系统。它不希望让现有客户失望。

即使在当时,微软也清楚地认识到,将新操作系统瞄准新兴的CPU技术更加合理。

因此,微软将下一个操作系统Windows NT设计成以未来硬件为目标:它专门为i860、Dazzle主板、MIPS R3000,以及x86机型而设计。

OS/2 2.0的体积相对较小。在1992年,它仅需4MB内存和60MB硬盘空间。一年后,1993年发行的Windows NT 3.1则需要四倍以上的内存和更多硬盘空间。作为当时部署该系统的人员,我能证明,Windows NT实际运行需要更多资源。

结果呢?程序规模数十年的增长,因为业界的信条是专注于未来,设计出适用于性能越来越强大的硬件和更高规格计算机的软件。即便如今,Windows 11也无法在某些性能尚佳的设备上运行。

在1980年代中期,微软制定了一条路线。到1995年,有迹象表明它已经忘记了确切的原因。