帶你了解2017版Linux內(nèi)核開發(fā)報告
正如文中所說,Linux 內(nèi)核無論從那個角度來看都是值得研究的對象,社會、人文、協(xié)作、工程、管理、技術(shù)本身等等。如此看來,這是人類非常了不起的創(chuàng)造!值得上帝為之驚嘆!令所人贊揚、尊敬的工程。
摘要
全球公有云上運行的負(fù)載有 90% 是 Linux 操作系統(tǒng),在嵌入式市場的占有率是 62%,而在超算的市場占有率更是達(dá)到了 99%,還有,它運行在世界上超過 82% 的智能手機中,也是所有公有云廠商的主要支撐服務(wù)器(90%)。
這一組百分比的數(shù)據(jù)能夠激發(fā)你什么樣的想象?這么形容,你覺得是否合理:“幾乎整個(移動)互聯(lián)網(wǎng)以及支撐它的云計算和大數(shù)據(jù),都是由 Linux 來負(fù)責(zé)掌控的。” 這樣一個神奇的系統(tǒng)的開發(fā)方式是什么樣的?已經(jīng)經(jīng)過了 26 年的發(fā)展,它是如何保持活力的?龐大的社區(qū)又是如何協(xié)作的?我們不妨來解讀一下Linux基金會剛剛發(fā)布的Linux內(nèi)核開發(fā)報告2017(PDF 在此下載)。
我很榮幸能夠在 Linux 社區(qū)和一些具有高水準(zhǔn)的人打交道。 –Julia Lawall(來自 Inria 的高級研究員如是說)
Linux 項目的現(xiàn)狀
本次的報告,所統(tǒng)計的數(shù)據(jù)是從內(nèi)核的 4.7 算起,到 4.13 止,先看看Linux都增加了那些新的特性吧:
- 透明 Huge 頁現(xiàn)在可以支持基于文件的頁,以及可編程的數(shù)據(jù)的頁,可以更加高效的利用內(nèi)存。
- 內(nèi)核的文檔系統(tǒng)切換到了新的工具鏈,即 Sphinx:為了更好的組織和加強內(nèi)核的文檔。
- 內(nèi)核的核心計時機制,被替代為新的更加高效。
- 網(wǎng)絡(luò)棧中的“易捷版數(shù)據(jù)路徑”機制的實現(xiàn),可以處理用戶 BPF 程序負(fù)載的高速網(wǎng)絡(luò)包。
- BBR 擁塞控制算法改善了多種設(shè)置中的網(wǎng)絡(luò)性能。
- ……
以及更多的驅(qū)動、更安全、更多的測試。
當(dāng)你的代碼是運行在數(shù)十億臺設(shè)備上的時候,感覺真的不一般。 ——Jens Axboe(Software Engineer, Facebook)
都有誰為 Linux 做的改變?
自從進(jìn)入 Git 時代(即 2005 年 2.6.11 發(fā)布之后),共有 15,637 名開發(fā)者為 Linux 內(nèi)核的開發(fā)做了貢獻(xiàn),這些開發(fā)者至少是來自 1,513 家公司。
盡管那些獨立的開發(fā)者看起來是很多,但其實是少部分人做了大量的工作,在幾乎所有的開發(fā)周期中,大約有 1/3 的開發(fā)者,每人僅貢獻(xiàn)一個補丁。自 2.6.11 版本之后,貢獻(xiàn)最多的前十位工程師,他們加起來的貢獻(xiàn)有 45,338 次改變,大概占了總數(shù)的 7.1%,前 30 名加起來的貢獻(xiàn)是 16%。他們的名字是:
Linux 仍然是存在這個人英雄主義色彩的,是的如此龐大的系統(tǒng),必須是群體智慧的產(chǎn)物。但是精英們、英雄們付出了他們智慧與努力,理應(yīng)得到榮耀。
我一直以來都喜歡底層的軟件打交道,因為他們靠近硬件的邊界。 ——Kees Cook(Software Engineer, 來自Google)
都有那些公司為 Linux 做了贊助?
沒錯,你能想到的 IT 公司基本都是 Linux 的貢獻(xiàn)者,他們雇傭開發(fā)者專門來對內(nèi)核進(jìn)行開發(fā),有芯片廠商如 Intel、AMD、ARM、TI 等,也有互聯(lián)網(wǎng)巨頭 Google、Facebook,是誰并不重要。
正如有的評論家稱,無論哪家公司,若是去說開源對于他們的發(fā)展相比于他們的貢獻(xiàn)都是不成比例的,無論怎么反饋都是他們有利。商業(yè)公司考慮的因素更多,但是不能失去內(nèi)核,內(nèi)核的開發(fā)無論其處于何種目的。都是應(yīng)該的。拿 Intel 來說吧,即使 Intel 在過去的一年貢獻(xiàn)率達(dá)到 13%,但相比于它的營收,這點都是微不足道的。
開源固然感激商業(yè)公司的贊助,但是反過來,商業(yè)公司更應(yīng)該感激開源能夠讓他們有機會贊助,并賺取利潤。
新的開發(fā)者
像很多的社區(qū)一樣,或者更大范圍的道理,很多人是淺嘗輒止,從 kernel 的歷史來看,在每個版本都會有新人提交那么一個或幾個 patch,然后絕大多數(shù)人都離開了,只有少部分人留下來。目前社區(qū)的貢獻(xiàn)者人數(shù)是:4,319,而其中過去一年中的新人有:1,670 位。另外,新人們所提交的 patch 均是設(shè)備驅(qū)動,按照數(shù)量排名依次是:網(wǎng)絡(luò)驅(qū)動、文檔、顯卡驅(qū)動、USB 驅(qū)動、和聲音子系統(tǒng)。
這樣我們可以有一個直觀的推論,那就是能上手內(nèi)核開發(fā)的,并沒有傳說中的那么難,更難的在于堅持下來一直去做。當(dāng)然,這一點,有商業(yè)公司的支撐會好很多。
誰在做著 Review 代碼的工作?
到現(xiàn)在你是不是還沒有看到 Linus Torvalds 的名字?
Linux 作為***的開源項目之一,不是隨便的無章法的,每一個補丁并非是直接就能進(jìn)入主干的,而是要經(jīng)過很多個子系統(tǒng)的。而每個子系統(tǒng)都是有對應(yīng)的維護(hù)人員的,這些維護(hù)人員要審核人們的提交。每個補丁經(jīng)過這些維護(hù)者審核之后,都會加上 “Signed-off-by”,這意味著這個補丁可以進(jìn)入內(nèi)核。分析內(nèi)核代碼時,關(guān)注 “Signed-off-by”,你就能明白都有誰是內(nèi)核的守護(hù)者。
沒錯,Linus Torvalds 現(xiàn)在就是其中之一,由他本人 “Signed-off-by” 的補丁在過去的一年中有 207,占總共的 0.3%。
Linux 在 26 年以來所學(xué)到的
很少有開發(fā)項目能夠擁有這么久的歷史,大多數(shù)的項目在經(jīng)歷了如此長的歷史之后,都會有“穩(wěn)定狀態(tài)”這樣感覺,會有日薄西山的感覺。但是 Linux 內(nèi)核沒有這樣,26 年了,它依然保持活力和旺盛的生命力。是的,有很多的學(xué)術(shù)研究 Linux 社區(qū)的成功之處,但是在我們徹底的將它搞明白之前,我們先總結(jié)下我們的教訓(xùn):
- 短的開發(fā)周期真的很重要。
- 流程的可擴展性需要一個分布式的、層級的開發(fā)模式
- 工具很關(guān)鍵
- 強烈的共識導(dǎo)向模式非常重要。要作為一般規(guī)則。
- 內(nèi)核還有一個相關(guān)的因素是“無回歸”規(guī)則。
- 企業(yè)的參與在過程中蠻重要。
- 項目內(nèi)部不應(yīng)有邊界。
以上這 7 點,對于任何的大型開源都有重要的參考價值。26 年,內(nèi)核用實際行動告訴我們,持續(xù)、合作的努力能帶來巨大的共享資源,這本身沒有任何一家單獨的公司可以做得到。
開源之道點評
Linux 迎來了巨大的成功,所有人都直接或間接的受益于它。Linux 現(xiàn)在成了幾乎整個IT領(lǐng)域的基石,當(dāng)下發(fā)展的多數(shù)技術(shù)如云計算、大數(shù)據(jù)、IoT、機器學(xué)習(xí),默認(rèn)都是以 Linux 為基礎(chǔ),向上構(gòu)建。然而就是這樣的技術(shù),其背后 26 年尤其是前 13 年,走過的曲折道路,艱辛道路。讓我們重溫下 1998 年的開源人物合影:
但是從技術(shù)和工程、協(xié)作、治理的角度講,Linux 內(nèi)核是人類史上的奇跡。其背后蘊含的哲學(xué)、方法都是我們值得挖掘的寶庫。
Linux 基金會所做的報告,看起來都是非常成功的數(shù)據(jù)。但是要知道,微觀上是那些開發(fā)者殫盡竭慮、夜以繼日的工作、調(diào)試、試驗、溝通的結(jié)果,4319 人共同打造的藝術(shù)品。難道這本身不應(yīng)該被銘記和尊敬?感謝你們!























