Linux 核心開發報告 2017 版
正如文中所說,Linux 核心無論從那個角度來看都是值得研究的物件,社會、人文、協作、工程、管理、技術本身等等。如此看來,這是人類非常了不起的創造!值得上帝為之驚歎!令所人讚揚、尊敬的工程。
摘要
全球公有云上執行的負載有 90% 是 Linux 作業系統,在嵌入式市場的佔有率是 62%,而在超算的市場佔有率更是達到了 99%,還有,它執行在世界上超過 82% 的智慧手機中,也是所有公有云廠商的主要支撐伺服器(90%)。
這一組百分比的資料能夠激發你什麼樣的想象?這麼形容,你覺得是否合理:“幾乎整個(移動)網際網路以及支撐它的雲端計算和大資料,都是由 Linux 來負責掌控的。” 這樣一個神奇的系統的開發方式是什麼樣的?已經經過了 26 年的發展,它是如何保持活力的?龐大的社群又是如何協作的?我們不妨來解讀一下Linux基金會剛剛釋出的Linux核心開發報告2017(PDF 在此下載)。
我很榮幸能夠在 Linux 社群和一些具有高水準的人打交道。 –Julia Lawall(來自 Inria 的高階研究員如是說)
Linux 專案的現狀
本次的報告,所統計的資料是從核心的 4.7 算起,到 4.13 止,先看看Linux都增加了那些新的特性吧:
- 透明 Huge 頁現在可以支援基於檔案的頁,以及可程式設計的資料的頁,可以更加高效的利用記憶體。
- 核心的文件系統切換到了新的工具鏈,即 Sphinx:為了更好的組織和加強核心的文件。
- 核心的核心計時機制,被替代為新的更加高效。
- 網路棧中的“易捷版資料路徑”機制的實現,可以處理使用者 BPF 程式負載的高速網路包。
- BBR 擁塞控制演算法改善了多種設定中的網路效能。
- ……
以及更多的驅動、更安全、更多的測試。
當你的程式碼是執行在數十億臺裝置上的時候,感覺真的不一般。 ——Jens Axboe(Software Engineer, Facebook)
都有誰為 Linux 做的改變?
自從進入 Git 時代(即 2005 年 2.6.11 釋出之後),共有 15,637 名開發者為 Linux 核心的開發做了貢獻,這些開發者至少是來自 1,513 家公司。
儘管那些獨立的開發者看起來是很多,但其實是少部分人做了大量的工作,在幾乎所有的開發週期中,大約有 1/3 的開發者,每人僅貢獻一個補丁。自 2.6.11 版本之後,貢獻最多的前十位工程師,他們加起來的貢獻有 45,338 次改變,大概佔了總數的 7.1%,前 30 名加起來的貢獻是 16%。他們的名字是:
Linux 仍然是存在這個人英雄主義色彩的,是的如此龐大的系統,必須是群體智慧的產物。但是精英們、英雄們付出了他們智慧與努力,理應得到榮耀。
我一直以來都喜歡底層的軟體打交道,因為他們靠近硬體的邊界。 ——Kees Cook(Software Engineer, 來自Google)
都有那些公司為 Linux 做了贊助?
沒錯,你能想到的 IT 公司基本都是 Linux 的貢獻者,他們僱傭開發者專門來對核心進行開發,有晶片廠商如 Intel、AMD、ARM、TI 等,也有網際網路巨頭 Google、Facebook,是誰並不重要。
正如有的評論家稱,無論哪家公司,若是去說開源對於他們的發展相比於他們的貢獻都是不成比例的,無論怎麼反饋都是他們有利。商業公司考慮的因素更多,但是不能失去核心,核心的開發無論其處於何種目的。都是應該的。拿 Intel 來說吧,即使 Intel 在過去的一年貢獻率達到 13%,但相比於它的營收,這點都是微不足道的。
開源固然感激商業公司的贊助,但是反過來,商業公司更應該感激開源能夠讓他們有機會贊助,並賺取利潤。
新的開發者
像很多的社群一樣,或者更大範圍的道理,很多人是淺嘗輒止,從 kernel 的歷史來看,在每個版本都會有新人提交那麼一個或幾個 patch,然後絕大多數人都離開了,只有少部分人留下來。目前社群的貢獻者人數是:4,319,而其中過去一年中的新人有:1,670 位。另外,新人們所提交的 patch 均是裝置驅動,按照數量排名依次是:網路驅動、文件、顯示卡驅動、USB 驅動、和聲音子系統。
這樣我們可以有一個直觀的推論,那就是能上手核心開發的,並沒有傳說中的那麼難,更難的在於堅持下來一直去做。當然,這一點,有商業公司的支撐會好很多。
誰在做著 Review 程式碼的工作?
到現在你是不是還沒有看到 Linus Torvalds 的名字?
Linux 作為最大的開源專案之一,不是隨便的無章法的,每一個補丁並非是直接就能進入主幹的,而是要經過很多個子系統的。而每個子系統都是有對應的維護人員的,這些維護人員要稽核人們的提交。每個補丁經過這些維護者稽核之後,都會加上 “Signed-off-by”,這意味著這個補丁可以進入核心。分析核心程式碼時,關注 “Signed-off-by”,你就能明白都有誰是核心的守護者。
沒錯,Linus Torvalds 現在就是其中之一,由他本人 “Signed-off-by” 的補丁在過去的一年中有 207,佔總共的 0.3%。
Linux 在 26 年以來所學到的
很少有開發專案能夠擁有這麼久的歷史,大多數的專案在經歷瞭如此長的歷史之後,都會有“穩定狀態”這樣感覺,會有日薄西山的感覺。但是 Linux 核心沒有這樣,26 年了,它依然保持活力和旺盛的生命力。是的,有很多的學術研究 Linux 社群的成功之處,但是在我們徹底的將它搞明白之前,我們先總結下我們的教訓:
- 短的開發週期真的很重要。
- 流程的可擴充套件性需要一個分散式的、層級的開發模式
- 工具很關鍵
- 強烈的共識導向模式非常重要。要作為一般規則。
- 核心還有一個相關的因素是“無迴歸”規則。
- 企業的參與在過程中蠻重要。
- 專案內部不應有邊界。
以上這 7 點,對於任何的大型開源都有重要的參考價值。26 年,核心用實際行動告訴我們,持續、合作的努力能帶來巨大的共享資源,這本身沒有任何一家單獨的公司可以做得到。
開源之道點評
Linux 迎來了巨大的成功,所有人都直接或間接的受益於它。Linux 現在成了幾乎整個IT領域的基石,當下發展的多數技術如雲端計算、大資料、IoT、機器學習,預設都是以 Linux 為基礎,向上構建。然而就是這樣的技術,其背後 26 年尤其是前 13 年,走過的曲折道路,艱辛道路。讓我們重溫下 1998 年的開源人物合影:
但是從技術和工程、協作、治理的角度講,Linux 核心是人類史上的奇蹟。其背後蘊含的哲學、方法都是我們值得挖掘的寶庫。
Linux 基金會所做的報告,看起來都是非常成功的資料。但是要知道,微觀上是那些開發者殫盡竭慮、夜以繼日的工作、除錯、試驗、溝通的結果,4319 人共同打造的藝術品。難道這本身不應該被銘記和尊敬?感謝你們!
相關文章
- 2017Linux核心開發報告發布,華為上榜!Linux
- Linux發行版 vs Linux核心Linux
- 典型Linux發行版核心版本Linux
- 淘寶核心月報 2017
- 亞洲開發銀行:2017年亞洲經濟一體化報告
- 2017年小程式發展狀況報告
- 2017年12月開源貢獻報告
- 測試報告在發版前還是發版後寫測試報告
- 前瞻研究:電商領域人工智慧發展與趨勢 | 智周報告核心版人工智慧
- 前瞻研究:日本農業人工智慧發展與趨勢 | 智周報告核心版人工智慧
- linux核心模組開發基礎Linux
- Linux 核心開發組成員合照Linux
- 虛擬印表機開發報告
- 2017浙江省網際網路發展報告
- Jedit for Linux 開發版(轉)Linux
- Videology:2017年高階電視報告(附報告)IDE
- 亞洲開發銀行:2023年亞洲發展展望報告(12月版)
- Linux 大爆炸:一個核心,無數發行版Linux
- GitHub 2017 章魚貓觀察報告Github
- 八款值得嘗試的精美的 Linux 發行版(2017 版)Linux
- 2017中國網路視聽發展研究報告解讀
- 未來Web開發趨勢報告Web
- 亞洲開發銀行:2023年亞洲發展展望報告(九月版)
- British Land:2017年年度投資報告
- ITU:2017年電子垃圾報告
- 谷歌:2017年度Android安全報告谷歌Android
- 2017年人工智慧研究報告人工智慧
- 2017年京津冀大資料產業發展分析報告大資料產業
- Mandriva Linux開發核心人員訪談(轉)Linux
- 在Linux中,發行版和核心有什麼區別?Linux
- 賽諾2017年報告發布 智慧穿戴裝置體驗升級
- 烏鎮智庫:2017全球人工智慧發展報告(框架篇 )人工智慧框架
- 跟我學 “Linux” 小程式 Web 版開發(二):UI 開發LinuxWebUI
- FBI:2017年網路犯罪報告
- 安永:2017全球奢侈品行業報告行業
- 騰訊釋出2017年程式碼報告
- Newzoo:2017年全球遊戲市場報告遊戲
- 2017測試行業狀況報告行業