1992年1月29日,在Usenet新闻组comp.os.minix上,阿姆斯特丹自由大学教授Andrew Tanenbaum发帖,标题为“Linux已经过时了”。他批评的对象,是芬兰人Linus Torvalds刚发布的操作系统内核。
Tanenbaum编写了Minix,一个紧凑的教学系统,目的是向学生展示操作系统的正确结构。他写的教材被世界各地大学采用,用这本书上过课的人超过百万。其中一位学生就是Linus Torvalds。
![]()
这场争论发生的几个月前,Linus发布了自己从零开始写的内核,并免费提供给所有人。他本来没打算叫它Linux,觉得这个名字太自我中心,好几个月里一直管它叫Freax。管理大学服务器的管理员Ari Lemmke受不了这个名字,把文件放进了自己命名为Linux的文件夹,取的是Linus加Unix的组合。后来大家复制的都是这个名字,就这么叫开了。
Linux当时还鲜为人知,只能跑在一种处理器架构上。即便规模如此之小,Linux也让教授感到不舒服,况且他也并不认同它的架构设计。Tanenbaum的批评集中在架构层面:Linus写的是单内核,一个庞大的程序,整个操作系统都在同一个空间中运行;而Minix是微内核,核心极小,其他所有部分都作为独立的、隔离的组件运行。他写道,单内核设计“是倒退回了1970年代”,又补了一句:“你应该庆幸不是我的学生,这种设计我才不会给高分。”
换作这个年纪的学生,挨了这么一记重拳,通常就沉默了。Linus偏偏反着来。他第二天一早回帖,既不礼貌,也不畏惧。他写道,Minix有实实在在的设计局限,它在微内核这件事上做得并不好,内核里的真正多任务处理跑起来卡得厉害,每次运行都让他很崩溃。然后他甩出一句话:“Linux几乎在所有方面都吊打Minix。”他甚至直接朝教授本人开火,说对方的工作“简直是为Minix的某些无脑设计提供了一个绝佳借口。”
在那些刻薄的言辞之下,埋藏着更硬核的论点。Minix并不是免费的,要运行它,你得先买Tanenbaum的教材,并接受它的许可证条款。Linux是免费的,它已经能在真正的硬件上运行,实实在在落地。几个月前Linus发布它的时候,几乎没有任何野心,只说是“一个爱好而已,不会像GNU那样做大做强。”GNU是Richard Stallman花了多年时间试图构建的一个完整的操作系统,它像Unix一样工作,但不包含任何Unix的专有代码,所有人都可以免费使用。这是当时业余爱好者衡量自己的标杆,而Linus是说自己没指望达到那个高度。
Tanenbaum还有另一个预测。他说,Linux被绑定在Intel 386这一特定的芯片家族上,押注一个芯片家族是没有前途的。他甚至说,就连386所属的x86这个更大的Intel芯片系列,也不会永远存在。Tanenbaum在这个预测上同样错得离谱。x86没有消亡,反而成了整个计算机行业延续了30年的标准。
这个帖子炸了锅。越来越多的开发者涌入,其中包括年轻的Theodore Ts'o,他在接下来的30年里为Linux内核构建了核心部件。Tanenbaum、Linus以及涌入那个帖子的程序员们,围绕着文件系统、性能、可移植性等所有问题展开了争论,但始终没有一个定论。到底谁对谁错,答案要到25年后才浮出水面。而它出现的方式,来自一个他们谁也没想到的地方。
单内核吞噬了互联网
这场争论历时25年才尘埃落定,但它并未以某一方获得绝对胜利而告终。当年被批为“过时”的Linux,如今遍布所有角落:它运行在后台服务器里,是Android的内核,意味着几十亿部手机都在跑它;全球最快的500台超级计算机,无一例外启动着Linux。而Tanenbaum断言会消亡的x86架构,一统行业就是三十年。
但Linux无处不在,并没有证明Tanenbaum在架构设计上错了。他争论的核心始终是:内核里到底该装什么。这种选择在系统正常运行时完全感觉不出来,只有出问题才显现。
举个例子:某个驱动程序崩溃了。单内核里,一个有bug的Wi-Fi驱动和系统其他东西运行在同一个特权空间,一旦破坏内存,不只是网络掉线,整台机器一起拖垮,屏幕卡死,做到一半的东西全没了。微内核里,同一个驱动作为独立隔离进程运行,崩溃时只有它死掉,系统自动重启,网络闪断一下,其他东西照常工作。
所以在不允许出错的地方,Tanenbaum是对的。微内核成了汽车、飞机、医疗设备和国防系统的标配——一次崩溃可能人命关天。经过形式化验证的seL4微内核,以及运行在数百万辆车上的QNX,都证明他的观点站得住。
Linus统治了看得见的世界,Tanenbaum守住了安全领域。然后,有人把目光投向芯片内部,发现了双方都忽略的第三种结果。
操作系统之下还藏着另一层
2017年底,欧洲嵌入式Linux会议上,谷歌工程师Ronald Minnich站起来,向众人解释他在现代Intel芯片内部的发现。自2008年起,每一款Intel芯片组都内置了一个叫“管理引擎”的东西——一个独立的微型处理器,集成在芯片内部。它运行在操作系统和虚拟机监控器之下,权限等级达到工程师所说的“负三环”,位于你能接触到的所有层级之下。
操作系统看不见它,管理员密码管不到它,杀毒软件扫不到它,因为固件经过Intel密封和签名。你运行的任何东西都无法打开、修改或关闭它。在商用机型上,它甚至拥有独立的带外网络连接,只要电脑通着电,即便关机,它仍在运行。
这场25年前的架构之争,最终以所有人都没预料到的方式收场:单
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.