那时,理查德?格林布莱特还不是黑客。几年以后,作为黑客的鼻祖,当他的大名在遍及全美的各个计算机中心变得无人不知、无人不晓的时候,当他一心一意向自己的目标努力奋斗的故事被人广为传颂,一如他编写的数百万行汇编代码被人广为使用的时候,有人不禁纳闷:这一切究竟是怎么开始的?他坐在椅子上,转过身来,现在的他看上去已不再像当年读大学本科时那样邋遢,一张胖乎乎的娃娃脸,头发乌黑,不善言辞。关于这个问题,他将其归结为“黑客到底是天生的还是后天修炼的”,然后便给出了他那老调重弹、被人戏称为“布莱特主义”的论断:“假如黑客是天生的,那么他们还要经过后天的磨炼;假如他们通过修炼而得道,那么他们便是天生的黑客。”
格林布莱特承认自己是一名天生的黑客。
这倒不是说从他第一次接触PDP-1计算机后便改变了他人生的轨迹。是的,他就是对计算机有股痴迷劲儿。那个礼拜恰巧是MIT本科新生开学前的最后一周,理查德.格林布莱特在投入学业之前还有一段空闲时间,这段时间发生的事情注定会造就他在计算机领域的辉煌成就。他到一个最吸引他的地方去了一趟:学校的广播电台WTBS(MIT的校园广播电台也许是全美唯一一个聘用了大量的学生音响工程师但却没有几个唱片音乐节目主持人的大学广播电台),TMRC,以及26号楼的Kluge Room房间,其中安放着一台PDP-1计算机。
有几名黑客正在玩《太空大战》电子游戏。
玩这个游戏通常有个规矩,就是要把这间屋子的灯关掉,这样一来,围在控制台四周的人脸便会因屏幕上宇宙飞船和点点繁星的照射而发出奇怪的亮光。一张张全神贯注的脸被计算机的光芒照亮——这一幕深深地印在了格林布莱特的脑海中。他欣赏了一会儿游戏中的宇宙大碰撞后,就到隔壁房间观看那台TX-0计算机,它有一排排电子管和晶体管,与众不同的电源,还有数不清的信号灯和开关。他曾作为高中数学俱乐部的一员参观过位于密苏里州哥伦比亚市的州立大学的批处理计算机,他还见过当地一家保险公司有一台巨大的卡片分类机。但是这台计算机和它们都不一样。虽然对广播电台、TMRC特别是那台计算机念念不忘,但他还是开始努力在学业上争取好成绩。
然而,他这份立志做好学生的想法没有保持太长时间。和其他MIT的平庸学生相比,格林布莱特亲自动手尝试的愿望更加强烈。1954年,格林布莱特的父亲来看他,他父母早年离异,打那之后,他就没跟父亲生活在一起。父亲将格林布莱特带到密苏里大学学生会馆(Memorial Student Union)所在地,这里距离格林布莱特在哥伦比亚市的家不远。从这一天起,他的生活被不可逆转地改变了。格林布莱特立刻就喜欢上了这里。除了舒适的大厅、电视、饮料售卖台以外,他喜欢这里最主要的原因是这里的大学生们,时年仅仅9岁的格林布莱特更多地把他们当做了智力竞赛的对象,而不是同学。他经常到那里下国际象棋,并且通常都能轻而易举地击败那些大学生。他是个国际象棋高手。
他的手下败将中有一名因得益于GI法案而在密苏里大学学习工程的学生,名叫莱斯特.莱斯特给予这名9岁天才的馈赠便是手把手地带他进入了电子世界。在这个世界中,1就是1,2就是2,没有半点含糊。在这个世界中,一切都是由逻辑构成的。如果你通过努力学习获得了一个可以控制一切的学位,你就能按照你自己的想法制作任何东西。当时年仅9岁的小格林布莱特因超常的智力水平在同伴中往往感觉不自在,对于这个深受人类社会中司空见惯的父母离异的影响,但自己却又无能为力的孩子来说,电子学绝对是一个极好的“避风港湾”。
莱斯特和格林布莱特一起做业余无线电方面的项目,还会将旧电视机大卸八块。大学毕业前,莱斯特将格林布莱特介绍给了一个叫霍顿的人认识,这个人在当地开了一家无线电用品商店。后来,这家商店成了年轻的格林布莱特高中时的第二个家。
格林布莱特和一位高中同学一道做了一系列项目。项目中用到了放大器、调制器、各式各样难看的真空管装置,还有示波器、蹩脚的无线电设备、电视照相机。对,电视照相机!看起来好像是个不错的思路,于是他们决心自己动手构建它。等到了要选择上哪所大学的时候,理查德.格林布莱特没有过多犹豫就选择了MIT。1962年秋季,他正式成为该校的一名大学生。
第一学期的课程非常严格,但格林布莱特完成得比较顺利。慢慢地,他开始有机会接触到大学里的计算机了。他幸运地选修了一门编号为EE 641的选修课——计算机编程入门,并经常到EAM的打孔机那里给IBM 7090计算机编写程序。另外,他的室友迈克。比勒则学习一门叫“列线图解法”(Nomography)的课程。所有上课的学生都有机会亲自上机使用IBM 1620计算机——这台机器又是放在一个被少数特权人士所独占的地方。格林布莱特经常陪着比勒去1620计算机的机房,先给一摞卡片打上孔, 然后就排队等着。等轮到他们了,他们就将卡片逐个插到阅读器里,绘图机/打印机立刻就能输出结果。“这其实挺有意思的,就像在晚上玩的那些游戏一样有趣,”
比勒后来回忆道,“在别人看体育比赛的时候,或者出去闲逛、喝啤酒的时候,我们就用这种方式摆弄计算机。”虽然上机的时间有限,但他们很喜欢。这激发起格林布莱特进一步学习计算机的欲望。
圣诞节前后的那段时间,他常常和TMRC的那些人混在一起,这终于让他感觉舒服多了。整天跟着像彼得.萨姆森这样的人,很容易进入一种“黑客模式”(计算机的各种状态称为“模式”,黑客们常常借用这样的词汇描述他们日常生活的状态)。萨姆森一直在为这家俱乐部壮观的铁路模型编写控制操作过程的程序,这个程序要求严格按照一张详尽的时间表运行。根据对数字的要求,萨姆森已经在7090计算机上用FOR TRAN语言编写完成了一个这样的程序。格林布莱特决心在PDP-1计算机上编写第一个FORTRAN语言。至于为什么要这么做,他不会对任何人讲——机会要靠自己争取,它是等不来的。如果你想在一台计算机上完成某个任务,但这台计算机上又没有可用的软件,那么给它编一个这样的软件便是自然而然的想法了,然后就可以做自己想做的事情。这就是促使格林布莱特后来的编程水平提升至艺术级的那股动力。
像萨姆森一样,他也做到了。他的软件可以让你用FORTRAN语言编程,将FORTRAN语句代码编译成机器语言,也可以将计算机的机器语言反编译成FORTRAN语言。由于没有足够的PDP-1上机时间,编写FOR TRAN编译器的工作主要是格林布莱特在他自己的房间内完成的。此外,他还在TMRC参与了设计新型底层布局系统的工作。这间屋子的墙皮似乎一直在往下掉(这里的墙壁不论以什么标准来衡量都糟透了,不过这不能怪物业公司,因为他们也属禁止入内的人员之列),并且他们的系统直接嵌入了部分墙壁里面,这是20世纪50年代中期杰克.丹尼斯干的好事。除了这些,还有一个新元件叫“线簧继电器”,这个比以前那个旧的看上去强多了。所以格林布莱特花了大量的时间调试这个新元件。即使再忙,他也没有耽误继续钻研PDP-1计算机。
事情的发展真是滑稽。当你开始一心要做一名好学生,努力提高学习成绩时,你会发现自己会以另外一种眼光重新审视自己的课程:在课堂上学的那些东西和自己正在做的完全风马牛不相及。自己手头正在做的是研究、升级或建造系统,并且显而易见的是,钻研系统只是想让它能动起来,那是一种旨在让自己得到满足的追求。
至少TMRC的人或钻研PDP-1计算机的人似乎都没把他们正在做的事当做哪怕是一个有益的论文课题来看待。虽然计算机是一台非常复杂的机器,但是它与人类社会中的变化无常、来来往往和错综复杂的人际关系还是没法相比。不过与正式或非正式的社会科学方面的研究不同,对科技的钻研不仅可以让你增长知识,而且还可以让你对控制技术逐渐痴迷起来,使你产生一种错觉,即你只需再增加几个功能就能达到掌控一切的目标了。因此,你就会自然而然地用恰当的方法着手在系统内部增加那些似乎必不可少的功能。照此下去,系统功能越完善,你反而会觉得有更多的事情等着你去做。然后有个人(比如马文.明斯基)可能碰巧走过来说:“这儿有个机械臂,我要把它放在这台机器旁边。”一下子,你会觉得世界上没有什么比制作机器人和机械臂之间的接口更重要的事了,你要让这根机械臂听你指挥,还要让这个机器人知道它自己在干什么并为之建立一个系统。接着你的辛勤劳动终于开花结果了。作为一名工程人员,你发明创造的哪样东西可以比得上这个更有意义?你的工程学教授从来没有解决过什么有趣的问题,甚至有趣程度连你当前每天在PDP-1计算机上所解决问题的一半也没有,这就是你的机会。可你们俩到底谁对?
格林布莱特在大二的时候,和他一起研究PDP-1计算机的人员有了很大的变动。虽然最初在TX-0上做研究的那批人离开了好几个,但是又有新的血液输入进来。重新调整后的小组得到了国防部的资助,他们的信心更强了,在研究工作中配合得非常默契。后来他们又添置了一台PDP-1计算机,这台机器安放在新落成的一座9层高的长方形大楼内——这座大楼位于Main Street大街,普通得让人感觉有些麻木:大楼表面没有任何突起,没有窗台的窗户看起来好像是直接喷绘在雪白的墙面上一样。这座大楼名为“科技广场”(Tech Square),MIT和入驻校园的企业客户将这里称为“Project MAC”。PDP-1计算机安放在大楼的9层,这层楼培育出了整整一代的计算机黑客,他们当中在这里消磨时间最多的就是格林布莱特。
有几个黑客(包括格林布莱特本人)在为这个系统工作,有的刚刚开始开发某个涉及人工智能方面的大型项目。他们几个以学生身份受聘的员工还有工资收入(低于最低工资标准)。从这时开始,大家逐渐注意到这个礼貌但略显拘谨的大二学生很可能是未来PDP-1计算机方面的超级巨星。
格林布莱特像变戏法似的编出了大量的代码,他有时会聚精会神地投入到钻研工作中,有时则拿着一大摞打印出来的代码坐在一旁,用笔在上面做着标注。他兼顾PDP-1计算机上的研究和TMRC内的任务,脑子里考虑的尽是程序代码的结构或者他参与设计的俱乐部模型的底层系统。为了能够长时间保持精神集中,他和几个同伴夜以继日地工作——他们每天按照30个小时来过。这种作息时间有利于从事高强度的研究工作,因为平白无故地多出了一段不睡觉的时间可以用来编程。一旦你真的照此方式生活,像睡觉这样不重要的事便不会再来打扰你的工作了。这个想法的目的是让他们的精力保持30个小时,直到精疲力竭,然后回家睡上12个小时。不过也可以在实验室打地铺。然而这个作息时间表有个小小的缺点,就是它会让你的作息时间与现实世界中其他人的正常作息时间不一致,进而影响很多事情,如约会、就餐和上课。但黑客自有办法。常常会有黑客这样询问:“格林布莱特现在处于什么时间?”刚刚见过他的另一个黑客可能这样回答:“我想他正在晚上,大概9点左右的样子。”可是教授们没法自如地调整到那些状态,因此格林布莱特只好旷课。
校方让其留校察看。格林布莱特的母亲于是亲自来到马萨诸塞和校方协商。她为此大费了一番唇舌。“他妈妈非常担心,”他的室友比勒后来说道,“她说她儿子到这里上大学是要拿学位的。但他整天在计算机上忙活的是一个高精尖的项目,此前从没有人涉猎过这个领域。他有另外一些事情要做,想让他对课堂上的知识产生兴趣真的很难。”对格林布莱特来说,他一点也不在乎自己即将因学习成绩太差而面临退学的危险。做他自己的研究才是最重要的:这些事他不仅做得很好,而且乐此不疲。
当他因为作息时间“黑白颠倒”而睡过了头,没有赶上参加一次期末考试以后,最糟糕的时刻终于降临了。与此同时,他也不能再待在MIT的这个学生团体内了。如果没有这样一条规定——当你从MIT退学,你也就没有资格继续作为学生员工待在这里,那么因成绩太差而退学对格林布莱特来说,他的生活完全不会有任何改变。因此,格林布莱特要去找一份工作,一心一意地要找一份白天编程的工作,这样他就能在晚上留在这个地方——科技广场大楼的9层,继续钻研他的系统。他确实这么做了。
……