第四版内核补丁 Linux 支持 Rust 语言

Miguel Ojeda,Rust-for-项目的作者Linux建议内核开发人员考虑 Linux 这是用于开发 Rust 设备驱动程序的组件的第四个版本。Rust 支持目前仍处于实验阶段,但已获准纳入 linux-next 分支,并且已经足够成熟,可以开始着手创建内核子系统上的抽象层,以及编写驱动程序和模块。该开发项目由 Google 和 ISRG(互联网安全研究小组)资助,ISRG 是 Let's Encrypt 项目的发起者,该项目致力于推广 HTTPS 和开发用于提升互联网安全性的技术。

回想一下,提议的更改使得可以使用 Rust 作为开发驱动程序和内核模块的第二语言。 Rust 支持作为一个选项提供,默认情况下不启用,并且不会导致 Rust 被包含为内核所需的构建依赖项。 使用 Rust 进行驱动程序开发将允许您以最小的努力创建更安全、更好的驱动程序,并且不会出现释放后内存访问、空指针取消引用和缓冲区溢出等问题。

Rust 在编译时通过引用检查、跟踪对象所有权和对象生命周期(作用域)以及在代码执行期间评估内存访问的正确性来提供内存安全处理。 Rust 还提供防止整数溢出的保护,要求在使用前强制初始化变量值,更好地处理标准库中的错误,默认应用不可变引用和变量的概念,提供强静态类型以最小化逻辑错误。

新补丁版本继续解决在第一、第二和第三个补丁版本讨论中提出的问题。新版本包含以下内容:

  • 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”)的新抽象。
  • 添加了用于访问与定时器(时钟框架)相关的函数的层。
  • 平台驱动程序现在通过特性实现来定义。
  • 新增了一个宏来简化平台驱动程序的注册,并提出了一个新的通用驱动程序模板。
  • 为“dev_*”结构添加了宏。
  • 为 IoMem 类型添加了“{read,write}*_relaxed”方法。
  • 移除了 FileOpener 属性,以简化文件操作。
  • “ThisModule”参数已添加到注册驱动程序时传递的参数中。
  • 本文提出了一种用于创建 Rust 语言内核模块的标准模板。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster