有趣問答 有關(guān)Linus Torvalds的那些事兒
Linus Torvalds 先生是一個低調(diào)的,不喜歡在公共場合拋頭露面的人,平時很難看到 Linus先生在某個會議上跟大家侃侃而談。不過由于 Linus 先生所處的特殊位置,不時有媒體對Linus 進(jìn)行采訪,以使公眾了解 Linus 對某些事情的看法,而 Linus 也從不吝嗇或隱藏自己的觀點(diǎn),并且 Linus 的回答總是明確,有趣,充滿了機(jī)智,從不令人失望。
今年以來,如果我的記憶沒錯的話,Linus 一共接受了 3 次比較長的采訪/問答。最近的一次是在剛剛結(jié)束的 LinuxCon Japan 大會上,作為 Linux Foundation 慶祝 Linux 20 周年的一個活動,Linus 參加了其中的一個問答環(huán)節(jié)。本著八卦有理,娛樂無罪的精神,本人整理了 Linus 在這三次采訪中被問到的比較有趣的 10 個問題,以及 Linus 的回答(非原話,可能有出入),一并奉上。
[1] 是否嘗試過教孩子編程,如果有,是什么語言?
Linus 表示他的孩子們到目前還沒有表示出對編程有足夠的興趣,如果有的話,他也許會教他們 Python,不過誰知道呢。當(dāng)然,***是由其他人來教,Linus 表示自己并不是一個好的教師。
[2] 是否會幫家庭或朋友修電腦,尤其是他們的電腦運(yùn)行的不是 Linux?
Linus 表示他通常不會提供這種電腦維修支持,至于他自己家里的電腦,裝的都是 Linux,所以這不是個問題。
[3] 是否會閱讀其它操作系統(tǒng)實(shí)現(xiàn)的源代碼,來了解某個功能是怎么實(shí)現(xiàn)的,或者純粹是為了娛樂或?qū)W習(xí)的目的?
Linus 表示他從不認(rèn)為閱讀別人的代碼是了解某個想法的一種有用的方法,所以他從不會為了了解某個功能是如何實(shí)現(xiàn)的去閱讀代碼。他閱讀代碼通常是為了了解某個功能為什么不工作,這些代碼通常也不是別的操作系統(tǒng)的代碼。比如他閱讀 zlib 的代碼,是因?yàn)樗胫罏槭裁?git 在運(yùn)行某些庫函數(shù)時耗了那么長時間。
通常他會通過閱讀某些書籍來了解某些知識。比如他通過閱讀 來了解 Unix 是如何工作的,以及人人都知道的 。
當(dāng)然現(xiàn)在,Linus 表示他已經(jīng)不再閱讀任何操作系統(tǒng)書籍,甚至計(jì)算機(jī)相關(guān)的書籍也很少了。
[4] 是否經(jīng)常收到采訪的請求,Linux Foundation 是否會請求你去代表他們出席某個場合?
Linus 表示他通常是通過 email 完成某些采訪,但也不是經(jīng)常性的。他認(rèn)為這是他的工作的一部分,他也通常不會介意,只要提問的問題不是太***的話。
至于他與 Linux Foundation 的合同,則明確寫明了 LF 不能強(qiáng)迫他去參加某些公共活動,甚至不能影響他的技術(shù)上的決定。當(dāng)然,有些 LF 的活動他也會去參加,比如每年的 LinuxCon Australia 會議,因?yàn)槟莻€地方有他最喜歡的潛水。
[5] 在 Kernel 的整個開發(fā)過程中,添加的哪個功能讓你最愉悅,哪個功能又是你不喜歡,但不得不加進(jìn)去的?
因?yàn)殚_發(fā) Kernel 的時間太長了,Linus 表示有太多偉大或憋八的功能。可以列舉的其中一個令他非常開心的功能是 filename lookup caching (the so-called dentry layer),這是因?yàn)樵摴δ茏畛鮼碜杂谝粋€學(xué)生提交的用來實(shí)現(xiàn)另外一個功能的 patch,該 patch 是一個典型的學(xué)術(shù)研究項(xiàng)目,通常并不有用,但 Linus 把其中的想法借鑒了過來,用在了另外一個功能上,并且工作的相當(dāng)不錯。
至于糟糕的功能,通常都與某些極其糟糕的硬件設(shè)計(jì)相關(guān)。最令 Linus 痛恨的是在 32 bit 的機(jī)器上支持超過 4GB 的內(nèi)存(PAE),對他來說,這是個內(nèi)存管理的噩夢。
[6] 是否還能完全掌握 Kernel 的所有部分,或者說必需要某些可信任的維護(hù)者的幫助?
Linus 表示他從來沒宣稱完全掌握 Kernel 的所有部分,雖然他比大多數(shù) Kernel 開發(fā)人員掌握的要寬的多。有些子系統(tǒng),他需要完全依賴維護(hù)者來幫助他做決定,因?yàn)樗娴牟涣私?或者說不關(guān)心)該子系統(tǒng),畢竟每個人都有自己的喜好與長短。
[7] 對于類似 OpenBSD 這樣將重點(diǎn)放在安全上的操作系統(tǒng)有什么看法?對微內(nèi)核有什么看法?
Linus 表示任何為了某個單一目的而設(shè)計(jì)的操作系統(tǒng)都是失敗的,不管這個目的是安全還是其它。至于微內(nèi)核,Linus 繼續(xù)堅(jiān)持他的觀點(diǎn),即仍然是失敗的,因?yàn)樵诂F(xiàn)實(shí)中,操作系統(tǒng)的難點(diǎn)在于模塊之間的交互,而不是模塊本身。微內(nèi)核盡量使得各模塊之間保持中立,這樣只會令模塊之間的交互更加復(fù)雜。
[8] 面臨的最困難的技術(shù)挑戰(zhàn)?
Linus 表示他所面臨的挑戰(zhàn)大部分都是非技術(shù)的。任何技術(shù)問題,最終都會解決。而那些挑戰(zhàn)或者說最困難的問題,通常來自于調(diào)度成千上萬個開發(fā)人員以及公司的不同的進(jìn)度。
[9] 20 年工作在一個項(xiàng)目上真的是很長,是否考慮過在 Kernel 上繼續(xù)工作 20 年?
Linus 說到那時他真的是太老了,總會在某一天,某個充滿精力的年輕人來到我們跟前,向我們展示他真的能夠勝任這個工作。這是 Linus 關(guān)于他離開的暗示,那就是有更好的人出現(xiàn)時。
[10] Linux 3.0?
在被問到關(guān)于最近的 Kernel 版本號跳號的問題時,Linus 表示這只是一個版本號的變動,沒有任何其它意義?,F(xiàn)在的 Kernel 版本號有三個數(shù)字,其中前兩個數(shù)字 2.6 已經(jīng)失去了曾經(jīng)的意義,而第三個數(shù)字到了 39,實(shí)在是太大了,所以就跳號了。
***的這個問題來自于 LinuxCon Japan,主持提問的是 Greg K.H,他也兌現(xiàn)了他在 LKML 上對 Linus 的承諾,一瓶 17 年日本三得利威士忌(品牌叫“響”),以示對 Linus 的感謝。
【編輯推薦】