Release of the Redox OS 0.8 operating system written in Rust

The release of the Redox 0.8 operating system, developed using the Rust language and the microkernel concept, has been published. The developments of the project are distributed under the free MIT license. For testing Redox OS, demo builds of 768 MB are offered, as well as images with a basic graphical environment (256 MB) and console tools for server systems (256 MB). The assemblies are generated for the x86_64 architecture and are available for systems with UEFI and BIOS. The demo image, in addition to the Orbital graphical environment, includes a DOSBox emulator, a selection of games (DOOM, Neverball, Neverputt, sopwith, syobonaction), tutorials, a rodioplay music player, and a Sodium text editor.

The operating system develops in accordance with the Unix philosophy and borrows some ideas from SeL4, Minix and Plan 9. Redox uses the microkernel concept, in which only communication between processes and resource management is provided at the kernel level, and all other functionality is placed in libraries that can be used both kernel and user applications. All drivers run in user space in isolated sandbox environments. For compatibility with existing applications, a special POSIX layer is provided that allows many programs to run without porting.

The system applies the principle "everything is a URL". For example, the URL β€œlog://” can be used for logging, β€œbus://” for inter-process communication, β€œtcp://” for network communication, and so on. Modules, which can be implemented as drivers, kernel extensions, and custom applications, can register their own URL handlers, for example, you can write an I/O access module and bind it to the "port_io://" URL, after which you can use it to access port 60 by opening the URL "port_io://60".

The user environment in Redox is built around Orbital's own graphical shell (not to be confused with the other Orbital shell that uses Qt and Wayland) and the OrbTk toolkit, which provides an API 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 utilities (binutils, coreutils, netutils, extrautils), the ion command shell, the relibc standard C library, the sodium vim-like text editor, the network stack, and the file system. The configuration is set in the Toml language.

The new release continues work on ensuring work on real hardware. In addition to the x86_64 architecture, the ability to work on 32-bit x86 systems (i686, Pentium II and newer) has been added. Porting to CPU ARM64 (aarch64) is in progress. Work on real ARM hardware is not yet supported, but it is possible to boot when emulating ARM64 in QEMU. By default, the audio subsystem is enabled and initial support for multi-monitor configurations is provided (on systems with a UEFI framebuffer). The equipment supported by Redox OS includes AC'97 and Intel HD Audio sound chips, graphics output via the VESA BIOS or UEFI GOP API, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), input devices (keyboards, mice, touchpads), SATA (AHCI, IDE) and NVMe. Support for Wi-Fi and USB has not yet been brought to readiness (USB only works in QEMU).

Other innovations:

  • Merged boot images for BIOS and EFI systems.
  • Implementation of clone and exec system calls moved to user space.
  • Simplified download process. A bootstrap program has been introduced that is run by the kernel and provides further loading of ELF files, such as the init process.
  • Added escalated program to allow setuid programs such as sudo to work.
  • To simplify the creation and installation of background processes, the redox-daemon crate package has been proposed.
  • The build system has been redesigned, in which it became possible to build for different architectures in the same source tree. To simplify the assembly of different configurations, the build.sh script is proposed. Added support for building using the podman toolkit. The assembly of the kernel, bootloader and initfs is unified with other packages.
  • Added a demo configuration for building sample programs that are not included in the base boot image with a graphical environment.
  • Support for programmatic volume control has been added to the audiod audio subsystem.
  • Added driver for sound chips based on AC'97. Improved driver for Intel HD Audio chips.
  • Added driver for IDE controllers.
  • Improved support for NVMe drives.
  • Improved PCI, PS/2, RTL8168, USB HID, VESA drivers.
  • The organization of the installation process has been redesigned: the bootloader, bootstrap, kernel and initfs are now located in the /boot directory.
  • The kernel has simplified work with memory, added the ability to manipulate address spaces from the user level.
  • Support for multi-monitor systems has been added to the Orbital graphical shell, mouse cursor processing has been improved, and an indicator has been added to change the volume. The menu has the ability to divide applications into categories.

Source: opennet.ru

Add a comment