跳轉到

用 Rust 學習系統軟體設計#

一本以 Rust 為工具,從編譯器、直譯器、JIT、虛擬機,一路做到作業系統與 Docker 容器的實作型教科書。

全書的核心命題是:系統軟體是一條由上而下的信任鏈——直譯器信任作業系統的記憶體,JIT 信任 CPU 的指令集,容器信任核心的 namespace。理解任何一層,最好的方式就是親手寫出那一層,而 Rust 是五十年來第一門能同時勝任「核心層」與「語言層」兩端工作的語言。

目錄#

環境需求#

  • Linux x86-64(第 2、4、6、7 章的實驗需要 Linux;macOS 讀者建議使用虛擬機或容器)
  • Rust 1.75 以上(rustup update stable)
  • 第 6 章需要 qemu-system-x86_64;第 7 章需要 root 權限

全書地圖#

學習路線建議#

第 1–3 章是語言層(怎麼「跑起來」一段程式),第 4–5 章是執行層(怎麼「跑得快、跑得穩」),第 6–7 章是系統層(誰在底下撐住一切)。三層剛好對應 Rust 的三種用法:普通 cargo 專案、unsafe 與記憶體操作、以及 no_std 與裸機。

每一節的程式碼都可以直接放進一個 cargo new 出來的專案編譯執行。建議讀者邊讀邊打,遇到編譯錯誤時,把 Rustc 的錯誤訊息當作老師——它是本書最重要的助教。