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

早期历史
Thompson和RitchIE在1973年Purdue大学召开的操作系统原理研讨会上,发表了第一篇关于Unix的论文 。那时伯克利分校的BobFabry教授也在场,他立刻对UNIX产生兴趣,并得到一份拷贝,准备在伯克利做实验 。
当时,伯克利分校仅有几台大型主机做批处理工作 。因此,伯克利的计算机科学系、数学系和统计系联合订购了一台能够运行当时最新的第四版UNIX的PDP-11/45 。1974年1月,UNIX第四版磁带交付学校使用,并被研究生KeithStandiford安装到这台机器上 。
那时,有太多系统需要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完成了“伯克利发行版(BerkeleySoftwareDistribution) 。这个发行版本包括Pascal系统,以及存放在在Pascal源码的晦涩的子目录下的ex编辑器 。又过了一年,作为发行组的秘书的Joy,发放了大约三十份免费的系统拷贝 。
随着提供指向显示缓冲区指针功能的ADM-3a终端的出现,Joy最终完成了屏幕编辑器vi,给Berkeley带来了全屏幕编辑器 。他很快发现自己处在进退两难的境地 。在学校,经费不足是常有的事,旧的设备根本就没有替换掉 。他决定放弃进行代码优化和修改几个终端的支持工作,转而通过使用一个小的解释器去重画屏幕,籍此来改善屏幕管理 。这个解释器通过描述终端的特性来驱动,这最终导致了termcap的产生 。
到1978年中期,软件的发行版已经开始过时,需要修改 。对于Pascal系统,日益增长的用户群体反馈了很多意见,根据反馈的意见修改后的系统更加稳定,同时也修改为两遍扫描,使其可以在PDP-11/34上运行,修改的结果定名为“伯克利发行第二版(SecondBerkeleySoftwareDistribution)很快被缩写为2BSD,它包括了增强的Pascal系统,vi编辑器和几个终端的termcap在内 。BillJoy再次独自作了发行版软件的集成,答复用户的电话,并且把客户的反馈也集中在系统中 。一年后,又发行了75份系统 。然而,接下来的一年Joy转向另一个项目,而2BSD发布还在进行 。其最终版本为2.11BSD,是一个至今仍运行在世界各个角落的几百台PDP-11上的完整的系统 。

推荐阅读