Rust for Linux 包括几个增强功能以​​支持

在过去的几个月里 Linux 开发者一直在争论 的可能性 允许使用 Rust 语言 为内核编写新的设备驱动程序。

去年,Linux 内核开发人员 他们似乎就此事达成了一致, Rust 支持者引用的工作表明,Android 和 Ubuntu 中大约三分之二的内核漏洞与内存安全问题有关。

在此声明之后,Linux 内核的软件工程师、主要创建者和开发人员 Linus Torvalds 在接受采访时表示,关于该主题的讨论将比关于该语言的冗长的 Google 帖子重要得多。

当被问及使用 Rust 的建议时,他表示,“这里的解决方案很简单:只需使用 C++ 而不是 Rust。”

在那之后 XNUMX月,首次支持上线e 允许将 Rust 驱动程序放置在 Linux-Next 树中,以便在它们最终包含在主内核中之前进行进一步测试。

紧随其后的是在内核邮件列表上重新发布的关于 Linux 内核的 Rust 代码透视图的“评论请求”。

米格尔·奥赫达Linux 内核开发人员在 Linux 内核邮件列表上发起了征求意见 (RFC) 提案。

邮件列表帖子概述了将 Rust 代码添加到内核中所涉及的开发人员的信念、改进的内存安全性等好处。

“最近几周和几个月,你们中的一些人已经注意到,正在认真尝试将第二种语言引入内核。 Miguel Ojeja 说:“我们终于到了,RFC 为 Linux 内核添加了 Rust 支持。” “我们知道在内核中引入一种新语言会带来巨大的成本和风险,”他补充道。

Rust for Linux 项目团队 从 Rust beta 编译器转移到使用稳定版本,每次发布新版本时都会迁移。

“我们要感谢 Rust 在这些选项上与我们合作,以便内核可以使用它们,”Miguel 说。

更新编译器时,团队 能够从列表中删除一些不稳定的功能: const_fn_transmute、const_panic、const_unreachable_unchecked、core_panic 和 try_reserve。

除此之外,要强调的是 添加了一些模块化选项 更多分配以禁用一些不必要的功能:no_rc 和 no_sync。

上游,为了让内核用例得到很好的支持,或者更准确地说,内核需要的选项的“混合”,上游核心还添加了 no_fp_fmt_parse。

另一方面,Rust 为 Rust 和 Clippy 编译器启用了一系列额外的诊断。 与 C 的一个区别是 Rust 诊断在代码中更容易禁用,在一般情况下更严格。

已实施抽象和驱动程序更新. 该团队为流锁、电源管理回调、io 内存(readX/writeX)、irq 芯片和高级流管理器、gpio 芯片(包括 irq 芯片)、外设、amba 外设和驱动程序添加了抽象。

的支持 控制器通过独立于总线的基础设施得到增强, 可撤销对象、可撤销互斥体、高效位迭代器、更好的恐慌诊断和简化的指针包装器。 此外,它还改进和简化了 Ref 对象(与 refcount_t 兼容)并替换了所有 Rust 实例。

并且已经实施并作为 RFC 补丁提供了 gpio PL061 设备的新驱动程序。

最后应该注意的是 Rust 支持仍被认为是实验性的。 但是, 支持足够好,内核开发人员开始工作 在 Rust 抽象中编写子系统和控制器以及其他模块。 当前系列刚刚到达 Linux-next,因此本周将进行第一次运行。

数据来源: https://lkml.org/lkml


发表您的评论

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

*

*

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