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