Jeremy Soller (
Experiments with Redox on a laptop have already made it possible to improve the performance of drivers, add HiDPI support to some applications and create new components, such as pkgar, that simplify the installation of Redox from Live images. Among the tasks on which attention is now focused is the achievement of the ability to self-assemble the system (assembling Redox from a Redox-based environment). In a few months, Soller plans to switch to working on Redox full-time on one of the computers from a Redox-based desktop environment, after some improvements have been made to the rustc compiler.
The microkernel concept used in Redox simplifies driver development, since the subsystem that provides the drivers can be recompiled and restarted without stopping work. It is expected that development in a Redox-based environment will improve the efficiency of porting programs and solving problems with hardware support. For example, it is planned to complete the USB stack and add graphics drivers.
Let us recall that the operating system is developed in accordance with the Unix philosophy and borrows some ideas from SeL4, Minix and Plan 9. Redox uses the concept of a microkernel, in which only interaction between processes and resource management are provided at the kernel level, and all other functionality is moved to libraries. which can be used by both the 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, which allows you to run many programs without porting.
The system uses the “everything is a URL” principle. For example, the URL “log://” can be used for logging, “bus://” for interaction between processes, “tcp://” for network interaction, etc. Modules, which can be implemented in the form of drivers, kernel extensions, and user applications, can register their own URL handlers, for example, you can write an I/O port access module and bind it to the URL "port_io://", after which you can use it to access port 60 by opening the URL “port_io://60”. Project developments
User environment in Redox
Source: opennet.ru