一场各怀鬼胎的技术联姻:微软如何借 IBM 的钱与品牌,暗中孵化出 Windows 杀死 OS/2

1987 年 IBM 与微软联手研发 OS/2,宣称要统治未来二十年。但在千行代码考核与 286 芯片的存量包袱下,比尔·盖茨暗中抽调精锐押注 Windows 3.0,最终完成了一场经典的软件反杀。

分享
一场各怀鬼胎的技术联姻:微软如何借 IBM 的钱与品牌,暗中孵化出 Windows 杀死 OS/2

聊完 Gary Kildall 错失时代的傲慢,以及 Tim Paterson 用六个星期拼出 QDOS 救活小厂之后,不少人觉得 PC 操作系统的格局在 1981 年 IBM PC 带着 DOS 发售的那一天就定型了。

其实那只是热身。

这场仗真正见血的下半场,是当年那个被 IBM 顺手扶起来的西雅图小伙子,如何十年后反客为主,亲手把蓝色巨人拉下了王座。

曼哈顿的香槟

1987 年 4 月 2 日,纽约曼哈顿。

聚光灯下,31 岁的比尔·盖茨套着略显宽松的深色西装,站在 IBM 个人系统部门高管身边举杯庆祝。台上的背板写着联合研发的系统名字:OS/2

IBM 在发布会上放话称,这是“未来二十年个人电脑的基石”,并承诺带来真正的抢占式多任务处理、图形界面和企业级网络。

台下掌声雷动,媒体都在夸这是传统巨头与软件新贵的完美联姻。

但台上的两个人心里都很清楚,这场合作从签合同那天起就各怀鬼胎。

养虎为患的蓝色巨人

把时间往前推七年。

1980 年 IBM 匆忙做 PC 时,压根没把软件当回事。在当时大型机高管的眼里,核心利润全在铁皮机箱和主板上。他们不仅把操作系统的非独家授权留给了微软,还觉得随时能换掉这家西雅图的小外包公司。

但微机市场后来的演进超出了所有人的预料。

到了 1986 年,康柏这类兼容机厂商顺着通用的 x86 架构,直接向微软购买 MS-DOS,做出了性能相当但价格便宜三分之一的电脑。IBM 只能眼睁睁看着硬件份额被这帮“克隆军团”大口大口地蚕食。

为了夺回控制权,IBM 制定了一套软硬捆绑的反击方案:硬件上推出专有的微通道架构(MCA)的电脑 ,PS/2,软件上拉着微软做专属的 OS/2。

IBM Personal System/2 Model 50 Hardware

1987 年 IBM 推出的 PS/2 Model 50 桌面主机。IBM 试图用微通道硬件搭配 OS/2 专有软件,把整个 PC 生态重新锁回自己的私有领地

IBM 的算盘打得很精:只要新系统必须绑定自家硬件的专有特性,就能把兼容机厂商和微软重新关进笼子。

高管们以为,盖茨还是当年那个随叫随到的小供应商。

西装与拖鞋

联合开发一开始,双方办公室就充满火药味。

IBM 按大型机的瀑布流规矩派来了大批项目经理。在他们的流程里,敲一行代码之前得先写出几百页规范,考核程序员的指标是 KLOC(千行代码量)——写出来的代码越长、抽象层越高,工时和绩效就越好看。

雷德蒙德的工程师看傻了。盖茨信奉的是小团队的敏捷交付,代码越精简越好,能跑起来、给用户用才是硬道理。

在佛罗里达的联合研发中心,双方的日常摩擦几乎成了笑话:

IBM 的测试团队为了论证“回车键按下后几毫秒内屏幕该有反应、蜂鸣器声音该高几度”,能开三周研讨会,附带写出一本八十页的报告; 微软的程序员穿着拖鞋和袜子在走廊里溜达,开会时把脚直接搁在会议桌上,背地里叫 IBM 的高管“蓝西装史前生物”。

更致命的是管理层级。微软修改一个底层的系统调用,在 IBM 内部要层层上报,经过三个委员会评审,等批复下来,一个季度已经过去了。

开发节奏彻底被官僚流程拖垮。

286 的枷锁

如果说文化摩擦只是拖慢了进度,那么真正给 OS/2 宣判死刑的,是一颗硬件芯片:英特尔 80286

1986 年底,英特尔已经拿出了革命性的 32 位处理器 80386。386 带来了平坦的 32 位虚拟内存寻址,更重要的是提供了虚拟 8086 模式(V86),能一边跑现代多任务,一边原生兼顾老 DOS 软件。

盖茨极力主张直接基于 386 架构开发,私下直接把 286 骂成“脑残芯片(brain-dead chip)”。

但 IBM 一票否决了这个提议。

当时 IBM 仓库里压着几十万台搭载 286 的 PS/2 机器。高管们算的是存货账,绝不允许新系统无法在自家主力机型上运行,强令 OS/2 1.x 必须兼容 286。

这一妥协把工程师推进了火坑。

Intel 80286 vs 80386 Hardware Comparison

Intel 80286(左)与 80386DX(右)实物对比。286 无法平滑切回实模式,迫使系统靠软重启来兼容 DOS;而 386 的平坦内存与 V86 模式,最终成了微软打造 Windows 3.0 的杀手锏

80286 允许进入保护模式,但硬件设计上压根没提供平滑切回实模式的指令。要想切回实模式运行老的 DOS 程序,唯一的办法是故意触发异常,让整颗 CPU 复位重启。

为了在 286 上既实现多任务又兼容老程序,开发团队不得不塞进大量丑陋的跳线补丁。

结果 OS/2 变成了一个硬件怪物:极度吃内存,动不动就假死;而在那个普遍只有 1MB 到 2MB 内存的年代,市场上几乎没有几台机器能跑得顺畅。

4号楼里的暗牌

看着 OS/2 逐渐变成泥潭,盖茨在商业上走了一步极其冷血的棋。

表面上,他继续维持忠实盟友的姿态,每季度从 IBM 那里领取数千万美元的联合开发经费; 但私底下,他在微软雷德蒙德总部的 4 号楼里挑了一批核心开发人员,秘密推进另一个代号为 Windows 3.0 的项目。

微软没有去死磕 OS/2 那种看似完美却脱离现实的纯净架构,而是选择了实用主义:

利用 386 芯片的能力,给原本简陋的 DOS 罩上一层 graphical shell。这套东西在计算机学院派眼里不够优雅,但只要 4MB 内存就能跑得飞快,还能顺畅地多任务并行运行 WordPerfect 和 Lotus 1-2-3。

Windows 3.0 Program Manager

1990 年发布的 Windows 3.0 界面。实用主义的图形外壳,让主流 PC 第一次低成本享受到了多任务视窗环境

1990 年 5 月 22 日,Windows 3.0 正式发售。

得益于极低的硬件门槛和良好的兼容性,Windows 3.0 在六周内就卖出 50 万套,一年内破了 400 万套。软件产业第一次见识到,一家软件公司的生态号召力可以凌驾于硬件霸主之上。

微软自此有了彻底掀桌的底气。

掀桌与摊牌

1991 年初,盖茨在微软内部发出了那份著名的备忘录《The Windows Memo》,正式摊牌:微软退出 OS/2 的日常联合研发,把全部研发力量转向 Windows 及其 NT 内核。

IBM 被激怒了。拥有数十万员工的蓝色巨人,头一次被自己一手扶植起来的小辈耍得团团转。

不服输的 IBM 决定单干。他们在接下来的几年里砸下数十亿美元独自推进 OS/2 2.0 和 OS/2 Warp,买下超级碗广告,找宇航员代言,四处宣传“OS/2 比 Windows 稳定得多”。

OS/2 Warp 3 Running Interface

IBM 后续推出的 OS/2 Warp 3 界面。尽管技术架构扎实,但面对已经成型的 Windows 生态,再难吸引第三方独立开发者

但战场早就不在底层参数上了。

软件生态拼的是开发者和用户基数。当市面上绝大多数个人电脑都已经预装了 Windows 3.0,没有几家独立软件商愿意专门去啃 IBM 那套生涩的 Presentation Manager API。

到了后期,连 IBM 旗下的软件团队做 Lotus Notes 时,为了销量,都不得不优先把 Windows 版本的体验调好。

重金砸出来的 OS/2,最终变成了一座空无一人的技术孤岛。

软件世界的生存法则

1995 年 8 月,Windows 95 伴随着滚石乐队的《Start Me Up》横空出世,比尔·盖茨问鼎世界首富,微软建立起了延续数十年的 PC 软件霸权。

而在 OS/2 项目上吞下数十亿美元亏损的 IBM,在几年后悄悄停掉了相关业务,并在 2004 年彻底卖掉了亏损连连的整个 PC 部门,退出了自己曾经亲手开创的民用舞台。

回头看 1980 到 1995 这十五年:

Gary Kildall 输给了犹疑与傲慢; Tim Paterson 困于小作坊的眼界; 而 IBM,则为一家硬件巨头的官僚迟钝与存量包袱买足了单。

盖茨或许不是技术理想主义者,但他在残酷的商业竞争中证明了一条铁律:

在快速迭代的技术浪潮里,背负存量包袱的官僚巨人哪怕底蕴再深,也跑不过目标明确、嗅觉敏锐的实用主义者。