Mac OS X 背后的故事(一)力挽狂澜的Ellen Hancock
文 / 王越
从本期开始,我们将在杂志上连载一系列关于Mac OS X发展历史的文章。本系列将为大家介绍Mac OS X的发行版本、技术历史、相关人物等内容。本文是系列连载的第一篇。
故事还得从20世纪90年代说起。Ellen Hancock是本文的主人公,也是一位女英雄。她因在IBM的经历而被人们所熟悉。1966-1995年间,Ellen Hancock在IBM共工作了29年。1985年,她成为IBM的副主席。在1986-1988年间,Ellen Hancock担任过IBM通信产品的主席,并在1992年被选为资深副总裁。1995年9月,她被时任美国国家半导体(National Semiconductor)CEO的Gil Amelio忽悠,跳槽来到这个企业,做执行副总裁。她在这里带领团队完成了CompactRISC架构,这个架构事后成为ARM7系列的前身。很多人早已经把她忘了,也很少有人能够在回忆时将她和Mac OS X联系起来。但事实上,她是让苹果放弃Copland转而购买NeXT的关键人物。
早在1994年,Gil Amelio就找好了下家Apple,成为Apple董事会的成员。1997年2月,Gil Amelio从National Semiconductor辞职,并成为Apple的CEO。为了紧跟老板的召唤,Ellen Hancock再次被忽悠,来到了当时危机四伏的Apple。这时是1996年5月,为什么是危机四伏呢?还得从早先的事情说起。
20世纪80年代,卖可乐的John Sculley成为Apple的CEO,随之Steve Jobs被轰出Apple。毕竟可乐和计算机不是一回事,因此不管是硬件还是Mac OS,整个公司的开发项目越来越受阻。而且由于先天的不足,Mac OS从诞生之初就不具有一个现代操作系统所应有的特性。所以,在1987年,开发下一代操作系统的计划呼之欲出。具体的规划是,把新的系统所需要的功能,写在一堆卡片上。短期可实现的目标,比如增加颜色支持(当时计算机仍是黑白的),写在蓝色的卡片上;长期的目标,比如多任务功能,写在粉色的卡片上;而在可预见的未来都无法实现的长期的目标,比如加一个纯物件导向的文件系统,就写在红色的卡片上。在这样的思路下,Mac OS的开发团队马上就被分成两个组,一个叫蓝组,目标是在1991年,发布一个关于Mac OS的更新版本;另一个叫粉组,和蓝组同时工作,计划在1993年,发布一个全新的操作系统。
1991年5月13日,蓝组顺利按时完成开发任务,发布了Mac OS 7(一般被称为System 7),而粉组却没做出什么有实际用途的东西来,因此接连跳票。而且,由于Mac OS 7的发布往往缺乏人手,为了保持正常发布,常常需要从粉组抽调人员参加蓝组的开发,再加上Apple当时重心放在了和IBM等公司的合作上(Taligent项目)而不是在粉组上,最终导致了粉组项目夭折。而本来Apple指望和IBM合作的Taligent项目能开发出一个可用的新系统,但后来IBM不跟Apple继续玩了,因而Taligent的果子又吃不到,Apple相当郁闷。 这时由于Mac OS有先天不足(单任务,没有内存保护),再加上Apple以及第三方软件的无限量增加(在这段时期,单Apple自己就已经加入了QuickDraw、PowerTalk、QuickTime等软件和技术,每一个都比Mac OS本身来得大),Mac OS的问题终于大爆发。上个世纪90年代,Mac OS给人的印象就是很不稳定、经常崩溃,同Windows 95留给PC用户的印象差不多,甚至更甚。
Taligent项目挂掉后,Apple自己尝试过十多个不同的内部项目,但大多没做多久就夭折了。而这时正是Windows NT走向成熟的关键时期。眼看着日子逐渐变得不好过了,Apple开始重新开始考虑建立下一代操作系统的事情。1994年,Mac OS 7.5(Mozart)发布后,Apple推出新规划,建立一个全新的操作系统,以Copland命名(纪念 Aaron Copland,Mac OS的发布以音乐家名字命名,和Mac OS X后使用猫科动物名字很不一样),这个项目将有一个全新的内核,具有类似Windows NT 内核的所有高级特性,而老的软件都当作独立的进程模拟运行。这个项目时间紧、任务重,1995年3月公布计划,预期1996年发布。而Copland后的版本Gershwin(纪念George Gershwin),预计1997年发布,将重写Mac的所有系统主要部件,以适合新内核的各种特性。
Copland将使用微内核技术,只做任务和内存分配。除此之外的所有功能,比如文件系统、硬件驱动等作为微内核上的服务运行。而Mac OS的所有用户界面功能将成为一个独立的框架,称为蓝盒(Blue Box,今后介绍Mac OS X时,我们还会遇到这个词)。所有的任务相互独立,占用独立内存,也可以用IPC相互交流。学过操作系统的人都知道,微内核是当时的一个热词,一个系统只有被称为微内核才可被看作是先进的,当时还有针对Linux系统的著名的Tanenbaum-Torvalds笔战。但事实证明,所有本来想做成微内核系统的成功项目都放弃了原先的设计(包括NeXTSTEP、Windows NT),因为这种类似Mach微内核的系统往往难产,GNU/Mach + Hurd之类的项目做到现在经过了20年,仍未成事,一年内搞一个微内核系统谈何容易。
微内核还没搞成,Apple几乎所有开发组的成员都来添乱。大家都说自己做的东西很重要,一定要加入Copland开发组,所以QuickDraw GX、OpenDoc之类的开发组产品成为新系统的核心组件,甚至类似用户界面皮肤之类的开发组都来凑热闹,马上就使Copland成为一个无法维护的项目。开出的计划越来越长,项目越来越多,但相关进展越来越少,完成速度越来越慢。即便做出了产品,连测试人手都不够。1995年就有工程师指出,在1996年发布Copland纯粹是幻想,能1997年发布就不错了。
1996年,Gil Amelio已经掌权。在苹果电脑全球研发者大会上他开心地宣布,传说中的Copland,也就是System 8的开发版会在当年夏天发布,而正式版在秋天就可以送到每位用户手上。时任TidBITs编辑的Matt Neuburg有幸见到了这个传说中的系统。令他大吃一惊的是,这个系统在当时只能打开或关闭文件,而无法对文本文件进行编辑,甚至所有用户界面的文本框都不能输字。哪怕什么都没做,整个系统也会随机崩溃,而崩溃甚至会造成文件系统损坏。参加演示的苹果员工,则需要不断守在旁边,他们的工作是不断地格式化已崩溃的计算机磁盘,然后重装系统。那年夏天,第零个测试版送到一小簇不明真相的开发者手中,把那些脆弱的没见过世面的人吓得半死。就连Apple内部都开玩笑说Copland的正式发布日期可能得推迟到2030年。
Gil Amelio心急如焚,希望Copland快点走到正道上来。作为Gil Amelio永远的好朋友,Ellen Hancock就在这个乱糟糟的时候来到了Apple。她的职务,正是担任这个乱糟糟项目的负责人。她亲自下访各小组体察民情,了解情况。毕竟在IBM干了近三十年,她依靠自己过人的判断力在2~3个月内便得出结论,Copland这个项目是没有指望的,就按目前Apple这样的状态,Copland永远都不可能发布,还不如早点取消了好。在短期内,先把 Copland中的一些有用的成果一点点合并到老的Mac OS中,并且抓紧从外部购买一个全新系统来满足Apple的需要。正是她的这个结论,结束了Apple长达五年的纠结,使公司重新走向正轨。整个PC的黄金时代已经过去,Apple想要翻身,还有很长一段路要走。Gil Amelio支持了Ellen Hancock的计划。1996年8月,Apple取消Copland项目。开发预览版的CD封套都已制完,每个邮包上的地址都已打印就续,而CD却从未曾制出。
1996-1998年是Apple最混乱的几年。在商业上,有一阵曾传出Apple要被Sun收购的消息。更有意思的是,《连线》杂志在1997年的六月还发表了一篇文章,名为《101种拯救Apple的方法》,其中一条说最好的方式是Apple让自己被Motorola买下,成为Motorola的一个部门,做 PowerPC 系列产品。以当时的眼光来看这些建议非常讽刺好笑,以今天的眼光看更为好笑。而Ellen Hancock在这段时间内的出色工作,成功地挽救了Apple。
首先,Ellen Hancock的对内政策是继续Mac OS 7.5的开发工作,一步步把Copland中的技术并到7.5中。同时,也大量购买第三方的系统增强包,包括插件管理工具、层次化菜单等技术。Apple把它们买过来,整合到现有的系统中。整个老系统在新系统尚未完成的时候不断更新,至2000年已出到9.0版,尽可能地留住了老用户。并且,前面提到的蓝盒(Blue Box)也作为后来新Mac OS X系统的一部分,支持用户运行经典Mac OS的程序。
而对外政策更是一个大手笔。Ellen Hancock协助Gil Amelio在Apple之外找寻操作系统技术。在IBM和Microsoft合作Big Blue的经验告诉她,购买一个操作系统的使用权问题多多,最好的计划是整个一并买下来。因此,Gil Amelio开始和当时看好的Be谈,却因价格问题没有成功,最终转而收购了NeXT。而Apple合并NeXT后,NeXTSTEP就演化为Rhapsody,并最终成为Mac OS X。这些事情我们今后会详细再谈。
买完NeXT后,Steve Jobs执政,Gil Amelio因任CEO期间Apple亏损严重而被炒。Steve Jobs把信得过的人(很多是前NeXT员工)拉拢到周围,开始新政,而同Gil Amelio有关的Ellen Hancock则在人事变动中被疏远。Steve Jobs甚至在很多场合称她为“笨蛋”。Ellen Hancock最终于1998年主动辞职。事后同Gil Amelio以及Apple的创始人之一Steve Wozniak一同创业,但始终不景气,她的辉煌时代已经过去。
Gil Amelio总结他在Apple时期的工作时说:“Apple是一艘底部有洞漏水的船,而我的工作是把这船引向正道。”(Apple is like a ship with a hole in a bottom, leaking water, and my job is to get this ship pointed in the right direction. )Ellen Hancock虽然同Gil Amelio一样,不知如何去堵这个漏水的洞,但正是由于她在Apple的出色表现,不但把船引到了正道上,还找来了有能力堵这个洞的人。
作者介绍:王越,清华大学建筑学院毕业,现居美国。中国著名TeX开发者,非著名OpenFOAM开发者。
(本文选自《程序员》杂志11年05期,更多精彩内容敬请关注05期杂志)