分类:
2008-04-29 08:59:08
当理解了Unix具备不同的多种具体实现后你也许会认为Unix有时真象一个自己和自己作斗争的操作系统。比如,Unix并不是由一家独立的公司在一个大的市场里驱动用户完成的东西,这和微软的Windows操作系统的开发办法是不同的。另外一方面Unix也不是由那些到处摸骗的黑客人员发明出来的,它产生于各种研究学院里的博学研究者的集体智慧。Unix最主要的贡献者是接受过高级教育的数学家和计算机科学家,这些人大都来自被认为是最强的工业技术研究中心-Bell实验室。
学院的研究者和实验室的开发工作人员之间的思想交换和优势互补,使得双方在课题及项目研究上获得各自的收益。理解了Unix和学院研究社团之间的关系也就能了解Unix系统发明者的背景和当时大学和Bell实验室的交互关系的历史。
[Unix所有的一切是如何开始的]
Unix一切源自于Bell实验室,这个为AT&T(美国电话和电报)公司设立的研究型实验室。AT&T被认为是我们这个时代最大和最有实力的公司之一。它显然对开发和销售计算机及软件操作系统不感兴趣,实际上美国司法部也不允许AT&T公司销售软件。然而,当时AT&T由人和纸张组成的公司信息系统很快就要被60年代的浪潮所淹没。到70年代的时候电话业务的发展已经面临风险。AT&T公司的Ken Thompson开始为自己部门室内的信息处理寻找解决的方法,需要一个多用户操作的,能进行多个流程处理的方法,这种东西在当时来说没有一家计算机公司可以提供。这种东西的目的其实就是建立一个能支持多位话务员在一个复杂的环境中进行同时作业的操作系统。 这个需要的东西就是Unix萌发的源头。 接下来的介绍开发Unix类操作系统的循序渐进过程中发生的主要事件及对应时段。
[1965年到1969年]
1965年Bell实验室加入了MIT(麻绳理工学院)和GE(通用电器公司)合作开发的一个项目,该项目要求在通用公司的GE 645大型计算机硬件上开发出一套多用户交互操作系统软件,名字定为Multics。然而由于Bell实验室对系统开发中经常性的延迟和高成本消耗不满,最后终于在1969年退出了Multics系统的开发项目。1969年Ken Thompson把Multics在Bell实验室内进行了展示,这时候正好遇上了Dennis Ritchie,他提供了一台DEC(数字设备公司)的PDP-7迷你计算机硬件,可以继续用来开发能支持多用户研究环境的操作系统。这两个人建立了一个开发原型后,Ken Thompson返回了Bell实验室并鼓励在专利部门使用新开发的这款操作系统来进行文档处理工作。为区别于Multics项目,新操作系统被命名为Unix。 开发Unix的各种努力在继续,终于在1971年Unix得以在Bell实验室变得实际可用。第一版本的Unix操作系统完全使用汇编语言在PDP-11/20硬件上开发完成。它包含了基本文件系统,以及fork,roff和ed三个工具,当时它的用途就是为Bell实验室专利部门的文档准备工作提供字处理工具。
[1970年到1972年]
70年代早期,Unix开始在Bell实验室变得流行起来,作为新诞生的操作系统Unix也受到了大学机构的欢迎。与学院和高科技研究领域对Unix喜爱形势不同,商业社区到处充斥着怀疑Unix的声音。为提升Unix的流行度,AT&T公司开始将Unix源代码以最小的价格许可给大学机构研究用,AT&T提供了关于Unix大量软件代码和说明手册,但是没有提供软件使用的技术支持。70年代末,几乎70%的大学机构获得了Unix许可。许多计算机专业的毕业生在使用Unix,甚至对Unix代码进行修改,使它更加健全。Unix是用汇编语言写出来的主要运行在DEC公司的硬件设备平台上,开始在PDP-7设备上,然后是PDP-11/40设备和11/45设备,最后到PDP-11/70设备,使用变得更加广泛和流行。
[1973年到1979年]
这段时期是Unix开发最重要的时期。Ritchie和Thompson两人在1969到1973年时间内开发出了C编程语言,并且把Unix的内核用C高级编程语言进行了重新编写。Unix操作系统得以在不同硬件平台上编译运行。花几个月时间,用C编写的Unix就可以移植到新的硬件平台上。在C语言的帮助下修改操作系统也变得容易起来。学术社区的会员已经开始在许多系统设计课程中使用Unix,利用通用C语言写现代的命令,Unix也开始走出了字处理和编辑等局限性领域。此时Unix已经发展到了第六个版本,一个名叫Whitesmiths的商业公司基于第六版Unix发布了一个名叫Idris的商业Unix版本。1975年Thompson造访Berkeley大学安装在PDP-11/70设备上第六版Unix,此刻学校的两位毕业生Bill Joy和Chuck Haley刚好与Berkeley的这版Unix打交道,他俩在Berkeley为Unix的发展扮演了重要的角色,他们在第六版Unix环境上的第一个项目是ex编辑器的开发。他俩对Unix的内部运行原理很感兴趣,Joy把C语言增强壳以及vi编辑器等组合到了一起,形成了一个叫BSD(Berkeley软件发行包)的套装,1975第一次发布,这种模式在1978年进行了第二次发布,第二次发布的BSD中添加了虚拟内存的支持,允许程序可以在在物理内存大小不够用的情况下,继续模拟出虚拟内存来进行使用。这个特殊的想法对Bell实验室发布第七版的Unix影响非常大,第七版Unix也是最后一版完全由Bell实验室原创的Unix发行版。此后的Unix版本中的功能内容由多家商业公司和大学研究机构进行了或多或少的增添。70年代末美国国防部高级研究项目局决定将其通用计算环境构建在Berkeley版的Unix之上,在4。1版BSD的基础上,国防部高级研究项目局为4.1BSD进行了重要的性能调优提升,提供的fast文件系统提升了系统性能阻止了文件碎片的生成,该文件系统被加进了4.2版的BSD软件系统中。
[1982年到1983年]
1982年AT&T公司正式向商业领域发布了一款测试版Unix,名叫System III(System I和System II从来没有存在过),虽然System III基于第七版Unix但它也加入了一些来自BSD的工具,但System III发布版中没有包含vi编辑器和C壳,但内含了程序员workbench(工作性能度量工具),在发行System III的时候,AT&T看到了Unix的未来,很快就推出了System V版本的Unix(System IV没有在AT&T公司外出现过),其中包含了编辑器,curses(基于屏幕的软件库),和init(初始化程序),这些东西用来在开始运行Unix时启动各种过程。80年代初,Joy从berkeley大学取得了电气工程硕士学位后毕业了,变成了SUN(斯坦福大学网络)微系统公司的合伙创始人之一。Sun公司根据BSD实现的Unix操作系统名叫SunOS。这款Unix依靠对原BSD系统中的网络工具进行扩展,这些扩展中就有著名的后来变为工业标准的NFS(网络文件系统协议)。Sun还为早期的Unix窗口软件开发做了一些工作,SunOS于1983年首次发布。利用Sun提供的工作站硬件产品,Unix开始在高技术领域,尤其是计算机辅助设计和工程领域(CAD/CAE)被广泛地接受。80年代早期CAD/CAE变得流行起来,另外的PC工作站提供商象HP和Apollo等开始加入到该领域,但配备Unix的Sun工作站在性能和多用户处理方面胜过了PC工作站。在其他的商业计算环境中,Unix始终被认为是一个需自我完善的操作系统,它没有侵占大型机的市场,只是在多任务处理和网络连接中发挥了显著的特色。更重要的在于C语言的诞生使Unix可以向几乎任何硬件平台移植。
[1984年到2001年]
1984年AT&T发布了可以支持监视器连接到Unix的System V r2,该功能通过termcap的监视器数据库文件实现,命名为terminfo的文件可以提供多种监视器硬件的支持。其他的还有Streams和远程文件系统等。 Solaris是1993年由SunOS改名而来,开始转向支持AT&T公司的System V release4版本。1993年Unix商标被Novell公司购得。1994年Solaris 2。4发布。 1995年Solaris 2。5发布,1997年Solaris 2。6生效,1998年Solaris 7发布,2000年Solaris 8发布,2001年Solaris 9测试版在3季度发布。从Solaris 8开始,Solaris除了能在Sun公司自己的SPARC系列处理器上运行外,还可以运行在Intel处理器平台上。