This Month in Rust OSDev: May 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 on Zulip 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.
- Rust for Linux Live with Alice Ryhl and Greg Kroah-Hartman
- A live Rust Week recording about Rust in the Linux kernel, C/Rust interoperability, kernel driver work, and the day-to-day realities of writing kernel code in Rust.
- Finding the Time Part 2 - Rust Async and the Arm Generic Timer
- Explores implementing async timers for Armv8-R systems using the Arm Generic Timer, interrupts, and Embassy's
embassy-timedriver model.
- Explores implementing async timers for Armv8-R systems using the Arm Generic Timer, interrupts, and Embassy's
- Building an AsyncIO executor for the 3DS
- Starts a series on cooperative multitasking for Nintendo 3DS homebrew by building a small Rust executor and connecting async wakeups to platform scheduling constraints.
- Rust x GBA: Setup and Pixels
- Walks through setting up a nightly Rust project for Game Boy Advance ROM development, including
arm-none-eabitooling, Cargo configuration,core-only code, and pixel output.
- Walks through setting up a nightly Rust project for Game Boy Advance ROM development, including
- uFerris: A Versatile Learner Board for Rust Embedded Beginners
- A new open source learner board and board support crate for embedded Rust exercises across Seeed XIAO-compatible MCUs.
Infrastructure and Tooling
In this section, we collect recent updates to rustc, cargo, and other tooling that are relevant to Rust OS development.
- Rust 1.96.0
- Stabilizes new
core::rangetypes andcore::assert_matches!/core::debug_assert_matches!. - WebAssembly targets now fail on undefined linker symbols by default instead of implicitly treating them as
"env"imports. - Includes Cargo fixes for CVE-2026-5223 and CVE-2026-5222 for users of third-party registries.
- Stabilizes new
- More
std::iopieces move towardcore::ioCursorandstd::io::utilwere moved intocore::io, continuing the effort to make I/O building blocks available inno_stdcontexts.
- Proposal to stabilize the
Allocatortrait- A draft PR that proposes stabilizing the
Allocatortrait together withGlobal,System, and the*_inconstructors (e.g.Box::new_in,Vec::new_in). This would let kernel andno_stdcode use custom allocators with the standard collections on stable Rust. The design still needs to go through FCP and bake further before it can land.
- A draft PR that proposes stabilizing the
- Cargo
clean -pnow respectsbuild.target- Makes
cargo clean -pbehave more predictably for projects that set a default cross-compilation target in Cargo configuration.
- Makes
- Promote five Thumb-mode bare-metal Arm targets to Tier 2
- A compiler-team proposal entered final comment period to promote additional
thumb*-none-eabi*bare-metal targets.
- A compiler-team proposal entered final comment period to promote additional
- Add
-Zdead-fn-elimination- A compiler-team proposal entered final comment period for a nightly codegen option that skips functions unreachable from exported symbols, which could help size-sensitive bare-metal and freestanding binaries.
rust-osdev Projects
In this section, we give an overview of notable changes to the projects hosted under the rust-osdev organization.
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:
- Use
contribute_argto handleNoCurrentOpat the top-level - Logical not only requires one arg
- Move method context to
do_execute_method - Get referenced-package size - unwrap reference in
do_size_of - Allow BufferField -> Integer conversion
- Compare strings and buffers like uACPI
- Update uACPI example tests since some now work
- Directly test a stream of opcodes
- Fix regression in implicit casting from integer -> string
Thanks to @martin-hughes for their contributions!
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:
- Fix connect_controller to take a list for
driver_image. - AtaPassThru: Make AtaStatusBlock and AtaCommandBlock derive Clone
- various updates (nothing major or critical) + bump MSRV from 1.88 to 1.91
- uefi: move runtime module to directory
Thanks to @seijikun for their 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 PR this month:
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.
phil-opp/blog_os
(Section written by @phil-opp)
We merged the following changes to the Writing an OS in Rust blog this month:
- fix: lazy_static is not needed, keyboard methods are const,
- [Translation] Translated post 8 and 9 into Russian
- Adding Turkish translations of blog posts
- Adjust blog for PR #1477
Thanks to @harsh-98, @TakiMoysha, and @rhotav for their contributions!
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.