歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Just for Fun - 2第二章

Just for Fun - 2第二章

日期:2017/2/27 9:47:56   编辑:更多Linux
  第二章 一種操作系統的誕生 有些人記憶時間的方法是通過他們曾經駕駛過什麼樣的車子,干過什麼樣的工作,或在什麼地方住過,以及追求過什麼樣的情人。而我的生涯卻是由電腦來劃分的。 我成長期間只有過三台電腦。上面提到過的VIC-20,是我外祖父留給我的遺產。它是“家用”電腦中的一種,是當今PC機的前身。般長64電腦後來成了VIC-20的老大哥,接踵而至的是Amiga,這種機器在歐洲特別受歡迎。這些電腦從來未像PC機甚至蘋果II那樣流行過,我在玩VIC的時候,蘋果II已經很流行了。 在那個年代,PC機普及之前,家用電腦的多數程序使用的都是匯編語言。它們都有自身的操作系統,等同於PC機裡的DOS。由於機器不同,操作系統很可能是一種簡單的格式,或是增強的格式。那時沒有什麼技術標准,許多公司都想控制市場。最有名的公司之一就是Amiga。我現在句子的開頭都要用上“在那個年代……”,真是不可思議。 等我對VIC-20玩得已經很精通後,我便開始攢錢想買一台下一代的電腦。這在我生活中是一件大事。前面我已經提到過,我對我的家人在某個特定的時間住在什麼地方,以及其他許多事情都記不清了,但我購買第二台電腦的過程卻很難忘記。 我攢了一些聖誕節和生日的壓歲錢(我生於12月28日,那兩個節日基本上湊在了一起)。有一年夏天我還參加了赫爾辛基公司清潔隊,掙了一些錢。赫爾辛基的許多花園沒有美化,保養得不太好,更像是一些娛樂場所和綠地,長著高高的樹林。我們所做的就是鋸掉長高的灌木叢並把死掉的殘枝拾走--這種活兒還挺有意思。我一貫喜歡室外運動。曾經一度,我還當過郵差,但送的不是報紙而是垃圾郵件。細想起來,我在夏天基本不怎麼打工。但在那些日子裡還是干了一些活。總體來講,我的錢基本都是學校發給的獎學金。 在芬蘭,給學校捐款是很普遍的事情,連公立小學也有人贊助。所以從小學四年級開始學生就能得錢,發放的方式完全由建立基金的人決定。我記得有一種捐款是獎給班裡最受人愛戴的學生的。當時我們六年級,全班還真的舉手投票表決,看誰能得到那筆錢。順便說一下,我當時未被選中。獎金僅有兩百芬蘭馬克,當時只值四十美元,但對一個最受歡迎的六年級學生來說似乎已不是個小數目了。 通常情況下,在某一個學科或體育項目中有突出表現的學生都能得到獎學金。許多獎項都是由具體的學校發放或由州政府贊助的。有些獎學金隨著時間的推移數目越來越少。我記得有一種獎項最後只值一毛錢。發生這種情況時,學校也會出些錢補進去,但是盡管如此數目仍然不多。這樣做的目的僅僅是在每年當中把發放獎學金的傳統繼續下去。芬蘭對學術傳統非常認真,這當然不失為一件好事。 於是我作為優秀的數學學生,每年都能得到獎學金。上高中後,獎金的數目越來越大,最多的時候可以達到五百美元左右。因此我買第二台電腦的錢基本上是這麼來的,我每月的生活費肯定付不起電腦錢。此外我還從我爸爸那裡借了一些錢。 當時是1986或1987年。我十六或十七歲。那個時候我已不再打藍球。決定買何種電腦之前,我花了大量時間進行了一番調查。當時的PC質量還不太好,我便決定不買PC機。 我選擇的是Sinclair QL,你們當中的許多人大概太年輕,對這種機子沒有記憶。 下面是QL的簡單歷史:當時,Sinclair是市場上32比特的機器之一,主要用於家庭。那家公司的創始人克裡夫·辛克萊爾(Clive Sinclair)在英國等同於史蒂夫·沃斯尼亞克(Steve Wosniak)。他制作出這些電腦的配套元件,然後以Timex的品牌在美國銷售。沒錯,一家制造鐘表的公司進口Sinclair的元件,然後再打著Times品牌在這裡賣出。早期銷售的也是配套元件,他後來開始銷售組裝好的機器。 Sinclair的操作系統叫做Q-DOS。這種操作系統是專門為那種電腦寫的。按照當時的情況,它的BASIC語言非常先進,而且有著不錯的圖形顯示。那種操作系統最令我興奮的一個特點是它能進行多重任務處理。你可以同時操作多個程序。然而其BASIC部分卻不是多重任務處理,所以同一時間之內你不能操作超過一個以上的BASIC程序。但如果你用匯編語言編寫自己的程序,就能讓操作系統列出時間表,把時間分隔開來,這樣你就可以在同一時間操作多個程序。 這種電腦有一個8兆赫的68008芯片,它是摩托羅拉68000芯片的第二代,是個更加便宜的版本。在內部,第一代68000芯片是32比特,但在外部,卻以16比特與CPU之外的設備進行連接,例如存儲器和硬件附加裝置。由於它只能在一個時間內從存儲器上載16比特,因此16比特的操作常常比32比特的操作要快。這種結構非常受歡迎,今天在許多嵌入裝置和轎車裡仍然有人使用。雖然芯片已經不同,但卻是基於相同的結構生產的。 我的電腦中的68000芯片在與CPU之外的設備連接時使用的是8比特,而不是16比特。但雖然它與外部設備互動的是8比特,其內部卻是32比特的。這就使它在編程方面顯得非常不錯。 它的內存是128千字節,不是兆字節,這在當時對家用電腦來說已經非常大了,而被它所取代的VIC-20僅僅有3.5千字節的內存。因為它是一台32比特的機器,所以能毫無困難地讀取所有的內存,這在當時是前所未聞的。我之所以要買這種電腦便是出於這個原因。它的技術非常有意思,我喜歡它的CPU。 我的一位朋友認識一家商店的老板,於是我希望能在他那裡打折買這種電腦。但等貨的時間太長,於是我便前往赫爾辛基一家最大的書店,因為那裡有一個電腦櫃台。我的電腦就是在那裡購買的。 那台電腦花費了我差不多兩千美元。當時的情況是,低檔電腦的價格總是在兩千美元上下。只是在最近兩年這種情況才有所變化,現在你只需花五百美元就能買一台PC機。這種情況和造汽車一樣,沒有人願意生產低於一萬美元的汽車。在某一段時間,低於一萬美元就不值得制造。不錯,公司完全可以造出銷售價格為七千美元的汽車,但汽車制造商們認為,凡是能出得起七千美元的人,如果能買到附加的標准設備,比如空調,花上一萬美元他們也高興。假如你把今年出產的低檔轎車同十五年前的同類轎車相比較,就會發現,它們的價格大體一致。其實,將通貨膨脹的因素去除,它們的價格或許稍微便宜一點,然而質量卻好得多。


過去的電腦就是這樣。當電腦還不是人人都買的商品時,你就只能忍受兩千美元的昂貴價格。假如一台成本很低的電腦價格非常昂貴,公司就無法大量地進行銷售。但生產商制造電腦的成本並非很低,所以公司若是賣得很便宜就不合算。人們總是希望多花二百美元買台更好的機器。 最近兩年,制造電腦的成本已經大幅度降價。甚至低檔的電腦質量也非常好。公司已經失去了許多願意多付二百美元買一台稍好一點機器的客戶,它們就只好依賴價格進行推銷了。 我得承認,QL的賣點之一就是它的樣子非常酷。 整個機身是無光澤的黑色,帶著一個黑色鍵盤。整個樣子有稜有角,而不是那種圓圓的漂亮的機型。它的造型有點走極端。鍵盤有一英尺厚,因為它與電腦聯為一個整體。當時許多家用電腦就是那樣設計的。在鍵盤的右端,即應該是小鍵盤的地方,有兩個具有革新意義的Sinclair微型驅動器,它用的是只能在Sinclair上使用的無限循環磁帶。它們的作用就等於軟驅。因為它是一個長長的圓圈,你可以進行旋轉,直到點到你需要的東西為止。實踐證明這個創意並不是理想,因為它不像軟驅那樣可靠。 於是我花兩千美元買了一台Sinclair QL。我用它所做的就是不斷地編寫程序。我總是在尋找有意思的事情做。我有一個Forth語言解釋程序和編譯程序,純粹是為了用著玩。Forth是一種很怪的語言,現在已經沒有人使用。它是一種挺好玩而且在市場上有利可圖的語言,因為可以做許多事情而在八十年代被廣泛運用,但從來沒有特別普及過。它對不懂技術的人來說非常難於掌握。其實這種語言也沒有什麼太大用處。 我開始自己編寫工具性程序。我最初為這台機器買的東西之一是一個攜帶EEPROM(電子可讀及可編程序只讀存儲)卡的擴展底座。這是利用特殊模件自己編寫的內存,關機後它仍存在。這樣一來,需要時我就能隨時獲得那些工具,沒必要將它們寫入內存,於是就能占用珍貴的內存進行編程了。 使我對系統感興趣的是,我買了一個軟盤控制器,因為已不必再使用微型驅動器了。但軟盤驅動器上的驅動程序不好使,於是我自己又寫了一個。在編寫過程中,我在操作系統裡發現了一些病毒。我之所以能發現病毒,是因為我編寫的一些東西無法操作。 我的編碼總是很完美的。所以我知道肯定是別的地方出了差錯。 於是我把整個操作系統都卸掉了。 你可以列出一推關於操作系統的書籍,這些書能幫上忙。你還需要一個反匯編程序,這種工具能把機器語言變成匯編語言。這一點非常重要,因為你要是只有機器語言的版本,執行指令時就非常困難。你會發現一個指令跳到一個數字的地址,讀起來非常困難。一個好的反匯編程序可以為數字起名字,也可以讓你起名字。你還可以使用它幫助你尋找特殊的相關指令。我自己有一個反匯編程序,可以用它創立相當不錯的目錄。一旦出現差錯,我就可以進入反匯編程序,讓它從特殊的地點找出目錄,而且我還能看到操作系統將要執行的任何任務。 有時我使用反匯編程序並非是因為出了故障,而是想弄明白它到底能做些什麼。 QL令我討厭的一個地方是,它只有一個只讀操作系統,對於一切都無法改變。它在某些地方的確有HOOKS(是一種消息處理機制,它使程序員可以使用子過程來監視系統消息,並在消息達到目標過程前得到處理--譯注)。HOOKS就是你能切入你自己的編碼接管某些功能的地方。但HOOKS只出現在某些特定的地方。要是能完全替換你的操作系統就會好得多。在只讀存儲器中運行一個操作系統是一種非常糟糕的想法。 雖然我說過,芬蘭是一個非常樂於接受新技術的國家,但Sinclair QL在這個歐洲第七大國卻沒有站住腳跟。由於QL在芬蘭的市場非常之小,每當你想為反傳統的尖端機器購買升級設備時,只能通過郵寄的方式從英國購買。你必須翻閱許多產品目錄,直到找到一家銷售你所需要的設備的廠家為止。然後你還得准備好保付支票,再等上幾個星期的送貨時間。那個時候還沒有網上購物和在網上使用信用卡。在我很希望把我的內存從128千字節擴展到640千字節時,我只能通過郵購的方式獲得。我買了一個新的匯編程序,將匯編語言轉換成機器碼(數字1和0),又買了一個編輯器,後者主要是為編程使用的文字處理程序。 新的匯編程序和編輯器都不錯,但是它們是在微型驅動器上,無法放入EEPROM。於是我自己編寫了匯編程序和編輯器,應用於我所有的編程之中。編輯器和匯編程序都是用匯編語言寫的,按照今天的標准看上去非常愚笨。這種語言又復雜又費時,我想用匯編語言解決一個問題要比用C語言解決一個問題多出一百倍的時間,而當時C語言已經存在了。 我給我的機器帶著的基本處理程序增加了好幾個指令,所以只要我想編輯任何東西,機器就會自動操作我的編輯器,它立刻就會顯現出來。我的編輯器比機器本身帶的編輯器速度要快。我可以在顯示器上以極快的速度書寫文字,我為此而感到驕傲。通常用這樣的機器,在顯示器上寫滿字需要很長的時間,你可以看到屏幕在慢慢地滾動。但是用我的編輯器在書寫時速度非常之快,屏幕滾動能給人造成一種模糊的感覺,這讓我很得意。這一點對我非常重要。它使我的機器顯得性能驚人,而且我知道為了讓我的操作更迅速,自己已做了大量的工作。 那時,在我所認識的人當中,像我那樣沉迷於計算機的人微乎其微。學校裡有一個電腦俱樂部,但我幾乎不怎麼去。那個俱樂部主要是為那些想了解電腦的孩子們創立的。我們的高中只有二進五十名學生,但我想他們在十歲以後就再沒有一個人玩電腦了。 通常我用我的Sinclair QL電腦做的事情是復制游戲。我曾用VIC-20電腦為我喜歡的游戲作過翻版。有時我還讓游戲升級。但多數情況下它們都得不到改進。機器更高級了,但概念並無改進。我最喜歡的游戲大概是“小行星”,但我怎麼也不能很好地將其復制下來。原因是那個時期所有游戲機中心的“小行星”游戲都是用真正的矢量圖形顯示進行的。那些游戲的圖形不是靠小粒(即像素)顯示的,而實際與陰極射線管的原理相同:電子是從陰極射線管的後面通過電子槍發射出來,然後用磁鐵進行轉向,這樣便可以高清晰度地顯示圖像,但如想復制過來就不那麼容易了。你當然可以復制,但假如你的電腦沒有特殊的圖形顯示能力,復制出來的東西便與原本的“小行星”相去甚遠。

我記得曾經采用匯編語言對“穿靴人”做過翻版。第一個步驟是,你必須記住穿靴人裡的人物是什麼樣子。然後你把它們畫在一張16*16平方厘米的坐標紙上,再塗上顏色。你若有藝術細胞,就可以畫得很逼真。然而若像我似的完全不懂藝術,畫出來的人物就會像是穿靴人的生了病的小表弟。 所以這個復制做得並不理想。然而我卻為此感到自豪。做出來的那個游戲是可以玩的,於是我把它寄給了一家發表電腦編碼的雜志。我曾經把其他的程序寄給一些雜志,所以我以為我這次被他們接納應是理所當然的事。 事實卻恰恰相反。 其中的一個問題是,無論你在什麼地方出現一個極為微小的錯誤,它就會運轉不靈。 我自己也寫過一些游戲。然而創作需要某種心態。由於游戲需要大量的表演,就需要你對電腦的硬件十分精通。這我做得到。但我卻不具備玩游戲的感覺。一個出色的游戲通常並不是它的速度有多快,也不是它的圖形顯示得多麼漂亮。它必須能讓你感到玩得起來--能吸引人。游戲和電影頗為相似。特殊效果是一回事,然而你還是需要情節。我所有的游戲從來都沒有情節。游戲還需要有發展,有想法。發展常常就是讓游戲速度越來越快。穿靴人就是這種模式。進展時也產生變化,或是讓你能夠更緊密地跟蹤裡面的怪物。 我對“穿靴人”感興趣的另一個原因是,它能夠解決圖形顯示閃爍不定的問題。這在老式的電腦游戲中是一個比較普遍的問題,因為沒有特殊的硬件,你的人物就會閃爍不定。你采用的辦法就是去掉老拷貝,重寫一個新拷貝。假如你的時間恰巧處理得不好,人們就能看到沒有拷貝時的狀況,於是就更會出現閃爍的情況。解決這一難題有許多種方式。你可以先畫一個新人物,然後再把以前的人物去掉來避免這一問題。但你必須小心謹慎,不要把老人物被新人物覆蓋住的那部分也給去掉。這樣你就能獲得一個良好的效果,不會再看到煩人的閃爍現象。這一解決方案的問題是創作時相對昂貴,而且特別費時間。 游戲為何總是處於技術領先的地位,而且編制人員為什麼總是先制作游戲程序,其中是有原因的。一方面是關在房間裡玩電腦的聰明的程序編制人員都是十五歲左右的孩子(我十五年前就這麼認為,至今對此仍深信不疑)。游戲之所以總處於領先地位還有另一個原因:它總能推動硬件的發展。 你若是看一下今天的電腦,就會發現它們速度快得可以做任何事情。但考驗硬件極限的往往是動作感過強的游戲,如現在很流行的一些三維游戲。從根本上說,通過電腦上的游戲,你可以看出硬件是不是過關。進行文字處理時,速度慢上一二秒鐘也不會在意,但玩游戲時,出現十分之一秒的誤差也非常明顯,游戲過去都比較簡單,時至今日,編程只是任何游戲的一小部分,此外還有音樂和情節。假如你把制作游戲比做拍電影,編程者在一定程度上就等同於攝影師。 就這樣,我使用了Sinclair QL電腦三年:從高中到赫爾辛基大學,再到芬蘭部隊服役。這個電腦不錯,但我們肯定會分手。在最後的一兩年裡,我發現了它和短處。68008是個不錯的CPU,但我在書上了解到了下一代的68020,得知了諸如內存管理和分頁等種種功能,在使用低檔電腦進行工作時,這種新的電腦可以完成非常重要的任務。 Sinclair QL令我討厭的地方是,它的操作系統雖說能進行多重任務處理,但在任何時候都會出現死機,因為它沒有保存措施。只要一個任務出現差錯,就能讓整個機子死機。Sinclair QL是克裡夫·辛克萊爾爵士最後一次設計和制造的電腦,原因之一是這種電腦在商業上並不成功。它的技術非常有意思,但公司卻存在著生產問題和質量保證問題,而且最終宣傳上也很失敗。此外,市場競爭也開始變得越來越激烈。 到了八十年代末期,你便開始想象,或許有那麼一天,大街上的每一個人都可能擁有一台電腦,哪怕只是進行簡單的文字處理。而且種種跡象表明,發展方向是PC機。不錯,IBM最早制造的PC機盡管有許許多多的技術問題,但卻開始擺滿了商店的貨架,銷售得極為成功。PC機的另一個吸引人的地方是:外圍設備非常標准,而且很容易就能搞到。 所有關於這種較新的CPU的文章我都閱讀,它可以完成我想完成的任何任務。顯而易見,看上去非常有意思的68020發展前景不佳。我完全可以為QL買一個升級的CPU。在那個年代,這便意味著重新組裝一台機器。盡管如此,操作系統還是沒有內內存管理,所以我不得不自己編寫。於是我想:這將是很費力的一步,而且獲得一個CPU過於昂貴。 此外,令我越發感到頭疼的是:為電腦購買設備的問題依舊存在。Sinclair QL電腦的產品目錄似乎根本就沒有過,所以你不可能簡單地抄起電話,像定購西爾斯百貨商店的郵購商品那樣定購內存設備。再說,通過郵局從英國訂貨的做法已經過時了。當時還沒有用收縮封套包裝的軟件盤,這我倒不在乎,因為我都能自己編寫。 這個頭疼的問題卻給我帶來了一個好處。在我琢磨著把我的機器處理掉時,也決定把我的附加設備賣掉。我指的是我買的硬盤驅動器,因為要擴展內存,我一分鐘也不能忍受了。當時沒有人在大街上到處找這種東西,所以我只能在電腦雜志上登廣告,然後就祈禱等待著。就這樣,我認識了我的好朋友喬科·維亞魯馬奇(Jouko Vierumaki)。在整個芬蘭,他大概是第二個擁有Sinclair QL電腦的人。他對我的廣告做出了回應,騎著自行車來到我家,買走了我的一些外圍設備。後來,他也讓我學著打斯諾克台球。 2、上大學 我在上大學的第一年,住在彼得蓋坦街,我的宿捨在一層,靠窗戶的一張桌子上就擺著Sinclair QL電腦。但我沒有編寫多少程序,原因之一是我必須集中精力讀書,原因之二是我也找不到什麼項目去做。沒有項目可做就會缺乏熱情。你總是在尋找能夠讓你鼓起勁去做的事情。 當時似乎是參軍的好時光,而且我也知道那是早晚的事。我當時十九歲,正因為自己的電腦毛病太多而心情沮喪。而且,當時也沒有任何有意思的電腦項目,於是我就搭上了一輛開往拉普蘭的火車。 前面我已經說過,關於軍隊在體力方面會對我們做出什麼樣的要求我是一無所知的。所以在那裡手執武器上了一個月的“體育課”之後,我便覺得在我有生之年完全有資格從此一動不動,享受平靜的生活了。惟一可做的事情就是把編碼打入鍵盤,或者手裡端著一瓶比爾森啤酒(說真的,在我復員整整十年後,才第一次參加一次劇烈的活動。當時大衛硬拉著我去沖浪。舊金山半月灣的強大海浪差點沒把我淹死,我的腿一連酸了好幾天)。 部隊服役結束於1990年5月7日。塔芙會告訴你,我連我們的結婚紀念日都記不住,但我卻不大可能忘記我離開部隊的日子。

剛一離開部隊就想弄只貓。 復員的幾個星期前,我一個朋友的貓下了一窩崽,於是我把他剩下的唯一一只小貓買了下來。那是只白色的公貓,長得很漂亮。它生下來的頭幾個禮拜就在室外跑來跑去,所以在我媽媽公寓的室內和室外養活起來都很容易。我給它起了個名字,叫蘭迪。它現在已經十歲了,和它的主人一樣完全適應了加利福尼亞的生活方式。 那年整個夏天我沒有干什麼正事。我大學二年級的課程直到秋天才開始。我的電腦狀態也很不佳。於是我就穿著一件破舊的睡衣,逗蘭迪玩,偶爾和朋友們聯歡會,讓他們笑話我的保齡球和台球的拙劣技術。當然,我對我的下一部電腦也做了一些設想。 我面臨的是一個電腦迷的困境。 我同其他隨著68008芯片一起長大的電腦迷一樣,特別討厭PC機。但在1986年386芯片出台後,PC突然看上去有了魅力,凡是68020能做的事情它們都能做。到了1990年,大規模的生產使這種機器的價格急劇下跌。我對錢很在乎,因為我手拮據。於是我就希望擁有一台這樣的電腦。正因為PC非常紅火,升級材料和裝置很容易就能弄到。在硬件方面,我特別希望有一台標准的機器。 我決定來個大跳躍,超越界限,而且弄一個新的CPU這事的確讓人興奮。於是我便開始把我的Sinclair QL的零件一點點地賣掉。 每個人都會一本改變其一生的書籍,比如《聖經》、《資本論》、《星期二和莫瑞在一起》、《我想知道我在幼兒園裡學到的一切》等等(我真誠地希望,在你讀過了本書序言和我的關於生命意義的理論之後,這本書也能對你產生影響)。把我推向生命高峰的是安德魯·S·塔南鮑姆(Andrew S. Tanenbaum)寫的《操作系統:設計和執行》。 我已經選好我的秋季課程,其中最讓我期待的是C程序語言和UNIX操作系統。在等待著上課期間,我還買了一本上面提到的教科書,希望能先讀一下。在這本書中,住在阿姆斯特丹的大學教授安德魯·塔南鮑姆討論了MINIX,那是他為UNIX撰寫的教學輔助軟件。MINIX也是UNIX的小型翻版。一旦讀完了介紹,了解到UNIX背後的理念以及那個強大、利索、漂亮的操作系統所能做到的事情後,我便決定弄一台機器來操作UNIX。我將操作MINIX,那是我所能找到的惟一版本。 通過閱讀和對UNIX的了解愈來愈深,我的熱情高漲起來。 說實施,我的熱情從來沒有低落過(我希望你在做某件事時也能說出同樣的話)。 3、從UNIX開始 赫爾辛基大學第一次擁有UNIX是在1990年秋季開學的時候。 那個強大的操作系統是美國電話電報公司的貝爾實驗室於六十年代發明的,然而它的開發卻是在別的地方。前一年,也就是我上大學的第一年,我們有一台操作VMS的VAX。這個操作系統糟糕透頂,你決不會說出:“嘿,我在農時也想裝一個VAM”這樣的話,它只能讓你說:“你怎麼會使用這個破玩意?”它用起來極不方便,沒有多少工具,也不適合輕松容易地進入因特網,而因特網是在UNIX上面操作的。你甚至都無法輕易地估算出文件到底有多大。坦白地說,VAM可能很適合某些操作,比如數據庫。但這種操作系統無法讓你為之感到興奮。 赫爾辛基大學當時意識到應該淘汰諸如VMS類的軟件。學術界已經對UNIX產生了越來越大的興趣,於是我所在的大學購買了一台操作Ultrix的微型VAX,Ultrix是DEC公司生產的一種UNIX版本。 我特別渴望操作UNIX,將我從安德魯·塔南鮑姆書上所學到的東西進行試驗。要是我有一台386,它肯定會對我能進行的一切探索感到興奮不已。但是,我無法湊齊一萬八千芬蘭馬克買一台386。我知道一旦秋季學期開始後,我就能使用我的Sinclair QL進入大學新的UNIX電腦,直到我自己湊齊了錢買一台PC機,再在上面操作UNIX。 因此,那年夏天我做了兩件事。第一件是什麼都沒做。第二件事是讀完了七百一十九頁的《操作系統:設計和執行》。那本紅色的簡裝本教科書差不多等於睡在了我的床上。 赫爾辛基大學為微型VAX電腦購買了十六個客戶執照。這意味著“C語言和UNIX”課程的選修學生人數被控制在了三十二名--我想學校的想法是十六個學生白天使用機器,另外十六個學生晚上使用。教師和我們一樣,對UNIX也不太熟悉。他對此公開承認,因此也沒構成什麼問題。但他每次都比學生先讀一個章節。有時學生也會提前跳讀三個章節,因而上課成了一種游戲,學生們問的問題都是在三個章節之後才能學到的,目的是為了難住教師,看他是否已經讀了那麼多。 我們在UNIX的大世界中都是嬰兒,一邊學習一邊完善這門課程。然而關於這門課最明顯的是,在UNIX背後有一個非常獨特的理念。你在這門課的第一個小時就抓住了這一點,剩下來就是解釋細節了。 UNIX的獨到之處在於它所追求的基本理想。它是一個干淨利索、非常漂亮的操作系統。UNIX具有程序的觀點,凡是做任何事情都是一個過程。這裡有一個簡單的例子。shell command是為進入操作系統而鍵入的一種指令,在UNIX中,它並不像在DOS中似的被裝在操作系統裡。它只是一個任務,同其他的任務相同。這個任務是從你的鍵盤中讀出的,然後再寫回到顯示器。任何能做的事情的東西在UNIX裡面都是一個程序,此外還有文件。 吸引我的就是這個簡單的設計,它也吸引著大多數對UNIX感興趣的人(至少對我們電腦迷們頗有吸引力)。你在UNIX上完成的大部分任務都是通過六個基本操作完成的,它們被稱作“系統呼叫”(system call),因為它們是你對操作系統的呼叫,你便讓它為你完成任務。通過這六個基本的系統呼叫,任何事情你都可以完成。 此外還有“創建子進程”(fork)的概念,它是UNIX的基本操作之一。當一個程序創建子進程時,它便把自身完全復制出來。這樣你就有了兩個相同的拷貝。復制拷貝多數情況下再去執行另一個程序--用一個新項目替換自己。這便是第二個基本操作。其他四個基本系統呼叫--打開、關閉、讀和寫--都是為了訪問文件的。這六個系統呼叫便組成了UNIX的簡單操作。 當然,從細節方面講,還有數不清的其他系統呼叫。然而一旦你明白了這六個基本系統呼叫,你就了UNIX。UNIX的好處之一是,你並不需要擁有復雜的連接去創立復雜的事物。你可以通過簡單事情的互動來建立任何程度的復雜任務。你只需在簡單的程序之間創造出交流渠道,在UNIX中叫做“管道”(pipes),就能解決復雜的問題。

一個差勁的系統在做任何你想做的事情時都需要有特殊的連接。UNIX則恰相反。它提供給你執行任務的材料,這些材料足以讓你完成任何事情。這就是所謂的干淨利索的設計。 語言其實也是如此。英語有二十六個字母,你可以用這些字母創造出任何單字。另一種語言是漢語。在漢語中,你所想到的任何一件事都由一個字來代替。你一開始用的就是復雜的形態,然後在有限的方式中將復雜的形態組合起來。VMS的大體上也是這種思路,Windows的方法也是如此。 而UNIX的理念是越小越漂亮。一小堆簡單基本的建築材料,結合起來就能創造出無限的復雜表述。 物理的規則亦是如此。你努力找出基本的規則,而這些規則都是相對簡單的。從那些簡單的規則中,通過相互作用產生令人不可思議的復雜性。 那種簡單的設計並非是自然產生的。UNIX是美國電報電話公司貝爾實驗室的丹尼斯·裡奇(Dennis Richie)和肯·湯普森(Ken Thompson)花了很大力氣設計完成的。你也不能認為簡單就是容易。簡單需要特別的設計和很高的品味。 讓我們再回到人類語言的例子上。像圖畫似的中國象形文字是最先產生的,然後再追求“簡化”。而建築材料似的做法則需要更多的抽象思維。同樣,你不能將UNIX的簡潔同上不了檔次混淆起來--事情正好相反。 但這並不是說,創造UNIX的最初原因有多麼復雜。它和計算機的許多其他事情一樣,都是以游戲開始的。最初有人想在等離子顯示器上玩電腦游戲,那就是UNIX發展起來的原因。正因為當時人們覺得這個操作系統不是一個嚴肅的項目,美國電話電報公司才認為它並非是商業上的冒險嘗試。事實上,美國電話電報公司的壟斷受到制約,對其限制之一是不能推銷電子計算機。所以創造UNIX的人有很大的,尤其在為大學服務方面沒遇到什麼阻礙。 於是乎,UNIX在學術界就演變成了一個大項目。到1984年美國電報電話公司分家後,它已被允許進入電腦業,那時大學裡的計算機專家們--尤其是加州大學伯克利分校的專家們--已經在比爾·喬(Bill Joy)和馬歇爾·克拉克·邁克庫塞克(Marshall Kirk McKusid)的指導下,把開發和改進UNIX的工作進行了許多年了。 但到了1996年初,UNIX已經成為所有超級計算機和服務器的頭號操作系統。它的市場非常大。但當時的問題之一是,已經出現了數不清的操作系統的競爭版本。有一些是從控制得比較嚴密的美國電報電話公司代碼庫裡創造出來的(即所謂的“V系統”),另一些人則是從加州大學伯克利分校的代碼庫衍生而來(即BSD--伯克利軟件分布),還有的則是這兩者的結合體。 其中一個BSD的衍生版本特別值得一提。那是386BSD項目,是比爾·喬利茲(Bill Jolitz)在代碼庫的基礎上做成的,分布在因特網上。後來它又進一步分裂,成為人人都可以獲得的BSD--Net BSD,Free BSD和Open BSD,在使用UNIX的群體中引起廣泛的注意。 於是美國電報電話公司突然覺醒了,將加州大學伯克利分校告上了法庭。最初的代碼是電報電話公司的,但絕大多數後期工作都是在伯克利完成的。加州大學的校務委員們聲稱他們有權傳播和銷售他們的UNIX版本,而且還可收取象征性的費用。而且他們還向人證明,他們已為此做了大量工作,基本上把電報電話公司的軟件進行了重寫。官司的結果是,Novell公司從電話電報公司買斷了UNIX,一部分體系不得不從電報電話公司中分離出去。 同時,那場無休止的官司卻讓一個兒童贏得了一些時間,使自己成熟和發展起來。具體地說,Linux獲得了時間去占領市場。我自己走在了我的前面。 坦白地講,在使用UNIX的人當中,有許多是幾乎發瘋的人。他們不是集郵瘋子,不是把鄰居的狗毒死的瘋子,而是一些生活方式很另類的人。 別忘了,UNIX最初的主要發展是在六十年代和七十年代,我當時正在祖父公寓裡的一個洗衣筐子裡睡覺。當時正是美國嬉皮士的時代,而那些人也都懂技術。有關UNIX應共享的理念和當時的社會環境有關,而並不應簡單地歸功於其開放源代碼的系統本身。那是一個了各種理想的時代。革命、解放、自由愛情(自由愛情我可沒趕上,即使趕上也不知該怎麼做)……於是UNIX的相對開放性對這類人就特別有吸引力,盡管在當時它還缺乏商業上的價值。 我第一次了解到UNIX可開發性的一面大概是1991年前後,當時拉爾斯·沃茲尼亞斯(Lars Wizenius)拉著我去赫爾辛基理工大學參加一個集會。人人都知道,這所大學根本不在赫爾辛基,而是在城市邊界線以外的艾斯普。學校的人想和豪華的赫爾辛基聯系起來,哪怕只是在名義上。當時的演講者是理查德·斯多曼(Richard Stallman)。 此人是自由軟件的鼓吹者。 1983年,他開始研究UNIX的一個替代物,將其稱作GNU系統,其含義是“GUN不是UNIX”(GUN是“GUN is Not UNIX”的字首縮略語--譯注)。這些只有在電腦界內部開的玩笑,常人是很難聽懂的。電腦迷之間流傳的文學游戲實在是數都數不清。 更重要的是,RMS(理查德·斯多曼希望別人這樣稱呼他)還撰寫了《自由軟件宣言》和自由軟件產權證書,即GPL。他首先提出的關於開放源代碼的概念完全是有意的,而並非出於偶然,和UNIX最初的開放發展理念是相吻合的。 我得承認,我對社會政治方面的問題了解得不多,而這些問題過去和現在對RMS都非常重要。我對他所創立的開放軟件基金會的宗旨也知之甚少。事實是,我對1991年人們談論的話題也沒有多少記憶,這說明當時它對我的生活並沒有產生多大的影響。我當時所關心的是技術,而不是政治--我們家裡的政治已經夠多的了。但拉爾斯是個思想理論家,於是我便跟在他身後去聽聽。 我在生活中第一次見到了典型的留著長發、蓄著長胡子的黑客形象,其代表就是理查德。這樣的人在赫爾辛基為數不多。 我當時可能沒有看到眼前的光芒,但我猜他說的一些話也多少給了我一些锾。畢竟,我後來為linux使用的就是GPL。就這樣,我再一次走在了自己的前面。 4、第一台386和終端仿真

1991年1月2日。 在我的日歷上,聖誕節和我的二十一歲生日是兩個最重要的能讓我得到金錢的日子,而這一天是這兩個日子之後商店開門的第一天。 我手裡攥著在聖誕節和生日得到的錢,做出了一個重大的財政決定:准備買一台價格一萬八千芬蘭馬克的計算機。這差不多等於三千五百美元。我沒有這麼多錢,所以打算首付三分之一,剩下的用賒賬方式來付。其實那種電腦的價格是一萬五千芬蘭馬克,其余的三千馬克稅款可在三年之內付清。 我去的是一家小店,也就是那種夫妻店,只是我去的這家只有丈夫,沒有妻子。我對生產廠商不太在乎,所以決定買一台雜牌的,裝在一個白色大箱子裡的電腦。老板把一張價格表遞給你,上面有你想要的CPU、價格以及硬盤的大小。我想要大功率的。我希望內存是4兆,而不是2兆。我希望我的CPU是33兆赫的,當然,要是16兆赫也能湊合。不,我要買就買最好的。 我把自己希望的規格告訴他們,他們就給你組裝好。如今在因特網和快遞的年代,這聽起來似乎很怪。三天以後你去提貨,但那三天就像過了一個禮拜。1月5日,我讓爸爸開車幫我把新電腦運回了家。 這台電腦不僅是雜牌,而且其貌不揚。它的顏色灰蒙蒙的。我買這台電腦並不是因為它看上去很酷。它的樣子極不好看,有一個14英寸的顯示器,是我所看到的價格最便宜也最笨重的機器。我用“笨重”這個詞,意思是說很少有人擁有這麼大功率的電腦。我不想將其描繪成樣子難看、但功能齊全的電腦--就像是一輛沃爾沃轎車。但事實是,我希望這台電腦靠得住,而且最終我需要升級時,它也能輕易地做到這一點。 這台電腦有一個DOS操作系統。我想使用UNIX的變體MINIX,所以我訂了貨,然而這個操作系統需要等一個多月的時間才能到達芬蘭。當然,你也可以在一家電腦商店買一本關於MINIX的書,但人們對這種操作系統的需求非常之少,所以你必須事先向書店訂購。操作系統的價格是一百六十九美元,再加上稅,還有別的什麼費用。當時我覺得這簡直太不可思議了。坦白地說,我今天仍舊這樣認為。當時那一個月讓我覺得就像度過了六年。在我等待買我的PC機時,也沒有經受過那樣大的煩躁不安。 當時正值隆冬。你若從寢室裡出來,就可能會遇到被老太太們撞倒在雪地上的危險。這些老太太們實在應該呆在家裡為她們的家人煮煮白菜湯,或一邊織毛衣一邊在電視上看冰球,而不是應該出來趔趔趄趄地瞎溜達。 那個月裡,我基本上是在用新電腦玩“普魯士王子”游戲。不玩時就看書,以便弄明白我買的電腦的功能。 MINIX軟件終於在一個星期五的下午到了,當天晚上我便將其裝了上去。你得用十六張軟盤才能把這個軟件裝入計算機。然後整個周末就都花在了熟悉這個新系統上。我學會了這個操作系統的好的一面,但更重要的是,也了解到了我不喜歡的一面。我從大學的電腦上把我熟悉的程序下載下來,來彌補它的不足之處。總之,我用了將近一個月左右的時間,才使這個系統完全變成了我自己需要的系統。 住在阿姆斯特丹的、撰寫MINIX的安德魯·塔南鮑姆想把這個操作系統作為教學工具,於是在一些不利的方面它都被故意損壞了。MINIX也得到了一些改進,最出名的一個改進是一個叫布魯斯·伊文斯(BrUCe Evans)的澳大利亞人進行的,他使用的是MINIX386。他的改進使MINIX在386上運行起來更方便。在我購買這台電腦之前,我就一直在網上跟蹤MINIX的消息,所以從一開始我就想使用它的升級版。但是,你不得不買MINIX的正版,然後再做大量的工作,引入伊文斯的改進--這是工作的主要任務之一。 MINIX有一些性能令我很不滿意,其中最大的失望是終端仿真(terminal emulation)。仿真很重要,因為我只能依賴這個程序,才能讓我家裡的電腦模仿大學的電腦。每當我撥電話接通大學的電腦,使用強大的UNIX工作或僅僅是上網時,都使用終端仿真程序。 於是我開始做一個項目,制作自己的終端仿真程序。我不想在MINIX底下做這個項目,而是想在硬件水平上完成它。這個終端仿真項目也是一個很好的機會,可以讓我了解386硬件的工作性能。我前面已經說過,這時正值赫爾辛基的冬天。我的電腦又笨又大。這個項目最重要的部分就是悟出這台機器都能做些什麼,並從中獲得樂趣。 我不得不從BIOS開始,BIOS是計算機啟動的早期ROM編碼。它可讀軟盤和硬盤。所以這次我在軟盤上操作。它讀出軟盤的一個扇區並跳到那裡。這是我的第一台PC,我不得不學著如何進行這種操作。386是以“常規模式”啟動的。但為了充分利用全部的CPU和進入32比特模式,你只得進入“保護模式”。在此之前,你得進行大量的復雜的測試。 為了制作仿真程序,你需要了解CPU是怎樣工作的。其實,我用匯編語言收發室的部分原因就是為了了解CPU。其他你還需要了解的事情包括:怎樣寫入顯示器,怎樣讀鍵盤輸入,怎樣讀寫調制解調器--但願我的這些文字不會把非電腦迷們嚇跑。 我想出兩條獨立的線程。一條線程從調制解調器讀出,然後在顯示器上顯示。另一條線程從鍵盤上讀出,然後寫入調制解調器,這樣就會在兩條線程上運行著兩條管道。這叫做任務轉換,386有支持這一程度的硬件。 我寫的最早的試驗程序是使用一個線程將字母A寫到顯示器上。另一個線程寫B。我知道,這聽起來沒有什麼奇怪的。我把此編入程序,讓其在一秒鐘之內出現若干次。在定時器的幫助下,我使這個程序這樣運轉:顯示器上先出現一連串的字母A,然後突然之間,轉變成一連串的字母B。從實際的角度看,這是一個完全沒有任何用處的練習。但卻是一個很好的方式,顯示出我的任務轉換是可行的。做到這一點大約花了我一個月左右的時間,因為我必須一邊做一邊學習。 於是,最終我便能改變由一連串A和一連串B組成的兩個線程,從而使數據一個讀自調制解調器,再寫入顯示器,另一個讀自鍵盤,再寫入調制解調器。我有了自己的終端仿真程序。 每當我想讀新聞,我就運行自己的程序。我把自己的軟盤插進,重新啟動機器,就能從大學的計算機裡讀新聞了。倘若我想改進終端仿真組合程序,我就啟動MINIX,用它進行編程。 對此我感到非常驕傲。 對於我的了不起的個人成就,薩拉是了解的。我顯示給她看,她盯著顯示器看了大約五秒鐘,看著上面是一串A和一串B,說了聲“很好”,便沒什麼感覺地走開了。我意識到我的成績看上去並不輝煌。它雖然看上去平平,背後卻包含了大量的工作,猶如你指給人看你鋪設了一條長長的柏油馬路,但想向別人解釋這條馬路的意義是完全不可能的。另一個目睹我成績的人大概是拉爾斯--另一個講瑞典的學生,他和我同一年主修的計算機專業。

當時是三月,也可能是四月,就算彼得蓋坦街上的白雪已經化成了雪泥我也不知道。不過我也並不關心。大部分時間我都穿著睡衣,趴在我相貌平平的計算機前。窗戶上的窗簾遮得嚴嚴密密,把我和陽光--更不用說外部世界--隔離開來。我每月都要為新電腦付款,預計在三年之內付清。當時我不知道的是,我的款項在第二年的就不用再付了。那時我已經寫出了linux,它將被許多人見到,而不僅僅只是薩拉和拉爾斯。當時,現在跟我一起在Transmeta公司工作的彼德·安文(Peter Anvin),為了幫我償付我的電腦錢,開始在因特網上為我募捐。 錢就這樣來了。別人都知道linux並沒有讓我獲利,於是人們便覺得,讓我們大家湊點錢,替李納斯把電腦錢還清。 這實在太好了。 我實在是沒有錢。我一向認為不應該向別人要錢或乞求錢,這一點非常重要,但事實上我卻得到了錢,所以……讓我激動得無話可說。 linux操作系統就是這樣開始的。 我的實驗程序變成了終端仿真組合程序。 《熏鲱》雜志將我派往芬蘭,去采寫報道奧盧的文章。奧盧是一個新崛起的高科技中心,雖然它的位置十分可怕:離北極圈開車只有幾個小時的距離,裡面卻有一百四十一家新成立的公司。這是一次極好的機會,我可以在赫爾辛基見到李納斯的父母和他的妹妹薩拉。 李納斯父親尼爾斯的綽號叫尼基,他在赫爾辛基火車站廣場對面一家飯店的大堂裡見到我,飯店的名字叫瓦庫那。他身材瘦長,戴著厚厚的眼鏡,留著列寧式的胡子。他剛剛結束了芬蘭新聞社派他在莫斯科長達十年的工作,目前正在寫一本關於俄國的書,並正在考慮是否去華盛頓任職。他覺得那個地方沒有什麼意思。幾個月前,他榮獲了著名的全國新聞獎,他的前妻安娜後來說那個獎項“使他變得溫和了許多”。 黃昏時分,他開著他的沃爾沃S70轎車,拉著我去看被白雪覆蓋的、李納斯成長的地方。他指給我看一幢結實的建築物,說那是父子倆都曾就讀過的小學。然後我們又驅車路過了李納斯生下來後度過的最初三個月的他祖父母的公寓,接著又來到了那棟俯瞰花園的樓房,他們全家在那裡過了七年。其中的一年尼基曾前往莫斯科,成為一名共產主義者。當時李納斯五歲。而後他又指給我看那座黃色的建築物,尼基與安娜離婚後,李納斯和他妹妹就住在那裡。李納斯年輕時的電子商店已經不存在,在街頭原來的地方現在是一座成人錄影帶小鋪。最後我們驅車路過了最重要的一幢物,即五層樓高的李納斯外祖父母居住的公寓,也就是linux系統的誕生地。安娜至今仍住在那裡。它看上去就像是十二月底曼哈頓的東區。 尼基很滑稽,又聰明,善於自嘲,而且許多動作和他兒子一樣,比如在說話時喜歡用一只手握住自己的下巴。他們倆笑起來也很相似。然而這位社會主義的忠實信徒和他兒子不同的是,他終生熱愛體育。他在籃球隊打球,天天跑五英裡,每天早晨在結冰的河裡冬泳。雖然他已經五十五歲,但走起路來卻精神抖擻,看上去只有他三分之二的年齡。他和李納斯的另一個區別是:尼基似乎過著一種非常復雜的浪漫生活。 我們在赫爾辛基市中心的一家擁擠的餐廳裡吃晚飯,尼基談起了李納斯作為一個激進的共產黨人的兒子成長起來所面臨的困難。他說他自己常常出外演講,一度還做過一個小官。他說李納斯由於父親的激進政治觀點,常常受到同學們的挪揄,有些父母甚至不讓他們的孩子和他一起玩。正因為如此,尼基解釋說,李納斯的童年生活雖然被左傾的政治思想所包圍,他卻努力使自己從這種氛圍中脫離開來。尼基說:“他不讓我談論我的觀點,我一開口講他就會離開房間。要麼他說話時就總跟我對著干。我知道,由於他有這樣一個父親,在學校裡總是受到嘲弄。他對我的態度是:‘別讓我陷入這種尴尬的境地。’” 尼基把帶到他家,他說我們可以在他的廚房裡喝兩杯啤酒。他的家坐落在中央商業區的北部,那裡一排排的樓房是二十年代為工人階層建造的。我們爬上樓梯到了他的公寓,在門口把鞋子脫掉。他的房間讓人回想起六十年代末期反對工業文明的景象:燈罩是用手織的籃子做的,牆上掛著第三世界的圖片,屋子的角落裡還垂吊著各種植物。我們在廚房的餐桌前落座。尼基一邊斟啤酒一邊談起了他當父親的感受: “一個當父母的人不應該從他養育了自己孩子的角度去想問題。”他說。這時他用手機給和他同居的一個女人打電話。他說李納斯現在剛剛開始閱讀他多少年來一直敦促他讀的歷史書籍,但李納斯大概還從來沒有讀過他自己爺爺寫的詩歌。 我問尼基他是否對電腦程序表示過任何興趣,或讓李納斯教給他一些最基本的電腦常識。他回答說從來沒有。他說父子完全是不同的個體,而深入探究李納斯的激情就等於“侵犯他的靈魂”。看起來,他作為一個名人的父親似乎不覺得有什麼讓人不舒服的地方。他獲得全國新聞獎後,有一家報紙發表了一篇關於他的小傳,其中引用他的原話說,在李納斯還很小的時候,每當他去外面的操場接李納斯時,別的孩子就會指著他說:“瞧,那是李納斯的爸爸。” 李納斯的妹妹薩拉?托沃茲是乘火車從她的家趕過來的,她的家在一座小城市裡,位於赫爾辛基以西,那裡街道的牌子首先是瑞典語,其次才是芬蘭語。在那裡,她買得起帶澡盆和桑拿浴的公寓,而且那裡的人們在大街上講的是瑞典語,而不是芬蘭語,這讓她感到很高興。正如她本人解釋的那樣,她是少數民族中的少數民族:在少年時期,她就皈依了天主教,將自己劃歸到不到百分之十的芬蘭公民之中。她不信教的父親為此曾在幾個禮拜的時間裡氣憤地不認這個女兒。 今天她來到赫爾辛基,是實施一項政府資助的項目,給年輕人教授《教理問答》。她為人爽快樂觀,雖然已經二十九歲,卻像一個誠懇熱心的高中生似的有著真誠的精神。她皮膚白晰,圓圓的臉,和她的哥哥有點相似。但顯而易見,和她哥哥相比,她更愛與人接觸。她總是不停地按手機上的號碼,給她的朋友發出信息,約他們當天晚上見面,然後又不停地查看他們的回答。她所做的翻譯生意非常成功。 當時是中午,薩拉帶著我去見她的母親,並一起吃午飯。在路上,她時不時停下來指給我看童年呆過的地方,比如貓園和小學。“我父母是地地道道的共產主義者,我們就是在這種環境下長大的,認為蘇聯是最好的。我們還去過莫斯科,”她解釋說,“我記得最清楚的是那裡的一家特大的玩具店,赫爾辛基所有的玩具店都不如那家大。”她父母在她六歲時離了婚。“我刻他們對我說,爸爸 永遠搬出去住了。我當時覺得這很好。這樣一來就不會再吵架了。其實他是去莫斯科長駐,於是我們慢慢習慣了他不在身邊。”她說。薩拉十歲時,決定搬到她父親那裡去住,不再和她媽媽和哥哥一起住。她父親當時搬到了鄰近的城市艾斯普。“這並非因為我不想和媽媽一起住。我是不想和李納斯住在一起。這樣一來,除了周末,我們倆就不用吵架了。我們倆總是吵個沒完沒了。隨著我們漸漸地長大,我們倆吵的也少了。”

我們來到她媽媽位於一層的公寓。安娜?托沃茲見到我們後非常高興。她的綽號叫米基。她拒絕讓我遵循芬蘭人的習慣,把鞋子脫掉。“別傻了。我這地方本來就髒得一塌糊塗。不脫鞋子也無所謂。”她個子不高,黑頭發,反應敏感,非常機智。我們剛剛到達,電話鈴就響了。一個地產商想讓我去年看一個空著的公寓,這樣我就可以將它描繪給米基在美國的兒子,並把房子的所有材料親自交給他,因為李納斯有可能要買下這個房子,作為在赫爾辛基的臨時住所。於是我們進入了那幢龐大的公寓樓。那個房地產商長得怪怪的,有點像《美國美人》影片中的一個人物。他讓我們在觀看房子之前,先在鞋子上套一個藍色布鞋套。過了一會兒,房地產商自鳴得意地說:“你們瞧這棟房子,要是你們有不希望被太陽損壞的古董的話,這裡是最理想不過的了。”米基狡黠地朝我瞟了一眼,然後不無嘲諷地說:“哦,你說話真風趣,干嗎不直說這個房子沒有陽光?” 我們又回到了她不大的廚房。米基坐在一個長方形的餐桌旁,餐桌上鋪著一張五顏六色的桌面,米基將咖啡倒入一個非常大的杯子裡。她的公寓和她前夫的一樣,到處都是書籍和民間藝術品。掛著的窗簾是黑白相間的。這個公寓本來有三個臥室和一個廚房。她的孩子們搬出去後,米基便搬進了過去由薩拉占著的最大的臥室。她後來把李納斯的臥室和她從前臥室的牆壁都拆了,創造出一個巨大的帶廚房的客廳。她指指一個空著的地方說:“他過去的電腦就放在那裡。我想我應該在那裡掛上一個牌子什麼的。你覺得呢?”她一根接一根地抽著煙,講起話來滔滔不絕,而且英語說得很漂亮,說話時幾乎沒有什麼停頓。“李納斯可不是你在大街上遇到的那種笨孩子”,她說。在她臥室的牆上掛著一面巨大的蘇聯國旗。那是喬科在一次國際跳台滑雪比賽中買的,作為禮物送給了李納斯。李納斯把它放在一個抽屜裡,一放就是好幾年,但米基把它掛在了她的床頭上。 米基拿出了一個相冊,裡面有一些全家的照片。有一張是李納斯兩三歲時,赤身裸體地站在海灘上。還有一張也是他,也是那個年齡,在月光下瞎跑著,地點是赫爾辛基附近的一所著名的城堡。另一張是他少年時代,看上去又瘦又笨。還有一張是米基,參加她父親的六十歲大壽。她指著她的姐姐和哥哥說:“她是個心理學家,在紐約。他是個核物理學家。而我,是我們家的敗家子。對不對?可我是第一個抱孫子的。”她說完又點起一根煙。 我們去一家叫張伯倫的餐廳吃中飯。薩拉又查看她的手機,米基要了幾種不同的咖啡。米基回憶說,她和尼基曾爭論過是否要強迫李納斯放棄橡皮奶頭。他們爭論的方式很有意思:相互寫紙條,然後把紙條放在茶幾上。她們還談起了李納斯的記憶力非常之差,常常記不住別人的相貌。薩拉說:“要是你和他一起看電影,主人公本來穿一件紅色襯衫,但後來換了件黃色的,他就會問:‘這人是誰?’”他們全家還騎自行車去瑞典野營度假,晚上就睡在擺渡船上。第一天薩拉的自行車就被人偷走了,於是不得不花錢又買了一輛新的。他們的帳篷就搭在一個懸崖上。母女倆去游泳和釣魚,李納斯就一個人呆在帳篷裡讀了一整天的書。後來來了一場暴風雨,一直睡在帳篷裡的李納斯對突如其來的氣候變化竟全然不知,但正是因為他在帳篷裡,才沒使帳篷被風吹到波羅的海裡去。 米基回憶起李納斯整天躲在他的房間裡玩電腦的歲月時,不禁大笑起來。“尼基常對我說:‘把他踢出去,讓他去找個工作。’但李納斯對我不是什麼負擔。他的要求不多,他所要求的一切就是他的電腦。那是他的事情,他的王國,他有權那樣做。我對他所作的事情一無所知。” 如今她和其他人一樣,對她兒子的活動非常熟悉。各種媒體不斷地尋找米基和她的家人搜集材料。有一些問題他們都轉給了李納斯,但他告訴他媽媽、爸爸和妹妹運用他們自己的判斷力回答那些問題。可每當他們寫好回答後,一般又都寄給李納斯,在交給記者之前都希望得到他的同意。 幾個月前,我曾給米基發過電子郵件,請求她寫點關於李納斯童年生活的東西,米基的回信非常長,而且寫得非常用心。她文章題目是“從一個電腦迷中培養出李納斯”。在文章中,她描述了對她蹒跚學步兒子的早期觀察,說在他身上看到了她父親和她哥哥身上所具有的對科學執著的跡象。 “當一個問題出現並始終困擾一個人時,你就會看到他的眼睛變得發直,他再也聽不到你在說什麼,也不回答你簡單的問題,而是完全陷入眼前的問題之中,在解決方案的過程中廢寢忘食,而且從不放棄。當然,他在日常生活中會被瑣事打斷,但事後還會繼續單槍匹馬地思索,這時你便知道他是什麼樣的人了。” 她還寫了李納斯和薩拉這兩個兄妹之間的爭執和不可調和的不一致(比如,薩拉:“我不喜歡蘑菇、豬肝之類的味道。”李納斯:“你必須喜歡。”)他倆偶爾也會流露出尊重對方的態度。“李納斯在很小的時候,有一次對我袒露出對他妹妹的佩服。他那時大概是五歲或七歲,突然嚴肅地對我說:‘你瞧,我腦子裡從來沒有新的思想,我想的事都是別人先想出來的,我再把它們重新組織起來。但薩拉想的事都是別人從沒有想過的。’” “這些回憶讓我覺得,我至今仍認為他沒有什麼‘特殊的’才華,肯定沒有在‘計算機’方面的才華--假如他沒有這方面的才華,斷然會把精力放在其他方面。在某一天或某個年代,他就會集中於應付另一個不同的挑戰。我想他會的(我的意思是說,我希望他不要永遠陷在linux軟件上)。因為我認為他的動力並非是‘計算機’,也決不是名聲和財富,而是誠實的好奇心和征服所面臨的困難的願望,以及用最好的辦法去克服困難。因為事情就是如此,他決不會後退。 “我想我已經回答了李納斯是一個什麼的孩子的問題--不錯,他是非常好養的。他惟一需要的就是一個挑戰,剩下來的事情就由他自己去解決了。就像我和薩拉過去常說的,只要給他一間斗室,裡面放上一台電腦,再給他一些面條吃,他就會覺得無比幸福。 “除了……自他打小起我就一直揪著心:照他這樣怎麼可能找到一個像樣的女孩?我只得再次求助於父母們屢試不爽的辦法--祈禱。你們瞧,還真靈驗了!他是在大學教書時遇到塔芙的,她讓他在幾天之內忘記了他的貓和他的電腦,這毋庸諱言是上天的勝利,正如其一貫獲勝那樣。 “我唯一的希望是名聲不要讓他分心太多。他的出名並沒有改變他,但他變得溫和多了,人們接近他時他也願意和別人說話了。拒絕別人也讓他感到比較為難了。但我想讓他改變的與其說是所有媒體的喧囂,還不如說主要是由於他成為了一個丈夫和一名父親。” 顯而易見,母親和女兒都對媒體的喧囂了如指掌。Transmeta公司鄭重宣布他們的決定的第二天,我們在吃中午飯時,米基就問薩拉:“今天的報紙上有什麼消息嗎?” 當天晚上,在她去上班的路上,她讓出租汽車司機在我住在旅館門口停下,她送來了一只松木兒童椅子,讓我親自交給帕特裡夏。同時還有一張一處公寓的樓層平面圖。

下面我談談第一次見識李納斯那出色發明的情景。 記得那是1992年上半年的一天。我騎著自行車,隨便溜達到了李納斯亂七八糟的家裡。和往常一樣,我一邊看著音樂電視節目,一邊詢問李納斯有關他那操作系統的發展狀況。要是平常,他會咕哝一些毫無意義的東西。這次,他卻徑直領著我穿過髒亂的廚房,來到他那一團糟的房間裡的電腦旁。 李納斯將用戶名和密碼輸入了電腦,接著出現的是command prompt命令提顯符。他展示了命令處理程序(command interpreter)的一些基本功能--但是沒什麼特別的。稍許,他回過頭,臉上帶著李納斯式的微笑,問道:“看起來像DOS,是嗎?” 我點點頭。我一點也不吃驚,因為那看起來真的像DOS--沒什麼新意,真的。我真該知道,如果不是有什麼特別的話,李納斯絕不會那麼笑。他轉向電腦,又敲了幾個功能鍵--出現了另一個登錄屏,一個嶄新的登錄屏和嶄新的命令提顯符。李納斯給我看了四個不同的提顯符,告訴我這四個命令提顯符可由四名不同的用戶使用。 就在那時,我知道李納斯創造了一種奇妙的東西。毫無疑問。 喬科。沃魯馬吉 “對我而言,那意味著電話一直占線,沒有人能給我們打電話……後來,明信片開始從四面八方寄來。我想就是在那時,我意識到現實世界的人們確實在使用他所創造的東西。”



Copyright © Linux教程網 All Rights Reserved