Linux 内核中 Rust 的最新状态


在近日举行的 Linux Plumbers Conference 上,Linux 和 Rust 开发人员 Miguel Ojeda 向 Linux 内核开发人员介绍了有关 Linux 内核中 Rust 的最新情况。简而言之,Rust Linux 正在不断走向成熟,并得到了思科、三星和 Canonical 等开发者和供应商的大力支持。

目前,一些发行版已经张开双臂拥抱 Rust。例如,Ubuntu 已经提供了“构建和测试树外内核模块所需的所有必要工具链和内核要求”。

三大 Linux Rust 工具链也正在形成。一个是 rustc 的 GCC codegen,该工具链无需修改源代码即可编译并启动主线 Rust 和 Linux。

另一个是 GCC Front-End for Rust,它可以由现有的 rustc 前端加载,但受益于 GCC 的优化;不过该项目仍处于 alpha 阶段。还有一个是 Coccinelle for Rust;Coccinelle 是一个用于制作大规模 Linux 内核 C 源代码的工具,而 Coccinelle for Rust 正试图将这一功能引入 Rust 代码库。

一些开发者还在尝试使用 Rust 编写驱动程序。至于一些使 Rust 与 Linux 完全集成所需的日常工作,均可以在 Rust for Linux 这一官方网站查询更多详情。

开发了两年之久的原始 rust 代码分支已经退役;代码还在,但已被冻结和归档。今后,rust-next 分支将包含新的 Rust 特性,并在 Linux 内核的下一个合并窗口中提交。而这个分支,顾名思义就是 Linux Next 的一部分。

Rust-fixes 分支则包含 Linux 内核当前周期的 Rust 修复。还有一个用于集成的实验分支 Rust-dev ,是一个"look good enough"的补丁队列。

理所当然的是,前进之路并非一帆风顺。Rust on Linux 的开发人员在过程中发现了一些问题:例如,当两个或多个线程等待另一个线程结束时,死锁在 Rust 中是安全的,因为它们不会导致未定义的行为,但它们在 Linux 内核中却不安全。目前开发人员正在努力解决这个问题。

另一方面,开发人员还在担心如何处理 Rust 版本的问题。因为最新版本的 Rust Linux 兼容一些不稳定的功能,所以他们无法保证较新的 Rust 版本能在 Linux 中运行。Linux Rust 程序员现下正在跟踪最新版本的 Rust 编译器。

与此相关的一个问题是,大众对将 Rust 支持反向移植到的 Linux 的 LTS 版本(特别是 5.15 和 6.1)中越来越感兴趣。但 Linux 通常不允许将 Rust 移植到 LTS Linux 中。因此,ZDNet 指出,如果你真的非常想要在旧版的 LTS 内核中获得功能齐全的 Rust 支持,那么你就需要以某种方式支付费用。

总的来说,Rust 无疑正在成为 Linux 开发的重要语言。但在这一进程中无疑还有许多挑战需要克服,正如 Ojeda 所述,虽然“核心团队随着新成员的加入而成长”,但前进之路上仍有很多工作要完成。


相關推薦

2022-02-15

Linux 内核和 Rust on Linux 的主要开发者 Miguel Ojeda 近日再向 Linux Kernel 邮件列表提交了一个新补丁 (v4),继续推进在 Linux 内核中增加对 Rust 作为第二语言支持。此举意味着对 Linux 内核驱动程序等的可选 Rust 编程支持继续成熟;Phoro

2022-09-30

先回顾关于 Linux 内核支持 Rust 的消息。 2019 年,内核维护者 Greg 表示愿意接受用 Rust 开发 Linux 内核的驱动程序。 2020 年,Linus Torvalds 回应了针对 Linux 内核支持 Rust 的个人看法。他没有否定该提议,而是提倡在默认

2022-09-15

t 成为一种合适的系统编程语言的工作,以及在主线 Linux 内核中整合对 Rust 的支持。 领导"Rust for Linux"工作的 Miguel Ojeda 在会上介绍了 Linux 内核工作的最新状况;内容主要在于最新的补丁系列是如何被精简以减轻上游工作的、过

2022-09-18

“更愿意潜水而不愿参加会议”。 Linus 称,尽管为 Linux 内核付出了很多精力,但他并不是一个工作狂。 真的,我之所以还能年复一年地做这件事,是因为我可以随时脱离它。但我不会离开很久,因为我会感到无聊。唯一让

2022-12-13

Rust 代码,据外媒 Phoronix 报道,负责 Rust For Linux 部分的内核开发者 Miguel Ojeda 已经向 Linux 6.2 合并窗口发出了一个新 PR,提供一批新的 Rust 基础代码。 与 Linux 6.1 中的 Rust 支持类似,Linux 6.2 的 Rust 代码继续对 Rust 的内核构建提

2023-05-01

Rust for Linux 首席开发人员 Miguel Ojeda 提交了 Linux 6.4 内核的最新 Rust 功能代码 PR。 据外媒 phoronix 介绍,Linux 6.4 的新 Rust 代码包括引入 pin-init API,它用于处理安全的固定初始化,并允许减少内核中围绕需要稳定地址的数据结构的

2022-10-17

值得注意的是多代 LRU VM 系列,以及最初的 Rust 脚手架(内核中还没有真正的真正的 Rust 代码,但基础设施是那里)。 多代 LRU 是 Linux 6.1 最新合并的页面回收策略,可有效缓解低内存设备的高内存压力。Linux 6.1 最大的新特性

2022-10-09

Greg Kroah-Hartman 表示: 我通常会选择每年的最后一个内核版本(last kernel of the year),根据正常的发布周期,Linux 6.1 将会是这个内核版本。但是,在它发布之前我无法做出什么承诺。 根据正常的时间表,Linux 6.1-rc1 将于 10

2022-10-06

Linus Torvalds 已将初始的 Rust 代码合并进了 Linux 内核主线。 昨日,初始的 Rust 基础设施代码已合并到 Linux 6.1 内核的主线 Git 代码树中。Linus 在几周前的内核峰会上就已表达过这样的计划,人们也普遍预计这会发生,

2022-03-18

Linux 内核和 Rust on Linux 的主要开发者 Miguel Ojeda 向 Linux Kernel 邮件列表提交了一个,继续推进在 Linux 内核中增加对 Rust 作为第二语言支持。 一些 Rust for Linux v5 的更改包括: 工具链和 alloc 已经升级到了 Rust 1.59.0。这个版本

2023-03-03

除了用 Rust 编写的 Apple M1/M2 DRM 内核图形驱动程序,现在又有第二个图形相关的内核驱动程序尝试使用 Rust  —— 内核中的“VGEM”驱动程序正在用 Rust 编程语言重写。 VGEM(Virtual GEM) 是 Linux 4.1 版本引入的虚拟 GEM 提供者,

2022-11-14

施已被合并到 Linux 6.1 。意味着未来 Rust 编程语言将用于内核驱动程序和其他子系统的代码。但 10 月的 Rust for Linux 只提供了底层的基础设施和一些非常基础的集成,缺少很多规范和子系统抽象。 近日,领导 Rust for Linux 工作的 M

2024-04-04

Linux 内核的 Rust 代码正准备升级到 Rust 1.78,该版本将在一个月后发布为稳定版。 虽然Rust 1.78要到5月初才会发布,不过由米格尔-奥赫达(Miguel Ojeda)领导的Rust Linux内核开发人员已经在为下一次升级做准备了。 随着向 Rust 1.78

2022-12-12

Linus Torvalds 宣布 Linux 6.1 内核系列正式发布! Linux 6.1 内核系列集成了改进的页面回收代码的多代 LRU (MGLRU) 、初始的 Rust 语言支持(仍在构建中)、新的 AMD 平台管理框架、各种开源图形驱动程序改进、Btrfs 性能优化、Kernel Memory