本文介紹了一個用 Rust 語言開發輕量級類別 Unix 核心的項目,該項目實作了核心系統呼叫的子集。 Linux足以創造典型的工作環境。該專案創建於 2018 年,最初使用 C 語言,但在 2020 年,它完全從頭開始重建,並考慮了累積的經驗,切換到 Rust 以降低記憶體操作中出現錯誤的可能性。內核程式碼以 MIT 許可證發布。除了核心之外,Rust 專案還開發了 X11。服務器軟體包管理器、引導程式、安裝程式、實用程式集以及建置作業系統所需的其他元件。
此核心採用單片架構,目前僅支援 32 位元 x86 系統。內核程式碼庫包含 48.8 行程式碼(作為比較,內核 Linux (代碼量達 33 萬行)。它可以在 QEMU、VirtualBox 或本地運行。在目前的開發階段,Maestro 系統呼叫中已有 31%(437 個中的 135 個)實現。 Linux這足以啟動基於 bash 的控制台環境和標準 C 庫 Musl。基於 Maestro 的環境還可以運行 GNU coreutils 套件中的一些實用程序,例如 ls、cat、mkdir、rm、rmdir、uname 和 whoami。

Maestro 的可用功能包括:
- PS/2 鍵盤和終端的驅動程序,具有文字模式和對 ANSI 序列的部分支援。
- 支援虛擬記憶體的記憶體分配系統。
- 基於循環演算法的任務調度程序,支援 POSIX 訊號。
- PCI 設備的定義。
- IDE/PATA 驅動程式。
- 檔案系統 Ext2.
- 支援虛擬檔案系統 /tmp 和 /proc。
- 支援掛載 FS 和 MBR 和 GPT 磁碟分割區。
- initramfs 支援。
- 用於定時器和精確時間的 RTC 驅動程式。
- 支援載入核心模組。
- 能夠運行 ELF 格式的可執行檔。
目前,網路堆疊的創建工作正在進行中,之後計劃實現對檔案直接映射到記憶體和共享庫的支援。
來源: opennet.ru
