OS演义(三)
上文说到基尔道尔教授(也就是DR——数据研究公司)的CP/M系统在8位机操作系统的市场上取得了巨大的成功,成为操作系统历史上第一个通用的产品、第一个行业标准。但在高速发展的计算机行业,一时的成功绝不代表一世的成功——高科技企业的生命线是“创新”,这就意味着一旦在某一个技术过渡阶段没有能够紧紧跟住新的发展趋势,即便是原来成功的企业也将会被无情地淘汰出局,很多人犯过这样的错误,这一回轮到基尔道尔教授了。
创世纪的作品IBM PC
到70年代末,8位机的发展达到了鼎盛时期,各个公司都有自己的8位“个人电脑”,像苹果公司有看家的APPLE II,Commodore公司有VC20和PET,Tandy公司有TRS-80……就是一些以生产办公设备为主的大公司也加入了这个行列,像施乐公司开发了“星”电脑,惠普公司也搞出了HP-85……俨然是“个人电脑”的战国时代,就等着“秦始皇”来一统天下了。不用说,在这个行业,能够扮演秦始皇这个角色的不会有第二个,非蓝色巨人IBM莫属。其实,对于当时的IBM,进入微机市场是为了在身体受束缚的时候活动活动手脚。自1969年1月美国政府控告IBM垄断以来,这位巨人在被告席上一站就是十几年,在这些年里,IBM在市场政策上不能够采取大的进攻性策略,有些吃老本的感觉(自IBM360战役以后,IBM一直处于计算机市场的霸主地位),市场占有率也有不小的下降,还是那句话,“创新”是高科技企业的生命线,IBM也不能坐吃山空,于是便在一些“活跃分子”(IBM一向以它独有的严谨、保守和稳健著称)的提议下,进入了新兴的“个人电脑”领域。
最初,人们认为IBM可能会收购一些小的个人电脑厂商(最初的个人电脑都是“车库创业者”们的作品),把它们的产品打上IBM的蓝色标志,借助IBM无人可比的销售网络进行销售,从而排挤其它个人电脑厂商,这样可以在一夜之间坐上头把交椅。但以IBM的风格,要做就做最好的,收购也是一样,可当时最好的是哪一家呢——不用说,肯定是苹果。但恐怕每个人都可以理解,以乔布斯(苹果公司创始人,是信息行业车库创业者的代表人物之一)的性格和苹果公司当时的业绩,是无论如何不会把苹果公司盘给IBM的,所以我们的巨人只好开发自己的个人电脑了——这便是一直延续到现在的IBM PC(Personal Computer,原意是“个人电脑”,但由于IBM最先使用这个缩写,现在已成为IBM兼容机的代名词)。
从今天看来,IBM PC之所以能够取得成功,除了因为IBM财大气粗以外,更重要的是由于它采用了开放化的设计原则。按照IBM的传统,当你打开一台IBM电脑时,应当看到从电源到所有的芯片上均打着IBM的浅蓝色标志,IBM是“万事不求人”的。对于IBM这样一个“庞然大物”来讲,背弃传统确实不容易,是各种各样的原因最后促成了这个“开放化的设计原则”:个人电脑市场是瞬息万变的,而如果按照IBM的传统做法,完全由IBM独自开发一代个人电脑至少需要4年时间(从MITS公司的宝贝Altair到苹果公司创造辉煌的APPLE II总共才用了4年时间!),这在个人电脑市场是无论如何不能接受的;另外,既然IBM是个人电脑产业的“后来者”,自然要学习一下前人的成功经验。苹果公司的成功在很大程度上归功于其“开放化的设计原则”,苹果公司的开放化原则培养了第二产业,很多厂商因生产APPLE II的板卡而获得商业上的成功,这样一来,APPLE II便不仅仅代表一种个人电脑,而是代表一个产业了,这远比苹果一家公司单打独斗的生存能力要强得多;当然还少不了软件,苹果公司鼓励独立的软件开发商为APPLE II编写应用软件,有了数量众多的应用软件的支持,APPLE II便在无形之中升值了……很多方面的因素促使蓝色巨人采用开放结构,正是这开放结构,造就了PC机的第二产业(比如专业芯片、板卡生产厂商)和兼容机产业,虽然兼容机厂商也与IBM竞争,但也正是它们使得PC机成为个人电脑十几年不变的产业标准——它们与巨人分饼,但它们也使这张饼越吃越大。
最终,IBM采取了开放化的原则,并选择了两个主要的合作伙伴——微软和Intel(现在它们在Wintel联盟中的交情反倒比跟巨人的关系近得多)。选择Intel,是因为Intel的8088芯片简直就象是为IBM PC个人电脑度身订做的——比8位芯片高得多的性能、低廉的价格以及丰富的软件资源。而选择微软提供操作系统 ,则有一段颇富戏剧性的故事,这段故事在操作系统的发展史上是不能不提的。说IBM PC是个人电脑历史上少有的“创世纪”的作品,还有一个原因是它给操作系统的发展带来了本世纪最大的一次机会,有人说“是IBM的一纸合同推起了微软”,虽然有失偏颇,但也道出了这个机遇的难得。
在IBM,这个个人计算机的发展计划被命名为“棋局”,参与该项目的都是一些获得了“特赦”的“怪人”,他们可以不顾IBM平时必须采用内部技术的禁令,随便到外面什么地方去寻找伙伴和技术,他们既有IBM传统的严谨作风,又有极强的创新意识,能够在需要的时候打破传统,并且他们中大多已购买了个人电脑。在他们研究当时流行的个人电脑时,“微型软件公司”的名字经常出现,并且似乎这家公司的计算机语言产品已经得到了广泛的承认,它的BASIC产品已经成为事实上的行业标准,最惹人注意的是,自初创之日起,该公司的销售额每年都要翻一番,所有这些都给参与“棋局”项目的人们留下了极为深刻的印象,并且促使IBM在选择软件方面的合作伙伴时找了微软。此外,当时IBM的新任董事长曾与比尔盖茨的母亲——一位交际广泛,有相当社会地位的女士共事,有人说这层关系在其中也起了一些作用,但对于IBM来说,微软公司最大的魅力在于它技术上的实力、态度的诚恳以及旺盛的进取精神。
走进微软公司,时间是1980年夏季的一天,微软公司的总裁比尔盖茨接到了IBM一位代表的电话,说IBM将派人造访微软公司,而且还是个急茬。为了与巨人会面,比尔盖茨不得不取消了第二天与Atari公司(在8位机的车库创业时代,Atari是个人电脑领域的佼佼者之一)董事长的约会,作为一家几十个人的小公司,巨人主动找上门来,实在是机会难得。在微软,当时最大的希望就是IBM能够订购微软的BASIC语言(这是当时微软的拳头产品),正是为了这个,比尔盖茨和史蒂夫鲍默尔(比尔盖茨在哈佛时的挚友,现在是微软的几位“掌门人”之一)穿得西装笔挺(在微软,通常的工作服是T恤衫、牛仔裤和旅游鞋),迎接IBM的代表。IBM代表一上来先要求微软公司签署一份协议,大意是要求盖茨他们不向IBM谈任何微软的机密,并且日后不得以剽窃机密技术为名向IBM起诉。据IBM代表解释,IBM以前曾经有过这方面的不幸经历:在某种产品中,IBM采用了公司内部实验室的一项发明,但随即遭到一家小公司的起诉,说它同时也在搞同样的发明,并据此指控IBM剽窃技术。在那之后,IBM便在重要的会谈前加了这样一个并没有多大实际意义的官样协议(可基尔道尔也正是因为这个官样协议而失去了天大的机会),以免日后打官司时吃亏。在签署了那份协议之后,IBM的代表在会谈中提了很多“稀奇古怪的问题”,比如微软公司都有什么产品,个人电脑最重要的是哪些功能等等,虽然IBM的代表在第一次接触中隐瞒了真实的用意,而说这“只是一次市场调查而已”,但微软的天才们已经嗅到了些不寻常的东西,对于IBM这样的巨人,搞调查是不需要这么兴师动众的!
IBM的代表在回去汇报时建议IBM选择微软公司作为软件方面的合作伙伴,接下来,该轮到那些“怪人”施展才华了,他们在一个月之内便搞出了IBM PC的样本,有人说像IBM这样的巨人搞个人电脑就象是“大象跳踢蹋舞”,看来跳得还不错。在8月的下旬,IBM与微软进行了第二次会谈。这一次,IBM的代表亮出了底牌,说“这是IBM有史以来所做的最非同寻常的事情”,并且邀请微软参与。IBM与微软签署了一项咨询协议,根据这份协议,微软公司提出一份关于双方合作方式的报告,该报告还就IBM PC的软、硬件设计提出建议。在微软的建议中,有两条是很重要的,一条是采用开放的结构(微软的建议是最终促使IBM这样做的原因之一),另一条是跳过8位,直接开发16位微机。当时所有的个人电脑都是8位机,很多公司认为开发16位微机投资太高,因而不愿先吃这个螃蟹,但8位机毕竟只是“玩具水平”,8位的8080芯片可以支持64K的内存,但16位的8086却支持整整1兆——这在当时是个天文数字,足以满足商业用途。事实上,IBM PC“创世纪”的意义还在于它采用了先进的技术,大胆地开创了个人电脑的16位时代,因而把个人电脑从少数电脑爱好者的玩具变成了大规模使用的商业工具。这个工具需要一位搭档——于是操作系统的家族里有了DOS,但DOS的位置曾可能属于微机操作系统的老大哥——CP/M的。
鸭子飞来去——CP/M错过了机会
是的,CP/M错过了机会,它错过了最大的机会——原本可能是“一纸合同推起DR公司”的,但由于前文提到的那个IBM的官样协议,CP/M把操作系统的头把交椅拱手让给了DOS。
在讲CP/M系统时,曾经提到基尔道尔教授的人生哲学,即他更注重生活的幸福和思维的愉悦而不是商业上的成败。这一次也正是因为他对IBM的合同没有足够大的兴趣从而失去了操作系统领域的“世纪合同”。
在IBM搞PC机时,CP/M正在8位机操作系统市场上不可一世,所以IBM的第一个想法自然是在PC机上搭载CP/M系统(还记得上文讲的吗,拥有一个通用的操作系统相当于拥有多大一笔软件财富!),于是在与微软的会谈中,IBM的代表提出要向微软公司购买CP/M操作系统。可是微软公司并不拥有CP/M系统的版权,当时不成文的规矩是DR公司编写操作系统,微软公司编写语言软件,如BASIC和FORTRAN等。在向IBM的代表解释之后,比尔盖茨他们表现出了足够的风度(在与IBM这样的巨人打交道时,需要有这样的风度),为IBM和DR公司穿针引线,拨通了DR公司的电话,告诉基尔道尔教授有一位“大买主”对他的CP/M感兴趣,希望他们能够谈得投机。
巨人对CP/M垂情,基尔道尔教授手上又恰好正在编写CP/M家族基于8086芯片的成员——CP/M-86,到此为止,IBM的操作系统合同已经可以说是教授的囊中之物了,可事情就是这么富于戏剧性,就因为一份官样协议,那只煮熟的鸭子又飞了。
关于IBM代表造访DR公司那天所发生的事情,有不同的说法,大意都是基尔道尔教授本人当时不在,是他的妻子会见的“巨人使者”。当IBM的代表要求DR公司签署那份官样协议时,她犹豫了,因为那上面毕竟写着DR公司日后不得以IBM剽窃技术为名起诉它,而DR公司的律师也劝说她不要在上面签字,这种局面无疑使IBM的代表大失所望,对DR不那么“感冒”了。而基尔道尔教授本人呢,可能是因为盖茨给教授介绍的客户太多了吧,这个“大买主”并没有引起教授太大的兴趣(也有人说当时教授的CP/M-86在开发过程中碰了钉子,拿不下IBM的合同,同时DR公司正在与惠普谈另一笔生意,所以教授的心思不在巨人的身上),这最终放走了煮熟的鸭子。
鸭子飞回来了,飞回了西雅图。不用说你也知道,最后微软成了巨人的舞伴。与大象一起跳踢蹋可并不是件容易事,因为除了工作的高难度以外,还有很多风险,比如IBM有着严格的交货期限,并且保留随时终止合同的权力,没有人知道在IBM这样拥有34万员工的大公司里有多少个“棋局”在同时进行。在舞曲响起之前,还要感谢在操作系统领域里一位程咬金式的人物,人称“DOS之父”——蒂姆帕特森。
帕特森的DOS
同是在西雅图,有一家距离微软仅二十几分钟车程的公司——西雅图计算机制造公司(Seattle Computer Products),1979年开始销售Intel的8086芯片和以它为CPU的电脑主板。要让用户买回去的芯片和主板能够用起来,就必须有相应的操作系统和应用软件,但当时在开发基于8086芯片操作系统的只有基尔道尔教授,所以身为西雅图计算机制造公司的副总裁的蒂姆帕特森(一位杰出的电脑工程师和汽车迷)很自然地求助于基尔道尔教授,希望可以捆绑销售教授的CP/M-86系统。可教授的开发工作又前锋受阻,拖了几个月没有下文,这对西雅图计算机制造公司的销售影响很大,于是这位“DOS之父”便“自己动手,丰衣足食”,亲自编写操作系统了。
蒂姆帕特森编写的8086操作系统有一个有趣的别名QDOS(Quick and Dirty Operating System),即快速而粗制滥造的操作系统,正式名称叫SCP-DOS或86-DOS。由于西雅图公司以前的产品都是搭载DR公司的CP/M系统,所以帕特森在编写他的QDOS时,很自然地考虑到了老CP/M用户的习惯,使其在外观和操作命令等方面看起来很像CP/M,比如用dir命令列目录(最先使用dir的是CP/M)。为此,基尔道尔教授指责帕特森剽窃了CP/M的源程序,但事实上帕特森只是参考了CP/M的用户手册从而制造出了表面上的相似,且别小看这一点相似,它在日后DOS取代CP/M的霸主地位的过程中立下了汗马功劳。
在帕特森的软件产品销售清单中,微软公司的BASIC产品是一个重头戏,所以西雅图公司与微软的关系也一直不错,帕特森与保罗艾伦还有一段私人交情。所以在SCP-DOS呱呱坠地之后,帕特森先找到了保罗艾伦,问微软是否对这个操作系统感兴趣。对于当时以生产语言软件为主的微软公司,这本来是个可有可无的产品,但在蓝色巨人急需这样一份操作系统的时候,这位举着SCP-DOS杀出来的帕特森就显得格外可爱了。
当时,IBM正催促微软拿出一份可行性报告,而比尔盖茨和保罗艾伦也正心里没底,此时帕特森送上门来的SCP-DOS真好象一根救命稻草——它可以节省微软公司至少半年的工作量,这等好事岂能放过?!艾伦告诉帕特森说有一位不愿透露身份的客户希望通过微软公司购买磁盘操作系统,并问西雅图公司能否将SCP-DOS的经销权转让给微软。在得到了经销权之后,微软公司索性来了个连锅端——买下了SCP-DOS的所有权,关于整个转让的价格,至今没有披露,不过普遍认为不超过十万美元。至此,SCP-DOS已经是微软的家当儿了。当然,SCP-DOS在很多方面还很粗糙,要满足IBM PC的要求,还需要做比较大的改动,但它已经遇上了伯乐,该驰骋千里了。
微软得到了合同
轮到微软公司的代表去提交可行性报告了。比尔盖茨他们星夜兼程赶往IBM,微软公司在西雅图,IBM的开发中心在迈阿密附近的博卡拉顿,一个在西北,一个在东南,相距4000英里,所以无论微软还是IBM的代表都是通宵夜行。他们在飞机上还在对报告做最后的修改,这一份报告的好坏关系到IBM的大员们能否动心而最后选择微软,是疏忽不得的。微软对这次千载难逢的合作机会十分珍惜,这从盖茨买领带的事中可见一斑:在迈阿密下飞机后,盖茨发现自己忘了打领带,跟IBM的代表打交道,不打领带可不太好,为此他们在驱车去博卡拉顿的途中找了一家商店,在门口等到商店开门(别忘了,他们是夜行),现买了条领带才去的IBM。
在IBM公司的会议室里,几位来自西雅图的客人“英勇作战”,扛住了十几位IBM技术人员的“密集轰炸”,从而扫除了IBM的一切疑虑,使微软日后最终得到了那份渴望已久的合同。合同是在1980年11月6日正式签署的,包括名为DOS的磁盘操作系统和一些语言类的应用软件,如BASIC、FORTRAN等。合同对产品的交货日期做了明确的规定,在微软公司接到IBM的第一台样机之后,要在96天之内交付BASIC(之所以日期这么紧,是因为它要被制作成只读存储器),在257天之内交付FORTRAN,其它软件、文件资料和测试程序也都规定了交付日期。在这份合同中规定,除版税外,微软通过DOS仅能够从IBM得到一万五千美元的转让费,这与它购买SCP-DOS所付出的代价是不成比例的,之所以做这样的“亏本”买卖,微软有自己的考虑:当时微软的主要产品是语言软件,在IBM PC标志一个新时代开始的时候,它不能失去这么大一个主顾,如果IBM采用了别的公司的操作系统,也就很可能采用别的公司的语言软件。另外,还有一些别的“生长点”,比如在自己的操作系统上开发应用软件有得天独厚的优势,以及如果出现兼容机行业(其实这是必然的),还可以通过向第三方出售操作系统(微软公司保留了对其他客户销售略做修改的版本的权力,由此,日后才有了PC-DOS和MS-DOS两个版本)来赚取利润等,有时“吃亏就是占便宜”是最好的生意经。
现在该是微软公司的那些天才们冲刺的时候了,包括PASCAL、COBOL、FORTRAN和BASIC在内的应用软件意味着几万行的程序代码,这还不算操作系统本身。其实,当时微软公司中有将近一半的员工都在围着这个项目打转;不仅仅是微软,Intel公司也为IBM的项目成立了“特殊客户部”,专门向IBM公司提供服务。在IBM,也有一个小队在冲刺:由唐埃斯特里奇率领的12人小组在11个月的时间内,将IBM PC从概念变为划时代的事实。按照IBM的工作方式,像IBM PC这样的项目是要绝对保密的,为此,微软的开发人员不得不在一个“闷罐子”里忍受了好几个月。IBM的测试是极为严格的,有人说“在IBM是一个人写程序,八个人测试”,虽然这话原意是讽刺IBM的官僚作风,但从中对IBM身件测试的严格也可见一斑。这样两个风格迥异的公司在这样的条件下合作,工作会一帆风顺吗?DOS宝贝能准时降世吗?