起初,multics系統是mit與通用電氣公司合作的產物,接著honeywell公司sup/sup也參與進來了。這個系統到處都是毛病。當駭客們聽說要讓它執行在帶電傳打字機的model33型終端上,而沒有使用更快的互動式crt顯示器時,他們便斷定這個系統簡直沒救了。multics沒有用效率更高的機器語言,而是用ibm自己的名為pl/i的計算機語言編寫的,這對駭客們來說簡直駭人聽聞。當這個系統首次執行的時候,它的速度慢得像烏龜一樣。由於速度太慢,駭客們得出結論,認為該系統的大腦一定受到了損傷——腦殘。這一經常被用來形容multics的詞現在已經變成駭客們標準的輕蔑語。
不過multics最讓人不可接受的是其無處不在的安全特性以及根據使用者上機時間收取費用。multics的設計理念便是要掏走使用者口袋裡的最後一枚硬幣:你要為自己佔用的記憶體付費,為佔用的磁碟空間付更多費用,為使用時間付的還要多。與此同時,multics的那些管理者還公然宣稱只有這種方法才能維持公共裝置的運轉。這一系統完全顛覆了在其周圍傳播著的駭客道德——它非但沒有鼓勵大家把更多的時間用於上機(按照駭客的觀念,分時計算機唯一的好處就是增大了大家的上機機會),反而在你登入系統後還要求你儘可能減少上機時間,儘量少地使用計算機的各種設施!multics的設計理念簡直太糟糕了。
駭客們用盡各種技巧和手段在multics系統上「大鬧天宮」。這麼做似乎成了他們每天的工作。正如明斯基後來說的那樣:「有些人做的專案其他人並不喜歡,因此這些人就會對做專案的人開各種各樣五花八門的玩笑,為的就是不與他們共事……這些駭客總是用一些荒唐的行動來打亂教授們的工作。」
鑑於駭客的襲擾活動有日益游擊化的趨勢,ai實驗室的管理方不得不小心謹慎地處理可能對駭客的工作環境造成影響的意見。1967年前後,那些管理者打算進行一次大改革,他們要將駭客鍾愛的pdp-6計算機上的作業系統更換為一套分時作業系統。
那時候,明斯基已經不再做多少ai實驗室的管理工作,交由他的朋友,也是尼爾森在informationinternational公司的老闆愛德·弗雷德金來負責。當時愛德·弗雷德金也在進行角色轉換,逐漸從業務工作中脫身,開始擔任mit的教授。(弗雷德金後來成為系裡最年輕的正教授,也是唯一一位沒有學位的正教授。)由於弗雷德金自己就是一個頂尖的程式設計師,因此他已經和駭客相差不遠了。他十分欣賞通過「無為而治」的方式讓駭客隨意發揮自己的聰明才智,他認為只有這樣,實驗室才能多出成果。但有時他覺得駭客也能夠從嚴密的分工協作中受益。在他剛剛接掌實驗室管理大權的時候曾經組織過一次「人浪」式的攻關,打算用這種方式解決一個機器人技術方面的問題。他親自為每一名駭客佈置任務,要求他們各自解決該問題的某一具體部分。但最後他的努力還是草草收場了事。「所有人都認為我瘋了。」弗雷德金後來回憶道。他最後還是接受了這樣一個事實,即讓駭客做事的最佳方式就是向他們提出建議,接著期待他們能對這個建議產生足夠的興趣,然後你就能獲得無論業界還是學術界都聞所未聞的成果。
明斯基和弗雷德金一致認為分時系統是非常重要的。駭客和「官方授權的使用者」都對pdp-6計算機有著持續不斷的需求,但不管是哪一方都飽受長時間苦等上機機會的折磨。儘管如此,駭客們還是認為分時系統難以接受。他們拿ctss、multics甚至還有pdp-1上傑克·丹尼斯的更為友善的系統為例,抱怨說假如一個人同時和很多人共享同一臺計算機,那麼他就必須忍受執行速度變慢、計算能力下降的後果。
駭客們指出,在分時系統下有幾個大型程式根本無法執行,其中之一便是彼得·薩姆森一直以來都在編寫和完善的怪獸程式。那是他剛剛開始使用tx-0計算機程式設計時順帶編寫的。如果你輸入mtasup/sup下屬兩個地鐵站的站名,這個程式就會告訴你應該乘坐哪條線路以及在哪裡換乘等才能從一個車站到達另一個車站。現在,薩姆森正在處理整個紐約的地鐵系統……他想將整個系統都裝入計算機的記憶體,並將全部列車時刻表儲存在一個計算機可以訪問得到的資料磁碟中。有一天,他啟動了這個程式,希望找出一條沒有重複路線又能走遍整個紐約地鐵系統的線路。這一課題吸引了部分媒體的關注,接著就有人建議看一看是否可以用pdp-6計算機來完成這項任務,並打破此前由一名哈佛大學的學生創造的遊遍紐約市所有地鐵站的記錄。
經過幾個月的努力,薩姆森終於拿出了自己的方案並且於某一天由兩名駭客去親自實踐。位於曼哈頓的mit校友俱樂部有一臺電傳打字機,它可以連線到這臺pdp-6計算機上。總共有20多名駭客擔任通訊員在這條線路的沿途守候著,他們按時通過公共電話亭彙報最新的進度資訊,報告最近的火車執行情況、晚點情況並記錄未經過的線路。另一些駭客則將這些資訊通過電傳打字機輸入,返回給劍橋的pdp-6去計算整個線路的變動情況。那兩名充當乘客的駭客每經過一站,薩姆森便在一張地圖上將該站劃去。這些留著軍人般小平頭的瘋狂傢伙(他們和那些留著長髮、採用其他舉動製造新聞效應的抗議者們形成了鮮明的對比),他們的這一設想給了媒體極大的想象空間並得到一整天的關注。"thegreatsubwayhack"(精彩的地鐵程式)這篇報道便記錄下了這次值得永遠銘記的pdp-6應用例項。
這件事也強調了格林布萊特、高斯珀和其他駭客堅持的那個最基本的觀點,即這一奇蹟只有在程式使用全部計算機資源的情況下才能實現。駭客們輪流上機使用那臺pdp-6計算機,就好像它是他們自己的個人計算機一樣。他們常常執行一些顯示程式,這些程式採用即時工作模式,要求計算機不斷地重新整理顯示器螢幕;分時計算機系統則會大大降低顯示程式的執行速度。駭客們已經習慣了因獨佔pdp-6的控制權而不時出現的小小「裝飾」,例如他們可以通過閃爍的指示燈燈光跟蹤程式的進度(燈光的閃爍可以指示哪些計算機暫存器正在進行讀寫操作)。這些額外的「裝飾」會隨著分時系統的引入而不復存在。
不過說到底,分時問題是一個美學問題,只不過「無法完全控制整個計算機」的理念讓人覺得心裡不舒服而已。即使計算機在分時系統下能夠以和單使用者模式幾乎完全一樣的方式對使用者做出反應,你心裡還是很清楚:它已經並不完全屬於你一個人了。
駭客們在這個問題上的固執態度折射出他們對計算工作的質量非常注重,他們不打算為了使用一個低階的系統而讓步,哪怕這個系統會讓更多的人有機會使用計算機並且也許還會將探索計算機世界的福音廣泛地傳播開來。他們認為,只有儘可能地使用最好的系統才會有助於探索計算機的奧秘。分時系統根本算不上好系統。
弗雷德金面對的是一場艱難的政治鬥爭。他的策略是扭轉以格林布萊特為代表的、對分時系統的極端牴觸情緒。弗雷德金和格林布萊特倆人的關係還是比較密切的。弗雷德金是9樓所有人中唯一稱呼格林布萊特為「裡基」(裡基,是正式名「理查德」的暱稱——譯者注)的人。於是他主動和格林布萊特套近乎,找各種理由去打動他。他告訴格林布萊特,新增一件硬體裝置會讓pdp-6的計算能力大為改觀,這個新增的裝置會將現有記憶體增大到超過世界上任何一臺計算機。他還保證新的分時計算機系統會比迄今為止的任何系統都好,並且駭客對這個系統也擁有控制權。就這樣,他連著對格林布萊特做了好幾個禮拜的思想工作,最後裡基·格林布萊特終於同意給pdp-6計算機裝上一套分時系統。
就在說服了格林布萊特後沒多久,一天,高斯珀和另外幾名駭客一起走進了弗雷德金的辦公室。這些人在弗雷德金的辦公桌前一字排開,用冷冰冰的眼神齊刷刷地盯著他。
「出什麼事了?」弗雷德金問道。
他們繼續盯著他,又看了好一會兒,最後才說:「我們想知道你對格林布萊特做了什麼,我們有理由相信你對他進行了催眠。」
高斯珀極其不能接受許多人同時對那臺pdp-6計算機發號施令。他的這一舉動讓弗雷德金想起了艾茵·蘭德(aynrand)的小說《thefountainhead》(源頭)中一位名叫洛克的建築師。這名建築師設計了一座漂亮的建築。當洛克的上司接手了整個設計並把這座建築弄得不再像從前那樣以後,洛克炸燬了那座建築。弗雷德金後來回憶說,高斯珀告訴他,如果他堅持在pdp-6上安裝分時系統,高斯珀就只有將那臺機器毀掉。「他覺得假如要對pdp-6做那麼可怕的事情,他就只有毀了它。我理解這種感覺,於是我做了部分讓步。」新的折中方案就是這臺機器可以在夜晚以單使用者模式執行,如此一來,駭客們就能夠執行他們那些龐大的程式,並且這臺pdp-6也可以任由他們發號施令了。
整個分時系統的實驗實際上並沒有開展起來。原因是有人編寫了一個特別的、新的分時系統,而這個新系統的靈魂便是駭客道德。
系統的核心是由格林布萊特和尼爾森共同編寫的,他們夜以繼日地工作了幾周才完成。就在這款軟體部分完成後,湯姆·奈特和其他駭客開始對其做些必要的改造以便適應pdp-6計算機和全新的附加記憶體裝置——這個裝置裝在一隻巨大的機櫃裡面,機櫃的體積相當於兩臺自助洗衣店裡的大型洗衣機,它有個暱稱,叫"mobymemory"。儘管管理層批准駭客自己開發分時系統,但格林布萊特和其他駭客卻對這個系統的最終特性擁有完全的發言權。這個新的分時系統與其他系統(例如ctss系統,即「相容分時系統」)有什麼不同呢?其中一個不同之處就是它的名字,湯姆·奈特將這款駭客自己編寫的系統命名為:不相容分時系統(its)。
這個名號頗具諷刺意味,因為就與其他系統和程式的友好程度來說,its的相容性比ctss更強。就駭客道德的理念來說,its更是不在話下。its可以輕而易舉地連線到其他東西上——這種方式賦予系統無限的擴充套件能力,方便使用者有效地探索計算機世界。在任何分時系統中,幾名使用者能夠同時執行在its環境下編寫的程式。但在its上,一名使用者也可以同時執行好幾個程式。its還具有異常強大的顯示功能,並有一個在當時非常先進的編輯軟體,這個軟體使用的是全屏方式(格林布萊特後來自豪地說:「這個編輯軟體比世界上其他同類軟體早了好幾年。」)。由於駭客們希望在分時系統下計算機的執行速度能像在單使用者模式下那樣迅速,因此格林布萊特和尼爾森用機器語言編寫的程式碼,將使用者在分時系統上對計算機的控制能力提高到了前所未有的程度。
its中對駭客道德價值觀的體現更加明顯。幾乎與所有其他分時系統不同,its並沒有採用口令機制。實際上,這個系統被設計成允許駭客儘可能多地訪問他人的檔案。以前的做法是將紙帶放進抽屜裡,抽屜就成了一個集中存放程式的程式庫,使用者可以使用或者改動這些程式。這種方式現在也嵌入到its中了,每個使用者都能開啟儲存在磁碟上的其他人的個人檔案。its的開放式架構鼓勵使用者檢視其他人的檔案,看看其他人正在編寫哪些精巧的程式,或在別人的程式中找找錯誤然後幫他改掉。如果想要一個計算正弦函式的例程,你就可以看看高斯珀的檔案,找出他用10條指令編寫的那段程式程式碼。你可以瀏覽頂尖駭客編寫的程式,找些靈感,甚至對別人的程式碼誇獎一番。its的理念就是:計算機程式並不屬於個人,而屬於世界上的所有使用者。
此外,its還保留了駭客都有的那種集體感,即當只有一名駭客在使用計算機時,其他人圍在旁邊看他編寫程式碼的那種感覺。通過一個精巧的矩陣開關,任何its下的使用者都可通過鍵入一條命令找出都有誰正在同時使用這個系統,而且還能切換到任何一個人的終端螢幕上觀看他的一舉一動。你甚至可以和其他使用者一道進行軟體開發。例如,奈特可能登入進來,發現高斯珀正在另一臺終端上忙碌著,便可以將自己的程式提供給他參考,然後還能在高斯珀正在編寫的程式中插入幾行自己的程式碼。
這一功能還有一些有趣的用途。後來,當奈特構建出了一些彩色圖形終端之後,有一個使用者也許正在為自己的程式絞盡腦汁、冥思苦想的時候,突然螢幕上出現一隻六條腿的……臭蟲。這隻臭蟲可能會爬到螢幕上方,大口地吃掉你的程式碼,到處留下碎屑。在另外一個終端那裡可能會爆發出異常興奮的大笑聲,其實這種笑聲是一種外人難以理解的表達方式,他是在告訴你,你的程式到處都是毛病。但即便如此,任何使用者都不僅有權開這樣的玩笑,而且有權開啟你的檔案,刪掉(他們稱為「割掉」)你辛辛苦苦編寫的程式和寶貴的註釋,但還沒有人這麼做過。在its系統上,駭客都把自己的名譽看得很重。
its最能體現它對使用者的信任之處,就是它對「有意使系統崩潰」這種行為的處理。一名駭客的正式「成人禮」便是深入到分時系統內部,用數字方式犯下這種「故意傷害罪」(可能讓暫存器進行了大量的迴圈計算),進而導致系統崩潰。此時系統完全死掉了。這種情況時不時地會發生幾次,於是有些人就必須對系統加以完善,避免類似事件再次發生。系統的安全措施越嚴密,某些喜歡胡鬧的駭客想要馴服這個系統的挑戰也就越艱鉅。例如,要想讓multics崩潰就非常不容易。因此,總是有些程式設計師大俠通過讓multics崩潰的方式來證明自己的能力。
相比之下,its則準備了一條命令,它的具體功能就是讓整個系統癱瘓。你要做的就是輸入"killsystem"這條命令,然後這臺pdp-6計算機就會慢慢地停止運轉。設計這一命令的初衷是讓系統崩潰變得索然無味,因為那隻不過是舉手之勞而已。
在極少數情況下,有些「失敗者」會看著所有可用命令,自言自語道:「kill這個命令是幹什麼用的?」接著整個系統便會停止下來,不過its大體上證明了這一點,即「最好的安全措施就是沒有安全措施」。
當然,在把its裝到pdp-6計算機上後,有一段時間除錯工作做得比較多,從某種意義上說,除錯和修改工作延續了10多年。很多駭客除錯its的時候一改就是好幾天,格林布萊特就是其中最突出的一個。他們搜尋程式錯誤,增加新的功能,修改部分程式碼以提高速度……這些人不停地對its進行著修改和完善,最後its實際上已經變成系統駭客的家園了。
在ai實驗室這個圈子裡,系統駭客是最重要的角色。駭客道德的觀念允許任何人對its進行修改和完善,但如果進行系統程式的修正,那麼你的工作質量便要被大家放到明亮的聚光燈下觀察,也就是所謂的公共後果——如果你打算改進midas彙程式設計式或its-ddt偵錯程式,要是你犯了一個可怕的錯誤,那麼所有人的程式便會無一例外地崩潰,人們會找出應該由「失敗者」負責的那部分錯誤。另一方面,駭客思想中還沒有什麼東西比系統軟體的質量更重要。
不過,那些制定計劃的人卻並沒有給予編制系統程式同等的重視。他們在意的是應用程式,即用計算機完成遠遠超出計算工作本身的任務,利用計算機建立一些有用的概念和工具以造福人類。但對於駭客們來說,系統開發便是他們的終極目標。畢竟,大多數駭客早在孩提時代便一直鍾情於各種系統。一旦認識到建立系統的終極工具是計算機,他們就將生活中所有其他的東西全拋在腦後,義無反顧地投入其中。使用計算機,不僅可以建立令人目眩神馳,有如拜占庭風格般複雜、協調和高效的系統,而且由於有了可以使用"moby"擴充套件記憶體的作業系統(例如its),計算機本身實際上也成了他們感興趣的系統。its之美體現在它將自己毫無保留地呈現出來,讓你能夠非常容易地編寫適用的、新的增強功能。its幾乎就是駭客們的起居室,在這裡每個人都可以按自己的喜好使用它,每個人都可以找到自己的一方樂土並盡情施展才華。its是完美的,是可以用來建立其他系統的系統。
這是一個無窮無盡的螺旋上升的邏輯迴圈。當使用its時,人們可能會對這個或那個功能深表讚歎,但他們想得更多的是如何完善這個系統。這種想法太自然不過了,因為由駭客思想得到的一個重要推論是:沒有任何一個系統或程式是真正完成了的,你總能讓它變得再好一點。每個系統都是活生生的有機體:如果人們不再對它進行維護和完善,它就會死亡。
當你完成了一個系統程式(例如一個彙程式設計式或偵錯程式),或者某種執行速度快且(如你所願)運轉良好(例如一個多路複用器的輸出介面)的東西,你同時也製造出了一件工具、提出了一項發明或改進了某種東西,將你今後的探索提高到了一個更高的層次。這是一個特別的迴圈過程,是螺旋式上升的過程。在這個過程中,系統程式設計師就是他為之完善的系統的忠實使用者。有很多駭客認為那些妨礙他們進行最最佳化程式設計、時不時跳出來的煩人問題都是通過事後的修補解決的,並進而使系統最終達到藝術級的完美程度。(當然,真正的最最佳化程式設計只有在消除了人與純計算機之間的障礙之後才能實現。不過這種理想情況不可能出現,因為那必須讓駭客和計算機在生物學上合二為一才可以。)在駭客創造的its系統下,編寫程式變得加容易,程式執行速度也大為提高,並且該系統還允許程式通過使用更多的機器資源獲得更強的計算能力。因此,駭客不僅可以從編寫優秀的系統程式中得到極大的滿足(因為每個人都要用到這種程式並對此表示欽佩),而且從今以後他還將在編寫下一個系統程式的路上向前走得更遠。
下面引用一位名叫唐·伊斯特萊克的駭客在its首次執行5年後所撰寫的進度報告sup10/sup,內容如下:
its系統並非「人浪」的產物或無心而為的產物。這個系統的效能完善工作是漸進式的,並且自始至終從未停止過。一個大型系統的完善工作永無止境,這是千真萬確的……總的來說,這個系統可以說是由使用者設計且由設計者具體實現的。正是由於設計者也同時是實現者,才得以避免很多不切實際的軟體設計問題。當軟體的實現者也是設計者的時候,他不僅在程式設計過程中悠閒放鬆,而且其自豪感也與日俱增。如果使用者就是設計者,那麼its的各個功能就絕不可能華而不實;如果設計者便是使用者,那麼its的各個功能用起來還能不得心應手嗎?
這段散文有點晦澀難懂,但它的觀點卻非常鮮明——its便是駭客道德的又一個極為強烈的體現。很多人甚至認為這個系統應該成為遍及全美的所有分時系統的國家標準,讓美國每一個計算機系統都能傳播駭客道德的福音,消滅討厭的口令概念,促進人們親自動手、無拘無束地參與系統除錯活動,向世人展示通過分享軟體(程式並不屬於作者,而屬於計算機的每一個使用者)獲得的增效力量。
1968年,幾家主要的計算機學術機構在猶他大學召開了一次會議,目的是制定分時系統的標準,以便用於dec公司即將推出的最新機型——pdp-10計算機。pdp-6和pdp-6相比沒有太大的變化,大家考慮的兩個備選作業系統之一便是駭客開發的「不相容分時系統」。另一個作業系統的名字是tenex,它是由bbn公司編寫的,不過當時尚未真正使用過。格林布萊特和奈特代表mit出席了這次會議,他們兩人的與會給大會帶來了一道別樣的風景——兩名駭客試圖說服參會的十幾所大型院校的主管們,讓他們將價值幾百萬美元的裝置從一開始就託付給一個沒有內建任何安全機制的作業系統!
他們的努力失敗了。
奈特後來說mit的駭客們丟掉這次機會完全是因為幼稚。他猜在大會辯論結束前結果就已經定下來了——基於駭客道德的理念編制的系統對那些機構來說步子邁得太大了,所以他們沒法接受。不過格林布萊特後來堅持說:「只要我們想,我們其實完全能夠說服他們。」不過,用他的話說,「繼續向前」才是更重要的。對格林布萊特來說,將駭客道德傳播到劍橋以外的地方本就不是他要考慮的事。他認為關注科技廣場大樓這裡的芸芸眾生才是王道,因為這裡是駭客的烏托邦,這裡的人將在駭客道德的指引下建立愈發完美的系統,並以此讓世界刮目相看。
piglatin是按照如下簡單規則轉換每個英文單詞的一種自發明語言。1)如果單詞以子音開頭,那麼把起始子音字串(即第一個母音字母前的所有字母)從單詞開始移到尾部,並加上字尾ay,如"string"變換後為"ingstray"。2)如果單詞以母音開頭,則加字尾way,如"apple"變換後為"appleway"。
tomsawyer(湯姆·索亞),出自馬克·吐溫1876年的小說《湯姆·索亞歷險記》。小說主人公湯姆·索亞天真活潑,富於幻想和冒險,不堪忍受束縛個性,枯燥乏味的生活,幻想幹一番英雄事業。其中有一段湯姆·索亞和小夥伴們一起粉刷牆壁的情節。
fubar,是"fuckedupbeyondallrecognition/anyrepair"的首字母縮寫,這句短語的意思是:被搞得面目全非。
此處指計算機本身的安全稽核機制。
honeywell,著名電子安防產品製造商和服務商。
馬薩諸塞州運輸管理局。