This Month in Redox - March 2025

By Ribbon and Ron Williams on

Redox OS is a Unix-like general-purpose microkernel-based operating system written in Rust. March was a very exciting month for Redox! Here’s all the latest news.

If you would like to support Redox, please consider donating or buying some merch!

RSoC 2025

It’s that time of year again! Redox Summer of Code is now open for applications!

We have funding for one or two people to work on some of our priorities. We are also open to your ideas. If you are an undergrad, grad student or are about to graduate, and have good Rust skills and experience with open source, kernels and/or low-level software, we would love to hear from you.

Join us on Matrix Chat, tell us that you are interested in RSoC, and post a message in our Summer of Code room to let us know what you want to work on, and what your skills and technical experience are. If you prefer to discuss your skills and experience privately, let us know and we will contact you by private chat.

Redox OS is a US-based nonprofit, and is required to comply with US law regarding financial transactions.

NLnet Project - Process Manager

Last summer, Redox was awarded a grant from NLnet/NGI Zero for our project Redox OS Unix-style Signals. The work has been conceived and implemented by 4lDO2, with backup from the Redox team.

The NGI grant is divided into (1) a signal handling part and (2) a process management part. The signal handling was largely completed last summer. As part of the work on process management, 4lDO2 has recently made great progress towards re-implementing the Redox kernel/userspace runtime layer, where the system can now start almost all daemons, and properly boot to prompt (both dynamically linked ion and static bash). This means the concept of Process IDs is now entirely a userspace thing.

As well, the process and signal services formerly accessible as specialized system calls, are now accessed via file descriptors, using the thread and process fds which are now present in (virtually) every file table. This has allowed the removal of close to 20 system calls from the Redox kernel, replacing them with messages to/from the process manager and other fd-based services.

The major obstacles before this work can be merged are:

One TODO item is to separate these proc file descriptors (and some other file descriptors that Redox uses internally) from the POSIX file descriptor space. That work is outside the scope of this project, but it is planned as part of another proposal to NGI Zero Commons.

Although there are some other performance bottlenecks related to process management, it is obviously preferable if this new set of changes does not significantly affect the performance of the full system. So far, no significant performance issues have been observed, but we will be doing benchmarking when the process management work is closer to completion. Eventually Redox may benefit from L4-like synchronous IPC, given the synchronous nature of POSIX functions in the proc category, but this is a bit farther in the future.

Fixed USB Input Support

Jeremy Soller has made substantial improvements to our USB xHCI driver, USB 3.x support and completed a USB hub driver. Our USB HID implementation has had some issues, and was not working in the 0.9.0 version. It is much better now, and can support more real-world hardware.

We would love your help testing external USB mouse and keyboards, as well as the keyboard and touchpad on your laptop, especially if they use USB internally instead of PS/2. You can do this by following the instructions below to download the daily images. Please be aware that we are bumping into a few other issues, so if the daily images don’t boot for you today, they may work better in the next few days.

Send a message in the Support room to let us know if it worked. If you have problems, please provide the brand and model code, for both the computer and the device (mouse or keyboard). Please join our GitLab and add your computer to our Hardware Compatibility list, if you have the time.

Fan Photos

We will showcase some fan photos in the monthly reports when we don’t have screenshots to show. Let us know on Matrix if you have some Redox-themed photos you want to share (send a link, don’t post the photo on Matrix). This photo of the Redox OS Coffee Mug was taken by Jason Bowen.

Jason Bowen Coffee Mug

Kernel Improvements

Driver Improvements

System Improvements

USB Improvements

Scheme Improvements

“This allows a single PCI daemon to run on the whole system, prevents multiple drivers from claiming the same PCI device and makes it possible for userspace to enumerate all available PCI devices. In the future this will enable an lspci tool, possibly PCIe hot plugging and more”

RedoxFS Improvements

Relibc Improvements

Networking Improvements

Terminal Improvements

Packaging Improvements

Programs

Build System Improvements

Documentation Improvements

How To Test The Changes

To test the changes of this month download the server or desktop variants of the daily images.

Use the server variant for a terminal interface and the desktop variant for a graphical interface. If you try the desktop variant and it doesn’t work for you, please try the server variant, and let us know in our Support room on Matrix.

Read the following pages to learn how to use the images in a virtual machine or real hardware:

Sometimes the daily images are outdated and you need to build Redox from source. For instructions on how to do this, read the Building Redox page.

Join us on Matrix Chat

If you want to contribute, give feedback or just listen in to the conversation, join us on Matrix Chat.