Redox Summer of Code 2023 Wrapup

By Ron Williams and Jeremy Soller on

This year’s Redox Summer of Code program has seen us add some exciting capabilities to Redox. Our three interns each came up with their own project proposals, and delivered major new functionality. In addition to our paid internships, our volunteer contributors also made major strides this summer.

Redox Summer of Code Projects

VirtIO drivers - Andy-Python-Programmer

Andy is the creator of the Aero Operating System. For his first RSoC internship this year, Andy suggested implementing the VirtIO standard for Redox, for use when running Redox in a virtual machine/emulator such as QEMU. This allows Redox to support a variety of devices efficiently, and will allow us to add GPU acceleration when running in an emulator. Andy has completed block device and network drivers, as well as 2D graphics. 3D acceleration is still to come.

You can read about Andy’s work on VirtIO here and here. Here’s a recent interview with Andy where he discusses Redox, Aero, and his work on VirtIO.

Revirt-U and using Linux drivers on Redox - Enygmator

This is Enygmator’s third RSoC internship. Their goal: To have a Linux instance running in a virtual machine on Redox, giving Redox the ability to use Linux’s device drivers. This requires implementing virtual machine infrastructure for Redox (Revirt-U) plus a way to communicate from Redox to the Linux instance. It will greatly expand Redox’s driver compatibility when running on real hardware, without sacrificing Redox’s separation of drivers from the kernel.

You can read about Enygmator’s work here. Congratulations to Enygmator on their recent graduation and new job!

On-demand paging - 4lDO2

Back for his fourth RSoC (he never really left, he’s been a constant contributor), 4lDO2 has added on-demand paging and other memory management enhancements. This work is quite broad in scope, as it replaces not only how memory management works for applications, but also kernel access to user-space memory, application sharing of memory with device drivers, and even how physical hardware addresses are mapped to virtual addresses in user-space device drivers. It also gives a nice performance bump, and leaves room for further memory management optimization.

You can read about 4lDO2’s work here and here.

Other Contributions

Our many volunteer contributors continue to help move Redox forward. Our focus this summer has been on improving Redox compatibility with POSIX and Linux.

We have our own implementation of the C standard library called relibc, compatible with Linux and Redox. We have rewritten many libc functions in Rust. Redox has also moved large chunks of functionality from the kernel into user-space, and a lot of that functionality can be found in the Redox variant of relibc. This summer, we’ve had eight different contributors to relibc, with a few of the additions being:

Some other contributions and accomplishments this summer include:

Request for Donations

For those of you that would like to provide financial support for Redox and our Summer of Code program, you can donate using these links:

Or consider supporting one of the many Open Source projects that we depend on, e.g.:

Find Out More

If you have questions, join us on Matrix Chat! You can see other discussions of this post on social media at the links below: