关注了就能看到更多这么棒的文章哦~
Development statistics for the 6.1 kernel (and beyond)
By Jonathan Corbet
December 12, 2022
DeepL assisted translation
https://lwn.net/Articles/915435/
6.1 内核于 12 月 11 日发布;到这次发布时,已经有 13942 个 non-merge changeset 合入 mainline,使内核增加了 412000 行代码。因此,这不是有史以来最繁忙的开发周期,但也不是最悠闲的一个,而且这些改动包含了许多根本性的改变。这个版本也将是 2022 年的长期支持的内核。请继续阅读,看看 6.1 中的工作都有哪些。
6.1 中的工作是由 2043 名开发者贡献的,其中 303 人在这个版本中首次对内核做出了贡献。最活跃的 6.1 版本的开发者是:
Krzysztof Kozlowski 在 6.1 中贡献的 changeset 比其他开发者都要多;这项工作几乎全部都是 devicetree 的改动。Yang Yingliang 在 device-driver 子系统中做了大量的清理工作。Andy Shevchenko 对各种驱动程序进行了广泛的改进,Johan Hovold 贡献了驱动程序的 fix 和 devicetree 的修改,而 Zhengchao Shao 在网络子系统中也很活跃。
"changed lines" 结果则有很大差异。Liam Howlett 在 6.1 中只贡献了 12 59 个 patch,但其中有些非常大:他们在内存管理子系统中增加了 maple tree 数据结构以及初始的用例。Frank Min 的三个 patch 增加了一套必不可少的 amdgpu 寄存器定义。Ping-Ke Shih 在 Realtek rtw89 无线网络适配器上进行了改动,Ian Rogers 为 perf 子系统增加了一套 Intel 的 event 定义,Stephen Hemminger 删除了对 DECnet 协议的支持。
这次 test 和 review 最多的开发者是:
Daniel Wheeler 出现在 test 栏的顶端,这在进一阶段几乎是必然的事情;他继续在开发周期中以每天两到三个 patch 的速度来测试他在 AMD 的同事的 patch。而 Philipp Hortmann 则测试了 Realtek 驱动在 staging tree 中的 patch。Yu Zhao 的测试主要位于在各种内存管理的改动中,大多与 maple tree 的工作有关。在 review 方面,Andy Shevchenko 审查了整个内核树中各处的 patch,而 Krzysztof Kozlowski 主要关注 device-tree 的改动,Hans de Goede 则 review 了很多的平台驱动的 patch。
这次最活跃的雇主是:
华为显然在这个开发周期中非常繁忙,有 117 名开发者对整个内核中各处进行了修改。除此之外,这些结果基本上跟典型的开发周期没有多少差异。
Looking back
内核的开发周期完成从而得到下一个主要版本之前,都要花费 9 到 10 周。然而,在此基础上还有另一个固定周期,那就是每年的最后一个版本会得到长期支持(long-term support),时间长达 6 年。这些内核最终会出现在大多数产品和发行版中;从这个意义上来说,也许 LTS 周期才是真正的内核发布周期,而其他版本只是中间的一些比较稳定的位置。
除非有极其令人惊讶的事情发生,否则 6.1 将是 2022 年的最后一个内核版本,因此将成为下一个 LTS 内核。鉴于 6.1 是长达一年的 LTS 开发周期的产物,那么应该看一下这整个开发周期了。上一个 LTS 内核,5.15,是在 2021 年 10 月 31 日发布的。从那时起,内核社区已经合并了来自 5034 名开发者的 86,660 个 patch(其中 1741 人是首次贡献者)代码净增长超过 370 万行。在这整个期间,最活跃的开发者是:
在这段时间里,最多产的开发者还是 Krzysztof Kozlowski,他在这个更长周期的开发周期里每天都贡献了三个以上的 patch,但仍然只占总数的 1.3%。在 "lines changed"一栏中,排名前七位的贡献者是由于增加了 amdgpu 寄存器定义而得到的;他们新增了超过一百万行代码,这在内核的总增长中占了很大一部分。
这种影响也可以从雇主的数据中看到:
雇主的数据在每个周期中没有多少变化,所以每一年的数据也是没什么差异,这并不令人意外。AMD 在 "lines changed" 一栏中同样表现出来定期将机器生成的寄存器定义塞到内核的结果。
最后,另一个值得关注的指标是 non-author signoff 数据:对别人写的 patch 加上 Signed-off-by 标签。这通常发生在维护者接受一个 patch,并将其添加到他们的仓库,最终发送到 upstream 的时候。因此,这些 tag 可以揭示出谁在内核社区中做维护者的工作:
最活跃的维护者每天都要处理几十个 patch,居然还能保持理智。随着时间的推移,雇佣这些维护者的公司名单发生了一些变化;例如,Linaro 已经在一段时间内保持上升了。但是,支持维护者这个角色的公司仍然相对较少;超过一半的 patch 被合并到 mainline 内核中的过程只经过了五家公司中的开发人员之手。公司改善其对内核开发的支持的最好方法之一是给他们的开发人员提供时间和鼓励,让他们成为维护者。
不过,总的来说,内核的开发过程仍然在快速推进,定期发布版本,每天都有一些新的开发者加入社区。总的来说,这个社区似乎处于良好的健康状态,并在继续处理其快速发展所带来的挑战。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~