云头条导读:IBM早在20世纪90年代豪赌微内核,看好它是操作系统领域的下一大技术,为此不惜耗费数十亿美元,最后却没多少成果。文章作者 Ernie Smith,是 Tedium 网站的编辑,积极的互联网评论人士。
20世纪90年代早期,我们不知道计算机行业的发展方向,下一代技术是什么样,甚至不知道驱动因素是什么。当时所有的开发人员都知道,服务器机房中或台式计算机机上的操作系统根本不够好;下一代操作系统需要更好,确切地说要好得多。这说起来容易做起来难,但出于某种原因,这个问题让一家公司比其他任何公司更绞尽脑汁,那就是IBM。在过去这十年,这家公司比其他任何公司更着迷于操作系统,可惜到头来没多少成果。问题出在哪里?IBM可能为内核热而疯狂。本文解释了IBM为何迷恋于操作系统,可惜最终一败涂地。
1991年
Linux之父Linus Torvalds在这一年首次宣布开源操作系统Linux。(他说:“纯粹是业余爱好,不会像gnu那样庞大而专业。”现在看来他完全说错了。)后来证明这则宣布对现代计算界而言事关重大,Torvalds构建内核的初期尝试不是那一年的唯一尝试,当时IBM正在这方面开展研究工作。
图片来源:pchow98 / Flickr
IBM如何成为90年代操作系统失败的典例?
简单来说,个人计算机革命常见的情节主线就像这样:IBM想为企业界制造台式计算机,使用现成部件来制造,包括商业合作伙伴微软从Rod Brock那里收购的操作系统。
微软随后意识到它与IBM的交易并非独家的,硬件公司搞清楚了如何对早期PC进行逆向工程,苹果做出了微软后来“借鉴”的产品,个人计算机革命就这样蔚然成风。当然,凡是买过Commodore 64、ZX Spectrum或MSX的人都知道,实际情况比这更加复杂,忽略了大部分的历史真相,包括参与早期PC革命的那些公司开发的一些产品。
然而,IBM PC克隆机和软件的崛起使得许多公司在90年代初期沦为了旁观者。
出人意料的是,其中一家公司居然是IBM。
当然,IBM在那个时代可谓顺风顺水:该公司发布了第一批ThinkPad;IBM成了庞然大物,朝多个方向发展,以至于不可能崩塌。但IBM还未来得及慢慢品尝PC的胜果,克隆机制造商们已将这家公司变成商业计算市场中的另一个玩家,而IBM想要做得更好。
现在,如果你稍微精通技术,可能会觉得在这番开场白后,我会谈论OS/2,这个操作系统是微软和IBM决裂的焦点。不过虽说OS/2无疑是故事的主角,但不是唯一的主角。 IBM有比这更宏大的计划。
IBM想要构建各大操作系统都离不开的内核:为此它同时开展两个项目(而不是一个项目),着力开发全新的操作系统技术。
这两个项目都很大胆,但由于与另一家公司关系更密切的某个轶闻:关于蓝色、红色和粉红色卡片的故事,一个项目比另一个项目更被人们所记住。
注定厄运的粉红色卡片(图片来源:Adobe Stock)
三套卡片,两种命运
20世纪80年代末苹果完成员工重组后,开了一次异地会议,目的是试图在史蒂夫离开后的时代探索Mac OS的未来,当时乔布斯和沃兹尼亚克已离开了这家公司。
大致来说,卡片是头脑风暴会议的产物:蓝色卡片代表对Mac OS的近期更改,粉红色卡片代表长期更改,而红色卡片代表更为高级的更改(这种情况下,红色好比是更深的粉红色)。
这些卡片最终如同两个团队的行军令:蓝色卡片带来了Mac OS System 4中的新功能,粉红色和红色卡片是长期计划的一部分。遗憾的是,规模较小的粉红团队无法在合理的时间内实现这些功能,成为了“范围蔓延”(scope creep)的受害者,后来做出这个决定:开始全面开发一种新的操作系统,使用一种名为微内核的模式,微内核实际上构建了一个极简的软件层,可以通过它处理所有任务。这项工作最终与Mac OS完全独立开来。
这时候IBM重新发挥了作用。粉红团队的工作持续时间长,但在90年代早期非常先进,而且与IBM计划为其Power Systems系列推出一款新的处理器系列很吻合。
这番合作导致苹果使用相关的PowerPC处理器系列,但它也促成了一家名为Taligent的新公司――苹果的粉红团队和IBM自己的员工将开发对Mac OS来说太过庞大的这款未来操作系统。1991年10月《纽约时报》的新闻标题令观察人士大跌眼镜:“IBM现在是苹果的主要盟友。”
代表那一代人心声的John C. Dvorak在1994年《PC Magazine》杂志上的一篇专栏文章阐述了这家公司的终极计划:“Taligent在这个世界上扮演的角色是创造这样一个环境,我们购买的一款款应用程序都直接做入到操作系统中。由于应用程序是可编程的,你可以组建成自己的定制套件。Taligent也许会终结我们所知道的所有应用程序。”
大胆的想法。然而,这不是IBM在这方面的唯一项目,也不是最大胆的项目。
“它不是明天的最佳操作系统,就是滑铁卢式的惨败。”
John C. Dvorak早就对IBM在大肆宣传的Workplace OS上耗费的心血下了正确的结论,IBM在整个90年代早期都在开发这个基于微内核的项目。
就一个小内核(图片来源:Adobe Stock)
一个微内核一统天下
这边厢Taligent刚起步,那边厢IBM的员工已经在研发自己的微内核,基于卡内基•梅隆大学的MACH微内核方面开展的现有工作。
IBM大力开发的系统叫什么?Workplace OS。使命是什么?想成为处于另外每款操作系统核心的操作系统,就是这样。
由于当时IBM对众多操作系统都有兴趣,除了OS/2和Taligent外,它还在MS-DOS、Windows和操作系统标准POSIX方面拥有名正言顺的话语权,此外还有它自行开发的操作系统OS/400和AIX,当时后者可能最接近操作系统界的核心。随着人们对微内核越来越有兴趣,一方面是由于微内核在可靠性方面有优点,IBM有能力推进其愿景,它之所以试图推进愿景,一方面是由于它觉得让不同的操作系统有一个标准的基础可以省钱。
(然而为了省钱却付出了高昂的代价:加州大学河滨分校的研究人员Brett D. Fleisch和Mark Allan A. Co在1997年的事后分析中指出,IBM花了近20亿美元试图让Workplace OS取得进展,这笔资金约占IBM五年期间总收入的0.6%。)
至少可以说,Workplace OS很大胆――顺便说一下,其在内核方面的野心实际上横扫Taligent自己的微内核,不过并不横扫Taligent项目本身。这个概念立足于所谓的“操作系统大统一理论”(GUTS),实际上旨在围绕常见的操作系统构建标准子系统,以便不同的软件可以使用相同的基本服务,即使它们使用不同的操作系统。
这是个好主意,尽管很大胆,说好听点其使命是让操作系统更高效地工作。但说难听点,IBM似乎试图在PC界重新成为霸主。
就是有一个问题:微内核还没有准备好完成IBM希望它完成的重任。
“没错,Linux是整体式的,我同意微内核更棒。对于一个争议较少的话题,我可能会基本上同意你所说的。从理论上和美观上的角度来看,Linux落于下风。如果GNU内核在去年春天已经准备好,我甚至懒得开始搞我的项目:事实上GNU内核未准备好,现在仍未准备好。就现在可用这点而言,Linux大获全胜。”
Linus Torvalds在1992年发表在Usenet新闻组comp.os.minix上的帖子中这样回应。起因是MINIX的开发者Andrew S. Tanenbaum发帖子称,Linux已经过时,一方面是由于Linux使用了更传统的整体式内核;在这种内核中,操作系统最基本的部分都在内核本身内部加以管理,而不是像使用微内核那样作为服务分离出来。Torvalds和Tanenbaum之间的争论家喻户晓,一方面是由于Torvalds直接受到Tanenbaum在MINIX方面的工作的启发,但他最终选择了拥有性能优势的整体式内核。
OS/2 Warp Connect for PowerPC,使用Workplace OS的第一个也是最后一个操作系统。(图片来源:OS/2 Museum)
为何IBM试图重塑操作系统的计划没有成功?
IBM拥抱的微内核概念并非不切实际的概念。
当时已有足够的证据表明开发一种基于MACH内核的操作系统是值得的――毕竟,NeXTSTEP操作系统(后来成为现代MacOS的基础)是从MACH内核发展起来的。当时相比许多操作系统,NeXTSTEP运行起来稳若磐石。
但IBM的野心加上微内核模式的一些技术弱点最终导致沉船。无论是对外部合作伙伴来说,还是对长期合作伙伴来说,IBM在90年代早期操作系统方面异常大胆的举措(尤其是与苹果的合作)似乎没有多大意义。
1991年《纽约时报》的一篇文章披露了微软与IBM之间围绕OS/2的分歧,时任微软系统软件高级副总裁、后任职CEO的Steve Ballmer当时暗示,操作系统方面两方面试水的做法直接导致这两家公司之间出现鸿沟。
Ballmer说:“我无法告诉你IBM的战略是什么,但我确实知道它没有在与我们合作。这对我们有利,因为IBM的客户也无法理解它。”
当然,结果证明Ballmer是对的,因为IBM在操作系统领域的复杂项目未能风靡世界(当然,OS/2确实有其拥趸。)
图片来源:OS/2 Museum
微内核的问题涉及两方面,至少IBM的情况是这样:一是,将它整合起来并满足所有这些彼此竞争的需求非常复杂,IBM在这个项目上花费数十亿美元就表明了这一点;二是,微内核在设计上牺牲速度以换取稳定性――IBM很快意识到服务器客户绝对不想要这样,这导致该公司背弃原来的Workplace OS承诺。按照上述加州大学河滨分校的事后分析:
IBM的内部讨论专注于AIX。最后,在1993年Comdex展会上,IBM董事会主席郭士纳宣布微内核不会取代AIX。IBM意识到许多AIX用户不会接受微内核系统引起的性能下降。 IBM还担心微内核对直接在硬件上运行的高性能HP或Sun Unix系统造成竞争障碍。相反,郭士纳告诉AIX客户,如果他们以后感兴趣,可以迁移到Workplace OS。
该计划的AIX部分最终被摈弃,但Workplace OS工作仍在继续,目标是将Workplace OS纳入到基于OS/2的PowerPC工作站。但是该公司的64位PowerPC 620芯片遭到媒体的诟病后,这导致Workplace OS方面的工作一败涂地,仅剩很少见到的OS/2 Warp的PowerPC版本这个硕果。
那么,苹果与IBM的合作项目:Taligent如何呢?这个合作项目面临诸多挑战,其中许多是由文化冲突引起的:IBM出身的高管更严谨,苹果的粉红团队的成员更崇尚自由。合作表面上已经很大胆,实际开展起来很难。
1993年《财富》杂志上的一篇文章特别指出:“技术挑战――开发面向对象的操作系统以便与微软和Next竞争――难度很大。社会工程方面的挑战――面对两种截然相反的经营理念的碰撞,打造一种新的企业文化――难度可能更大。”
而最终,Taligent没有完成任务。它未能发布一款操作系统(尽管IBM施加了巨大压力),只是最终发布了一个运行时系统CommonPoint,该系统取得了一些成功,但并未大获成功。惠普一度加入其中,只是合作关系在1995年底完全破裂,只剩下IBM收拾残局。
2014年,Daring Fireball的抄写员John Gruber写道:“Taligent是导致苹果处于这种绝望的困境中,最后不得不收购NeXT的梦想未能实现的几个惨败之一。”
苹果在20世纪90年代面临着一次又一次的操作系统危机,最终收购NeXT获得了微内核,尽管NeXT基于卡内基•梅隆大学的MACH微内核技术。这根本不是他们花大量时间和资金来开发的微内核。
“OS/2 for PowerPC无疑是有趣的实验,尽管试验失败。无法判断导致这次失败的主要是OS/2 for PowerPC的缺陷还是这是整个PowerPC平台的失败(可能只是远远达不到预期)。”
OS/2 Museum的撰稿人Michal Necasek在回顾IBM针对PowerPC的OS/2版本时这样写道。该版本只推出了一个限制性很强的版本,并没有太多的相应软件。颇具讽刺意味的是,围绕Workplace OS构建的一个对外发布的系统毫无支持可言,尽管“一个内核一统天下”的理念逐渐成为这个项目的核心。
回想起来,这不像是多么意外,但如果我可以钻入时间机器,回到30年前,告诉大家芬兰的一个程序员会打败IBM开发一款“通用”操作系统的梦想,我敢肯定我会被笑话,赶出房间。
但如果你细细分析一下,Linux基本上实现了Workplace OS梦想的每一个要求――它是一个常常用作另外众多操作系统基础的操作系统,其解决方案用于从嵌入式系统、智能手机、服务器到电视机的各个地方。当然,虽然Windows和MacOS不使用Linux内核(不过微软越来越喜欢Linux),但它却是谷歌Chrome操作系统的关键要素,这款操作系统对于将另外某家公司的梦想变为现实略知一二。其实,它唯一没有做的就是每当它被使用都会改善IBM的收入,尽管IBM收购Red Hat。
微内核与单内核之争可能根本不会完全消失,一方面是由于它对于计算机科学家或Hacker News网站的评论者来说是颇有价值的学术辩论。当然,两者都不乏成功的例子:MacOS借鉴了这两个概念的要素,而嵌入式QNX在微内核的稳定性方面做得很出色。
另外值得一提的是,谷歌开发中的Fuschia操作系统被认为是安卓和Chrome操作系统的替代者,它基于微内核。所以纯粹的微内核终归会看到出头之日。
在许多人似乎懒得为使用微软Windows之外的操作系统而操心的世界,IBM认为它有机会开发下一代操作系统。
相反,它失败了。失败了两次。