<ins id="jxy61"><option id="jxy61"><menu id="jxy61"></menu></option></ins>
          1. 煉數成金 門戶 大數據 編程開發 查看內容

            用Rust重寫Linux內核,這可能嗎?

            2021-3-24 15:06| 發布者: 煉數成金_小數| 查看: 9344| 評論: 0|原作者: 萬佳、王強|來自: 架構頭條

            摘要: 眾所周知,Linux 是 C 語言的代言人。但是,時代變了,Rust 興起并且正贏得更多人的支持,它開始逐漸扮演 Linux 系統語言的角色。在 2020 年 Linux Plumbers 峰會上,開發人員認真考慮了將 Rust 語言用于 Linux 內聯 ...
            在 C 語言唱主角的 Linux 世界,Rust 語言來了。

            眾所周知,Linux 是 C 語言的代言人。但是,時代變了,Rust 興起并且正贏得更多人的支持,它開始逐漸扮演 Linux 系統語言的角色。

            1、Rust 在 Linux 圈子中的嘗試
            在 2020 年 Linux Plumbers 峰會上,開發人員認真考慮了將 Rust 語言用于 Linux 內聯代碼的想法。

            目前,已經有很多 Linux 中的 Rust 內容被推向市場。比如,2020 年,AWS 發布了 Bottlerocket,這是一種專為運行容器而打造的基于 Linux 的開源操作系統,其中包含大量的 Rust 代碼。

            Sylvestre Ledru 白天是 Mozilla 的主管,晚上是 Debian Linux 開發人員。他已經使用 LLVM 編譯器基礎架構及其 Clang C 語言前端和工具鏈基礎架構,將一個 Rust 版本的 Coreutils 移植到了 Linux 中。據了解,Coreutils 是 GNU Shell 核心實用程序。

            基于這些內容,他已經啟動了 Linux 并運行了一些更受歡迎的 Debian 軟件包。雖然 Ledru 承認這一平臺還沒有準備好投入生產,但經過很多繁重的工作后,它現在已經可以使用了?傆幸惶,它會發展到替代 GNU Coreutils 的地步。

            2、Rust 很香,有機會進入 Linux
            某種程度上,Rust 之所以受歡迎,是因為開發人員用 Rust 更容易編寫出安全的軟件。一直以來,安全性深深困擾著微軟和谷歌等公司。比如,微軟的研究人員稱,該公司每年修復的漏洞中有 70% 與內存安全有關。同樣,谷歌調查發現,Chrome 代碼庫中所有嚴重的安全漏洞,70% 是內存管理的安全漏洞。

            這些安全問題正好可以用 Rust 來解決。AWS 產品經理 Samartha Chandrashekar 表示,“它有助于確保線程安全,并防止與內存相關的錯誤,例如可能導致安全漏洞的緩沖區溢出。

            在 Linux 圈子里,2019 年 Linux 安全峰會揭示,大約三分之二的 Linux 內核漏洞來自內存安全問題。

            從理論上講,Rust 可以使用本質上更安全的應用程序接口(API)完全避免這些漏洞。

            那么,關于 Linux 中 Rust 地位,Linux 開發人員 Nelson Elhage 總結道:Linux Rust 的支持者并不是“提議將 Linux 內核用 Rust 重寫;他們只是努力想做到讓新的代碼可以用 Rust 來編寫。Rust 支持的三個潛在關注點包括利用內核中的現有 API、架構支持”,以及處理 Rust 和 C 之間的應用程序二進制接口(ABI)兼容性。

            3、Linux 之父的觀點:驅動程序可能率先 Rust 化
            當然,Rust 能否替代 C 語言,主導 Linux 世界?
            Linux 之父 Linus 和 Linux 穩定內核的維護者 Greg Kroah-Hartman 或許最有發言權。

            Linus 一直在“等待與觀察”。他說:“我對這個項目很感興趣,但我認為它是由非常熱衷于 Rust 的人們推動的,而且我想看看它在實踐中的效果究竟如何!

            “從個人來說,”他表示,“絕不會‘推動’Linux 中的 Rust 運動,但考慮到 Rust 所承諾的優勢和它能夠避免的一些安全隱患,我愿意接受它,但我也知道有時諾言不會兌現!

            Linus 認為,Rust 的首要目標似乎是驅動程序,這是因為在那里,你可以找到許多不同的可行目標,并且內核的這些部分相當小巧且獨立。對某些人來說,這可能沒那么有趣,但它是非常明顯的目標。

            在他看來,首先考慮驅動程序的另一個原因是“任何對驅動程序的初期嘗試都發生在架構層面。很多驅動程序只關聯了少數幾個目標架構,因此 Rust 代碼在某些架構上不被支持的問題在這里并不算什么大事!

            Linux 穩定內核的維護者 Greg Kroah-Hartman 認同 Linus 的說法,“驅動程序可能是這類嘗試的推薦領域,因為它們是內核源代碼依賴樹的'末端枝葉'。它們依賴于核心內核功能,但沒有任何內容依賴它們”。

            Linus 知道有些人完全不喜歡用戶空間中有 Rust 的存在!叭藗冊诒г褂脩艨臻g中的'Rust 化'對未來的內核來說并不是什么好跡象,但究竟如何,我們可以拭目以待。內核與用戶空間項目是不一樣的——內核在某些方面更難處理(我們使用了很多非常奇怪的頭文件,這些文件推動了可以稱為“C”的邊界),但是在其他許多方面又更容易(主要因為內核是完全自包含的,因此最終二進制文件不依賴其他項目”。

            “一切都歸結為如何將用 C 編寫的內核核心結構和長期規則之間的交互映射到 Rust 結構和長期規則中,以讓 Rust 編寫的驅動程序能夠正確使用它們。想要將所有這些組織起來的開發人員將需要大量的用心努力,我祝他們好運!盙reg Kroah-Hartman 補充說。

            4、寫在最后:
            盡管幾乎可以肯定,Linux 從 C 移植到 Rust 中這樣的事情不會很快發生,但是將基于 Rust 的用戶空間程序、驅動程序以及最后,將基于 Rust 的 Linux 內核引入 Linux 操作系統的前景引發了很多興趣和實際行動。

            聲明:文章收集于網絡,版權歸原作者所有,為傳播信息而發,如有侵權,請聯系小編刪除,謝謝!

            歡迎加入本站公開興趣群
            軟件開發技術群
            興趣范圍包括:Java,C/C++,Python,PHP,Ruby,shell等各種語言開發經驗交流,各種框架使用,外包項目機會,學習、培訓、跳槽等交流
            QQ群:26931708

            Hadoop源代碼研究群
            興趣范圍包括:Hadoop源代碼解讀,改進,優化,分布式系統場景定制,與Hadoop有關的各種開源項目,總之就是玩轉Hadoop
            QQ群:288410967 

            鮮花

            握手

            雷人

            路過

            雞蛋

            相關閱讀

            最新評論

            熱門頻道

            • 大數據

            即將開課

             

            GMT+8, 2021-4-9 01:00 , Processed in 0.117245 second(s), 25 queries .

            年轻人手机在线观看