LWN:6.1内核开发数据(以及更多)!

关注了就能看到更多这么棒的文章哦~

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 版本的开发者是:

7d3669e772cc1de45c60e464e21a217b.png

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 最多的开发者是:

6fed3b1bf7d9cb15909d43d699034200.png

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。

这次最活跃的雇主是:

f7d437f525159849b327b4cb38c8a3fd.png

华为显然在这个开发周期中非常繁忙,有 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 万行。在这整个期间,最活跃的开发者是:

ebfa0c233ba137834cc5df8aaebca1a4.png

在这段时间里,最多产的开发者还是 Krzysztof Kozlowski,他在这个更长周期的开发周期里每天都贡献了三个以上的 patch,但仍然只占总数的 1.3%。在 "lines changed"一栏中,排名前七位的贡献者是由于增加了 amdgpu 寄存器定义而得到的;他们新增了超过一百万行代码,这在内核的总增长中占了很大一部分。

这种影响也可以从雇主的数据中看到:

8f8e9bc326ba434133d50bf1c1ccc31e.png

雇主的数据在每个周期中没有多少变化,所以每一年的数据也是没什么差异,这并不令人意外。AMD 在 "lines changed" 一栏中同样表现出来定期将机器生成的寄存器定义塞到内核的结果。

最后,另一个值得关注的指标是 non-author signoff 数据:对别人写的 patch 加上 Signed-off-by 标签。这通常发生在维护者接受一个 patch,并将其添加到他们的仓库,最终发送到 upstream 的时候。因此,这些 tag 可以揭示出谁在内核社区中做维护者的工作:

dadbcfeb9085a93f443616a1ef0dda25.png

最活跃的维护者每天都要处理几十个 patch,居然还能保持理智。随着时间的推移,雇佣这些维护者的公司名单发生了一些变化;例如,Linaro 已经在一段时间内保持上升了。但是,支持维护者这个角色的公司仍然相对较少;超过一半的 patch 被合并到 mainline 内核中的过程只经过了五家公司中的开发人员之手。公司改善其对内核开发的支持的最好方法之一是给他们的开发人员提供时间和鼓励,让他们成为维护者。

不过,总的来说,内核的开发过程仍然在快速推进,定期发布版本,每天都有一些新的开发者加入社区。总的来说,这个社区似乎处于良好的健康状态,并在继续处理其快速发展所带来的挑战。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

format,png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 内核是一个开源的 Unix-like 操作系统内核,它是由 Linus Torvalds 在 1991 年开发的。Linux 内核以其高度可定制性、可移植性和稳定性而闻名。C语言是 Linux 内核开发的主要语言。 要进行 Linux 内核开发,你需要掌握 C 语言编程技能和 Linux 操作系统的基本知识。以下是一些步骤和资源,可以帮助你开始学习 Linux 内核开发: 1. 了解 Linux 内核结构和组成部分:Linux 内核是由许多不同的组件组成的,包括进程管理、内存管理、文件系统、设备驱动程序等等。了解这些组件如何协同工作,并掌握内核中各种数据结构和函数的基本原理和用法非常重要。 2. 学习 C 语言编程:C 语言是 Linux 内核开发的主要语言。掌握 C 语言编程技能是必不可少的。 3. 阅读内核源代码:阅读内核源代码是学习 Linux 内核开发的最佳方式。你可以通过下载内核源代码,然后仔细阅读和理解其中的各个模块。 4. 学习内核调试技巧:当你进行内核开发时,调试代码是不可避免的。学习内核调试技巧对于解决问题非常重要。 5. 加入内核社区:加入内核社区,与其他开发人员交流和分享经验,可以加速你的学习和进步。 以下是一些学习资源,可以帮助你开始学习 Linux 内核开发: 1. Linux 内核源代码:你可以通过访问 Linux 内核官方网站(https://www.kernel.org/)来下载内核源代码。 2. The Linux Kernel Development Community: 这是 Linux 内核开发社区的官方网站,提供了丰富的资源和工具,帮助你深入了解 Linux 内核开发。 3. Linux 内核编程指南:这是一本非常有用的 Linux 内核开发指南,可以帮助你学习 Linux 内核的基本原理和编程技巧。 4. LWN.net: 这是一个 Linux 开发者新闻网站,提供了最新的 Linux 内核开发新闻、技巧和策略。 5. Linux 内核邮件列表:这是 Linux 内核开发者的主要交流平台之一,你可以在这里与其他开发人员交流和分享经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值