找回密码
 FreeOZ用户注册
查看: 2234|回复: 3
打印 上一主题 下一主题

开源经典文献系列之六:《黑客道简史》

[复制链接]
跳转到指定楼层
1#
发表于 17-7-2008 19:03:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
最初,这里有一群真正的程序师。

他们从不以此自称,也不曾用“黑客”或其他特殊的字眼。据一位“真正的程序师”回忆,这个说法是1980年后才出现的。但是从1945年开始,计算机科技便不断吸引着这世界上无数最睿智和最具创造力的头脑。自从艾克特(Eckert)莫齐利(Mauchly)发明第一台ENIAC计算机之后,便不断有狂热的程序师投身其中,他们以编写程序、探索技巧为乐。一点一滴的积累起了一种具有自我意识的科技文化。

这批“真正的程序师”通常都有工程学和物理学背景,作为业余无线电玩家,他们称得上嗜痂成癖。厚厚的眼镜,白白的袜子,涤纶衬衫,再配上一条领带;用机器语言、汇编程序、FORTRAN和一堆“远古级”的语言编程。

从二战末到70年代早期,在这批处理和“铁块”大型机的黄金岁月里,“真正的程序师”是计算机科技文化的主宰。一些令人敬畏的黑客传说,就源自这一时期。这其中就包括诸多版本的“墨菲法则”[1]和那张用来嘲笑德国人的“Blinkenlights”海报[2]——是的,它现在还被用来装饰很多电脑间。

一些在“真正的程序师”文化中成长起来的人直到90年代都保持着活跃,甚至迈向21世纪。比如西摩·克雷(Seymour Cray)——克雷(Cray)超级计算机的设计者,就是“最伟大的程序师”中的一员。据说他一人就包办了硬件和操作系统的设计,而且是用控制面板开关导入的整个系统。用的八进制代码,没有任何错误,运行稳定。伟哉,真程序师。[3]

“真正的程序师”文化是与批处理计算机(特别是批处理技术)紧密相连的,日后它被交互计算、大学科研和网络取而代之。但是这时产生的工程学传统,却一脉承传,成为今天开源黑客文化的滥觞。











译注:



1.墨菲法则:Murphy'Low,以工程师爱德华·A·墨菲 (Edward A.Murphy)命名,指任何可能出错的事情终将出错(anything that can possibly go wrong, will go wrong)。后来引申出诸多版本。比如:任何程序都有缺陷;一个测试了一万遍都没问题的程序肯定会在你演示的时候出错;也有乐观的引申:如果能成功,就一定会成功。

2.“Blinkenlights”海报:这是一张用来嘲笑德国人的海报,这个故事被记录在作者所做并维护的《黑客字典》(Jargon File)中http://www.catb.org/~esr/jargon/。可以在这里看到不同时期的海报:http://www.geocities.com/winstonobrien84/posters/blinkenlights/。不难发现,不管怎么变化都不会离开歌特字体——这种代表德国艺术精粹的字体。

(因为其刊行版名为《The New Hacker‘s Dictionary》,所以我将“Jargon File”译作《黑客字典》)

3.西摩·克雷,被喻为“超级计算机之父”。1984年他的克雷超级计算机占据了超级计算机70%的市场份额。但是不幸的是,1996年9月22日,西摩遭遇了一场意外的交通事故,于10月5日不治身亡。本文最初完成于1997年2月(这时克雷的公司已经被收购了)作者用“Real Programmer macho supremo”作为该段的结尾,我想可能就是对于其的追悼。其中“八进制”是指其全部采用机器语言编写。

4.如今“真正的程序师”(The Real Programmers)的语义已经悄然地发生了变化,通常用来形容食古不化和敝帚自珍的老一辈。我们通常可以看到这样的说法“The Real Programmer don’t…”。
回复  

使用道具 举报

2#
 楼主| 发表于 17-7-2008 19:05:19 | 只看该作者

第一章 早期的黑客

黑客文化的起源可以追溯到1961年,那一年麻省理工学院(MIT)终于得到了第一台PDP-1计算机。学院技术模型铁路俱乐部(Tech Model Railroad Club,TMRC) 的信号动力委员会(Signals and Power Committee,S&P)把它作为最时髦的科技玩具,并由此产生了许多程序设计工具、术语、和整个文化氛围——这些,直到今日我们仍然依稀可辨。史蒂文·利维(Steven Levy)在《黑客》(Hackers)的第一部分中详细的记录了这段岁月。

“黑客”这个词汇最早出现在麻省理工学院的计算机文化中。TMRC中的黑客,日后成为了MIT人工智能实验室的核心成员,而该实验室直到80年代早期都一直主导着全世界的人工智能研究。从ARPAnet诞生的第一年,1969年开始,他们的影响力便不断的扩大。

ARPAnet是第一条横贯(美国)大陆的高速计算机网络,由美国国防部出资兴建。作为一实验性的数据通讯网络,它将数以百计的大学、国防部分包商、研究机构连接在一起。各地的研究人员能以史无前例的速度和弹性交换信息,它为协同工作带来了巨大推进,并使得科技创新突飞猛进。

ARPAnet还有另一项好处,它将散落在全美国的黑客汇聚到一起,一改往日局面——几个独居一隅的小组各自发展朝生暮死的本地文化。他们发现(或觉察到)自己置身于一个网络部族之中。

黑客文化的第一批史前遗存——第一批术语表、第一批讽刺文学、关于黑客伦理的自发讨论——凡此种种都萌生在ARPAnet的早期岁月中。特别是在1973年到1975年,通过网络协作我们完成了“黑客字典”(Jargon File)的第一版,这个术语辞典成了一份黑客文化的定义文档。终于在1983年以《黑客辞典》之名付梓刊印了。虽然该书已经绝版了,但是我们现在有了经过修正和扩充的《新黑客辞典》。

黑客道在那些连接到网络的大学中绽放,特别(并非绝对)是在计算机科学部门中。60年代末,首先由麻省理工学院人工智能和计算机实验室领军,斯坦福大学人工智能实验室(SAIL)和卡内基梅隆大学(CMU)紧随其后。这些兴旺的计算机科学以及人工智能实验室吸引到无数人才,他们都对黑客文化作出了伟大的贡献——无论是创造技术还是传说。

为了了解日后的故事,我们有必要先看看电脑本身。因为无论是人工智能实验室的升腾还是最终的陨落,都取决于计算机科技变幻的波涛。

从PDP-1型开始,黑客道的命运就紧紧的和DEC(Digital Equipment Corporation,迪吉多)的PDP系列微型机交织在一起了。DEC可谓是交互计算和分时系统的商业先驱。由于其灵活、强大和比同行便宜的特点,被很多大学所采用。

廉价的分时操作系统是黑客文化成长的中继,ARPAnet生命的大部分时间都被DEC机器编织的网络占据了。其中最重要是在1967年首次推出的PDP-10型,它受到黑客道的青昧长达十五年之久。TOPS-10 (DEC为这个机型开发的操作系统)和MACRO-10 (它的汇编程序)至今还能在许多术语和传说中泛起记忆的涟漪。

麻省理工学院虽然像大家一样采用PDP-10,却试图独辟蹊径。他们不屑于使用DEC开发的操作系统,而是打算自己编一个——传说中的ITS。

ITS是IncompatibleTime-sharing System(不兼容分时系统)的缩写,这个名称也正是MIT黑客姿态的写照(技术上,这是对其前辈“兼容分时系统”的戏谑,CompatibleTime-Sharing System, CTSS)。他们就是要自成一派。很幸运,这群人并非“夜郎自大”。尽管ITS通常离奇古怪并与错误相伴,但是这不足以遮盖许多技术创新的光芒,而且ITS至今还是分时系统单次运行时间最长记录的保持者。

ITS本身是用汇编语言写成的,但是其许多项目却采用了一种人工智能语言——LISP。当时,LISP可算得上是同类语言中最强大灵活的了。而且即使在二十五年后的今天,它也拥有比大多数语言出色的设计。LISP让ITS黑客们可以异想天开,是促成他们成功的主要原因,也是黑客道至今衷爱的语言之一。

许多ITS文化中的科技创造沿用至今,其中最著名的恐怕要数EMACS程序编辑器了。如同你在“黑客辞典”中看到的一样,许多ITS的传说还在黑客坊间流传。

SAIL和CMU当然也没闲着。许多在SAIL的PDP-10环境下成长起来的黑客,日后成为我们今天个人电脑中“窗口/图标/鼠标”软件界面领域的巨擘。而CMU的黑客则主导了专家系统和工业机器人技术的首次大规模应用。

另一个文化重镇是施乐的PARC——著名的帕洛阿尔托研究中心(Palo Alto Research Center)。在70年代初到80年代中期这十余年的时间里,PARC破天荒般的创造了数量惊人的软件和硬件。我们今天接触到的软件界面风格(包括窗口、鼠标、图标)就源自这里。当然,还有激光打印机和局域网。PARC在个人电脑出现(80年代)的十年前就开发出了可以与之一较短长的D系列机型。遗憾的是,“先知们”没有得到自家公司的赏识。以至于PARC成了一个笑柄——“那是为别人生产优秀创意的地方”。然而不可否认PARC对黑客道的影响是普遍而深入的。

贯穿70年代,ARPAnet和PDP-10文化变得愈发强大而多变。小巧的电子邮件列表,将各地具有独特爱好的人凝聚在一起。出现了越来越多的“小组”,而且延伸到了社交和娱乐领域。DARPA(美国国防部高级研究计划署)对所有“未授权”的技术活动睁一只眼闭一只眼。因为他们知道,与将一代睿智的年青人引入计算机领域相比,这点额外的开销简直微不足道。

最著名的“社交”ARPAnet邮件列表恐怕要数科幻小说迷建立的SF-LOVERS了。它至今都很活跃,实际上今天更广阔的“因特网”是由ARPAnet演化而成的。不及如此,这种对通讯模式的开拓,日后会被一些牟利性分时服务商推向商业化。比如CompuServe, GEnie 和Prodigy (而最终被AOL掌控)。

你的历史学家是在1977年通过ARPAnet和科幻小说圈初涉黑客文化的。在那之后的诸多变迁(也是我将叙述的),都是我亲身参与和见证的。
回复  

使用道具 举报

3#
 楼主| 发表于 17-7-2008 19:06:03 | 只看该作者

第二章 Unix兴起

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中的一个站点向网络(局域网或广域网)上所有其他站点发送消息。
回复  

使用道具 举报

4#
 楼主| 发表于 17-7-2008 19:06:32 | 只看该作者

第三章 昔日不再

1980年,发生了很多大事。三股文化在边缘交迭却依旧固守着迥异的技术阵线。ARPAnet/PDP-10文化与LISP、MACRO 、TOPS-10 、ITS 以及SAIL联姻; Unix和C语言的用户群则使用PDP-11和VAXen,并通过单薄的电话线彼此相通;而由早期微电脑迷组成的无政府部落则致力于让电脑科技平民化。

三者之中,ITS仍旧盘踞在首要地位。但是暴雨前的乌云逐渐笼罩了实验室(指麻省理工学院——译者按)。ITS赖以为生的PDP-10科技已然日薄西山,为了首次的人工智能商业化尝试,实验室内部也分裂成了若干小团体。实验室的主将挡不住新公司的高薪挖角,纷纷出走(斯坦福大学人工智能实验室和卡内基梅隆大学实验室也遭遇了同样的问题)。

致命一击终于来临了,1983年DEC公司宣布,为了主攻PDP-11和VAX系列产品,将终止PDP-10的后续机型研发项目——“木星”项目。ITS行将就木,因为它不具备可移植性,或者说没人能把它移入新的硬件。加州大学伯克利分校为一台VAX改写的Unix成了最卓越的黑客(hacking)系统,而且有远见的人都知道微型计算机的实力在迅速壮大,它们很可能会一统江湖。

差不多在同时,史蒂文·利维完成了《黑客》一书。理查德•M·斯多曼(Emacs的发明人)是其重点着墨的人物之一。他是麻省理工实验室的一位领军人物,极度狂热地反对将实验室科研成果商业化。

斯多曼(我们认识他通常通过他的首字母缩写和注册名——RMS)着手创建了自由软件基金会,并致力与创造高品质的自由软件。利维惋惜地称其为“最后一个真正的黑客”,幸好事实证明利维错了。

斯多曼的宏大计划可谓是80年代早期黑客道变迁的缩影——1982年他开始架构一整套Unix克隆产品,使用C语言编码并且让其可以被自由使用。这便是我们熟知的GNU操作系统(其名称源自“GNU’s Not Unix”的首字母递归)。GUN很快就成了黑客活动的主战场。借此,在以Unix和VAX为中心黑客文化里,ITS的传统精神衣钵被新秀作为精髓承袭下来。斯多曼的设计不仅完成了源自伯克利的创想,而且同Unix用户一道剿灭了PDP-10黑客文化的遗老。

实际上,黑客文化的公共意识形态的形成,主要取决于RMS创立自由软件基金会之后的十余年光景。而斯多曼本人则是这个部族惟一众望所归的领袖。

同样在1982到83年间,微芯片和局域网技术猛烈的冲击着黑客道。以太网和摩托罗拉68000微芯片就是一个潜在的有力组合,众多公司纷纷组建起来,着手开发第一代我们如今所说的“工作站”。

1982年,一批来自斯坦福和伯克利的黑客组建了Sun公司[1]。他们坚信:将Unix架设在以68000为基础的机器上,足可以满足五花八门的应用软件所需,可谓是物美价廉之选。他们是对的,其高瞻远瞩为整个业界树立了楷模。这种工作站的价格,虽然大部分个人用户依旧无法承担,但是对于公司和大学来说可算很廉价了。它们组成的网络(人手一台),很快将年迈的VAX和其他分时机型取而代之。









1.Sun公司:Sun Microsystems,在大陆称“太阳计算机系统”,台湾称“昇陽”。
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 17-11-2024 07:42 , Processed in 0.016415 second(s), 20 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表