Linux 內(nèi)核將引入 Rust,Linus:以防此事搞砸了我又發(fā)脾氣,先給大家道個(gè)歉
這幾天,由 Linux 基金會(huì)主辦的 2022 開(kāi)源峰會(huì)如約而至。Linux 之父 Linus Torvalds 也出席了會(huì)議。
一個(gè)小插曲是,一張現(xiàn)場(chǎng)傳來(lái)的他本人的照片讓不少網(wǎng)友和粉絲感嘆:
Linus 真的老了!
不過(guò),53 歲的 Linus 在和老朋友 Cardano 基金會(huì)的首席開(kāi)源官進(jìn)行的一番暢談中卻表示,自己仍然充滿(mǎn)了干勁。同時(shí),他還透露了一個(gè)大驚喜:
下一個(gè)版本的 Linux 內(nèi)核主線,可能就會(huì)合并用 Rust 語(yǔ)言提交的 PR 分支了。
對(duì) Linux 的熱情 30 年未減
Linux 誕生于 1991 年,現(xiàn)在已經(jīng)有 31 年歷史。
作為全球三大操作系統(tǒng)之一,Linux 已經(jīng)成為云、邊緣技術(shù)、嵌入式和物聯(lián)網(wǎng)等技術(shù)不可或缺的支撐基礎(chǔ)。
作為最大的開(kāi)源操作系統(tǒng),Linux 由開(kāi)源社區(qū)的貢獻(xiàn)者維護(hù),每 6-10 周(也就是 1-2 個(gè)月)發(fā)布一個(gè)新的內(nèi)核版本。當(dāng)然,這其中大部分更新都是由 Linus 本人發(fā)布的。
2005 年的時(shí)候,Linus 發(fā)明了 Git,讓包括 Linux 在內(nèi)的開(kāi)源項(xiàng)目的開(kāi)發(fā)變得更加有效率。
從此開(kāi)始,在過(guò)去的至少 15 年里,Linux 內(nèi)核的開(kāi)發(fā)流程和發(fā)布規(guī)律一樣一直保持著相對(duì)不變的節(jié)奏。
Linus 稱(chēng),看起來(lái)維護(hù) Linux 這一工作很平淡、枯燥甚至無(wú)聊,但我想這正是大家所需要的。因?yàn)橐粋€(gè)穩(wěn)定的更新流程可以讓使用者們感到安心。
事實(shí)上,Linus 認(rèn)為,他最開(kāi)心的是,Linux 這個(gè)項(xiàng)目盡管已經(jīng)有 30 多個(gè)年頭,仍沒(méi)有變得死氣沉沉。
(原話(huà):we’re not a dead project。)
他說(shuō),Linux 身上仍然會(huì)涌現(xiàn)出讓我感到驚訝和欣喜的新事物,其中還不乏創(chuàng)新。因此,這讓他對(duì) Linux 仍然充滿(mǎn)了干勁。
下一個(gè)內(nèi)核版本可能支持 Rust
自 2016 年以來(lái),Rust 每年都被 Stack Overflow 開(kāi)發(fā)者調(diào)查評(píng)為“最受歡迎的編程語(yǔ)言” 。
許多人也開(kāi)始呼吁在 Linux 內(nèi)核中增加 Rust 語(yǔ)言的支持,由此還誕生了一個(gè)叫做“Rust for Linux”的組織。
出現(xiàn)這一現(xiàn)象最主要的原因是用 Rust 編寫(xiě)會(huì)帶來(lái)更高的計(jì)算內(nèi)存資源利用率,以及更安全。
比如在 2019 年召開(kāi)的 Linux Security Summit 安全峰會(huì)上,有人就提出用 Rust 就可以通過(guò)其 type system 和 borrow checker 提供的 API,來(lái)避免掉 Android 和 Ubuntu 中 2/3 的內(nèi)存安全問(wèn)題。
那么,Rust 有沒(méi)有可能成為 Linux 內(nèi)核中除 C 之外的第二種官方語(yǔ)言呢?會(huì)上,Linus 也談到了這個(gè)問(wèn)題。
比較驚喜的是,他表示,大家都以為我們一直在規(guī)避風(fēng)險(xiǎn),但其實(shí)我們一定會(huì)把它加進(jìn)來(lái)的,也許就從下一個(gè)版本開(kāi)始!
也就是說(shuō),官方終于決定把擁抱 Rust,把 Rust for Linux 的 PR 合并到 Linux 內(nèi)核的主線了。此舉贏得了現(xiàn)場(chǎng)觀眾陣陣掌聲,Linus 用了好大功夫才平息住大家的興奮。
要知道,此前光是 Rust 的支持補(bǔ)丁就已發(fā)布到第七版了。
不過(guò),Linus 緊接著也提醒道,目前只會(huì)以非常有限的方式來(lái)嘗試。畢竟 25 年前想換 C++ 進(jìn)行一些內(nèi)核補(bǔ)丁操作時(shí)就失敗了。
(意思用 Rust 重寫(xiě) 2500 萬(wàn)行 C 代碼肯定是不可能的咯。)
接著有趣的一幕出現(xiàn)了。Linus 稱(chēng)自己其實(shí)是很愿意相信參與每一個(gè)參與 Linux 維護(hù)的開(kāi)發(fā)者的,但前提是他們沒(méi)有把事情搞砸。
一旦搞砸,Linus 表示大家都懂得,自己會(huì)“口出不遜”。但自己又意識(shí)到這樣很不禮貌,只好事后再道歉。
Linus 不好意思地說(shuō),這種情況已經(jīng)不是一回兩回了,“所以現(xiàn)在,請(qǐng)?jiān)试S我先給寫(xiě) Rust 的這幫程序員道個(gè)歉。”(手動(dòng)狗頭)
壓力現(xiàn)在來(lái)到了 Rust 這邊。
“開(kāi)源永遠(yuǎn)不能保證 100% 安全”
最后,話(huà)題轉(zhuǎn)到了開(kāi)源安全上。
最近,Linux 基金會(huì)的 OpenSSF(開(kāi)源安全基金會(huì))就透露,他們將支出 1.5 億美元用于對(duì)開(kāi)源軟件的安全防護(hù)。對(duì)此,Linus 稱(chēng),任何開(kāi)源項(xiàng)目包括 Linux 內(nèi)核在內(nèi),都不能奢望做到 100% 安全和 100% 無(wú) bug。
“bug 不出現(xiàn)在硬件就會(huì)出現(xiàn)在軟件,不出現(xiàn)在你的程序就會(huì)出現(xiàn)在別人的程序?!?(手動(dòng)狗頭)
“唯一的辦法就是建立多層防護(hù)(layers of security)?!?/p>
他進(jìn)一步解釋稱(chēng),Linux 內(nèi)核只是整個(gè)應(yīng)用程序堆棧的一層。在內(nèi)核內(nèi)部,進(jìn)程的不同部分已經(jīng)已經(jīng)具備多層安全性。對(duì)于負(fù)責(zé)構(gòu)建整個(gè)堆棧的開(kāi)發(fā)人員來(lái)說(shuō),最重要的是對(duì)堆棧中的任一層出現(xiàn)安全漏洞時(shí)應(yīng)該怎么處理都有一個(gè)概念。
One More Thing
目前 Linux 內(nèi)核最新版本為 5.19,Linus 口中的下一個(gè)版本叫 5.20 還是 6.0 也引起了很多網(wǎng)友的討論。
多數(shù)人認(rèn)為該叫 6.0 了。
不僅是因?yàn)檫@一版終于可能會(huì)合并 Rust 這一重大更新,另一點(diǎn)別忘了,Linux 的版本號(hào)向來(lái)不愛(ài)往“大數(shù)”堆,比如此前 3.19 版本結(jié)束后就直接跳到了 4.0~
你覺(jué)得呢?
參考鏈接:
https://venturebeat.com/2022/06/21/linus-torvalds-after-30-years-linux-is-not-a-dead-project/。