After a year and a half of development, the release of the Redox operating system 0.7 has been published, developed using the Rust language and microkernel concept. The project’s developments are distributed under the MIT open-source license. Installation and Live images for testing Redox OS are provided, with a size of 75 MB. Builds are created for the x86_64 architecture and are available for systems with UEFI and BIOS.
In preparing the new release, the main focus was on ensuring operation on real hardware. Key innovations:
- The bootloader has been completely rewritten, with a unified and mostly Rust-written code for booting on systems with BIOS and UEFI. The change in the bootloader has significantly expanded the range of supported hardware.
- In the kernel, in addition to bug fixes, work has been done to enhance performance and expand hardware support. CPU-specific variables have been transitioned to use the GS register. A mapping of all physical memory has been ensured, and the use of recursive memory pages has been discontinued. The inline assembly code has been rewritten for improved compatibility with future compiler releases.
- Initial support for the AArch64 architecture has been added.
- All file paths are now processed in UTF-8 encoding.
- Code for working with ACPI AML (ACPI Machine Language) Specification — uefi.org has been moved from the kernel to the background process acpid, which runs in user space.
- The contents of Initfs have been moved to a new file, simplifying package creation.
- The RedoxFS file system has been rewritten and transitioned to use the CoW (Copy-on-Write) mechanism, where changes do not overwrite information but are saved to a new location, resulting in a significant increase in reliability. New features of RedoxFS include support for transactional updates, data encryption using the AES algorithm, and digital signatures for data and metadata verification. The sharing of FS code between the system and the bootloader has been ensured.
- The ongoing improvements to the project's standard C library, Relibc, are aimed at making it capable of functioning not only in Redox but also in Linux kernel-based distributions. The changes made have simplified the porting of various programs to Redox and addressed issues with many programs and libraries written in C.
- A version of the rustc compiler has been prepared that can run in Redox. Among the remaining tasks, performance optimization and adapting the cargo package manager for use in the Redox environment are noted.

The operating system evolves in accordance with Unix philosophy and borrows some ideas from SeL4, Minix, and Plan 9. Redox employs a microkernel concept, where the kernel level provides only process interaction and resource management, while all other functionality is implemented in libraries that can be used by both the kernel and user applications. All drivers run in user space within isolated sandbox environments. To ensure compatibility with existing applications, a special POSIX layer is provided, allowing many programs to run without porting.
The system applies the principle of 'everything is a URL.' For example, the URL 'log://' can be used for logging, 'bus://' for process interaction, 'tcp://' for network communication, and so on. Modules that can be implemented as drivers, kernel extensions, and user applications can register their URL handlers; for instance, a module for accessing input/output ports can be linked to the URL 'port_io://', after which it can be accessed through the URL 'port_io://60'.
The user environment in Redox is built upon its own graphical shell, Orbital (not to be confused with another Orbital shell using Qt and Wayland), along with the OrbTk toolkit, which offers an API similar to Flutter, React, and Redux. Netsurf is used as the web browser. The project is also developing its own package manager, a set of standard utilities (binutils, coreutils, netutils, extrautils), the ion command shell, the standard C library relibc, a vim-like text editor called sodium, a networking stack, and a file system. Configuration is specified in Toml.
Source: opennet.ru
