SteinsOS 是一個以 Rust 寫成、支援單核 Armv8 的作業系統,並具備以下特徵:
這份文件將會著重在 SteinsOS 內部的設計。有關於作業系統的原理,請參閱以下資料:
為什麼開頭就先講 Memory Allocator ?
因為,有 Memory Allocator,就可以用 alloc
裡各式各樣的 collections,非常方便。
在一開始提到,實作 Memory allocator 是為了滿足 alloc
的需求。
那麼,給 alloc
用的是哪個 Allocator 呢?
查看 kernel/src/lib.rs
是 Slab。
Buddy 用來管裡整個記憶體,而 Slab 是為了滿足 alloc
的需要。
畢竟,你總不能連 8 bytes 的記憶體分配請求,都給予一整個 4096 bytes 的分頁吧。
有了這兩種 Allocator,我們就可以盡情使用 alloc
裡各式 collections
了
Operating Systems: Three Easy Pieces
Writing an OS in Rust
Redox OS
xv6
Arm Architecture Reference Manual Armv8, for A-profile architecture