他发明了 PC 的操作系统,最后的胜利者却是一群“小偷”
Gary Kildall 写出了第一个不绑死硬件的微机操作系统 CP/M,还把系统调用表印进了公开手册。别人照着手册写出 DOS,他在回忆录里管这叫“明摆着的偷”。
1974 年,太平洋格罗夫,Gary Kildall 在家里把一张 8 寸软盘插进一台微机,这台微机上跑着一套自己写的程序——命令行、查看文件、浏览目录。他管这套程序叫 CP/M,Control Program for Microcomputers。
接下来两年,是微机的黄金年代,做微机的公司冒出来几十家。Altair、IMSAI、Cromemco,他们有一个共同的特点:芯片都是英特尔的 8080,或者 8080 的兼容型号;可是磁盘控制器却五花八门,串口地址也是各定各的。
按理说每家的机器都得配一套自己的软件。
CP/M 则没这个麻烦。它把跟硬件打交道的代码单独放在一层里,叫 BIOS;上面管文件和命令行的那部分是编译好的二进制,无论哪台机器都一样。厂商如果想让自己的机器能够运行 CP/M,不用动编译好的二进制代码,只需要实现 BIOS 就行。
于是 Kildall 写的这一份程序,能适配几十种机器。到了 1981 年,CP/M 已经跑在 3000 多种机型上。
但那一年最要紧的一台机器,装的不是 CP/M。IBM PC 出厂时带的系统,是西雅图一个程序员照着 Kildall 自己公开的手册写出来的。Kildall 到死都管那叫“明摆着的偷”。

一张 8 寸软盘,跟 Kildall 1974 年调通的那张是同一种格式。CC BY-SA 4.0,via Wikimedia Commons。
他本来是教书的
Kildall 的主职工作在海军研究生院教计算机科学,业余给英特尔当兼职顾问,替他们写过 4004 的汇编器,后来又做了 PL/M 编译器。那年头给微处理器输入程序靠穿孔纸带,改一个字节,整条纸带就得重打一遍。
最大的麻烦出在编译器上。它越写越大,一条纸带装不下了。于是在 1972 年前后,Kildall 弄来一台 8 寸软驱,开始琢磨怎么让 8080 直接从软驱上加载程序。
公司在那栋老宅里长起来
1974 年,他和妻子 Dorothy McEwen 一起开了一家公司,最早的名字叫 Intergalactic Digital Research,后来改名为 Digital Research。子女后来在回忆录导言里,提过这对夫妻当年的样子:
"You will read how Gary and Dorothy started from modest means as a young married couple, paved a new path for start-up culture, and embraced their idea of success to become leaders in the industry." ——你会读到,Gary 和 Dorothy 这对年轻夫妻是怎么从很普通的家底起步的,蹚出一条创业公司的新路,把他们心里"成功"的样子,做成了这个行业里数一数二的位置。
Kildall 负责写代码,Dorothy 则负责管理销售方面的事务。1978 年公司月收入 10 万美元,1981 年全年收入 540 万美元,到 1983 年已达 4460 万美元。
Digital Research 的总部位于太平洋格罗夫那栋维多利亚老宅。公司没融过资,也没打算上市,收入则全靠 CP/M 的版税。

Digital Research 总部,太平洋格罗夫 801 号灯塔大道,那栋维多利亚风格的老宅。摄影:Piotr J. Flatau,CC BY-SA 4.0,via Wikimedia Commons。
1980 年,IBM 来了。
IBM 的下午
IBM 要造个人电脑,需要操作系统。于是他们找上了 Digital Research。原因很简单:那时候你想找一套能直接拿来用的微机操作系统,就绕不开 CP/M。
关于这次会面,流传最广的版本是:Kildall 那天开着自己的小飞机送货去了,错过了改变历史的这场谈判,IBM 转头找了微软。这个故事到现在还在被反复讲。
它是假的。2016 年,计算机历史博物馆公开 Kildall 回忆录时,子女 Scott 和 Kristin 在序言里专门拆过这个说法:
"Those who have heard of him may recall the myth that he 'missed' the opportunity to become Bill Gates by going flying instead of meeting with IBM. Unfortunately, this tall tale paints Gary as a 'could-have-been.'" ——听说过他的人,大概都记得那个传说:他因为开飞机去送货,"错过"了变成 Bill Gates 的机会。可惜,这个编出来的故事把 Gary 定格成了一个"本来可以"的人。
Kildall 是飞行员,也确实常因为飞行耽误行程。但那天谈崩了,卡在三件具体的事上。
- 保密协议就没谈拢。IBM 要 Digital Research 签一份,自己却不肯签对等的那一份。
- 再往下是钱怎么算。Digital Research 靠版税吃饭,机器卖一台收一台的钱;IBM 要一口价买断,还要把软件改个名字。
- 最后卡在交期。IBM 要 16 位的 CP/M-86,Digital Research 不敢拍胸脯说什么时候能交。
于是这次会谈没有谈成。IBM 转身去了西雅图,后面给了比尔·盖茨一个大单。

一台 1981 年的 IBM Personal Computer,现藏于计算机历史博物馆。摄影:The wub,CC BY-SA 4.0,via Wikimedia Commons。
一份公开手册
IBM 去了西雅图一家叫 Seattle Computer Products 的小公司。那里有个程序员叫 Tim Paterson。从 1980 年 4 月起,他一个人照着公开发行的 CP/M 使用手册,写出了一套 API 高度兼容的系统,最早的名字叫 QDOS(Quick and Dirty Operating System)。
那份手册是 Kildall 自己写的,是为了让人更容易上手。手册把每个系统调用的编号、入口参数、返回值都列得清清楚楚。照着这份手册写,就能写出一套调用方式一模一样的系统。
微软 1980 年 12 月花 2.5 万美元买下 QDOS 的非独占授权,1981 年 7 月又花 5 万到 7.5 万美元买断全部权利,顺手把 Paterson 挖走,让他把系统移植到 IBM PC 用的 8088 芯片上。这套系统后来被称为 MS-DOS。
IBM PC 上市时,MS-DOS 标价 40 美元,而 CP/M-86 的售价是 240 美元。

CP/M-86 在 IBM PC 上运行的画面,标价 240 美元的那个版本。Public domain,via Wikimedia Commons。
他自己在回忆录里没客气,直接管 Paterson 写出来的东西叫:
"plain and simple theft" ——明摆着的偷。
回忆录附录里,他把 CP/M 和 DOS 的代码印在一起,说开头 26 行的调用逐字相同。Paterson 这边的说法是"照公开手册重新实现的",不算抄袭。两边各说各的,到今天也没有一个被对方认账的版本。
没有句号的结局
1991 年,Novell 收购 Digital Research。Kildall 那几年基本不管公司了:教书,飞飞机,主持一档讲个人电脑的电视节目,叫 Computer Chronicles。
1994 年 7 月 8 日,蒙特雷一家酒吧,他往后一摔,头磕在地上。三天后,他在蒙特雷半岛医院离世,享年 52 岁。验尸报告说死因是头部钝器伤,同时也有心脏病发作的证据。他晚年确实有酒精问题。
妹妹 Patricia Guberlet 后来这样说他:
"We all thought Gary was a genius. He was a genuinely likable person." ——我们都觉得 Gary 是个天才,他这个人,是那种打心底里讨人喜欢的。
表弟 Tom Kildall 说得更平淡:
"He paved the way for everybody. That's the way it goes." ——他给所有人铺了路。事情就是这么回事。
在去世前一年,他写下回忆录《Computer Connections》,装订成册发给亲友,附了一句:明年将以最终形式出版。
但是这个愿望最终也没有实现。
里面有一句,说的是 Bill Gates:
"I have grown up in the industry with Gates. He is divisive. He is manipulative. He is a user. He has taken much from me and the industry." ——我跟 Gates 是在这个行业里一起长大的。他这个人爱挑事,爱操纵人,还占别人便宜。他从我身上,从这个行业身上拿走了很多。
让我愣了一下的是后面那句。他自己承认,这些话是 "sour grapes"(酸葡萄),但他坚持,这也是 "the whole truth"(全部的真相)。
2016 年,计算机历史博物馆在子女授权下,公开了手稿的第一部分。第二部分因涉及家庭隐私,至今未公开。
他定下的那些东西倒是都还在。今天主板固件还叫 BIOS,把系统和硬件隔开的这层分法是他先想出来的;Windows 和 DOS 一路往上追,追到 QDOS,再往上就是 CP/M。
别人照着他的代码做出了另一套系统,照着他的手册补齐了细节。只有他自己想说的那些话,留下一半。