This Month in Rust OSDev: February 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 rustc
, cargo
, and other tooling that are relevant to Rust OS development.
rust-lang/rust
- Add
kernel-address
sanitizer support for freestanding targets - Stabilize
#![feature(target_feature_11)]
. Allows enabling target features such asavx2
for specific functions. - Add support for QNX Neutrino to standard library
Cargo: Add '-C' flag for changing current dir before build
This new flag makes cargo
switch to the specified directory before building.
This means that the .cargo/config.toml
file is also read from that directory, which can be very useful when configuring features such as build-std
.
Announcements, News, and Blog Posts
Here we collect news, blog posts, etc. related to OS development in Rust.
- Rust now available for Real-Time Operating System and Hypervisor PikeOS
- Writing an OS in Rust to run on RISC-V
rust-osdev
Projects
In this section, we give an overview of notable changes to the projects hosted under the rust-osdev
organization.
uefi-rs
- uefi-macros: Fix error tests
- Release
uefi-0.19.1
- Various fixes for tests under Windows
- uefi: Remove mentions of ruyntime usage from GOP docs
- uefi: Rework
exit_boot_services
API - Add component name protocols
- uefi: Export
cstr8
,cstr16
, and entry macros from the root - Implement
Deref
forHandleBuffer
andProtocolsPerHandle
- uefi: Improve
Input::read_key
docstring - Make more tests fail if protocol is missing
- xtask: Fully drop support for build-std
- ci: Simplify the VM jobs
- uefi-macros: Improve entry macro errors
- test-runner: Make
unstable
an optional feature - xtask: Switch fatfs to latest crates.io release
bootloader
acpi
- Update aml_tester to clap 4
- Add stub implementations for Handler, read_u16 etc.
- Add def_alias, alias shares handle with target
- Update syntax of literal zero
Thanks to @rw-vanc for their contributions!
spinning_top
- Upgrade lock_api to 0.4.7 (published as
v0.2.5
)
Thanks to @jannic for this contribution!
linked-list-allocator
Thanks to @jannic for this contribution!
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:
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.