誰這么強?前有亞馬遜、Google支持!后有Linux將它加入內(nèi)核開發(fā)!
有一門編程語言 2015 年才上線,而在這 6 年中,前有亞馬遜贊助開發(fā),后有谷歌宣布在 Android 中支持,現(xiàn)在 Linux 也要將它加入內(nèi)核開發(fā),可謂名副其實的“大廠團(tuán)寵”。?
你猜這是哪個編程語言?答案是:?Rust?!
上個月,Linux 公布 Linux-Next 初步支持 Rust 后,引發(fā)眾多熱議,Linux 之父?Linus Torvalds都表示?對?Rust 進(jìn)駐 Linux 內(nèi)核“保持觀望”?。?
而本周,Linux 內(nèi)核開發(fā)者 Miguel Ojeda 在郵件列表中發(fā)布的一封郵件再次成為焦點:?在 Linux 內(nèi)核中添加 Rust 支持的 RFC。?

文章整理 |CSDN: 鄭麗媛
出品 | CSDN(ID:CSDNnews)

這封郵件較為冗長,除了?發(fā)布一些用 Rust 編寫的 Linux 內(nèi)核補丁,還?將“Linux 內(nèi)核支持 Rust”這一決定的利弊和開發(fā)者的擔(dān)憂都進(jìn)行了說明,其中包括:?
Linux 內(nèi)核開發(fā)者對引入 Rust 的決心?:明知在內(nèi)核中加入第二種語言會付出更多努力,甚至一旦不再支持 Rust,用 Rust 編寫的模塊將更難替換。盡管如此,他們還是認(rèn)為引入 Rust 的優(yōu)勢比成本大;
在 Linux 中加入 Rust 的目的?:降低內(nèi)存安全 Bug 和邏輯 Bug 等風(fēng)險、作為現(xiàn)代編程語言的 Rust 使新的驅(qū)動程序和模塊更容易編寫、將有更多人參與 Linux 內(nèi)核開發(fā)等;
內(nèi)核環(huán)境下,Rust 相較于 C 的優(yōu)勢?:更嚴(yán)格的系統(tǒng)可減少邏輯錯誤、安全代碼和不安全代碼之間區(qū)別明顯、廣泛的獨立標(biāo)準(zhǔn)庫等;

同樣,加入 Rust 也存在一些缺點?:目前的 Linux 內(nèi)核更適應(yīng) C 語言、?對 LLVM 的依賴?、編譯速度較慢等由于 Rust 是一門年輕的編程語言引發(fā)的問題,不過都有改善的余地。
此外,郵件中也說明到目前為止,在基于 x86_64、ARM64 和 PPC64LE 的 Linux 內(nèi)核中,基礎(chǔ)設(shè)施已經(jīng)為支持?Rust?做好準(zhǔn)備,其它架構(gòu)和?對 Rust 內(nèi)核支持的構(gòu)建?也在逐步完善。
詳細(xì)郵件內(nèi)容可查看:https://lkml.org/lkml/2021/4/14/1023?
Linux 之父:并不討厭
對于這封郵件的內(nèi)容,大部分人都表示支持,?Linus?也再次對此表達(dá)了一些看法。雖然他對 Rust 進(jìn)入 Linux 內(nèi)核還有一些技術(shù)上的顧慮,尤其是擔(dān)憂“?某些 Rust 配置可能導(dǎo)致死機(jī)?”這個問題,但?大體上“并不討厭”?。?
他還補充道,比起?當(dāng)前的基本模塊?,他更希望看到一些真實的?Rust 示例?作為?提案的一部分,這樣人們可以把它作為真正的代碼片段來做一些有意義的事情。?
谷歌:大力支持?
而前陣?子剛宣布?Android 支持 Rust 語言來開發(fā)操作系統(tǒng)?的?谷歌對 Linux 內(nèi)核引入 Rust 代碼也表示大力支持?(之前谷歌還加入了 Miguel Ojeda 成立的?Rust for Linux?組織)?,谷歌 Android 團(tuán)隊工程師 Wedson Almeida Filho 在官方安全博客上?發(fā)表了一篇有關(guān)此事的文章。

博文中指出,雖然近半個世紀(jì)以來,C 語言一直是編寫內(nèi)核的首選語言,但在高質(zhì)量代碼、高標(biāo)準(zhǔn)審查以及完善的防護(hù)措施下,內(nèi)存安全漏洞仍然經(jīng)常發(fā)生。而對 Android 來說,?內(nèi)核漏洞?通常被認(rèn)為是高危漏洞。
因此,谷歌表示:"我們認(rèn)為,Rust 現(xiàn)在已經(jīng)準(zhǔn)備好與 C 語言共同成為開發(fā)內(nèi)核的實用語言。它可以幫助我們減少特權(quán)代碼中潛在的 Bug 和安全漏洞,同時?很好地處理核心內(nèi)核并保持其性能特征?。"
此外,文中還詳細(xì)介紹了?一些 Rust 如何幫助內(nèi)核開發(fā)者編寫安全正確的驅(qū)動程序的示例?,并且將其與現(xiàn)有的 C 語言版本在安全和性能方面進(jìn)行對比。谷歌?幾乎將 Binder 所需的所有通用內(nèi)核功能都進(jìn)行了 Rust 支持,因此?正在收集更為廣泛的 Linux 內(nèi)核社區(qū)反饋,爭取將現(xiàn)有的 Rust 支持上游化。?
最后,?Fil?ho?對 Linux 內(nèi)核加入第二個編程語言表示期待:“?這是一個激動人心的時刻,也是一個難得的機(jī)會,這可能會影響 Linux 內(nèi)核的開發(fā)方式,同時也預(yù)示著 Rust 語言的發(fā)展趨勢。?”?

網(wǎng)友:Linus 實際是支持 Rust 進(jìn)入內(nèi)核的?
對于谷歌的正面支持與 Linus 的較為中立的態(tài)度,網(wǎng)友也進(jìn)行了熱議。
網(wǎng)友@bug77表示?:
“雖然?Linus?對 Rust 還有些顧慮,但他實際上是支持在 Linux 內(nèi)核中加入 Rust 的,因為在現(xiàn)階段有擔(dān)憂很正常。
此外,目前的討論并不是要把 Rust 包含在內(nèi)核本身,而是包含在內(nèi)核驅(qū)動程序中。有問題的話可以隨時方式,損害很小。?
C 在未來 10 年到 20 年內(nèi)?都不會?消失,但看看 Rust,很明顯它已經(jīng)從一種狂熱者喜愛的語言發(fā)展成為大型公司開始評估的一種語言?!?/p>
網(wǎng)友@ssokolow?:
“?就隱式觸發(fā)的復(fù)雜行為而言,Rust 更像是C 和 C++ 之間的中間地帶。?”?

目前看來,Linux 5.13 發(fā)布在即,并且結(jié)合 Linus 起初對 Rust 的謹(jǐn)慎態(tài)度,在這個版本中引入?Rust 相關(guān)特性?的可能性不大。不過不排除未來發(fā)展順利的話,?或許我們能在 Linux 5.14 中看到對 Rust 的支持。不過這還需要一段時間,在Rust正式被支持之前,C/C++在編寫計算機(jī)內(nèi)核方面具有不可撼動的位置!
有句話是這么說的:栽一棵樹最好的時間是十年前,其次是現(xiàn)在。對于學(xué)習(xí)編程或者正在工作的朋友,如果你想更好的提升你的編程能力幫助就業(yè)乃至轉(zhuǎn)行,彎道超車,快人一步!筆者這里或許可以幫到你~
微信公眾號:C語言編程學(xué)習(xí)基地
分享(源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!
