DOS发展的历史
盖茨靠抄袭基尔代尔发家
大家都知道,PC的腾飞依靠两个最主要的翅膀:微处理器和操作系统。这也是PC业中最大的两棵摇钱树。特德•霍夫发明的微处理器为英特尔种下了摇钱树。基尔代尔的DOS操作系统则为微软的霸业铺下基石。英特尔和微软成为PC业的最大赢家,而霍夫和基尔代尔则在贡献了自己的智慧后,两袖清风,而且在历史的页码中始终受排挤。
钱是会说话的,它能编写历史;钱是有手的,还能改写历史。基尔代尔的朋友和崇拜者说:“每一位PC用户都欠基尔代尔一份情,而比尔•盖茨和他的微软公司欠得比谁都多。”正如盖茨对待自己的领路人罗伯茨一样,为了掩盖自己的“债务”,盖茨的做法就是:淡化基尔代尔,并树立另一位DOS之父,将他挤出历史!
但是,历史不可能用金钱彻底改写,基尔代尔作为计算机软件领域的主要人物之一,其地位不可动摇,盖茨依靠基尔代尔的发明而起家的事实无法掩饰。
1973年,加里•基尔代尔(Gary Kildall)看到对个人计算机操作系统的需求,设计了CP/M操作系统(Control Program/Microprocessor or Microcomputer),CP/M操作系统有较好的层次结构。它的BIOS把操作系统的其他模块与硬件配置分隔开,所以它的可移植性好, 具有较好的可适应性和易学易用性。用基尔代尔的话说,CP/M“携带了基本的制造块”,它使整个计算机业界的设备变得更加统一。很快,约2000家计算机公司使用了他的程序。到1979年,CP/M已经成为8位数微处理器计算机的实际标准。而随后微软推出的MS-DOS操作系统的BIOS程式,几乎一成不变地从基尔代尔的CP/M BIOS拷贝过去。
软件不同部分之间的交互接口,就是所谓的API——应用程序编程接口。API的发明和发展大大促进了计算机产业的进步,它几乎决定着计算机日常应用的各个方面。所有在应用上获得成功的软件或者Web应用无一不是首先在API的设计上满足了用户的需求。也是基尔代尔为微机首创了世界上第一个实用的软件API。这个初生的API大致上有20多个对操作系统的简单函数调用组成,这个操作系统就是CP/M——那时可是相当的简单和粗糙,而同样简单的API却让整个计算机世界发生了重大变化。基尔代尔这个软件天才希望自己设计的API能被其他科学工作者采用,而商用方面的考虑没多想。而比尔•盖茨认识到,API绝对是商业软件获得成功的关键之一,随后微软推出的MS-DOS操作系统全盘拷贝了CP/M及其API,并在这些API的基础之上又增加了一些简单特性,比尔•盖茨将基尔代尔的发明变成了巨大的商业应用,并让MS-DOS的API在软件开发中占据了主导地位。
这大概是计算机天才的典型命运。虽然在软件方面,比尔•盖茨远不是基尔代尔真正势均力敌的对手,但盖茨更钻心于商业。而基尔代尔纯粹是学者,从事计算机也纯粹是满足智力的好奇。他不赞同盖茨的人生哲学,在他眼里,“我要赢”还不如“我要幸福”。这种哲学下,基尔代尔的结局可想而知。
1942年5月19日,加里•基尔代尔出生于美国西北部的西雅图,他在那里生活到27岁。是盖茨的同乡。在高中,他并不是明星学生,他喜欢新奇的玩意儿和汽车。他设计制造过一个自动防盗报警器,一个用磁带录音机来使用摩斯代码的机器,和一个触发二进制转换器。他喜欢长时间地摆弄电话装置,其沉迷程度就像后来的黑客沉迷于计算机。
1960年初,在基尔代尔上大学前两年,他在西雅图他父亲的航海学校任教。在那里,他对数学产生了浓厚的兴趣,但是航海是一个以老技术为主的领域。他去了华盛顿大学学习,本科念的是数学。刚进大学时,他选修了两门计算机编程方面的课程,这决定了他的将来。他用老式手工计算器进行数字分析方面的研究,但当他学完课程时,他已经涉入FORTRAN程序。他被计算机的缺陷所困扰,整晚把时间花在大学的计算机中心。1962年,基尔代尔与多露西•麦克艾文结婚,他们的婚姻维持了20年,有两个孩子。
越战开始,基尔代尔应征入伍。他加入了海军预备队,因此可以继续完成学业。他在罗德岛的军官后备学校呆了两个夏天。1967年,他获得计算机科学学士学位,留在华盛顿大学学习计算机科学的研究生课程。在大学的计算机中心,基尔代尔晚上在Burroughs 5500计算机上工作,通过它,基尔代尔学到了许多有趣的新概念,包括块存贮分配技术。深夜的时候,这台机器实质上是他一个人的。他为Burroughs 5500做ALGOL编译,这为他提供了编译经验,这也是他研究生学习的主攻方向。
1969年初,在基尔代尔获得硕士后,他应召为军队服务,他有两个选择:登上开往越南的驱逐舰或在加利福尼亚蒙特雷的海军研究生院教计算机科学。“我只用了两毫秒就做出了选择。”他在海军研究生院教了三年计算机科学,又开始了博士生学习,方向是编译代码的优化,他的论文题目是《总流量分析》,用来决定如何使机器代码尽可能地简洁。1972年,获华盛顿大学计算机科学博士学位,参加了美国海军,秋天被分到加州蒙特利的海军研究生院,担任电脑讲师,主要从事软件方面的研究。
基尔代尔喜欢这个滨海城市的风光,青松笼罩着薄雾的环境很合他的喜好,他说话柔和,才智过人,穿着运动衫和紧身裤。当他想要表达什么时,往往先找支粉笔或铅笔,喜欢用图解答是他一生难改的嗜好。
他喜欢教书,是位出色的教师,和学生关系融洽,出过几本著作。他的工作也使他有时间编程序。可以说,学术界的氛围让他如鱼得水.
1972年,他偶然发现在华盛顿大学公告板上有一则广告:“25美元卖一台微机”。因为教学需要,他买下了它,这是一台英特尔4004的4位微处理器,是第一台使用芯片的计算机。甚至当时没有人认为微处理器有什么用处,包括英特尔。此前,他一直用的是海军学校价值300万美元的IBM 360系统计算机。基尔代尔计划用这个芯片制作一一个导航计算器,他父亲一直想有一个可以计算导航三角形的设备。基尔代尔试着在4004上写一些技术性的程序,但很快意识到指令到指令集很有限。他又询问英特尔是否对他在4004上编的程序感兴趣,虽然英特尔对导航应用并无特别兴趣,但他们发现他的数学程序很诱人。
以往,计算机存储数据、数据处理和数据控制三部分是分开的。微处理器的出现实现了使其三合一。因此程序也需要“微小化”。基尔代尔使用二级法,先在DEC的PDP—10小型机上为4004创建新的“微程序”。1973年,他参观了英特尔的微机部,当时这家刚刚创办的公司只有几间破房屋。基尔代尔与英特尔的人很投缘,他用每周一天的休息日担任英特尔的顾问。他不但喜欢上了新职务,而且也迷上了微处理器。不久英特尔又让他试用新出炉的8008,只用了几个月,基尔代尔创建了PC史上革命性的微处理程序设计语言PL/M,为微处理器赋予了真正的生命,打通了微处理器与微电脑的通道。它很容易被接受了,它用于大量的开发系统软件如字处理器、编辑器和汇编语言。然后,基尔代尔开始为8080微处理器开发PL/m的不同版本,这个芯片取代了8008,并成为微型计算机革命的真正开始。
当时,英特尔觉得微处理器没有什么前景,当然对基尔代尔的程序也无动于衷。英特尔也失去了同时拥有微处理器和操作系统的大好机会。将另一半江山拱手让给了微软。
英特尔8008问世后,自制了几台叫Intellec-8的微机。英特尔送了一台计算机作为基尔代尔的部分酬劳,他把这台机器放在教室后方,成为海军研究生院的第一个微机实验室。好奇的学生下课后都来滴滴答答玩上几个小时。当8008升级为8080时,Intellec-8变成了Intellec-80,性能高出10倍。英特尔又加送了一台显示器和一台高速纸带阅读机。基尔代尔和学生们大受鼓舞。这时,刚好遇上IBM发明8英寸软盘的艾伦•舒加特,立刻和一位戈登•恩巴克斯的学生一起,开发微机和控制程序CP/M的操作系统,这是世界上第一个磁盘操作系统(DOS)。
当然,那时候没有人能够预见到未来PC业的辉煌。基尔代尔与英特尔的设计师一样,觉得微机最终会应用在家用搅拌器、食物汽化器上。基尔代尔曾与几名程序员为4004编写了一个游戏程序,他们找到英特尔的头头罗伯特•诺伊斯,来推销这个程序。诺伊斯没有同意。诺伊斯深信微处理器的未来在其他方面,他认真地说:“在钟表方面。”
CP/M的发展十分奇特。当时基尔代尔一边教书,一边参与本•库珀搞的一个项目,准备做占星机。他俩对占星术既无兴趣也不相信,都认为这是明显的胡闹。但断定销路会不错。于是库珀造机器,基尔代尔编程序。这种机器放在杂货铺,吃着25美分的硬币,印出算命天宫图,基尔代尔觉得这台机器简直美得很。
两位发明人把机器放在旧金山市内许多地方。可是顾客却大为不满,因为机器吃进去硬币,纸就堵成一团。两人不知怎么办才好。后来基尔代尔说:“这在商业上完全是失败。”
然而占星机还是让基尔代尔的部分程序,即CP/M第一次受到了商业上的考验。在此过程中,他还对调试程序和汇编程序的工具进行了改写,这些都是操作系统的关键部分。他还创造了一种Basic语言汇编程序,符合指令码的翻译器。
70年代中期,微机领域比较有影响的公司有两家,一是生产“Altair 8800”的MITS,另一个是今日早无声息的IMSAI公司。两个公司用的都是8080,于是开始在操作系统上比试。前者与盖茨合作,盖茨用Basic语言开发出一个很简单的DOS,但很不好使,而且和别的微机不兼容。后者则找基尔代尔,以25000美元买下CP/M的许可使用权,马上把盖茨的“杰作”给盖了。
基尔代尔并没有想到自己写了一个多么有价值的程序。他只是想,他怎么能写出很有价值的程序呢?能使用他的软件开发人员又有几个人呢?显然他缺乏盖茨的商业眼光和商业手段。作为一名有所作为的大学教授,当然不可能像那班野心小子们一样异想天开,当然事实证明,这班野小子们绝对是对的。
基尔代尔对硬件没有特别的兴趣,他更喜欢研究操作程序,找到一种方法使磁盘存贮管理与微处理器连接起来,因此他开始用PL/m语言编写软件,在大型计算机系统上模拟运行。这种软件给磁盘提供高级存取,而且是一个紧凑的操作系统。在模拟中,操作系统可以工作,但基尔代尔在有控制器以前不能确定用软盘是否起作用。1974年,他请他的朋友、后来数字微系统公司的总裁•托拉德尔的帮助,他刚刚在华盛顿大学取得了博士学位。托拉德尔成功地让这台设备运转起来。基尔代尔回到苏格特公司,说服他们又提供了一个驱动器,他把它装在了装有控制器和开发系统的盒子中。当硬件界面完成时,整个系统运转起来了,而且运转得不错。这就是第一个CP/M系统,它花了苏格特一两个月时间编写,它的最大优点之一是只需要3K的内存。
基尔代尔知道单有一个操作系统还不足以进行程序开发,他又增加了额外的应用程序如文本编辑、动态纠错和一个简单的汇编器。直到1975年他才完成了CP/M的全套应用系统,包括用于拷贝文件的PIP(外设互换程序)。CP/M使从磁盘上把数据传到微型计算机上打印和使所有属于物理操作功能的微型计算机系统的操作成为可能。
在妻子的鼓动下,1976年,基尔代尔离开海军研究生院,与妻子多露西一起创办了星系数字研究所,很快改名为数字研究公司(DRI)。由多露西负责经营。两口子并没有预计到会有巨大成功。多露西•麦克艾文说:“我们以前从没有想过会拥有一家大公司。它就这样发生了,似乎就是应该这样做。1976年她曾怀疑公司能赚到的钱会超过1.5万美元,而事实上它赚了60万~80万美元。在开始的五六年中,公司的收益每年都翻了一番,1981年销售额达到520万美元,三年后达到4460万美元。
显然,公司最早的主顾占了大便宜,例如最早以公司名义购买CP/M的托马斯•拉夫勒,只化了90美元就买到了CP/M的使用权。而不到一年,搞一份CP/M许可证要花上万美元。