歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux 25周年:與創始人Linus Torvalds對話

Linux 25周年:與創始人Linus Torvalds對話(轉)

原文:Linux at 25: Q&A With Linus Torvalds

作者: Stephen Cass

譯者: 孫薇

責編: 錢曙光

早在1991年還在芬蘭赫爾辛基大學就讀時,Linus Torvalds便創建出了最初的Linux操作系統內核。之後這個小小的內核很快發展成了一個功能全面的操作系統,可以運行在智能手機與服務器上,還有各種各樣的小工具上。本文是一篇電子郵件訪談記錄,文中Torvalds回顧了過去25年來Linux的影響,並展望了未來25年可能出現的變化。

Stephen Cass(記者,以下簡稱S):如今在程序開發上,你已經比25年前擁有了更多的經驗,有什麼想要告誡當年的自己呢?

Linus Torvalds(以下簡稱L): 實際上我是這樣認為的:關於Linux的成功我並不敢居功,有很多事情我當時並不了解,如果一開始我就知道的話,也絕不敢動手編寫自己的操作系統:需要一些天真無畏的勇氣,才敢以為自己能做得到。我深信這是動手開始一個項目,並最終獲得成功所需要的特質。雖然對項目可能的發展范圍缺乏概念,但更因此才不會有先入為主的想法,而對項目的發展強加干涉。

我相信,正是因為我不清楚未來能有怎樣的發展,也許才會對他人的建議和影響抱著更開放的態度。如果我本來就對想要完成的目標有著奇思妙想,說不定就不會有這麼開放的態度了。在我看來,這種坦誠的態度讓別人更願意、也更容易參與到這個項目中來。人們不會為了別人的願景而買單,卻會為了他們自己的願景而努力。在我看來,正是這種想法激勵著很多人在Linux上作出貢獻。

S:在Linux的發展中,是否有某個早期的技術決策是你現在希望改變的?

L: 糟糕的技術決策什麼的,都是你隨時可以抹消的東西。沒錯,盡管當時很令人沮喪,也顯然完全是浪費時間和精力,但往往到了最後,這些教訓都不算真正地浪費時間:采用錯誤的決策總有些原因,而認識到錯誤則會讓你學到經驗。我並不是說錯誤其實是好事,正確的決策永遠比錯誤的要好——但我不會特別擔心選擇的問題,我寧願先做下決策,哪怕以後發現這個決策是錯的,也比浪費太多時間來討論可能的選擇要好。

在2001年左右,眾所周知我們曾在Linux的虛擬內存子系統支持方面遇到了非常糟糕的狀況。當時狀況糟透了,大家對於該選擇哪個方向產生了劇烈的爭議,同時在某些內存的配置上也存在很大的問題。本該到“穩定”階段了,系統中卻有大量的內容消失,導致大家都很沮喪。

現在再來回顧,問題最終還是解決了,雖然那段時間就像地獄一樣,所有人都痛苦不堪。如果不用在開發中期執行這類的重大修改肯定會更好一些,但這件事也並未造就災難性的後果。

S: 隨著Linux迅速發展,從單打獨斗到成為群體中的一員,對你個人而言有什麼變化?

L: 對我來講實際上有兩個明顯的改變:其中一個是在很早的時候(1992年)發生的——我開始使用其他開發者所提供的補丁,而不再總是自己重寫了。第二個變化發生在後來,當“自行編寫所有要使用的補丁”已經成為了巨大的障礙,我必須學著信任所有那些幫忙維護的人員。

第一點要容易得多:由於在編寫Linux內核時,大約前半年我完全都是獨立開發的,一開始大家給我發送補丁的時候,我還不習慣直接使用。因此我會一一看過,確定作者的意圖,然後自己再寫一次。有時候跟他們寫的差不多,有時候則完全不同。

但很快我無法再繼續這樣做了。用了沒多久,在我開始對某些人產生信任之後,會直接在Linux上應用他們的補丁,而不再基於他們的理念而重新編寫了,雖然最終往往還是會作些改動。這些年來,我已經非常擅長閱讀與編輯補丁了,連在睡夢裡都能做好。而這些年來,這種模式也一直運作良好。

但正是由於“應用別人的補丁”這種模式多年來一直運作良好,已經讓我非常習慣,想要改變就更加困難。大約在2000年左右,內核的開發獲得了巨大的成長(那時Linux開始顯現出商業方面的潛質)。人們開始抱怨我的工作流程對整個開發造成了障礙,並抱怨Linux缺乏可擴展性,但我們缺乏優秀的源碼管理工具來解決這些問題。

最終我們采用了BitKeeper作為源代碼維護工具。這個名字更讓人記憶深刻的是幾年後關於授權中止的喧鬧紛爭,不過它的確很適合這項任務,而且教會了我(以及內核社區的至少一部分人)該如何控制管理源碼,以及當我並非唯一的同步點時,如何在更具分布特性的開發模型中執行協作。

當然,我學到的分布式源碼控制管理方法造就了2005年出現的Git。雖然Git顯然已成為源代碼控制方面的成功典范,但當年正是BitKeeper讓大家了解到了分布式源碼控制的優勢。在2000年左右,關於內核的痛苦經歷最終給我們好好地上了一課,不過當時確實很痛苦。

S: 還有什麼其他項目就像分布式源碼控制一樣,讓你有沖動想要掌握麼?

L: 沒有,我確實不希望再有這樣的項目了。我所有的大項目都來自於這樣的經歷:“可惡,沒人幫我做這個”。如果有人能幫我解決問題,我會更高興無需再花力氣自己解決了。我寧願坐在沙灘上的遮陽傘下,啜飲著時興的飲料,而不是自己去解決問題。

好吧,我在撒謊,幾天後我感到非常無聊。我真高興自己還有Linux,因為它確實很有趣,很能激發思考,不過與此同時,創建一個新項目確實是非常令人沮喪的做法。

S: 在你看來,Linux為什麼從未在主流台式機上占領重要的席位?

L: 我們還在努力,我認為Chromebook筆記本實際上做得相當不錯,即便它只是一個相當有限的桌面環境,並非完全傳統式的Linux工作站模式。

至於為什麼台式機如此難啃,原因很多,但最大的原因很簡單,就是用戶的慣性問題。在計算機世界,台式機非常獨特,它是非常私人的東西——如果你使用電腦的話,每天都會與其進行相當親密地交互;同時台式機在很多方面都具有其他計算環境所不具有的復雜性。

看看你的智能手機,這也是一個相當具有親密度的計算設備,與人們密切相關(而在這一點上,多虧了安卓,讓Linux有出色的表現)。台式機在各方面都更為復雜,遺留的負擔也更重,所以這個市場很難進入。人們在使用手機時習慣了特定應用和流程,很多人也會嘗試更換操作系統,不過安裝不同操作系統的人還是比使用預裝系統的人要少得多,而這一點在台式機上更加凸顯。

同時,我認為這個市場很重要,盡管在某種程度上來說,整個“通用桌面”的市場似乎都正在衰落。更專業的東西就越簡單,因此平台承擔了很多任務:包括智能手機、平板電腦以及Chrome筆記本都代表著羽翼尚未豐滿的通用環境。

S: Linux的什麼用途最讓你感到驚訝?

L: 最近沒有太多,因為我覺得Linux已經成為設計新硬件或服務模型的默認環境了。如果你有些奇怪的專用設備,或者正在創建某些新的互聯網基礎設施什麼的,要想不用Linux的話幾乎讓人無法理解。

不過那些“奇怪的”使用領域經常會讓我感到驚訝,讓我覺得Linux似乎還是那個工作站和服務器操作系統。在一些早期的Linux商務會議上,當人們炫耀鼓風機或電冰箱運行Linux時,我都會佩服地五體投體。在第一台TiVo出現時,它能運行Linux還有“可以重播電視的直播節目”都讓人非常有興趣。

S: 目前Linux所面臨的最大挑戰是什麼?

L: 實際上內核運行地很好,人們還在擔心太復雜會影響理解或者bug修復,這種擔憂可以理解,但與此同時,我們也網羅到了很多聰明人。系統變得越來越大,越來越復雜,又有很多人依賴著它,使得我們必須得設置很多流程。接受巨大而具有侵略性的改變是很有挑戰性的,因此我不會認為這是惬意的事情,不過在我看來,內核開發的很不錯,很多其他的開源項目都很想要我們這樣的資源。

即便如此,我們總能遇到這樣的挑戰:內核中總有過多的硬件。我們支持很多不同的硬件,幾乎可以確定要比其他操作系統支持的都要多,但每天都有新的硬件出現。特別是硬件平台開發時間通常較短的嵌入式領域(在中國只用1、2個月就能轉過頭來創建一個全新的手機平台),想要嘗試在這樣的環境中工作非常艱難。好消息是,有很多硬件廠商都在幫忙,過去並非如此。

S: 現在你對什麼技術發展趨勢有興趣?有哪些會讓你感到失望?

L: 我一直對新的核心硬件很感興趣,特別是CPU之類的。這也是我一開始做自己操作系統的原因,現在我還是對新的平台很有興趣。當然,大多數時候只需要在現有的硬件上做些微調,而且我深信這就是技術發展應當朝向的方向。不過在這些事情上,我還是傾向於繼續跟進追蹤。

從更大的層面來講,雖然我個人並未介入這個領域,但能夠看到人工智能(AI)最終如何實現會很有趣。AI曾經屬於那種“還得二十年之後才能實現”的技術,到了現在它還是“需要二十年才能實現”的技術。對於過去人們經常使用的“基於規則的模型”,我沒有太深刻的印象。

現在,終於神經網絡也開始發展了,我覺得這一點很有趣。雖然這並非是我所致力的領域,也不算是我希望投身的領域,但確實很有吸引力。與那些瘋狂的LISP和Prolog語言不同,我們都知道遞歸神經網絡是作用於本質的。對於真正的AI開始出現這件事,我完全不會感到沮喪,有些人會,但我完全不會。

S: 根據你的看法,在50周年時Linux能否依舊保持活躍呢?你所夢想的操作系統是什麼樣子的?

L: 我不怎麼擅長預測,我本人只是一個缺乏想象力、很乏味的工程師罷了,總是嘗試著眼於現實基礎。關於預測這件事,還是讓別人來做好了,無論5年、10年還是25年——我認為,只要我們繼續追蹤所有小的的日常細節,並盡力而為做到最好就可以了。

如果這個世界發生了巨大的改變,25年之後從根本上全然不同的話,也許會更有意思。不過,如今操作系統的很多根本的問題,與60年前人們剛有真正的操作系統時所存在的問題完全相同。據我猜測,未來計算機所發生的變化說不定還比不上在過去50年中的變化呢,硬件和軟件開發人員只是學到了哪些能夠運行,哪些不能。

當然,神經網絡等等技術會改變世界,但它們有一部分特質就是無需“編程”,他們是自學習的,也是邏輯模糊的。我幾乎能夠肯定:因為這個原因,它們無法取代傳統的計算模型,人們想要更智能的機器,但也需要能完全按照指令工作的機器。因此我們目前的“舊式”風格計算方式不會消失,而只會得到增強。

Copyright © Linux教程網 All Rights Reserved