編者按:1994 年,《Linux Journal》創刊。當時雜誌的特寫文章是雜誌的第一位發行人 Robert Young(後來與人聯合創辦了Red Hat)對 Linus Torvalds(Linux 核心的作者)的採訪。25 年之後,兩人再度坐到了一起,就 Linus 本人的近況,Linux 的成功之道以及未來之路,自己的工作哲學,對社交媒體的看法,對網路噴子和匿名性的態度,對年輕開發者的建議等進行了推心置腹的交流。
Robert Young 與 Linus Torvalds 的訪談錄
Robert Young:
很高興能有個藉口跟你取得聯絡。你跟家人都挺好的吧?你的孩子現在應該都上大學了。我和 Nancy 還有我們的 3 個女兒都挺好。我和 Marc 創辦 Red Hat 的時候老大 Zoe 11 歲,現在她準備有第二個孩子了——也就是說,我現在都當爺爺了。
Linus Torvalds:
其實我的孩子都還沒大學畢業,不過 Patricia(老大)今年5月會畢業。Celeste(最小的)在讀高三,所以再過半年我們就成空巢老人了。
3 個孩子都還不錯,當外公我想/希望是幾年後的事情了。
Bob:
1994 年我第一次採訪你時,你會不會認為到 2019 年自己還會維護這個東西?
Linus:
我想 1994 年的時候自己就已經感到驚訝了,想不到我的最新專案不僅僅又是一個“做點有趣的直到它做了我需要的一切然後再找點別的去做”這樣的專案。當然,那時候還處在開發相當早期的階段,但那已經是我做了幾年的專案了,並且已經有了自己的生命。
所以我想我試圖要表達的是,我未必會預料到會再做它幾十年,但它已經邁過了一道坎,成為我生命當中一個相當重要的東西。其實我從來都沒有給 Linux 制訂過長期計劃,我做事都是一天天來的,而不是考慮 5 年或者 10 年後的事情。
Bob:
關於實現你的夢想的危險性,你過去有一句名言——在被問到對 Linux 的未來目標是什麼時,你經常開玩笑說是“統治世界”。現在你——還有更廣大的開源/自由軟體圈——已經實現了這個目標,接下來呢?
Linus:
呃,我很久以前就不開“統治世界”的玩笑了,因為隨著時間推移這個看起來不怎麼像是玩笑了。但它一直都是個玩笑,這也不是我(或者任何其他開發者)做所做的事情的原因。那個原因永遠都只是為了做出更好的技術,去發掘有趣的挑戰。
其實在核心層面沒有一樣東西改變。所有的細節都變了——硬體已經很不一樣,我們的問題已經很不一樣,我的角色已經很不一樣。但“做得更好,發現有趣的挑戰”依舊不變。
比如說,1994 年那時,我基本上是個開發者。當然,我也是首席維護者,但雖說我花了很多時間在合併補丁上,但我基本上都是寫自己的程式碼。現在我很少寫很多程式碼了,而且我寫的往往是虛擬碼或者樣例補丁,然後發郵件給真正的開發者。我曾經對把自己叫做“經理”猶豫過,因為其實我並沒有做過年度考評或者預算之類的事(感謝上帝!),但我絕對更像是技術領導而不是實際的程式設計師,過去許多年裡一直都是這樣。
所以真正重要的東西沒有變過,但跟 1994 年相比,我的角色以及所有那些細節,顯然已經非常非常不一樣了。
Bob:
再過 25 年,你以及這個程式碼庫會去到哪裡?
Linus:
呃,那時候我都 75 歲了,我懷疑到時候還能不能每天都這麼投入。但考慮到我一直做這個都快 30 年了,也許我屆時還會跟進下去。
好訊息是我們的確有一個非常堅實的開發者群體,我不擔心“Linus 會走向何方”之類的問題。當然,很長一段時間以來,大家一直都在討論核心開發者怎麼變得越來越老的問題,但這其實不是因為我們找不到任何新人,而完全是因為我們依然有很多做了很久的人還在做,並且仍然享受其中。
我曾以為有朝一日會有個令人興奮的全新 OS 出現,取代 Linux(嘿,1994 年那時候我大概仍然認為也許 Hurd 會做到這一點!),但我們不僅做這個做了很長一段時間,而且仍然做得非常好,我也意識到開發新的作業系統要比我想象的難多了。這的確需要很多人付出很多努力,而 Linux——或者更廣大的開源——的優勢,正在於你可以站在別人的肩膀上做開發。
所以,除非技術版圖出現了翻天覆地的變化,否則的話我認為 Linux 再過 25 年依然會做得相當好。這不是因為程式碼本身的任何細節怎樣,而完全是因為其開發模式和問題空間使然。
到那時候我可能幹不動了,而且很多程式碼都會被升級替換,但我認為這個專案仍將保留下來。
Bob:
這些年來為了讓你滿意,你和核心團隊是不是一直在更新核心程式碼?已有 25 年曆史的不斷擴張的 Linux 程式碼庫是否存在重寫的需要或者壓力?是不是可以用比 C 語言“現代”一點的語言來重寫?
Linus:
這些年來我們已經對大多數子系統進行了很多的大規模重寫——當然不是一次性地——很多程式碼塊最終都已經成為了沒人再想去修改的了(通常是因為那是過時硬體的驅動程式,已經很少人用,但我們還將支援)。不過,整個核心有一個大一統的程式碼庫的好處之一,是當我們需要做出一些大的改變時,我們就能做到。可能有一些核心之外的驅動程式等(包括原始碼和二進位制檔案),但我們一直以來的政策都是,如果是核心以外的話,就不關開發的事。所以,必要的時候我們可以做出徹底改變。
至於 C,沒有比這更好的語言出現。我們已經針對新的改進過的功能更新了核心原始碼(在這些年裡 C 語言本身也發生了變化),而且我們還為額外的型別檢查、執行時驗證以及強化等給 C 語言上新增了各種擴充套件,但基本上除了一些小細節之外,這門語言基本上還是一樣的。
而且說實話,這看起來不大可能會變。大家看到處在活躍開發中的那種語言不是用來進行底層系統開發的,而是為了讓用好看的 UI 等開發使用者應用更容易而準備的。這類語言顯然不想幹核心需要的事情,比如底層人工記憶體管理等。
可以想象,我們會有一些“框架”語言來生成驅動程式或類似東西,而且在我們內部實際上也有自己的簡化“語言”來進行配置,我們在建構過程中的確也使用了一些其他語言,所以 C 不是我們使用的唯一語言。但到目前為止,這是大部分都是用 C 寫的,“真核”都是用 C 來寫的。
Bob:
你選什麼樣的硬體?是不是那種 Linux(或任意其他)筆記本牌子貨?還是平板或者手機?
Linus:
我的主要開發裝置是非常普通的 PC 工作站。那是這些年來組裝起來的。機器沒什麼特別,自打我對它大改之後其實已經有 2 年了,所以甚至都算不上先進。在家裡我的主要要求其實就是要徹底的安靜。除了幾個風扇以外,裡面沒有任何的活動件(所以再也沒有機械硬碟了),而且風扇大部分時間內甚至都不用轉。
外出時(幸好不用經常),我的主要需求是螢幕要好、要夠輕。我的目標重量是 1 公斤(帶電源),說實話,我還沒有達到這個理想目標,但目前對我來說最好的折衷是 XPS13。
Bob:
似乎 Linux 在桌面的成功不在於 PC 桌面而在於(通過 Android 實現的)裝置桌面。你怎麼看?
Linus:
呃,傳統 PC 顯然不再像以往那樣佔主導了。哪怕你一臺電腦(即便仍跑 Windows 或 OS X),很多人也主要是通過 web 瀏覽器和一些應用程式來使用。當然,還有那種“工作站”使用者,這是那種我個人一直設想中的桌面。雖說還很重要,但它似乎已經不能像當年的 PC 那樣去推動市場發展了。強大的桌上型電腦似乎主要是用來開發、玩遊戲、或做媒體編輯。那種“休閒”類桌面似乎更多是瀏覽器類的東西,而且往往只是一臺平板或者手機。
當然,Chrome 在其中某些領域似乎做得不錯。不過就每天都跟 Linux 打交道的人數而言, Android 顯然佔了大塊頭。
[Bob 注:就“統治”的嚴格意義來說,這可能是公平的。但儘管過去幾年 PC 總出貨量有所下降,但 1994 年到 2014 年 PC 市場的累積增長依然可觀,以致於即便在 PC 市場放緩的今天,每年 PC 的安裝量仍然是 1994 年的四五倍]
Linux 之父(Linus Torvalds)Bob:
如果你得解決網路世界的其中一個問題,那會是什麼?
Linus:
都不是技術性的問題。但是,我對現代的“社交媒體”深惡痛絕——如 Twitter、Facebook、Instagram 等。這是一種病,似乎鼓勵了壞行為。
我認為其實郵件也有部分同樣的問題,我之前曾經說過:“在網際網路上,沒人能聽得出你的微妙”。只要不是面對面的交流,你就會錯過所有正常的社會線索,很容易就會錯過幽默和挖苦,但也很容易就會錯過對方的反應,所以就會有吵得不可開交等面對面交流不易出現的情況。
但電子郵件仍然管用。你仍然必須花精力去寫,而且一般都會有一些實際內容(技術性或者其他)。那些“點贊”和“分享”之類根本就是垃圾。不用付出,也沒有質量控制。實際上,這些都跟質量控制是背道而馳的,大家目標的共同點最少,都是些標題黨,是為了喚起情緒反應,往往是道德義憤之一。
再加上匿名,這完全是令人作嘔。當你甚至都不把真名寫在你的垃圾(或者你分享或點讚的垃圾)上時,的確是一點作用都沒有的。
其實我是認為匿名性被高估的人之一。一些人將隱私與匿名混為一談,認為這兩者是息息相關的,保護隱私意味著你需要保護匿名。我想這是錯誤的。如果你是告密者的話匿名是重要的,但如果你無法證明自己的身份,你在一些社交媒體平臺上的瘋狂謾罵就不應該可見,而且你也不應該能夠分享它或者點贊。
好吧,我這也是謾罵。我不上任何的社交媒體(我試過一段時間的 G+,因為上面的人不是腦殘,但顯然它從來都沒火過),但這依然令我困擾。
Bob:
本期的《Linux Journal》關注的是孩子與 Linux。對於年輕的程式設計師/電腦科學學生你有什麼建議?
Linus:
其實我是最不應該問的人。我知道自己很小的時候就對數學和計算機感興趣,直到大學之前我基本上都是自學的。我做的一切差不多都是自發的。所以當大家說“我應該做什麼?”時,我不能理解大家面臨的問題。我根本就沒有這樣的問題。
Bob:
你我的第一次見面是在 DEC 展上。在“瘋狗” Jon Hall 和 DEC 的資助下,那是你第一次去美國。
Linus:
我認為那其實是我第二次到美國。我想第一次是去猶他普洛佛,跟 Novell 討論 Linux(為了 Novell 的一個內部專案,是 Caldera 的前身)。
不過 DECUS 展(是在新奧爾良嗎?也許我記錯了)的確是我最早到美國的目的地之一。
Bob:
我曾經問過你回到赫爾辛基時是怎麼處理掉積壓的電子郵件的。你的回答令我感到吃驚,後來我一直都引用你說的話。你只是說你會把積壓的郵件發往 /dev/null。我表示震撼並且問你:“如果收件箱有重要郵件怎麼辦?”你聳聳肩回答道:“如果是重要的話,寫信的人會再發一遍的。”這可能是任何人能給我的最釋懷的建議了。你現在還遵循這種郵件處理哲學嗎?
Linus:
多少還是這樣的,但與此同時,我的工作流已經改變了很多,所以旅行不會像過去那樣對我的工作造成那麼大的干擾了。所以一這段時間以來我往往會盡量不讓大家注意到我出去了。如果在一兩天內我的網際網路連線可能有問題的話(尤其是如果你是水肺潛水員的話)我會提前警告一下。但大多數時候,我在世界任何地方都可以幹活。我試過把行程安排在合併視窗期以外(有時候會失敗),因為那這是我收到拉取請求最多的時候。
所以這段時間我都是把郵件存在雲端,這樣子機器間切換就容易多了,這也意味著當我旅行並且使用我的筆記本時,不再會像過去那樣下載郵件到本地機器那麼痛苦了。
而且不僅我的郵件是這樣——實際上,幾乎所有的核心開發最終都是靠 git 來分發的,這也意味著我在哪臺機器上基本上已經不是問題,而且同步要比過去通過電子郵件一個個去處理補丁容易多了。
不過,我那個“如果郵件重要,對方會重新傳送”的看法依然有效。大家都知道,我差不多是全年連軸轉的,如果我幾天內都沒有對拉取請求做出響應的話,這仍然意味著它可能會被埋沒在我一堆郵件當中,大家就會再發一封郵件來提醒我一下。
但這種情況其實已經比過去少見多了。1994 年的時候,我還沒那麼工作過度,離開一週也沒什麼大不了的,但是,在接下來的幾年裡,情況慢慢變得越來越糟,以至於我們以前那種郵件發補丁的工作流意味著我有時被迫忽略補丁,因為我已經沒有時間去處理,且知道大家還會再次發郵件的。
很高興,那樣的時光早已一去不復返。BitKeeper 對我產生了很大的的影響,儘管不是所有的維護者都喜歡它。現在 git 意味著我不再通過郵件收取成千上萬的補丁,我的收件箱看起來不再像過去那麼糟糕了。所以跟它相處也容易些了。
順便說一句,有一條規則可能比“如果郵件重要,對方會再次傳送”還要重要,我已經執行力很長一段時間:如果不必回覆,那就不回覆。如果我收到郵件後的反應是別人可以處理的話,我會乾脆忽略這封郵件。一些日理萬機的郵件人會設定自動回覆說“抱歉,我最終會處理的你郵件的”。但我會忽略任何自己覺得與我無關的事情。這麼做純粹是因為我覺得我承受不起鼓勵大家給我傳送梗更多郵件的後果。
所以我收到很多郵件,但其實大部分我都不回的。實際上,我的工作很多都是掌控全域性,知道發生了什麼事。所以我會看很多郵件,但一般不怎麼寫郵件。
Bob:
1995 年 5 月,Don Becker 在華盛頓組織的一場 Linux 使用者組會議中,你發表過一次演講,中途你曾停下來問聽眾誰知道男子冰球世錦賽芬蘭對瑞典的比分。作為與會的加拿大代表,我得以向你保證芬蘭贏得了比賽。說道這個,芬蘭最近贏得了世界青年錦標賽,你肯定感到很開心。還是你會為美國歡呼?
Linus:
嗨!冰球也許是芬蘭的國球,但我不是狂熱的體育迷。搬到美國並不意味著我會選棒球或者橄欖球,只是意味著冰球也失去了那種“我周圍的人在乎”的感覺。
Bob:
我們很多人都對你在 Linux 技術決策的公開辯論中直言不諱的態度感到欽佩。嗯,其他人就不喜歡你直率的說話風格。隨著時間的推移,你認為自己是不是多多少少有了一些外交辭令的味道了?
Linus:
如果說有什麼區別的話,我想我已經變得更安靜了。我不會說這是“更加外交辭令”,但也許是更有自知之明瞭,而且我也在試著不那麼咄咄逼人。
這部分是因為大家不再像過去那樣對我進行解讀。過去的環境更加隨心所欲一點,我們也是一群享受樂趣的極客。現在的環境跟過去不一樣了。再者也不像過去那樣個人化了,現在參與開發的人已經成千上萬,這還只是計算量發出補丁的人數,還不是做 Linux 的人的全部。
而“用不同的方式解讀我”的部分原因在於,大家用一種 1994 年時不曾有的嚴肅態度來對待我。這絕對不是抱怨說當時大家沒有認真對待我——其實恰恰相反。這更多是我的抱怨,抱怨大家現在太過認真地對待我了,所以我再也不能說一些愚蠢的廢話了。
所以我仍然會號召大家(尤其是公司)做些蠢事,但現在我這麼做的時候必須知道這是新聞,如果我朝某些公司豎中指的話是會被記住幾十年的。不管是否活該,這種行為可能都不值得。
Bob:
你還有什麼要說的嗎,無論是公開或者私下?
Linus:
我從來都沒有想要傳播的“訊息”,所以……