Linux管理与应用 Unix诞生历史、Minix简介 主讲教师:张美平
UNIX操作系统诞生 1960年代运行于大型机的CTSS分时系统 Multics计划与“星际旅行”(Space Travel)游戏的开发 Unics系统与PDP-7主机 Unix第一版与PDP-11主机 Unix第三版以及C语言的发明 Unix系统的流行与发展
CTSS分时系统 早期的计算机硬件是非常昂贵 的,一般只有在军事或学术机 构才能接触到,而且数量稀少。 为了使一台计算机能供更多人 使用,麻省理工学院(MIT)于 1960年代初期研发了“兼容分 时系统”,先进的主机一般也 只能提供30个终端同时使用。
Unix的创造者Dennis Ritchie以及Ken Thompson 2001年 丹尼斯•里奇(Dennis Ritchie) 肯•汤普森(Ken Thompson)
Multics计划与“星际旅行”(Space Travel)游戏 为了能够充分加强大型主机的功能,让主机的资源可以提供给更 多使用者使用。1964年由贝尔实验室(AT&T Bell)、麻省理工学 院(MIT)及通用电器公司(GE)计划共同发起了一个以CTSS为基础 名为Multics的项目计划,该项目被设计运行在GE-645大型主机 上,希望能使该主机能同时为300台以上的终端同时提供服务。 肯•汤普森(Ken Thompson)于1966年,丹尼斯•里奇(Dennis Ritchie)与1967年加入了贝尔实验室并参与了Multics项目的开 发。 由于Multics设计过于复杂,迟迟拿不出成果,1969年贝尔实验 室宣布退出该计划,但是肯•汤普森(Ken Thompson)则继续为 GE-645主机开发软件,并最终编写完成了一个名为“星际旅行” (Space Travel)游戏,经过实际运行后,他发现游戏速度很慢 而且耗费昂贵。
Unics系统 为了优化“星际旅行”游戏,汤普逊找到一台被闲置的DEC (Digital Equipment Corporation)公司的小型机PDP-7,并计划 重写他的“Space Travel”游戏,因此他计划先为PDP-7主机开 发一个新的操作系统。 1969年的8月,Ken Thompson的妻子和孩子出去度假,他终于有 时间来实现自己关于新操作系统的想法了。 Ken Thompson将庞大而复杂的Multics系统简化了不少,他花了 四周时间在PDP-7主机上使用汇编语言设计了一组核心程序以及 一些核心工具程序和一个小小的文件系统,这就是Unix系统的原 型。
PDP-7主机
Unix第一版 Ken Thompson找到Dennis Ritchie合作开发,经过日以继夜的工 作,1969年圣诞节前,新设计的操作系统已经可以初步运行了。 在1970年,这部PDP-7主机却只能支持两个使用者,实验室的朋 友都戏称这个系统其实是:“UNiplexed Information and Computing Service”,缩写为“UNICS”(当时还没有命名为 Unix)。后来,大家取其谐音,就称其为“UNIX”。 1971年,Ken Thompson申请到了一台PDP-11/24的机器, 于是 Unix第一版在这台PDP-11/24的机器上完成。这台电脑只有24KB 的物理内存和500K磁盘空间。Unix占用了12KB的内存,剩下的一 半内存可以支持两个用户进行“星际旅行”(Space Travel)游 戏。
PDP-11主机
Unix第三版以及C语言的发明 到了1973年,Ken Thompson 与Dennis Ritchie发现用汇编语言 编写的Unix做移植太过于头痛,他们想用高级语言来完成第三版 Unix,对于当时完全以汇编语言来开发程序的年代,他们的想法 应该说相当的疯狂。一开始他们想尝试用Fortran语言,可是失 败了。 后来他们用一个叫BCPL(Basic Combined Programming Language)的语言开发,他们整合了BCPL语言开发出了B语言, 后来Dennis Ritchie觉得B语言还是不能满足要求,于是就改良 了B语言,这就是今天的大名鼎鼎的C语言。 Ken Thompson 与Dennis Ritchie成功地用C语言重写了Unix的第 三版内核。因此Unix这个操作系统修改、移植相当的便利,为 Unix日后的普及打下了坚实的基础。而Unix和C完美地结合成为 一个统一体。
Unix系统开始流行 UNIX论文发表,该论文引起了学术界极大兴趣。 Ken Thompson和Dennis Ritchie在1974年7月举行的The Communications of the ACM会议上发表了名为“The UNIX Time Sharing System”有关Unix操作系统的第一篇论文。 这是UNIX与外界的首次接触,结果引起了学术界的广泛兴趣并对 其索取源码。 由于1956年的反托拉斯法案的限制,AT&T不能涉足计算机业务, UNIX首先在学术领域发展。所以,Unix第五版就以“仅用于教育 目的”的协议,提供给各大学作为教学之用,成为当时操作系统 课程中的范例教材。 各大学、公司开始通过Unix源码对Unix进行了各种各样的改进和 扩展。
UNIX的发展 1976年以后到1993年,美国加州大学伯克利(Berkeley)分校的 研究者Bill Joy(Sun公司的创办者)在取得Unix核心源代码后, 从学术角度对UNIX进行的大系列的修改,修改成适合自己机器的 版本,并且同时增加了很多工具软件与编译程序,最终将他命名 为 Berkeley Software Distribution (BSD) Unix,并为UNIX加 入了TCP/IP网络协议栈功能代码。 1983年以后,AT&T从商业角度发行了System V UNIX,它不仅继承 BSD的很多功能还加入了更有优势的软件,更适合商业领域,这 一年,Thompson, Ritchie 获得图灵奖。 System V Unix和 BSD Unix诞生之后,Sun、SGI、惠普、IBM、 DEC(数字设备公司)、Amdahl等公司都在此基础上,开发了自 己的UNIX版本,如Sun Solaris、SCO UNIX 、HP-OS、AIX。
Minix操作系统 1979年,AT&T基于商业目的以及当时现实环境方面的考虑,在 1979年发行的第七版Unix中,特别提到了“不可对学生提供源代 码”的严格限制! 因此学校就不能再使用Unix源代码进行操作系统的教学了,为了 能提供一个供学生学习的操作系统内核,荷兰阿姆斯特丹自由大 学(Vrije Universiteit Amsterdam)计算机科学系的Andrew S. Tanenbaum教授决定自己动手在X86平台的PC机上编写了一个类 Unix的系统核心,这就是Minix操作系统。 在编写Minix的过程中,为了避免版权纠纷,Andrew Tanenbaum 教授完全不看Unix源代码并要求所开发的Minix能够和Unix兼容。
Minix操作系统 Andrew Tanenbaum教授于1984年开始撰写程序直到1986年完成, 并在1987年出版了Minix 相关书籍; Minix,是一个用于操作系统教学的类UNIX的小型操作系统, Minix全部的程序源代码共约12000行,主要用于培训学生了解操 作系统的运行过程,用户通过购买Minix相关书籍,就能从配套的 软盘获得Minix操作系统的源代码; Andrew Tanenbaum教授通过网络新闻组与使用者进行互动交流; Minix缺点:仅用在教育用途上面,功能性不强;后期Andrew Tanenbaum教授不再对Minix系统进行功能的加强,导致该系统不 能再满足用户更多的需求。 最新版为Minix3,官方网站为:http://www.minix3.org
Andrew Tanenbaum及相关著作