diff --git a/content/this-month/2025-06/index.md b/content/this-month/2025-06/index.md new file mode 100644 index 0000000..45a12d3 --- /dev/null +++ b/content/this-month/2025-06/index.md @@ -0,0 +1,202 @@ ++++ +title = "This Month in Rust OSDev: June 2025" +date = 2025-07-09 + +[extra] +month = "June 2025" +editors = ["phil-opp"] ++++ + +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](https://github.com/rust-osdev/homepage/). 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](https://github.com/rust-osdev/homepage/issues/new) or using our _comment form_ at the bottom of this page. + + + +## Announcements, News, and Blog Posts + +Here we collect news, blog posts, etc. related to OS development in Rust. + + + +- [Munal OS: a fully graphical experimental OS with WASM-based application sandboxing](https://www.reddit.com/r/rust/comments/1l7av38/media_munal_os_a_fully_graphical_experimental_os/) +- [SafaOS now has USB support and a working aarch64 port](https://www.reddit.com/r/rust/comments/1litijp/media_my_rust_os_safaos_now_has_usb_support_and_a/) +- [R9: a reimplementation of the plan9 kernel in Rust](https://github.com/r9os/r9) +- [This Month in Redox - June 2025](https://www.redox-os.org/news/this-month-250630/) +- [Ratatui alpha with no-std support released](https://jslazak.com/are-we-embedded-yet-2/) + - crate for creating terminal user interfaces +- [flat_rbtree: A fast, index-based Red-Black Tree with no heap allocations](https://github.com/matheus-git/flat_rbtree) + +### Linux-related + +- [Kernel Memory Safety: Mission Accomplished](https://asterinas.github.io/2025/06/04/kernel-memory-safety-mission-accomplished.html) +- [How to write Rust in the kernel: part 2](https://lwn.net/SubscriberLink/1025232/fbb2d90d084368e3/) +- [A Newbie's First Contribution to (Rust for) Linux](https://blog.buenzli.dev/rust-for-linux-first-contrib/) +- [Writing a basic Linux device driver when you know nothing about Linux drivers or USB](https://crescentro.se/posts/writing-drivers/) + +## Infrastructure and Tooling + +In this section, we collect recent updates to `rustc`, `cargo`, and other tooling that are relevant to Rust OS development. + + + +- [Stabilizing naked functions](https://blog.rust-lang.org/2025/07/03/stabilizing-naked-functions/) +- [Add new Tier-3 targets: `loongarch32-unknown-none*`](https://github.com/rust-lang/rust/pull/142053) +- [Allow storing `format_args!()` in a variable](https://github.com/rust-lang/rust/pull/140748) + +## `rust-osdev` Projects + +In this section, we give an overview of notable changes to the projects hosted under the [`rust-osdev`](https://github.com/rust-osdev/about) organization. + + + +### [`uefi-rs`](https://github.com/rust-osdev/uefi-rs) +Maintained by [@GabrielMajeri](https://github.com/GabrielMajeri), [@nicholasbishop](https://github.com/nicholasbishop), and [@phip1611](https://github.com/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: + +- [Updating Uefi Raw for EFI Shell Protocol](https://github.com/rust-osdev/uefi-rs/pull/1680) +- [SNP Integration Test: Improve Clarity](https://github.com/rust-osdev/uefi-rs/pull/1621) +- [ci: Temporarily pin to older nightly](https://github.com/rust-osdev/uefi-rs/pull/1689) +- [fix typo `ctr16!` to `cstr16!`](https://github.com/rust-osdev/uefi-rs/pull/1686) +- [xtask: Allow clippy::collapsible_if lint](https://github.com/rust-osdev/uefi-rs/pull/1694) +- [uefi: Fix clippy::uninlined_format_args lint](https://github.com/rust-osdev/uefi-rs/pull/1693) +- [test-runner: Fix clippy::uninlined_format_args lint](https://github.com/rust-osdev/uefi-rs/pull/1692) +- [uefi: Fix clippy::unnecessary_unwrap lint](https://github.com/rust-osdev/uefi-rs/pull/1691) +- [Fix mismatched_lifetime_syntaxes lint](https://github.com/rust-osdev/uefi-rs/pull/1690) +- [uefi: Make PciIoAddress orderable and hashable](https://github.com/rust-osdev/uefi-rs/pull/1682) +- [uefi: Fix io-align == 0 edgecase handling for ata & nvme](https://github.com/rust-osdev/uefi-rs/pull/1698) +- [uefi-raw: Add HII_CONFIG_ACCESS and CONFIG_KEYWORD_HANDLER protocol bindings](https://github.com/rust-osdev/uefi-rs/pull/1683) +- [doc/uefi: improve Protocol documentation](https://github.com/rust-osdev/uefi-rs/pull/1612) +- [Fix lints/tests on nightly and unpin the CI nightly version](https://github.com/rust-osdev/uefi-rs/pull/1703) +- [uefi-services: prepare v0.26.0 release to accelerate migration/deprecation](https://github.com/rust-osdev/uefi-rs/pull/1709) +- [uefi-services: remove again](https://github.com/rust-osdev/uefi-rs/pull/1712) +- [uefi/test-runner: Remove `crate::` and `uefi::` prefix from Status](https://github.com/rust-osdev/uefi-rs/pull/1714) + + + + + + + + +Thanks to [@seijikun](https://github.com/seijikun), [@nicholasbishop](https://github.com/nicholasbishop), [@phip1611](https://github.com/phip1611), [@renovate[bot]](https://github.com/apps/renovate), [@RenTrieu](https://github.com/RenTrieu), and [@diamant3](https://github.com/diamant3) for their contributions! + + +### [`ovmf-prebuilt`](https://github.com/rust-osdev/ovmf-prebuilt) +Maintained by [@nicholasbishop](https://github.com/nicholasbishop) and [@phil-opp](https://github.com/phil-opp) + +The `ovmf-prebuilt` project provides pre-built [edk2](https://github.com/tianocore/edk2) releases to make it easier to set up OVMF. We merged the following improvement this month: + + +- [Split Source constants into a new file](https://github.com/rust-osdev/ovmf-prebuilt/pull/186) + + + +### [`multiboot2`](https://github.com/rust-osdev/multiboot2) +Maintained by [@phip1611](https://github.com/phip1611) + +_Convenient and safe parsing of Multiboot2 Boot Information (MBI) structures and +the contained information tags. Usable in no_std environments, such as a kernel. +An optional builder feature also allows the construction of the corresponding +structures._ + +We merged the following PRs this month: + +- [update workspace, Rust edition 2024, fixes](https://github.com/rust-osdev/multiboot2/pull/267) + + + +### [`virtio-spec-rs`](https://github.com/rust-osdev/virtio-spec-rs) +Maintained by [@mkroening](https://github.com/mkroening) + +The `virtio-spec` crate provides definitions from the Virtual I/O Device (VIRTIO) specification. +This project aims to be unopinionated regarding actual VIRTIO drivers that are implemented on top of this crate. + +We merged the following PRs this month: + +- [ci: run Miri](https://github.com/rust-osdev/virtio-spec-rs/pull/4) + +- [fix(net): make HdrGso an enum instead of a flag](https://github.com/rust-osdev/virtio-spec-rs/pull/2) +- [add support of console](https://github.com/rust-osdev/virtio-spec-rs/pull/1) +- [chore: release version 0.3.0](https://github.com/rust-osdev/virtio-spec-rs/pull/5) + +Thanks to [@stlankes](https://github.com/stlankes) for their contribution! + + +### [`bootloader`](https://github.com/rust-osdev/bootloader) +Maintained by [@phil-opp](https://github.com/phil-opp) and [@Freax13](https://github.com/orgs/rust-osdev/people/Freax13) + +The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we merged the following improvements: + +- [Document physical memory mapping size](https://github.com/rust-osdev/bootloader/pull/506) + +Thanks to [@aaronzper](https://github.com/aaronzper) for their contribution! + + +### [`x86_64`](https://github.com/rust-osdev/x86_64) +Maintained by [@phil-opp](https://github.com/phil-opp), [@josephlr](https://github.com/orgs/rust-osdev/people/josephlr), and [@Freax13](https://github.com/orgs/rust-osdev/people/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 PRs this month: + +- [Add "FMask" alias for SFMask.](https://github.com/rust-osdev/x86_64/pull/552) + +Thanks to [@ChocolateLoverRaj](https://github.com/ChocolateLoverRaj) for their 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](https://github.com/rust-osdev/homepage/pulls) with the updates of your OS project for the next post. + + + + +No projects 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 for getting in touch is our [Zulip chat](https://rust-osdev.zulipchat.com).