This Month in Redox - October 2026
Redox OS is a complete Unix-like general-purpose microkernel-based operating system written in Rust. October was a very exciting month for Redox! Here’s all the latest news.
Donate to Redox
If you would like to support Redox, please consider donating or buying some merch!
Golang On Redox!
Wildan Mubarok ported the official Go programming language compiler after months of porting iterations. It supports both cross-compilation and self-hosted compilation of Go programs.
The Go compiler uses relibc and does not require an external compiler (GCC). During porting this compiler, it revealed issues in many parts of the system, such as the range-tree library fix mentioned below.
The Go compiler port is currently a fork, as upstreaming will be another effort.

Redox on Cloud Hypervisor!
MJ Pooladkhay was able to boot Redox on Cloud Hypervisor, as part of his NLnet-funded work on Redox virtualization. This is an important step towards Redox as a web server in the cloud. He also added integration to the Redox build system, to simplify testing.
He wrote this article about this initial work.
Read this page to learn how to use it.
WebKitGTK3 Video Support
Wildan Mubarok fixed the missing codecs in GStreamer using FFmpeg libraries for video playback in WebKit.
- Mozilla Developer Network HTML5 video example


GIMP On Redox!
Wildan Mubarok ported GIMP after some months of work. As GIMP uses the recent Orbital backend of the GTK port, the experience may not be smooth in this initial port.

Servo 0.7 Update
Wildan Mubarok updated our Servo fork to version 0.7 after months of work to fix regressions and new bugs.

Ratatui 3D Showcase
Ribbon tested the Ratatui 3D rendering of Cornell box demo from ratatui-3d project.

NUMA Support Testing
The first real hardware NUMA tests on a Dell Poweredge R420 server were done, which confirms that EuclidDivisionLemma’s effort on NUMA support is complete enough to work.
Tests conducted by EuclidDivisionlemma, showed, on average, a 45.2% reduction in time taken on the NPB MG Workload.

Fixed RISC-V Dynamic Linking
lbecher fixed RISC-V dynamic linking, which is the last CPU architecture using static linking in our build system.
It will allow our application testing in RISC-V to easily scale.
Initial Rootless Package Installation
Wildan Mubarok finished the first part of rootless package installation code, which allows the creation of system-wide paths mappings to user equivalent paths.
virtiofs On Redox!
MJ Pooladkhay has completed the virtiofs driver and integrated it into the Redox build system. It’s now possible to share any directory on a Linux host with a Redox VM running under QEMU or Cloud Hypervisor.
For example, the make qemu share=redox command shares the Redox build system directory on Linux to Redox.
Read this page to learn how to use it.
NUMA Information Reporting
EuclidDivisionLemma implemented NUMA hardware information reporting, exposed in /scheme/sys/numa resource.
NUMA nodes: 4
Node 0:
CPUs: 0 1 2 3 4 5 6 7
Memory: 8.00 GiB
Node 1:
CPUs: 8 9 10 11 12 13 14 15
Memory: 4.00 GiB
Node 2:
CPUs:
Memory: 8.00 GiB
Node 3:
CPUs:
Memory: 12.00 GiB
Simplified AI Policy
Jeremy Soller simplified the AI policy and the Board Of Directors approved, now it is:
“Redox OS does not accept contributions generated by LLMs (Large Language Models), sometimes also referred to as “AI”.”
Ring Buffers Project Summary
Anhad Singh, Ibuki Omatsu, 4lDO2 and Ron Williams wrote a technical report of the conclusion of the Redox Ring Buffers project.
Bootloader Improvements
- (boot) MJ Pooladkhay fixed a UEFI exit failure bug due to a stale memory-map key to ExitBootServices
Kernel Improvements
- (kernel) 4lDO2 reduced the x86 kernel binary file size in ~200 KiB by using naturally aligned kernel stacks on x86
- (kernel) 4lDO2 did a code cleanup
- (kernel) 4lDO2 fixed some code warnings
- (kernel) Wildan Mubarok fixed a CPU context-wide deadlock in futex code
- (kernel) Wildan Mubarok fixed thread lock ordering in futex code, which fixed a hang
- (kernel) EuclidDivisionLemma implemented wrappers to libredox to ease the manipulation of scheduler CPU affinity.
- (kernel) EuclidDivisionLemma fixed incorrect APIC ID reading
- (kernel) EuclidDivisionLemma fixed more NUMA bugs
- (kernel) EuclidDivisionLemma fixed some code warnings
- (kernel) EuclidDivisionLemma did some refactoring and cleanup in NUMA code
- (kernel) Radek Pietruszewski implemented RISC-V CPU information reporting
- (kernel) bjorn3 fixed some code warnings
- (kernel) Val Lorentz fixed some code warnings
Driver Improvements
- (driver) Jeremy Soller created the audiod library to unify the audio buffer size handling of all sound drivers
- (driver) MJ Pooladkhay fixed a bug with the device DMA memory lifetime being ended while the device was using it
- (driver) The “beef” contributor fixed the Intel HD Audio driver’s Function Group Type parameter ID
- (driver) bjorn3 did some code cleanup
System Improvements
- (sys) Jeremy Soller added COSMIC Monitor and GTK3 demos to Redox demo variant
- (sys) bjorn3 moved the Unix domain socket code from the ipcd daemon to a new daemon called udsd because this code was not related to Redox IPC, simplifying the system
- (sys) bjorn3 did some code deduplication
- (sys) Ibuki Omatsu replaced/unified the fstat, unlinkat, flink, and frename functions with std_fs_call
- (sys) Ibuki Omatsu moved the F_SETFD, F_GETFD, and F_DUPFD* fcntl flags from redox_syscall to libredox
- (sys) Wildan Mubarok fixed a TTY write panic in getty when a CLI application hangs
Relibc Improvements
- (libc) Wildan Mubarok implemented dladdr and dl_iterate_phdr functions
- (libc) Wildan Mubarok implemented POLLHUP, POLLERR, EPOLLHUP, and EPOLLER event codes
- (libc) Wildan Mubarok added a initial link.h function group implementation
- (libc) Wildan Mubarok added initial locale support: implemented decimal locale support in strtod function, implemented setlocate function and LOCPATH
- (libc) Wildan Mubarok fixed TLS relocation alignment in LTO compilation
- (libc) Wildan Mubarok fixed EINTR error handling behavior in futex and kill
- (libc) Wildan Mubarok fixed the scanf function parsing invalid %d
- (libc) Wildan Mubarok fixed sigaltstack stack information, SSIZE_MAX type, and stpcpy test on i586
- (libc) Wildan Mubarok fixed the dl_phdr_info::dlpi_tls_data type
- (libc) Wildan Mubarok fixed a float_t redefinition error when the same header is used in multiple places
- (libc) Wildan Mubarok fixed limits.h constant suffixes
- (libc) Wildan Mubarok fixed the futimens function test
- (libc) Wildan Mubarok implemented input sanitization in inet_aton function
- (libc) Wildan Mubarok moved most of unsafe Rust code of poll, epoll, utimensat, futimens, nanosleep, fstat, fstatvfs, and inet_aton functions to leaf functions
- (libc) Niel D fixed mkdirat function directory permission handling
- (libc) auronandace implemented __fseterr from Gnulib
- (libc) auronandace fixed the readv function test
- (libc) auronandace fixed a typo in POSIX_MADV_DONTNEED constant
- (libc) auronandace reduced more as casting usage to prevent problems in code refactorings
- (libc) auronandace enabled some Clippy lints
- (libc) Konstantin Shabanov fixed and added a getsockopt test
- (libc) Konstantin Shabanov fixed false-positives when running a single test, due to wrong paths in expected output
- (libc) Val Lorentz fixed some Clippy warnings
RedoxFS Improvements
- (rfs) Wildan Mubarok fixed bug in the range-tree library that caused a underflow in fmap implementation
Packaging Improvements
- (pkg) Wildan Mubarok greatly reduced compressed packaged size when Clang ThinLTO is used
Programs
- (app) Wildan Mubarok enabled FFMPEG and AAC codec support in GStreamer
- (app) Wildan Mubarok enabled multi-threading on XZ
- (app) Wildan Mubarok updated Git version from 2.13.1 to 2.56.0
- (app) Wildan Mubarok fixed gettext compilation with Clang
- (app) bjorn3 updated the periodictable and sodium installation paths to comply with Linux FHS
- (app) auronandace updated rsync from version 3.4.1 to 3.5.1
Build System Improvements
- (build) Wildan Mubarok fixed Redox toolchain fetch checksum mismatches
- (build) Wildan Mubarok fixed the build.dev-dependencies recipe data type rule handling difference between cookbook.lock and filesystem configuration
- (build) Wildan Mubarok added cbindgen to Redoxer image
- (build) Wildan Mubarok added libunwind to the toolchain
- (build) Wildan Mubarok changed Clang to use libgcc for runtime consistency
- (build) Wildan Mubarok implemented dl_iterate_phdr support to libgcc to workaround hangs in recipes compiled with Clang
- (build) Wildan Mubarok changed toolchain packaging archiver to be deterministic
- (build) Radek Pietruszewski improved QEMU configuration for NixOS
Documentation Improvements
- (doc) Wildan Mubarok documented how to do RedoxFS partition manipulation from Linux in dual-boot installation
- (doc) Wildan Mubarok documented Clang support
- (doc) Wildan Mubarok improved the self-hosted development documentation
- (doc) Radek Pietruszewski documented MacOS QEMU instructions
- (doc) Radek Pietruszewski documented NixOS QEMU instructions
- (doc) Radek Pietruszewski recommended the livedisk image instead of harddrive image to fix ARM64 and RISC-V boot in QEMU, due to lack of MSI-X support on them
- (doc) Ribbon documented the driver graphics API migration to Linux DRM API
- (doc) Ribbon added a introduction to relibc function tracing and updated the kernel system call tracing to also mention userspace tracing
- (doc) Ribbon documented that Orbital hangs don’t stop the mouse cursor when VirtIO-GPU is used, because the cursor is processed on host
- (doc) Ribbon documented the Redox build system and Redoxer purposes on Developer FAQ
How To Test The Changes
To test the changes of this month download the server or desktop variants of the daily images.
Use the desktop variant for a graphical interface. If you prefer a terminal-style interface, or if the desktop variant doesn’t work, please try the server variant.
- If you want to test in a virtual machine use the “harddrive” images
- If you want to test on real hardware use the “livedisk” images
Read the following pages to learn how to use the images in a virtual machine or real hardware:
- Running Redox in a virtual machine
- Running Redox on 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.
Programs
To test the changes on applications and libraries, see if the wanted program is available in the following lists and run the following command to install them: sudo pkg install package-name
- x86-64 packages
- ARM64 packages
- RISC-V packages
- i586 packages
There’s also a package web interface if you want detailed package information:
- x86-64 packages
- ARM64 packages
- RISC-V packages
- i586 packages
Join us on Matrix Chat
If you want to contribute, give feedback or just listen in to the conversation, join us on Matrix Chat.