|
回顾UNIX操作系统的二十年发展历史 |
|
|
|
|
|
您查看的文章来源于http://www.oklinux.cn 早期历史
Thompson和Ritchie在1973年Purdue大学召开的操作系统原理研讨会上,发表了第一篇关于UNIX的论文。那时伯克利分校的Bob Fabry教授也在场,他立刻对UNIX产生兴趣,并得到一份拷贝,准备在伯克利做实验。
当时,伯克利分校仅有几台大型主机做批处理工作。因此,伯克利的计算机科学系、数学系和统计系联合订购了一台能够运行当时最新的第四版UNIX的 PDP - 11/45。1974年1月,UNIX第四版磁带交付学校使用,并被研究生Keith Standiford安装到这台机器上。
那时,有太多系统需要Thompson维护,但在Purdue大学的Thompson还是没有直接参与伯克利UNIX系统的安装。由于在伯克利安装的系统出现几次奇怪的系统崩溃,这样一来就需要他这样的专家来解决问题。因为伯克利仅有一台300波特的声频偶合式调制解调器,且没有应答功能, Thompson不得不先通过电话通知在机房Standiford,让他将电话线插入调制解调器中,通过这种方法,Thompson得以在新泽西州对崩溃的系统进行远程调试、除错。
系统多次崩溃是由于硬盘控制器不能进行重叠性搜索引起的。相对于普通的文档搜索不同,伯克利的PDP- 11/45是Thompson遇到的第一批在同一个控制器上有两个硬盘的计算机。Thompson的远程除错也是伯克利和贝尔实验室合作的一个例子。贝尔实验室积极肯干的研究人员乐于助人,同时也和伯克利分享工作成果,这在很大程度上促进伯克利软件的改进工作。
尽管Unix很快能够运行,并且比较稳定。但计算机系、数学系和统计系开始出现矛盾——数学系和统计系想要运行DEC的RSTS系统。争论之后,他们达成协议:每个系可以每班运行8小时的计算机系统;Unix可以在运行RSTS系统16小时后,再运行8小时。为公平起见,运行的时间段为每天轮换。因此,第一天Unix运行从上午 8点到下午4点,然后是第二天的下午4点到午夜,而后是第三天的凌晨到上午8点。尽管有这样离奇的时间安排,参加学习操作系统课程的学生仍然喜欢在 Unix而不是批处理机上做项目。
早期的发行版本
此间,对Pascal编译器的错误恢复工作的兴趣使得这一工作被引入了对系统的需求。1977年初, Joy完成了“伯克利发行版(Berkeley Software Distribution)”。这个发行版本包括Pascal系统,以及存放在在Pascal源码的晦涩的子目录下的ex编辑器。又过了一年,作为发行组的秘书的Joy,发放了大约三十份免费的系统拷贝。
随着提供指向显示缓冲区指针功能的ADM-3a终端的出现,Joy最终完成了屏幕编辑器vi,给Berkeley带来了全屏幕编辑器。他很快发现自己处在进退两难的境地。在学校,经费不足是常有的事,旧的设备根本就没有替换掉。他决定放弃进行代码优化和修改几个终端的支持工作,转而通过使用一个小的解释器去重画屏幕,籍此来改善屏幕管理。这个解释器通过描述终端的特性来驱动,这最终导致了termcap的产生。
到1978年中期,软件的发行版已经开始过时,需要修改。对于Pascal系统,日益增长的用户群体反馈了很多意见,根据反馈的意见修改后的系统更加稳定,同时也修改为两遍扫描,使其可以在PDP-11/34上运行,修改的结果定名为“伯克利发行第二版(Second Berkeley Software Distribution)”很快被缩写为2BSD,它包括了增强的Pascal系统,vi编辑器和几个终端的termcap在内。Bill Joy再次独自作了发行版软件的集成,答复用户的电话,并且把客户的反馈也集中在系统中。一年后,又发行了75份系统。然而,接下来的一年Joy转向另一个项目,而2BSD发布还在进行。其最终版本为2.11BSD,是一个至今仍运行在世界各个角落的几百台PDP-11上的完整的系统。
VAX Unix
1978年初,Richard Fateman教授开始寻找拥有更大地址空间的机器,以继续支持他在Macsyma上的研究工作(最初开始于PDP-10)。新发布的VAX- 11/780满足了要求,并出现在预算中。Fateman和三十个同事一同向NSF(美国国家科学基金会,译注)提出建议,并购买了一台VAX。
最初VAX运行DEC的VMS操作系统,但系里一直在使用Unix环境,并希望继续用下去。因此,在VAX交付之后不久,Fateman获得了一份贝尔实验室John Reiser和Tom London移植到VAX上的Unix——32/V。
尽管32/V在VAX上提供了第七版Unix环境,但它没有利用VAX硬件的虚拟内存功能。如同它在PDP-11上运行的先驱一样,它是完全基于交换的系统。对于Berkeley的Macsyma研究组来说,没有虚拟内存意味着进程的地址空间只能局限于物理内存,在新的VAX上,他的大小是一兆字节。
为了解决这一问题,Fateman找到了Domenico Ferrari教授,Berkeley系统学科部成员,来研究为Unix编写虚拟内存支持的可能性。Ozalp Babaoglu,Ferrari的学生之一,开始着手研究在VAX上实现页面系统,由于VAX没有引用位,他的工作遇到了难题。
在Babaoglu接近完成他的第一个实现的时候,他找到了Bill Joy,以寻求在理解错综复杂的Unix内核中遇到的困难的帮助。Joy由于Bill Joy而对这些工作产生了兴趣,并加入到将这些代码集成到32/V,以及后续的调试工作中。
不幸的是,Berkeley只有一台VAX,同时用于系统的开发和日常工作。因此,在圣诞节假期的几周内,富有耐心的用户群体发现他们交替地登录到了 32/V和“Virtual VAX/Unix”上。他们的工作经常在后面的系统中突然地挂起,几分钟之后,32/V的登录提示再次出现。1979年1月,绝大多数问题得到了修正,而 32/V正式成为历史。
Joy认识到32-位VAX很快就会让16-位的PDP-11果实,于是开始将2BSD的软件移植到VAX上。当我和Peter Kessler移植Pascal系统时,Joy移植了ex和vi编辑器,C Shell,以及2BSD中的无数小程序。1979年年底,完整的发行版被集成到了一起。这个发行版包括了虚拟内存内核、标准的32/V实用程序,以及 2BSD新增加的功能。1979年12月,Joy发行了3BSD的近百份拷贝,这是Berkeley在VAX上的第一个发行版。
贝尔实验室发行的最后一个Unix版本是32/V;其后,所有的AT&T Unix版本,从System III开始,以及其后的System V,转而由一个强调稳定的商业发行版本的小组继续维护。随着Unix的商业化,Bell实验室无法继续作为Unix研究的清静所在。随着研究团体对 Unix的继续修改,它发现需要一个能够制作研究性发行版本的组织。由于对Unix的早期影响,Berkeley很快进入了原先由贝尔实验室扮演的角色。
DARPA(美国国防部高级研究局)的支持
同时,DARPA部门的策划人的讨论对Berkeley的工作产生了重要影响。DARPA早期成功的计划是把他们的主要研究中心连在一起,形成一个全国的计算机网络。与此同时,他们也在这些研究中心寻找已到寿命的计算机,并且换掉它们。然而,比巨大的替换开销还大的是把研究的软件移植到新的计算机上。另外,由于硬件和操作系统的多样性,使得很多主机之间不能共享软件。
选择一个单一硬件的卖主是不契合实际的,因为研究小组对多种类型的计算机需要和不能单一的依靠一个制造商。然而,DARPA的决策者决定最好的方案在于操作系统的统一。经过多次讨论之后,由于Unix已被证实的可移植性,被选定为操作系统的标准。
1979年秋,Bob Fabry回应DARPA的关于移向Unix建议,向Berkeley提议,开发一个为DARPA团队使用的3BSD增强版本。Fabry 带着他的建议去参加DARPA图象处理的会议和约见VLSI的承包人,一同去的还有ARPAnet开发者Bolt,Beranek,以及Newman的代表。当时还为Berkeley能否开发一个工作系统心存怀疑;然而,1979年十二月3BSD的发布打消了他们的顾虑。
由于3BSD 版本实现了他的承诺,3BSD声誉也随着大大提高,因此Bob Fabry和DARPA签定了一份在1980四月生效的长约18个月的合同。在这份合同的赞助下,Bob Fabry组建了名为“计算机系统研究小组”的组织,或者简写为CSRG。他很快雇佣了Laura Tong处理项目的管理。Fabry把他的注意力转向寻找一位能够管理软件开发的项目经理。Fabry以为已经通过Ph.D.资格考试的Joy,宁愿完成他的学位也不肯当软件开发的职位,然而Joy又有了其他的计划。三月上旬的一个晚上,Joy达电话往Fabry家里打电话,表示对掌管Unix进一步发展感兴趣。尽管这个提议使 Fabry很吃惊,但Fabry梢加考虑就答应了。
项目进展的的很顺利。Tong建立一套发行系统,能够使从Joy早先发行版处理大量的定单。Fabry开始同AT&T的Bob Guffy以及加洲大学的律师合作,制定使用者需要同意使用Unix的条款。Joy将Jim Kulp作业控制机制,还有自动重启动功能,1K-块文件系统,并且支持新型VAX-11/750。到了1980年十月,优化后的系统4BSD发布,包括 Pascal编译器、Franz的Lisp系统,和增强的邮件处理系统。在它9个月的生命周期中,大约卖出150份系统拷贝。许可的管理是通过以公共机构为单位的,而不是以每台机器来收费的;因此这个版本运行在500台以上的机器上。
随着发行版本大量增加,Berkeley Unix的可见性增加。几个评论评论家开始评论BSD。斯坦福研究院的工作人员撰写了一篇主要关于VMS和Berkeley Unix运行测试结果的论文,这些测试结果表明VAX运行Unix的几个严重问题。Joy看到这篇论文,立刻把未来的计划搁置了几个月,着手调整内核。几周以后,他基于Kashtan的测试结果回复一篇文章,表明Unix可以很好地运行在VMS机器上。
4BSD不断发行的同时,仍然处于细微的调整阶段。增加Robert Elz的自动配置代码之后的系统,于1981年6月发布,这个版本称为4.1BSD。在它两年多的生存周期内,大约发行了400份。原计划称为5BSD版本,然而,AT&T反对此事,宣称顾客可能会把它和商业Unix——System V混淆。所以,为了解决这个争端,Berkeley答应在未来版本命名计划中,主版本号停留在4BSD,只增加次版本号。
4.2BSD
随着4.1BSD版本的发行,很多关于性能的疑虑被解决。DARPA非常满意合同的结果。以致于又同Berkeley签定一份两年期的合同,而且这次的基金很多,大约是原来的5倍。这部分资金一半用来资助Unix项目,余下的分给计算机科学系的几个其他研究员。合同要求,主要工作放在系统研究上,以便 DARPA的研究人员可以很好地进行他们的工作。
由于DARPA团队的要求,确定了新的工作,并且开始据此对系统进改进。特别地,新系统希望包含能够适应新的硬盘技术的快速文件系统、支持GB级的进程地址空间、提供灵活的交互处理通讯机制,以支持在分布式系统下的研究工作,并且集成网络支持,这样能够使运行新系统的机器都很容易地连到 ARPAnet。
为了帮助确定新系统的方案,Duane Adams作为DARPA在Berkeley合同的监督人,组织了“筹划指导委员会”协助指导设计工作,确保研究DARPA的要求得到满足。这个委员会在 1981年4月到1983年6月,共开了两次大会。委员会包括Bob Fabry、Bill Joy,和Berkeley的Sam Leffler、Alan Nemeth和Bolt的Rob Gurwitz、Beranek和Newman,贝尔实验室的Dennis Ritchie,斯坦福(Stanford)大学的Keith Lantz、卡内基梅隆(Carnegie-Mellon)大学的Rick Rashid,麻省理工(MIT)的Bert Halstead、Information Sciences Institute的Dan Lynch、Duane Adams和DARPA的Bob Baker,以及加洲大学洛杉矶分校的Jerry Popek。1984年初,这些会议被由更多人参加的主题讨论会取代。
共3页: 上一页 1 [2] [3] 下一页 |
上一篇:在Linux操作系统下一些不常用的进程信息 下一篇:Linux下VPN服务器的配置方法介绍
|
相关文档 |
|
|
发表评论 |
|
|
|
|