|
回顾UNIX操作系统的二十年发展历史 |
|
![]() |
|
|
|
您查看的文章来源于http://www.oklinux.cn
1981年7月,在新系统中建议包含特性的原始文档交给“筹划指导委员会”和其他不在Berkeley的人那里,引起了很长时间的讨论。这年夏天,我成为 CSRG的成员,并且参与实现新的文件系统。整个夏天,Joy一直集中设计进程间通讯机制的原型。1981年秋,Sam Leffler也作为全职人员加入CSRG,同Bill Joy一起工作。
当Rob Gurwitz released在Berkeley发布早期的TCP/IP协议,而Joy则把它集成到系统中并优化了其性能。在这项工作中,Joy和Leffler发现新系统不应该只针对DARPA的标准网络协议,还应该支持更多协议。因此,他们重新设计了软件的内部结构,精炼了多个网络协议的接口,以便这些网络协议可以同时使用。
随着内部结构重建的完成,和TCP/IP被集成到IPC功能的原型中,还写了几个简单的程序,让本地用户可以存取远程资源。它们是熟知的rcp、 rsh、 rlogin和rwho。它们是作为暂时性工具设计的,以至日后可以被其他更合理的工具替换(所以在命令前加了一个”r”)。这个系统,称为4.1a,初次发行是在1982年4月,且仅供内部用户使用,也没有期望它广泛应用,然而它却加速人们对4.2 版本的渴望。
系统4.1a在它完成之前就过时了。但是,用户提供反馈有价值的信息,被用来建立一个修订计划“4.2BSD系统使用手册”。这份文档在1982年2月发行,其中包含将在4.2BSD中实现的为系统调用功能提供的接口的简要描述。
4.1a开发的同时,我完成了新文件系统。在1982年6月,我把它完整地集成到4.1a的内核中。新系统称为4.1b,只运行在 Berkeley 选定的几台用于开发的机器上。Joy感觉一个面临较大改动的系统连内部发行都应尽量避免,特别是这个变动需要将每台机器的文件系统转储并恢复,以完成 4.1a 到 4.1b的转换。在证实新的文件系统能够稳定运行之后,Leffler立即着手进行增加有与新的文件系统有关的系统调用的工作,而Joy主要完成交互通讯机制的修订。
1982年暮春,Joy宣布他将参加Sun公司。夏天过后,他将工作分开,一部分时间为Sun工作,另一部分时间为 Berkeley工作,他花费大量时间对交互通讯机制进行修订,而且重新组织Unix核心以减小对机器的依赖问题。Joy离开后,Leffler接管整个项目的开发工作。开发的最后截止期限已经被确定,而且Berkeley已经答应DARPA团队1983年春天完成发行版本。由于时间紧迫,对剩余的工作进行了完成评估,而且而且设置优先级别。特别地,增强交互通讯机制和虚拟内存中最复杂的部份都降低优先级(后来完全被搁置)。同时,由于Unix团体的期望高涨,Berkeley认为在最终版本发行之前,有必要分布一个过渡版本。这个系统被称为4.1c,于1983年4月发布;许多厂商准备将4.2BSD移植到他们的硬件上。从4.1c版本开始,Pauline Schwartz被雇来管理发行工作。
1983年6月,Bob Fabry把CSRG管理权交给Domenico Ferrari和Susan Grahamturned,并开始度假,以解放他4年来疯狂的生活节奏。Leffler继续完成系统,实现新的信号机制,增加了网络支持,重做了单独的输入/输出系统以简化安装程序,整合来自Robert Elz的磁盘配额机制,更新所有的文档,修复了自4.1c版以来的bug。在1983年8月,4.2BSD发布。
当4.2BSD发布不久,Leffler离开Berkeley去了Lucasfilm,他的职务被Mike Karels取代。Karels早期发行2.9BSD PDP的经验,给他的新工作提供理想的背景。在我完成博士学位之后,1984年12月,我作为全职工作人员参加了CSRG,同Karels一起工作。
4.2BSD的流行让人印象深刻。在发行的18个月内,签发了1000多份站点许可。随后,又发行大量4.2BSD的发行版,可以说其数量超过以前发行版数量的总和。大部份Unix厂商移植4.2BSD系统到他们的硬件上,而不是移植AT&T的商用System V。因为System V既没有网络也没有Berkley快速文件系统。BSD版的Unix在商用领域占优势的地位长达几年。4.2BSD的改进逐渐被集成到System V中,厂商逐渐又转而移植System V,不过,后来的BSD开发成果仍然继续被System V引进。
4.3BSD
4.1BSD发行不久,很快招致多方面批评。大部份人抱怨系统运行太慢。这个问题 并不令人惊讶,因为新的功能还没有被优化,许多内核中的数据结构和新的功能不能协调工作。Karels和我的第一年完全花费优化系统上。
在花费二年时间调整系统和精炼网络代码之后, 我们如预期的1985年夏天,6月在Usenix会议上宣布了发布4.3BSD的消息。然而我们的发行计划被BBN突然中止。他们及时地指出我们从未用他们的最终网络代码修改4.2BSD,相反,我们仍然在使用他们早先给我们的初始模型,这个模型其后经过了大量的修改。他们向DARPA抱怨,预想的情况应该是Berkeley实现接口,BBN实现协议。因此Berkeley应该在4.3BSD中用BBN设计的TCP/IP代码。
Mike Karels得到了BBN的代码,而且做了自从代码被传递到Berkeley以后的工作进行了评估。他决定最好的计划是把BBN代码的优秀思想结合到 Berkeley代码基础中,但是不要替换Berkeley代码。理由有Berkeley代码已经在4.2BSD中广泛地测试和进行了很大改进。然而,折中处理,他提出两者都包括在4.3BSD的发行版本中,让用户在内核挑选使用那种代码。
检讨Mike Karels的决定之后,DARPA确定发行二个代码基础,那会导致不必要的互操作问题,决定只发布一套代码。为了要决定使用哪中代码作为基础,他们把两者都给Ballistics研究实验室Mike Muuse,作为第三方评估者。在一月评估之后,报告Berkeley代码更有效率,而BBN代码处理阻塞比较好。更重要的一点,Berkeley 代码在各种测试中都能很好地通过,BBN代码在高负荷条件下会菪机。DARPA最后决定,4.3BSD应该使用Berkeley代码基矗
修改一新的4.3BSD最后在1986年6月发布。就向预期的一样,它平息了多数用户的抱怨,就像4.1BSD平息了多数用户对4BSD的抱怨一样。虽然大部份厂商已经开始转向System V,但是4.3BSD的大部份成果还是集成到他们的系统之内,特别是网络子系统。
在1986 年10月,Keith Bostic参加了CSRG。他的任务是完成在他的早先工作之上一个项目,要把4.3BSD移植到PDP-11。虽然Karels和我都认为它不太可能,在VAX编译成250 Kbytes的系统,并且能满足PDP-11的64 KB的地址空间的要求。但是,我们还是同意Bostic 可以实现他的这有设想。令我们吃惊的是,移植非常成功,他在PDP-11上使用一组复杂的叠加集合和附加处理。其结果是2.11BSD的发布。该系统由 Casey Leedom和Bostic完成,在1998年仍然在一些PDP-11远行这个系统。
同时,显然易见VAX体系已经达成生命的晚年,是该开始考虑在其他的机器上运行流行的BSD时候了。Computer Consoles公司这时制造了一种叫做Power 6/32的新体系的计算机。不幸的是,当公司决定改变它的策略方向的时候,该体系不被支持。然而,他们确实为CSRG提供了能够完成我们工作的一些机器。于是Bill Joy开始,从整个BSD内核中分离依赖机器的那部分代码。这个工作的结果是,1988年6月发布4.3BSD-Tahoe。Tahoe来自 Computer Consoles开发过程中所有的一个名字,他们原本打算将它用于Power 6/32机器上。虽然Power 6/32 机器生命周期很短,但它对BSD向其他机器移植,分离内核代码工作有宝贵的价值。
共3页: 上一页 [1] 2 [3] 下一页 |
上一篇:在Linux操作系统下一些不常用的进程信息 下一篇:Linux下VPN服务器的配置方法介绍
![](/images/xg.gif) |
相关文档 |
|
![](/images/xg.gif) |
发表评论 |
|
|
|
|