1.3 UNIX的兴起

上溯至ARPAnet还远未普及的1969年,在新泽西郊外,一股新生力量开始成长并不断发展壮大,最终使PDP-10文化变得不再重要。这一年,APRAnet刚刚诞生,而贝尔实验室的黑客Ken Thompson,也正在这年发明了UNIX。

Thompson参与了分时操作系统Multics的开发工作,Multics和ITS有着共同的渊源,它是一个验证一些重要观念的试验床,这些观念的着重点在于如何将操作系统的复杂性隐藏在系统内部,不仅让用户看不到,甚至让大多数程序员都看不到。它使得人们可以更简单地使用Multics(以及为它编程!),可以更多去做那些真正有价值的工作。

当Multics逐渐显露出成为“白象” [3]这种庞大而又无用之物的迹象时,贝尔实验室从这个项目退出了(这个系统后来被Honeywell公司推向市场,但从未获得成功)。出于对Multics环境的怀念,Ken Thompson开始尝试将Multics的一些理念和自己的一些想法融合起来,在一台废置的DEC PDP-7上开发一个新的系统。

贝尔实验室另一名黑客Dennis Ritchie为还处于雏形阶段的UNIX发明了一种新的语言:C语言。和UNIX一样,C被设计为好用、限制少和灵活方便的语言,很快,这些工具在贝尔实验室流行起来了,1971年,Thompson和Ritchie赢得了开发一个内部系统(类似我们现在所说的办公自动化系统)的投标,更大地刺激了UNIX和C的内部传播,而Thompson和Ritchie的雄心远不止于此。

操作系统在传统上都是用汇编语言精心编写的,目的是充分利用机器的效能。Thompson和Ritchie是最早意识到当时硬件和编译技术都已经好到能让整个操作系统用C语言编写的那批人之一。到1978年,整个UNIX环境已经可以成功地被移植到多种不同型号的机器上了。

这是史无前例和影响巨大的。如果UNIX能够在多种不同型号的机器上提供相同的人机界面和相同的功能,它就能成为一个通用的软件环境。机器更新换代时,用户就可以不再购买那些为新机器而重新编写的软件,黑客们则可以在不同机器上使用相同的工具,而不是每次都去做类似发明轮子和钻燧取火的事。

除了可移植性,UNIX和C还有其他的重要优势,它们都是KISS(Keep It Simple,Stupid)哲学下的产物。程序员可以很容易地在脑海中记忆并掌握整个C语言的逻辑结构(这可不同于之前或之后的大多数语言),而不需要去频繁地查看手册。而UNIX则拥有一系列灵活方便的工具程序,每个工具都被设计为可与其他工具组合运用,以方便地实现特定目的。

UNIX和C的组合,很快被证明适用于极为广泛的计算作业,其中很多完全超出设计者的预期。虽然缺乏正式的支持和推广,它仍然在AT&T内部迅速传播开来。到1980年,它已经扩散蔓延到很多大学和研究机构,而数以千计的黑客们则开始考虑在家里使用它了。

早期UNIX文化中的主力机器是PDP-11及其后代VAX。但由于UNIX的高可移植性,使得它基本上不用改动就能运行在比整个ARPAnet上范围更广的机器上,没人再用汇编语言了,C语言被迅速移植到了各种机器上。

UNIX甚至有了自己的网络——UUCP:低速、不太可靠但便宜。任意两个UNIX机器可以通过普通电话线路,点对点地交换电子邮件,而且这种功能是系统自带的,不需要额外安装。1980年,第一批Usenet(Usenet最初运行在UUCP上——译者注)站点开始交换广播消息,由此形成了一个巨大的分布式电子公告板,并很快在规模上超过了ARPAnet。围绕Usenet,UNIX站点开始逐渐形成自己的网络部落。

由于一些UNIX站点运行在ARPAnet上,PDP-10文化和UNIX/Usenet文化开始在各自的边缘交汇,但它们并不能和谐相处,PDP-10的黑客们倾向于把UNIX团体看成是一群暴发户,与LISP和ITS具有巴洛克式令人着迷的复杂性相比,UNIX使用的工具看上去原始得可笑,“就像拿着石刀和穿着兽皮!”他们嘟囔道。

除此之外,另外一股势力也开始成长,第一台个人电脑在1975年开始进入市场,苹果公司于1977年成立,技术变革在随后几年以令人难以想象的速度发展,微型计算机的发展势头越来越清晰,并吸引着新一代聪明的年轻人,他们的语言是BASIC,这种语言是如此简陋,以至于PDP-10信徒和UNIX爱好者都认为这简直不值得去蔑视。