IBM 内核惨败:20 亿美元打水漂 !

640?wx_fmt=jpeg

来源:云头条

摘要:IBM早在20世纪90年代豪赌微内核,看好它是操作系统领域的下一大技术,为此不惜耗费数十亿美元,最后却没多少成果。


20世纪90年代早期,我们不知道计算机行业的发展方向,下一代技术是什么样,甚至不知道驱动因素是什么。当时所有的开发人员都知道,服务器机房中或台式计算机机上的操作系统根本不够好;下一代操作系统需要更好,确切地说要好得多。这说起来容易做起来难,但出于某种原因,这个问题让一家公司比其他任何公司更绞尽脑汁,那就是IBM。在过去这十年,这家公司比其他任何公司更着迷于操作系统,可惜到头来没多少成果。问题出在哪里?IBM可能为内核热而疯狂。本文解释了IBM为何迷恋于操作系统,可惜最终一败涂地。


1991年


Linux之父Linus Torvalds在这一年首次宣布开源操作系统Linux。(他说:“纯粹是业余爱好,不会像gnu那样庞大而专业。”现在看来他完全说错了。)后来证明这则宣布对现代计算界而言事关重大,Torvalds构建内核的初期尝试不是那一年的唯一尝试,当时IBM正在这方面开展研究工作。


640?wx_fmt=jpeg

图片来源: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想要构建各大操作系统都离不开的内核:为此它同时开展两个项目(而不是一个项目),着力开发全新的操作系统技术。


这两个项目都很大胆,但由于与另一家公司关系更密切的某个轶闻:关于蓝色、红色和粉红色卡片的故事,一个项目比另一个项目更被人们所记住。


640?wx_fmt=jpeg

注定厄运的粉红色卡片(图片来源: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年代早期都在开发这个基于微内核的项目。


640?wx_fmt=jpeg

就一个小内核(图片来源: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方面的工作的启发,但他最终选择了拥有性能优势的整体式内核。


640?wx_fmt=jpeg

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确实有其拥趸。)


640?wx_fmt=jpeg

图片来源: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认为它有机会开发下一代操作系统。


相反,它失败了。失败了两次。


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。


  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”


640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言ODBC连接MySQL数据库制作简易用户登录系统

1、代码如下&#xff1a; #include "stdafx.h" #include <windows.h> #include <windowsx.h> #include <sql.h> #include <sqlext.h> #include <sqltypes.h> #include "resource.h" #include "MainDlg.h" #define…

关于交通创新,这五大智慧城市做了啥?

来源&#xff1a;资本实验室在现代城市中&#xff0c;交通的可达性和运输效率是衡量城市运营水平的重要指标。而随着城市人口越来越多&#xff0c;城市规模不断变大&#xff0c;如何打造高效、舒适、快速出行的交通系统已经成为城市管理机构面临的一大挑战。随着传感器成本的持…

应用程序利用ADO对象访问数据库

1、已创建MySQL数据库employeedb&#xff0c;数据库中有如下所示的employeetb表。 2、在使用ADO对象之前&#xff0c;必须在工程的Stdafx.h文件里用直接引入符号#import引入 ADO库文件&#xff0c;以使编译器能够正确编译。代码如下&#xff1a; #import "D:\Program Fil…

人工智能让育种“物美价廉”

预测二元化基因表达量的卷积神经网络模型建立来源&#xff1a;中国科学报自从作物被驯化以来&#xff0c;培育集抗性强、优质、高产等性状为一体的作物品种一直是育种家的梦想。DNA分子结构模型的发现推动了分子生物学的发展&#xff0c;让育种家们能够从基因和分子水平上解码作…

Socket编程应用——开发聊天软件

1、客户端应用程序开发 建立一个基于对话框的MFC应用程序&#xff0c;创建的时候记得勾选【Windows Sockets】&#xff0c;其 他的默认就行。 &#xff08;1&#xff09;、对话框如图所示&#xff1a; &#xff08;2&#xff09;代码如下&#xff1a; // ChatClientDlg.cpp …

MFC中给单文档程序添加背景图片

1、在OnDraw函数中修改如下&#xff1a; void CBitmapView::OnDraw(CDC* pDC) {CBitmapDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCBitmap bitmap; //位图类对象bitmap.LoadBitmap(IDB_BITMAP1); //从资源中装载入位图CDC dc…

详解|清华大学100页PPT:工业机器人技术详解

来源&#xff1a;清华大学未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#…

2019年,中国要推进这70个工程项目

来源&#xff1a;人民日报客户端摘要&#xff1a;近日&#xff0c;《关于2018年国民经济和社会发展计划执行情况与2019年国民经济和社会发展计划草案的报告》正式发布。报告详尽地对2019年我国经济社会的发展做出了安排。围绕基础设施建设、创新发展、社会民生、生态治理、文化…

判断101-200之间有多少个素数,并输出所有素数。

1、代码如下&#xff1a; // test.cpp : Defines the entry point for the console application. // /* 判断101-200之间有多少个素数&#xff0c;并输出所有素数。*/ #include "stdafx.h" #include <iostream> #include <cmath> using namespace std;in…

输入一个十进制数,转化为二进制

1、代码如下&#xff1a; // test.cpp : Defines the entry point for the console application. // /* 输入一个十进制数&#xff0c;转化为二进制。*/ #include "stdafx.h" #include <iostream> using namespace std;int main(int argc, char* argv[]) {cout…

超越“机器人三定律” 人工智能期待新伦理

来源&#xff1a;新华网人工智能的伦理原则近来备受关注。联合国教科文组织总干事阿祖莱在3月初举行的“推动人性化人工智能全球会议”上就表示&#xff0c;目前还没有适用于所有人工智能开发和应用的国际伦理规范框架。对于科幻作家阿西莫夫上世纪设计、防止机器人失控的著名“…

求5阶矩阵其对角线上所有元素之和

1、代码如下&#xff1a; // test.cpp : Defines the entry point for the console application. // /* 输入一个5*5的矩阵&#xff0c;然后输出其对角线上所有元素之和。 当求N阶矩阵其对角线上所有元素之和时&#xff0c;只要把以下程序中所有的5改成N,4改成N-1即可。*/ #inc…

DARPA“终身学习机器”项目取得重大进展

来源&#xff1a;DARPA网站2019年3月&#xff0c;美国防高级研究计划局&#xff08;DARPA&#xff09;“终身学习机器”&#xff08;L2M&#xff09;项目研究人员在《自然机器智能》杂志发表了其有关人工智能算法的研究结果&#xff0c;介绍了一种由类似动物肌腱驱动的人工智能…

《自然》,工程学突破!仿生物细胞群体机器人问世

来源&#xff1a;科技日报摘要&#xff1a;北京3月20日&#xff0c;英国《自然》杂志20日发表了一项工程学最新突破&#xff1a;美国科学家团队研发了一种能模拟生物细胞集体迁移的机器人&#xff0c;可实现移动、搬运物体及向光刺激移动。北京3月20日&#xff0c;英国《自然》…

白宫启动AI.GOV计划,呼吁各界携手共同推进AI发展

来源&#xff1a;网络大数据摘要&#xff1a;近日&#xff0c;白宫启动了 ai.gov 计划&#xff0c;列出了特朗普政府与美国联邦机构采取的一系列人工智能举措&#xff0c;如美国国立卫生研究院(NIH)利用 AI 展开的生物医学研究项目以及美国交通部近期发布的关于自动驾驶汽车的报…

Qt连接MySQL数据库

1、将MySQL安装目录下的libmysql.dll拷贝到Qt安装目录下的bin目录中。 2、准备数据库和数据表如下&#xff1a; 3、编写如下代码&#xff1a; #------------------------------------------------- # # Project created by QtCreator 2016-07-15T17:56:50 # #----------------…

边缘计算不再“边缘”

来源&#xff1a;中国科学报摘要&#xff1a;5G商用时代来临&#xff0c;数据量将更加巨大、复杂&#xff0c;对计算提出更高要求&#xff0c;同时也为发展人工智能、边缘计算带来了新机遇。5G商用时代来临&#xff0c;数据量将更加巨大、复杂&#xff0c;对计算提出更高要求&a…

Qt中修改应用程序和标题栏的图标

一、修改应用程序图标 1.新建一个my.txt文件&#xff0c;打开后在其中加一句 “IDI_ICON1 ICON DISCARDABLE "应用程 序图标.ico"”。&#xff08;“应用程序图标.ico”是要添加的图片名&#xff0c;图片格式一定要是.ico), 然后保存并退出&#xff0c;将文件格式改为…

人类“第六感”首次被证实,研究发现人脑具有磁场感应能力

新证据表明&#xff0c;人类磁感可以让大脑感应到地球磁场来源&#xff1a;神经科技摘要&#xff1a;科学界已经知道鸟类可以利用地磁场进行导航&#xff0c;除此之外&#xff0c;科学家在自然界许多物种中都发现了磁感应能力&#xff0c;生物的磁感受能力也一直在业内被称作生…

用S-函数编写Simulink中的正弦模块

1、用S-函数实现一个正弦波信号源。要求其幅度、频率和初始相位参数可由外部设置&#xff0c;并将这个信号源进行封装。 S-函数程序代码如下&#xff1a; function [sys,x0,str,ts] ch2example17Sfun(t,x,u,flag,Amp,Freq,Phase) % 正弦波信号源 switch flag, case 0 …