大師截圖
Rust 已經夠受歡迎 它已成為 Linux 以及其他作業系統中選擇整合的第二語言之一,例如 Android,它已經擁有 Rust 的部分程式碼,Windows 也有已給予批准等。
銹 已被證明是一種強大的語言並贏得瞭如此的信任 一些作業系統甚至是用這種程式語言創建的,僅舉幾例: 氧化還原, 我們也有從頭開始編寫的內核,例如 克爾拉 或中使用的內核 中國最近發射的衛星.
之所以提這個,是因為最近看到一則新聞引起了我的注意,那就是 提出了一個項目,其中開發了用 Rust 編寫的內核 並且與 Linux 部分相容。
這個項目的名字是 “老師” 正如所提到的, 是一個用 Rust 寫的類別 Unix 內核,實作了 Linux 內核的系統呼叫的子集 足以創建標準的工作環境。因此,「Maestro」專案並不是什麼新鮮事,因為開發人員提到該專案誕生於 2018 年,但當時它是用 C 編寫的,並且由於 Rust 的不同優點和特性,該專案是從零。
在專案頁面上 變更原因如下:
那時我決定切換到 Rust(我用這種語言進行的第一個專案),它有以下幾個優點:
- 利用從先前的錯誤中學到的教訓,從頭開始重新啟動專案。
- 比直接用C寫一個類似Linux的核心更有創新一點。畢竟當時就用Linux吧。
- 利用 Rust 語言的安全性來利用一些核心程式設計困難。使用 Rust 編寫系統可以讓您將記憶體安全的部分責任從程式設計師轉移到編譯器。
在核心開發中,調試非常困難,原因如下:
- 文件通常很難找到,並且 BIOS 實現可能存在錯誤(比您想像的更頻繁)。
- 啟動時,核心可以完全存取內存,並且可以寫入不應寫入的位置(例如,其自己的程式碼)。
- 解決記憶體洩漏問題並不容易。無法使用 valgrind 等工具。
- gdb 可以與 QEMU 和 VMWare 一起使用,但在不同的模擬器或虛擬機器上運行時,核心的行為可能有所不同。此外,這些模擬器可能不支援 gdb(例如 VirtualBox)。
- QEMU 或 VMWare 中的 gdb 支援缺少某些功能,gdb 有時甚至可能崩潰
和---關聯 該項目的特點,突出的是內核是整體的 目前僅在 86 位元模式下的 x32 系統上支援。核心程式碼庫涵蓋約 49 行,可在真實硬體和虛擬環境(例如 QEMU 或 VirtualBox)中執行。
在《Maestro》目前的開發中, 31%已實施 (135 年第 437 條) Linux 系統調用。 這是 足以載入基於 Bash 和 Musl 標準 C 函式庫的控制台環境。 此外,基於 Maestro 的環境可以運行 GNU coreutils 套件中的一些實用程式以及任何 Unix 系統的基本打包。目前,正在完成實施網路堆疊的工作,並正在開發一個
其中 Maestro 的可用功能脫穎而出 下列::
- 用於 PS/2 鍵盤和終端的控制器,具有文字模式並部分支援 ANSI 序列。
- 支援虛擬記憶體的記憶體分配系統。
- 基於循環演算法的任務調度程序,支援 POSIX 訊號。
- PCI 設備的定義。
- IDE/PATA 控制器。
- Ext2 檔案系統。
- 支援 /tmp 和 /proc 虛擬檔案系統。
- 能夠掛載 FS、MBR 和 GPT 磁碟分割區。
- initramfs 支援。
- RTC 控制器用於定時器和精確時間。
- 支援載入核心模組。
- 能夠運行 ELF 格式的可執行檔。
為 有興趣了解更多有關該項目的信息,您可以查看詳細信息 在下面的鏈接中。 對於對專案程式碼感興趣的人應該知道它是 在麻省理工學院許可下分發。