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


VAXUnix
1978年初,RichardFateman教授开始寻找拥有更大地址空间的机器,以继续支持他在Macsyma上的研究工作(最初开始于PDP-10) 。新发布的VAX-11/780满足了要求,并出现在预算中 。Fateman和三十个同事一同向NSF(美国国家科学基金会,译注)提出建议,并购买了一台VAX 。
最初VAX运行DEC的VMS操作系统,但系里一直在使用Unix环境,并希望继续用下去 。因此,在VAX交付之后不久,Fateman获得了一份贝尔实验室JohnReiser和TomLondon移植到VAX上的Unix——32/V 。
尽管32/V在VAX上提供了第七版Unix环境,但它没有利用VAX硬件的虚拟内存功能 。如同它在PDP-11上运行的先驱一样,它是完全基于交换的系统 。对于Berkeley的Macsyma研究组来说,没有虚拟内存意味着进程的地址空间只能局限于物理内存,在新的VAX上,他的大小是一兆字节 。
为了解决这一问题,Fateman找到了DomenicoFerrari教授,Berkeley系统学科部成员,来研究为Unix编写虚拟内存支持的可能性 。OzalpBabaoglu,Ferrari的学生之一,开始着手研究在VAX上实现页面系统,由于VAX没有引用位,他的工作遇到了难题 。
在Babaoglu接近完成他的第一个实现的时候,他找到了BillJoy,以寻求在理解错综复杂的Unix内核中遇到的困难的帮助 。Joy由于BillJoy而对这些工作产生了兴趣,并加入到将这些代码集成到32/V,以及后续的调试工作中 。
不幸的是,Berkeley只有一台VAX,同时用于系统的开发和日常工作 。因此,在圣诞节假期的几周内,富有耐心的用户群体发现他们交替地登录到了32/V和“VirtualVAX/Unix上 。他们的工作经常在后面的系统中突然地挂起,几分钟之后,32/V的登录提示再次出现 。1979年1月,绝大多数问题得到了修正,而32/V正式成为历史 。
Joy认识到32-位VAX很快就会让16-位的PDP-11果实,于是开始将2BSD的软件移植到VAX上 。当我和PeterKessler移植Pascal系统时,Joy移植了ex和vi编辑器,CShell,以及2BSD中的无数小程序 。1979年年底,完整的发行版被集成到了一起 。这个发行版包括了虚拟内存内核、标准的32/V实用程序,以及2BSD新增加的功能 。1979年12月,Joy发行了3BSD的近百份拷贝,这是Berkeley在VAX上的第一个发行版 。
贝尔实验室发行的最后一个Unix版本是32/V;其后,所有的AT&TUnix版本,从SystemIII开始,以及其后的SystemV,转而由一个强调稳定的商业发行版本的小组继续维护 。随着Unix的商业化,Bell实验室无法继续作为Unix研究的清静所在 。随着研究团体对Unix的继续修改,它发现需要一个能够制作研究性发行版本的组织 。由于对Unix的早期影响,Berkeley很快进入了原先由贝尔实验室扮演的角色 。
DARPA(美国国防部高级研究局)的支持
同时,DARPA部门的策划人的讨论对Berkeley的工作产生了重要影响 。DARPA早期成功的计划是把他们的主要研究中心连在一起,形成一个全国的计算机网络 。与此同时,他们也在这些研究中心寻找已到寿命的计算机,并且换掉它们 。然而,比巨大的替换开销还大的是把研究的软件移植到新的计算机上 。另外,由于硬件和操作系统的多样性,使得很多主机之间不能共享软件 。
选择一个单一硬件的卖主是不契合实际的,因为研究小组对多种类型的计算机需要和不能单一的依靠一个制造商 。然而,DARPA的决策者决定最好的方案在于操作系统的统一 。经过多次讨论之后,由于Unix已被证实的可移植性,被选定为操作系统的标准 。
1979年秋,BobFabry回应DARPA的关于移向Unix建议,向Berkeley提议,开发一个为DARPA团队使用的3BSD增强版本 。Fabry带着他的建议去参加DARPA图象处理的会议和约见VLSI的承包人,一同去的还有ARPAnet开发者Bolt,Beranek,以及Newman的代表 。当时还为Berkeley能否开发一个工作系统心存怀疑;然而,1979年十二月3BSD的发布打消了他们的顾虑 。

推荐阅读