Linux 上 Rust 驱动程序支持的补丁的第二个版本已经发布

今年 XNUMX 月在 linux-next 分支上 当时适用于 Linux 内核 5.13, 包含一组初始组件来开发设备驱动程序 语言 Rust,现在请求包含第二版 为 Linux 内核添加 Rust 支持的补丁。

向 Linux 开发人员发送请求的人是 Miguel Ojeda,Rust-for-Linux 项目的作者,我们前几天也谈到了他,因为他被聘请负责“Prossimo”项目,基本上专注于协调将关键软件基础设施转移到安全代码以使用 Rust 保护 Linux 内核内存的工作(如果您想了解有关该项目的更多信息,可以咨询 在下面的链接发布。)

Linux 上的 Rust 驱动程序
相关文章:
Prossimo,一个使用 Rust 保护 Linux 内核内存的 ISRG 项目

Miguel Ojeda 发送的请求是第二个更新版本 用于以 Rust 语言开发设备驱动程序的组件,其中删除了在讨论补丁的第一个版本期间所做的评论,并且 Linus Torvalds 已经加入了讨论并建议更改逻辑以处理一些位操作。

里面的好处 提到的是 Rust 保证了安全的内存管理 在编译时通过检查引用、跟踪对象所有权和对象生命周期,以及在运行时评估内存访问的正确性。

Rust 还提供 整数溢出保护, 需要在使用前强制初始化变量值,更好地处理标准库中的错误,默认采用引用和不可变变量的概念,并提供强静态写入,最大限度地减少逻辑错误。

在突出的变化中 在这个新版本的补丁中提到:

  • 内存分配代码可防止在发生内存不足等错误时产生恐慌的可能性。
  • 已经包括了 Rust alloc 库的一个变体,其中的代码已经过重新设计以处理锁,但最终目标是将内核的所有必要功能引入 alloc 的主版本(更改已经准备好并转移到标准 Rust 库中)。
  • 现在可以使用测试版和稳定版,而不是每晚构建 rustc 编译器来编译支持 Rust 的内核。 目前使用 rustc 1.54-beta1 作为参考编译器,但月底 1.54 发布后,将支持作为参考编译器。
  • 添加了对使用标准 Rust 属性“# [test]”编写测试的支持,以及使用 doctests 将文档中的示例代码用作测试的能力。
  • 除了先前支持的 x32_86 和 ARM64 之外,还添加了对 ARM64 和 RISCV 架构的支持。
    改进的 GCC 实现 Rust(Rust 的 GCC 前端)和 rustc_codegen_gcc(GCC 的 rustc 后端),现在通过了所有基准测试。
  • 一种 新的抽象层次 用于 Rust 程序使用 C 编写的内核机制,例如树、引用计数对象、创建文件描述符、任务、文件和 I/O 向量。
  • 驱动程序开发组件改进了对“file_operations”模块、“module!”宏、宏日志记录和基本驱动程序(探测和删除)的支持。
  • Binder 支持传递文件描述符和 LSM 链接。
  • 为 Raspberry Pi 板的硬件随机数生成器提出了一个更实用的 Rust 驱动程序示例 bcm2835-rng。

最后,如果您有兴趣了解更多信息,可以查阅详细信息。 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。