Linux|29 年过百万次 commit,Linux 内核何以发展至今?( 二 )
随着 DCO 的标准化使用,现在几乎所有的 commit 都有一个 Signed-off-by 标签 。通常每个 commit 平均会有两个该标签,能够反映代码在合并之前的维护者层次结构,有助于追溯补丁进入代码的路径 。
文章图片
Signed-off-by 之外,Linux 内核还增加了表示审查的标签(Reviewed-by 和 Acked-by) 。审查对内核代码的质量来说相当重要,标签的加入令这个过程更加清晰,有越来越多的维护者选择使用标签来表示已审查 。
在审查 git 仓库时,Linux 基金会发现了一些比较有趣的标签,像是 "Enithusiastically-ack'd by"、"Thanksto"、"Based-on-the-Original-screenplay-by"、"Catched-by-andrightfully-ranted-at-by" 等等 。但这些标签并没有像上述两类一样被广泛采用 。
行之有效的发布模式
Linux 内核的发布模式已渐趋成熟,现在基本固定为 Prepatch(或"-rc")、Mainline、Stable 和 Long Term Stable 四类版本 。
文章图片
社区曾对发布周期进行了大量的探讨和实验,并逐渐找到了行之有效的发布模式,发布周期也几乎完全可预测——每个发布周期由时长两周的“合并窗口”开始,这时,新功能经适当的 review 后可被纳入接下来要发布的 git 仓库 。一旦它被标记为 rc1,那么集成测试、调试和稳定化的周期就开始了 。然后每周对 rc 候选版本进行标记,直到达到目标质量和稳定性 。发布后,随着下一个合并窗口的到来,这个周期又开始循环 。
内核的主线树由 Linus Torvalds 维护,这棵树引入了所有新功能 。新的主线(Mainline)内核每 2 到 3 个月发布一次 。但这样的发布节奏较慢,难以满足大多数用户的需求 。因此,从 2005 年开始,每周发行一次稳定版(Stable)内核 。
用户还想要受维护时间更长的版本,于是 2006 年发布的 2.6.16 版本成为第一个长期支持(LTS)版本内核 。此后每年都有一个新的 LTS 内核,该内核将由内核社区维护至少 2 年(从 4.4 版本开始延长至 6 年) 。Linux 内核官网公布了所有现存 LTS 版本的发行日期、EOL 日期及维护者(目前 6 个 LTS 版本都由 Greg Kroah-Hartman 和 Sasha Levin 这两人维护) 。
文章图片
贡献者:长尾的力量不可忽视
不少组织都在为 Linux 内核做贡献,贡献者排行榜前列几乎都被 Intel、Red Hat、IBM、SUSE、Google、Samsung、AMD、Oracle、华为和 ARM 这样的大企业占据 。
从 2007 年到 2019 年,Linux 内核共接受了来自 1,730 个组织的 780,048 次 commit 。排在最前面的 20 个组织占了 68% 的 commit 量 。
文章图片
在过去十年中,每年有超过 400 个组织为 Linux 内核做出贡献 。其中相当一部分可能只有过一次 commit 。从每年的 commit 比例来看,其中 1/3 贡献来自神秘的长尾 。也就是图中最上面浅灰色 “Others” 的部分 。
Linux 基金会指出,企业的贡献会根据业务需求和战略的不同而有所变化 。前 20 名贡献者中,有些是 2007 年之后才加入,有些在此前做过很多贡献的公司,被收购后便不再继续参与 。贡献者的多样性为内核发展赋予了一些弹性 。
除了组织贡献者,Linux 内核社区成员也致力于增加个人贡献者的多样性,他们通常愿意花费自己的时间来指导新的开发者 。Linux 基金会有一个 Kernel Mentorship(LKMP)项目,用来帮助新加入开源的开发者进行实验、学习,并为开源社区做出贡献 。
内核社区的共同目标:高质量、可靠性
报告的最后,Linux 基金会指出,内核社区的重点是保持一个共同的目标,即拥有一个没有回归的高质量操作系统,愿意根据需要创建新的流程和工具,以帮助提高效率,并继续提升 Linux 内核的可靠性 。
内核测试现在也引入了一些自动化测试工具:静态分析工具如 sparse(语义解析器)、smatch(源匹配器)和cocicheck(语义补丁,测试特定的 bug),由 0-day 和 Hulk Robot 这样的自动测试机器人在 Linux 内核树上运行 。机器人在发现和跟踪 bug 上起到不少作用 。这些测试工具能够帮助开发人员跟上上游内核的速率变化,并继续改进内核版本,提升其稳定性 。
Linux 内核如今被应用于诸多领域,基金会认为,改进基础设施,进行正确的安全分析,是接下来要应对的重大挑战之一 。目前 Linux 内核已拥有一个很好的基础,它应当继续引领创造最佳实践,以促进整个开源软件行业的发展 。
推荐阅读
- 政略战略战术|仅仅10天,我国购美国百万吨大豆!为什么美国大豆这么受欢迎?
- 国民记者|刘翔放不下的21岁:2004年过去了,我依然很想她
- 今日趣闻|大衣哥儿子儿媳回门,开豪车穿名牌被批炫富,女方父亲更是百万豪车相迎
- 趣观历史|他舍弃百万薪资,不顾亲人阻拦步入佛门,现独居深山父母拒绝相认
- 四川农村日报|我省今春首次百万亩撂荒地复垦复耕,秋收表现如何?
- 教育|大数据解读上海教博会:总浏览量超百万,主要观众为学生群体
- 务农|旭日阳刚出道10年,为何刘刚能年入百万,王旭却只能回家务农
- 人是为|60岁执意生下双胞胎,9年过后却后悔,曾经的幸福已被现实打败
- 揭秘大娱圈|“旭日阳刚”组合被汪峰禁唱十年后:一个年入百万,一个回家务农
- 摇到|男子上牌摇到“5个8”,原以为百万到手,5秒后却悲剧了
