【内容摘要】
因为初期的计算机并不像现今的个人计算机一样普遍,只有极少数人才有机会接触到,但是当时的计算机构架很难使用linux命令详解词典,操作插口麻烦。因而在1965年前后,由贝尔实验室(Bell)、麻省理工大学(MIT)及通用电气公司(GE)共同发起了Multics的项目,Multics(全称:MULTiplexedInformationandComputingSystem)是一个全面的、通用的分时操作系统,Multics项目的目的是想让小型主机可以同时提供300台以上的终端机联接使用的目标。
然而,到了1969年前后,项目进度落后,资金也匮乏,在觉得Multics项目不可能成功以后,贝尔实验室退出了该项目的研究工作。最终Multics项目还是成功地开发出了她们的系统,Multics系统即使后来没有遭到很大的注重,然而该项目培养出了好多优秀的人才,包括KenThompson、DennisRitchie、JoeOssanna、DouglasMcIlroy、PeterNeumann、StanDunten、RuddCanaday等等。
图1.Multics分时操作系统的历史
参与Multics项目的工程师们调回贝尔实验室后,面对实验室落后的仍以批处理工作的计算机环境,她们十分想念Multics。其中一位工程师KenThompson,他由于想移植一套名为“太空旅游”的游戏,希望开发一个小的操作系统以供使用。1969年8月,百般无奈的Thompson在仓库里发觉了一个闲置的PDP-7,正好此时处于放假期而且他的妻儿探亲去了unix 系统,于是Thompson有了额外的一个月时间施行他的计划。经过4个礼拜的拼搏,以汇编语言写出了一组内核程序,还包括一些内核工具程序,以及一个小的文件系统。在操作系统、Shell程序、编辑器和汇编程序上,他各花了一周时间。
因为当时Thompson从Multics项目中获得看法,将Multics庞大而复杂的系统进行简化,于是同实验室的同事都戏称这个系统为Unics(该系统就是Unix的原型)。
Thompson的这个文件系统有两个重要的概念,分别是:
这种概念在后来对于Linux的开发有相当重要的影响。这也就是知名的KISS(keepitsimple,stupid)原则linux内存管理,即“简单原则”——尽量用简单的方式解决问题,这是“Unix哲学”的根本原则。
图2.最初运行Unix系统的DECPDP-7
因为Thompson写的Unics实在太好用了,所以在贝尔实验室外部广为留传,而且多次经过改版。并且由于Unics是以汇编语言写的,高度依赖硬件unix 系统,所以每次安装到不同的机器上都须要重新编撰汇编语言。于是Thompson与Ritchie合作想将Unics改用更中级的程序语言来编撰,进而提升可移植性。她们先选择了BCPL(简称B语言),之后又尝试PASCAL,发觉编译下来的内核性能都不是挺好,由于这种语言都不太紧贴硬件操作。于是,四人(主要是DennisRitchie)决定自己开发一套新的语言:这就是大名鼎鼎的C语言。
图3.KenThompson(坐着)和DennisRitchie在PDP-11前工作
1973年,DennisRitchie用C语言重画与编译Unics的内核,最后发行出Unix的即将版本。“重写”说上去简单,实际上并不是简单的汇编到C语言的翻译,这儿边包含了好多的发明和创造。在此期间引入的“pipe”(管线)功能后来成为了Unix的一大优势,这些功能促使程序间输出结果的传递十分容易。管线的概念是贝尔实验室的DouglasMcIlroy发明的,后被好多操作系统大量拷贝,其中包括Unix的所有变体、Linux、DOS和Windows。
重画过的Unix很快就流行上去,随后便始终应用于生产领域。40多年过去了,尽管出现了好多的类Unix系统(比如Linux),而且她们都承继了Unix中的基本思想,但是弘扬中信。知名的类Unix系统包括BerkeleyUnix、Minix、Linux、AIX、A/UX、HP-UX以及Solaris,苹果的MacOSX则是基于BerkeleySoftwareDistribution(简称BSD)Unix。
图4.1998年被授予国家科技奖状(左起分别是Thompson、Ritchie和克林顿)
Unix是以C语言写成的,理论上是具有可移植性的,只要获得Unix的源码,但是针对小型主机的特点加以更改,就可能将Unix移植到另一台不同的主机上。
1973年之后,Unix开始与学术界合作开发,其中最重要的是与加洲学院伯克利校区(Berkeley)的合作。伯克利学院的BillJoy在移植Unix的过程中加入了好多工具软件与编译程序,最终将它命名为BerkeleySoftwareDistribution(BSD)。BSD是Unix很重要的一个分支。同时BillJoy也是Sun这家公司的创立者。Sun公司即是以BSD开发的内核进行自己的商业Unix版本的开发的。(后来可以安装在x86硬件构架里面FreeBSD即是BSD改版而至!)
因为Unix的高度可移植性与强悍的性能,加上当时并没有版权的纠纷,所以让好多商业公司开始了Unix操作系统的开发。但每一家公司自己出品的Unix即使在构架上太原小异,然而却仅能支持自身的硬件,所以,早些年的Unix只能与服务器(Server)或则小型工作站(Workstation)划上等号。直至1979年,AT&T推出了SystemV第七版Unix,才支持x86构架的个人计算机系统。后来由于AT&T出于商业考虑,想将Unix的版权收回去,因而在第七版SystemV中非常谈到了“不可对中学生提供源码”的严格限制。
目前被称为纯种UNIX的指的就是SystemV和BSD这两套。
图5.类Unix系统家谱
从Unix诞生之日起,各类信誓旦旦的预言就伴随着它,说Unix终将消亡,或则被其它操作系统挤出市场。而且在明天,它变身为Linux、BSD、Solaris、MacOSX以及好几个其它变种的Unix,却变得前所未有的强悍。
这个故事告诉我们:适当地给含有创造力的工程师放假是多么重要!