#Rust for Linux
lwn.net · ⭐️ 7/10 · 2026-10-28
在 Kangrejos 2026 上,Alexandre Courbot 没有发布新代码,而是就 Rust for Linux 中“何时允许 panic、如何做错误处理”征求开发者意见。他提出一条按优先级排列的处理阶梯:尽量写不会失败的代码,其次用编译期检查(保证捕获或尽力捕获),再次用运行时 Result,最后才 panic;并用 Nova vGPU 状态枚举、udelay\(\) 越界参数和 binder 的 add\death\(\) 等案例说明边界。现有内核 Rust 编码指南只有一处提到 panic,仅表示优先使用 Result;讨论中 Miguel Ojeda 认为,在没有安全降级方案时,维护者可以接受 panic;Ard Biesheuvel 则指出 panic 已嵌入 Rust 语言、无法完全消除。报道未显示这些准则已被正式采纳。
lwn.net · ⭐️ 7/10 · 2026-10-14
在 Kangrejos 2026 上,Andreas Hindborg 介绍了 Rust for Linux 的一个补丁系列(邮件列表中的 v21 版本,2026 年 9 月发布),它新增 Ownable trait 和 Owned 智能指针,让 Rust 代码可以持有由 C 代码分配的对象,并在使用完毕后负责清理(但不一定释放内存)。Owned 像 KBox 一样提供对所指值的唯一访问,但生命期结束时调用 release\(\) 而非 free,因此只能指向实现了 Ownable 的 C 类型,例如块层中可复用的 bio 请求结构。该系列尚未合并,Hindborg 希望在数月邮件列表讨论后达成共识;主要争议在于 Owned 与 ARef 之间的转换可能破坏健全性,他提议把 AlwaysRefCounted 拆成两个 trait,并禁止同时实现 Ownable 的类型将内建引用升级为 ARef。讨论还涉及 page 结构是否可实现 Ownable,以及 IOMMU 页表、Rust binder 驱动和 USB 驱动等潜在使用场景。