如上图所示,微软每年约有 70% 的漏洞仍然是内存安全问题,如果这些程序用 Rust 编写,那么这 70% 的安全问题很可能就不存在。
微软展示了拥抱 Rust 的意向,那么另一边的 Linux 对于 Rust 又是怎样的想法呢?
开发者就此询问了 Linux 内核稳定版维护者 Greg Kroah-Hartman,Greg 表示愿意接受用 Rust 开发 Linux 内核的驱动程序,但前提是:1)以可选的方式存在,而不是默认启用,这样其他开发者就不需要使用 Rust 去构建内核;2)Rust 驱动需要体现出比 C 驱动具有优势,比如针对内核 API 的安全封装器。
不过底下有开发者指出了目前使用 Rust 实现驱动程序(https://github.com/fishinabarrel/linux-kernel-module-rust)的不便之处:
-
Linux 内核不保证 API/ABI 的稳定性,因此很难设计通用的 Rust 接口。至少几乎不可能使它适用于所有版本的 Linux。
-
许多 C 语言特性没有相应的 Rust 支持。例如,构造具有位域(bitfield)的结构体似乎是无法实现的。
当然大多数开发者都同意 Rust 是一门很有前途的用于内核编程的语言,不过这需要大家的努力才能实现。
本文素材来自互联网