This Month in Rust OSDev: May 2022
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.
Project Updates
In this section, we give an overview of notable changes to the projects hosted under the rust-osdev
organization.
uefi-rs
Maintained by @GabrielMajeri and @nicholasbishop
The uefi
crate provides safe and performant wrappers for UEFI, the successor to the BIOS.
We merged the following changes in May:
Improvements
- Change logger max level to be set by feature
- Release new versions of the crates (published
uefi v0.16.0
,uefi-macros v0.7.0
, anduefi-services v0.13.0
) - Implement
Deref
andDerefMut
forScopedProtocol
- Implement
core::fmt::Write
forSerial
- Add documentation links
Fixes
- Fix an accidental
*const
conversion - Fix compilation of the xtask package under Windows and add to CI
- Switch back to automatic
Debug
derive forHeader
struct - Check table version before calling UEFI 2.0+ functions
Thanks to @JonahPlusPlus, @raccog, and @verticalegg for their contributions!
bootloader
Maintained by @phil-opp, @rybot666, and @64
The bootloader
crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we merged the following new feature:
- Add UEFI PXE support to load a kernel from a TFTP server
This feature will be part of the upcoming v0.11
release. Thanks to @Freax13 for this contribution!
pci_types
The pci_types
library provides types for accessing and configuring PCI devices from Rust operating systems. Lots of this code (e.g. identifying devices by class codes) can be shared
between projects, and would benefit from community contributions.
We merged the following change in May:
Thanks to @alesharik for this contribution!
xhci
Maintained by @toku-sa-n
The xhci
crate provides types of xHCI structures, such as Registers and TRBs.
We merged the following fix this month:
Thanks to @Yuna-Tomi for this contribution!
Call for Participation
Want to contribute to a Rust OSDev project, but don't know where to start? Pick up one of these outstanding issues in one of our projects and get started!
No tasks were proposed for this section this month.
If you maintain a Rust project related to operating system development and are looking for contributors, especially for tasks suited to people getting started in this space, please create a PR against the next
branch with the tasks you want to include in the next issue.
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 projects were proposed for this section 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 for getting in touch is our Zulip chat.