【发现】Rust-for-Linux_的成败得失
https://www.usenix.org/system/files/atc24-li-hongyu.pdf
RFL(Rust for Linux)从 2013 年开始筹备进入 Linux 内核,自从 2022 年以来,合并了 20K 行代码到 Linux 主线,成为了 Linux 除了 ebpf 和 io_uring 之外最活跃的子系统。
本文主要回答了 3 个问题:
- RFL 现状如何:
- RFL 的代码主要集中在驱动、netdev 和文件系统。
- RFL 基础设施已经成熟,安全抽象和驱动程序是下一个重点。
- RFL 发展的瓶颈不在开发,而在代码审查。
- RFL 是否是一种炒作:
- RFL 使内核变安全,但不是完全安全。
- RFL 没有带来可怕的 overhead。
- RFL 提高了代码质量和可读性。RFL 代码目前达到了 100% 的文档和代码覆盖率。而单位代码行数产生的 CI 错误也显著地比 epbf 和 io_uring 少。
- RFL 让 Linux 社区吸取了更多新鲜血液。
- 经验和教训:
- 对开发者来说,应该从所有权的角度构造和管理内核数据结构,谨慎地接受
unsafe
。 - RFL 社区应该在 BUG 密度更高的地方发挥影响力。BUG 越是容易出现,Rust 就越有价值。文章建议 linux-block 子系统。
- 对开发者来说,应该从所有权的角度构造和管理内核数据结构,谨慎地接受
此外,文章还提到 Kernal 社区对 Rust 开发驱动的感受。根据对 ycombinator 和 Iwn 的开发者文章分析,大约有 40% 持有积极态度,另外 60% 持有消极态度。持有消极态度的开发者最关心的是学习难度和复杂度。
评论
RFL 值得关注。