热门问题
时间线
聊天
视角
塔能鲍姆-托瓦兹辩论
来自维基百科,自由的百科全书
Remove ads
塔能鲍姆-托瓦兹辩论(英语:Tanenbaum–Torvalds debate),于1992年在Usenet讨论群组(新闻组)comp.os.minix[1]上发起的一场辩论,主角为Minix创作者安德鲁·斯图尔特·塔能鲍姆与Linux核心原始作者林纳斯·托瓦兹,讨论的主题在于作业系统内核架构的选择。塔能鲍姆认为,以微内核架构设计的作业系统,在理论上,比宏内核架构更加优越,主张Linux应该以微内核架构来进行重新设计。但是林纳斯·托瓦兹以开发实务上的观点展开反击,陈述Linux选择宏内核架构进行开发的理由,并比较Minix与Linux的效能差异。稍后,在Linux社群中的一些著名骇客也加入讨论,如彼得·麦唐纳、大卫·米勒、曹子德。
这场辩论有时被视为仅是一场网路论战或口水战,然而这场辩论影响了Linux核心与Minix的设计走向,展示了软体工程师之间对于作业系统架构的不同思考角度,因此得到许多重视[2]。在辩论结束后,Linux社群并没有因为这场辩论而改变作法,以微核心架构来重新设计Linux核心,但是在稍后改善了可移植性,扩展到x86之外的平台,同时引进了许多微核心架构的设计想法来改进其程式码,例如采用了可载入核心模组。塔能鲍姆教授也仍然坚持以微核心架构来设计Minix,在1997年与2004年分别发表了两个新版本,完全不收费的释出Minix,并改善了Minix经常被批评的效能问题。
Remove ads
历史背景
1969年,Unix在AT&T的贝尔实验室被研发出来,快速散布到美国各大学,并衍生出许多变种,被称为类UNIX,其中以加州柏克莱大学研发的BSD套件最为著名。1979年,Version 7 Unix发布,在此时,AT&T开始意识到Unix的商业价值,开始研发商用版本。1982年,AT&T释出第一个商用版UNIX,UNIX System III。AT&T声称自己拥有Unix的著作权,Unix的原始码被当成商业秘密,不再对外发布。AT&T不再授权大学可以免费使用UNIX,对使用Unix的公司及个人发起诉讼,引起一系列法律争议。UNIX受到法律争议影响,不再能自由散布与使用。
为了教学上的方便,塔能鲍姆模仿Version 7 Unix风格,自行创作了一个无版权争议的作业系统,Minix,让学生可以在大学中继续学习发展作业系统,并阅读到完整原始码。这是一个小型的类Unix作业系统,原始码附属在塔能鲍姆写作的教科书中,在1987年首度释出。原始码大小为三个磁碟片,原始码完整公开,在购买到磁片后,读者可以自行编译与安装,也可以自由阅读与修改。
林纳斯·托瓦兹在芬兰就读大学时,其祖父赠送他一台Intel 80386个人电脑。他不满其附赠的DOS系统效能太差,在阅读了塔能鲍姆教授的教科书后,他决定根据教科书上的内容,自行创作自己的作业系统。1991年,林纳斯·托瓦兹在Usenet新闻组comp.os.minix
登载帖子[3],向社群释出了他自行创作的作业系统内核完整原始码,也就是日后的Linux。
肯·汤普逊及贝尔实验室的工程师们,在研发Unix时,采用宏内核架构。在这个架构下,作业系统内核是一个单一的二进位执行档,运行在核心空间中。肯·汤普逊选择这个架构的原因,是鉴于其前身Multics的开发失败经验,使他决定选择这种较为单纯与直觉的架构,让系统得到较好的效能。但随著Unix的扩展以及中央处理器的快速发展,Unix在移植到新的平台时,遭遇到很大困难。学界中开始出现新的想法,在贝尔实验室的后续计画Plan 9与卡内基梅隆大学的Mach等研究的促发之下,出现了微内核架构。
微内核将核心功能模组化,划分成几个独立的行程,各自运行,这些行程被称为服务(service)。所有的服务行程,都运行在不同的位址空间。只有需要绝对特权的行程,才能在具特权的执行模式下运行,其馀的行程则在使用者空间运行。这种架构提高了程式码的可移植性与系统的安全性,在学术界,一直得到很高的声誉。Minix采用微核心架构,反应了当时学术界的风潮。除了Minix之外,GNU计划发展的作业系统核心GNU Hurd,也朝向微核心架构来研发。但微内核架构,设计过于精巧,使得程式码研发的速度非常缓慢,系统效能长期无法提升。当时数个采用微内核架构的研究计划,都受此拖累,没有突破性的成果。
相较而言,Linux直接继承了Unix的传统,选择宏内核架构。在1992年发生的这场辩论,展示了两种架构的支持者,他们各别的想法。这场辩论也展示了软体工程师,在为软体专案选择架构,所可能出现的各种思考角度。
Remove ads
辩论过程



虽然初步的辩论显得相对温和,当事人双方仅仅平淡了讨论了有关内核设计的话题。但随着每一轮的发帖和参与者的增加,辩论开始逐步变得详细和复杂,甚至跨足于内核设计之外的其它领域,如"哪种微处理器架构将在未来战胜其它架构",但其中也包括了一些意气之争的言词辩论[4]。除了塔能鲍姆和托瓦兹,Linux开发社群中一些著名骇客也加入辩论,包括彼得·麦唐纳,第一个Linux发行版的创建者;大卫·米勒,Linux内核的核心开发者之一;和曹子德,北美洲第一个Linux内核开发者[5]。
第一条有关这场辩论的记录,在1992年1月29日,塔能鲍姆在 comp.os.Minix 上发表了他的批评。在题为《Linux 是过时的》(Linux is obsolete)的帖子中,塔能鲍姆指出宏内核在整体设计上是有害的。虽然他最初并没有加入高深的技术细节,来解释他认为微内核更好的原因,但他也表明,这关乎可移植性,Linux内核的耦合度太高,完全为Intel 80386处理器设计,但处理器架构的进化很快。不应该在某个特定架构上开发作业系统,所有的作业系统都应该具备可以被移植到其他处理器平台的能力。他提到,在1991年仍然以宏内核来设计作业系统,是“回到1970年代的巨大退步”(a giant step back into the 1970s),现代的作业系统,应该像GNU Hurd一样采用微核心架构。
托瓦兹在一天之后反击,他首先攻击Minix在设计上有缺陷(缺少多执行绪是一个主要例子)。托瓦兹说,他用自己私人的时间来开发,完全没有获利,免费将程式码贡献出去(当时塔能鲍姆的Minix原始码,仍然要购买才能取得),因此,对于Minix设计不良,塔能鲍姆不能用“这只是兴趣”来为来辩护。托瓦兹说,从哲学及美学的观点出发,微核心的确是一个比较好的架构,[6]但是采用微核心架构的GNU Hurd根本没有如期被成功开发出来,所以他才要开发Linux。托瓦兹强调,作业系统核心主要的功能都倚靠硬体特性,所以内核本身不需要过度具备可移植性,让高阶的软体应用程序接口(API)具备可移植性才是更重要的。以Linux来跟Minix比较,移植应用程式到Linux上是更容易的。Linux内核采用宏内核架构,是因为它能够简化核心设计,这是一个权衡下的结果(An acceptable trade-off)。托瓦兹进一步说,可移植性是那些写不出新程式的人才需要的(Portability is for people who cannot write new programs)。Linux一开始针对Intel 80386架构来开发,一部份的理由是为了托瓦兹自己买的电脑就是80386,这正好可以让他对80386架构了解更多。Linux一开始就是准备自己使用的,如果想要移植到别的平台,程式码都是开放的,想要的人可以自己做。
对于托瓦兹对于可移植性的回应,塔能鲍姆辩称到Minix系统的局限性与他的教授身份有关 —— 系统的硬件需求必须足够低,才能得以让大多数学生普遍低配的机器上使用 —— 一台基于Intel 8088的计算机,有时连硬盘都没有[7];而Linux在这时,却针对的是Intel 80386平台,显然是更加强大(和昂贵)的处理器。塔能鲍姆同时明确表示,“在大概一年之前,就有两个版本(的Minix),其中一个是PC版(360k软盘),另一个是286/386(1.2M软盘)。PC版本销量是286/386版本的两倍”。他补充,虽然 Linux是免费的,但这并不能成为他学生的选择,学生也负担不起运行它所需昂贵硬件,而Minix在一台“没有硬盘的4.77 MHz PC”上就能使用。他同时表示专门为廉价的硬件设计操作系统,日后将导致可移植性方面的许多问题。不顾Minix无法完全支持386硬体的事实,塔能鲍姆辩称,既然x86架构未来将被其它架构所取代,他并不需要去关心和解决这个问题,“当然,5年之后情况自然会有所不同,但至少每个人都将在他们200 MIPS的64M SPARC station-5上运行自由的GNU系统。”他说,因为处理器的进化速度太快,而Linux内核实在太依赖386架构,最终将会因为硬件架构的过时而失败。
Usenet上另一位用户凯文·布朗(Kevin Brown),认为Linux选择在386处理器平台上开发,这是一个清醒的抉择,而不是缺乏对操作系统设计知识所致的,塔能鲍姆不应该对于Linux绑定在386架构上而颇有微词。他表示“Linux明确的设计目标就是从386硬件特性中受益。你明确的论点到底是什么?不同的目标自然会产生和你不同的设计。”[8]
托瓦兹在稍后放低姿态,希望能够停止这场口水战。他在论坛上承认他对于塔能鲍姆一开始文章中的内容反应过度,而且已经向塔能鲍姆教授寄出私人电子邮件以表示歉意.[9]。虽然他仍继续回应了几篇文章,但都是针对技术方面的讨论。
在这场辩论结束之后,塔能鲍姆和托瓦兹皆表示他们之间没有因此而产生个人恩怨,塔能鲍姆表示,不应该因为他们两个人之间对于技术观点不同,就认为他们两人之间存在恶意对抗的情绪。[2]
后续发展
这个论题和最初的完整辩论被发表在欧莱礼媒体在1999年出版的《开源软件:开源革命之声》(Open Sources: Voices from the Open Source Revolution)书中的附录,书中认为这是“那时世上人们思考操作系统设计的方式”的例子之一。[2]
根据辩论参与者凯文·布朗(Kevin Brown)的说法,386处理器之所以成为了当时大行其道的芯片,这是因那时486晶片主要使用在高端计算机中,286几乎过时,而且万维网还没有广泛使用。塔能鲍姆反对Linux的论据之一,是Linux过于依赖x86指令集,他本人事后将此视作错误。[1]现在Linux则已经具备可移植性良好的代码库,并且被移植到多种处理器架构上。
另一个在讨论中反复出现的话题,是Linux和Minix的替代品,比如GNU或者4.4BSD。塔能鲍姆的第一则贴文中,称赞GNU,不同于Linux,是一个“现代”操作系统。[1]在他的第二则贴文中,他提到“5 年之后每个人都将在他们 200 MIPS 的 64M SPARC station-5上运行自由的GNU 系统”。[7]许多辩论者都不同意GNU是一个合适的替代品。凯文·布朗认为它就是个虚幻的雾件,相较而言,Linux更可能从x86平台中受益,成为一个常见而且通用的系统。早期Linux开发者曹子德说,微内核范式确实有不少优点,但Linux看得见摸得着;反观GNU,无数人在Hurd花了比托瓦兹在Linux上多的多的时间,然而却仍没有完成。[10]托瓦兹对GNU的努力表示尊重,但也认为它的开发速度太慢,他说:“如果GNU内核早在去年春天完成了,我压根不会开始我的项目 —— 但事实是它至今尚未完成。”[11]
4.4BSD-Lite由于AT&T的Unix系统实验室与伯克利软件公司的纠纷,导致Unix系统实验室诉伯克利软件公司案这桩官司缠身, 陷入UNIX知识产权归属的争夺之中,而导致大大阻碍了BSD的开发进程,直到两年之后,它们的法律争议依然悬而未决。由于Linux并没有法律争议,基于它的系统都获得了不少的支持。1994年一月,USL和BSDi签订了和解条约,4.4BSD最终于同年六月发布(而最终版本在1995年发布,许多基于它的自由衍生版由此延续至今,包括FreeBSD、OpenBSD和NetBSD)。
Remove ads
2004年3月23日,肯尼斯·布朗(Kenneth Brown),亚历西斯·托克维尔中心(Alexis de Tocqueville Institution)的主席,采访了塔能鲍姆,这是为布朗即将出版的一本名为《异见出版物:关于开源代码的“根源”问题》的书而做准备。此书声称Linux起初从Minix非法拷贝程序。塔能鲍姆发表了一份态度强烈的反驳声明,以捍卫托瓦兹对Linux的贡献与成就,反驳抄袭的说法[12]。在这份声明中,塔能鲍姆指出:
我希望通过澄清一些误解和错误来结束这件事。首先,我真的没有对托瓦兹发火。这是实话。他也并没有对我发火。我并不认为托瓦兹遮掩了我的才智,我不是那种怨天尤人的失败者。Minix仅仅是我的一个兴趣爱好。我是一位教授。我讲课、搞研究、写书、参加讨论会,我做着任何一位教授都会做的事情。我热爱我的职业,学生和大学。[……] 我编写 Minix,为的是希望我的学生拥有一次亲自动手研究操作系统的经历。在AT&T禁止利用John Lions的书本讲课后,我才决定亲自动手编写一个类Unix系统让学生们摆弄。我并没有企图替代GNU/Hurd或者Berkeley Unix。天知道,我说这话的次数已经足够多了。我只是希望向我学生,以及其它学生们展示,如何通过现代的技术重新编写出一个类UNIX系统。不少其他人都希望拥有一个拥有琳琅满目特性的自由UNIX产品,并且希望让Minix变得如此。我曾一段时间陷入这种想法之中,但当Linux出世,我实际上对于能够做回教授的工作而感到欣慰。[……] 托瓦兹看起来做了一份十分出色的工作,我希望他能在未来取得更加显著的成就。
编写Minix固然有趣,但我并没有真正将其视作我所作的最重要的事情,反而更加使人有些分散精力。我所作最重要的事情是培养了一群非常出色的学生,特别是博士生。列表详见我的个人主页。他们完成了不少漂亮的事。我像一只会下蛋的母鸡一样自豪。广泛的说,托瓦兹也可以算作我的一个学生。我为他而骄傲。教授都对他们学生能成就更大辉煌感到欣喜。[13]
Remove ads
2006年,塔能鲍姆在 《计算机》(Computer)杂志发表题为《我们能让操作系统可靠和安全吗?》(Can We Make Operating Systems Reliable and Secure?)的文章后,这个话题被再次提起[14]。尽管塔能鲍姆本人提到,他并不是想借这篇文章重启内核设计的论战[15],但是这篇文章本身和Slashdot技术网站上附加的 1992 年论战的归档[16]共同使战火重燃。
通过一个在线论坛,托瓦兹重新反驳了塔能鲍姆的论点[17],几个技术新闻网站随即开始对其进行报道。[18]这使研究者乔纳森·夏皮罗(Jonathan Shapiro)回应称,大多数经过实际检验的安全可靠的计算机系统,都使用更近似于微内核的模式设计。[19]
参考资料
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads