Linux内核维护者真相与误解!
扫描二维码
随时随地手机看文章
Digging into MAINTAINERS
统计下来,MAINTAINERS 文件中已经列出了 2280 个 "subsystems (子系统)"。每一个子系统都包括一个它所涵盖的文件和目录列表。我们可以查看这些文件的 commit 信息来这个子系统中都有谁在进行工作。撰写 patch 显然属于工作内容之一,但其他活动也得算,比如处理 patch (可以从 Signed-off-by tag 来得到这个信息) 或 review patch (根据 Reviewed-by 或 Acked-by)。我们牺牲了一些 CPU 挖矿的时间,得到了一个大概统计值,也就是各个子系统中明确列出的维护者最后一次在该子系统中实际做了有效工作的时间是什么时候。 对于那些想看细节的人来说,可以直接看这个完整结果(https://lwn.net/Articles/842419/)。 不过,我们可以缩小数据范围,在这个文件中挑选出一些我们更感兴趣的内容。例如,有 367 个子系统在整个 Git 历史中都没有维护者,或维护者从未出现过(没有包括那些没有文件的 "子系统"–见下文)。在这些子系统中,很多已经过了它本身的黄金时期,比如现在 3c59x 网卡维护者根本没有多少工作可做。网络开发人员也不会收到很多 ATM 的 patch 了,Palm Treo 也不需要有多少支持工作了,苹果最近也很少发布基于 M68k 的系统了,Arm 软驱(floppy drive)也没有多少人还在使用了,S3 Savage 显卡也不再是以前人们所必备的设备了。这几百项中,很多可能都代表着可以完全删除的代码。 类似的结论也可以从另一个列表中得到 (https://lwn.net/Articles/842424/),那个列表中都是没有列出维护者的子系统。当然,其中一些子系统本身也不太对头,有一个子系统简单地命名为 "ABI/API",指向了 linux-api 邮件列表。实际上有一个文件是与这个 "子系统 " 相关的,kernel/sys_ni.c,这个文件会对那些未实现的系统调用进行处理。因此,这个条目的存在价值,是为了让开发者在添加新的系统调用时会抄送 linux-api 邮件列表。"Arm subarchitectures " 条目也是类似情况。 一些无维护者的子系统,比如 framebuffer 层,可能后续会有人愿意接手从而复活。reiserfs 文件系统缺乏维护者,但似乎仍有一些用户。其他的子系统,比如 DECnet 或 Matrox framebuffer,可能最好的处理就是不去管它了(或干脆删除掉)。 MAINTAINERS 文件中列出的一些 "子系统" 没有任何文件需要修改。一个有趣的例子是 "embedded Linux",据说由 Paul Gortmaker、Matt Mackall 和 David Woodhouse 维护。鉴于嵌入式 Linux 的成功,我们都认为他们的工作非常出色。"device number registry" 声称是有维护的,但这里只包含一个链接,指向一个不存在的网页。"disk geometry and partition handling" 这一条中的 URL 仍然有效,但这些网页似乎已经有十多年没有更新了,可以看出最近 Zip 驱动器的 geometry 并没有什么进展。man page 这些手册页面倒是有积极维护的,但它们不在内核代码树中。Help needed
从目前的结果可以得出几个结论。一个是很多内核子系统现在并不是真的需要有人来维护,相反,其中一些可能需要被删除掉。另一个结论是,也许 MAINTAINERS 文件本身需要清理一下。但还有一个有价值的问题,那就是从这些数据是否可以看出是否有一些子系统从新的维护者中获益匪浅的呢?为了回答这个问题,我们又花费了一些本来可以用来挖矿的 CPU 时间,来寻找符合这些标准的子系统。- 没有列出维护者,或者所谓的维护者已经在该子系统中至少 6 个月没有活动了。
- 自 2020 年 1 月发布 5.5 内核以来,至少有 50 个提交跟这个子系统有关。
|
|
|
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/
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!