|
|
|
|
移动端

第1章 技术模型铁路俱乐部(6)

《黑客》本书更新了一些著名黑客的最新资料,包括比尔·盖茨、马克·扎克伯格、理查德·斯托曼和史蒂夫·沃兹尼亚克,并讲述了从早期计算机研究实验室到最初的家用计算机期间一些妙趣横生的故事。本节为大家介绍技术模型铁路俱乐部。

作者:赵俐/刁海鹏/田俊静 译来源:机械工业出版社|2011-10-20 10:57

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

第1章 技术模型铁路俱乐部(6)

萨姆森并没有对外界透露他的所作所为,而那些外人对他的成就也丝毫不感兴趣。连黑客们自己也不谈论这件事——我们甚至还不清楚他们是否在如此广泛的意义上审视过这一成就。彼得.萨姆森做成了这件事,他的同事也对他的成就表示钦佩,因为这段程序编得非常精妙,仅凭这一个理由就足够了。

………

鲍勃.桑德斯,秃顶、大腹便便,是TX-0 的忠实信徒、TMRC S&P 小组的负责人,也是一名乐于钻研系统的学生。对于像他这样的黑客来说,这就是一种“完美的生活”。桑德斯在芝加哥郊区长大,自打记事起,电学原理和电话电路便一直吸引着他。进入MIT 之前,桑德斯找到了一份理想的暑期工作——为电话公司安装办公室电话总机。一连8个小时,他兴致勃勃地拿着烙铁和钳子在各种系统内忙碌着。虽然午饭时间暂时中止了他的田园诗般的工作,但他还是会抓紧这段时间埋头研究电话公司的手册。正是铁路模型下方的电话公司设备让桑德斯下定决心要在俱乐部中发挥自己的作用。

虽然是高年级学生,但桑德斯在自己的大学生涯里接触到TX-0 计算机的时间比考托克和萨姆森都要晚:因为他抓紧每分每秒建立自己的社交关系网,包括向玛吉.弗伦奇求婚并最终走向婚姻的殿堂。玛吉.弗伦奇当时已经为一个研究项目做了部分和计算机有关的工作了(但她的工作还够不上称为“hack ”)。尽管社交占用了桑德斯很多时间,但TX-0 还是他大学生活的中心。他和普通的黑客一样,也因多次旷课而成绩越来越差。可他并没有对此过于在意,因为他十分清楚自己已经从26 号楼240 房间Tixo 控制台的后面得到了真正的教育。多年以后,他将自己和其他黑客定位为“一群精英”。“其他人逃课,整天待在四层高的楼房里做些没任何用处的东西:要么到物理实验室将小球扔向另一个物体,要么随便做些什么。我们只不过不关心别人正在做什么,因为我们对他们的所作所为不感兴趣。他们研究他们的,我们研究我们的。虽然大家研究的东西很大一部分并不是我们的正式课程,但总的来说我们觉得这一点都不重要。”

黑客们通常昼伏夜出,这是唯一一个充分利用重要的TX-0“业余时间”的方法。白天,桑德斯常常设法在一两节课上露一下脸,然后做些“基本的维护”工作,比如吃饭和上厕所,也许还要到玛吉那里腻上一阵子,不过最后他总是能回到26 号楼。在这里,他会重新浏览一遍前晚编的程序,用9.5 英寸宽的Flexowriter 专用打印纸打印出来,然后在程序清单上圈圈点点,将代码按照他自己的理解升级到下一个操作阶段。时候差不多了,他也许还要到TMRC 泡一会儿,拿自己的程序和别人的交换,大家相互看看别人有什么新点子或程序错误。接下来,桑德斯就又回到26 号楼TX-0 隔壁的Kluge Room,找一台空闲的Flexowriter 来修改自己的程序代码。就算自己忙着,他也不会忘了随时去看看是不是有人取消了1小时的上机时间。他自己的上机时间一般都在凌晨2点或3点。他会在Kluge Room 一直等着,或者回俱乐部打上几圈桥牌,直到有机会上机为止。

坐在控制台面前,你的对面就是装有计算机晶体管的金属架子,上面每一只晶体管表示内存中某个数位为1还是0。桑德斯打开Flexowriter 电传打字机,打字机会首先打出欢迎语——“WALRUS”,那是萨姆森为了向刘易斯.卡洛尔的一句诗“时间到了,海象(Walrus)说……”致敬。看着这条欢迎语,桑德斯会一边笑着一边拉开抽屉,拿出保存着汇编程序的纸带并送到纸带读取器中。现在,计算机已经准备要开始处理他的程序了,于是他把用Flexowriter 打印出来的纸带输入到计算机中。当计算机把他的程序从“源代码”(使用汇编语言)转换成“目标”代码(二进制代码)的时候(即在另一条纸带上击打出二进制代码),他总是盯着那些不停闪烁的灯光。由于这根纸带上是用TX-0 能够理解的语言目标代码书写的,因此可以将其直接送入计算机中,期待着程序的运行结果完美无缺。

这时候,很可能有几个黑客在旁边七嘴八舌,他们手里拿着从楼下自动售货机里买来的可口可乐和垃圾食品,一边笑一边开着玩笑。桑德斯喜欢柠檬口味的果冻蛋糕(其他人把这种蛋糕称作“柠檬糊糊”)。不过在凌晨4点的时候,任何食品都是美味珍馐。当程序开始运行,指示灯一闪一闪地发光,扬声器按照累加寄存器第14 位的内容传出或高或低的嗡嗡声的时候,所有人都目不转睛地看着这一切。程序汇编完并运行后,桑德斯通过CRT 显示器首先看到的就是程序崩溃的信息。于是他伸手拉开抽屉,找到保存着FLIT 调试器的纸带,将它送入计算机。接着这台计算机就变成了一台具有调试功能的机器,然后他再次输入自己的程序。现在,他可以试着查看哪里出了问题。假如幸运的话,他找出了问题所在,就可以输入几条命令,或按照正确的顺序拨动控制台上的开关,或者用Flexowriter 输入一些代码来修改自己的程序。一旦程序运行顺利(假如某种修改方案生效的话,假如他将整间屋子的晶体管、电线、金属和电流通通组合在一起,让它们按照他的设计方案精确地输出运行结果,那么效果总是令人非常满意),他还会尝试让自己的程序能够更完美一些。在他的上机时间结束后(总是会有人跃跃欲试地等着轮到自己上机),桑德斯会利用接下来的几个小时分析程序失败的原因。

在每天上机的高峰时段,黑客们总是非常紧张地工作,但这之前和之后的数小时内,他们也可以进入一种精神高度集中的状态。如果为计算机编写程序,你就必须十分清楚数千个表示信息的位会如何随着指令的变化而变化,并能预测它们的变化效果,甚至学会挖掘、利用其潜在的变化。

当你将所有这些信息印在大脑中以后,就好像将自己的意念和周围的环境(或计算机)完全融合在了一起。有时,你需要好几个小时才能在自己的大脑中把所有指令连成一个整体。一旦到了这个时候,你会非常舍不得结束这种来之不易的状态,你会继续在计算机上工作,或者到隔壁找台空闲的Flexowriter 打字机把程序打印出来再细细地琢磨。你甚至会把这种精神高度集中的状态延续到第二天。

然而不可避免的是,这种“天人合一”情绪已经影响到黑客计算工作以外的方方面面了。由于部分痴迷Tixo 计算机的人加入了TMRC,“刻刀和画笔”小组译注5的人对此十分不满:他们将那些TX-0 黑客视为旨在破坏这个俱乐部的特洛伊木马,认为他们想把俱乐部的工作中心从铁路转向计算。如果参加每周二下午5点15 分召开的俱乐部会议,你就能看到这种担心:黑客们总是抓住每一个可能的议题把会议搞得像他们在TX-0 上编写的程序一样复杂。他们所提出的动议只是为了提出别的动议,而别的动议又再提出另外的动议。他们反对被裁定为违反会议规则,好像它们是大量的计算机错误一样。1959 年11 月24 日那次会议的会议纪要中便记着这么一条:“我们不赞成某些成员促进俱乐部发展的做法,他们过于强调技术研究而疏于阅读《罗伯特议事规则》译注6。”萨姆森便是违反规则最严重的成员之一,有时,甚至有一位怒气冲冲的俱乐部成员提出一项动议,要“买个塞子堵住萨姆森喋喋不休、大放厥词的嘴”。

把会议议程搞乱不过是一个示例,编程所需的逻辑思维方式也影响到了普通活动。你可以向黑客提问并能够感受到他脑中的累加器正在处理每一个数位,最终他会用最为精准的答案回答你的问题。玛吉(此时,她已经是桑德斯的妻子了)每周六上午都会开着自己的大众车到西夫韦超市去采购,当她回来的时候会问自己的丈夫:“你愿意帮我把车上的东西搬进来吗?”鲍勃.桑德斯回答道:“不能。”前几次玛吉觉得十分惊讶,不过还是自己将采购的东西搬进屋子。不过同样的事情发生几次后,她终于忍不住发怒了,气呼呼地冲他大发脾气,质问他为什么对她的要求说“不”。

“你问的其实是个愚蠢的问题,”他回答说,“我当然不愿意帮你把采购的东西搬进来啦。但如果你把‘愿意’两字去掉,问我是否帮你把这些东西搬进来,那就是另一回事了。”

玛吉就好像把一段程序输入到了TX-0 中,结果这段程序崩溃了(如果语法错误,程序总是如此)。只有当她“调试”了自己的问题以后,鲍勃.桑德斯才会让这段“程序”在他自己大脑里的“计算机”中顺利运行。

译注5:指专门制作火车模型并上色的那部分成员。

译注6:该书由亨利.马丁.罗伯特编写,主要讲有关开会的各项规则,包括会议主席的规则、

会议秘书的规则,也有针对不同意见的提出和表达的规则,还有辩论的规则和表决

的规则等。至今已经修订过多次。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

软件架构设计

本书紧紧围绕“软件架构设计”这一主题,立足实践解析了软件架构的概念,阐述了切实可行的软件架构设计方法,提供了可操作性极强的完整的架...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊