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

2019年09月03日

我们曾报道过微软有意选择 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 是一门很有前途的用于内核编程的语言,不过这需要大家的努力才能实现。

展开阅读全文
22 收藏
分享
加载中
精彩评论
Rust 现在太年轻,仅因它是「内存安全的」就要用它替换完整的 Linux 驱动,这事情恐怕说到哪里都没办法让人接受。务实点说:作为可选项让用户选择并大力发展相应的社区生态,或许是不错的选择。
2019-09-03 08:57
21
举报
“让暴风雨来得更猛烈些吧!”(反正我们看热闹的不怕事大,嘿嘿)
2019-09-03 13:35
6
举报
rust 以后应该会成为最复杂的语言
2019-09-03 09:29
5
举报
Rust包管理挺好用的,生态只是时间问题
2019-09-03 08:38
4
举报
希望大家先把Rust生态搞起来,目前的包和java、python相比太少了。
2019-09-03 08:25
3
举报
最新评论 (32)
又是微软的的木马吗??
2019-09-10 09:53
0
回复
举报
看过rust,感觉对没C++经验的新人来说入门有点复杂。
2019-09-10 09:16
0
回复
举报
不懂,直接666完事
2019-09-04 07:07
0
回复
举报
支持,目前rust成熟度还不够高,更多大厂关注和使用,可以促进rust发展。
2019-09-04 00:06
0
回复
举报
微软是想玩坏rust
2019-09-03 21:46
0
回复
举报
看来 c 语言也快进入博物馆了。从汇编的寄存器操作,到 C 的指针各种内存对齐,大端小端的判断。到 C++ 的类的内存布局,包括重载方法,类继承在内存中如何存放这些关系等等…… 计算机底层技术离普通程序猴越来越远。未来的新新程序猴还会有多少人会懂这些?
2019-09-03 21:20
2
回复
举报
还没看rust但感觉很吊的样子
2019-09-03 20:39
0
回复
举报
这是有了🔨,什么都想砸一下啊。
2019-09-03 19:56
0
回复
举报
Dlang可以
2019-09-03 17:01
0
回复
举报
不是说火狐要用 rust 重写吗,有没有消息
2019-09-03 16:50
0
回复
举报
2017年v57改名为Firefox Quantum的时候,就已经部分用Rust重写了
2019-09-03 18:20
0
回复
举报
更多评论
32 评论
22 收藏
分享
返回顶部
顶部