前情提要:
Linus(四)—— Linux 誕生Unix 始於20 個世紀60 年代,在70 年代得到了迅猛的發展,這時候的林納斯還躺在祖父公寓裡的搖籃裡睡大覺,如果不是後來 Unix 王國自亂陣腳,出現陣營分裂和法律糾紛,可能Linux 系統根本都不會出現。真實的情況是,Unix 浪費了大把的時間和機會,似乎就是為了等待這個大鼻子、頭髮紛亂的芬蘭小子長大,然後一決高下。林納斯贏得了自己的時間,他一刻不停地磨練自己的技藝,在清晨的微光中練習演算法,在赫爾辛基的雪山上編譯程式碼,隨時隨地地補充糧草和武器。21 年之後,林納斯撫著雪亮的刀鋒上路了,他要去追尋屬於程式設計師的最高榮耀。
1991 年1 月,林納斯花費了3500 美元,分期付款購買了一臺雜牌組裝電腦,記憶體4 兆,CPU 33 兆赫,還有一臺14 英寸的顯示器,然後又買了 MINIX 作業系統,用16 張軟盤把這個作業系統裝到了計算機裡。之後,林納斯又用了一個月的時間,了解了 MINIX 的好和不好,並把這個系統改裝成了自己得心應手的“戰鬥機”,開始了戰鬥的人生。就是在這臺電腦上,催生了 Linux 的初始版本。
Linux 的誕生離不開 MINIX,MINIX 是 Mini Unix 的縮寫,是安德魯·坦尼鮑姆教授編寫的迷你版的 Unix 作業系統,原始碼可以提供給大學和學生,用於作業系統教學,採用了微核心設計。其中的程式碼還作為《作業系統:設計與實現》的示例程式,這本書我們在“Linus(三)”中提到過,給了林納斯極大的啟發。
林納斯使用了 MINIX 之後,發現這個系統有很多缺陷,比如效能問題、核心問題、檔案系統問題,最大的問題是終端模擬器,也就是我之前總提到的 Terminal,登入學校裡的 Unix Server 和上網時,林納斯都需要終端,但是 MINIX 無法滿足這個需求。如果普通人遇到這種問題,估計就是發會呆然後洗洗睡了,或者說“你行你上啊”,但林納斯不是普通人!
他決定拋開 MINIX,從硬體層面開始,重新設計一個終端模擬器。牛人就是不同凡響,這個決定表明了林納斯需要從 BIOS、CPU 等硬體層面重新開發出一套系統,除此之外,還需要了解如何把資訊寫入顯示器,如何讀取鍵盤輸入,如何讀寫調變解調器,早期儲備的組合語言和 C 語言能力終於派上了用場……
兩個月之後,終端模擬器完成,對此林納斯非常驕傲:
對我這次了不起的壯舉,妹妹薩拉倒是知道,不過我把終端模擬程式演示給她看時,她在顯示器上看到一長串字母A 和一長串字母B,看了大概五秒鐘,然後說了一句“挺好的”就轉身走了,顯然沒覺得有什麼大不了的。我意識到這確實不像什麼了不起的事。只不過,有些東西表面上可能看起來沒什麼,但背後卻包含了大量繁雜的工作。這就好像你把一段剛鋪好的柏油公路指給別人看,指望這樣就能讓他明白你耗費了多少人力物力,這根本不可能。當時是三月份,或者四月吧。不知道彼得蓋坦大街上積雪是不是都化成雪泥了——我不知道,也不在乎。大部分時候,我都穿著睡袍,和我那臺不招人喜愛的電腦纏綿在一起。窗戶上那塊厚實的黑窗簾遮得嚴嚴實實,把我和Sunny隔離開來(外面的世界就更不必說了)。Linux 作業系統就這樣開始了,一發不可收拾。林納斯的當時程式設計狀態是這樣的:程式設計——睡覺——程式設計——睡覺——程式設計——吃飯——程式設計——睡覺——程式設計——洗澡——程式設計……
實現了終端模擬器之後,林納斯馬不停蹄,開始新增磁碟驅動和檔案系統,那一年林納斯還在上課,但是課程很簡單,他唯一的課外活動就是參加每週三晚的同學聚會,這個長著大鼻子的技術天才,常常會因為擔心自己缺乏社交能力和容貌醜陋而失眠,對那時的他來說,唯一有趣的事情就是把驅動程式寫出來。於是他咬咬牙對自己說,還得幹下去。(看來沒有女神的好處就是可以寫個作業系統出來,然後把自己叫做上帝。)
隨著工作的進展,終端模擬器正在開始向一個作業系統的方向發展,林納斯顯然也看清楚了這一點。
在創造 Linux 的整個過程中,我們沒有看到林納斯使用了什麼樣的高階工具,估計那時也沒有,整個系統基本上是一行行程式碼敲出來的,純手工打造,這些先賢的程式設計功底和效率讓我們歎為觀止,所以,現在,我決定開啟終端,輸入 vi,然後鍵入to be continued,感受一下林納斯當年程式設計的風采……
隨著林納斯不斷地敲擊鍵盤,他的終端模擬程式也不停地擴張,從剛開始的小樹苗長成了一株盤根錯節的大樹,樹根牢牢地抓住土地,枝丫努力地伸向天空,花朵和果實開始在高遠的天空中爍爍發光,所有的細節都在林納斯的掌控之中。懂行的技術人員都看得出來,這個大鼻子的芬蘭小子是準備開發一個作業系統啊。
是年6 月份,林納斯基本確定了要開發一個作業系統核心的計劃,並開始著手蒐集 Unix 作業系統標準的相關資料。1991 年7 月3 日,格林尼治時間上午10 點鐘,林納斯在 MINIX 新聞組發出了一封求助郵件,尋求有關 POSIX 標準的幫助,他在郵件中寫道:
由於我目前正在Minix 系統下做一個專案,所以對POSIX 標準定義很感興趣。不知道有沒有人能給我提供一個最新版的POSIX 規則(最好是以一種機器可讀的格式)?要是能有FTP 地址就更好了。這份公開的郵件是標識 Linux 問世的最早證據。郵件發出後不久,有人就寄來了厚厚的 POSIX 標準,同時赫爾辛基工學院的阿里·萊姆克也對林納斯的郵件做出了響應,為林納斯提供了一個 FTP 地址,用來上傳他即將完成的作業系統。
(注:POSIX 全稱是“可移植作業系統介面”(Portable Operating System Interface)。IEEE 最初制定 POSIX 標準,是為了提高 UNIX 環境下應用程式的可移植性。隨著技術的發展,POSIX 開始不侷限於 UNIX 系統,後續的 Linux 和 Windows NT 都部分地遵循了該標準。POSIX 在林納斯開發的過程中起到了燈塔的作用,直接後果就是Linux 系統從一開始就走在了正規軍的康莊大道上,基本沒有跑偏過。Linux 幾乎可以適配各種型別的硬體體系結構。)
標準和 FTP 地址都有了眉目,林納斯開始實現各種系統呼叫,以便讓 shell 執行起來。這段時間的工作讓林納斯時常感到灰心喪氣,看著增加的程式碼量,工作似乎前進了一大步,但是檢驗一下功能又彷彿沒有任何進展。有時候他還不得不放棄之前的想法和已經完成的程式碼實現,另闢蹊徑從頭再來,即使是在天才面前,程式碼也能讓人歡喜讓人憂。
終於shell 已經可以在新的作業系統上工作了,林納斯開始編寫複製(cp)和列表(ls)等程式。shell 程式一旦完成,就好像完成了從0 到1 的飛躍,一切都變得無比順利,林納斯面前彷彿出現了一條陽關大道,一切都豁然開朗了,他說,要有光,於是就有了光。對於這種狀態,林納斯表示“我很滿意”,並且開始用“Linux”稱呼這個作業系統。
這種滿意非常重要,因為那個夏天林納斯除了伏在電腦面前噼噼啪啪地敲擊鍵盤,什麼都沒做。芬蘭四月到八月的日子是一年中最美好的時光,人們到佈滿小島的海上航行,去海灘上晒日光浴,到夏日小木屋中消遣時光。但是林納斯,他只是在永無休止地編寫程式,忘記了白天和黑夜,黑色的窗簾遮蔽了燦爛的Sunny,也遮蔽了外面的世界。他唯一的想法就是,得趕緊把這該死的系統做出來!
1991 年8 月25 日,林納斯在MINIX 新聞組上發郵件做了一個調查,想知道大家希望這個新的作業系統具備什麼特徵。
1991 年9 月17 日,林納斯把已經完成的新作業系統上傳到阿里·萊姆克提供的FTP 伺服器上,並準備用Freax 作為作業系統的最終代號,結果遭到了阿里·萊姆克的激烈反對。阿里·萊姆克對林納斯說:
“林哥,您咋會想到用這麼變態的名字命名作業系統呢?原來的Linux 不挺好的嘛!” “那樣不會顯得自戀嗎?” “您這樣就不對了,作業系統是開天闢地的大事,人民群眾都等著用您的名字命名呢,看看他們的眼神,您能辜負他們的期望嗎? Linux 天生不就是用來跟 Unix 遙相呼應的麼?這是命,得認!” “這……那我就不推辭了啊。”
以上為意譯,不過基本上和古代皇帝的黃袍加身是一個意思。新的作業系統最終以Linux 命名,並在10 年後名揚天下,20 年後統治伺服器領域,可謂 Linux 恆久遠,Linus 永流傳。
Linux 核心0.01 版本終於釋出了,雖然漫長的開發過程才剛剛開始,但林納斯終於可以鬆口氣了:
Linus(五)——繼續前行瞧,我真的做出了點什麼。我沒有在騙你們。這就是我所做的...... 創造作業系統,就是去創造一個所有應用程式賴以生存的基礎環境——從根本上來說,就是在制定規則:什麼可以接受,什麼可以做,什麼不可以做。事實上,所有的程式都是在制定規則,只不過作業系統是在制定最根本的規則。
Linux 從一誕生就被打上了開源的烙印,這一點對 Linux 的後續發展起到了至關重要的作用。從1991 年核心0.01 版本釋出,到1994 年1.0 版本閃亮登場,世界各地無數的開發者為 Linux 提交了程式碼,林納斯為 Linux 建立了討論組 comp.os.linux,全世界愛好開源和 Linux 的程式設計師與黑客都在上面討論問題,他們就像群蜂築巢一樣,不斷地通過個體和群體的力量交替推進 Linux 的飛速發展。
林納斯對自己說:嗯,沒有任何東西可以阻擋 Linux 的普及!
這種感覺估計很多程式設計師都體會過,當你設計的演算法得出了正確結果的時候,當你自以為解決了一個海森堡 Bug(Heisenbug,表示不可重現)的時候,當你完成了一段精妙程式碼的時候,你摘下厚重的眼鏡,推開鋪滿灰塵的書桌,開啟辦公室唯一的窗戶,迎著夕陽把一隻廢棄的原子筆扔出窗外,然後衝著天空大喊:還有誰?這是一種拔劍四顧心茫然的情懷。
林納斯還不止於此。他不僅單槍匹馬寫出了 Linux 的核心,而且做出了開源的決定。他把 Linux 放到了網際網路上,並且允許那些希望使用和改進它的人們根據開源協議修改和提交原始碼。這兩點對網際網路的影響是極其深遠的,估計林納斯當年也沒有想到,當時的兩個小小的漣漪,經過時間和空間的放大,十幾年後形成了一股網際網路巨浪,到現在 Linux 依然處於風口浪尖。
對於 Linux 取得的成功,林納斯將其歸結為是由自己的缺點導致的:
我很懶散;我喜歡授權給其他人。其實這兩個所謂的缺點,正是優秀程式設計師和領導者必備的要素,它們讓 Linux 成為世界上最大的開源協作專案,為喜愛 Linux 的人們帶來了最美好的技術和應用,現代的網際網路幾乎是執行在 Linux 之上的,可以說,林納斯改變了世界,你每一次伐開心後在淘寶上買包包,都有林納斯貢獻的力量!
Linus(六)——來到矽谷1996 年的春天,Linux 順利釋出了2.0 版本。是年林納斯27 歲,這個芬蘭小子已經慢慢厭倦了芬蘭平淡無奇的日子和不眠不休的程式設計生活。對於一個技術天才來說,創造一套新的技術體系就像藝術家完成一個雕像一樣,當一塊粗礪的岩石在他的親手打磨下逐漸顯山露水,展現出其完美容顏的時候,後續的修修補補會讓這些天才產生倦怠的感覺。他們需要更快的劍、更高的山和更強大的對手。尤其是期間林納斯訪問過兩次美國之後,這種感覺變得愈發不可阻擋了。
說起來美國確實是個神奇的國度,這樣一個移民國家中,居住了各種從不同國度不遠萬里跨海而來的種族,每個種族無論在基因上還是文化上都具有原來國家的特質,這些特質相互融合與對抗,讓這塊大陸上的人民更銳意進取,更開放,更自由,他們願意去追求和接納美好的事物,最終一不留神把美國搞成了世界文化的大熔爐,而開放的文化和環境又極大地激發了人們的想象力和創造力,近代和現代的科技成果幾乎全部源於美國,要麼是美國人搞的,要麼是外國人在美國搞的。所以有時候我們也不用顧影自憐,嘲笑自己沒有中國產的作業系統和程式語言,因為其他國家也沒有,或很少有,芬蘭好不容易出了個天才少年,也沒好好珍惜,最終落了個“流落”異國他鄉的下場。
林納斯一到美國就被這塊新大陸吸引了,一切都是那麼地新鮮和美好,他的感受與你第一次出國後在微信朋友圈發的“天是那麼地藍,雲是那麼地白”是一樣一樣的。林納斯在自傳中寫道:
當時,摩門教的150 週年紀念活動才剛過了沒幾年,所以他們主要的教堂都拾掇得乾乾淨淨的,白得發亮。在歐洲,由於歷經歲月蹉跎,所有的教堂都顯得老態龍鍾,斑駁陸離。看慣了歐洲的教堂,再一看摩門教堂,這白得發亮的牆讓我聯想到迪斯尼樂園!它看起來不像是教堂,更像是童話裡的城堡。我記得我從金門大橋上徒步走過,邊走邊望著對岸的馬林岬,興奮極了,巴不得一步走到對面,在群山的懷抱中暢行。不過,等我總算走到馬林岬那一邊的時候,已經累得走不動了,什麼群山和暢行早就拋諸腦後了。當時我肯定料想不到,差不多六年之後,我會坐在海風拂面的馬林岬群山頂峰,一邊俯瞰著太平洋、舊金山市、舊金山灣、金門大橋以及籠罩著這一切的霧靄,一邊對大衛的錄音機訴說這一切。
從美國回到芬蘭之後,林納斯對自己說:“我要去美國。”
當林納斯透露出自己的就業計劃之後,馬上有多家公司遞來橄欖枝,其中包括著名的 Linux 公司 Red Hat。這種感覺是如此美妙,就像你剛剛掏出一支香菸,面前已是千百個打火機舞動。但是林納斯本著不加入任何一家 Linux 公司的原則,拒絕了Red Hat,參加了另一個名不見經傳的公司的面試。這家公司叫做 Transmeta,中譯名“全美達”,你們可以從維基百科上查到這家公司,不過我打賭,知道這家公司的讀者不會超過千分之一。這並不是咱們孤陋寡聞,因為美國人民剛開始也不知道這家公司在幹嘛,全美達官網在1997 年中上線,兩年半後網站的建設情況是“This web page is not yet here”,又過了很久人們才從內部員工透露出的一點資訊得知,這家公司似乎是搞處理器的。這是我所知道的唯一一家保密措施強過蘋果的公司,如果不是林納斯,這家公司就像是根本沒有存在過。
就是這樣一家公司,面試了在開源社群名滿天下的技術天才、Linux 作業系統的締造者林納斯,並且將其招至麾下,一待就是六年。從某種程度上,這六年嚴重地影響了 Linux 作業系統前行的腳步,因為林納斯沒有足夠的時間開發 Linux 了。
雖然根據全美達與林納斯的協議,他可以繼續從事 Linux 的開發,而且他確實也想這麼做,比如白天為全美達工作,編寫 X86 解釋程式,晚上繼續 Linux 的偉大事業。不過真實的情況是,晚上丫睡著了……
關於加班和睡眠,林納斯是這麼解釋的:
有些人喜歡加班加點幹活,非得輪上兩班、三班甚至四班的活兒不可。我不是那種人。不管是全美達的專案還是Linux 的任務,我都不會犧牲睡眠時間。好吧,如果你非要聽真話,其實是我非常愛睡覺。總之,林納斯第一次從網際網路上消失了,很多悲觀的開發者紛紛奔走相告,林納斯這小子是不是被招安了?丫開始為商業公司幹活了,Linux 作為自由軟體是不是已經瀕臨死亡了?每當這時候林納斯就會出來給大家打打氣說,哥還在呢,只不過剛睡醒……
關於林納斯的這段經歷,曾經在矽谷工作過的一位朋友給我提供了一些文字,大意是這樣的:
每次想起林納斯這段經歷,我都要感慨萬千。第一次得知林納斯虎落矽谷的事是在2002 年夏天,當地的《水星報》記者先是把林納斯大吹一通,然後說他從芬蘭老家搬到美國,就職於全美達已五年有餘,但 H1 移民仍然停留在勞工卡初級階段,六年期滿就要打道回府了。 當時這份報紙的讀者大概有一半人有 H1 經歷,然後這一半人裡的一半都知道Linux 是啥東東,但是從未聽說過全美達是何方神聖,這貨居然把一代技術英雄扣在那兒為一個名不見經傳的小資本家作苦力,導制全球開源事業停滯不前,真是膽大包天啊!於是很多讀者跑到《水星報》去說,像林納斯這樣的天才願意移民到美國,布什親自開飛機去接都不為過,怎麼可以被移民局壓了五年呢……
還好,林納斯在2003 年離開了這個叫做“全美達”的公司,受聘於開放原始碼開發實驗室(OSDL : Open Source Development Labs, Inc),重新統領開源世界的各路英豪,全力開發 Linux 核心,Linux 再次煥發出勃勃生機,這一次,它要引領的是網際網路的技術浪潮……
Linus(七)——關於財富林納斯對待財富的態度就是“視金錢為糞土”,是真的糞土。
那種默然的態度讓人感覺非常可怕。當一個人隨便動動手掛掛名籤個字就能獲取上千萬美元的時候,他依然和自己的妻女一家人擠在聖克拉拉一棟兩層樓的公寓套房裡,過著一個普通程式設計師的生活,同時不斷改進已經遍佈全球的 Linux,這是什麼精神?這是毫不利己專門利人的國際主義戰士的精神。
寫到這我不禁想起了綠茵場上的冰王子博格坎普,當他接到幾十米外的長傳,用標誌性的慢速停球過掉撲上來的後衛,輕釦,過掉另一個後衛,顛球,閃過最後的防守,面對守門員的時候不是大力抽射和仰天長嘯,而是把球搓出一道完美的拋物線,球越過門將,緩緩落入網窩,然後博格坎普,低著頭慢慢地走開,留給對手的是優雅與實用並世無雙的技藝,和令人絕望的背影!
默然的感覺,懂了撒?
很多程式設計師創業成功或跟隨創業成功之後,自以為功成身退,最早扔掉的就是程式碼和編譯器,然後購豪宅當天使滿世界貼旅遊照片,你們感受一下,這個境界是完全不可同日而語的。(請勿對號入座,如有誤傷,必是友軍所為。)
事實上林納斯在拿到第一筆真正的財富之前,一直處於日子緊巴巴的狀態。當時另兩位帶頭大哥比爾·蓋茨和史蒂夫·喬布斯早已名滿天下傢俬萬貫,同時有大量的技術人員、商人和公司通過 Linux 及其相關技術獲取了鉅額財富,對此,林納斯的態度是:“和我有毛關係。”他似乎對一大群才氣不高的程式設計人員能夠享受到大筆的財富並不在意。這種情況一直持續到所有的有識之士都坐不住了:林納斯,你再也不能這樣下去了!
倫敦的一位企業家希望林納斯在他羽翼未豐的 Linux 公司做個董事會成員,報酬是一千萬美元。林納斯說,不用。企業家驚呆了,當他喃喃自語“臥槽你特麼知道一千萬美元是啥概念嗎”的時候,林納斯已默默走遠。
Red Hat 公司為了感謝林納斯的卓越貢獻,為他提供了一些期權,林納斯的回覆同樣是:“不用了,我不會給你獨家的授權許可的。”Red Hat 的人差點瘋掉:“林爺期權您就收著吧,我們什麼都不要行了吧?”“唔這樣啊,那就放這吧。”這就是林納斯!
正是這筆期權讓林納斯收穫了第一筆鉅額財富,因為 Red Hat 1999 年8 月11 日在納斯達克上市了。林納斯先是意識到自己從身無分文突然變成了擁有五十萬美元的土豪,然後是一百萬,五百萬,林納斯終於變得亢奮起來,原來期權也是錢啊!終於不用再為生計發愁了,對著這個事情,林納斯的定義是:我真是最幸運的傢伙!
事實上林納斯從來沒有想過 Linux 能夠獲得如此巨大的成功。他只是為了自己方便寫了一個作業系統核心並想借此獲得一點回報而已。“假如我事先知道了要做到如Linux 這般成功需要做多少基礎和瑣碎工作的話,那我肯定會相當沮喪的。這意味著你首先要非常優秀,並且你所做的大部分決定都導致了正確的結果。”
任何理智的人在登山之前凝望著高聳入雲的山峰和崎嶇艱險的山路時,都會陷於沮喪之中。解決辦法就是先邁出第一步再說,然後,但行好事,莫問前程。
Linux 不僅給林納斯帶來了名聲和財富,同時給福斯帶去了巨大的好處。年輕一代中最聰明的程式設計師和黑客都在使用 Linux 的產品,正是開放的 Linux 給這些天才的程式設計師帶去了巨大的創作熱情和喜悅,他們在 Linux 平臺上完成了一個又一個傑出的作品,這些技術形成的生產力,對網際網路的發展起到了巨大的推動作用,直到今天。
(未完待續)