This Month in Rust OSDev: July 2026
Welcome to a new issue of "This Month in Rust OSDev". In these posts, we give a regular overview of notable changes in the Rust operating system development ecosystem.
This series is openly developed on GitHub. Feel free to open pull requests there with content you would like to see in the next issue. If you find some issues on this page, please report them by creating an issue or using our comment form at the bottom of this page.
Please submit interesting posts and projects for the next issue by commenting on the draft pull request or via a PR on GitHub.
Disclaimer: Automated scripts and AI assistance were used for collecting and categorizing links. Everything was proofread and checked manually, with many manual tweaks.Announcements, News, and Blog Posts
Here we collect news, blog posts, etc. related to OS development in Rust.
- This Month in Redox - June 2026
- SafaOS: another hobby OS written in rust, now has Audio, GUI and a bunch of software ports
- The hobby OS SafaOS gained UDP networking, a GUI, an Intel HDA audio stack, ports of SDL2/SDL2_Mixer/ffplay, and now runs Doom, Quake 2, and Celeste Classic.
- sermuns/efimux: EFI application for booting other EFI applications
- A rudimentary UEFI boot menu written in Rust that scans filesystems for
.efifiles and presents them in a Ratatui TUI, built on top of the author'sratatuefino_stdRatatui backend for UEFI.
- A rudimentary UEFI boot menu written in Rust that scans filesystems for
- 'Rust makes coding fun again': Why Linux is moving away from C, according to Greg Kroah-Hartman
- Progress toward compiling Linux with gccrs
- Rust MEMS drivers: 3 reasons to try and adopt our new sensor drivers written in Rust
- STMicroelectronics announces official Rust drivers for its MEMS sensor line, one of the first vendor-blessed embedded Rust driver crates from a major microcontroller/sensor manufacturer.
- nasa/spacewasm: A flight-compliant WebAssembly interpreter
- NASA released a WebAssembly 1.0 interpreter designed for safety-critical spacecraft: fixed-size memory blocks, no dynamic deallocation after allocation, deterministic memory usage, and streaming binary decoding, intended for on-board sequencing and sandboxing of low-confidence code.
- The Embedded Rustacean Issue #76
Infrastructure and Tooling
In this section, we collect recent updates to rustc, cargo, and other tooling that are relevant to Rust OS development.
- stabilize
feature(atomic_from_mut)- Stabilizes converting
&mut [Atomic*]to and from&mut [primitive], useful for building lock-free data structures without going throughunsafetransmutes.
- Stabilizes converting
- Stabilize c-variadic function definitions
- Rust code can now define C-style variadic functions, not just call them, which is needed when implementing C-compatible interfaces such as a libc from scratch.
- allow
Allocators to be used as#[global_allocator]s- Adds a
GlobalAllocatormarker trait so that types implementing the newerAllocatortrait can be installed as the global allocator, without implementingGlobalAllocdirectly and risking infinite recursion.
- Adds a
- make volatile operations const
- Volatile reads and writes are now usable in
const fn, which allows sharing code paths between MMIO-style special memory and regular memory.
- Volatile reads and writes are now usable in
- Implement
ptr::{read,write}_unalignedviarepr(packed)- Reimplements the unaligned pointer accessors on top of
repr(packed)fields instead ofmemcpyand intrinsics, producing much simpler MIR and enabling further optimizations.
- Reimplements the unaligned pointer accessors on top of
- The move of
std::iointocoreandalloccontinued at a fast pace this month. Afterio::Errorlanded incorein June, most of the remaining building blocks followed, so thatRead,Write,Seek, and the buffered wrappers are now usable withoutstd:- Move
SizeHintandIoHandletocore::io - Move
std::io::Seektocore::io - Move
std::io::Writetocore::io - Move
std::io::Readtoalloc::io - Move
std::io::read_to_stringtoalloc::io - Move
std::io::BufReadtoalloc::io - Move
std::io::bufferedtoalloc::io - See the tracking issue for
alloc::ioandcore::iofor the remaining work.
- Move
- Add
riscv32imfc-unknown-none-elfbare-metal target- A new
no_stdtarget for RISC-V32 cores with theI,M,F, andCextensions.
- A new
- rustc_target: Add ARMv8-M related target features
- Adds target features for ARMv8-M (Cortex-M23/M33/M35P/M55 and similar), relevant for embedded/bare-metal development on those chips.
- rustc_target/asm: add LoongArch LSX/LASX inline asm register support
- Extends
asm!with LoongArch SIMD register classes.
- Extends
- Convert
-Ctarget-cpuinto a target-modifier for AVR, AMDGCN and NVPTX- Also merged this month: fix: emit diagnostic for AVR target without target-cpu, which errors instead of silently miscompiling when no AVR
target-cpuis set.
- Also merged this month: fix: emit diagnostic for AVR target without target-cpu, which errors instead of silently miscompiling when no AVR
- rustc_target: Add OpenEmbedded/Yocto Linux base targets
- New base targets for embedded Linux systems built with the Yocto/OpenEmbedded toolchain.
- Add documentation for the
no_stdattribute
rust-osdev Projects
In this section, we give an overview of notable changes to the projects hosted under the rust-osdev organization.
bootloader
Maintained by @phil-opp and @Freax13
The bootloader crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables.
We merged the following changes this month:
- Revert
uart_16550version bump to 0.6.0 - Fix workspace.exclude in Cargo.toml
- Make release script more robust and send user agent
- Release 0.11.16
- Release v0.11.17
Thanks to @Wasabi375 for this contribution!
uefi-rs
Maintained by @GabrielMajeri, @nicholasbishop, and @phip1611
uefi makes it easy to develop Rust software that leverages safe, convenient,
and performant abstractions for UEFI functionality.
We merged the following PRs this month:
Thanks to @reynoldsbd and @sermuns for these contributions!
x86_64
Maintained by @phil-opp, @josephlr, and @Freax13
The x86_64 crate provides various abstractions for x86_64 systems, including wrappers for CPU instructions, access to processor-specific registers, and abstraction types for architecture-specific structures such as page tables and descriptor tables.
We merged the following changes this month:
- feat: Added the "from_pfn" in PhysFrame
- add missing {forward,backward}_overflowing impls
- release 0.15.5
Thanks to @zhangxuan2011 and @tpdenk for these contributions!
acpi
Maintained by @IsaacWoods
The acpi repository contains crates for parsing the ACPI tables – data structures that the firmware of modern computers uses to relay information about the hardware to the OS.
We merged the following changes this month:
- Demonstrate that less-than-all features will build
- Skip unsupported _CRS resource descriptors
- Handle DerefOf buffer fields
Thanks to @martin-hughes and @ArthurHeymans for these contributions!
ps2-mouse
The ps2-mouse library provides a basic interface for interacting with a PS/2 mouse. A Rust nightly change broke the Step trait implementation in x86_64 this month (see rust-osdev/x86_64#594), so ps2-mouse needed a dependency update too:
Thanks to @forestaa for this contribution!
bootimage
Maintained by @phil-opp
The bootimage tool allows the creation of bootable disk images for bootloader-based kernels. It also provides a runner executable for cargo to make cargo run and cargo test work using QEMU.
We merged the following changes this month:
- Fix example build on latest nightly
- Adjust test detection for new
build-dirlayout of cargo- Cargo's new
build-dirlayout v2 (stabilized on nightly in July) brokebootimage's test-binary detection. This PR adjusts the runner accordingly, socargo testworks again on recent nightlies.
- Cargo's new
- Release version 0.10.5
Other Projects
In this section, we describe updates to Rust OS projects that are not directly related to the rust-osdev organization. Feel free to create a pull request with the updates of your OS project for the next post.
No project updates were submitted this month.
Join Us?
Are you interested in Rust-based operating system development? Our rust-osdev organization is always open to new members and new projects. Just let us know if you want to join! A good way to get in touch is our Zulip chat.