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