UNIX操作系统的二十年发展历史( 五 )


在花费二年时间调整系统和精炼网络代码之后,我们如预期的1985年夏天,6月在Usenix会议上宣布了发布4.3BSD的消息 。然而我们的发行计划被BBN突然中止 。他们及时地指出我们从未用他们的最终网络代码修改4.2BSD,相反,我们仍然在使用他们早先给我们的初始模型,这个模型其后经过了大量的修改 。他们向DARPA抱怨,预想的情况应该是Berkeley实现接口,BBN实现协议 。因此Berkeley应该在4.3BSD中用BBN设计的TCP/IP代码 。
MikeKarels得到了BBN的代码,而且做了自从代码被传递到Berkeley以后的工作进行了评估 。他决定最好的计划是把BBN代码的优秀思想结合到Berkeley代码基础中,但是不要替换Berkeley代码 。理由有Berkeley代码已经在4.2BSD中广泛地测试和进行了很大改进 。然而,折中处理,他提出两者都包括在4.3BSD的发行版本中,让用户在内核挑选使用那种代码 。
检讨MikeKarels的决定之后,DARPA确定发行二个代码基础,那会导致不必要的互操作问题,决定只发布一套代码 。为了要决定使用哪中代码作为基础,他们把两者都给Ballistics研究实验室MikeMuuse,作为第三方评估者 。在一月评估之后,报告Berkeley代码更有效率,而BBN代码处理阻塞比较好 。更重要的一点,Berkeley代码在各种测试中都能很好地通过,BBN代码在高负荷条件下会菪机 。DARPA最后决定,4.3BSD应该使用Berkeley代码基矗
修改一新的4.3BSD最后在1986年6月发布 。就向预期的一样,它平息了多数用户的抱怨,就像4.1BSD平息了多数用户对4BSD的抱怨一样 。虽然大部份厂商已经开始转向SystemV,但是4.3BSD的大部份成果还是集成到他们的系统之内,特别是网络子系统 。
在1986年10月,KeithBostic参加了CSRG 。他的任务是完成在他的早先工作之上一个项目,要把4.3BSD移植到PDP-11 。虽然Karels和我都认为它不太可能,在VAX编译成250Kbytes的系统,并且能满足PDP-11的64KB的地址空间的要求 。但是,我们还是同意Bostic可以实现他的这有设想 。令我们吃惊的是,移植非常成功,他在PDP-11上使用一组复杂的叠加集合和附加处理 。其结果是2.11BSD的发布 。该系统由CaseyLeedom和Bostic完成,在1998年仍然在一些PDP-11远行这个系统 。
同时,显然易见VAX体系已经达成生命的晚年,是该开始考虑在其他的机器上运行流行的BSD时候了 。ComputerConsoles公司这时制造了一种叫做Power6/32的新体系的计算机 。不幸的是,当公司决定改变它的策略方向的时候,该体系不被支持 。然而,他们确实为CSRG提供了能够完成我们工作的一些机器 。于是BillJoy开始,从整个BSD内核中分离依赖机器的那部分代码 。这个工作的结果是,1988年6月发布4.3BSD-Tahoe 。Tahoe来自ComputerConsoles开发过程中所有的一个名字,他们原本打算将它用于Power6/32机器上 。虽然Power6/32机器生命周期很短,但它对BSD向其他机器移植,分离内核代码工作有宝贵的价值 。
Networking,Release1
4.3BSD-Tahoe的发布时,所有的BSD用户必须事先得到AT&T的一份源代码的许可,因为Berkeley从来没有只发行二进的BSD系统;发行版本完全包含系统每个部分的原代码 。Unix系统和BSD系统的历史显示原代码具有强大的威力 。用户不是消极地使用系统,而是积极地修改臭虫,改良性能和完善功能,甚至完全地增加新的特征 。
随着AT&T原代码许可费用逐渐增加,那些想要用BSD代码为PC市场开发仅以TCP/IP为基础的网络产品的厂商,发现为每个二进制版本付费是不可能的 。因此,他们要求Berkeley把网络代码和实用工具分离出来,在许可条款下,提供该他们,而不再需要AT&T的原代码许可 。显然易见,TCP/IP网络代码不包含在32/V中,完全由Berkeley和它的支持者开发 。BSD早期的网络代码和支持工具在1989年6月开始发布,即Networking,Release1,首次由Berkeley发行的可自由再发布的代码 。

推荐阅读