2022年,Rust 將成爲 Linux 內核第二官方語言?

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"本週,Linux 內核和 Rust on Linux 的主要開發者 Miguel Ojeda 向 Linux Kernel 郵件列表提交了一個"},{"type":"link","attrs":{"href":"https:\/\/lore.kernel.org\/lkml\/[email protected]","title":null,"type":null},"content":[{"type":"text","text":"新補丁 (v2)"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",進一步推進了 Rust for Linux 的工作進展。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"郵件內容指出,新的補丁將爲 Linux 內核增加對 Rust 作爲第二語言的支持,並且對 Rust 的整體支持進行了多項改進。具體來說,Rust 代碼現在已經依賴於穩定的 Rust 編譯器而不是之前的 beta 版本狀態。Ojeda 稱,接下來每次發佈新的穩定 Rust 編譯器時,Linux 上的 Rust 都會進行遷移。目前其已經遷移到了上週剛發佈的 Rust 1.57.0 版本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"展望未來,Ojeda 繼續提到 “通過升級編譯器,我們已經能夠把我們使用的一些不穩定的特性從列表中刪除。我們將繼續升級,直到我們不再依賴任何不穩定的特性,到那時,我們可能要開始宣佈支持 Rust 的最低版本,就像對 GCC 和 Clang 那樣。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"學術界和工業界的支持"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"隨着 Rust 的興起,許多開發人員越來越有興趣在 Linux 內核中嘗試 R"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"ust。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"2019 年,Alex Gaynor 和 Geoffrey Thomas 在 Linux Security Summit 安全峯會上進行了演講,他們介紹了 Rust 內核模塊的一個原型,並提出了在內核中採用 Rust 的理由。此次演講重點是在安全問題上,其中指出在 Android 和 Ubuntu 中,約有三分之二的內核漏洞被分配到 CVE 中,這些漏洞都是來自於內存安全問題。原則上,Rust 可以通過其 type system 和 borrow checker 所提供的更安全的 API 來完全避免這類錯誤。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在 "},{"type":"link","attrs":{"href":"https:\/\/www.linuxplumbersconf.org","title":null,"type":null},"content":[{"type":"text","text":"2020 Linux Plumbers Conference"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 上,Thomas 、Gaynor、Rust 語言團隊的聯合領導者 Josh Triplett 以及其他一些對此感興趣的開發者以“Barriers to in-tree Rust”爲主題,討論了想要把 Rust 引入到 Linux 內核項目中作爲一種可選的開發語言還需要解決的一些問題。其中 in-tree 是 Linux 術語,意思是與內核源代碼樹本身一起存儲並與之一起構建內核模塊。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"與會者強調,他們並不是提議將 Linux 內核重寫成 Rust,只是關注於走向一個可以用 Rust 編寫新代碼的世界。本次討論集中在 Rust 支持的三個潛在關注點上:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"對現有 C API 的綁定(Binding to existing C APIs);"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"架構支持(Architecture support);"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"關於 Rust 和 C 之間 ABI 與內核的兼容性(ABI compatibility with the kernel)。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"對此,Linux 之父 Linus Torvalds 也曾發表看法:Linux 最終不會用 Rust 編寫,沒有人會用 Rust 重寫內核的 2500 萬行 C,但是他也看到了 Rust 的優勢,鼓勵採用緩慢但穩定的方法將 Rust 引入 Linux,同時他表示將 Rust 接口用於驅動程序和其他非核心內核程序是有道理的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"此外,Ojeda還在郵件中透漏繼 ARM、谷歌和微軟之後,紅帽方面也表達了他們對該項目的支持意向。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"關於 Rust"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#202122","name":"user"}}],"text":"Rust 最初是由 Mozilla 研究院的 Graydon Hoare 設計創造,然後在 Dave Herman, Brendan Eich 以及很多其他人的貢獻下逐步完善。自 2016 年以來,Rust 每年都在 Stack Overflow 開發者調查中被評爲“最受歡迎的編程語言” 。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#202122","name":"user"}}],"text":"爲什麼 Rust 如此受歡迎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"Rust 致力於成爲優雅解決高併發和高安全性系統問題的編程語言,適用於大型場景,即創造維護能夠保持大型系統完整的邊界。這就導致了它強調安全,內存佈局控制和併發的特點。標準Rust性能與標準C++性能不相上下。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"Rust 基金會成立"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"今年二月份,Rust 基金會"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/fLSfcs25IQBSAKFKh9zH","title":null,"type":null},"content":[{"type":"text","text":"宣佈"}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"正式成立。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"Rust 基金會是一個新的獨立的非盈利組織,負責管理 Rust 編程語言及生態。該組織將致力於爲那些管理和開發該項目的維護者提供支持。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"Rust 基金會由 AWS、華爲、谷歌、微軟和 Mozilla 聯合成立,並承諾在兩年的時間裏,投入 100 萬美元的預算,用於 Rust 項目的開發、維護和推廣。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"Rust 基金會臨時執行董事,核心團隊成員 Ashley Williams 當時表示,“這標誌着 Rust 在多維度上都邁出了一大步,更重要的是,一些全球行業領先的公司做出了正式的財務上的預判:Rust 將是未來企業生產中不可缺少的技術。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"Rust 審查團隊辭職風波"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"前不久,Rust 編程語言的審覈團隊(Mod 團隊)在 GitHub 上發表了一封辭職聲明,並宣佈即刻生效,根據公告,該團隊辭職是爲了抗議 Rust 核心團隊(Core team):“除了自己,他們不受任何人的監督和約束。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"根據 Matthieu M 在 Reddit 上的表述,導致 Mod 團隊直接辭職的原因是其與 Rust 核心團隊數月來一直不斷惡化的矛盾。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"此次離職風波發生後,Rust HQ 發佈了一份"},{"type":"link","attrs":{"href":"https:\/\/www.theregister.com\/2021\/11\/23\/rust_moderation_team_quits\/","title":null,"type":null},"content":[{"type":"text","text":"聲明"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":":"}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Rust 基金會致力於支持該項目。我們尊重項目團隊的獨立性和任何決定,我們知道今天所做的變化。我們希望項目和語言蓬勃發展,並將繼續努力實現這一願景。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"延伸閱讀:"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/798bgzaO1ujBgzQsAGHC","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/www.infoq.cn\/article\/798bgzaO1ujBgzQsAGHC"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"小結"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"Ojeda 曾在今年夏天表示,“"},{"type":"text","text":"當前項目還尚未完成,若高級維護人員接受當前的更改並希望切換到內核中工作,我們就準備好進入主線。 "},{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在本次郵件中,Ojeda 還承諾開始“每兩週左右”提交內核補丁,以加快進度,目前工作進展順利,希望在 2022 年的某個時候看到 Linux 內核中的第一個 Rust 代碼。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"具體何時實現?我們也將持續關注此事進展。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"參考鏈接:"},{"type":"link","attrs":{"href":"https:\/\/www.zdnet.com\/article\/rust-takes-a-major-step-forward-as-linuxs-second-official-language\/","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/www.zdnet.com\/article\/rust-takes-a-major-step-forward-as-linuxs-second-official-language\/"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.theregister.com\/2021\/12\/07\/rusty_linux_kernel_draws_closer\/","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/www.theregister.com\/2021\/12\/07\/rusty_linux_kernel_draws_closer\/"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章