由于维护仍然面临压力,对 Linux 内核的长期支持将被削减
开源峰会提供了有关 Linux 内核的新功能及其未来发展的最新信息。
西班牙毕尔巴鄂:在欧洲开源峰会上,Linux 内核开发人员兼 Linux Weekly News 执行编辑 Jonathan Corbet 向大家介绍了 Linux 内核的新功能以及未来的发展方向。
即将发生的一项重大变化是:Linux 内核的长期支持 (LTS) 从六年缩短到两年。
目前,有六个 LTS Linux 内核:6.1、5.15、5.10、5.4、4.19 和 4.14。根据迄今为止的流程,4.14 将于 2024 年 1 月推出,并添加另一个内核。不过,展望未来,当 4.14 内核和接下来的两个内核发布时,它们将不会被替换。
为什么?很简单,科贝特解释道:“维持这么长时间确实没有意义,因为人们不再使用它们。”我同意。虽然我确信有人仍在生产 Linux 系统中运行 4.14,但这样的人不会很多。
根据 Corbet 的说法,另一个原因,也是一个比简单维护 LTS 更大的问题,是 Linux 代码维护人员正在精疲力竭。这并不是说开发商有问题。最近几个 Linux 版本平均有超过 2,000 名程序员参与每个版本的开发,其中包括大约 200 名新加入的开发人员。然而,维护人员——检查代码以查看其是否合适并正常工作的人——是另一回事。
维护人员在完成工作时面临着许多障碍。障碍一:许多维护者没有得到维护费用。他们除了日常工作外还维护代码。最重要的是,由于人手不足以及使用模糊器来查找错误,他们面临着越来越多的时间需求。虽然模糊器很有用,但它们也发现了太多的小错误,每个错误都必须由维护人员检查然后消除。
结果?引用 Linux 内核文件系统开发人员和维护人员 Josef Bacik 的话:“维护人员正在精疲力竭,因为维护人员无法扩展。”另一位高级 Linux 内核维护者 Darrick Wong 补充道:“这无法忍受。我们需要帮助。”
他们如何获得帮助?好吧,一方面,Corbet 建议维护人员与雇主讨论向他们支付维护人员工作费用的问题。正如黄观察到的那样,“我的大多数朋友都在小公司、非营利组织和地方政府工作。他们报告了同样的问题,即过度劳累、普遍的恐惧和愤怒,并且很难理解和适应我在这里观察到的新想法。他们看到“他们的组织缺乏收入和资源之间存在直接联系。他们不明白为什么同样的事情会发生在我和我工作场所附近的同事身上,因为我们都为清算数千亿美元的公司工作。”
这是个好问题。公司必须认识到,如果他们想继续从 Linux 中获益,就需要回馈 Linux。
相关问题:Linux 现在正在将 Rust 作为一项实验。虽然这在很多方面都是个好消息——Rust 消除了 Linux 主要语言 C 容易出现的一整类错误——但它也给维护人员带来了问题。毕竟,如果维护者在 C 领域工作了 30 年,要求他们成为 Rust 专家是一个很大的要求。
此外,Rust 仍在不断发展。需要许多 Rust 补丁才能使该语言在 Linux 的深层正常工作。这也意味着您需要大量的粘合代码才能使 Rust 和 Linux 很好地协同工作。
还有一些 Linux 内核开发人员不喜欢 Rust。正如一位人士所说,“可能有一些精心设计和编写的 [Linux] 部件多年来没有遇到内存安全问题。将其描述为对那些辛勤工作的人们所取得的成果的改进是一种侮辱。 ”
即便如此,Corbet 相信决策点——Rust 是否成为内核的主流部分——即将到来。他指出,这一天将会到来,“当我们合并用户依赖的第一个功能时。”
Corbet 说,那一天已经临近了:Linux 内核代码中三个重要的基于 Rust 的新添加即将到来。这些是 PuzzleFS 的实现,一个读/写 Plan9 文件系统服务器;还有——将成为最大头条新闻的——Apple M1 GPU 驱动程序。事实上,第一个符合要求的 Linux OpenGL ES 3.1 驱动程序现已可用于 Apple 的 M1 和 M2 系列 GPU,并于 2023 年 8 月下旬发布。随着这样的工作顺利进行,如果 Rust 不能永久实现这一目标,Corbett 会感到非常惊讶进入Linux。
最近新闻中的另一个主题是红帽对其红帽企业 Linux (RHEL) 许可证的调整如何导致 Oracle、SUSE 和 CIQ 与开放企业 Linux 协会 (OpenELA) 分叉 RHEL。撇开导致这场斗争的业务和许可复杂性不谈,还有 Linux 内核问题。
这些担忧围绕着这样一个问题:您的 Linux 发行版应该使用哪个内核?有两个真正的选择:1) 运行最新的稳定内核或 2) 运行旧内核加上向后移植的修复程序。后者是红帽和其他企业 Linux 发行商倾向于做的事情。
后者还会产生特定于供应商的内核。虽然这提供了稳定性,但它使这些发行版远离了社区支持,并使它们依赖于特定的供应商。正是最后一个后果——在 Red Hat 关闭 CentOS 以支持 CentOS Stream 之后,AlmaLinux 和 Rocky Linux 首先开始对 CentOS(Red Hat 的免费 RHEL 克隆)进行自己的尝试——引发了 Red Hat 和 OpenELA 之间的争论。 OpenELA 想要的是 RHEL 克隆,它使用 RHEL 较旧的修补内核。随着这场冲突的持续激烈,请继续关注更多进展。
另一方面,Corbet 指出,Android“一直在非常努力地推动这种通用内核映像的发展,并一直基于稳定的更新。这是因为他们发现这有助于提高 Android 的安全性。他们发现绝大多数安全性问题在内核中被披露,甚至在 Android 内核被披露之前就被修复了,因为在任何人知道它们实际上是与安全相关的错误之前,它们就已经被合并了。”
这是 Linux 内核开发人员痛苦地意识到的另一个问题。正如科贝特解释的那样:
“内核开发的一个有趣的方面是,几乎任何东西都可能成为安全漏洞。直到有人找到一种以某种方式利用它的方法之前,你并不真正知道这一点。因此,进行了大量的修复,并且它们没有标记为安全修复程序。并不是因为内核社区试图隐藏安全修复程序。我的意思是,有时会出现一些我个人不喜欢的偷偷摸摸的情况。但大多数时候,确实存在只是没有人知道这个错误是一个安全错误。直到后来才有人发现这一点。因此,保护自己免受此类错误影响的唯一方法就是进行所有修复”
这就是为什么 Corbet 以及任何真正了解 Linux 的人都建议,如果您正在构建 Linux 发行版,请始终包含所有补丁。对于较旧的内核(例如 4.14),最多可以有 26,799 次提交。但是,如果您尝试挑选要使用的补丁,那么您肯定会打开安全漏洞的大门。
最后,Corbet 指出,Sun 前长期首席执行官 Scott McNealy 曾经说过:“开源是免费的,就像小狗是免费的一样。”麦克尼利说得有道理。使用开源和 Linux 很容易。支付培训费用并不需要把厨房地板搞得一团糟,那样更难。
。
