萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 1024|回复: 0

[译文]一些关于"谁写了Linux"的混乱的注解

[复制链接]
发表于 2004-6-18 16:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
微软枪手有够无聊,我早说过枪手要敬业,看来要时时讲,日日讲,月月讲,年年讲。


[译文]一些关于"谁写了Linux"的混乱的注解
贴出者为 macolex
macolex写著 '
出处:
http://www.linuxforum.net/forum/ ... amp;Board=linuxnews
译者: yzhuang at Linuxforum.net

************************************

译者的话

本文翻译谨代表译者本人观点,对翻译中出现的错误向Andy和读者表示深深的歉意

刘弋、庄彦

************************************

一些关于"谁写了Linux"的混乱的注解 1.5版
 

背景
 
最近一段日子,由于Alexis de Tocqueville Institution 出版的一本新书,unix的历史、以及它种类繁多的儿子辈、孙子辈的产品又成为了新闻。由于我本人部分参与了这段历史,因此我觉得有义务出面澄清,还历史本来面目,改正某些极为严重的错误。但是,首先我要提供一些背景信息。
Alexis de Tocqueville Institution的总裁/校长肯·布朗是今年3月初联系上了我。他说他正在写一本有关unix历史的书,希望能采访我。由于我写过15本书,而且曾经以多种方式参与这段历史,因此我回复说愿意效劳。这些年来,有许多人出于许多原因采访过我,我还在荷兰、美国的电视台、电台,还有多种报章杂志上露过面,因此我并没有把这件事太放在心上。
2004年3月23日,布朗飞到阿姆斯特丹来采访我。很明显,他来欧洲的唯一一个目标就是找我。但是采访从一开始就显得古怪。谈话内容大致意思如下:
 

AST: "Alexis de Tocqueville Institution是一个什么机构?"
KB: 我们进行公共政策研究。
AST: 一个智库,像兰德那样的?
KB: 差不多吧
AST: 你们做些什么呢?
KB: 出版报告和书籍
AST: 谁提供的资金?
KB: 我们有多个资金渠道。
AST: SCO 是不是提供者之一?这事是不是有关SCO 的诉讼案?
KB: 我们有多个资金渠道。
AST: 微软是提供者之一吗?
KB:我们有多个资金渠道。


他对他来此的目的和资金提供者的身份非常忌讳,闪烁其辞。不断地说他只是要写一本关于unix历史的书。我问他对Peter Salus的书《 UNIX的25年(A Quarter Century of UNIX)》有什么看法。他居然从来没有听过这本书的名字!我的意思是,如果你打算写一本关于UNIX历史的书,还长途飞行3000里去采访一个有关的人,你是不是至少应该登陆亚马逊网站,在搜索栏里输入“UNIX历史”搜一搜呢?如果这样做的话,Peter Salus的书将是第一个跳出来的链接。只要28美元(如果你刷卡正确的话还可以免邮费),你就可以掌握极多的素材,而且可以免去长途飞行之苦。接下来我很快就发现,布朗并不是最差的(抽屉里最锋利的小刀),但是我已经开始怀疑了。作为一个有经验的作者,我很清楚一个作者至少应该关注可能有些别的什么书会对自己的书造成竞争。但是他并不在乎。


UNIX 和我
 
布朗想要就UNIX的历史采访我,对此我并不觉得奇怪。比他更差劲的人也曾要求采访我。上个世纪70年代晚期和80年代早期,我在贝尔实验室的UNIX小组(1127部)呆了好几个夏天。我认识Ken Thompson, Dennis Ritchie,以及参与开发UNIX的其他人。我在Rob Pike和Al Aho的家里住过很长一段时间。Dennis Ritchie, Steve Johnson和 Peter Weinberger, 还有其他一些人也在我位于阿姆斯特丹的家里住过。我带的三个博士生也在贝尔实验室的UNIX小组工作过,其中一个现在已经成为了永久员工。

但是很奇怪的是,我在贝尔实验室的时候兴趣并不在于操作系统,虽然我此前已经写了一个操作系统,还发表了一篇相关的论文(参见"Software - Practice & Experience," vol. 2, pp. 109-119, 1973)那时我一门心思都放在编译器上,因为我当时是阿姆斯特丹编译器套件的主任设计师。 (参见Commun. of the ACM, vol. 26, pp. 654-660, Sept. 1983.). 我在那里曾和Steve Johnson讨论编译器,与Greg Chesson讨论关于网络的问题,与Lorinda Cherry写了一些工具程序,与Brian Kernighan合作写书,等等。我还和在那里的其他“外国人”成了朋友,其中就有Bjarne Stroustrup, 是他后来设计实现了C++。

简而言之,我和初始的UNIX的开发没有关系。我熟识所有参与开发的人,也很了解这段历史。此外,我和贝尔实验室的UNIX小组的联系也不是什么秘密。我甚至还在我的一本书《计算机网络》第一版的序言里对他们表示感谢,谢谢他们大家邀请我去做夏季访问学者。令人惊叹的是,布朗居然对这些都一无所知。他在开始他的小任务之前没有好好准备功课。


MINIX和我

多年之后,我已经在教授一门操作系统的课程,还用上了John Lion基于UNIX第六版的书。AT&T决定禁止教授UNIX Internals之后,我决定自己写一套UNIX,甩开所有AT&T的代码和限制,这样我就可以进行教学。但是激发我的灵感并不是我在贝尔实验室的经历,尽管一个人写出一个类UNIX操作系统的经历(Ken Thompson在PDP-7上写了UNICS)告诉我这是可行的.我真正的灵感是我在伯克利读博士时Butler Lampson在教授操作系统课程时的一句无心之语。当时Lampson刚说完当时新锐的CTSS操作系统,接下来,他用他独特的方式说道:“这里有没有人不能在一个月内写出CTSS?”没有人举手。我由此得出结论,只有大笨蛋才不能在一个月之内写出一个操作系统。我前文引用过的论文是我在伯克利时在 Bill Benson的帮助下写出来的一个操作系统。写这个玩意儿花了比一个月多得多的时间,但是我可没有Butler那么聪明。没有人能和他一样聪明。

我开始动手写一个最简版的UNIX克隆,也就是MINIX,而且是一个人单干。我用的代码百分之百没有用到 AT&T的知识产权,所有源代码都在1987年出版的《操作系统:设计和实现 (Operating Systems: Design and Implementation)》一书的附录中公开出来。我后来与Al Woodhull合作重写了这本书并发行了第二版。MINIX 2.0 甚至与POSIX标准兼容. 两个版本内用了几百页的文本大篇幅详细描述代码。一个包含十张软盘的包含所有二进制与源代码的软件包可以以$69的价格从Prentice Hall获得。

尽管这不是"免费啤酒"意义上的免费,它的确是"自由言论"意义上的自由软件,因为所有的源代码都可以材料工本费的价格获得。但是即使"自由言论"也不能完全自由--想象如果有人在一个拥挤的剧场大叫"失火"会有什么后果. 还不要忘了(如果你年纪够大的话),到1987年,大学颁发的UNIX教育许可证要300美元,大学的商业许可证要28000美元,公司的商业许可证就更加贵了。正是MINIX首次将"类UNIX"的源代码的成本降到了学生能够负担的水平。Prentice Hall并不怎么喜欢卖软件。他们感兴趣的是卖书。因此对拷贝MINIX的政策相当宽大自由。但是如果一家公司想要拿它去出售借以赚大把钞票,PH就要抽版税了。因此,PH的律师们用一大堆许可协议把MINIX武装起来,但是人们从来没有真正试图对大学或者学生实施这些东西。在1987年,用互联网传播这么大量的代码是不可行的,即使对那些使用高速调制解调器(例如1200 bps)的人来说也是如此。在互联网传播变得可行之后,我说服了PH放弃他们的商业企图(其实他们的企图非常适度),他们允许我把源代码放在我的网页上供人免费下载。直到今天这些东西仍然在我的网页上。
发行才几个月,MINIX就成为了一种受到类似宗教崇拜的东西。出现了它自己的USENET新闻组, comp.os.minix, 有4万名定户。许多人增加新的实用程序,以多种方式改进kernel,但是最初的kernel只是我一个人的劳动成果。许多人开始为了讨论如果改进它而纠缠我。除了 USENET newsgroup上的大量信息之外,我每天还要收到200封e-mails (而当时只有很少一部分人有e-mail),信里说得不外乎“我需要伪终端功能,而且周五之前就要。” 等等。我的回答一般来说都是快捷而直接:“不行”

我如此频繁地拒绝,原因是每个人都在试图将MINIX变成达到了产品质量的UNIX,而我不想让它复杂化,这样它对我的目的,也就是教授学生就毫无用处了。我同时也希望GNU或者Berkeley的UNIX能很快填补上适合免费的产品质量的UNIX系统,因此我自己没有往这方面努力。结果是, GNU OS 落到极为尴尬的地步(虽然写出了许多UNIX的实用工具),而Berkeley UNIX 则被一桩官司缠身。经过是这样的,它的设计师成立了一家公司BSDI来进行销售,他们选择1-800-ITS UNIX作为电话号码。AT&T觉得此举构成了版权侵犯,于是起诉了他们。这家公司花了好几年才解决掉官司。这样就担搁了研制Free BSD的时间,而恰好给予Linux发展的时间。如果没有这场官司,毫无疑问作为稳定成熟且有大量追随者的BSD将会填补需要一个强大免费的UNIX克隆的空白.

Ken Brown和我

现在,Ken Brown出现在我面前,开始问我问题。我很快判断出,他对UNIX的历史一无所知,也从来没有听说过Salus 的书,对BSD和AT&T的官司也并不知情。于是,我开始向他讲述这段历史,但是他打断了我,说他对法律层面的事情更感兴趣。我说:“哦,你的意思是指Dennis Ritchie为'steuid位'打的4135240专利官司吗?”然后我又说:“那不成问题。贝尔实验室贡献了这个专利给公共领域”也就是在此时,我才发现,第一,他从来没有听说过这个专利,第二,他不知道"贡献专利"是什么意思(例如,将其放在公共领域),第三,他真的对知识产权法一无所知。他被专利、版权、商标搞得头晕脑胀。我很没有必要地问他是不是律师,但是很明显他不是,他也承认了这一点。在这种时候,我还以为他可能是SCO派来的间谍。不过如果真是这样的话,SCO的钱可真算是白花了。

他想接着谈所有权问题,但是又极力避免告诉我他的真实目的,因此他的问题组织得并不好。最后他问我,我是否认为Linux是Linus写的。我回答说,据我所知,Linus独立完成了整个kernel,但是在它发行之后其他人开始对最初很原始的kernel进行改进,在系统里加入了新的软件——基本上和 MINIX的发展模式相同。于是他开始集中在这个问题上,提出一些诸如此类的问题:“他难道不是未经许可偷窃了部分的MINIX吗?”我告诉他MINIX 已经在许多方面对Linux产生了巨大影响,从文件系统的布局,到源代码目录树的命名,但是我并不认为Linux使用了我的代码。Linus 一开始也使用了MINIX 作为开发平台,但是这么做并没有什么不妥。他又问我我是否反对这种做法,我说不,我不反对,人们有权力自由使用它,只要不是用于商业用途。后来MINIX 又在Berkeley 的执照下再次发行,这样就令其对所有用途都是免费的了。现在它还在教育界和第三世界得到广泛运用,数以百万计的人都很愉快地使用着废弃的386电脑,而 MINIX在386上跑得刚刚合适。上述的MINIX主页每星期还有1000多次的点击率。

最后,布朗开始提尖锐的问题。他以不同的形式不断提问,问一个人怎么能够独自一个人写出一个操作系统。他根本就不相信这种事是有可能的。我只得告诉他更多的历史。sigh. 首先,Ken Thompson 自己一个人给PDP-7写了 UNICS。后来UNICS被移动到PDP-11上,并被改写成C, 然后Dennis Ritchie 加入了,但是他主要致力于设计 C语言,写C编译器,写 I/O 系统和 设备驱动. Ken 几乎是一个人写了所有的kernel.

1983年,一家叫Mark Williams的公司(现在 这家公司已经退出市场 ) 生产和出售非常好的叫做'Coherent'的UNIX克隆. 大多数的工作都是由滑铁卢大学的3名学生做的,他们是Dave Conroy, Randall Howard,和 Johann George.他们花了2年时间。但是他们不但写出了kernel, 还写出了 C compiler, shell和所有的UNIX工具. 这比仅仅写一个kernel的工作量要大得多了。Kernel差不多需要一个人年的工作.

1983年, Ric Holt 出版了一本书(现在已经不再重印)基于TUNIS系统, 也是一个类UNIX系统.这肯定也是一个重写的系统,因为TUNIS基于一个全新的语言(并发Euclid).

后来Doug Comer写了XINU. 尽管这不是一个类UNIX, 特也是一个可比较的系统.

还有, Gary Kildall 一个人写了CP/M,Tim Paterson写了MS-DOS. 尽管这些80年代早期系统不是UNIX的克隆,这些健壮流行的系统都是个人独立完成的。

在Linus开始Linux之前,五个人或小组已经独立的实现了UNIX或者类似的系统,他们是Thompson, Coherent, Holt, Comer和我. 所有这些都是完全合法,没有人偷了什么. 回顾这个历史, 很难说一个人无法完成一个有着Linux复杂度的系统,他的原始大小与MINIX v1.0相当.

当然在科学领域人们总是从他们的前辈的基础上开展工作.甚至Ken Thompson也不是第一个. 在写UNIX之前, Ken 已经为在MIT的MULTICS (MULTiplexed Information and Computing Service,多路复用信息计算服务) 系统工作. 事实上, UNIX原名是UNICS, 一个玩笑来自Brian Kernighan,基于UNIplexed Information and Computing Service(单路复用信息计算服务), 因为原始的PDP-7上的UNIX仅能支持一个用户-Ken. 在EUNUCHS取消MULTICS之后有太多此类双关语,名字就改为UNIX. 但甚至连MULTICS也不是第一个. 在他之前是前面提到的CTSS, 由MIT的同一个小组设计.

因此Linus当然不可能在真空中突然变出Linux的源代码. 他有我的书,运行过MINIX, 而且毫无疑问的知道这段历史(我的书中有描述). 但是代码是他的.证据是他的糟糕的设计. MINIX 是一个好的模块化设计的微内核系统, 文件系统和内存管理器都是用户空间进程. 这使得系统比单内核系统更清晰更稳定且易于调试和维护。代价是小部分性能,尽管 4.77 MHz 的8088 也能在五秒内启动 (对比Windows在一台500倍快的硬件上需要一分钟). 一个商业成功的微内核的例子是ONX. 对比微内核下写文件系统和内存管理器的便捷,Linus 完全用汇编重写整个大的单内核 :-( . 第一个版本的Linux像一个时间机器,他倒推到比他桌面上已有的系统(MINIX)还要糟。当然这孩子那时不知道什么东西更好(尽管如果他在课堂上多花些时间他就会知道), 但是产生一个与他开始工作的系统本质上不同的的系统是一个很好的重设计的证据。我不认为它能拷贝UNIX因为他没有能力访问UNIX的源代码,除了 Lion得书。 这本书包含早期的UNIX,与Linux源代码非常不类似。

我的结论是,Ken Brown根本就不明白自己谈论的话题。我对于他的研究方法也产生了严重疑问。和我谈过话之后,他在我们大学的大厅里四处巡游,向随意撞上的学生提问。有些根本不是主要的信息源。

我所知道的写了,或者重写UNIX的全部作者都是独立进行工作,没有任何人从别人那里偷窃了什么。布朗所说的人们花了30年制造一个类UNIX系统的失败努力是由于无理专利原因. 六个不同的人独立的作出过类UNIX系统. 科学上独立成功的案例对于信任一个新的想法很重要, 并且我认为Linus在这点上做得很不够. Ken和Dennis是真正的英雄. 但Linus在这点上的不足不是他不是Linux作者的理由。他没有写CTTS, MULTICS和UNIX,但他写了Linux. 我认为Brown欠了我们许多人一个道歉.

Linus和我

你们有些人可能会对我为Linus辩护而觉得奇怪。毕竟,几年前我们曾有一场相当公开的“辩论”。我在此最关心的是得出真相,不要把任何事情都推在西弗吉尼亚洲某个10几岁的小姑娘身上。而且,Linus和我不是“敌人”,或者类似的什么。我和他有一面之交,他看起来是一个友好、聪明的人。我唯一的遗憾就是,他没有在微内核的MINIX的基础上开发Linux. 随着现在Windows种种安全问题的出现,每个人都越发明显地认识到,小的微内核,例如 MINIX,比大型的单内核系统起来是更好的操作系统基础。Linux已经成为了比Windows更少受到的攻击的牺牲品,这是因为第一,它事实上是更安全的,但是第二,大多数攻击者认为攻击会获得更大的荣耀 ,因此 Windows就受到了更多的攻击。一如我20年前一样,我仍然热忱地相信,让软件更加安全、可靠、快速的唯一方法就是让它规模更小。对特性开战.

如果你一直读到这里,我感谢你付出的时间。我在此授权将该网页进行镜像,前提是必须使用本文原始、不经简化的版本。

Andy Tanenbaum, 20 May 2004


本次翻译获得Andy Tanenbaum的授权
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+1, 2025-2-12 08:55 , Processed in 0.347514 second(s), 19 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表