Linux 上 Rust 驱动程序支持的第八个补丁版本到了

米格尔·奥赫达, Rust-for-Linux 项目的作者 发布了第八个版本 开发具有 Rust 语言支持的 Linux 内核补丁,供 Linux 内核开发人员考虑。

这是补丁的第九个发布(考虑到第一个发布的版本没有版本号). Rust 支持被认为是实验性的, 但它已经包含在 linux-next 分支中,声称在 5.20/6.0 的秋季版本中集成,并且已经足够先进,可以开始在内核子系统之上创建抽象层,以及编写控制器和模块。

该开发由谷歌和 ISRG 资助 (互联网安全研究组),它是 Let's Encrypt 项目的创始人,推动 HTTPS 和技术发展以提高互联网安全性。

提议的更改使使用 Rust 作为开发驱动程序和内核模块的第二语言成为可能。 Rust 支持作为默认情况下未启用的选项提供,并且不会导致 Rust 包含在内核所需的构建依赖项中。 使用 Rust 开发驱动程序将使您能够以最少的努力创建更好、更安全的驱动程序,而不会出现诸如释放内存区域后访问、取消引用空指针和缓冲区溢出等问题。

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

第八版有什么新内容?

在发布的这个新提案中,提到了 alloc 库变体,这消除了错误时可能产生的“恐慌”状态, 更新到 Rust 1.62 版。 与之前的版本相比,Rust 工具包稳定了对内核补丁中使用的 const_fn_trait_bound 功能的支持。

除了它 绑定代码被分成一组“绑定”框 如果只更改主内核包,则可以很容易地重建。

“concat_idents!”宏的实现, 重写为过程宏,不依赖于 concat_idents 功能并允许使用局部变量引用。

另外,提到宏 “静态断言!” 已被重写以允许“core::assert!()” 在任何上下文中使用而不是常量,而宏“construction_error!” 已适应为模块设置“RUST_BUILD_ASSERT_{WARN,ALLOW}”模式时工作。

添加了 fs 模块 它提供了使用文件系统的链接。 提出了一个用 Rust 编写的简单文件系统的示例,以及添加的作业队列模块以与系统队列一起使用。

其他变化 从这个新提案中脱颖而出:

  • 添加了一个单独的配置文件“kernel/configs/rust.config”。
  • 在宏替换中处理的“*.i”文件已重命名为“*.rsi”。
  • 删除了对构建具有除用于 C 代码的优化级别之外的优化级别的 Rust 组件的支持。
  • kasync 模块的开发随着异步编程方法(async)的实现而继续。
  • 添加了一个用 Rust 编写的内核级 TCP 服务器示例,并添加了在 Rust 中处理中断的能力。
  • 添加了一个过程宏,以便更轻松地使用函数指针表,例如 file_operations 结构。
  • 添加了双向链表实现“unsafe_list::List”。
  • 添加了对 RCU 和 Guard 类型的初始支持,以检查读锁是否绑定到当前线程。
  • 添加了函数 Task::spawn() 以自动生成和启动内核线程。
  • 还添加了 Task::wake_up() 方法。
  • 添加了延迟模块

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


发表您的评论

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

*

*

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