CP/M-86延迟交付如何让微软获得王国钥匙

程序员Nemanja Trifunovic的博客文章揭示了16位CP/M延迟交付的真实原因及其对整个计算机行业的深远影响。CP/M-86本应在1979年11月交付,但直到1981年才发布,比英特尔8086处理器晚了三年。这一延迟迫使西雅图计算机产品公司开发了86-DOS作为替代方案。微软随后授权了86-DOS并转授给IBM,由于IBM未要求独占协议,微软得以向其他厂商销售DOS,最终创造了价值3.5万亿美元的商业帝国,并间接推动了Windows和Linux的发展。

程序员Nemanja Trifunovic在博客文章《16位CP/M的迟到》中,深入探讨了一个看似被遗忘的软件延迟交付事件,但这个事件却对整个计算机行业产生了关键影响。

这是关于Digital Research公司16位版本CP/M为何延迟的故事,但这个现已鲜为人知的操作系统的延迟交付,催化了一个不同但源代码兼容的操作系统的开发。这个操作系统让微软走上了通往目前3.5万亿美元市值的道路,同时也间接促成了OS/2、Windows乃至Linux的发展。

CP/M-86用户指南的版权年份标注为1981年。问题在于它是为英特尔8086处理器设计的,而8086早在1978年就已发布,一年后又推出了预算版本8088。换句话说,新版CP/M大约晚了三年才到达。其目标8086是英特尔8080激动人心的16位继任者。正如英特尔官方所说:"它没有革命性地改变微处理器——它创造了微处理器市场。"

这并非夸大其词,8086之所以如此成功,很大程度上是因为它有一个事实标准的操作系统:Digital Research的CP/M。CP/M完全主导了市场。早期商用微型计算机行业几乎完全依赖它运行。

CP/M是面向价值数千美元商用微型计算机的操作系统,因为它至少需要一个软盘驱动器。这也是为什么在不断增长的廉价家用计算机市场中,ROM芯片运行的BASIC解释器占主导地位。

在英特尔推出8086到Digital Research最终为新处理器推出操作系统的这段时间里,BYTE杂志"1977三巨头"共同创造了家用计算机市场:Commodore PET、Apple II和Radio Shack的TRS-80。

还有另一个能运行CP/M的处理器:Zilog的Z80。尽管Z80是优秀的芯片至今仍被怀念,但它完全是8位设备,在没有复杂存储体切换的情况下,总内存限制为64KB(RAM和ROM合计)。

随着内存价格变得更实惠,企业需要的是与8080部分兼容但能处理更多内存的继任者。英特尔用8086满足了这一需求,它不再局限于64KB,而是可以处理16个独立的64KB段——总计一整兆字节的内存空间。

问题是,与Z80不同,8086与8080并不二进制兼容。你无法在8086上运行8080版本的CP/M(后来重命名为CP/M-80),就像在Z80上那样。要使用新芯片,数十万CP/M用户需要新的操作系统。DR最初承诺在1979年11月交付,但未能实现。Trifunovic的文章解释了延迟的原因和过程。

结果,一家销售8086主板的硬件OEM厂商被迫开发自己独立的、第三方兼容的操作系统。不是微软,也不是IBM。早在2007年,该操作系统的开发者Tim Paterson就写过他如何以及为何开发它的文章。他将结果称为86-DOS,几年前我们报道了这个操作系统已知最古老版本的重新发现。

Paterson在1980年开始开发86-DOS,因为CP/M-86已经延迟了。这比IBM推出第一台IBM PC早了一年多——使用预算版削减的8088,所以价格"仅"1500美元。

实际上,IBM很可能选择了CP/M-86,但由于DR将CP/M移植到英特尔8086/8088 CPU的工作比计划耗时更长,被迫至少暂时寻找其他选择。盖茨很可能提出了替代方案——IBM已经在与微软讨论使用后者的Basic编程语言实现——并似乎在1980年11月赢得了这笔交易。

不久之后,微软从西雅图计算机产品公司(SCP)获得86-DOS许可,专门用于向IBM转授权该操作系统。86-DOS由SCP创建作为CP/M-86的替代品,因此有意与DR操作系统兼容。

最终,这为微软创造了财富。因为IBM没有让微软签署独家协议,微软被允许向任何想要的人销售其DOS。这与更便宜的IBM兼容硬件一起,创造了x86 PC行业。

DOS的局限性,特别是其内存管理,是英特尔继任芯片80286有些失败的原因。虽然80286具有保护模式,允许它支持16MB RAM和多任务处理,但这对DOS或IBM的新OS/2 1.0帮助不大。

在这里,DR再次错失良机。它失去了成为IBM PC默认操作系统的交易,但当英特尔开发80286时,DR已经准备好了。

它已经有效地将其多用户多任务MP/M操作系统合并到CP/M-86中,创建了多任务Concurrent CP/M。然后添加MS-DOS兼容性以创建Concurrent DOS。问题是在8088或8086 PC的640KB RAM中无法容纳许多DOS应用程序。

所以DR增强了Concurrent DOS以制作原生英特尔80286操作系统。Concurrent DOS 286能够使用多达16MB RAM,并在所有这些空间中多任务运行大量DOS应用程序(IBM和微软的OS/2 1.0要再过两年多才会推出,即便如此仍无法多任务运行DOS应用程序)。

问题是DR在预发布的英特尔286原型上开发了Concurrent DOS 286。虽然80286在1982年发布,但它在1984年随IBM的新PC/AT进入PC市场。问题是80286芯片的发布版本删除了Concurrent DOS 286需要的一些功能。

到1985年,英特尔发布了80286的新步进版本,恢复了缺失的功能,但损害已经造成。这再次严重损害了DR,但它恢复了过来。它将CDOS转变为实时操作系统FlexOS 286。这些版本的销售一直持续到21世纪,包括IBM 4690 OS、Toshiba 4690 OS和Siemens S5-DOS/MT。

DR还继续开发其Windows前GUI桌面GEM。去年年底,Trifunovic先生还发布了出色的《GEM桌面环境历史》,我们也推荐阅读。DR FlexOS及其衍生产品的后期版本包括名为X/GEM的多任务GEM版本。

DR绕过了80286的限制,并找到了充分利用它们的方法。微软在很大程度上没有做到这一点。即使是Windows/286也无法使用80286 PC的大部分内存。

由于微软DOS的限制,80286主要只是作为更快的8086使用。这促使英特尔开发下一代CPU——80386。这支持具有内存保护的多个硬件辅助DOS虚拟机——即使你只运行普通的单任务DOS,内存保护也让你能重新排列关键的第一兆字节RAM,以尽可能释放640KB,这是DOS能直接使用的全部。

在1980年代后期PC上没有广泛使用多任务处理,更不用说GUI了,原始的全32位80386DX太昂贵——即使没有其理论上的4GB内存容量。所以,再次由于MS-DOS的限制,英特尔开发了更便宜的16位总线80386SX。这创造了便宜的386SX PC市场,配备便宜的16位RAM和仅16MB的低上限。

这个便宜商品386 PC市场是Linux成长和繁荣的土壤。1990年代早期的386 PC不是工作站级硬件。它们从未被期望进行多任务处理,GUI运行也不太好,但运行DOS很棒...甚至它们的低规格也让Linux得以茁壮成长。

破除关于DR失去IBM交易的一些传言

是的,当IBM访问时Gary Kildall确实在他的飞机上。不,他不是在娱乐旅行。他正飞去与非常重要的商业伙伴Bill Godbout进行现场访问。同行的还有他的同事Tom Rolander,他多次讲述了这个故事,包括在视频中。

DR总部位于Pacific Grove,距离硅谷约80英里或近90分钟车程。Kildall经常选择飞行。如果你有这个选择,你不会吗?

Kildall没有参加与IBM的会议,因为那不是他的工作——他是程序员。他的妻子和商业伙伴Dorothy McEwen Kildall共同创立了DR,她负责处理企业谈判。

IBM要求严苛的保密协议和一次性付款。她拒绝了,这是明智的决定;DR主导商业计算,而IBM甚至不在那个市场。

换句话说,IBM试图与主导该行业的大玩家达成苛刻交易。没有成功,所以它与一群新兴小子谈判不佳:它让微软保留向其他供应商转售DOS的许可证。连续两笔糟糕的交易表明,这不是IBM精明;这只是IBM官僚和制度化,谈判和妥协能力差。它把银行的钥匙交给了微软,这个小创业公司利用了它们。

我们甚至看到一种看法,认为行业从微软得到的更好:更有能力、更开放。

实际上,是被降级到第二位的DR工作更努力。它用GEM提供了小巧、快速、干净的GUI。DR在1982年就有了多任务CP/M-86。

除了PC工作外,DR还为摩托罗拉68000提供了CP/M版本,配备GEM。这个开发版本成为Atari ST的标准操作系统,这台计算机性能超过Mac,由于内置MIDI端口标配,在音乐序列方面比Amiga更好。该操作系统的自由开源软件重建版本EmuTOS今天仍在积极开发中,还有一个名为FreeMINT的多任务分支。

摩托罗拉68000世界今天也很重要。部分原因是1980年代中期英特尔和微软的产品如此平淡无奇,以至于苹果、Commodore和Atari蓬勃发展,各自拥有自己的替代平台。

其意义在近15年前由已故的Chris Bidmead在The Reg上解释过。Mac、Amiga和ST间接推动了英国小型微机制造商Acorn Computers创造世界最畅销的CPU系列...因为他们对68000及其美国同时代产品的性能印象深刻。

到1984年,Concurrent CP/M成为Concurrent DOS,一个能运行MS-DOS应用程序的真正多任务操作系统。1985年,DR发布了C重写版本Concurrent DOS 286,比IBM和微软的联合努力早两年。到1987年OS/2蹒跚推出时,DR已经在提供Concurrent DOS 386,还内置了网络功能。

The Reg自由开源软件部门在第一份工作中使用和支持Concurrent DOS 386,它非常出色。在雇主的演示机器上,他使用CDOS生成大型曼德布洛特集合,需要许多小时,使用Fractint——但Fractint在后台运行,CDOS 386在前台会话运行IBM PC DOS 3.3的COMMAND.COM副本,所以看起来完全像标准DOS计算机,可以正常使用。

没有时间机器,我们无法知道如果DR按时交付CP/M-86会做什么。也许它在GEM、Concurrent DOS、DR-DOS、FlexOS等方面如此努力工作,是因为它最终成了配角。它非常努力地纠正错误,如果PC行业默认使用DR操作系统而不是微软的,它可能发展得更快。DR本可以在Windows 95之前近十年提供具有网络功能、能运行DOS应用程序的多任务32位GUI操作系统。

但它没有。被挤出主流桌面操作系统市场后,它专注于多用户、实时和销售点系统。最终,Novell在1991年收购了DR。

一切都因为CP/M-86的延迟。Trifunovic解释了这是如何以及为什么发生的。这是重要信息:它塑造了PC行业的未来,万亿美元的企业都依赖于此。正如智者所说,了解你的历史很重要。

附注

Trifunovic的日常工作在Ab Initio Software,该公司由Sheryl Handler创立——Thinking Machines的创始人和前CEO,该公司构建了Danny Hillis的Connection Machine——部分由Richard Feynman共同设计——还设计了DataVault,它有成为第一个RAID存储设备的说法。

Q&A

Q1:CP/M-86为什么会延迟交付?它的延迟对行业产生了什么影响?

A:CP/M-86是Digital Research为英特尔8086处理器开发的16位操作系统。虽然8086在1978年发布,但CP/M-86直到1981年才交付,延迟了约三年。这个延迟迫使硬件厂商寻找替代方案,最终导致Tim Paterson开发了86-DOS,微软后来获得了这个系统的许可并转授权给IBM,从而开启了微软在操作系统市场的统治地位。

Q2:86-DOS是如何诞生的?它与CP/M-86有什么关系?

A:86-DOS是由Tim Paterson在1980年为西雅图计算机产品公司开发的操作系统,专门作为CP/M-86延迟交付时的替代品。它被设计为与CP/M-86兼容,这样CP/M用户就能轻松迁移。后来微软从SCP获得86-DOS许可,并将其转授权给IBM用于第一台IBM PC,这成为了MS-DOS的基础。

Q3:Digital Research在失去IBM合作后做了什么努力?

A:DR并没有放弃,而是加倍努力创新。它开发了GEM图形界面、多任务的Concurrent DOS系列,以及支持80286和80386处理器的高级版本。到1987年,DR已经提供了Concurrent DOS 386,具备内置网络功能和真正的多任务能力,这比微软的同类产品领先多年。DR还将技术转向实时系统和销售点系统,直到1991年被Novell收购。

来源:The Register

0赞

好文章,需要你的鼓励

2026

01/13

08:42

分享

点赞

邮件订阅