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

米格尔·奥赫达,Rust-for-Linux 项目的作者, Teme最近公布了第四个提案 设备驱动组件 供 Linux 内核开发人员考虑的 Rust。

Rust 支持被认为是实验性的, 但它已经被同意包含在 linux-next 分支中,并且已经足够成熟,可以开始在内核子系统之上处理抽象层,以及编写驱动程序和模块。 该开发由 Google 和 ISRG(互联网安全研究组)资助,ISRG 是 Let's Encrypt 项目的创始人,促进 HTTPS 和技术发展以提高互联网安全性。

对于那些仍然不知道提议的更改的人,他们应该知道他们使之成为可能 使用 Rust 作为第二语言来开发控制器和模块 的内核。 Rust 支持作为默认情况下未启用的选项提供,并且不会导致 Rust 包含在内核所需的构建依赖项中。

使用 Rust 开发驱动程序 将允许您以最少的努力创建更好、更安全的驱动程序,没有像释放内存区域后访问它、取消引用空指针和缓冲区溢出等问题。

Rust 在编译时通过检查引用、跟踪对象所有权和对象生存期(范围)以及在代码执行期间评估内存访问的正确性来提供内存安全。

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

第四期有哪些变化?

在所呈现的这个新版本的补丁中,提到在讨论第一、第二和第三版补丁时所做的评论继续被删除。

我们会不断更新,直到我们不依赖任何不稳定的功能;
此时我们可能想要开始声明 Rust 的最小版本
支持,例如,对于 GCC 和 Clang。

同样,我们也迁移到了 2021 版的 Rust 语言。

至于在这个新版本中所做的其他更改,公告中提到了以下内容:

  • 过渡到使用稳定的 Rust 1.58.0 作为参考编译器。
  • 项目所需的更改,尚未包含在主要 Rust 工具包中,包括“-Zsymbol-mangling-version=v0”标志(预计在 Rust 1.59.0 中)和“maybe_uninit_extra”模式(预计在 Rust 1.60.0 中) .
  • 添加了对 Rust 工具的可用性及其适用性的自动检查,并且还扩展了在系统上测试 Rust 支持的能力。
  • 提出了新的抽象,以便能够从 Rust 代码访问设备标识符表(“IdArray”和“IdTable”)。
  • 添加了调用与计时器(时钟帧)相关的函数的层。
  • 平台控制器现在通过 trait 实现来定义。
  • 添加了一个新宏以简化平台驱动程序注册,并提出了一个新的通用驱动程序模板。
  • 为“dev_*”结构添加了新的宏。
  • 为 IoMem 类型添加了新方法“{read,write}*_relaxed” .
  • 移除 FileOpener 属性以简化文件操作。
  • 在控制器注册期间传递的参数数量中添加了“ThisModule”参数。
  • 提出了一个用 Rust 语言创建内核模块的典型模板。

最后,如果您有兴趣能够了解更多关于这个新版本的信息,可以咨询详情 在下面的链接中。


发表您的评论

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

*

*

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