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/ 。