發布用 Rust 編寫的 Redox OS 0.8 操作系統

使用 Rust 語言和微內核概念開發的 Redox 0.8 操作系統已經發布。 該項目的開發是在免費的麻省理工學院許可下分發的。 為了測試 Redox OS,提供了 768 MB 的演示版本,以及具有基本圖形環境的圖像 (256 MB) 和用於服務器系統的控制台工具 (256 MB)。 這些程序集是為 x86_64 架構生成的,可用於具有 UEFI 和 BIOS 的系統。 除了 Orbital 圖形環境之外,演示圖像還包括 DOSBox 模擬器、精選遊戲(DOOM、Neverball、Neverputt、sopwith、syobonaction)、教程、rodioplay 音樂播放器和 Sodium 文本編輯器。

操作系統按照Unix哲學發展,借鑒了SeL4、Minix和Plan 9的一些思想。Redox採用微內核概念,內核級只提供進程間通信和資源管理,其他功能全部放在在可同時用於內核和用戶應用程序的庫中。 所有驅動程序都在隔離的沙箱環境中的用戶空間中運行。 為了與現有應用程序兼容,提供了一個特殊的 POSIX 層,允許許多程序無需移植即可運行。

該系統應用“一切都是URL”的原則。 例如,URL“log://”可用於日誌記錄,“bus://”用於進程間通信,“tcp://”用於網絡通信等。 可以作為驅動程序、內核擴展和自定義應用程序實現的模塊可以註冊自己的 URL 處理程序,例如,您可以編寫一個 I/O 訪問模塊並將其綁定到“port_io://”URL,之後您可以通過打開 URL“port_io://60”來使用它來訪問端口 60。

Redox 中的用戶環境是圍繞 Orbital 自己的圖形外殼(不要與使用 Qt 和 Wayland 的其他 Orbital 外殼混淆)和 OrbTk 工具包構建的,它提供了類似於 Flutter、React 和 Redux 的 API。 Netsurf 用作網絡瀏覽器。 該項目還開發了自己的包管理器、一組標準實用程序(binutils、coreutils、netutils、extrautils)、ion 命令 shell、relibc 標準 C 庫、類似 sodium v​​im 的文本編輯器、網絡堆棧和文件系統。 配置是用 Toml 語言設置的。

新版本繼續致力於確保在真實硬件上工作。 除了 x86_64 架構之外,還添加了在 32 位 x86 系統(i686、Pentium II 和更新版本)上工作的能力。 移植到 CPU ARM64 (aarch64) 正在進行中。 尚不支持在真正的 ARM 硬件上工作,但可以在 QEMU 中模擬 ARM64 時啟動。 默認情況下,啟用音頻子系統並提供對多顯示器配置的初始支持(在具有 UEFI 幀緩衝區的系統上)。 Redox OS 支持的設備包括 AC'97 和 Intel HD Audio 聲音芯片、通過 VESA BIOS 或 UEFI GOP API 的圖形輸出、以太網(Intel 1/10 千兆以太網、Realtek RTL8168)、輸入設備(鍵盤、鼠標、觸摸板) )、SATA(AHCI、IDE)和 NVMe。 對 Wi-Fi 和 USB 的支持尚未準備就緒(USB 僅適用於 QEMU)。

其他創新:

  • 合併了 BIOS 和 EFI 系統的引導映像。
  • 將 clone 和 exec 系統調用的實現移至用戶空間。
  • 簡化的下載過程。 引入了一個引導程序,它由內核運行並提供 ELF 文件的進一步加載,例如 init 進程。
  • 添加升級程序以允許 setuid 程序(例如 sudo)工作。
  • 為了簡化後台進程的創建和安裝,建議使用 redox-daemon crate 包。
  • 構建系統已經過重新設計,可以在同一源代碼樹中構建不同的體系結構。 為了簡化不同配置的組裝,建議使用 build.sh 腳本。 添加了對使用 podman 工具包構建的支持。 kernel、bootloader和initfs的組裝與其他包統一。
  • 添加了用於構建示例程序的演示配置,這些示例程序未包含在具有圖形環境的基本引導映像中。
  • audiod 音頻子系統中添加了對編程音量控制的支持。
  • 添加基於AC'97的聲卡驅動。 改進了英特爾高清音頻芯片的驅動程序。
  • 添加了 IDE 控制器的驅動程序。
  • 改進了對 NVMe 驅動器的支持。
  • 改進了 PCI、PS/2、RTL8168、USB HID、VESA 驅動程序。
  • 安裝過程的組織已經過重新設計:引導加載程序、引導程序、內核和 initfs 現在位於 /boot 目錄中。
  • 內核簡化了內存工作,增加了從用戶級別操作地址空間的能力。
  • Orbital 圖形外殼中添加了對多顯示器系統的支持,改進了鼠標光標處理,並添加了一個指示器來更改音量。 該菜單能夠將應用程序分類。

來源: opennet.ru

添加評論