发布用 Rust 编写的 Redox OS 0.7 操作系统

经过一年半的开发,采用 Rust 语言和微内核概念开发的 Redox 0.7 操作系统已经发布。 该项目的开发成果是在免费的 MIT 许可证下分发的。 为了测试 Redox OS,提供了 75 MB 大小的安装和实时映像。 这些程序集是为 x86_64 架构生成的,可用于具有 UEFI 和 BIOS 的系统。

在准备新版本时,主要重点是确保它可以在真实硬件上运行。 主要创新点:

  • Bootloader已经完全重写,其中BIOS和UEFI系统上的启动代码是统一的,主要用Rust编写。 更改引导加载程序显着扩大了支持的硬件范围。
  • 除了错误修复之外,还在内核中进行了改进性能和扩展硬件支持的工作。 CPU 特定的变量已转换为使用 GS 寄存器。 提供所有物理内存的反射(映射),停止使用递归内存页。 内联插入中的汇编代码已被重写,以提高与未来编译器版本的兼容性。
  • 添加了对 AArch64 架构的初始支持。
  • 已转换为以 UTF-8 编码处理所有文件路径。
  • 用于使用 ACPI AML(ACPI 机器语言)规范 - uefi.org 的代码已从内核移至在用户空间中运行的 acpid 后台进程。
  • Initfs 内容已移至新文件,从而更容易生成包。
  • RedoxFS文件系统已被重写并切换为使用CoW(Copy-on-Write)机制,其中更改不会覆盖信息,而是保存到新位置,这显着提高了可靠性。 RedoxFS 的新功能包括支持事务更新、使用 AES 算法进行数据加密以及使用数字签名对数据和元数据进行身份验证。 确保系统和引导加载程序中的 FS 代码共享。
  • 该项目开发的标准 C 库 Relibc 的改进仍在继续,该库不仅能够在 Redox 中工作,而且还能在基于 Linux 内核的发行版中工作。 这些更改使得将各种程序移植到 Redox 变得更加容易,并解决了许多用 C 编写的程序和库的问题。
  • 已经准备好可以在 Redox 中运行的 rustc 编译器版本。 剩下的任务包括优化性能和调整货物包管理器以在氧化还原环境中工作。

发布用 Rust 编写的 Redox OS 0.7 操作系统

该操作系统按照Unix哲学开发,借鉴了SeL4、Minix和Plan 9的一些思想。Redox采用微内核概念,在内核级别只提供进程间通信和资源管理,其他所有功能都放在在可用于内核和用户应用程序的库中。 所有驱动程序都在隔离沙箱环境中的用户空间中运行。 为了与现有应用程序兼容,提供了一个特殊的 POSIX 层,允许许多程序无需移植即可运行。

该系统应用“一切都是 URL”的原则。 例如,URL“log://”可用于日志记录,“bus://”可用于进程间通信,“tcp://”可用于网络通信,等等。 模块可以实现为驱动程序、内核扩展和自定义应用程序,可以注册自己的 URL 处理程序,例如,您可以编写一个 I/O 访问模块并将其绑定到“port_io://”URL,然后您可以通过打开 URL“port_io://60”来使用它来访问端口 60。

Redox 中的用户环境是围绕 Orbital 自己的图形 shell(不要与使用 Qt 和 Wayland 的其他 Orbital shell 混淆)和 OrbTk 工具包构建的,该工具包提供了类似于 Flutter、React 和 Redux 的 API。 Netsurf 用作网络浏览器。 该项目还开发了自己的包管理器、一组标准实用程序(binutils、coreutils、netutils、extrautils)、ion 命令 shell、relibc 标准 C 库、类 vim 的钠文本编辑器、网络堆栈和文件系统。 配置是用 Toml 语言设置的。

来源: opennet.ru

添加评论