linux核心社群於2023年迎來了其二十五歲生日,很多朋友詢問我們實現專案長久發展及成功的秘訣。對於這樣的問題,我通常會以笑話回應——因為說實話,我也不知道這一切是怎樣實現的。不過重要的是,我們之所以能夠這樣摸索向前,是因為社群自身擁有著強大的反省與變革能力。
大約十六年前,大多數核心開發者彼此從未謀面——大家只是通過郵件溝通。為了解決這個問題,隨後出現了核心峰會。如今,linux核心開發者們每年都會齊聚一堂,共同**技術問題並反思自己過去一年中哪些事做得對、而哪些事做得不夠理想。我們會開發git這類新型工具,從而不斷改變彼此間協作的方式。
隨著時間推移,這種演變帶來了彈性,使得linux專案能夠不斷邁上新的台階,同時避免由fork帶來的力量分散問題。也許其中確實有著一些重要的成功關鍵,下面我將試著闡述其中的9項啟示。
1.保持較短發布週期非常重要。
在linux專案發展早期,每套新的核心大版本往往需要數年才能發布一次。這意味著使用者需要拿出大量時間等待新功能的加入,這對於使用者以及發行商而言都相當令人沮喪。不過更重要的是,如此漫長的週期意味著我們需要一次性整合大量**,甚至不得不將很多尚未就緒的**匆匆加入新版本。
較短的發布週期能夠解決此類問題。新**可快速被納入穩定版本。以幾乎即時的方式整合新**使得最為重大的變更也幾乎不會產生破壞性影響。開發者很清楚,即使他們錯過了乙個版本,那麼再等兩個月又會有新的版本,因此他們不必急於將不成熟的**合併進來。
2.需要利用分布式分層開發模型實現流程可擴充套件性。
很久以前,一切變更都直接由林納斯-托瓦茲負責,但這種作法很快被證明並不科學——畢竟沒有任何乙個人能夠獨力支撐起像作業系統核心這種多樣的專案。因此,我們想到應該將核心中不同領域的事務交由不同且掌握對應專業知識的維護者處理。其中包括網路、無線網路、各類驅動程式子系統——例如cpi或usb——乃至ext2或vfat等獨立檔案系統。將**審查與整合的任務交付至數百名維護者手中,最終使得linux專案能夠快速實現各個版本中的數萬次變更,而不會影響審查或者成品質量。
沒有正確的工具,核心這樣的專案將隨著自身體積的擴張而崩潰。
3. 工具很重要。
核心開發工作在規模方面一直面臨挑戰,直到bitkeeper源**管理系統的出現——其幾乎在一夜之間改變了社群的實踐方式。而git無疑是另一種飛躍。沒有正確的工具,核心這樣的專案將隨著自身體積的擴張而崩潰。
4.核心的共識性判斷模式非常重要。
作為一項基本原則,如果某位極具份量的開發者表示反對,那麼提出的更改建議將不會被納入專案當中。但是,這對於該**的貢獻者來說則是一種沉重的打擊,畢竟他們已經耗費了數月時間用於相關工作。但這一舉措亦確保了我們的核心能夠適應廣泛的使用者需求與實際問題。沒有哪個使用者社群能夠犧牲整體利益執行變更。因此,我們利用這種共識性關注保證專案只具備單一**庫,其能夠涵蓋由小型系統到超級計算機的各類應用場景。
5.核心的「無退化」原則同樣重要。
十年之前,核心開發者社群曾經承諾如果特定核心可在特定設定下運作,那麼全部後續核心也必須契合同樣的條件。如果社群發現某項變更會導致退化,則必須快速解決這一問題。該原則向使用者保證任何公升級活動都不致破壞其系統,這樣他們才樂於在開發新功能時採用我們的核心方案。
6.企業參與至關重要,但核心開發不會由任何單一企業所操縱。
自2023年12月發布的3.18版本以來,來自近500家企業的5062名個人開發者為linux核心作出了貢獻。大多數開發者能夠從相關工作中獲得酬勞,而他們做出的變更則可為其所在企業提供助益。然而,儘管任何企業都能夠參與到核心的改進工作中來,但核心的發展方向絕不會為任何單一企業所操縱。
7.專案之內不應存在內部邊界。
核心開發者必須專注於核心中的特定部分,但任何開發者都能夠對核心的任意部分進行變更——只要這一變更存在合理性。這意味著問題將始終存在於其起源處,而非令人難以定位,而開發者則可對核心擁有更為全面的了解,甚至最為頑固的維護者也無法無限期地阻止任何針對特定子系統的改進。
8. linux核心專案證明,大規模開發工作完全可以從小處起步。
最初的0.01版本核心僅包含1萬行**; 如今其每兩天的**增量就已經超過1萬行。開發者目前新增的一些基本甚至微小的功能,未來都有可能發展成重要的子系統。
9. 25年的核心發展歷程表明,持續合作可以帶來任何單一機構都無法實現的輝煌成果。
自2023年以來,來自超過1300家企業的約14000名個人開發者為linux核心作出貢獻。正因為如此,linux核心已經成為各類企業進行市場競爭時頻繁使用的重要資源。
Linux(一) 發展 背景
linux是一種得到廣泛應用的計算機作業系統。由芬蘭人linus torvalds最早開發。第一次正式公布時間是1991年10月5日。通常提到 linux 一詞時,並不是單純的值作業系統,而是泛指已下三個部分的總體概念。1.一種類unix,名為 linux 的計算機作業系統 2。linux作業系統環...
mysql5發展歷史 D MySQL變更史
附錄d mysql變更史 在本附錄中,列出了mysql原始碼在不同版本中的變化,直至最新的mysql 5.1版本,目前是mysql 5.1.2 alpha。從mysql 5.0版開始,我們為每個新的mysql版本系列提供了新的手冊版本 5.0 5.1等 關於mysql資料庫軟體以前版本中的變更資訊,...
2023年發展 2023年酸菜魚加盟市場發展
一道菜風靡全國,誰能做到?除了黃燜雞,還有酸菜魚。從川渝地區的一道家常菜到各大餐館裡點單率最高的國民菜,再到近兩年最火爆的單品爆品之一,酸菜魚加盟憑一己之力撬動了上億級的餐飲市場,成為行業又一大風口。1 市場持續爆發,快餐將成最大賽道 2 行業普遍認為,2017年是酸菜魚的爆發元年,自那之後,酸菜魚...