Redox OS 是一個幾乎完全以 Rust 語言編寫的通用操作系統及周圍生態(例如文件系統、顯示伺服器及 Rust 版本的 libc)。其遵循微內核架構,在一定程度上兼容於 POSIX。
該項目於日前發布了 Redox 0.5 版本。自上次發布 Redox OS 以來已經過去了一年零四天。在此期間,Redox 團隊一直在努力改善 Redox 生態系統。大部分努力集中於 relibc,這是一個用 Rust 編寫並由 Redox OS 項目維護的新 C 庫;此外,cookbook 添加了新的軟體包。現在,relibc 的能力已經超過了 Redox 此前依賴的 C 庫 newlib。這一版本新增了許多重要的庫和程序。
粗略看來,此版本 ISO 鏡像與上一個正式發布的版本 0.3.5 無甚區別——擁有相同的登錄屏幕以及相同的默認背景和應用程序。但這本身就是一項成就。因為關於 relibc 的工作很密集,幾乎觸及了系統的每個部分。
一旦深入了解,就會發現變化明顯。事件系統經過重新設計,為 select
和 poll
提供了正確的支持,並實現了完整的內存映射支持。實現了 pthreads
,以及一些與信號相關的系統調用。所有這些變化都為 LLVM 提供了更好的支持。
此外,還有基於 coreboot 和 EFI 的新引導載入程序的新鏡像文件。Redox 已經做了大量工作來為 EFI Rust 開發提供庫以及在 Rust 中開發 coreboot payloads。這些 bootloader 項目可以根據需要改作它用。請參閱以下項目:
- bootloader-coreboot : 可以引導 Redox 的 Coreboot payload
- bootloader-efi : Redox 的 EFI bootloader
- coreboot-table : coreboot 表的解析器
- uefi : UEFI協議定義
- uefi_alloc : UEFI分配器
- uefi_std : UEFI運行時
更多變化信息載於其發布通告。
Redox 是編寫一個完整、功能齊全的通用操作系統的嘗試,關注於安全性、自由性、可靠性、正確性和實用性。
該項目團隊希望能夠在沒有障礙的情況下使用它作為 Linux 的替代品。它一定程度上兼容於 POSIX,因而應該能夠在無需大量修改的情況下運行大多數 Linux 程序。
該項目旨在建立一個完整、安全的 Rust 生態系統。這是一種設計選擇,有望提高正確性和安全性。
與其他類 Unix 內核相比,Redox 項目希望通過使用安全默認值並在可能的情況下禁止不安全配置來改進安全性設計。
除了僅 16000 行代碼的內核之外,Redox 項目還維護了諸多直接相關的周邊項目,這些項目大多是 Redox 操作系統的一部分。例如,
- TFS: 文件系統,受 ZFS 啟發;
- Ion: Redox shell;
- Orbital: Redox 顯示伺服器;
- OrbTK: A widget toolkit.
- pkgutils: Redox 包管理庫及其命令行前端;
- Sodium: 類似 Vi 的編輯器;
- ralloc: 內存分配器;
- libextra: libstd 的補充,在 Redox 代碼中廣泛使用;
- games-for-redox: 一系列小遊戲(類似 BSD-games);
- 以及一些其它項目(鏈接)。
需要說明的是,Redox 目前還處於起步階段,距離實際應用還有很遠的距離。但是,Redox 已經有了可用的圖形化界面支持,並能夠在虛擬機中運行。
Redox OS 主頁:
https://www.redox-os.org/ 。
本文的主要內容均翻譯或衍生自 Redox OS 網站;封面及文內圖片亦來自此處。