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年代幾乎已經消失在人們的視野裡。
此外,得說明的是,我這裡說的是內核,而不是完整的作業系統。在很大程度上,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確實不是一次實用上的成功。部分原因是它的基本設計使它像是一個研究專案。別於其它Unix變體。當他在1991年8月第一次發布Linux時他的一個初衷就是擁有一個屬於他自己的Unix,而不用別人的程式碼。這點特性使得Linux區別於同時期的大部分Unix變體,後者一般是從AT&T Unix或伯克利的BSD衍生出基礎代碼。
我並不是一個電腦科學家,所以我沒有資格去評判是否Linux程式碼就優於其他Unix程式碼,以此來解釋Linux的成功。雖然這並不能解釋Linux和其它Unix核心在文化和人員上的不同,但這個觀點對我來說解釋得通,因為似乎在理解Linux成功這一點上操作系統設計比程式碼更加重要。
Stallman也寫到Linux成功的「主要原因」是「Torvalds使Linux Stallman也寫到Linux成功的「主要原因」是「Torvalds使Linux成為一個自由軟體,所以相比成為一個自由軟體,所以相比成為一個自由軟體Hurd有更多來自社群的支持湧入Linux的發展中。個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伺服器到智慧型手機的每個領域。 linux/
|

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。
