几周前,我们在博客上分享了关于欧洲开源峰会期间确认的消息,由 Linus Torvalds 宣布 除非出现不可预见的问题,否则并将包含补丁以支持在 Linux 6.1 内核中开发 Rust 驱动程序, 预计将于 XNUMX 月发布。
提到它的原因是 Rust-for-Linux 项目的作者 Miguel Ojeda 宣布 最近推出 组件的第十个提案 为了发展 Rust 设备驱动程序 供 Linux 内核开发人员考虑。
因此,这是补丁的第十一版,考虑到第一个发布的版本(没有版本号)。 Linus Torvalds 批准在 Linux 6.1 内核中包含 Rust 支持,除非出现不可预见的问题。
值得一提的是,该开发项目由 Google 和 ISRG(Internet Security Research Group)资助,ISRG 是 Let's Encrypt 项目的创始人,推动 HTTPS 和提高互联网安全性的技术发展。
一些 获得 Rust 支持的好处 在内核中 使编写控制器变得容易 安全设备 通过减少内存错误的机会 并鼓励新开发人员参与内核。
“生锈是我认为会带来新面孔的东西之一......我们正在变得老去和灰色,”莱纳斯说。
发行说明 Linux 6.0 提供 Rust 项目进度更新 对于 Linux:有一个相关的工作组,可用该语言开发的 NVMe 存储介质的初步驱动程序,以及用于 9P 网络协议的服务器的驱动程序。
利用关于内核版本 6.1 的提及 Linus 还宣布 6.1 版内核将改进一些较旧的部分 和内核基础,例如 printk() 函数。
关于这个关于 Rust 补丁的新提案,以及最新版本的补丁, 第 XNUMX 个版本被精简到最低限度,足以构建一个用 Rust 编写的简单内核模块。
与上一版本的区别 减少到较小的修正, 用 kallsyms.c 中的 ARRAY_SIZE 替换 sizeof 并将补丁移植到内核 v6.0-rc7。
Rust 支持仍应被视为实验性的。 尽管如此,
支持足够好,内核开发人员可以开始研究它。
最小补丁,已从 40 行代码减少到 000 行代码,预计, 使得在核心中采用 Rust 支持变得容易。 在提供最低限度的支持后,计划逐步增加现有功能,从 Rust-for-Linux 分支移植其他更改。
提议的更改使使用 Rust 作为开发驱动程序和内核模块的第二语言成为可能。 Rust 支持作为默认情况下未启用的选项提供,并且不会导致 Rust 包含在内核所需的构建依赖项中。
使用 Rust 开发驱动程序将使您能够以最小的努力创建更好、更安全的驱动程序,而不会出现释放内存区域后访问内存区域、取消引用空指针和缓冲区溢出等问题。
Rust 提供了安全的内存处理 在编译时通过检查引用、跟踪对象所有权和对象生存期(范围)以及评估代码执行期间内存访问的正确性。
也生锈 提供整数溢出保护, 需要在使用前强制初始化变量值,更好地处理标准库中的错误,默认强制执行不可变变量和引用的概念,提供强静态类型以最大限度地减少逻辑错误。
最后 如果您有兴趣了解更多有关它的信息 关于注释,您可以查阅有关该主题的邮件列表, 在下面的链接中。