我們?cè)鴪?bào)道過(guò)微軟有意選擇Rust 作為C和C++的安全替代方案,Rust是由Mozilla主導(dǎo)的系統(tǒng)編程語(yǔ)言,專注于安全、速度和并發(fā),它最初是Mozilla的一個(gè)研究項(xiàng)目,用于更安全、更快速地重寫(xiě)Firefox瀏覽器。微軟表示之所以考慮Rust,除了它能夠以內(nèi)存安全的方式編寫(xiě)系統(tǒng)級(jí)程序外,性能、精細(xì)的控制以及健康發(fā)展的社區(qū)都是他們青睞Rust的原因。
如上圖所示,微軟每年約有70%的漏洞仍然是內(nèi)存安全問(wèn)題,如果這些程序用Rust編寫(xiě),那么這 70%的安全問(wèn)題很可能就不存在。
微軟展示了擁抱Rust的意向,那么另一邊的Linux對(duì)于Rust又是怎樣的想法呢?
開(kāi)發(fā)者就此詢問(wèn)了Linux內(nèi)核穩(wěn)定版維護(hù)者 Greg Kroah-Hartman,Greg 表示愿意接受用Rust開(kāi)發(fā)Linux內(nèi)核的驅(qū)動(dòng)程序,但前提是:1)以可選的方式存在,而不是默認(rèn)啟用,這樣其他開(kāi)發(fā)者就不需要使用Rust去構(gòu)建內(nèi)核;2)Rust驅(qū)動(dòng)需要體現(xiàn)出比C驅(qū)動(dòng)具有優(yōu)勢(shì),比如針對(duì)內(nèi)核API的安全封裝器。
不過(guò)底下有開(kāi)發(fā)者指出了目前使用Rust實(shí)現(xiàn)驅(qū)動(dòng)程序(https://github.com/fishinabarrel/linux-kernel-module-rust)的不便之處:
Linux內(nèi)核不保證API/ABI的穩(wěn)定性,因此很難設(shè)計(jì)通用的Rust接口。至少幾乎不可能使它適用于所有版本的Linux。
許多C語(yǔ)言特性沒(méi)有相應(yīng)的Rust支持。例如,構(gòu)造具有位域(bitfield)的結(jié)構(gòu)體似乎是無(wú)法實(shí)現(xiàn)的。
當(dāng)然大多數(shù)開(kāi)發(fā)者都同意Rust是一門(mén)很有前途的用于內(nèi)核編程的語(yǔ)言,不過(guò)這需要大家的努力才能實(shí)現(xiàn)。