书城计算机黑客
2816200000010

第10章 太空大战(1)

1961年夏天,阿伦?考托克和其他TMRC黑客了解到,一家新公司将在不久之后完全免费地为MIT提供一台机器,它比TX-0的交互性提高了好几个层次,它代表着计算领域的下一个阶段。这台机器甚至可能比TX-0更适合黑客使用。

这就是PDP-1。它将永远地改变计算领域。它能进一步拉近黑客依然朦胧的梦想与现实之间的距离。

阿伦.考托克是使用TX-0的真正奇才,享有盛名,因此杰克.丹尼斯雇佣他和桑德斯、萨姆森、瓦格纳以及其他几个人,成立了TX-0的系统编程团队。他们可以获得每小时1.60美元的优厚报酬。对于其中几个黑客来说,这份工作成为了他们不去上课的另一个借口。一些黑客(比如萨姆森)可能永远都不会毕业,并且他们太忙于黑客事业而不会真正对这种损失感到遗憾。考托克则不然,他不但能够完成自己的课程,还能让自己成为“权威”黑客。在TX-0实验室和TMRC,他正在确立自己的传奇地位。那年刚来到MIT的一个黑客还记得考托克给新加入者演示TX-0如何工作时的情景:“我感觉他有点像甲亢患者。”同样希望成为权威黑客的比尔.高斯珀回忆道:“那是因为他说话的语速非常慢,而且胖乎乎的,眼睛还半睁半闭。但这完全是错误的印象。(在TX-0实验室)考托克在人们心目中有着无限的权威。他编写出了国际象棋程序,他懂硬件。”(最后一点绝对不是无足轻重的恭维——“懂硬件”就像是理解了物理性质的精髓一样。)

在PDP-1消息不胫而走的那个夏天,考托克正在为美国西电公司工作,这几乎是一种理想的职业,因为在所有可能的系统中,人们最赞不绝口的就是电话系统。TMRC经常会去参观电话公司的交换台,就像对绘画感兴趣的人会去博物馆参观一样。考托克发现了一个有趣的事实,在经历了数十年的发展而规模庞大的电话公司中,只有少数几个工程师对系统内部的相互关系有着深刻的了解。尽管如此,工程师可以随时提供系统中具体功能的细节,比如纵横制交换和步进式继电器。考托克和其他黑客会不断地向这些专家询问信息,而这些得到夸赞的工程师也会毫不迟疑地回答,他们可能并不知道这些彬彬有礼的大学生们会真的运用这些信息。

考托克十分积极地参与这些参观活动,阅读他能找到的所有技术材料,他还在MIT复杂的电话系统(当时他只了解这个系统的一点皮毛)上试着拨打不同的电话号码,看看会产生什么结果。这些都是基本的研究探索,就像研究TX-0的数字秘密一样。

在1960~1961年之前的那个冬天,TMRC的黑客们忙着开发一个精密的“电话网络指纹系统”,记录通过MIT的专用线路系统可以拨到的所有地点。尽管没有连接到普通的电话线上,但这个系统可以接通林肯实验室,从那里可以接通遍及美国的国防项目的承包商。这是一个关于映射和测试的问题。你可以先拿到一个接入代码,给它添加不同的数字,看看谁会接电话,询问接电话的人在什么地点,然后继续在这个号码中添加数字,让它带你到达下一个地方。有时,如果电话公司对你不加怀疑,你甚至可以接通郊区的外线。就像考托克后来承认的那样:“如果电话系统中有一些设计缺陷,比如人们可以接通原本不应该接通的电话,那么我是无法克制自己不去利用这些漏洞的,但这是他们的问题,不是我的。”

尽管如此,他们的动机仍是研究,而不是欺诈,而且他们认为从这些奇怪的电话连接中非法获益是错误的行为。有时,局外人是无法理解这些的。比如,萨姆森在伯顿。霍尔宿舍的室友不是黑客,他们认为利用系统缺陷没什么不正当的,不用附加系统探索这种神圣正当的理由。很多天来,他们一直在给萨姆森施加压力,最终他妥协了,给了他们一个20位的号码并告诉他们这个号码可以接通外国的电话。“你可以用公寓电话拨打这个号码,”他这么告诉他们,“但是我不希望我在现场。”在他们迫不及待地拨打电话时,萨姆森来到了楼下的电话旁,他刚到这里,电话铃响了。“这里是五角大楼,”他拿起电话用最官方的嗓音低沉有力地说道,“请问您的安全级别是什么?”萨姆森听到楼上的电话那头恐惧的喘气声,然后传来了挂断电话的声音。

很明显,网络指纹识别只是黑客们的追求,他们渴望了解系统,不害怕陷入任何麻烦。

尽管电话公司的奥秘令考托克着迷,但是PDP-1的前景却令他更加兴奋。也许他感觉到了,在这之后,所有的事情,甚至电话入侵都会变得不同了。设计并销售这个新型机器的那些人绝不会是普通计算机公司中毫无新意的工作人员。这家公司是一家名为DEC公司(Digital Equipment Corporation)的全新公司,TX-0的一些使用者知道,DEC的首批产品就是特别针对TX-0而设计的专用接口。在计算领域,与那些穿着灰色法兰绒制服的IBM人员所具有的“批处理”心态相比,DEC的一些创始人有着完全不同的观点,这足以让人兴奋不已。而DEC似乎注意到了TX-0社团的这种随心所欲、互动、即兴、凡事都亲自动手尝试的风格,并设计出了促进此类行为的计算机,这更加激动人心。PDP-1(这三个首字母是“Programmed Data Processor”,即编程数据处理器的缩写,人们认为这个名称没有“计算机”那么有威胁感,计算机的含义包括了所有类型的笨重巨型机器。)将被称为第一台小型计算机,其目的不是为了实现大批量数字的处理任务,而是为了科学探究、数学公式……以及黑客探索。它的外形非常紧凑,整个设备不超过三个冰箱的大小,因此它不需要过多的温度调节。要开启它,你甚至不需要整个一组工作人员按照正确的顺序排列若干个电源,启动时基发生器(time-base generator),或进行其他费力的工作。这台计算机的零售价格也相当便宜,只需12万美元——便宜到人们可以不再抱怨每一秒的计算机时间有多么宝贵。这台机器是DEC制造的第二台PDP-1( 第一台卖给了附近的一家科技公司Bolt Beranek and Newman,也就是BBN),而MIT获得这台机器没有付出任何费用:DEC将其捐献给了RLE实验室。

因此,很明显,黑客们使用PDP-1的时间会比花费在TX-0上的时间更多。

PDP-1附带了一组简单的系统软件,但黑客认为这些软件完全不够用。TX-0的黑客已经习惯于在任何地方使用最先进的交互式软件,那是一组令人眼花缭乱的系统程序,是黑客们自己编写的,能够绝对满足他们对计算机进行控制这一永不停歇的需求。年仅12岁的彼得.多伊奇已经编写出了一个更出色的汇编程序,鲍勃.桑德斯也设计出了FLIT调试器的更为小巧、快速的版本Micro-FLIT。这些程序的产生都得益于一组扩展指令集。一天,经过桑德斯和杰克.丹尼斯的周密规划和设计后,TX-0被关闭了,一群工程师拆出其内部结构并开始利用硬连线将新指令写入机器中。这个艰巨的任务添加了若干条指令,扩展了汇编语言。在完成了拆卸组装的工作后,他们小心翼翼地启动了TX-0,每个人都开始利用新指令疯狂地更新程序并压缩原有程序。

考托克了解到,PDP-1的指令集与TX-0的扩展指令集并没有太大的区别,所以在那个夏天,考托克自然而然地开始利用他所能找到的所有空闲时间为PDP-1编写系统软件。考虑到机器送达后,每个人都会立即投入进来,开始编写程序,因此他着手转换Micro-FLIT调试器,以便大家能够更轻松地在“这台机器”上编写软件。萨姆森马上将考托克的调试器命名为“DDT”,这个名字会一直沿用下去,而程序本身会被那些希望添加功能或压缩指令的黑客们不停地修改。

考托克不是唯一一个做好准备迎接PDP-1到来的人。就像是一群形态各异的准父母,其他黑客也忙于为即将来到自己家庭的新生儿编织着“软件的婴儿袜和毯子”,这样,这个计算王国的注定王位继承人在9月末来到这里的时候将立即享受到大家的欢迎。

黑客们帮忙将PDP-1安放到它的新家,也就是TX-0隔壁的房间Kluge Room。它非常漂亮:坐在只有TX-0一半长的控制台后,你会看到一个排列紧凑的面板,上面布满了开关和指示灯;面板旁边是显示屏,装在一个浅蓝色的六面外壳中;显示屏后面是高大的机柜,有一台冰箱的大小、三台冰箱的厚度,里面是电线、面板、开关和晶体管——当然机柜是禁止入内的。PDP-1连接了一台电传打字机用于在线输入(人们常常抱怨Flexowriter电传打字机的噪声,最后它被改装后的IBM打字机所取代,但IBM的打字机并不那么好用),以及一台高速纸带读取设备,这也是用于输入的设备。

总而言之,这是一个绝对美妙的玩具。

杰克.丹尼斯喜欢BBN为PDP-1原型编写的一些软件,特别是汇编程序。但是,考托克在看到这个汇编程序运行的时候会觉得不舒服(它的运行模式似乎不符合他喜欢的天马行空的风格),于是考托克和其他几个黑客告诉丹尼斯,他们希望编写自己的汇编程序。“这可不是个好主意。”丹尼斯说,他希望有一个可以立即启动并运行的汇编程序,并认为这些黑客要写出汇编程序需要花费好几周的时间。

考托克和其他人态度坚定。这是他们赖以工作的程序,它必须非常完美。(当然,没有程序是完美的,但是这并不会阻止黑客对完美的追求。)

“这样吧,”这位憨态可掬的20岁青年考托克对持怀疑态度却有同情心的杰克.丹尼斯说道,“如果我们在周末编写这个程序,并能让它工作,你会为我们所花费的时间支付薪水吗?”

根据当时他们的薪酬水平,这个程序的总报酬低于500美元。“这听起来很公平。”丹尼斯说道。

于是,在1961年9月末的一个周五晚上,考托克、萨姆森、桑德斯、瓦格纳和其他两个黑客开始工作了。他们认为应该从丹尼斯编写了初始版本并由12岁的彼得.多伊奇等人修改过的TX-0汇编程序开始着手。他们不会改变输入或输出,也不会重新设计算法。每个黑客都将负责TX-0程序中的一部分,将其转换成PDP-1代码。他们不眠不休。6名黑客在那个周末连续工作了250个人工小时,编写代码、调试,并就着从TMRC娱乐室拿来的可口可乐把满嘴的中餐外卖送到胃里。这是一次编程的狂欢盛宴。星期一,当杰克.丹尼斯走进实验室时,他惊奇地发现PDP-1中已经加载了这个汇编程序,它正在演示将自己的代码汇编成二进制。

纯粹凭借着他们的技术实力,TX-0,不,PDP-1的黑客们在一个周末编写出了计算机行业需要数周、甚至可能需要好几个月才能顺利完成的程序。对于这种项目,计算机行业不经过申请、研究、沟通和执行决定等漫长乏味的流程是不太可能实现的,在这个过程中很有可能还会经历相当大的妥协。这个项目也许根本就不会完成,而这是黑客道德的胜利。

这些黑客甚至获得了使用这台新机器的更多机会,比他们之前设法使用TX-0的时间还多,几乎所有的黑客都将自己的工作转移到了Kluge Room。只有少数几个顽固派依然在使用TX-0,而对于PDP-1的黑客们来说,这很适合开一些无伤大雅的玩笑。为了帮助记忆,PDP-1的黑客们在这个全新机器指令集的基础上发明了一些缩写,包括一些奇异的指令,比如DAC(寄存累加器)、LIO(加载输入/输出)、DPY(部署)

和JMP。PDP-1团队会站成一排,然后整齐地喊出:

LAC,

DAC,

DIPPY DAP,

LIO,

DIO

JUMP!

在喊出最后一个单词“Jump!”(跳!)时,他们会同时跳到右侧。他们缺乏舞蹈技巧,却有着可以弥补这一切的热情:这台机器的美妙以及计算机的魅力令他们兴奋不已。