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 爱好者都认为这简直不值得去蔑视。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论