第1章 技術模型鐵路俱樂部

當年彼得·薩姆森為什麼會深更半夜在mit26號樓裡四處轉悠,可能連他自己都很難解釋清楚,有些事情是無法用語言來表達的。彼得·薩姆森正準備於1958-1959年冬季進入mit讀大學一年級,如果你像他即將認識併成為好友的那些人一樣,你就會知道這根本無需解釋。例如,在迷宮般的實驗室和庫房周圍「偵察」,在機房中尋找電話交換機的秘密,在地下蒸汽管道中追蹤電線或繼電器的路線,這些行為都實屬尋常,根本無需理由。如果遇到一扇關著的門,門後面傳來巨大而又令你非常好奇的噪聲,那麼無需邀請,推開它就是了。接下來,如果沒有人阻止你接近那臺發出噪聲的機器,你就會摸摸它,開啟不斷顫動的開關,看看反應,最後擰開螺絲,拆下一塊板子,碰碰二極體,再擰擰幾個接頭。彼得·薩姆森和他的夥伴就是在這種與外界進行特殊互動的環境中長大的,那時,只有搞清楚東西是如何工作的,才能理解它的意義。如果不動手,怎麼能學到東西呢?

彼得·薩姆森和他的朋友們正是在26號樓的地下室裡發現了eam機房。26號樓是一棟由玻璃和鋼筋建造的長長的大樓,它是mit一棟新蓋的大樓,與麻省大道對面莊嚴的柱式結構建築形成了鮮明對比。eam機房——會計電算化機房(electronicaccountingmachinery)就位於這棟缺乏個性的大樓的地下室裡。這個房間裡隱藏著像計算機一樣執行的機器。

早在1959年,見過計算機的人並不多,更別提親手摸摸了。薩姆森,這個瘦瘦高高、長著一頭紅色捲髮的小夥子,就這樣在造訪mit時看到了計算機——看吧,他拖長了聲音念著,彷彿正在領會(螢幕上閃過的)字裡行間的意思。他的家就在馬薩諸塞州的路威,距離校園只有30英里。這次造訪使他成為了一名「劍橋少年」——該地區無數狂熱追求科學的高中生之一,他們就像受到地球引力一樣,被吸引到這個坐落在劍橋市的校園。他甚至裝配了一臺自己的計算機,用的材料是別人丟棄的彈球機的零部件,因為這是他能夠找到的最好的邏輯單元。

「邏輯單元」這個詞似乎包含了吸引一位碾磨機修理工的兒子——彼得·薩姆森對電子學感興趣的東西。一切都源於興趣。當你帶著探索一切的好奇心成長起來時,發現像電路邏輯這種精緻的、所有連線都必須構成完整迴路的東西的喜悅會讓你無比激動。彼得·薩姆森很早就特別欣賞這些事物的數學簡捷性,他還能夠回憶起在波士頓公共電影片道(wgbh)看到的一個電視節目,這是一個入門介紹,講的是用計算機語言對計算機進行程式設計。這個節目激發了薩姆森的無限想象力,在他看來,計算機無疑就像一盞阿拉丁神燈——你擦擦它,它就會執行你的命令。因此,他努力嘗試學習這個領域的知識,製造他自己的機器,參加科學專案競賽,並來到他像這類人所向往的地方:mit。像他這樣的人是高中生當中最聰明的人,他們戴著像貓頭鷹般的眼鏡,他們沒有發達的胸肌,他們是數學老師眼中耀眼的明星,卻無法通過體育考試,他們不想在舞會上出風頭,而是夢想著能夠進入通用電氣科學競賽的決賽。他的理想是進入mit,在這裡他可以在午夜2點徜徉於走廊裡,尋找著感興趣的東西,在這裡他將真正發現一些深深吸引他的東西,這些發現將把他帶入一種全新的創造過程和生活方式,並把他推向一個只有那些名聲不怎麼好的少數派科幻作家才能夠想象出來的世界的最前沿。他將發現一臺他能夠親自擺弄的計算機。

薩姆森偶然發現的這個eam機房裡裝滿了龐大的鍵控穿孔機,一個個都像檔案櫃那麼大。沒有人看管它們,這個機房只有白天才有工作人員,而且只有一小部分經過嚴格篩選獲得了正式許可的人才有權利把長長的馬尼拉卡片交給操作員,然後操作員根據這些人想要輸入到卡片上的資料來使用機器打孔。卡片上的孔代表了計算機指令,用來告訴計算機把一塊資料放到某個地方,或者在某塊資料上執行一個函式,或者把一塊資料從一個地方移動到另一個地方。一摞這樣的卡片就是一個計算機程式,一個程式就是一系列的指令,最後產生某種預期的結果,就像菜譜上的指示一樣,當你準確地按照菜譜來操作,就可以做出一塊蛋糕。這些卡片將被交給樓上的另一位操作員,他把卡片輸入到「閱讀器」中,閱讀器記錄卡片上孔的位置,然後把資訊傳送給26號樓一層的ibm704計算機——那個龐然大物。

ibm704價值數百萬美元,它佔據了整整一間屋子,始終由一小隊專業的機器操作員看管,而且需要專用的空調,以免機器內部熾熱的電子管由於溫度過高而把資料燒壞。當空調停機時(這經常發生),會發出巨大的聲響,這時三位工程師就會立刻從旁邊的辦公室中跳出來,飛快地開啟機箱,這樣它內部零件才不會融化。負責打孔、把卡片輸入到閱讀器中以及在機器上按動按鈕和開關的這些人通常被稱為牧師(priesthood),而有資格向這些最神聖的牧師提交資料的人則是正式的信徒(acolyte)。這幾乎是一種儀式般的交換。

信徒:哦,機器,你能接受我提供的資訊以便執行我的程式,併為我做一次計算嗎?

牧師(代表機器):好,我們試一試,但我不做任何保證。

通常,即使是這些享有特權的信徒也不允許直接接觸機器,而且他們可能看不到機器「吞食」他們的成批卡片(這個過程有時是幾小時有時甚至是幾天)的結果。

薩姆森知道這些事,當然,這令他失望極了,他想要摸摸那臺機器,因為這是他生命的全部意義。

薩姆森所不知道的(也是他發現後感到很高興的)是eam機房裡也有一臺特殊的打孔機器,它叫做407,不僅能打孔,還能讀取卡片、對卡片分類並把它們列印成清單。看起來這些機器似乎沒有人看守,但它們也可以算是某種計算機。當然,它們使用起來並不輕鬆,要在一塊叫做「插線板」的板子上繞線,這塊板子全是由兩英寸的塑膠方塊做成的,板上佈滿了密密麻麻的孔。如果按照一定的順序把幾百根線從這些孔中穿過,會得到一個像老鼠窩一樣的東西,不過可以把它插入到這臺電子機器中,從而改變機器的屬性。它可以做你想要做的事。

於是,在沒有得到任何人許可的情況下,彼得·薩姆森就和同樣來自mit且都對鐵路模型特別感興趣的幾位好友開始做這些事了。雖然這是他們走向充滿科幻色彩的未來的第一步,並且這一步是那麼偶然,沒有人能夠預想得到,但這也是非主流的亞文化自我引領並發展為一股強大的地下力量,從而最終形成一種真正文化的必由之路。雖然它來得有點唐突,並且未得到正式認可,但這種文化卻是計算機王國的靈魂。我們從技術模型鐵路俱樂部(techmodelrailroadclub,tmrc)第一代計算機駭客的「胡作非為」中就能夠看到這種精神。

彼得·薩姆森在1958年秋天進入mit的第一個星期就加入了tmrc。這所大學的大一新生們參加的第一個活動是個傳統的歡迎會,每個曾經在mit學習的人都參加過與此一模一樣的歡迎會。「看看你左邊的人,再看看你右邊的人,你們三人當中會有一個人不能從本校畢業。」這段講話的目的是為這群新生製造一種危機感。在這些新生進入大學之前的學習生涯中,幾乎從來沒有感到任何學習上的壓力,因為他們都是最聰明的人。但現在不同了,在每位新生左邊或右邊站著的人都和他一樣聰明,也許比他更聰明。

但對某些學生來說,這根本不算是挑戰。這些年輕人以一種難以言表的友好眼光來看待他的同學:或許他們可以相互幫助,共同探索事物的本質,進而掌握它們。已經有很多難題等著他們去解決,為什麼還要在乎那些愚蠢的、喜歡阿諛奉承的老師呢?為什麼還要為分數擔心呢?對彼得·薩姆森這樣的學生來說,探求問題比學位重要得多。

歡迎會之後不久就是新生集會。所有校園組織(包括特殊興趣小組、互助會等)在一個大體育館裡擺好展位以招募新成員。吸引了彼得·薩姆森的小組就是tmrc。其成員是一些熱情的、剃著平頭的高年級學生,他們說話像連珠炮一樣,誇耀說他們在20號樓有一個永久使用的俱樂部活動室,裡面陳列著ho比例尺sup/sup的火車模型。彼得·薩姆森對火車一直很著迷,特別是地鐵。於是他打算去20號樓看看,這是一棟二戰期間修建的臨時性建築,樓的外牆鑲了木瓦。這棟樓的走廊很陰暗,雖然俱樂部的活動室設在二樓,但光線微弱,感覺就像在地下室一樣。

屋內是一個巨大的火車規劃模型。它幾乎佔滿了整個房間,如果你站在一個稱為"thenotch"的小塊控制區域,你會看到一座小城鎮,一個小工業區,一條微型的正在運轉的電車線路,一座紙塑的山,當然,還有好多火車和鐵軌。為了模擬原物,火車模型製作得非常精細,它們在彎彎曲曲的鐵軌上軋軋地行駛著,像畫中那樣完美。

彼得·薩姆森又看了看支撐整個模型的齊胸高的板子下面,這令他大吃一驚。這個模型下面是一個更龐大的像矩陣一樣的、由電線、繼電器和縱橫開關組成的網路。彼得·薩姆森做夢也沒有想到會有這麼複雜的東西。開關排列整齊有序,古銅色的繼電器也一排排整齊地排列著,一長捆紅、藍、黃相間的線纏繞在一起,呈現出彩虹般的顏色,就像愛因斯坦的爆炸式髮型一樣。這是一個令人難以置信的複雜系統,彼得·薩姆森發誓要弄明白它是怎麼工作的。

tmrc的成員在為模型工作40個小時之後,就會得到一把該活動室的門鑰匙。新生集會是在星期五舉行的,到了星期一,彼得·薩姆森就有了一把自己的鑰匙。

tmrc內分為兩個小組。一些成員喜歡花時間來製作有歷史和紀念價值的火車模型,並給它們刷油漆,或者為模型製作真實的景物。這個小組的成員就像是一夥雕刻家和油漆工,他們訂閱了鐵路雜誌,還為俱樂部預訂一些老掉牙的火車線路旅行。另一個小組可以稱為俱樂部的「訊號和動力」(signalsandpower,s&p)小組委員會,他們更關心模型下面的事情。這就是「系統」,它的工作狀態就像魯賓·戈德堡sup/sup和沃納·馮·布勞恩sup/sup之間的協作一樣,而且不斷在改進、更新和完善,有時它還會停止工作,用俱樂部的術語說就是「被搞砸了」。s&p專注於研究系統的工作原理,研究它不斷增加的複雜性,一個部分的修改將對其他部分有何影響,以及如何調整各個部分之間的關係以便讓它們最佳化使用。

系統的很多部件都是電話公司通過「西部電子大學捐贈計劃」捐贈的。俱樂部的指導教師同時負責校園的電話系統,他注意到複雜的電話裝置可以供技術模型鐵路俱樂部的學生們研究。以這套裝置為起點,學生們設計了一種工作模式,允許幾個人同時控制火車,即使火車在同一條鐵軌的不同位置上。利用電話的撥號盤,tmrc的「工程師」們可以指定他們想要控制哪個路段,並從那裡執行火車。這是通過電話公司的幾種型別的中繼器實現的,包括縱橫中繼器和步進式開關,這樣,通過聽「軋-軋-軋」的聲音就可以聽出動力從一塊傳遞到另一塊。

是s&p小組設計了這個絕妙的控制模式,也正是隱藏在s&p小組內心深處的永無休止的好奇心驅使他們在校園中尋找著動手摸摸計算機的機會。他們是「動手主義」的忠實支援者。s&p的負責人是一位名叫鮑勃·桑德斯的高年級師兄,他長著一張圓胖、紅潤的臉,笑聲極具感染力,是一個電子學方面的天才。當他還是芝加哥的一名孩子的時候,就在中學的一個專案中製作了一臺高頻變壓器,這是一個6英尺高的特斯拉線圈,這種線圈是19世紀由一位工程師發明的,能夠發出強烈的電波。桑德斯說他的線圈能夠使好幾個街區的電視收不到訊號。另一個被吸引加入s&p小組的是阿倫·考托克,他來自新譯西州,五短身材,下巴很小,戴著一副厚厚的眼鏡,與薩姆森在同一個班。考托克的家人至今還能夠回想起他在3歲的時候,用一把螺絲刀研究牆上的插座,結果把它拆了下來,導致火花四濺。他在6歲的時候,就能夠安裝電燈和為燈接線了。上高中時,他有一次參觀了附近的哈登菲爾德的mobil研究實驗室,第一次看到了計算機,那次愉快的經歷使他決定進入mit。在大學一年級,他就贏得了tmrc最有能力的s&p人員的殊榮。

s&p小組的人會在週六的時候去薩莫維爾的埃裡哈弗倫舊貨市場淘一些零部件,他們還會連續幾小時坐在小小的轉椅裡(他們把自己的轉椅叫做「睡覺的地方」),研究交換機系統中的關鍵位置,他們會通宵達旦地工作,在沒有任何授權的情況下把tmrc的電話連線到東校區。技術就是他們的一方樂土。

小組的核心成員會連續幾小時待在俱樂部裡,不斷改進他們的系統,討論下一步能做什麼。他們還發明瞭自己的一套外人不怎麼懂的行話,他們總是穿著短袖的格子襯衫,兜裡插著鉛筆,下身則穿著斜紋棉布褲子,而且總是隨身帶著一瓶可口可樂。(tmrc花了165美元買了一臺自己的可樂售賣機,並以5美分一瓶的價格出售,3個月就收回了成本。為了促銷,桑德斯為購買可樂的顧客製造了一臺自動換瓶機,並且一直用了十多年。)他們自己發明的術語是這樣的sup1/sup:當裝置中有一個零件不能工作了,他們就說它"losing";當一個零件壞掉了,他們就說它"munged"(masheduntilnogood);房間角落裡的兩張桌子也不叫辦公檯,而叫做"orifice";堅持上課的人叫做"tool";垃圾叫做"cruft";如果一個正在進行的專案或正在構建的產品不僅僅是為了實現某個建設性目標,而且只要是參與進來就會有莫大的樂趣,那麼這個專案就叫做一個"hack"。

"hack"一詞大概很早就由mit的學生提出了,他們一直用這個詞來形容本校學生髮明的一些精心策劃的惡作劇,例如在校園裡最高的那座樓的屋頂上插滿反光的金屬薄片。但tmrc的人在使用這個詞的時候卻包含著很大的尊敬。雖然可能有人把一個巧妙的中繼器連線叫做"merehack",但大家都知道,一項技藝要想稱得起"hack",它必須有創新、有風格、有技術含量。雖然有人可能會自謙地說他正在"hackingawayatthesystem"(就像揮斧砍圓木),但他的成就可能會被認為是相當了不起的。

s&p小組中效率最高的人非常驕傲地稱他們自己是"hacker"(駭客)。雖然他們僅僅擁有20號樓中的一個俱樂部房間,雖然他們的活動室僅限於"toolroom"(他們的很多研究和技術討論會都是在這間屋子裡舉行的),但他們懷著冰島傳說般的英雄態度無私地奉獻著自己。彼得·薩姆森就是這樣看待他自己和他的朋友們的,在俱樂部的新聞通訊裡,他在一首充滿桑德堡sup/sup風格的詩裡這樣寫道sup2/sup:

switchthrowerfortheworld,

fuzetester,makerofroutes,

playerwiththerailroadsandthesystem'sadvancechopper;

grungy,hairy,sprawling,

machineofthepoint-functionline-o-lite:

theytellmeyouarewickedandibelievethem;forihaveseenyourpaintedlightbulbsunderthe

luciteluringthesystemcoolies...

underthetower,dustallovertheplace,hackingwithbifurcatedsprings

hackingevenasanignorantfreshmanactswhohasneverlostoccupancyandhasdroppedout

hackingthem-boards,forunderitslocksaretheswitches,andunderitscontroltheadvancearound

thelayout,

hacking!

hackingthegrungy,hairy,sprawlinghacksofyouth;uncabled,fryingdiodes,proudtobe

switchthrower,fuze-tester,makerofroutes,playerwithrailroads,andadvancechoppertothe

system.

(詩歌大意:我們是聰明的投球手,我們是引信測試員,我們是開路先鋒,我們研究的是鐵路和系統中先進的斷路器。我們研究的系統非常複雜,我們的機器是衡量計算能力的標誌。趁你剛剛入學,趁你還是俱樂部的一員,趁你還沒有退學,盡情地施展吧!)

只要有可能,薩姆森和其他人就會帶著他們的插線板偷偷溜進eam機房,嘗試著用機器來跟蹤隱藏在地下的交換機。還有一件同樣重要的事,那就是他們看到了機電式計數器的功能,並把它發揮到了極致。

1959年春天,mit開設了一門新課程。這是大一新生可以參加的第一門計算機程式設計課程。授課老師是一個非常嚴肅的人,一頭爆炸式的頭髮,鬍子也是亂蓬蓬的,他就是約翰·麥卡錫。麥卡錫本人是一位數學大師,也是一位典型的心不在焉型教授。校園裡有不少這方面的傳言,說他常常在別人向他提問後幾小時、有時甚至是幾天才會突然給你解答。如果他在走廊上碰到你,不跟你打招呼便用機械而準確的措辭開始滔滔不絕,就好像你們之間的交談剛剛停頓了不到1秒而不是一個星期。不過他遲來的解答通常都能切中要害,精彩絕倫。

麥卡錫是少數幾個以全新的方式使用計算機進行科學調查的人之一。他將自己的研究領域命名為「人工智慧」(artificalintelligence,ai)。這一名字中似乎透露出麥卡錫本人的一種略顯傲慢的味道,這毫無疑問是其研究領域駁雜並且在研究過程中與大家觀點相差甚遠的根源。其實,他認為計算機可能非常聰明。即使在mit這個散發出濃郁科學氣息的地方,絕大多數人還是認為他的想法過於荒謬:他們認為計算機雖然在處理海量數字運算和導彈防禦系統(mit最大的計算機——whirlwind便是專為sage早期預警系統而建造的)方面功不可沒(即使它多少有些昂貴),但他們對那種認為「計算機本身也是科學研究的一個領域」的觀點嗤之以鼻。在20世紀50年代末,電腦科學還沒有正式成為mit的一個系,麥卡錫和其他研究電腦科學的同事都隸屬於電氣工程系,只有這裡才開設這樣一門課程(課程編號是641),就在1959年的春天,考托克、薩姆森和另外幾名tmrc的成員都選修了這門課程。

麥卡錫在ibm704(即那臺巨型計算機)上主持著一個龐大的專案,他們想賦予這臺計算機下國際象棋的非凡本領。在樂於對處在萌芽階段的人工智慧領域品頭論足的批評家看來,這個專案只不過是說明約翰·麥卡錫等人盲目樂觀的一個典型示例而已。但麥卡錫本人卻對計算機能夠做些什麼有著自己的見解,讓計算機下象棋只不過是個開頭。

吸引考托克、薩姆森以及其他人的不是計算機的發展前景,而是眼前的那些有趣的東西。他們想學習怎樣才能讓這些機器運轉起來。儘管麥卡錫在講授編號為641的課程時屢屢談到的新出現的lisp程式語言確實十分有趣,但更吸引他們的還是編寫程式本身,還有當你從「牧師」那裡取回機器自己列印出來的程式,花上好幾個小時看看到底哪裡出了問題或怎樣程式設計效率才能更高時,你所體會到的那種美妙感受。tmrc的駭客們當時正在想辦法進一步利用ibm704計算機做些什麼(不久,該計算機便升級為更先進的709型)。考托克等人想方設法找到了不少上機時間,他們每每在凌晨時到計算中心泡上幾個小時,和「牧師們」也漸漸熟悉起來,最後,他們終於得到恩准,可以按下這臺計算機上的幾個按鈕,觀看計算機執行時閃爍的燈光。

mit某些可以接觸到ibm704的資深人士或在「牧師圈」有熟人的人費了九牛二虎之力才弄明白ibm計算機的幾個不傳之秘。讓人覺得不可思議的是,其中幾名程式設計師(也是麥卡錫手下的研究生)甚至寫了一個利用那一排點點燈光的程式:該程式控制燈光的明暗變化,看上去好像一隻小球從右側向左側滾動;假如操作員在合適的時機撥動開關,燈光的運動方向便會反轉——這絕對就是一隻計算機乒乓球!毫無疑問,這就是你要拿來在同伴面前炫耀的那種東西,而你的同伴一定會看一看你在程式中是如何做到這一點的。

要想在程式設計方面出類拔萃,某些人可能會想方設法用更少的指令完成同樣的任務——這樣的努力確實很有必要,因為當時計算機的記憶體非常小,不可能同時裝入很多條指令。約翰·麥卡錫就曾經見過他那些使用ibm704計算機的研究生打算改進自己的程式以便將指令條數減到最少,並將程式壓縮,這樣只需把較少的卡片輸送到讀卡機裡面就行了。這些人往往為了能夠省下一條或兩條指令而廢寢忘食。麥卡錫常常將這些學生比做滑雪愛好者。他們從「將程式碼效率發揮到極致」的精神中得到的快感就像狂熱的滑雪愛好者從山坡上飛馳而下時體會到的那種感覺。因此,在不影響輸出結果的情況下使用盡量少的程式碼進行計算機程式設計,便被稱為"programbumming"。你會時不時地聽到有人喃喃自語:「也許我還可以再少用幾條指令,這樣我只需三張而不是四張八進位制修正卡就夠用了。」

1959年,麥卡錫的興趣從象棋轉移到一種新的與計算機互動的方式上,這種全新的語言就是"lisp"語言。阿倫·考托克和他的朋友們迫不及待地接手原來的象棋專案。他們在ibm的批處理計算機上,開始了訓練704型、後來的709型甚至更往後的7090型下象棋的漫漫征程。最後,考托克的小組成為整個mit計算機中心計算機用時最大的一群使用者。