Linux為什么能成功?
Linux,這個始于1991年由Linus Torvalds開發的類Unix操作系統內核已經成為開源世界的中心,人們不禁追問為什么Linux成功了,而包括GNU HURD和BSD在內的那么多相似的項目卻失敗了?
自由軟件和開源世界的發展史中最令人不解的問題之一是為什么Linux取得了如此輝煌的成功,然而其它同樣嘗試打造自由開源、類Unix操作系統內核的項目卻沒能那么成功?這個問題難以回答,但我總結了一些原因,在下面與大家分享。
不過,首先得明確:當我談論Linux是一個巨大的成功時所表達的含義。我這樣說是相對于其它類Unix操作系統內核的,后者中一些是開源的,一些不是,而且它們繁榮發展的時期是Linux誕生的時期。GNU的HURD,一個發起于1991年5月的Free(自由)的內核,便是其中之一。其它的包括現在大部分人都沒聽說過的Unix,比如由加州大學伯克利分校開發出來的BSD的各種各樣Unix衍生版,由微軟主導的Unix系統Xenix,包括Minix在內的學術版本Unix,和在AT&T贊助下開發的最初的Unix。在更早的數十年內,它對于學術界和商業界的計算發展至關重要,但到19世紀90年代就已經幾乎已經消失在人們的視野里。
相關閱讀
開源舊事:黑客文化和黑客倫理的起源追蹤Unix和個人計算機:重新詮釋Linux起源此外,得說明的是,我這里說的是內核,而不是完整的操作系統。在很大程度上,Linux內核的成功歸功于GNU整個項目。GNU這個項目產生了一套至關重要的工具,包括編譯器、調試器和BASH shell的實現,這些對于構建一個類Unix操作系統是必需的。但是GNU的開發者們從沒開發出一個HURD內核的可行版本(盡管他們仍在不懈努力中)。相反,Linux呈現出來的則是一個將GNU各個部分緊密連接在一起的內核,盡管這超出了GNU的初衷。
因此,值得人們去追問為什么Linux,一個由Linus Torvalds這個芬蘭的無名程序員于1991年——和HURD同一年——發起的內核,能夠經受考驗并發展壯大?在當時的大環境下,很多擁有強力商業支持的、由當時炙手可熱的黑客領頭的類Unix內核都沒能夠發展起來。為了說明這個問題,我找到了一些和這個問題相關的解釋。為此我研究了自由軟件和開源世界的發展史,和不同解釋的優缺點。
Linux采用去中心化的開發方式這個觀點來源于Eric S. Raymond的文章,“大教堂與市集”和其相關資料。這些資料驗證了一種情形:當大量的貢獻者以一種去中心化的組織結構持續不斷地協同合作時,軟件開發的效率最佳。Linux的開發證明了這一點,與之相反的是,比如,GNU HURD采用了一種相對更集中化的方法來管理代碼開發。其結果如同Raymond所言,顯然在十年的時間里都沒能成功構建出一個完整的操作系統。
在一定程度上,這個解釋有道理,但仍有一些明顯的不足。舉例來說,Torvalds在指導Linux代碼開發過程中毫無爭議地承擔起一個更加有權威的角色,他可以決定接受或拒絕代碼,這一點并非Raymond和其他人所想的那樣。其次,這個觀點不能解釋除了沒能開發出一個可行的系統內核外GNU仍然成功地生產出那么多優秀的軟件。如果只有去中心化的開發方式才能很好地指導開源軟件世界里的項目,那么GNU所有的編程工作都應該是徒勞無功的,但事實并非如此。
Linux是實用型的,而GNU是空想型的個人而言,我覺得這個說法是最引人注目的,即Linux之所發展得如此迅速是因為它的創建者是一個實用主義者,他起初只是想寫一個內核,使其能夠在他家里的電腦上運行一個裁剪過的Unix操作系統,而不是成為以改變世界為目標的自由軟件的一部分,而后者正是GNU項目的一貫目標。
然而,這個解釋仍然有一些不能完全讓人信服的地方。特別是,盡管Torvalds本人信奉實用主義的原則,但無論以前還是現在,并非所有參與到他的項目中的成員都和他一樣信奉這一原則。盡管如此,Linux仍然取得了成功。
而且,如果實用主義是Linux持續發展的關鍵,那么就要再問一遍:為什么GNU除了沒能開發出一個內核外還是成功地開發出這么多有用的工具?如果擁有某一種對軟件的堅定政治信仰是追求成功的項目路上的絆腳石,那么GNU早應該是一個徹頭徹尾的失敗者,而不會是一個開發了那么多如今依然為IT世界提供堅實基礎的優秀軟件包的開拓者。
最后(但并不是最不重要),許多誕生于19世紀80年代末期和90年代初期的Unix變體,尤其是一些BSD分支,都是實用主義的產物。它們的開發者們致力于開發出可以自由分享而不是受到高昂商業證書限制的Unix變體,但他們對于編程或者共享代碼并非完全局限于意識形態。Torvalds同樣如此,因此很難說Linux和成功和其它Unix項目的失敗是意識形態在作怪。
操作系統設計當談到Linux的成功時,不可忽視的是Linux和其它Unix變體之間的諸多技術差異。Richard Stallman,GNU項目的創始人,在一封給我的電子郵件中解釋了為什么HURD的開發進度頻頻滯后:“GNU Hurd確實不是一次實用上的成功。部分原因是它的基本設計使它像是一個研究項目。(我之所以選擇這樣的設計,是考慮到這是快速實現一個可用內核的捷徑。)”
就Torvalds獨自編寫出Linux的所有代碼這點而言,Linux也有別于其它Unix變體。當他在1991年8月第一次發布Linux時他的一個初衷就是擁有一個屬于他自己的Unix,而不用別人的代碼。這點特性使得Linux區別于同時期的大部分Unix變體,后者一般是從AT&T Unix或伯克利的BSD中衍生出基礎代碼。
我并不是一個計算機科學家,所以我沒有資格去評判是否Linux代碼就優于其他Unix代碼,以此來解釋Linux的成功。雖然這并不能解釋Linux和其它Unix內核在文化和人員上的不同,但這個觀點對我來說解釋得通,因為似乎在理解Linux成功這一點上操作系統設計比代碼更加重要。
Linux背后的社區提供了有力支持Stallman也寫到Linux成功的“主要原因”是“Torvalds使Linux成為一個自由軟件,所以相比Hurd有更多來自社區的支持涌入Linux的發展中。”但這對于Linux的成長軌跡并非是一個完美的解釋,因為它不能說明為什么自由軟件的開發者們追隨了Torvalds而不是HURD或其它某個Unix,但它仍然點明了這種變化是Linux盛行的很大一部分原因。
對于自由軟件社區決定支持Linux有一個更全面的理由可以用來解釋為什么開發者們這么做。起初,Linux只是一個默默無聞的小項目,以任何標準來衡量,它比同時期其它的一些嘗試創建一個更加自由的Unix,比如NET BSD和386/BSD,都要顯得微不足道。同樣,最初并不清楚Linux和自由軟件運動的目標是否一致。創建伊始,Torvalds只是在一份防止Linux不被商業使用的證書下發布了Linux。至于后來他為了保護源代碼的開放性轉向使用GNU的通用公開證書則是后話了。
所以,這些就是我所找到的Linux作為一個開源操作系統之所以取得成功的解釋,可以肯定Linux的成就在某些方面(但比如桌面版的Linux從未成為它的支持者希望成為的樣子)已經是可以衡量的成功。總之,Linux業已與其它任何類Unix操作系統不同的方式成為了計算機世界的基石。也許源于BSD的蘋果公司的OS X和iOS系統也很接近這一點,但它們沒有在其它方面像Linux影響互聯網一樣扮演著如此重要的中心角色。
對于為什么Linux能成為現在的樣子,或者為什么它在Unix世界的競爭對手們幾乎全部變得默默無聞的問題,你有其它的想法嗎?如果有,我很樂意聽到你的想法。(誠然,BSD的變體如今仍有一批追隨者,而一些商用的Unix對于Red Hat(RHT)為他們的用戶提供支持來說也仍然十分重要。但這些Unix中沒有一個能夠像Linux一樣幾乎征服了從Web服務器到智能手機的每一個領域。)
via: thevarguy.com 翻譯:linux.cn
相關文章:
1. Win10 20H2版本的功能更新安裝失敗怎么辦?2. Win10更新過程中卡住怎么辦?Win10更新過程中卡住的解決方法3. Win7文件夾選項在哪里?Win7文件夾選項的位置4. Win11硬盤安裝方法介紹 Win11系統硬盤安裝教程5. Win11退回正版Win10怎么操作?Win11回退Win10教程6. Win11桌面沒有圖標怎么解決?Win11桌面沒有圖標解決教程7. Win11有哪些不能用的軟件?8. Win10電腦打開軟件黑屏閃退怎么辦?9. Win10電腦怎么一鍵釋放系統資源?Win10電腦一鍵釋放系統資源的操作方法10. Kylin(麒麟系統) 同時掛載USB閃存盤和移動硬盤的方法及注意事項
