查看原文
其他

Linux内核新动作!安卓被卡脖子!

51CTO技术栈 2023-09-23

撰稿丨诺亚

         

众所周知,Linux内核很复杂。除了普通的稳定内核版本,还会有 LTS(长期支持)版本。通常,每年都有一个 LTS 内核版本,其支持期要比普通版本长得多。

         

最近,关于Linux内核的LTS的支持期限有了新的动向。

         

在日前召开的欧洲开源峰会上,Linux Weekly News执行编辑Jonathan Corbet宣布,Linux内核的LTS 周期将从原先的六年缩短至两年。


6年变2年,为何要缩短LTS周期

         

当然这一调整肯定不是说变就变。目前Linux内核有六个LTS版本,分别是 6.1、5.15、5.10、5.4、4.19 和 4.14。这些版本仍在遵循当前既定的生命周期结束时间表。

                  

         

对于新的长期内核来说,只会得到两年的预计EOL(End of Life,生命周期结束)。

         

至于为何缩短这一周期,Corbet提到了两点原因。

         

其一,使用旧版本的Linux内核的人并不是很多。“维护(旧内核)那么长时间真的没有意义,因为人们没有使用它们。”

         

其二,维护者的工作量过大。当前Linux 内核社区有6个LTS 支持版本,但维护负责人只有Greg Kroah-Hartman和Sasha Levin两位,在支持力量上实在有些力不从心。

         

在Corbet看来,维护人员的工作不仅是无偿的,而且由于采用Fuzzing(模糊测试)技术,固然很有成效,但有时揭露出的小问题需要耗费维护人员更多精力。

         

纵然这一调整会引起部分人的不满,但在Corbet看来是有必要的。另外,他建议,维护人员或许可以考虑与雇主沟通,把Linux内核维护工作转为付费工作。

         

此外,Corbet还提到,LTS内核的维护“可能需要从使用Linux中受益的诸多公司获得更多支持”。这些公司需要意识到,他们必须对Linux有所回馈。

         

事实上,所谓两年的支持期限也是有弹性的。

         

根据发布页面的FAQ,“每个新的长期内核通常只有一个2年的预计EOL,但如果整个行业有足够的兴趣来帮助支持它更长的时间,可以进一步延长。”也就是说,可以同意某个LTS 内核的维护时间超过两年,但需要根据必要性、所获得的支持以及参与人员来评估达成。


反复横跳:Android或成为重灾区

         

对LTS版本进行维护是一项耗时耗力的工作,这次变革很大程度上是为了给不堪重负的维护人员“减负”,但一些依赖于旧版本Linux内核的系统可能会因此承担一定的风险,比如无法获得关键更新。

         

在有可能受到影响的项目中,Android肯定是“重灾区”。两年对于PC来说或许是一个很合宜的支持窗口,但对于Android来说,远远不够。

         

最初的LTS扩展主要是针对Android和物联网设备开发的,由谷歌高级工程师Iliyan Malchev在Android Linux演讲中宣布。问题在于,在PC上,两年只代表内核更新之间的时间间隔。但嵌入式设备倾向于不更新内核,所以两年时间需要覆盖整个开发周期和消费者支持窗口,显然这不够长。

         

在这一背景下,Linux内核的长期支持版在维护期限上经历了“反复横跳”。一开始,LTS版本的维护期就是两年。

         

直到2017年9月,在Linaro Connect 大会上,Malchev宣布,Linux内核团队已经同意将Linux的LTS版本的维护期从两年延长到六年。

         

“所有的 Android 设备都是基于LTS内核的,LTS以前的维护期只有两年,如果你幸运的话,可能会赶上一年的LTS支持,但如果不快速支持的话,它可能已经结束了。”

         

Android内核的开发过程是一个完整的分支:首先,谷歌从一个新的Linux LTS中分离出来,形成“Android Common”内核,然后将其发送给像高通这样的SoC供应商,并为每种型号的SoC进行分支,然后将该分支发送给设备制造商,后者再为每种型号的设备进行分支。这需要一段时间。

         

由于只有两年的Linux内核支持(如图中蓝色条),在Android设备开发完成并准备发布时,内核的支持窗口几乎已经结束

         

在谷歌的设想中,手机需要两年的时间才能开发出来,内核在工程的开始阶段就被锁定了。当手机最终发布面市时,LTS内核的支持期就差不多到时限了,也就是说客户在其设备的生命周期内使用的是过时的内核。所以两年时间实在不足以覆盖从开发到消费的全生命周期。但如果延长到六年的话,就为设备开发和产品的所有权生命周期提供了充足的支持时间。

         

         

不过,LTS内核的维护毕竟是一项艰巨的工程。因此,彼时就有人强调,这一举措并不意味着所有未来的 Linux LTS版本都将有六年的支持期限。果不其然,到了2023年的当下,Linux内核的LTS周期又从原先的六年恢复至两年。


结语


Linux内核是系统的底座。对于所有的上层技术而言,内核是基石,是支柱。内核的性能、稳定性乃至技术创新方向,都会对整个Linux生态产生重要影响。这就是为什么要不遗余力去重视Linux内核的维护。

         

问题的症结在于,向后移植是一项繁重的工作,将维护负担交给无薪志愿者,倦怠在所难免。所以有这样一种声音:向后移植的负荷应该让从长达6年的服务中获利的公司承担才合理。

         

正如一位前SUSE员工所说的那样:这不是性感的工作!客户如果需要稳定性和长期支持,可以考虑选择RedHat或SUSE这样的公司,它们的重点是为这些组件提供10年以上的维护。

         

需要正视的是,对于从Linux受益甚多的公司,主动承担更多Linux LTS 支持责无旁贷。         

         

参考链接:

https://arstechnica.com/gadgets/2023/09/linux-gives-up-on-6-year-lts-thats-fine-for-pcs-bad-for-android/

https://kernel.org/category/releases.html

https://linux.cn/article-16211-1.html

——好文推荐——

指南来了!微调GPT3.5,定制大模型!

杀死Node.js!全新JS运行时“快到飞起”!

         

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存