用Rust 開發Linux 驅動?內核維護者表示願意接受
我們曾報導過微軟有意選擇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)的不便之處:
- Linux 內核不保證API/ABI 的穩定性,因此很難設計通用的Rust 接口。至少幾乎不可能使它適用於所有版本的Linux。
- 許多C 語言特性沒有相應的Rust 支持。例如,構造具有位域(bitfield)的結構體似乎是無法實現的。
當然大多數開發者都同意Rust 是一門很有前途的用於內核編程的語言,不過這需要大家的努力才能實現。