首頁 > 後端開發 > C++ > 【Rust自學】。簡介

【Rust自學】。簡介

Susan Sarandon
發布: 2024-12-30 15:04:10
原創
812 人瀏覽過

[Rust Self-Study] . Intro

1.0.1 前言

這個專案(包括程式碼和註解)是在我自學 Rust 的過程中記錄的。可能有不準確或表達不清的地方,還請大家諒解。如果您從中受益,那就更好了。

1.0.2 為什麼要使用 Rust

  • Rust 可靠且有效率

  • Rust 可以用相似的效能更高的安全性來取代 C 和 C ,並且不需要像 C 和 C 那樣頻繁地重新編譯來檢查錯誤。主要優點包括:

    • 記憶體安全(防止空指標取消引用、懸空指標和資料爭用)。
    • 線程安全(確保多線程程式碼在執行前是安全的)。
    • 避免未定義的行為(例如,陣列越界、未初始化的變數或存取已釋放的記憶體)。
  • Rust 提供現代語言功能(例如泛型、特徵、模式匹配)。

  • Rust 提供了現代工具鏈。 Rust 的 Cargo 與 Python 的 pip 有著相似的原理。與 C/C 繁瑣的依賴配置不同,Cargo 提供了類似 Python 的人性化依賴管理體驗,同時保持了 C/C 層級的效能。

1.0.3 適用場景

  • 當需要效能時:Rust 可以像 C 一樣精確地控制記憶體(使用不安全),同時也提供現代便利(例如,所有權系統和模式匹配)。另一方面,Python 優先考慮開發人員效率,但犧牲了效能。

  • 當記憶體安全至關重要時:Rust 在編譯時的靜態檢查保證了強大的記憶體安全性,非常適合需要防錯的場景,例如作業系統、嵌入式系統、網頁伺服器.

  • 當需要高效使用多核心處理器時:Rust 原生支援高效並發和多核心編程,且不犧牲安全性,這使得它在需要高吞吐量和並發任務的場景中特別有優勢(例如,網路伺服器、分散式系統、即時計算)。

Rust 在以下領域表現優異:

  • 網路服務
  • WebAssembly(Rust 和 C/C 在效能上明顯優於 C# 和 Java)
  • 命令列工具
  • 網路程式設計
  • 嵌入式設備
  • 系統程式設計

1.0.4 與其他語言的比較

Category Language Features
Machine Code Binary Closest to hardware, executed directly by CPU.
Assembly Assembly Uses mnemonics to replace machine code, e.g., MOV AX, BX.
Low-level C, C Close to hardware, provides limited abstraction.
Mid-level Rust, Go Performance similar to low-level languages with higher abstraction.
High-level Python, Java Higher-level abstraction, easier to read and use.

高階語言和低階語言並不是嚴格對立的,而是連續存在的:

  • 低階語言可以更好地控制硬件,但需要更複雜的編碼和較低的開發效率。

  • 更高級別的語言提供了更好的抽象和自動化,但可能會引入運行時開銷並失去細粒度的硬體控制。

Rust 的優點:

  • 高效能
  • 強大的安全保障
  • 對並發的優秀支援

Rust 作為中級語言的地位有以下優點:

  • C/C :效能優秀,但安全性欠缺; Rust 以可比較的效能確保安全。

  • Java/C#:確保記憶體安全(使用垃圾回收)並提供​​眾多功能,但效能較弱; Rust 以卓越的效能實現了類似的安全等級。

1.0.5 Rust 的歷史

Rust 最初是 Mozilla 的一個研究項目,Firefox 瀏覽器是一個著名的應用範例。

Mozilla 使用 Rust 開發了 Servo 實驗性瀏覽器引擎(於 2012 年啟動,第一個預覽版於 2016 年發布)。 Servo 的架構是完全並行的。不幸的是,2020 年 8 月,Mozilla 解雇了大部分 Servo 開發團隊。從2020年11月17日起,Servo被轉移到Linux基金會。 Servo 的部分功能已整合到 Firefox 中。

Quantum 版本的 Firefox 整合了 Servo 的 CSS 渲染引擎。 Rust 為 Firefox 帶來了顯著的效能提升。

1.0.6 Rust 使用者和案例研究

  • Google:Fuschia 作業系統,Rust 佔程式碼庫的 30%。

  • Amazon:基於 Linux 的作業系統,設計用於直接在裸機或虛擬機器上運行容器。

  • System76:完全使用 Rust 開發了下一代安全作業系統 Redox。

  • 史丹佛大學和密西根大學:用於 Google 加密產品的嵌入式即時作業系統。

  • Microsoft:使用 Rust 重寫了 Windows 中的某些低階元件。

  • 微軟:WinRT/Rust 專案。

以上是【Rust自學】。簡介的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板