Linux內(nèi)核維護(hù)者真相與誤解!
[導(dǎo)讀]自 2020 年 1 月發(fā)布 5.5 內(nèi)核之后,到現(xiàn)在已經(jīng)有近 87,000 個(gè) patch,來(lái)自于近 4600 名開發(fā)者,都被合并到 mainline 倉(cāng)庫(kù)中了。
Digging into MAINTAINERS
統(tǒng)計(jì)下來(lái),MAINTAINERS 文件中已經(jīng)列出了 2280 個(gè) "subsystems (子系統(tǒng))"。每一個(gè)子系統(tǒng)都包括一個(gè)它所涵蓋的文件和目錄列表。我們可以查看這些文件的 commit 信息來(lái)這個(gè)子系統(tǒng)中都有誰(shuí)在進(jìn)行工作。撰寫 patch 顯然屬于工作內(nèi)容之一,但其他活動(dòng)也得算,比如處理 patch (可以從 Signed-off-by tag 來(lái)得到這個(gè)信息) 或 review patch (根據(jù) Reviewed-by 或 Acked-by)。我們犧牲了一些 CPU 挖礦的時(shí)間,得到了一個(gè)大概統(tǒng)計(jì)值,也就是各個(gè)子系統(tǒng)中明確列出的維護(hù)者最后一次在該子系統(tǒng)中實(shí)際做了有效工作的時(shí)間是什么時(shí)候。 對(duì)于那些想看細(xì)節(jié)的人來(lái)說(shuō),可以直接看這個(gè)完整結(jié)果(https://lwn.net/Articles/842419/)。 不過(guò),我們可以縮小數(shù)據(jù)范圍,在這個(gè)文件中挑選出一些我們更感興趣的內(nèi)容。例如,有 367 個(gè)子系統(tǒng)在整個(gè) Git 歷史中都沒有維護(hù)者,或維護(hù)者從未出現(xiàn)過(guò)(沒有包括那些沒有文件的 "子系統(tǒng)"–見下文)。在這些子系統(tǒng)中,很多已經(jīng)過(guò)了它本身的黃金時(shí)期,比如現(xiàn)在 3c59x 網(wǎng)卡維護(hù)者根本沒有多少工作可做。網(wǎng)絡(luò)開發(fā)人員也不會(huì)收到很多 ATM 的 patch 了,Palm Treo 也不需要有多少支持工作了,蘋果最近也很少發(fā)布基于 M68k 的系統(tǒng)了,Arm 軟驅(qū)(floppy drive)也沒有多少人還在使用了,S3 Savage 顯卡也不再是以前人們所必備的設(shè)備了。這幾百項(xiàng)中,很多可能都代表著可以完全刪除的代碼。 類似的結(jié)論也可以從另一個(gè)列表中得到 (https://lwn.net/Articles/842424/),那個(gè)列表中都是沒有列出維護(hù)者的子系統(tǒng)。當(dāng)然,其中一些子系統(tǒng)本身也不太對(duì)頭,有一個(gè)子系統(tǒng)簡(jiǎn)單地命名為 "ABI/API",指向了 linux-api 郵件列表。實(shí)際上有一個(gè)文件是與這個(gè) "子系統(tǒng) " 相關(guān)的,kernel/sys_ni.c,這個(gè)文件會(huì)對(duì)那些未實(shí)現(xiàn)的系統(tǒng)調(diào)用進(jìn)行處理。因此,這個(gè)條目的存在價(jià)值,是為了讓開發(fā)者在添加新的系統(tǒng)調(diào)用時(shí)會(huì)抄送 linux-api 郵件列表。"Arm subarchitectures " 條目也是類似情況。 一些無(wú)維護(hù)者的子系統(tǒng),比如 framebuffer 層,可能后續(xù)會(huì)有人愿意接手從而復(fù)活。reiserfs 文件系統(tǒng)缺乏維護(hù)者,但似乎仍有一些用戶。其他的子系統(tǒng),比如 DECnet 或 Matrox framebuffer,可能最好的處理就是不去管它了(或干脆刪除掉)。 MAINTAINERS 文件中列出的一些 "子系統(tǒng)" 沒有任何文件需要修改。一個(gè)有趣的例子是 "embedded Linux",據(jù)說(shuō)由 Paul Gortmaker、Matt Mackall 和 David Woodhouse 維護(hù)。鑒于嵌入式 Linux 的成功,我們都認(rèn)為他們的工作非常出色。"device number registry" 聲稱是有維護(hù)的,但這里只包含一個(gè)鏈接,指向一個(gè)不存在的網(wǎng)頁(yè)。"disk geometry and partition handling" 這一條中的 URL 仍然有效,但這些網(wǎng)頁(yè)似乎已經(jīng)有十多年沒有更新了,可以看出最近 Zip 驅(qū)動(dòng)器的 geometry 并沒有什么進(jìn)展。man page 這些手冊(cè)頁(yè)面倒是有積極維護(hù)的,但它們不在內(nèi)核代碼樹中。Help needed
從目前的結(jié)果可以得出幾個(gè)結(jié)論。一個(gè)是很多內(nèi)核子系統(tǒng)現(xiàn)在并不是真的需要有人來(lái)維護(hù),相反,其中一些可能需要被刪除掉。另一個(gè)結(jié)論是,也許 MAINTAINERS 文件本身需要清理一下。但還有一個(gè)有價(jià)值的問題,那就是從這些數(shù)據(jù)是否可以看出是否有一些子系統(tǒng)從新的維護(hù)者中獲益匪淺的呢?為了回答這個(gè)問題,我們又花費(fèi)了一些本來(lái)可以用來(lái)挖礦的 CPU 時(shí)間,來(lái)尋找符合這些標(biāo)準(zhǔn)的子系統(tǒng)。- 沒有列出維護(hù)者,或者所謂的維護(hù)者已經(jīng)在該子系統(tǒng)中至少 6 個(gè)月沒有活動(dòng)了。
- 自 2020 年 1 月發(fā)布 5.5 內(nèi)核以來(lái),至少有 50 個(gè)提交跟這個(gè)子系統(tǒng)有關(guān)。
|
|
|
|
| ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API | —— | 536 |
| HISILICON NETWORK SUBSYSTEM DRIVER | 2019-11-16 | 258 |
|
|
|
|
| DIALOG SEMICONDUCTOR DRIVERS | —— | 120 |
| QUALCOMM ATHEROS ATH9K WIRELESS DRIVER | —— | 65 |
| WOLFSON MICROELECTRONICS DRIVERS | —— | 146 |
|
|
|
|
| HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3) | 2019-11-16 | 234 |
| HISILICON SECURITY ENGINE V2 DRIVER (SEC2) | 2020-06-18 | 55 |
| LINUX FOR POWER MACINTOSH | 2018-10-19 | 71 |
| MELLANOX ETHERNET INNOVA DRIVERS | —— | 93 |
| MELLANOX MLX4 IB driver | —— | 70 |
| OMAP HWMOD DATA | 2016-06-10 | 102 |
| QCOM AUDIO (ASoC) DRIVERS | 2018-05-21 | 125 |
| TEGRA I2C DRIVER | 2018-05-30 | 56 |
|
|
|
|
| ARM/UNIPHIER ARCHITECTURE | —— | 73 |
| DRBD DRIVER | 2018-12-20 | 51 |
| FRAMEBUFFER LAYER | —— | 402 |
| HMM - Heterogeneous Memory Management | 2020-05-19 | 54 |
| I2C SUBSYSTEM HOST DRIVERS | —— | 434 |
| MARVELL MVNETA ETHERNET DRIVER | 2018-11-23 | 65 |
| MEDIA DRIVERS FOR RENESAS - VIN | 2019-10-10 | 56 |
| MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER | 2020-06-24 | 54 |
| NFC SUBSYSTEM | —— | 72 |
| PROC FILESYSTEM | —— | 171 |
| PROC SYSCTL | 2020-06-08 | 51 |
| QLOGIC QLGE 10Gb ETHERNET DRIVER | 2019-10-04 | 77 |
| STAGING - REALTEK RTL8188EU DRIVERS | 2020-07-15 | 121 |
| STMMAC ETHERNET DRIVER | 2020-05-01 | 174 |
| UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER | —— | 277 |
| USB NETWORKING DRIVERS | —— | 119 |
| X86 PLATFORM DRIVERS - ARCH | —— | 119 |
January 14, 2021
DeepL assisted translation
https://lwn.net/Articles/842415/
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!






