淺談關(guān)于Linux的前世、今生與未來
大小:0.07 MB 人氣: 2017-10-11 需要積分:1
早在1991年還在芬蘭赫爾辛基大學(xué)就讀時,Linus Torvalds便創(chuàng)建出了最初的Linux操作系統(tǒng)內(nèi)核。之后這個小小的內(nèi)核很快發(fā)展成了一個功能全面的操作系統(tǒng),可以運行在智能手機與服務(wù)器上,還有各種各樣的小工具上。本文是一篇電子郵件訪談記錄,文中Torvalds回顧了過去25年來Linux的影響,并展望了未來25年可能出現(xiàn)的變化。
Stephen Cass(記者,以下簡稱S):如今在程序開發(fā)上,你已經(jīng)比25年前擁有了更多的經(jīng)驗,有什么想要告誡當年的自己呢?
Linus Torvalds(以下簡稱L):實際上我是這樣認為的:關(guān)于Linux的成功我并不敢居功,有很多事情我當時并不了解,如果一開始我就知道的話,也絕不敢動手編寫自己的操作系統(tǒng):需要一些天真無畏的勇氣,才敢以為自己能做得到。我深信這是動手開始一個項目,并最終獲得成功所需要的特質(zhì)。雖然對項目可能的發(fā)展范圍缺乏概念,但更因此才不會有先入為主的想法,而對項目的發(fā)展強加干涉。
我相信,正是因為我不清楚未來能有怎樣的發(fā)展,也許才會對他人的建議和影響抱著更開放的態(tài)度。如果我本來就對想要完成的目標有著奇思妙想,說不定就不會有這么開放的態(tài)度了。在我看來,這種坦誠的態(tài)度讓別人更愿意、也更容易參與到這個項目中來。人們不會為了別人的愿景而買單,卻會為了他們自己的愿景而努力。在我看來,正是這種想法激勵著很多人在Linux上作出貢獻。
S: 在Linux的發(fā)展中,是否有某個早期的技術(shù)決策是你現(xiàn)在希望改變的?
L:糟糕的技術(shù)決策什么的,都是你隨時可以抹消的東西。沒錯,盡管當時很令人沮喪,也顯然完全是浪費時間和精力,但往往到了最后,這些教訓(xùn)都不算真正地浪費時間:采用錯誤的決策總有些原因,而認識到錯誤則會讓你學(xué)到經(jīng)驗。我并不是說錯誤其實是好事,正確的決策永遠比錯誤的要好——但我不會特別擔心選擇的問題,我寧愿先做下決策,哪怕以后發(fā)現(xiàn)這個決策是錯的,也比浪費太多時間來討論可能的選擇要好。
在2001年左右,眾所周知我們曾在Linux的虛擬內(nèi)存子系統(tǒng)支持方面遇到了非常糟糕的狀況。當時狀況糟透了,大家對于該選擇哪個方向產(chǎn)生了劇烈的爭議,同時在某些內(nèi)存的配置上也存在很大的問題。本該到“穩(wěn)定”階段了,系統(tǒng)中卻有大量的內(nèi)容消失,導(dǎo)致大家都很沮喪。
現(xiàn)在再來回顧,問題最終還是解決了,雖然那段時間就像地獄一樣,所有人都痛苦不堪。如果不用在開發(fā)中期執(zhí)行這類的重大修改肯定會更好一些,但這件事也并未造就災(zāi)難性的后果。
S: 隨著Linux迅速發(fā)展,從單打獨斗到成為群體中的一員,對你個人而言有什么變化?
L:對我來講實際上有兩個明顯的改變:其中一個是在很早的時候(1992年)發(fā)生的——我開始使用其他開發(fā)者所提供的補丁,而不再總是自己重寫了。第二個變化發(fā)生在后來,當“自行編寫所有要使用的補丁”已經(jīng)成為了巨大的障礙,我必須學(xué)著信任所有那些幫忙維護的人員。
第一點要容易得多:由于在編寫Linux內(nèi)核時,大約前半年我完全都是獨立開發(fā)的,一開始大家給我發(fā)送補丁的時候,我還不習慣直接使用。因此我會一一看過,確定作者的意圖,然后自己再寫一次。有時候跟他們寫的差不多,有時候則完全不同。
但很快我無法再繼續(xù)這樣做了。用了沒多久,在我開始對某些人產(chǎn)生信任之后,會直接在Linux上應(yīng)用他們的補丁,而不再基于他們的理念而重新編寫了,雖然最終往往還是會作些改動。這些年來,我已經(jīng)非常擅長閱讀與編輯補丁了,連在睡夢里都能做好。而這些年來,這種模式也一直運作良好。
但正是由于“應(yīng)用別人的補丁”這種模式多年來一直運作良好,已經(jīng)讓我非常習慣,想要改變就更加困難。大約在2000年左右,內(nèi)核的開發(fā)獲得了巨大的成長(那時Linux開始顯現(xiàn)出商業(yè)方面的潛質(zhì))。人們開始抱怨我的工作流程對整個開發(fā)造成了障礙,并抱怨Linux缺乏可擴展性,但我們?nèi)狈?yōu)秀的源碼管理工具來解決這些問題。
最終我們采用了BitKeeper作為源代碼維護工具。這個名字更讓人記憶深刻的是幾年后關(guān)于授權(quán)中止的喧鬧紛爭,不過它的確很適合這項任務(wù),而且教會了我(以及內(nèi)核社區(qū)的至少一部分人)該如何控制管理源碼,以及當我并非唯一的同步點時,如何在更具分布特性的開發(fā)模型中執(zhí)行協(xié)作。
當然,我學(xué)到的分布式源碼控制管理方法造就了2005年出現(xiàn)的Git。雖然Git顯然已成為源代碼控制方面的成功典范,但當年正是BitKeeper讓大家了解到了分布式源碼控制的優(yōu)勢。在2000年左右,關(guān)于內(nèi)核的痛苦經(jīng)歷最終給我們好好地上了一課,不過當時確實很痛苦。
S: 還有什么其他項目就像分布式源碼控制一樣,讓你有沖動想要掌握么?
L:沒有,我確實不希望再有這樣的項目了。我所有的大項目都來自于這樣的經(jīng)歷:“可惡,沒人幫我做這個”。如果有人能幫我解決問題,我會更高興無需再花力氣自己解決了。我寧愿坐在沙灘上的遮陽傘下,啜飲著時興的飲料,而不是自己去解決問題。
好吧,我在撒謊,幾天后我感到非常無聊。我真高興自己還有Linux,因為它確實很有趣,很能激發(fā)思考,不過與此同時,創(chuàng)建一個新項目確實是非常令人沮喪的做法。
S: 在你看來,Linux為什么從未在主流臺式機上占領(lǐng)重要的席位?
L:我們還在努力,我認為Chromebook筆記本實際上做得相當不錯,即便它只是一個相當有限的桌面環(huán)境,并非完全傳統(tǒng)式的Linux工作站模式。
至于為什么臺式機如此難啃,原因很多,但最大的原因很簡單,就是用戶的慣性問題。在計算機世界,臺式機非常獨特,它是非常私人的東西——如果你使用電腦的話,每天都會與其進行相當親密地交互;同時臺式機在很多方面都具有其他計算環(huán)境所不具有的復(fù)雜性。
看看你的智能手機,這也是一個相當具有親密度的計算設(shè)備,與人們密切相關(guān)(而在這一點上,多虧了安卓,讓Linux有出色的表現(xiàn))。臺式機在各方面都更為復(fù)雜,遺留的負擔也更重,所以這個市場很難進入。人們在使用手機時習慣了特定應(yīng)用和流程,很多人也會嘗試更換操作系統(tǒng),不過安裝不同操作系統(tǒng)的人還是比使用預(yù)裝系統(tǒng)的人要少得多,而這一點在臺式機上更加凸顯。
同時,我認為這個市場很重要,盡管在某種程度上來說,整個“通用桌面”的市場似乎都正在衰落。更專業(yè)的東西就越簡單,因此平臺承擔了很多任務(wù):包括智能手機、平板電腦以及Chrome筆記本都代表著羽翼尚未豐滿的通用環(huán)境。
S: Linux的什么用途最讓你感到驚訝?
L:最近沒有太多,因為我覺得Linux已經(jīng)成為設(shè)計新硬件或服務(wù)模型的默認環(huán)境了。如果你有些奇怪的專用設(shè)備,或者正在創(chuàng)建某些新的互聯(lián)網(wǎng)基礎(chǔ)設(shè)施什么的,要想不用Linux的話幾乎讓人無法理解。
不過那些“奇怪的”使用領(lǐng)域經(jīng)常會讓我感到驚訝,讓我覺得Linux似乎還是那個工作站和服務(wù)器操作系統(tǒng)。在一些早期的Linux商務(wù)會議上,當人們炫耀鼓風機或電冰箱運行Linux時,我都會佩服地五體投體。在第一臺TiVo出現(xiàn)時,它能運行Linux還有“可以重播電視的直播節(jié)目”都讓人非常有興趣。
S: 目前Linux所面臨的最大挑戰(zhàn)是什么?
L:實際上內(nèi)核運行地很好,人們還在擔心太復(fù)雜會影響理解或者bug修復(fù),這種擔憂可以理解,但與此同時,我們也網(wǎng)羅到了很多聰明人。系統(tǒng)變得越來越大,越來越復(fù)雜,又有很多人依賴著它,使得我們必須得設(shè)置很多流程。接受巨大而具有侵略性的改變是很有挑戰(zhàn)性的,因此我不會認為這是愜意的事情,不過在我看來,內(nèi)核開發(fā)的很不錯,很多其他的開源項目都很想要我們這樣的資源。
即便如此,我們總能遇到這樣的挑戰(zhàn):內(nèi)核中總有過多的硬件。我們支持很多不同的硬件,幾乎可以確定要比其他操作系統(tǒng)支持的都要多,但每天都有新的硬件出現(xiàn)。特別是硬件平臺開發(fā)時間通常較短的嵌入式領(lǐng)域(在中國只用1、2個月就能轉(zhuǎn)過頭來創(chuàng)建一個全新的手機平臺),想要嘗試在這樣的環(huán)境中工作非常艱難。好消息是,有很多硬件廠商都在幫忙,過去并非如此。
S: 現(xiàn)在你對什么技術(shù)發(fā)展趨勢有興趣?有哪些會讓你感到失望?
L:我一直對新的核心硬件很感興趣,特別是CPU之類的。這也是我一開始做自己操作系統(tǒng)的原因,現(xiàn)在我還是對新的平臺很有興趣。當然,大多數(shù)時候只需要在現(xiàn)有的硬件上做些微調(diào),而且我深信這就是技術(shù)發(fā)展應(yīng)當朝向的方向。不過在這些事情上,我還是傾向于繼續(xù)跟進追蹤。
從更大的層面來講,雖然我個人并未介入這個領(lǐng)域,但能夠看到人工智能(AI)最終如何實現(xiàn)會很有趣。AI曾經(jīng)屬于那種“還得二十年之后才能實現(xiàn)”的技術(shù),到了現(xiàn)在它還是“需要二十年才能實現(xiàn)”的技術(shù)。對于過去人們經(jīng)常使用的“基于規(guī)則的模型”,我沒有太深刻的印象。
現(xiàn)在,終于神經(jīng)網(wǎng)絡(luò)也開始發(fā)展了,我覺得這一點很有趣。雖然這并非是我所致力的領(lǐng)域,也不算是我希望投身的領(lǐng)域,但確實很有吸引力。與那些瘋狂的LISP和Prolog語言不同,我們都知道遞歸神經(jīng)網(wǎng)絡(luò)是作用于本質(zhì)的。對于真正的AI開始出現(xiàn)這件事,我完全不會感到沮喪,有些人會,但我完全不會。
S: 根據(jù)你的看法,在50周年時Linux能否依舊保持活躍呢?你所夢想的操作系統(tǒng)是什么樣子的?
L:我不怎么擅長預(yù)測,我本人只是一個缺乏想象力、很乏味的工程師罷了,總是嘗試著眼于現(xiàn)實基礎(chǔ)。關(guān)于預(yù)測這件事,還是讓別人來做好了,無論5年、10年還是25年——我認為,只要我們繼續(xù)追蹤所有小的的日常細節(jié),并盡力而為做到最好就可以了。
如果這個世界發(fā)生了巨大的改變,25年之后從根本上全然不同的話,也許會更有意思。不過,如今操作系統(tǒng)的很多根本的問題,與60年前人們剛有真正的操作系統(tǒng)時所存在的問題完全相同。據(jù)我猜測,未來計算機所發(fā)生的變化說不定還比不上在過去50年中的變化呢,硬件和軟件開發(fā)人員只是學(xué)到了哪些能夠運行,哪些不能。
當然,神經(jīng)網(wǎng)絡(luò)等等技術(shù)會改變世界,但它們有一部分特質(zhì)就是無需“編程”,他們是自學(xué)習的,也是邏輯模糊的。我?guī)缀跄軌蚩隙ǎ阂驗檫@個原因,它們無法取代傳統(tǒng)的計算模型,人們想要更智能的機器,但也需要能完全按照指令工作的機器。因此我們目前的“舊式”風格計算方式不會消失,而只會得到增強。
?
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
淺談關(guān)于Linux的前世、今生與未來下載
相關(guān)電子資料下載
- uboot的基本概念和啟動流程分析 49
- Windows11上Linux安裝教程 22
- 多路徑和iSCSI SAN存儲技術(shù)介紹 56
- 探討嵌入式系統(tǒng)的軟硬件框架 29
- 浩辰CAD Linux版 2024全球發(fā)布 274
- 如何使用pthread_barrier_xxx系列函數(shù)來實現(xiàn)多線程之間的同步? 29
- 馬斯克曾說特斯拉堅不可摧,卻敗在Kali Linux手下 559
- 為T507-H開發(fā)板配置Samba服務(wù),高效實現(xiàn)跨系統(tǒng)的文件共享 250
- DNS的各種玩法:程序編譯到進程的過程解析 23
- 【凡億瘋狂星期五】LINUX基礎(chǔ)講解和操作演示 58