After a year and a half of development, the release of the Redox 0.6 operating system was unveiled,which is developed using the Rust language and the microkernel concept, as well as developing according to the Unix philosophy and borrowing some ideas from SeL4, Minix and Plan 9.
Redox uses the microkernelconcept, which provides only the interaction between processes and resource management at the kernel level, and all other functionalities are moved to libraries. which can be used by both the kernel and custom applications. All controllers run in user space in sandboxed environments. For compatibility with existing applications, a special POSIX layer is provided that allows you to run many programs without migrating.
The system applies the “everything is a URL” principle. For example, “log://” can be used to register the URL for communication between “bus://” processes, for “tcp://” network communication, etc.
Modules that can be deployed in the form of drivers, kernel extensions, and custom applications can register their own URL handlers, for example, you can write a module to access I/O ports and link it to the “port_io://” URL, after which you can use it to access port 60 by opening the “port_io:/60” URL. Project developments are distributed under the free MIT license.
The user environment in Redox is built on orbital’s own graphical shell (not to be confused with another Orbital shell that uses Qt and Wayland) and the OrbTk toolkit, which provides APIs similar to Flutter, React, and Redux. Netsurf is used as a web browser. The project also develops its own package manager, a set of standard tools (binutils, coreutils, netutils, extrautils), ion shell, relibc standard C library, sodium vim type text editor, network stack, and TFS file system developed based on the ideas of ZFS (modular version of ZFS in the Rust language). The setting is set to the Toml language.
Redox 0.6 news
Of the new features that stand out from the new version, it is in the kernel memory manager (rmm) that has been completely rewritten. The new deployment managed to get rid of memory leaks that caused problems when using the old memory manager. In addition, support stability for multicore systems has been improved.
It is also noted that this new version of Redox 0.6 includes many projects developed by students under the RSoC (Redox OS Summer of Code) initiative, including developments related to support for io_uring, ptrace, strace, gdb, disk partitions and logging.
The Relibc standard C library developed by the project has been significantly improved, which can work not only on Redox, but also on Linux kernel-based distributions.
On the other hand, it is also mentioned that it added its own pkgar package manager and associated package format, developed taking into account the specific features of Redox OS. The package manager provides source verification using digital signature, integritycontrol, rebuildability, automatic updates, change data-only transfer, installation directory independence. Unlike other formats, pkgar only includes the metadata needed to extract the package.
Of the other changes that stand out:
- Scripts for a cookbook, including instructions on how to assemble the various components of the Redox operating system, transferred to the new build system, written in the Rust language.
- In the new build system, instead of Shell scripts to describe the build logic, files are proposed in Toml format.
- A lot of time was spent preparing the new release fighting breakout compatibility changes in Rust nightly builds associated with reworking the Asm macro.
Get Redox 0.6
For those interested in knowing the system, they should know that ready-to-use boot images (61 MB) are offered to test the Redox operating system. Unlike previous releases, branch 0.6 is considered suitable for real hardware experimentation, not just QEMU and VirtualBox.