以Rust开发的Redox OS将达自我托管里程碑

由Rust所开发的操作系统Redox OS,即将进入可自我托管(Self-hosting)的重要里程碑,其创建者Jeremy Soller提到,在几个月之后,Rust编译器Rustc就能在Redox OS上运行了。

而自我托管之所以对于新操作系统开发很重要的原因,是因为当新系统要执行的软件,无法在新系统上编写,就需要在其他可自我托管的系统上,以交叉编译的方式构建,再将软件放在新系统可读取的存储设备进行交换,而当新操作系统可自我托管,则软件开发速度便能大幅提升。

Redox OS是一个类Unix的微核心(Microkernel)操作系统,主要的特色是使用内存安全的程序语言Rust所开发,讲求安全、稳定和高性能。Redox OS是开源软件,以MIT授权对外发布。在今年3月发布Redox OS 0.50版本,支持Cairo和Pixman等多种函数库和组件。

Redox OS开发者,同时也是Linux硬件厂商System76首席工程师的Jeremy Soller,在Redox OS的官方博客提到,Redox OS已经可以在System76的笔记本电脑Galago Pro上,持续地运行,完全支持键盘、触摸板、存储和以太网络等设备。由于可让程序快速在Redox中执行的Redoxer工具,现在可以进行构建、执行和测试,因此Redox变得易于交叉编译。Redoxer可以自动管理Redox工具链,并根据需要在容器中执行Redox可执行文件。

不过,Jeremy Soller提到,Redox OS一直存在的问题,是还无法在Redox OS上编译Rust二进制文件。在2017年的时候,Redox OS项目通过参加Google Summer of Code,推进了这个目标的完成进展,接着,他们又以Rust重新撰写了C函数库libc发布relibc,并获得大量贡献者的帮助,提升POSIX C函数库的兼容性,而大幅增加了Redox OS可用组件的数量。

虽然Redox OS已经大量地支持Rust Crates,使得自我托管的目标越来越接近,但是在发现relibc中一些错误后,Jeremy Soller表示,Rustc不再能够只执行静态链结,因此他们又将工作重点转移到relibc的ld_so上,要进一步提供动态连接。不过,这使得Rustc移植到Redox OS的工作需要先暂停。

Jeremy Soller强调,用户在几个月内,就能在Redox OS执行Rust编译器Rustc,毕竟可以在Redox OS上构建Redox OS,是目前Redox OS项目第一优先的工作。他补充说明,由于Redox OS微核心的设计,驱动程序在用户空间中执行,因此即便重新编译和重新生成驱动程序,Redox OS都不需要停机,而这将让操作系统的开发速度变得更快。