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


当RobGurwitzreleased在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版本开始,PaulineSchwartz被雇来管理发行工作 。
1983年6月,BobFabry把CSRG管理权交给DomenicoFerrari和SusanGrahamturned,并开始度假,以解放他4年来疯狂的生活节奏 。Leffler继续完成系统,实现新的信号机制,增加了网络支持,重做了单独的输入/输出系统以简化安装程序,整合来自RobertElz的磁盘配额机制,更新所有的文档,修复了自4.1c版以来的bug 。在1983年8月,4.2BSD发布 。
当4.2BSD发布不久,Leffler离开Berkeley去了Lucasfilm,他的职务被MikeKarels取代 。Karels早期发行2.9BSDPDP的经验,给他的新工作提供理想的背景 。在我完成博士学位之后,1984年12月,我作为全职工作人员参加了CSRG,同Karels一起工作 。
4.2BSD的流行让人印象深刻 。在发行的18个月内,签发了1000多份站点许可 。随后,又发行大量4.2BSD的发行版,可以说其数量超过以前发行版数量的总和 。大部份Unix厂商移植4.2BSD系统到他们的硬件上,而不是移植AT&T的商用SystemV 。因为SystemV既没有网络也没有Berkley快速文件系统 。BSD版的Unix在商用领域占优势的地位长达几年 。4.2BSD的改进逐渐被集成到SystemV中,厂商逐渐又转而移植SystemV,不过,后来的BSD开发成果仍然继续被SystemV引进 。
4.3BSD
4.1BSD发行不久,很快招致多方面批评 。大部份人抱怨系统运行太慢 。这个问题并不令人惊讶,因为新的功能还没有被优化,许多内核中的数据结构和新的功能不能协调工作 。Karels和我的第一年完全花费优化系统上 。

推荐阅读