10.1.2 PDP-11 UNIX

Thompson的工作给很多他在Bell实验室的同事留下了深刻的印象,很快Dennis Ritchie加入进来,接着是他所在的整个部门。在这段时间,UNIX系统有两个重大的发展。第一,UNIX从过时的PDP-7计算机移植到更现代化的PDP-11/20,然后是PDP-11/45和PDP-11/70。后两种机器在20世纪70年代占据了小型计算机的主要市场。PDP-11/45和PDP-11/70的功能更为强大,有着在当时较大的物理内存(分别为256KB与2MB)。同时,它们有内存保护硬件,从而可以同时支持多个用户。然而,它们都是16位机器,从而限制了单个进程只能拥有64KB的指令空间和64KB的数据空间,即使机器能够提供远大于此的物理内存。

第二个发展则与编写UNIX的编程语言有关。直到现在,为每台新机器重写整个系统显然是一件很无趣的事情,因此Thompson决定用自己设计的一种高级语言B重写UNIX。B是BCPL的简化版(BCPL自己是CPL的简化版,而CPL就像PL/I一样从来没有好用过)。由于B的种种缺陷,尤其是缺乏数据结构,这次尝试并不成功。接着Ritchie设计了B语言的后继者,很自然地命名为C。Ritchie同时为C编写了一个出色的编译器。Thompson和Ritchie一起工作,用C重写了UNIX。C是恰当的时间出现的一种恰当的语言,从此统治了操作系统编程。

1974年,Ritchie和Thompson发表了一篇关于UNIX的里程碑式的论文(Ritchie和Thompson,1974)。由于他们在论文中介绍的工作,他们随后获得了享有盛誉的图灵奖(Ritchie,1984;Thompson,1984)。这篇论文的发表使许多大学向Bell实验室索要UNIX的复制。由于Bell实验室的母公司AT&T在当时作为垄断企业受到监管,不允许经营计算机业务,它很愿意能够通过向大学出售UNIX获取适度的费用。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

一个偶然事件往往能够决定历史。PDP-11正好是几乎所有大学的计算机系选择的计算机,而PDP-11预装的操作系统使大量的教授与学生望而生畏。UNIX很快地填补了这个空白。这在很大程度上是因为UNIX提供了全部的源代码,人们可以(实际上也这么做了)不断地进行修补。大量科学会议围绕UNIX举行,在会上杰出的演讲者们站在台上介绍他们在系统核心中找到并改正的隐蔽错误。一位澳大利亚教授John Lions用通常是为乔叟(Chaucer)或莎士比亚(Shakespeare)作品保留的格式为UNIX的源代码编写了注释(1996年以Lions的名义重新印刷)。这本书介绍了版本6,之所以这么命名是因为它出现在UNIX程序员手册的第6版中。源代码包含8200行C代码以及900行汇编代码。由于以上所有这些活动,关于UNIX系统的新想法和改进迅速传播开来。

在几年内,版本6被版本7代替,后者是UNIX的第一个可移植版本(运行在PDP-11以及Interdata 8/32上),已经有18 800行C代码以及2100行汇编代码。在版本7上培养了整整一代的学生,这些学生毕业去业界工作后促进了它的传播。到了20世纪80年代中期,各个版本的UNIX在小型机与工程工作站上已广为使用。很多公司甚至买下源代码版权开发自己的UNIX版本,其中有一家年轻小公司叫做Microsoft(微软),它以XENIX的名义出售版本7好几年了,直到它的兴趣转移到了其他方向上。