Sylvestre Ledru 開始致力於用 Rust 重新實現 GNU Coreutils 在 COVID-19 大流行期間 並於上週在 2023 年 FOSDEM 期間展示。 名為 uutils 的成果現在被許多 Linux 發行版打包,並且還通過 Yocto 項目被一個著名的社交網絡使用。
Rust 和 C++ 語言的比較有一個共同點:突出 Rust 在內存安全方面優於 C++。 RisingWave 編輯解釋了為什麼他在離開 C++ 項目後用 Rust 從頭開始重寫了他的原生 Cloud DBMS。
“Rust 通過引入所有權規則在編譯時確保內存和線程安全。 它超越了 C++ 中常用的內存管理機制 RAII。 它有兩個優點。 第一個很明顯:一旦 Rust 編譯器驗證了我們的程序,我們將不會在運行時出現任何段錯誤或競爭條件,這需要數十小時的調試,尤其是在高度並發的代碼庫中,並且大部分是異步的。 第二個更微妙:Rust 的編譯器簡單地限制了失敗的類型,這減少了可能導致此類錯誤行為的緊密嵌套代碼片段。 使用確定性執行可顯著改善錯誤複製。 »
GNU Coreutils 是一個包 來自 GNU 項目 其中包含許多類 Unix 操作系統所需的基本工具: cp(複製文件或目錄)、mkdir(創建目錄)等。 開發人員提供了 Rust 語言的重新實現。
目標之一:使該軟件包可在其他操作系統上使用:Windows、macOS、Android、FreeBSD 等。 此舉重新引發了關於是繼續使用 C 和 C++ 啟動新項目還是簡單地選擇 Rust 語言的爭論。
“在內存管理方面,Rust 語言默認提供安全保證。 這不是 C 和 C++ 的情況,它們在 Mozilla 中的使用是內存安全問題的原因”,Sylvestre Ledru 強調說。
然而,Bjarne Stroustrup 不同意 Rust 和 C++ 之間的比較將保護軟件的概念限制為保護內存的概念:
“‘安全’的概念沒有單一的定義,我們可以通過組合編程風格、支持庫和利用靜態分析來實現多種類型的安全。 因此,Bjarne Stroustrup 建議,在軟件安全方面,從 C++ 中可以獲得什麼取決於開發人員,特別是,取決於該語言提供的工具的知識、他對編譯器的掌握等。
谷歌工程師意識到 C++ 為他們提供的可能性,已經開始用這種語言創建貸款驗證器。 它是 Rust 編譯器的一個特性,通過內存指針分配管理來確保內存安全。
谷歌團隊, 其出版物出現在上一年的第三季度, 得出的結論是 類 C++ 系統不適合這樣的練習。 並 C++中的內存安全是可以實現的 在程序執行期間進行控制。 換句話說, 使用緩慢的 C++ 代碼,可以達到與 Rust 相當的安全級別.
RusingWave 編輯器的發布是因為 Rust 從多年來一直作為 C 和 C++ 替代品的其他語言中脫穎而出。 事實上,Linux 內核對 Mozilla 的系統編程語言越來越開放。