编译器丨千山12月11日,LinusTorvalds发布了稳定版Linux6.1内核,迎来了地狱般的Linux6.2合并窗口。目前可以在内核官网找到对应的文件。据悉,每次Linux内核发布后都会有两周的时间,在此期间贡献者提交他们希望在下一个版本中看到的代码。Linux6.1的发布意味着窗口将在圣诞节后的12月26日关闭。Torvalds透露他将在假期前出差,因此准备时间会比平时少。来源:互联网1.重要升级:初始的Rust语言支持值得注意的是,在最新版本中,Linux6.1的一个重要升级在于初始的Rust语言支持。虽然这个功能还在建设中,但这也意味着在可预见的未来,Linux的历史将翻开新的一页——开发者将首次能够使用C语言之外的另一种语言Rust。用于内核开发。在近几年的讨论中,是否将Rust引入Linux内核多次成为一个话题。但包括Torvalds在内的一群关键人物表达了他们的期望。时间回到2019年,AlexGaynor和GeoffreyThomas在Linux安全峰会上发表了演讲。他们指出,在Android和Ubuntu中分配给CVE的内核漏洞中,约有三分之二源于内存安全问题。原则上,Rust可以完全通过其类型系统和借用检查器提供的更安全的API来避免此类错误。简而言之,Rust比C更安全。谷歌Android团队的WedsonAlmeidaFilho也曾公开表示:“我们觉得Rust现在已经准备好加入C语言,作为实现内核的实用语言。它可以帮助我们减少数量“特权代码中的潜在错误和安全漏洞,同时它非常好。它与核心内核紧密合作并保留其性能特征。”目前,Google在Android中广泛使用Rust,“目标不是将现有的C/C++转换为Rust,而是随着时间的推移将新代码的开发转移到内存安全的语言”。实践。”随着进入Android的新内存不安全代码的数量减少,内存安全漏洞的数量也随之减少。从2019年到2022年,相关漏洞占Android总漏洞的比例从76%下降到35%。2022年,Android漏洞排行榜中,内存安全漏洞将首次不再是主因。“仅仅因为更安全的东西并不意味着每个人都想采用它。毕竟,开发人员已经用C语言开发Linux近30年,开发人员担心将Rust引入Linux的成本。很多工作。例如,需要70个非标准Rust扩展才能使RustLinuxNVMe驱动程序正常工作。对此,Torvalds在今年早些时候也做出了回应。“别担心。在这十年中,Rust不会在内核中的任何时候取代C。“正如Linux上Rust的首席开发人员MiguelOjeda所提到的,“内核是一个涉及许多利益相关者的庞大项目。从一开始,我们就很清楚向内核添加第二种“主要”语言会带来技术和管理方面的挑战。“你将在Linux内核中看到的第一个Rust工作将是‘子系统的Rust抽象以及编写驱动程序和其他模块’,”他解释道。“目前,Linux6.1对Rust的支持还处于初级阶段,没有任何面向最终用户的Rust特性。可以说,Rust将正式让Linux成为双语言操作系统,但这个进化过程是缓慢的,对于内核2.新特性:新增MGLRU,进一步增加对国产LoongArchCPU架构的支持除了最初的Rust语言支持外,Linux6.1内核的另一个新特性是MGLRU,代表Multi-GenerationLeast-Recently-Used,据悉可以优化页面回收机制,提高内存负载大的情况下的性能,但默认不会开启,在其他方面,Linux6.1也集成了一系列的性能改进Btrfs文件系统、新的AMD平台管理框架、各种开源图形驱动程序改进、KernelMemorySanitizer、MapleTree数据结构的引入,以及许多其他hardware驱动努力。值得一提的是,新版本进一步完善了对国产LoongArch架构CPU的支持。LoongArch是龙芯中科推出的自主研发的处理器架构。该架构基于龙芯基础指令集体系,并进行了矢量指令、虚拟化、二进制翻译等扩展。Linux6.1增加的支持,可以自下而上提高国产基于Linux的发行版系统对国产硬件的支持和适配性。3.是否是LTS版本还有待观察。另外,本次版本更新的公告并未提及Linux6.1是否为LTS版本。按照Linux内核维护者GregKroah-Hartman的说法,一般来说,每年的最后一个内核版本都会成为Linux内核的LTS。现在Linux6.1年底发布,按照惯例是LTS版本。但也有人反对。CarlDasantas表示,由于Linux6.1引入了Rust,很多社区对Rust仍然持保留态度,而这种犹豫往往会带来变数。相比之下,Linux6.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
