天天看點

Linus Torvalds 先生的 10 個有趣的問答

Linus Torvalds 先生是一個低調的,不喜歡在公共場合抛頭露面的人,平時很難看到 Linus 先生在某個會議上跟大家侃侃而談。不過由于 Linus 先生所處的特殊位置,不時有媒體對 Linus 進行采訪,以使公衆了解 Linus 對某些事情的看法,而 Linus 也從不吝啬或隐藏自己的觀點,并且 Linus 的回答總是明确,有趣,充滿了機智,從不令人失望。

今年以來,如果我的記憶沒錯的話,Linus 一共接受了 3 次比較長的采訪/問答。最近的一次是在剛剛結束的 LinuxCon Japan 大會上,作為 Linux Foundation 慶祝 Linux 20 周年的一個活動,Linus 參加了其中的一個問答環節。本着八卦有理,娛樂無罪的精神,本人整理了 Linus 在這三次采訪中(ITWire, LinuxFR, LinuxCon Japan)被問到的比較有趣的 10 個問題,以及 Linus 的回答(非原話,可能有出入),一并奉上。

[1] 是否嘗試過教孩子程式設計,如果有,是什麼語言?

Linus 表示他的孩子們到目前還沒有表示出對程式設計有足夠的興趣,如果有的話,他也許會教他們 Python,不過誰知道呢。當然,最好是由其他人來教,Linus 表示自己并不是一個好的教師。

[2] 是否會幫家庭或朋友修電腦,尤其是他們的電腦運作的不是 Linux?

Linus 表示他通常不會提供這種電腦維修支援,至于他自己家裡的電腦,裝的都是 Linux,是以這不是個問題。

[3] 是否會閱讀其它作業系統實作的源代碼,來了解某個功能是怎麼實作的,或者純粹是為了娛樂或學習的目的?

Linus 表示他從不認為閱讀别人的代碼是了解某個想法的一種有用的方法,是以他從不會為了了解某個功能是如何實作的去閱讀代碼。他閱讀代碼通常是為了了解某個功能為什麼不工作,這些代碼通常也不是别的作業系統的代碼。比如他閱讀 zlib 的代碼,是因為他想知道為什麼 git 在運作某些庫函數時耗了那麼長時間。

通常他會通過閱讀某些書籍來了解某些知識。比如他通過閱讀 <The Design of the Unix Operating System> 來了解 Unix 是如何工作的,以及人人都知道的 <Operating Systems: Design and Implementation>。

當然現在,Linus 表示他已經不再閱讀任何作業系統書籍,甚至計算機相關的書籍也很少了。

[4] 是否經常收到采訪的請求,Linux Foundation 是否會請求你去代表他們出席某個場合?

Linus 表示他通常是通過 email 完成某些采訪,但也不是經常性的。他認為這是他的工作的一部分,他也通常不會介意,隻要提問的問題不是太弱智的話。

至于他與 Linux Foundation 的合同,則明确寫明了 LF 不能強迫他去參加某些公共活動,甚至不能影響他的技術上的決定。當然,有些 LF 的活動他也會去參加,比如每年的 LinuxCon Australia 會議,因為那個地方有他最喜歡的潛水。

[5] 在 Kernel 的整個開發過程中,添加的哪個功能讓你最愉悅,哪個功能又是你不喜歡,但不得不加進去的?

因為開發 Kernel 的時間太長了,Linus 表示有太多偉大或憋八的功能。可以列舉的其中一個令他非常開心的功能是 filename lookup caching (the so-called dentry layer),這是因為該功能最初來自于一個學生送出的用來實作另外一個功能的 patch,該 patch 是一個典型的學術研究項目,通常并不有用,但 Linus 把其中的想法借鑒了過來,用在了另外一個功能上,并且工作的相當不錯。

至于糟糕的功能,通常都與某些極其糟糕的硬體設計相關。最令 Linus 痛恨的是在 32 bit 的機器上支援超過 4GB 的記憶體(PAE),對他來說,這是個記憶體管理的噩夢。

[6] 是否還能完全掌握 Kernel 的所有部分,或者說必需要某些可信任的維護者的幫助?

Linus 表示他從來沒宣稱完全掌握 Kernel 的所有部分,雖然他比大多數 Kernel 開發人員掌握的要寬的多。有些子系統,他需要完全依賴維護者來幫助他做決定,因為他真的不了解(或者說不關心)該子系統,畢竟每個人都有自己的喜好與長短。

[7] 對于類似 OpenBSD 這樣将重點放在安全上的作業系統有什麼看法?對微核心有什麼看法?

Linus 表示任何為了某個單一目的而設計的作業系統都是失敗的,不管這個目的是安全還是其它。至于微核心,Linus 繼續堅持他的觀點,即仍然是失敗的,因為在現實中,作業系統的難點在于子產品之間的互動,而不是子產品本身。微核心盡量使得各子產品之間保持中立,這樣隻會令子產品之間的互動更加複雜。

[8] 面臨的最困難的技術挑戰?

Linus 表示他所面臨的挑戰大部分都是非技術的。任何技術問題,最終都會解決。而那些挑戰或者說最困難的問題,通常來自于排程成千上萬個開發人員以及公司的不同的進度。

[9] 20 年工作在一個項目上真的是很長,是否考慮過在 Kernel 上繼續工作 20 年?

Linus 說到那時他真的是太老了,總會在某一天,某個充滿精力的年輕人來到我們跟前,向我們展示他真的能夠勝任這個工作。這是 Linus 關于他離開的暗示,那就是有更好的人出現時。

[10] Linux 3.0?

在被問到關于最近的 Kernel 版本号跳号的問題時,Linus 表示這隻是一個版本号的變動,沒有任何其它意義。現在的 Kernel 版本号有三個數字,其中前兩個數字 2.6 已經失去了曾經的意義,而第三個數字到了 39,實在是太大了,是以就跳号了。

最後的這個問題來自于 LinuxCon Japan,主持提問的是 Greg K.H,他也兌現了他在 LKML 上對 Linus 的承諾,一瓶 17 年日本三得利威士忌(品牌叫“響”),以示對 Linus 的感謝。

本文轉自 @開源小廚

繼續閱讀