《黑客道简史》(A Brief History of Hackerdom) 二、Unix兴起

作者:埃里克?斯蒂芬?雷蒙(Eric Steven Raymond)【著】
译者:刘安辙(Angelo Liu)【译】
原文链接:http://catb.org/~esr/writings/hacker-history/hacker-history-5.html

  1969年,在ARPAnet光辉照耀不到的新泽西郊外,正有人在酝酿着什么,最终PDP-10的传统也将为此颠覆。ARPAnet诞生的那一年,贝尔实验室的黑客肯·汤普森(Ken Thompson)发明了Unix。

  汤普森曾经参与了Multics的研发,这是一个与ITS拥有共同先祖[1]的分时操作系统。Multics可以说是一个试验台,通过它,人们尝试是否可以将复杂的操作系统(甚至是绝大部分程序)隐藏起来,不让用户直接接触。这样就能从外部简单的操控(甚至是编辑)Multics,这可谓是质的突破。[2]

  当Multics变得臃肿并最终成为一个累赘的时候,贝尔实验室退出了(稍后,这个系统被霍尼韦尔公司推向了市场,但是没能成功)。在失去Multics作业环境之后,肯·汤普森找来了一台闲置的DEC PDP-7型计算机,打算在这上面将Multics的理念和自己的创想合二为一。

  另一位叫丹尼斯·里奇(Dennis Ritchie)的黑客针对汤普森摇篮里的Unix开发了一种新的语言——C语言。如同Unix一样,C语言的设计非常出色,严谨而不失弹性。这些工具在贝尔实验室中流行开来,在大家的帮助下汤普森和里奇的申请终于在1971年得以通过。他们被授权为内部开发一套我们现在所说的 “事务工作自动化系统”(office automation system)。[3]然而汤普森和里奇的雄心却远不止于此。

  当时的传统观点认为,操作系统必须用严密的汇编程序编写,这样才能“榨干”主机得到最大效能。汤普森和里奇却相信,当时的硬件和编译器技术已经很成熟,足可以担负一个全部由C语言编写的操作系统了。终于,1978年Unix就已经可以成功的移植到多种机型上了。

  这是史无前例,意义深远的。也就是说,如果Unix能在不同的机型上展现相同的界面和能力,它就可以被作为一个通用软件环境。用户需要每次为一种机型担负整套新软件的日子一去不复返了。黑客们可以将软件工具包移入不同的机器,这可比每次重新“生火、造轮子”要强得多了。

  除了可移植性之外,Unix和C语言还有许多显著优势。它们都秉承了“KISS”设计哲学[4]。程序员可以轻松掌握C语言的逻辑结构(这与之前和之后的语言都大不一样),而不必整天翻阅用户指南。而Unix则可以看作是一个颇具弹性的工具包,由许多独立设计的程序有效地相互连接而成。

  Unix和C语言应用范围之广,有时甚至是完全出乎设计者意料的。虽然没有什么正式的推广计划,但是它们还是迅速在AT&T内部传播开来。到了1980年,已经蔓延到为数众多的大学和计算研究机构,还有数以千计的黑客想把它们带回家。

  早期Unix文化中的主力机型是PDP-11和其后裔——VAX。由于Unix具有高度的可移植性,所以能在为数众多的机器上原封不动的运行,而并不局限于那些接入ARPAnet的机器。[5]没人再用汇编程序了,C程序欣然进驻了所有机器。

  Unix甚至有了自己的网络,各式各样的UUCP。[6]低速,不稳定却成本低廉。两台Unix机器可以通过普通的电话线相连,交换点对点电邮。这个功能并非一个可选组建,而是被写入了系统。1980年,第一个Usenet站点开始交换广播新闻[7],借此形成的巨大的分布式电子公告板系统,将会迅速成长并超越ARPAnet。围绕Usenet,Unix站点开始形成了自己的网络疆域。

  一些Unix站点本身是基于ARPAnet的。这样PDP-10和Unix/Usenet文化就开始在边缘交汇,融合。融合在一开始并不是一帆风顺的。PDP-10黑客把Unix用户视作是一堆暴发户,与LISP和ITS令人爱不释手的复杂华美相比,他们的工具简直原始到可笑。“刀耕火种的家伙”,他们嘟囔道。

  除此之外,这里还有第三路人马。第一台个人电脑在1975年进入市场,1977年苹果公司成立,随后的几年里创新以几乎难以置信的速度喷涌而至。微型计算机的轮廓日渐明朗,这吸引到了另一代睿智的年青黑客。他们使用BASIC语言,无论是PDP-10游击队还是Unix信徒,在他们眼中都原始的不值一提。

译注:

1.这里是指“兼容分时系统”(Compatible Time-Sharing System,CTSS)。

2.也就是后台运行,而用户只需要使用命令。

3.这里是说贝尔实验室拨款给他们添置了一台 PDP-11/20

4.KISS是“Keep It Simple, Stupid”的缩写,即“务求简约”。

5.在这一时期,接入ARPAnet的主力机型也是PDP-11和VAX。

6.UUCP,UUCP是Unix-to-Unix Copy的缩写,是一组软件程序,所以说是“各式各样”的。

7.Usenet,又称友思网。是一种(最初)基于UUCP的世界性新闻组网络系统。广播新闻是指Usenet中的一个站点向网络(局域网或广域网)上所有其他站点发送消息。

相关日志

发表评论