查看原文
其他

用Rust开发Linux驱动?内核维护者愿意接受

局长 开源中国 2020-09-02

我们曾报道过微软有意选择 Rust 作为 C 和 C++ 的安全替代方案,Rust 是由 Mozilla 主导的系统编程语言,专注于安全、速度和并发,它最初是 Mozilla 的一个研究项目,用于更安全、更快速地重写 Firefox 浏览器。

微软表示之所以考虑 Rust,除了它能够以内存安全的方式编写系统级程序外,性能、精细的控制以及健康发展的社区都是他们青睐 Rust 的原因。

如上图所示,微软每年约有 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)的不便之处:

  1. Linux 内核不保证 API/ABI 的稳定性,因此很难设计通用的 Rust 接口。至少几乎不可能使它适用于所有版本的 Linux。

  2. 许多 C 语言特性没有相应的 Rust 支持。例如,构造具有位域(bitfield)的结构体似乎是无法实现的。

当然大多数开发者都同意 Rust 是一门很有前途的用于内核编程的语言,不过这需要大家的努力才能实现。

开源中国征稿啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 400 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿

推荐阅读

华为方舟编译器正式开源,采用自主平台托管

开源项目内置广告后续:npm禁止终端广告

Qt for 单片机,无需操作系统直接上

微软爱开源几遍了之:exFAT 将进入 Linux 内核

Linux 桌面进化史

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存