【Rust日报】2020-07-11 关于 Linux 内核支持 Rust 的讨论

2020-07-16 14:47:51 浏览数 (1)

关于 Linux 内核支持 Rust 的讨论

Rust 编程语言在安全性方面具有一些优势,因此某些 Linux 内核开发人员希望使用它。其中一位 Nick Desaulniers 希望在即将举行的 Linux Plumbers Conference 上进行介绍和讨论。Linux Plumbers Conference 是一个会议,参会的是从事 Linux 工作的顶尖开发人员(包括内核子系统,核心库,窗口系统等)。

添加构建内核所需的新工具链的成本相对较高,更不用说人员的成本,需要熟练掌握 Rust 语言以充分审查所有新代码和移植代码。因此,电子邮件中讨论评估 Linux 内核开发社区是否愿意接受这些成本,如果是,那么可能需要清除哪些实际障碍才能真正实现。

TL;DR

  • Nick Desaulniers 表示:“很想会议讨论 Linux 内核支持 Rust ”,较大的疑问是:“我们应该这样做吗?”或“我们如何限制使用它的范围?”
  • 包括 Greg Koah-Hartmann 在内的大多数人都对参加讨论感兴趣。
  • rustc的开发人员 Josh Triplett 表示:“很高兴 Linux 内核成为 Rust 语言开发的重点。如果在内核中构建 Rustic 接口需要一些额外的语言功能,我们应该看看对语言的哪些增强最能满足这些要求。“
  • Linus Torvalds 表示:”我不希望我们陷入困境 - 甚至不对任何新的 Rust 支持默认经过构建测试。“

其中 Linux kernel in-tree Rust support 中的 in-tree,是 Linux 术语,意思是与内核源代码树本身一起存储并与之一起构建内核模块。

讨论链接,https://lore.kernel.org/lkml/CAKwvOdmuYc8rW_H4aQG4DsJzho=F djd68fp7mzmBp3-wY--Uw@mail.gmail.com/T/#u

cargo-todo

cargo-todo 是一个用来查看 rust 代码中每个 TODO 的工具。将显示//todo的行数:

代码语言:javascript复制
$ cargo todo
Line 39 : refactor

相关链接:

  • Github,https://github.com/ProbablyClem/cargo-todo
  • Crates.io,https://crates.io/crates/cargo-todo

异步内存访问

关于异步内存访问的 Rust 代码,要点是现代 CPU 与缓存有关。下面的 Paper 对该代码的作用有深入描述,感兴趣的可翻阅。

Playground 链接,https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=b99e44f23000d3ab90c5ef3a9ab75b55

相关 Paper,http://www.vldb.org/pvldb/vol11/p1702-jonathan.pdf

Miri 解释器

Miri,是一个针对 Rust 的 MIR(Mid-level Intermediate Representation) 实验性解释器。它可以运行 cargo 项目的二进制文件和测试套件,并检测某些类别的未定义行为。

关于如何使 Rust 的编译速度更快,以便开发人员可以更快地进行迭代,这已经有很多讨论。但是另一种解决方案是根本不编译它。Python 之所以开发者友好,原因之一是因为编写一行代码到看到更改结果之间的时间不到一秒钟。miri 会为 Rust 带来同样的开发便利吗?

Github 链接,https://github.com/rust-lang/miri

0 人点赞