Linux內(nèi)核維護(hù)者這些事!你了解嗎?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
Linux是一種開源電腦操作系統(tǒng)內(nèi)核。它是一個(gè)用C語(yǔ)言寫成,符合POSIX標(biāo)準(zhǔn)的類Unix操作系統(tǒng)。就目前而言windows仍然是最主流的系統(tǒng),但最近的linux的勢(shì)頭也相當(dāng)猛,很多人開始放棄windows轉(zhuǎn)向使用Linux,Linux相對(duì)于window而言,運(yùn)行也更快。Linux的內(nèi)核也是有人在維護(hù)的,但是但你了解Linux的內(nèi)核維護(hù)者的這些事嗎?你對(duì)內(nèi)核維護(hù)者又了解多少呢?
Linux的5.5內(nèi)核的發(fā)布時(shí)間是2020年1月,到現(xiàn)在已經(jīng)有近87,000個(gè)patch,來自于近4600名開發(fā)者,都被合并到mainline倉(cāng)庫(kù)中了。review所有這些patch的工作,對(duì)于愿意花時(shí)間的內(nèi)核開發(fā)者來說也都是一項(xiàng)艱巨的任務(wù),所以是否要接受合并patch,這個(gè)決定權(quán)就被委托給了各個(gè)子系統(tǒng)的維護(hù)者(maintainer)來代理決定,也就是說他們是相對(duì)獨(dú)立的。他們每個(gè)人都對(duì)內(nèi)核中這一部分的改動(dòng)具有部分或者完整的決定權(quán)。這些維護(hù)者們就被記錄在一個(gè)叫MAINTAINERS的文件中(當(dāng)然是這個(gè)名字)。
在與 Dirk 的談話中,Linus 認(rèn)為 Linux 內(nèi)核開發(fā)對(duì)大多數(shù)人來說是無聊的?!?我說過內(nèi)核很無聊,但我的意思是從某種意義上說,許多新技術(shù)應(yīng)該比內(nèi)核開發(fā)更有趣。但是對(duì)我和其他內(nèi)核開發(fā)者來說,沒有什么能夠比與底層硬件交互的內(nèi)核開發(fā)更有趣的了,因?yàn)檫@能真正控制所有將在計(jì)算機(jī)中發(fā)生的事情。所以內(nèi)核對(duì)我來說并不是很無聊,但是我想大多數(shù)人應(yīng)該會(huì)認(rèn)為它們很無聊?!币簿褪钦f,他們做linux維護(hù)時(shí)非常無聊。
Linux內(nèi)核維護(hù)時(shí)非常無聊的事情。但又必須有人來做。但是,MAINTAINERS文件也需要維護(hù),它能很好地反映現(xiàn)實(shí)情況嗎?MAINTAINERS文件的存在目的,并不僅僅是為了讓大家給維護(hù)者點(diǎn)贊。開發(fā)者們需要用它來確定該把patch發(fā)到哪里。get_maintainer.pl腳本通過查看這個(gè)patch修改了的文件,就可以生成一系列郵件地址來發(fā)送patch,從而讓這一過程變得更加自動(dòng)化。如果這個(gè)文件中有錯(cuò)誤信息的話,就可能會(huì)讓patch發(fā)送到錯(cuò)誤的地方去,所以我們需要這個(gè)文件能保持更新。最近,編者收到JakubKicinski的建議,他認(rèn)為可以比較一下MAINTAINERS中的各個(gè)條目和現(xiàn)實(shí)世界中的工作的吻合程度,應(yīng)該能得到一些線索。于是折騰了一會(huì)兒Python之后,我們就得到了一個(gè)新的分析腳本。
Linux之父Linus 在采訪時(shí)透露“我們確實(shí)有不少編寫代碼的人,但缺少維護(hù)者?!?在 Linus 看來,Linux 內(nèi)核項(xiàng)目未來交接的難點(diǎn)在于尋找一個(gè)自己的繼任者。“ 事實(shí)證明,我們現(xiàn)在很難找到合格的新維護(hù)者。所以成為內(nèi)核維護(hù)者的要求時(shí)非常嚴(yán)苛的,因?yàn)槌蔀閮?nèi)核維護(hù)者,你必須一直存在,這意味著你每天都要在電腦前閱讀來自全球各地的電子郵件,對(duì)郵件做出反應(yīng),就像我這 30 年來做的一樣,從不間斷。我們現(xiàn)在很難找到真正看待他人代碼,并在上游嚴(yán)格把關(guān)每一個(gè)提交,判斷它們能否合并到我們的主干代碼上的人。這是我們面臨的最主要的問題。” Linus 說。
當(dāng)你成為linux維護(hù)者的時(shí)候,你需要遵循貢獻(xiàn)者契約行為準(zhǔn)則 ,準(zhǔn)則是一個(gè)通用文檔,旨在為幾乎所有開源社區(qū)提供一套規(guī)則。 每個(gè)開源社區(qū)都是獨(dú)一無二的,Linux內(nèi)核也不例外。因此,本文描述了Linux內(nèi)核社區(qū)中 如何解釋它。我們也不希望這種解釋隨著時(shí)間的推移是靜態(tài)的,并將根據(jù)需要進(jìn)行調(diào)整。
Windows有微軟的員工去維護(hù),我個(gè)人認(rèn)為,linux在將來必將超過window,成為最通用的系統(tǒng),因?yàn)樗谋憬菪?,開源性,成為內(nèi)核維護(hù)者很難,要求很高,但是不代表不可能。正是因?yàn)檫@個(gè)難度,才能使linux成為真正好的系統(tǒng)。此前也有很多大牛,從windows轉(zhuǎn)向了linux系統(tǒng),所以它的前景一片光明。
Linux還有很多可以講的東西,這里就不再贅述。有興趣的可以持續(xù)關(guān)注21ic電子網(wǎng),持續(xù)關(guān)注小編。