25年Linux內核開發經歷總結出來的九條經驗

5年Linux內核開發經歷總結出來的九條經驗"

原文:?9 lessons from 25 years of Linux kernel development

作者:Greg Kroah-Hartman

翻譯:雁驚寒

Linux內核社區在2016年慶祝了成立二十五周年紀念,許多人來問我們這個項目經久不衰和成功的秘訣。我一般會先笑笑,然后開玩笑地說,我真的不知道已經經歷了25年。這個項目一直都面臨著分歧和挑戰。但是,嚴肅地說,我們能夠做到這一點與社區在反思和改變上的能力有著很大的關系。

大約16年前,大多數內核開發人員互相之間從來沒有見過面,我們只是通過電子郵件進行聯系,所以Ted T’so提出了內核峰會的想法。現在,內核開發人員每年都會聚在一起解決技術問題,更重要的是,回顧一下在過去的一年里我們做了哪些對的事情,又犯了哪些錯誤。開發人員可以開誠布公地討論相互之間如何進行交流以及開發流程如何運作。然后,我們會改進流程,我們會開發像Git這樣的新的工具,不斷地改變我們的合作方式。

雖然我們現在尚未完全認識清楚Linux內核成功的所有關鍵原因,但目前還是有一些經驗值得拿出來分享的。

1. 更短的發布周期很重要

在Linux項目的早期階段,內核的每個主版本需要好幾年發布一次,這意味著用戶需要等待很長時間才能享受到新功能,這對于用戶和經銷商來說是相當令人沮喪的。而且,更重要的是,這么長的周期意味著需要一下子集成大量的代碼。把這么多代碼合入一個版本里,壓力也是很大的。

更短的周期可以解決所有這些問題。新代碼能夠在更短時間內合入到穩定版中。將新代碼集成到幾乎穩定不變的基線版本上,使得能夠在對系統產生極小影響的情況下引入根本性的變化。開發人員知道,如果他們錯過了這個發布周期,兩個月內還會有另外一個,所以他們很少會過早地合入代碼。

2. 流程的擴展需要一個分布式的分層開發模型

很久以前,所有的變更需求都會直接轉到Linus Torvalds手中,但這很快就被證明是不合適的,因為沒有哪個人可以全面掌握像操作系統內核這么復雜的項目。很早的時候,內核不同領域的維護者們就提出了一個想法,就是把內核的其中一部分分配給熟悉該領域的人。例如,網絡、無線、像PCI或USB這樣的驅動程序子系統、或者像ext2或vfat這樣的文件系統。然后再擴展到由數百名維護人員負責代碼審查和整合,從而使得能夠在不犧牲產品質量的情況下,在每個發布的版本中都包含成千上萬的變更。

3. 工具的重要性

內核開發一直在試圖擴大開發人員的范圍,直到BitKeeper這款源代碼管理系統出現,幾乎在一夜之間社區的做法發生了改變,而Git的出現帶來了又一次的飛躍。如果沒有合適的工具,像內核這樣的項目將無法正常運轉,從而會被自身的重量壓垮。

4. 強大的輿論導向模式很重要

一般來說,如果一個開發大咖拒絕了某個提交上來的變更,那么這個變更將不會被合并進去。如果開發人員發現自己在幾個月前提交的代碼在郵件列表中被拒絕了,那是非常令人沮喪的。但這也保證了內核開發可以適應大量的用戶和問題。沒有哪個用戶社區能夠以犧牲其他群組為代價而進行變更。我們有一個可以支持從微型系統到超級計算機的代碼庫,它可以應用在很多場景上。

5. 強大的“無回歸”規則也很重要

大約在十多年前,內核開發社區承諾,如果給定的內核在特定的環境中能正常運行,那么所有后續的內核版本也能在這個環境中正常運行。如果社區發現某個變更導致了其他問題的出現,他們會很快地解決這個問題。該規則承諾用戶:系統升級不會破壞他們原來的系統。 因而,維護者很愿意在開發新功能的時候延續這個內核。

6. 公司參與到開發流程中來是至關重要的,但沒有哪家公司能夠主導內核開發

自2014年12月版本號為3.18的內核發布以來,有將近500家公司的大約5062名個人開發者為Linux內核做出了貢獻。大多數開發人員因為他們的工作而得到了報酬,而他們所做的變更是為他們所在的公司服務的。但是,盡管任何一家公司都可以根據具體需求改進內核,但是沒有哪家公司可以主導開發去做傷害別人或者限制內核功能的事情。

7. 項目中不應有內部界限

內核開發人員必須專注于內核的特定部分,但只要修改是合理的,那么任何開發人員都可以對內核的任何部分進行修改。從而,問題在產生的時候就會被解決掉,而不是規避掉。開發人員對整個內核有很多各種各樣的看法,即便是最頑固的維護者也不能無限期地擱置任何指定子系統中所必需的改進。

8. 重要的功能是從一點一滴開始的

原來的0.01版內核只有10000行代碼; 而現在每兩天增加10000多行。開發人員現在添加的一些基本的、微小的功能未來可能會發展成為重要的子系統。

9. 綜上所述,25年的內核發展歷史表明,持續地合作可以帶來共同的資源,這不是單單某個小組能夠開發出來的

自2005年以來,來自1300多家公司的約14000名個人開發人員對內核做出了貢獻。因此,Linux內核在很多互相之間有激烈競爭關系的公司的努力下,發展成為一個規模龐大的公共資源。

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code
云南快乐10分开奖直播