This Month in Rust OSDev: April 2023
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.
Infrastructure and Tooling
In this section, we collect recent updates to
cargo, and other tooling that are relevant to Rust OS development.
No updates were proposed for this section this month.
Announcements, News, and Blog Posts
Here we collect news, blog posts, etc. related to OS development in Rust.
- Rust Kernel Programming
- Linux Kernel Rust Modules
- Aero OS: A new modern operating system made in Rust, now able to run the Links browser, Alacritty and much more!
- Felix, an x86 hobby OS written in Rust
In this section, we give an overview of notable changes to the projects hosted under the
- Introducing a high-level FS abstraction
- uefi: debug: add DebugPort protocol
- uefi: Panic if an error is created from Status::SUCCESS
- uefi-macros: Drop !Send and !Sync from unsafe_protocol macro
- cstr[ing]16: convenience functions
- uefi: Clean up some Status -> Result conversions
- Use the uguid crate to replace the
- gop: Derive PartialEq on ModeInfo
- Add RngProtocol to
uefi-rawand use it from
- uefi: Add get_variable_boxed
- uefi: Update Status documentation
- doc: build with --no-deps
- uefi: Minor cleanups in the fs module doc
- ci: shorter job names
- uefi: consistent use of crate:: over uefi::
- Allow passing a constant's path into unsafe_protocol
- uefi-raw: Add mostly-empty package
- ci: Fix book token permission
- Move newtype_enum macro to uefi-raw
- uefi-macros: Fix compiler test for Rust 1.69
uefi-raw, along with related API changes
Maintained by @phil-opp
- Fixed bug stemming from treating an exclusive range as an inclusive ranges
- Implemented sorting of uefi memory maps #315
Maintained by @phil-opp
Thanks to @rasheedmhd for their contributions!
Maintained by @IsaacWoods
- aml_tester: Add positional file arguments, in-order parsing and shared namespace
- AML: Add minimal CondRefOf support
- acpi: Allow Madt and Mcfg fields to be accessed without allocator_api
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.
(Section written by @phil-opp)
We merged the following changes to the Writing an OS in Rust blog this month:
- Fix link syntax
- fix(translation zh-TW): typo (thanks to @GNITOAHC!)
#[alloc_error_handler]attribute was removed
- Update 'Heap Allocation' post to remove
I also continued writing on the upcoming third edition of the blog. I finished a draft of the second post, which is about booting using
v0.11 of the
bootloader crate. You can already read it on GitHub if you like.
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 for getting in touch is our gitter channel.