Tanenbaum–Torvalds Debate:操作系统的争论

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




Linux20年之际,我的脑海里飘过了我记忆中一系列的clip。从工程上而言,Linux,在辽国大企业,例如IBM,Intel,等全力扶持后,迅速的壮大,才有了今天。

在学术上,Linus曾经与操作系统界的泰斗Andrew T.有过一次交锋。是非常有意思的一件事情。这个debate发生在1992年。那时Linus还很年轻。。。

2006年,Andrew在Computer Magazine上从新整理发表了一篇文章: Can We Make Operating Systems Reliable and Secure?

Andrew的这篇文章是一篇必读文章。否则在江湖行走,侃大山和做OS的学术研究,都不够拉风。

如果单纯从操作系统或者系统软件的结构而言,Linux确实是Another Clone of Unix。这也没有什么好躲躲藏藏的。学术价值不大,if not any at all.

从陈首席的理解,操作系统体系结构的发展基本上经历了如下几个阶段的探索:

monolithic os–>第一代微内核(Mach,Minix等)–>第二代微内核(QNX Neutrino)–》第三代微内核(L4)–》虚拟化(XEN,KVM)。

操作系统发展到现在,基本上已经不存在Monolithic OS和经典的微内核之争。而是你中有我;我中有你。

如果非要从学术的角度而言,当然,是微内核是方向;或者说,是虚拟化是方向。

操作系统最后的一个方向就是: Application Aware OS。

这好说不好做。。。。。

(5个打分, 平均:3.00 / 5)

雁过留声

“Tanenbaum–Torvalds Debate:操作系统的争论”有34个回复

  1. Peng 于 2011-04-20 9:20 下午

    我倒认为5年内OS的最大方向还是虚拟化,5-10年OS可能会处于瓶颈期;但如果总线和网络速度能够提高,distributed OS可能会变成现实;Application Aware OS听着有点虚,呵呵

  2. 理客 于 2011-04-20 9:23 下午

    如果不是有神人一样的华丽转身,首席要创造历史,也许是要从Application Aware OS的制造开始,吴朱华是好样的

  3. 吴朱华 于 2011-04-20 9:42 下午

    to 理客:
    过奖了,我们团队还只是刚起步:)

  4. 冬瓜头 于 2011-04-20 10:40 下午

    distributed OS,或者Datacenter OS,也就是DOS,巧合,《大话存储2》最后一章讲云的,里面我也弄了这么个模型出来,后续我截取一段,还望首席通过,发出来让大家虐待一下。

  5. Lucifer 于 2011-04-20 10:49 下午

    很喜欢Tanenbaum的Amoeba,可惜发展太慢了

  6. maple leaf 于 2011-04-20 11:02 下午

    来到弯曲确实是受益匪浅,虽然接触OS也有多年,但一直都是理解理解再理解。
    我觉得这样会看上去很美:Datacenter OS提供计算,Application Aware OS提供应用的呈现,当然前提是网络带宽不能为阻碍的瓶颈。套用一句经典:机制和策略的分离。哈哈~~~

  7. 张俊杰 于 2011-04-20 11:17 下午

    当OS的应用细分到职业,年龄,性别的时候,是不是就是app aware OS了呢?

  8. 冬瓜头 于 2011-04-20 11:31 下午

    我对os是个纯外行。我觉得os没有必要感知到app这一层吧,应该是个app generator层,就类似于google和amazon的应用开发平台一样的东西,这一层你说归到os中,也不是不行,但是至少不可能每个app或者每一类app都用一个不同的os。

  9. Len 于 2011-04-20 11:34 下午

    那linux+kvm,岂不是比第三代微内核还先进?

  10. 天外有天 于 2011-04-21 12:10 上午

    应用感知。。。是说应用能理解os对应用的运行步骤,进而更有针对性的开发app吧。。
    windows这方面就很封闭,
    linux提供了一些这样的机制。
    blktrace,oprofile,jprobe这些工具。
    可以细致到一个io多大,访问那个扇区,如何加入队列,如何进入scsi层,何时阻塞等等。
    或者任务怎样被调度,怎样阻塞,事件等等。
    只不过linux也是零星的分散工具,而没有一种统一的机制。。

  11. 天外有天 于 2011-04-21 12:19 上午

    机制和策略的分离
    —————

    哈哈。。太熟悉的话了。
    通讯多少年前就想这个,NGN,智能网,
    搞了无数个模型出来,到现在也没搞定分离。
    amazon的计算模式。google的开放接口,
    也是提供了一套API而已,说到分离,恐怕没点影子哈。。。

  12. 白云蓝天 于 2011-04-21 12:25 上午

    TO 天外有天

    应该是反过来,OS能感知应用的特性,以提供更好的服务。

  13. 沙加 于 2011-04-21 12:33 上午

    用微内核的思想,设计虚拟化,各位以为这条路有出路吗?或者说,这个方向可以聚焦在哪些应用范围内

  14. dp 于 2011-04-21 12:47 上午

    N 好奇 Andrew T. 用的是什么操作系统。。。。 MINIX? 严重doubt…

  15. 潜水员 于 2011-04-21 1:02 上午

    如果单纯从操作系统或者系统软件的结构而言,Linux确实是Another Clone of Unix。这也没有什么好躲躲藏藏的。学术价值不大,if not any at all.

    质疑
    Open or not open, it is trade off,
    Linus opened
    what is in or what is not in, also trade off by linus, who else can? or could?
    不管怎样,LINUX进化到了企业级,跑出了UNIX云。 当然不是一个人能作的,但一个人能让大家都为LINUX作事,就不是一普通人了。

  16. Peng 于 2011-04-21 3:08 上午

    “我觉得os没有必要感知到app这一层吧”, 同意瓜哥^___^

    另外,我说的distributed OS不是vSphere这种,我的看法是如果网络速度趋近于总线,比如IB和万兆,那么OS跨节点就有可能了

    因为我一直在搞虚拟化(云计算),经常遇到人上来就问:能不能把多台机器合成一台?

    需求肯定有,也有scalemp这种东西,但仍然受限于硬件和网络

  17. ykzj 于 2011-04-21 3:48 上午

    app aware是不是就是插入式了?

  18. sieie 于 2011-04-21 5:29 下午

    首席说的application是system application吧?

  19. caibird3rd 于 2011-04-21 6:14 下午

    个人以为,长远来看,虚拟化并不是计算技术(云计算、普适计算、blar blar blar)的未来方向,也不是OS的未来方向。虚拟化的兴盛,反映出的是现有OS的无力和应用兼容的无奈。
    作为核心基础软件,OS的中心问题还是软件模型(计算模型、数据模型)的问题。OS要有大的发展,必须同硬件(CPU)、编译链接等核心基础软件通过协同设计进行创新,内外功双修才是王道。
    最理想的状态是,软件真正像水一样的流动,无处不在,无时不在,OS当然也是如此。不妨叫“水计算”好了,哈哈!

  20. Will Chie 于 2011-04-21 6:35 下午

    纠正个英语口语错误:blah, blah, blah…

  21. 白云蓝天 于 2011-04-21 7:28 下午

    虚拟化的出现,主要是解决了传统0S把“系统服务”(包括运行环境、库等等)与“硬件资源”绑定在一起的问题。

    虚拟机的客户,向虚拟机要的主要是运行环境和软件资源,硬件资源交给hypervisor就好了,用户不必关注。

    从这个意义上讲,虚拟机实现了更合理的“分”,向用户提供了更纯粹的“服务”。但是这些服务仍然是基于传统0S的语义,在“聚”的层面上,仍然是以应用层的服务协议来实现聚合,缺乏0S层面的优化支持,虚拟机之间的互通壁垒还是存在。

    0S未来的发展,个人认为基于“服务”的设计会越来越多,这有点类似于微内核的思想。“分”的越细越轻量,“聚”的越灵活越重量。我认为后续的发展会延续在现有基础上改良的道路,也许传统OS层会越来越薄,也许各种“服务层”会越来越细致丰富,最终会基于网络,形成一个开放的、兼容并包的自服务集合。

  22. caibird3rd 于 2011-04-21 8:52 下午

    OS计算模型的目标无外乎两点:安全、高效的隔离机制(保护域) + 安全、高效的通讯机制(域间通讯)
    对应用来说,包上进程的套儿已经够沉重的了,现在还要在外面再加一层虚拟机的乌龟壳儿,纯属没事找抽。还好带来了这个负载优化那个通讯优化的“需求”,总算是解决了不少人的饭碗问题。
    平心而论,从纯技术研究的角度考虑,搞成现在这个样子,做OS和CPU等基础软硬件研究的都需要好好反思一下。弄个虚拟化把责任推给搞硬件的,弄个多核把责任推给搞软件的,都是不思进取的表现

  23. Lucifer 于 2011-04-21 8:54 下午

    嗯,OS和Hypervisor还是不同的

  24. 阿峰 于 2011-04-22 1:58 上午

    有个叫洪峰的大牛说在做MNM OS,微内核~~~
    http://www.hongfeng.ch/

  25. 冬瓜头 于 2011-04-22 3:13 上午

    洪峰,好久不联系了啊,我记得是“黑客道”的创始人。有联想起黄老道了,道指令,道CPU,到底折腾出名堂没?:)

  26. westermann 于 2011-04-22 3:53 上午

    那哥们后来好像专职研究哲学去了…
    让我想起以前写,搞超级解霸的梁肇新,后来去研究风水了

  27. 冬瓜头 于 2011-04-22 3:57 上午

    原来如此,越研究越高层了,大彻大悟啊,世界的基石就是0和1,我们都是上帝的代码。

  28. huanghuihuang 于 2011-04-22 6:09 上午

    冬瓜头:感谢挂念。我还在研究道指令、道CPU深层次技术,近期用了四个月时间重整模拟器,以便支持动态结果(条件)道指令,提供运行时修改道指令的功能,所以基本上没有什么进展。但也不是没有收获,进入道指令深层次的思考后,感觉像进入另一个与目前计算不一样的境界。
    去年末因单位需要,用信息树管理系统编制了一套项目统计软件,麻雀虽小,五脏俱全(权限、任务分配、可配置表单输入、数据子类汇总、数据总汇总、输出等)呀,忙了一天完成了,但最后在使用时,人家说太复杂了,给领导说,不能用,然后领导对我说,你做得不能用。还好,我对道德经修养极为透彻,我不生气,仅当作一次练兵。一群信息盲,你还能说什么呢,就是把IBM沃森送给信息盲,也是一堆废铁。所以老子说,国之利器不可示之于人,但我想即使示之人,也没什么关系,纯粹对牛弹琴。
    上述只是一件小插曲,无关紧要,下一阶段,再认真思考一下,如何才能把道指令普及开来。

  29. 陈怀临 于 2011-04-22 6:35 上午

    小黄受委屈了。。。。。。

  30. huanghuihuang 于 2011-04-22 8:22 上午

    首席见笑了。

  31. 胡不才 于 2011-04-22 10:14 上午

    linux+JVM(andriod)和mach+freebsd(IOS)是当今的潮流,一个用巨核加第4代语言(C,objectC,C++,java),一个用微核加第2代语言。就像当年Linux胜过minix,估计IOS要胜过Andriod。按照这个步伐,是不是应该VM+C++(虚核加第三代语言)了?

  32. 天外有天 于 2011-04-22 8:20 下午

    OS能感知应用的特性,以提供更好的服务
    ———————————

    这事听着就悬乎。。。
    os是基础设施,基础设施能感知以后的应用。
    就像预测未来一样,不靠谱。。

    os提供内存,文件系统,任务的封装,
    应用只基于这些服务,未免太复杂,做业务慢,
    需要高层次人员,老板想的是小学毕业的也能定制应用,这就需要服务层,提供更高层次的抽象。
    可惜这事越整越复杂,
    也好。让老板多掏点银子

  33. 一条虫 于 2011-04-22 10:33 下午

    to 31:

    价格和外观品质才是关键。跟里面用什么没关系。只要体验相当,管你用什么。如果WP7能出更绚丽的机器外观和界面搞不好就是WP7的天下。

    手机操作系统面向大部分非专业用户,优劣不再本质。系统级的东西,不靠外表直观卖钱的东西内核与组织方式才趋于明显。

  34. 瞎扯 于 2011-04-22 10:50 下午

    Java还是慢了点。 Android的NDK开始支持C/C++了