除了RUST,还有国产架构:Linux6.1内核稳定版首发布!

译文 精选
系统 Linux
每个Linux内核版本发布之后都会留两周时间,贡献者在此期间提交他们希望在下一个版本中看到的代码。Linux 6.1的发布意味着窗口将在12月26日,即圣诞节次日关闭。而且Torvalds透露,他将在假期之前旅行,因此准备时间会比平常更少。

​编译丨千山

12月11日,Linus Torvalds发布了Linux6.1内核稳定版,并迎来了一个工作量巨大如地狱般的Linux6.2合并窗口。目前在内核官网已经可以找到相应文件。

据悉,每个Linux内核版本发布之后都会留两周时间,贡献者在此期间提交他们希望在下一个版本中看到的代码。Linux 6.1的发布意味着窗口将在12月26日,即圣诞节次日关闭。而且Torvalds透露,他将在假期之前旅行,因此准备时间会比平常更少。

图片

来源:互联网

1、重要升级:初始的Rust语言支持

值得注意的是,在最新版本中,Linux6.1进行的一个重要升级在于初始的Rust语言支持。尽管这一功能仍在构建中,不过这也意味着,在可见的将来,Linux的历史将翻开崭新的一页——除了C之外,开发人员将第一次能够使用另一种语言Rust进行内核开发。

在近几年的讨论中,是否在Linux内核中引入Rust多次成为议题。不过包括 Torvalds在内的一众关键人物均对此表示了期待。

早在2019年,Alex Gaynor和Geoffrey Thomas就曾于Linux Security Summit安全峰会上进行了演讲。他们指出,在Android和Ubuntu中,约有三分之二的内核漏洞被分配到CVE中,这些漏洞都是来自于内存安全问题。原则上,Rust可以通过其type system和borrow checker所提供的更安全的API来完全避免这类错误。简言之,Rust比C更安全。

谷歌Android团队的Wedson Almeida Filho也曾公开表示:“我们觉得Rust现在已经准备好加入C语言,作为实现内核的实用语言。它可以帮助我们减少特权代码中潜在错误和安全漏洞的数量,同时很好地与核心内核配合并保留其性能特征。”

当前,谷歌在Android中广泛使用Rust。在那里,“目标不是将现有的C/C++转换为Rust,而是随着时间的推移,将新代码的开发转移到内存安全语言”。这一言论也逐渐在实践中得到论证。

“随着进入Android的新内存不安全代码的数量减少,内存安全漏洞的数量也在减少。从2019年到2022年,相关漏洞占比已从Android总漏洞的76%下降到35%。2022年,在Android漏洞排行中,内存安全漏洞第一次不再是主因。”

固然某些东西更安全,但并不意味着每个人都想采用它。毕竟,开发人员已经花了近30年的时间在C语言中开发Linux,开发人员都担心将Rust引入Linux所要花费的大量工作。举个例子,为了让Rust Linux NVMe驱动程序工作,需要70个非标准的Rust扩展。

对此,Torvalds在今年早些时候也做出了回应。“请不要担心。Rust不会在这十年的任何时候取代内核中的C。”

正如Rust on Linux的主要开发者Miguel Ojeda所提到的,“内核是一个庞大的项目,有很多利益相关者。从一开始,我们就很明确,在内核中添加第二种‘主’语言将面临技术和管理挑战。”他解释说:“你将在Linux内核中看到的第一个Rust工作将是‘子系统的 Rust抽象以及编写驱动程序和其他模块’。”

目前来说,Linux 6.1对于Rust的支持仍处于初级阶段,没有任何面向最终用户的Rust功能。可以说,Rust将正式使Linux成为一种双语言操作系统,但这种演化进程是缓慢的,对内核开发人员来说这种改变并不会造成极大的不适感。

2、新功能:添加MGLRU、进一步加大对国产LoongArch CPU架构的支持

除了初始的Rust语言支持,Linux 6.1内核的另一个新增功能是MGLRU,即Multi-Generational Least-Recently-Used。据悉,它可以优化页面回收机制,并在重内存负载情况下提高性能,不过默认情况下不会启用。

其他方面,Linux 6.1还集成了对Btrfs文件系统性能的一系列改进、新的AMD平台管理框架、各种开源图形驱动程序改进、Kernel Memory Sanitizer、Maple Tree数据结构的引入以及许多其他硬件驱动程序工作。

值得一提的是,新版本还进一步提升了对国产LoongArch架构CPU的支持。

LoongArch是龙芯中科推出的自研处理器架构,该架构基于龙芯基础指令集系统,并有向量指令、虚拟化、二进制翻译等扩展部分。此次Linux 6.1加大支持能够从底层提升基于Linux的国产发行版系统对于国产硬件的支持与适配性。

3、是否是LTS版本,仍有待观望

此外,在本次版本更新的公告中并没有提及Linux 6.1是否是LTS版本。据Linux内核维护者Greg Kroah-Hartman描述,通常来说,每年的最后一个内核版本会成为Linux内核的LTS。如今Linux 6.1赶在年尾发布,惯例来说它就是LTS版本。

但也有人提出异议。Carl Dasantas谈到,因为Linux 6.1引入了Rust,目前很多社区依旧对Rust持保留态度,这种犹豫往往会带来变数。相较来说,Linux 6.0或5.19更合适作为LTS版本。

参考链接:

https://www.theregister.com/2022/12/11/linux_6_1/

https://www.theregister.com/2022/12/09/linux_kernel_61_column/

https://new.qq.com/rain/a/20221212A03RAM00

责任编辑:武晓燕 来源: 51CTO技术栈
相关推荐

2009-12-04 09:55:55

Linux内核Linux

2011-04-15 10:37:27

2010-10-21 09:08:56

2009-06-11 11:08:29

LinuxKernel内核

2021-10-23 17:12:34

MX LinuxLinux

2011-05-27 15:28:11

红帽Linux

2022-12-13 11:34:53

2010-04-27 09:07:08

2009-03-25 16:29:26

LinuxKernel 2.6.稳定版

2013-08-21 10:18:34

Chrome 29

2010-08-04 09:53:59

Linux内核

2018-10-16 09:55:24

Linux发行版内核

2013-12-13 13:32:50

FirefoxFirefox 26

2013-05-22 15:02:13

Zend Framew

2009-06-11 14:41:40

LinuxKernel发布

2009-03-24 14:45:16

LinuxKernel稳定版2.6.29

2011-12-05 09:39:57

Node.js

2022-12-05 13:29:38

4MLinux编程语言Linux

2012-07-12 10:15:15

Node.js

2012-08-01 13:35:58

Chrome 21
点赞
收藏

51CTO技术栈公众号