由于维护工作仍然繁重,Linux内核的长期支持将被削减

Due to the heavy maintenance workload, the long-term support for the Linux kernel will be reduced.

西班牙毕尔巴鄂:在欧洲开源峰会上,Linux内核开发者和《Linux周刊》执行编辑Jonathan Corbett向大家介绍了Linux内核的最新进展以及其未来发展方向。

以下是即将到来的一项重大改变:Linux内核的长期支持(LTS)将从六年缩短到两年。

目前,有六个LTS Linux内核–6.1、5.15、5.10、5.4、4.19和4.14。按照目前的进程,4.14内核将在2024年1月停止支持,并添加另一个内核。然而,从现在开始,当4.14内核和接下来的两个内核停止支持时,它们将不会被替换。

此外:想要一个优雅、用户友好的Windows替代品吗?试试带有KDE Plasma的Manjaro 23.0

为什么这样做?Corbett解释说:“保持这么长时间其实没有意义,因为人们不再使用它们。”我同意。尽管我相信仍然有一些人在生产Linux系统中使用4.14内核,但他们肯定不多。

Corbett还提到了另一个问题,这个问题比仅仅维护LTS更为严重,那就是Linux代码维护者的精疲力竭。这并不是说开发者是问题,最近几个Linux版本中,每个版本平均有超过2000名程序员参与其中,其中约有200名新开发者加入。然而,维护者–检查代码是否符合并正常工作的人–是另一回事。

维护者在执行工作时面临许多障碍。第一个障碍是,许多维护者没有被支付维护的报酬。他们在日常工作之外还要维护代码。此外,他们的时间需求越来越大–因为人手不足和模糊器用于查找错误。虽然模糊器有帮助,但它们也会发现太多的次要错误,每个错误都必须由维护者检查并解决。

结果如何?用Josef Bacik的话来说,Linux内核文件系统开发者和维护者:“维护者精疲力竭[因为]维护者无法扩展。”另一位资深Linux内核维护者Darrick Wong也说:“这是不能接受的。我们需要帮助。”

他们如何得到帮助?Corbett建议维护者与雇主讨论为维护工作支付报酬的问题。正如Wong所观察到的那样,“我的大多数朋友在小公司、非营利组织和地方政府工作。他们报告了与过度工作、普遍的恐惧和愤怒以及难以理解和适应新思想的问题。他们看到了他们所在组织缺乏收入和资源之间的直接联系。他们不明白为什么在我和我的同事所在的公司,我们都为能够获得数百亿美元的公司工作,却面临同样的问题。”

这是一个好问题。公司必须意识到,如果他们想继续享受Linux的好处,就需要回馈Linux。

此外:为什么没有更多的人使用桌面Linux?我有一个你可能不喜欢的理论

另一个相关问题是:Linux现在正在将Rust作为实验接受。虽然这在很多方面是好消息–Rust消除了Linux主要语言C容易受到的整个类别的错误–但这也给维护者带来了问题。毕竟,如果一个维护者已经在C语言上工作了30年,要求他们成为Rust专家是一个巨大的要求。

此外,Rust仍在不断发展。为了使Rust在Linux的深层次工作正常,需要许多Rust补丁。这也意味着你需要大量的粘合代码来使Rust和Linux良好地配合。

还有一些Linux内核开发者不喜欢Rust。正如其中一位开发者所说:“可能有一些设计良好、编写得很好的[Linux]部分多年来没有发生过内存安全问题。将这个作为对所有这些辛勤工作取得的改进的侮辱。”

即便如此,科贝特认为决定点即将到来,即Rust是否成为内核的主流部分。他指出,那一天将会来临,“当我们合并第一个用户依赖的功能时。”

此外:谷歌如何利用Rust减少Android的内存安全漏洞

那一天已经近在眼前:科贝特表示,Linux内核代码将迎来三个重要的新的基于Rust的添加。这些包括PuzzleFS的实现,一个读/写的Plan9文件系统服务器;以及将引起最大关注的苹果M1 GPU驱动程序。事实上,首个符合要求的Linux OpenGL ES 3.1驱动程序现在可用于苹果的M1和M2系列GPU,于2023年8月末发布。有了这样的工作进展,科贝特表示如果Rust没有永久地进入Linux,他会非常惊讶。

最近新闻中的另一个话题是Red Hat对其Red Hat Enterprise Linux (RHEL)许可证进行的调整导致了Oracle、SUSE和CIQ与Open Enterprise Linux Association (OpenELA)共同分支了RHEL。抛开导致这场争斗的商业和许可证复杂性,也存在着与Linux内核相关的问题。

这些问题围绕一个问题展开:您应该为您的Linux发行版使用哪个内核?有两个实际选择:1)运行最新的稳定内核,或者2)运行旧内核加上后期修复。而Red Hat和其他企业级Linux发行商往往采取的是后者。

后者也会导致供应商特定的内核。虽然这提供了稳定性,但也使这些发行版与社区支持疏远,并使其依赖特定的供应商。正是这个后果导致了AlmaLinux和Rocky Linux在Red Hat关闭CentOS并转而支持CentOS Stream之后,推出了自己的CentOS版本。这也引发了Red Hat和OpenELA之间的冲突。OpenELA希望的是一个使用RHEL旧修补内核的RHEL克隆版本。请继续关注更多发展,因为这场冲突仍在持续。

此外:我对一个适合初学者的伟大新Linux发行版的想法

另一方面,科贝特指出,Android“一直在努力推进这种通用内核映像,并基于稳定更新进行。这是因为他们发现这有助于提高Android的安全性。他们发现绝大多数安全问题都是在内核中披露的,甚至在被披露之前就在Android内核中修复了,因为它们已经在任何人知道它们实际上是安全相关漏洞之前就被纳入其中了。”

这是Linux内核开发人员非常清楚的另一个问题。正如科贝特解释的:

“内核开发的一个有趣方面是几乎任何东西都可能是一个安全漏洞。而且直到有人找到一种利用它的方式之前,你实际上并不知道它是安全漏洞。因此,很多修复措施都会被加入,但它们并没有标记为安全修复。这不是因为内核社区试图隐藏安全修复。我是说,有时候会有一点点的狡猾,这并不是我个人喜欢的。但大部分时候,确实是因为没有人知道这个漏洞实际上是安全漏洞。只有后来有人弄清楚了这一点。所以保护自己免受这类漏洞的唯一方法就是加入所有的修复措施。”

这就是为什么科贝特以及真正了解Linux的人建议如果您正在构建Linux发行版,始终包含所有补丁。对于较旧的内核(例如4.14),补丁数量可能高达26,799个提交。但是,如果您尝试选择使用哪些补丁,您肯定会给安全漏洞留下后门。

最后,科贝特指出,曾任Sun公司长期CEO的Scott McNealy曾说过:“开源就像小狗一样是免费的。” McNealy有一定道理。使用开源和Linux很容易。但为其提供培训以避免在厨房地板上搞砸需要付出更多努力。