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