Linux过时了(4)(Linus vs. Tanenbaum的中文翻译)

发信人: dsmythe@netcom.COM (Dave Smythe)
主题:回复:Linux过时了
日期: 10 Feb 92 07:08:22 GMT
组织机构: Netcom-Online Communication Services (408 241-9760 guest)
  在文章1992Feb5.145630.759@wpi.WPI.EDU中entropy@wintermute.WPI.EDU (Lawrence C. Foard) 说:
  其实我对OS理论家们的主要问题是他们是不是从来不测试他们的想法的。这些主意看上去没一个靠谱的(Mach可能部分算得上一个意外)。
  David Cheriton(在斯坦福大学任教授,并且是System V的作者)在一堂分布式系统的课上说过和这个类似的话。原话大意是这样的:
  “研究人员分两种:实现过一些东西的和还没有实现过什么的。后者一般会和你说实现某某某有142种方法,但哪个最好目前还没有定论。而前者直接就会告诉你有141种是靠不住的。”
  他实际上是在揶揄OSI的脾性,也是出于相似的原因。一方面,互联网协议只有在实际使用了一段时间后才可以被采纳,这样可以防止那些理论上很流行但永远都不可实现的东西标准化。另一方面呢,OSI的追随者们似乎总倾向于把什么都拿来标准化,包括那些脱离事实标准,还没有一个合理实现的东西。结果呢,你就会看到那些过时了的东西都籍此获得了永生,比如说半个字节的数据封包,当你的电脑接入带宽有10G以上的线路上时,这东西让高性能成了痴人说梦。

Linus Benedict Torvalds
发信人: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
主题: Apologies (was Re: LINUX is obsolete)
日期: 30 Jan 92 15:38:16 GMT
组织机构: University of Helsinki
  在文章<1992Jan29.231426.20469@klaava.Helsinki.FI> 中我说道:
  好吧,像这样的一个话题,恐怕我非回复不可。
  我的确也做了回复,口气还甚是强硬,也没有注意到得体和礼节。在这里向Andy Tanenbaum道个歉,也多谢John Nall在“事情不是这么做的”这份信里的提醒。我言语有点过激,现在也正在给Andy Tanenbaum写信(语气缓和多了)。
  希望没有人因这两点而对linux感到厌倦:它可能有点过时了(不过我仍旧觉得不是这么回事,尽管一些评价还是中肯的);它是一个愣头青写的。
  但愿这是我第一次也是最后一次在网络上的激烈反击。
Linus Torvalds

发信人: pmacdona@sanjuan (Peter MacDonald)
主题:回复:Linux过时了
日期: 1 Feb 92 02:10:06 GMT
组织机构: University of Victoria, Victoria, BC, CANADA
  考虑到我觉得在Minix和Linux的这场讨论中我属于最早发消息的,我觉得我还是有必要说说我为什么从Minix换成Linux的。我按重要程度罗列一下原因:
  1) Linux是免费的。
  2) Linux发展在一个让人满意的修改之中(因为Linus允许在发行版中添加新特性).
  第一点需要稍加解释,因为如果我已经买了一款Minix的话,对价钱我还有什么可关心的?很简单。如果OS是免费的,就会有更多的人使用它,支持它,投向它的怀抱。当我买了一个386而没买sparc(只要多花30%的钱)时,我也是这么考虑的:PC便宜了,也好用了,肯定会有更多的人用,大量优秀的、便宜的/免费的软件自然也会随之而来。
  只要之前用过Minix的人,第二点应当是相当明显的。总的来说,ast不允许对Minix做改进。这不是在挑衅,仅仅是陈述事实。ast对此有极好的也极为正当的理由,对此我也不想与其争辩。但是Minix里面有一些我完全难以忍受的缺陷,并且由于ast的这个策略,我觉得似乎再也看不到他们能够被及时解决了。这些缺陷包括:

  • 没有对386的支持没有虚拟终端
  • 没有符号链接
  • 没有select系统调用
  • 没有伪终端
  • 没有请求调页/盘交换区/共享正文段/共享库….(就是说没有有效的内存管理)
  • chmem(内 存管理真够顽固)(译者注:在可执行文件中,一般会有一个字段指定该可执行文件的初始栈的大小。在绝大多数的现代操作系统中,如果栈的使用量达到这个值会 自动扩充。Minix的栈不会扩充,所以如果程序要使用较大的栈,需要在进程初始化的时候用chmem命令来指定栈的大小。)
  • 没有X-Windows(出于同样的原因,提倡Linux和386也添加这个特性)
  • 没有TCP/IP
  • 不能够和GNU/System V集成(可移植性)

一些缺陷可以通过打补丁修复(并且你如果自己试过了的话,我就不告诉你效果有多好了),但是至少最后五项之再也没有指望了。
  最后,我曾试着把Minix伪终端补丁的代码当作一个如何在Linux下实现伪终端的教程,在此期间我产生了沮丧和困惑。所以我对Minix的段式内核或者微内核架构的评论更多的来说只是我这种情感的一种表现方式。一个很特殊的例子就是消息传递大大加剧了特性实现上的复杂程度。
  对宏内核和”传递消息”我还是有自己的观点的,但现在不想说,以前也没有过说的意思。其实我的目光很短浅的(用最小的时间/开销/困难,实现功能的最大化),所以我的观点不怎么切题,也不应该会产生误会。
  如果你不介意上面那些特性的缺失,那你可以考虑Minix,当然只要你不在乎付费。

发信人: olaf@oski.toppoint.de (Olaf Schlueter)
主题:回复:Linux过时了
日期: 7 Feb 92 11:41:44 GMT
组织机构: Toppoint Mailbox e.V
  发表一些关于Linux对比Minix的评论,这个话题也是部分由于讨论微内核和宏内核而展开的。
  如果记不住Linux和Minix是为不同应用设计的,那么我觉得两方在各自的概念上永远也不会有调和。如果你就想在一台机器上跑一个便宜,功能强劲并且可扩展的UNIX系统,并且还希望可以无痛使用标准的UNIX软件,那么Linux是你的不二选择。如果你对现代操作系统的概念感兴趣,也想学习一下一个微内核系统是怎么运作的,那么Minix则是一个更好的选择。
  这并不是一场抵制微内核的争论,不是说当下在PC上基于宏内核的UNIX实现性能更好。这仅仅意味着,UNIX这种设计更适合用宏内核实现,至少如果只在一台机器上跑是这样的。从用户的观点来看,随你OS内部用什么实现都无妨。但是在网络出现之后这一点有改观了。在宏内核的实现里,一个文件服务器将会基于ethernet成为一个用户态进程。程序如果想使用这个设备的话,它们必须得利用一些库提供的接口调用来和服务器通信。在一个微内核里,服务程序很有可能就包含在内核内部了,也用不着新的系统调用。从用户角度来看,这是有优势的,因为系统没什么改动,性能就好起来了(比如就节省了磁盘空间这一点来说)。从实现这的角度来看,微内核系统能更快的适应硬件设计的修改。
  大家也批评过了,ast拒绝minix的任何改进。由于他更感兴趣minix的教学价值,我理解他的说法——他想让代码保持的足够简洁,不想用特性使它超负荷。作为一个教学工具,minix实现成了一个微内核,尽管它跑在那些用宏内核性能会更好的硬件上。但是网络应用的领域正在发展中,像Amoeba或者Plan 9这样的现代OS不可能写成宏内核的。所以写Minix的目标就是给学生一个活生生的微内核操作系统的例子,让他们品玩任务和消息。提供给广大群众一个便宜而功能强劲的操作系统,而价格仅仅只是System Vh和BSD的十分之一,不是他的初衷。
  总结:Linux不比Minix好,反过来说也不行。他们各自都有自己好的理由。


Andy Tanenbaum
发信人: ast@cs.vu.nl (Andy Tanenbaum)
新闻组: comp.os.minix
主题:有些人不高兴了
日期: 3 Feb 92 22:46:40 GMT
组织机构: Fac. Wiskunde &h; Informatica, Vrije Universiteit, Amsterdam
  最近我一直有收到几个情绪有点不忿的小伙子的邮件(事实上是43000个读者中的10条消息,看起来有点多,其实还好)。内容集中在三个关键点上:

  1. 宏内核不比微内核差
  2. 移植性没那么重要
  3. 软件应该是自由免费的

  如果有人需要对宏内核和微内核做一场严肃认真的讨论,完全可以。我们可以在comp.os.research上开展这件事情。但是发表言论的时候别让人觉得你都不知道自己在说什么。我参与设计和实现过三个操作系统了,一个是宏内核的,两个是微内核的,也仔细研究过很多其他的系统。你们很多东西听起来就是无稽之谈(例如什么微内核不行因为你不能在用户态空间下实现分页——是不是先得把Mach已经在用户态空间实现了分页排除出去呢)。
  如果你对微内核和宏内核仍旧只是一知半解,你可以参考我和Fred Douglis、Frans Kaashoek还有John Ousterhout合写的一篇论文,里面应该有一些有用的信息,论文是1991年12月发表在USENIX journal上的,关键字是计算系统。如果你没有该期刊,在ftp.cs.vu.nl (192.31.231.42)上,你可以从amoeba/papers目录中下载该论文的tex源代码压缩包或者ps文档的压缩包。论文中给出了实际的性能测试,并且也支持了Rick Rashid's的结论——微内核和宏内核性能一样好。
  至于移植性么,几乎再难做什么严肃正式的讨论了。UNIX已经移植到了各种各样的PC上和各种各样的Cray上。写一个可移植的操作系统比写一个不可移植的并不会难多少,而在现今时代中,务必牢记写任何系统都得可移植性。当然教Linus操作系统课程的老师也提到了这一点。把操作系统的代码写的可移植又不是我在1987年发明的。
  如果谈内核的设计和可移植性,大家还是可以有点理性思维的;但若涉及到免费这个话题,这完全就是情感上的问题了。我要说在不免费的minix上近期我根本没赚到几个子儿,你肯定不会相信。一份minix的价格是169美元,但是它的许可证允许有两份拷贝,所以一份minix的实际价格根本都不到60美元。更有甚者,教授可以向他的学生们随意发放拷贝。Coherent的价格是99美元。假若你没有互联网的话,FSF为它们的”自由”软件索取的磁带烧录费用超过100美元,而且我也从来没听过有人抱怨这个。4.4 BSD的价格是800美元。我真的不觉得钱是个问题。另外,这个新闻组的绝大部分读者或许都已经有一份Minix了。
  我觉得把软件扔在ftp上让大家自由下载并不是提供广泛分发的最佳方式——我估计不是人人都赞同这个观点。因特网仍然还是一个非常小众的东西。绝大部分的计算机用户都不上网。当我从PH那里得知Minix使用最广泛的地方是德国而不是美国的时候,我就产生了这样的见解,因为有一家德国的电脑杂志一直在对Minix做大量的宣传推广。Minix在东欧,日本,以色列,南美等地方也很流行。如果没有一家公司做销售,这些人中的绝大多数肯定永远都不会用它。
  让我们回来接着谈”自由”意味着什么,是源代码可自由获取么?Conerent只有二进制文件,但Minix也像Linux一样有源代码。只要你愿意,你怎么改都成,然后也可以把你修改后的东西发到这里来。人们都这么做了个5年了,也没出过什么问题。我也免费提供了好几年的升级了。
  我觉得真正该谈的应该是别的一些东西。我一直收到各种各样的更新:虚拟内存,分页,符号链接,窗口系统。我总是回绝是因为我仍然试着让系统保持足够简洁,这样学生才可能搞懂它。你可以把这一堆东西都放到你的版本里去,而我不能。我想正是这点惹烦了那些说“Minix不自由免费”的人们,根本不是60美元的问题。
  一个很有意思的问题就是Linus是不是愿意让Linux变得“自由”到他所不能掌控。人们能够修改它(或者糟蹋它)并且拿来出售么?还记得英格兰的Minix中心收费出售带有新闻邮件的磁盘么?还记得那成百上千份以“Re: 你的软件被出售了”为标题的消息么?
  假设Fred van Kempen(译者注:Linux的重要缔造者,实现了Linux上面的网络协议栈)想把Linux接管过来,创建一份Fred的Linux和Linus的Linux,它们都很有用但是却并不相同。这可以么?当有一大群人想要以一种Linus并不喜欢的方式来发展Linux的时候,这样的挑战就来了。当然除非这样的事情真的发生了,不然就这么空说是没有意义的。如果你们偏向于Linus的哲学,而不是我的,那不管怎样追随他就是了,但不要声称你这么做是由于Linux是“自由的”。还不如说你想要个有很多花哨特性的系统。
  另外,我有话要对那些不读新闻标题的人说。Linus在芬兰而我在荷兰。我们的存在是不是使这样的一种情形发生了:自由软件,作为一个关键的产业,一直是由美国主导的,现在逐渐被来自其他国家的竞争给取代了。我们是不是很快就能看到布什总统带着Richard Stallman和Rick Rashid来访问欧洲,然后要求欧洲引入更多的美国软件了呢?
Andy Tanenbaum (ast@cs.vu.nl)

发信人: fnf@fishpond.uucp (Fred Fish)
新闻组: comp.os.minix
主题:回复:有些人不高兴了
日期: 4 Feb 92 20:57:40 GMT
组织机构: Amiga Library Distribution Services
  在文章<12667@star.cs.vu.nl>中ast@cs.vu.nl (Andy Tanenbaum) 说:
  如果谈内核的设计和可移植性,大家还是可以有点理性思维的;但若涉及到免费这个话题,这完全就是情感上的问题了。我要说在不免费的minix上近期我根本没赚到几个子儿,你肯定不会相信。一份minix的价格是169美元,但是它的许可证允许有两份拷贝,所以一份minix的实际价格根本都不到60美元。更有甚者,教授可以向他的学生们随意发放拷贝。Coherent的价格是99美元。假若你没有互联网的话,FSF为它们的”自由”软件索取的磁带烧录费用超过100美元,而且我也从来没听过有人抱怨这个。4.4 BSD的价格是800美元。我真的不觉得钱是个问题。另外,这个新闻组的绝大部分读者或许都已经有一份Minix了。
  发行版的价格不是问题。正如你所说,没有人抱怨过FSF发行版的费用太高。我个人认为,问题在于,对于那些就想要一个能用的发布版的人来说,该软件的源代码是不是只有一份是合法的。从Minix能用的时候算起,看看Minix新闻组里面的这些信息,我的印象就是没人愿意因为一堆问题去和PH交涉。
  我觉得真正该谈的应该是别的一些东西。我一直收到各种各样的更新:虚拟内存,分页,符号链接,窗口系统。我总是回绝是因为我仍然试着让系统保持足够简洁,这样学生才可能搞懂它。你可以把这一堆东西都放到你的版本里去,而我不能。我想正是这点惹烦了那些说”Minix不自由免费”的人们,根本不是60美元的问题。
  如果PH没有被授予发行上的垄断的话,所有的Minix黑客们很有可能已经组织创建了一个论坛组,来立志开发增强版的Minix了。这个组的目的可以是制作一个统一的、长期支持的Minix发行版来满足大家的升级需求。这将使得Minix可以在这么些年来按着gcc的模式发展。不错,现在是有好几个版本的gcc,但是绝大多数真正优秀的改进和缺陷修复最终都反馈到了主代码分支里——新的发布版也将依据这个而产生。这样的结果是:你可以继续牢牢控制着你的教育版minix,不想只要一个教学工具的其他们也能把他们的精力放到增强版的minix里。
  刚开始听到minix能用这个消息时,我也很兴奋。但在这股高兴劲儿过后,我却一直都没有使用它。随便去试验各种补丁,然后找出问题,最后折腾一个我想要的系统,但我的经验根本无法适用于别人——我对这样的事情毫无兴趣:这也是我不用Minix的缘故。
  当有一大群人想要以一种Linus并不喜欢的方式来发展Linux的时候,这样的挑战就来了。 当然除非这样的事情真的发生了,不然就这么空说是没有意义的。
  想按着rms/FSF(译者注:rms是自由软件之父Richard Stallman全名的缩写;FSF是自由软件基金会的缩写)不赞同的方式发展gcc,这样的人在哪里?
  想按着rms/FSF不赞同的方式发展emacs,这样的人在哪里?(译者注:事实上,在1991年,Jamie Zawinski等人因和rms的意见不和开始基于GNU Emacs 19做开发,几年后它发展成了emacs的另一个重要分支:xemacs。)
  我想说的是:自由发布但有用的软件的主要维护者们对于吸收有用的更新能保持响应,并且扮演一个中心仓库的角色来保持软件的干净整洁,那么分散的软件组们根本就不会有足够的动机另起炉灶。软件只有一份代码,主要维护者们还对大量用户的愿望不理不睬,才是这种压力(指用户们希望对软件做个新的版本,译者注)产生的诱因;而非软件的自由。
Fred

发信人: ast@cs.vu.nl (Andy Tanenbaum)
主题: Re: Unhappy campers
日期: 5 Feb 92 23:23:26 GMT
组织机构: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam
  在文章<205@fishpond.uucp> 中fnf@fishpond.uucp (Fred Fish) 说:
  如果PH没有被授予发行上的垄断的话,所有的Minix黑客们很有可能已经组织创建了一个论坛组,来立志开发增强版的Minix了。这个组的目的可以是制作一个统一的、长期支持的Minix发行版来满足大家的升级需求。这将使得Minix可以在这么些年来按着gcc的模式发展。不错,现在是有好几个版本的gcc,但是绝大多数真正优秀的改进和缺陷修复最终都反馈到了主代码分支里——新的发布版也将依据这个而产生。这样的结果是:你可以继续牢牢控制着你的教育版minix,不想只要一个教学工具的其他人们也能把他们的精力放到增强版的minix里。
  这样的事也不是没可能发生。如果有这么一组人愿意做这件事情,那再好不过。我觉得和1000个遍布世界各地的怪人协调工作就像养猫一样容易,而且这么一来连法律问题都给免了。当准备发布一个新版本时,只要做一个diff列表然后把它放在ftp上就好了。尽管用户在安装的时候要花点儿功夫,但这也算不上什么麻烦事。再说了,我有shell脚本来制作diff并且安装他们。Fred van Kempen一直在做的也就是这个。他做的不对的地方是他一直坚持要发布新版本的权利,而不是基于PH来发布diff。这让PH退出了这场游戏,这一点都不奇怪,他们根本不热衷于这个。如果人们还想这么做,请自便。
  当然,我必然不会把这些更新放到我的版本里,因此得需要花点功夫同步官方版本和和升级版本,但是我很愿意配合来最小化这件事的工作量。我也和Bruce Evans,Frans Meulenbroeks他们这么做了好久了。
  如果Linus想要控制Linux的官方版本,然后一群狂热份子们想要朝着另外的一个方向发展,同样的问题就会出现。我不认为真正的问题在与版权,而是协作。像GNU,Minix或者是Linux这样的项目,只有当一个人在负责的时候才能维持下去。在70年代结构化变成被提出来的时候,Harlan Mills就指出说程序团队应当组织的像一个手术团队一样——有一个主刀医生,剩下的是助手;而不应该像屠宰场一样——每人拿一把刀然后各宰各的。
  谁要说能让一批不在一起的人们给同一块复杂的代码编程并且还能防止彻底的混乱,那么他肯定从来没有管理过一个软件项目。
  想按着rms/FSF不赞同的方式发展gcc,这样的人在哪里?
  人们一般不会对一个编译器产生太大的兴趣。给定一个待编译语言(比如说,ANSI C标准),不会有太多的余地来让人们发明新的特性。而一个操作系统有无限的机会让人们来实现自己喜欢的特性。
Andy Tanenbaum (ast@cs.vu.nl)

发信人: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
主题:回复:有些人不高兴了
日期: 6 Feb 92 10:33:31 GMT
组织机构: University of Helsinki
  在文章12746@star.cs.vu.nl中ast@cs.vu.nl (Andy Tanenbaum) 说:
  如果Linus想要控制Linux的官方版本,然后一群狂热份子们想要朝着另外的一个方向发展,同样的问题就会出现。
  这是我第二次受到ast的谴责,他对与自己可能都没有看过的内核妄加评论还感觉良好。至少他没有询问过我,甚至也没有在alt.os.linux上看过相关的东西。也正是如此,没有人把他的那些猜测当真过,对”控制”这个问题,我用两个词(三个?)来表明我的立场:
  我不会的(译者注:原文是I won’t)。
  一直以来,我对Linux实际保持的控制是我比别人更了解它,并且我也不断在把我的更新放到ftp上。它们实际上已经成了官方的发布,一段时间内我也不认为这个状态会发生改变:不是我觉得我有更多的权利来做这些事情,而是因为我听到的抱怨还不够多,要找到别人对内核所发生的变化和我有一样的感觉,也得等到几个月之后了。(呃,或许现在已经有人选了:tytso对0.10版本做了很大的改动,别人也在其上面做了修改)
  事实上,我已经试着在创建一些“linux内核”的邮件列表来决定新版本的发布,因为我料想我无法完全支持所有必须添加的特性:如SCSI等,因为我没有硬件来做测试。响应现在仍是寥寥无几:大家似乎还不急着来改动内核。(嗯,有个人觉得我应当寻求捐赠,这样我就能支持那些特性了——如果我身边有谁有这样的硬件,那我非常感激也非常乐意接受这样的捐赠)。
  版权的唯一能阻止(我也觉得这极为合理)的是,别人从中赚钱还不提供源代码……这或许不是个逻辑上的问题,但是如果这样的事情发生了我将会觉得非常糟糕:别人把我的成果拿去卖钱,而我却是特意提供给人们让大家来用它折腾一个自己的项目的。我想大多数人也能体会到我的想法。
  另一方面,如果Fred van Kempen想做个超级版的Linux,我热烈欢迎。他从这个上赚不到多少钱(只有发布费用),我觉得把Linux分裂开了也不算什么好主意,但我仍然不会想去阻止他,即便版权允许我这么做。
  我不认为真正的问题在与版权,而是协作。像GNU,Minix或者是Linux这样的项目,只有当一个人在负责的时候才能维持下去。
  是的,合作是个大问题,我觉得Linux在短期内也离不了我这个”主刀医生”,部分原因也就是大家都知道这个问题。但是版权也的确是个问题:如果人们觉得我工作做得不好,他们可以自己来。这就更gcc一样。而Minix的版权则意味着如果有人觉得他可以做一个更好的minix,他要么必须得制作补丁(不管你怎么说,这都没你吹的那么好),要么必须的另起炉灶从头做起(因为你的不同意见还得遭受攻击)。
  发行补丁没什么意思:我还没为任何一个版本的linux做过cdiff呢(我希望这点发生改变:补丁很快就会变得比内核小得多,同时制作补丁和完整的版本是个好主意——注意我也仍旧会让完整的版本可用)。补丁摞补丁很不切实际,尤其是人们可能自己来做修改。
  想按着rms/FSF不赞同的方式发展gcc,这样的人在哪里?
  人们一般不会对一个编译器产生太大的兴趣。给定一个待编译语言(比如说,ANSI C标准),不会有太多的余地来让人们发明新的特性。而一个操作系统有无限的机会让人们来实现自己喜欢的特性。
  额,还有GNU Emacs呢……不要告诉我人们对文本编辑器没有兴趣。
Linus

发信人: dmiller@acg.uucp (David Miller)
主题:关于“Linux过时了”和后续的回复邮件
日期: 3 Feb 92 01:03:46 GMT
组织机构: Applied Computer Group
  作为一个对操作系统设计感兴趣的看客,我实在忍不下去了。请注意到我对Minix和Linux都没什么使用经验:这么多年来我都是用Unix的。
  首先,看完这么多信件后的评论:
  写Minix是为了作为AST课堂上的一个教学工具,而非一个商用操作系统。让它成为源代码自由开放的UNIX,永远都不会成为其设计因素。我认为它也是操作系统设计上的一种阐释:怎样设计一个微内核,让分离的进程来尽可能的覆盖所需的功能。
  写Linux对Linus而言基本是一个练习——怎样给386家族编程。设计一个终极的操作系统不是他的目标。提供一个自由可用的平台运行各种各样广泛应用的自由软件是他的一个考虑因素,这一点似乎完成的很好。
  任何人对这两个系统的指责,说那不是他们想要的系统,都是不恰当的。无论如何,你的电脑不管跑的是哪个系统,你都可以非常自由的去做Linus和Andrew做过的事情:写一个你自己的系统。
  一方面,我为Linux喝彩,他在开发Linux上付出了相当大的努力,还决定把它免费开放给每个人。让minix变成付费软件,我也为AST所做的努力喝彩——对于那些抱怨minix不免费的人,我真的很是不解。如果你能花时间研究minix和一个基础的计算机系统,150美元真的不多的——而且你还能随它买到一本书。
  其次,有一些问题要问教授:
  Minix的定位是”真正的操作系统”呢还是一个教学工具呢?作为一个教学工具它是一个杰作。作为一个真正的操作系统有些地方它表现的还是太糙了(为什么没有malloc(),仅仅是由于它是为初学者们准备的么?)。读你的书还有在这儿看了这些邮件给我的感觉就是你想要个工具来教学,然后很多其他人是把minix当成一个可以品玩的付费操作系统。他们一直在尝试把大量的特性栓到minix上让它成为一个”真正的操作系统”,不过他们都不太成功。
  为什么要把OS的基础功能,如内存管理,挪到用户进程中呢?所有类UNIX领域的优秀专家们都知道,成功的手段是分而治之,目标应该是把问题简化成容易控制而定义明确的模块。如果把操作系统的基础部分分离到用户进程中,然后通过引入其他的技术(消息递送,复杂的信号机制)加剧系统的复杂程度,那么我们有达到简化设计与实现的目的了么?
  我赞同UNIX系列的前景不容乐观——特别是SVR4。或许人们想要的那些不管是功能上的还是移植性上的特性都可以通过另外的一个东西来提供:运行时可加载模块/库。微内核仍然可以负责底层的资源管理,其所调用的函数过程在相应的模块/库中。这些模块可以是线程或用户态进程。(我觉得,操作系统黑客们可以在这里纠正一些我的错误)
  我的观点没什么价值——回我邮件也不必拘谨。在计算机科学上我没有接受过正式的先进训练,所以我真是出于不懂才问这些问题的。我怀疑这个组里很多人脑子中都萦绕着这些问题,我只不过先拿出来问了。
David

发信人: michael@gandalf.informatik.rwth-aachen.de (Michael Haardt)
主题: 1.6.17总结以及为什么我认为ast是对的
日期: 6 Feb 92 20:07:25 GMT
组织机构: Gandalf - a 386-20 machine
  我先总结一下在近期对Minix能有哪些东西值得期待,然后在解释一下为什么我认为AST是正确的。
  前段时间,我咨询了一下minix下一个版本(1.6.17)的一些细节。我得到了一些回复,但都是从1.6.16的用户那里来的。以下信息均非来自官方,也有可能不正确,但这已经是目前我所知的一切。如果有错误希望指正。

  • 1.6.17补丁将和PH1.5的发行版相关。
  • 头文件清除了。
  • 两种文件系统可以混用。
  • 信号控制重新做了实现,和POSIX兼容。消除了旧缺陷。
  • ANSI编译器(我猜是从Transmediar那儿来的)以二进制发布,更新了程序库。
  • 不再支持Amoeba的网络协议。
  • 修正了times函数的返回结果。实现了termios,但更多的来说只不过是一个技巧。我不知道实现是在内核里呢,还是在现在的模拟器上。
  • 新的文件系统没有文档。有了新的fsck命令和mkfs命令,不了解详细情况。
  • 有了ANSI编译器,浮点数得以更好的支持。
  • 调度策略做了改进,但仍旧不如Kai-Uwe Bloem的实现。

  我询问这些事情的实际情况,然后开始据此决定等这场大讨论结束了我是升级到1.6.17呢还是升级成Linux呢。最后我做了决定:月底就换成Linux,然后从我的温盘上把Minix卸载掉。Linux能跑我所需的所有软件,现在我是在一个打满补丁的Minix上跑的。我想这估计要折腾我两个月。我说一下我做这个决定的原因:

  • Minix根本就么有一个可以借其打补丁的“当前”发行版,也没有人知道1.6.17什么时候会出来。
  • 现在的运行库有几个缺陷,我听说现在都还没有修复。不会再有一个新的编译器,16位的用户们还得接着用满是缺陷的ACK(Amsterdam Compiler Kit,阿姆斯特丹编译套件)。
  • 1.6.17应该会支持更多POSIX,但是一个完整的伪终端仍旧没有。

  我怀疑现在仍旧还有为16位用户做的大量开发。
  我想几个月之后我将停止维护minix的软件列表。哪有人还愿意用它?除非Linux能在我机器上顺畅的运行,不然Origami(译者注:Minix下运行的一款老式的文本编辑器)每一次升级后仍旧跑在16位的Minix上。
  我认为,ast对他Minix所做的决定是正确的。我读了这次论战,忍不住要说我喜欢Minix的发展方向,现在在这个方向上又有Linux了。Minix的优点有:

  • 你没有硬盘就能玩它,甚至都能编译程序。几年前我就这么干过。
  • 它很小,你不用了解多少就能获得一个跑的很爽的小系统。
  • 还有一本书。不错,虽然只有1.3版本的,但是书本绝大多数内容仍旧有用。

  Minix是非宏内核系统的一个示例。不妨叫做微内核,或者是一个为克服愚蠢硬件而做的精巧软件:它证明了一种理念。
  在我眼中,对于UNIX和系统编程入门来说,它是一个非常优美的系统。我绝大多数的UNIX知识都是从Minix上学到的。从UNIX下的C语言编程到系统管理(还有安全漏洞),Minix一直随着我成长:1.5.xx版的升级,虚拟终端,邮件和新闻,文本处理,交叉编译等等。我不再需要一个教学系统了,我需要一个更复杂的,特性更多的UNIX,现在有一个了:Linux。
  再回到当年,v7的出现诠释了艺术二字。然后有了Minix,支持其绝大多数特性。一两年后,POSIX变成了你现在熟悉的样子。大家满是期待,希望Minix将会再次支持其绝大多数特性,而且还会有一本书,让想跑一个小型系统的大家有的可玩,有东西可做试验。
  停止责骂吧,Minix和Linux,道不同不相为谋。一个是教学工具(我也认为是非常棒的一个),而另一个是为真正的黑客准备的真正的UNIX。
Michael

posted on 2013-01-11 16:45  码农逐梦者  阅读(676)  评论(0编辑  收藏  举报

导航