5月1日外電頭條:Linux之父稱硬件革新對內核影響不大
原創【51CTO.com快譯】1991年Linus Torvalds將他的***版Linux公之于眾。在隨后的18年里他不僅親眼見證了Linux給IT文化和經濟帶來的積極沖擊,更有機會直接參與決策,讓這些變化成為現實。雖然自1991年以來很多事情都發生了巨大的變化,但有一件事始終沒有變,那就是在Linux的大潮中,Linus仍然充當著掌舵人。
在這次Linux Magazine的專訪中,Linus回顧了他所做的工作,探討了新硬件帶來的影響,主題還是圍繞著Linux——這個如今從手機到桌面電腦再到超級計算機中無處不在的操作系統。
記者:你一直從事Linux的開發已經快18年了,那么長的時間令人難以想象,尤其是在軟件行業里。我們也知道有許多Linux核心貢獻者一直堅持著,即使是已經轉了行或者換了工作。那么對于Linux來說,相同的開發者能夠堅持下來是不是好事?你打算一直堅持下去嗎?
Linus Torvalds:如果只是同一批人在堅持,那我不認為這是好事,如果Linux陷入那種“長期核心人物”的開發方式,那我會非常擔心。但對Linux來說,好在它有一條長長的尾巴,它的開發者實在是太多了,這很重要,很多人可能只為內核的發展貢獻一點力量,比如只發送一個小補丁等等,但這就是Linux成長的源泉。大多數開發者無法做更多的事情,但其中的一些人會成為主要開發者,我們需要這一點。
與此同時,我想大家都更高興看到Linux核心團隊的穩定。實際上還是有很多資深的開發者,比如Ted Ts'o,他很早就參與進來了,目前仍在參與,并仍然貢獻代碼。[51CTO.com編者注:Ted Ts'o是北美***位內核研發者,并在2007年以全職平臺戰略首領的身份加入Linux Foundation。]
因此,這并不是一個要么這樣要么那樣的問題,兩方面我們想都要。關于我自己,答案是肯定的,我會堅持下去,只要我認為我還可以做得很好,除非有比我更好的人了。
記者:在Linux之前,沒有人相信超級計算機和手機能夠在相同的內核上運行。你認為將來的Linux能不能保持代碼不變,人們想把它用在手機和其他小型設備以及大型服務器上時,僅僅改動一下配置就行?
Linus Torvalds:個人而言,我不想說“在Linux之前”,因為這也是一步一步做到的,在“Linux之后”的很長時間里我一直告訴SGI要接受經常打補丁這樣的事實,他們也并沒有像我那樣過于關心內核的大小。
所以,我基本上答應他們,我會盡量合并底層補丁,使他們的***外部補丁維護起來變的簡單。但是當時我真的不期望基礎內核能支持4000個CPU的配置,因為我僅僅是認為這過于冒進了,怕造成太多的問題。
當時我認為我可能是正確的。但是隨著時間的推移,我們合并了越來越多的支持,并做了有效的精簡,使代碼能夠在支持數以千計的CPU時表現良好,而在只有少量CPU核心的情況下,也能簡單有效的編譯起來。
所以,現在我當然是很高興,我們不需要外部補丁就能夠覆蓋從小型嵌入式設備到幾千個節點的超級計算機的整個范圍,我對內核的處理能力感到非常自豪。
現在,我已經看到了這樣可以做得很好,我也不愿意再考慮其他方式了。所以,是的,我相信我們能夠為不同的目標繼續保持同一個源代碼,從手機到超級計算機。
當然,有一個有趣的問題就是所謂的低端現在已經長大了。10年前SMP(對稱多處理器系統,參見51CTO.com此前文章《Linux集群的虛擬化技術面臨的挑戰》)在桌面上都是罕見的,但現在即使在非常微小的嵌入式環境中都應用了SMP。因此,我們必須把“小”的范圍擴大一點。現在有些手機擁有的計算能力比起原先我開發Linux的電腦都要強大的多。
記者:你在博客上為你的Intel SSD寫過一篇非常肯定的文章,稱贊它“絕對夠勁”。另一方面,其他一些市場上的SSD并沒有得到Linux用戶的好評。Linux能夠充分發揮SSD的寫入性能和高壽命嗎?
Linus Torvalds:這在很大程度上取決于你的使用情況。例如,即使是不好的SSD也可以***充當第二塊驅動器,因為99.9%的情況下你只用到它的讀盤能力,所有的SSD硬盤讀盤能力都很好,延遲速度快,隨機讀取性能也非常好。[51CTO.com編者按:SSD即固態硬盤,相關知識請參閱51CTO.com“哪種操作系統最適合SSD硬盤
Intel SSD不是***的。如果你做的是大文件的工作,讀寫大量的連續數據,那么還不如用普通磁盤,價格非常便宜,容量也大得多,而且速度一點也不慢。但對我來說,硬盤是系統最薄弱的部分。硬盤的緩存是一個巨大的問題,在95%以上的情況下隱藏了硬盤的性能。
只是舉個例子,我經常用“git grep 某些東西”在我的內核樹里查找哪些功能正在使用,或是類似的東西。這要花掉我0.5秒,所以它可以算是實時的。但是如果我剛剛重新啟動,或者剛剛做了其他事情讓我的內核樹不在緩存里呢(的確,這很罕見,但它確實發生)。那么如果我第二次進行“git grep”的話,如果是SCSI硬盤,可就不是0.5秒了,而是一分鐘或兩分鐘。
Intel的SSD情況就好多了,對緩存中的“git grep”仍然是0.5秒,但第二種情況下我只需要10秒,以前還更快些,但最近增加了很多垃圾。另外沒有達到這個成績的不要責怪Intel,這是我自己的個別例子。因此,現在即使是緩慢的情況下也已經不再是兩個數量級了。但是有些SSD達不到這個成績,依然是兩個數量級。
順便說一句,這在CPU也非常明顯。我***的不滿就是Intel的P4架構也有類似的表現,大多數情況下它的表現絕對偉大,然后有一些偶然情況下,由于L1緩存太小,它的表現很可怕,而這我碰巧十分關心。
#p#
記者:在系統級別,“有些地方非常好,有些地方非常糟”聽起來像很多基于Linux的產品的通病了。從工作站到集群的節點,再到NAS設備或PVR。你是不是想建立一個良好的在桌面上工作的通用內核,讓人們按照自己的需要進行配置?
Linus Torvalds:是的。對我來說,Linux一直是最有趣的目標。主要的原因很簡單,不僅因為這一直是我想做的,而且還因為所有的有趣問題總是在桌面使用中出現。
其他所有的用途往往非常有限。你有一件事或幾件事需要做,你只可以優化和簡化這些問題的具體方面。在桌面上則相反,有各種各樣的用途。種類繁多的硬件,種類繁多的軟件,還有成千上萬種用戶的瘋狂做法。
因此,瞄準桌面總是強迫你去解決更本質的問題,比起其他任何目標來說。當然,Linux不僅是一種桌面操作系統。不僅僅是臺式機,你還必須關注其他領域,其他架構,數以千計的核心的可擴展性。但一般臺式機的問題確實占到90%,其他架構的可擴展性等算是錦上添花的問題。
記者:談到不同的平臺,你現在用什么電腦?有沒有非x86的主機,或者專用的服務器、媒體播放器、或其他特殊用途的機器?
Linus Torvalds:實際上我不喜歡使用大量的電腦。我不喜歡家里有“電腦室”,我的目標是只有一個主要的工作站,在上面完成一切事情。我工作的x86已經用了好幾年了。
我還有一些其他的機器(主要是筆記本電腦),有幾臺家庭用的機器(一臺Tove用,一臺孩子們用),它們也都是基于x86的。我將非常有興趣看看今年或明年我是不是會增加一臺ARM機,但它必須是一個很好的netbook的平臺,我還沒有決定。
當然,我有一些Tivo產品,而且它們是用Linux的。但我真的不把它們看成Linux,我不會去修改它們。還有就是PS/3,玩游戲更有趣些,但我不把它當作計算機。
現在我手里最有趣的機器是還沒發布的,我不能公開談論。例如,我曾有一臺Nehalem機器,但當時我不能說,現在也是這種情況。
記者:你認為硬件設計者們會不會做出某種革命性的設計,比如內存結構已經變得越來越復雜,從而對Linux的架構產生重大影響?
Linus Torvalds:我不認為這很可能,原因很簡單,Linux支持許多不同的平臺,而且非常善于抽象,99%的內核代碼并不需要對硬件的設計復雜度考慮太多。讓我們拭目以待。也許今后的硬件會讓我感到吃驚,真正帶來巨大的架構變化,但現在我還是懷疑。
記者:Linux修復安全性bug的辦法似乎一直只是解決主內核中的問題,我們也知道分銷商們為了提高安全性也在對內核做自己的修改,如果上游內核加入你所謂的“安全馬戲團”(security circus)和他們相比較,用戶是不是能或多或少得到更安全的內核呢?
Linus Torvalds:嘿,別誤解我。我認為應該把該說的說出來,對大家都有好處。而且似乎他們做得不錯,在內核安全性方面確實做得很好了。我的意思是,如果你真的希望更多的安全性,應該簡單地嘗試多層的做法。我認為,各種虛擬機環境無論是Java還是Dalvik還是JavaScript等等,其中一個***的優點就是安全層,它們本身可能安全也可能不安全,但它們可以間接的添加安全層,這樣安全性就能得到大幅度的提高。
所以,我認為Linux在內核的安全性方面做的已經不錯了,我個人的觀點是,“安全劇場”(security theater)很明顯唱的也是好戲,確實有效。但是,我始終認為,不論你自以為平臺有多安全,你總是應該用多層的方法來提高安全性。在任何層次上相信“絕對安全”的人都是無知和愚蠢的。
【51CTO.com譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】
原文:Linus on Linux: The Linus Torvalds Interview 作者:Don Marti