From 8c87893dbb747b065dd9aa93226f66e510870a58 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Wed, 4 Feb 2026 13:07:35 +0100 Subject: [PATCH 1/7] Add draft for Feb issue --- content/this-month/2026-02/index.md | 86 +++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 content/this-month/2026-02/index.md diff --git a/content/this-month/2026-02/index.md b/content/this-month/2026-02/index.md new file mode 100644 index 0000000..31972fe --- /dev/null +++ b/content/this-month/2026-02/index.md @@ -0,0 +1,86 @@ ++++ +title = "This Month in Rust OSDev: February 2026" +date = 2026-03-04 + +[extra] +month = "February 2026" +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. + + + + +## Infrastructure and Tooling + +In this section, we collect recent updates to `rustc`, `cargo`, and other tooling that are relevant to Rust OS development. + + + + +## `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. + + + + +## 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. + + + + + + + + + +## 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). From 576f333101ae6f0f80322000184b5105f9514ea7 Mon Sep 17 00:00:00 2001 From: Berkus Decker Date: Thu, 12 Feb 2026 12:45:46 +0200 Subject: [PATCH 2/7] Add vesper news --- content/this-month/2026-02/index.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/content/this-month/2026-02/index.md b/content/this-month/2026-02/index.md index 31972fe..2dc0a53 100644 --- a/content/this-month/2026-02/index.md +++ b/content/this-month/2026-02/index.md @@ -75,6 +75,20 @@ In this section, we describe updates to Rust OS projects that are not directly r ...<>... --> +### [`metta-systems/ram-map-viewer`](https://github.com/metta-systems/ram-map-viewer) +(Section written by [@berkus](https://github.com/berkus)) + +Added a little GUI for visualizing memory maps. The application itself currently supports a map format that my initialisation code emits, but +it has a MemorySource trait that you can implement to consume any format. + + + +### [`metta-systems/vesper`](https://github.com/metta-systems/vesper) +(Section written by [@berkus](https://github.com/berkus)) + +Vesper has learned to put nucleus into higher-half memory and added a kernel syscall API with a single syscall - a capability invocation. I have a list of capabilities I want to implement, and first one implemented is Debug Console so you can output execution trace from your domains. + +Init thread implementation in progress, now parsing DTB and preparing to launch a user-space "init" process. The video above shows memory map produced by the init thread after parsing a RasPi3 B+ 1Gb DTB. From 043e7195b57a14a070ec44ed09da1a679992f80f Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Wed, 11 Mar 2026 17:11:36 +0000 Subject: [PATCH 3/7] Prepare issue using claude --- content/this-month/2026-02/index.md | 143 ++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) diff --git a/content/this-month/2026-02/index.md b/content/this-month/2026-02/index.md index 2dc0a53..3215a98 100644 --- a/content/this-month/2026-02/index.md +++ b/content/this-month/2026-02/index.md @@ -32,6 +32,21 @@ Please follow this template: - (optional) Some additional context --> +- [Linux 7.0 Officially Concluding The Rust Experiment](https://www.phoronix.com/news/Linux-7.0-Rust) + - Rust is now formally accepted as a permanent part of the Linux kernel, shipping in production across multiple distributions and millions of Android devices. +- [The future for Tyr](https://lwn.net/SubscriberLink/1055590/12d48275b6f81988/) + - Progress on Tyr, a Rust GPU driver for Arm Mali hardware. The DRM subsystem is reportedly "about a year away" from requiring new drivers to be written in Rust. +- [Microsoft LiteBox](https://github.com/microsoft/litebox) + - A Rust library OS supporting kernel- and user-mode execution, with sandboxing for running unmodified Linux programs on Windows and SEV SNP. +- [This Month in Redox - January 2026](https://www.redox-os.org/news/this-month-260131/) + - Redox got Cargo and rustc compiling natively and made progress on capability-based security. +- [CHERIoT Rust: Status update #0](https://rust.cheriot.org/2026/02/15/status-update.html) + - Six months of progress porting Rust to the CHERIoT capability-based hardware architecture. Core and alloc now compile for the new `riscv32cheriot-unknown-cheriotrtos` target. +- [Ariel OS v0.3.0: BLE, Sensors, UART, and More!](https://ariel-os.org/blog/ariel-os-0.3.0/) + - New release adds BLE support, hardware-agnostic UART drivers, sensor abstraction, and expanded MCU support (ESP32, STM32, Nordic, RP). +- [Async/await on the GPU](https://www.vectorware.com/blog/async-await-on-gpu/) + - Rust's Future trait and async/await running on GPU hardware, reusing the Embassy embedded executor. + ## Infrastructure and Tooling @@ -44,6 +59,20 @@ In this section, we collect recent updates to `rustc`, `cargo`, and other toolin - (optional) Some additional context --> +- [RFC: Unsafe fields](https://github.com/rust-lang/rfcs/pull/3458) + - Approved for implementation. Allows marking struct fields as `unsafe` when they maintain safety invariants. +- [Add `try_shrink_to` and `try_shrink_to_fit` to Vec](https://github.com/rust-lang/rust/pull/152366) + - Fallible shrinking methods that return `TryReserveError` instead of panicking on OOM. +- [Stabilize `ptr_as_ref_unchecked`](https://github.com/rust-lang/rust/pull/151995) + - Raw-pointer-to-reference conversion without null/alignment checks. +- [Stabilize `atomic_try_update` and deprecate `fetch_update`](https://github.com/rust-lang/rust/pull/148590) + - Cleaner API for lock-free atomic compare-and-swap loops. `fetch_update` will be deprecated starting in Rust 1.99.0. +- [Add `avr_target_feature`](https://github.com/rust-lang/rust/pull/146900) + - Unstable target features for AVR microcontrollers including `tinyencoding`, `lowbytefirst`, and various instruction features. +- [Stabilize `cfg_select!`](https://github.com/rust-lang/rust/pull/149783) + - Builtin macro for selecting code based on cfg predicates, simplifying conditional compilation. +- [Stabilize `core::hint::cold_path`](https://github.com/rust-lang/rust/pull/151576) + - Mark unlikely code paths to help the compiler optimize branch layout. ## `rust-osdev` Projects @@ -61,6 +90,120 @@ In this section, we give an overview of notable changes to the projects hosted u <> --> +### [`acpi`](https://github.com/rust-osdev/acpi) +Maintained by [@IsaacWoods](https://github.com/IsaacWoods) + +The `acpi` repository contains crates for parsing the ACPI tables – data structures that the firmware of modern computers use to relay information about the hardware to the OS. + +We merged the following changes this month: + +- [Add support for extracting NUMA information from SRAT and SLIT](https://github.com/rust-osdev/acpi/pull/264) +- [Suggestion: Use colored instead of termion](https://github.com/rust-osdev/acpi/pull/265) + +Thanks to [@martin-hughes](https://github.com/martin-hughes) for their contributions! + + +### [`bootimage`](https://github.com/rust-osdev/bootimage) +Maintained by [@phil-opp](https://github.com/phil-opp) + +The `bootimage` tool allows the creation of bootable disk images for `bootloader`-based kernels. It also provides a runner executable for `cargo` to make `cargo run` and `cargo test` work using QEMU. + +We merged the following changes this month: + +- [Add an example kernel that uses the built-in `x86_64-unknown-none` target](https://github.com/rust-osdev/bootimage/pull/104) +- [Fix bootloader build by passing `-Zjson-target-spec`](https://github.com/rust-osdev/bootimage/pull/105) +- [Prepare release](https://github.com/rust-osdev/bootimage/pull/106) +- [Fix QEMU test flakiness on ARM64 macOS](https://github.com/rust-osdev/bootimage/pull/107) + + +### [`bootloader`](https://github.com/rust-osdev/bootloader) +Maintained by [@phil-opp](https://github.com/phil-opp) and [@Freax13](https://github.com/Freax13) + +The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we merged the following changes: + +- [Expose data for custom boot image creation](https://github.com/rust-osdev/bootloader/pull/535) +- [build with -Zjson-target-spec](https://github.com/rust-osdev/bootloader/pull/536) +- [Enable json-target-spec](https://github.com/rust-osdev/bootloader/pull/537) +- [release 0.11.15](https://github.com/rust-osdev/bootloader/pull/538) +- [fix typo in year](https://github.com/rust-osdev/bootloader/pull/539) +- [update bootloader crates](https://github.com/rust-osdev/bootloader/pull/545) + + + +Thanks to [@Freax13](https://github.com/Freax13) and [@Wasabi375](https://github.com/Wasabi375) for their contributions! + + +### [`endian-num`](https://github.com/rust-osdev/endian-num) +Maintained by [@mkroening](https://github.com/mkroening) + +The `endian-num` crate provides the `Be` (big-endian) and `Le` (little-endian) byte-order-aware numeric types. + +We merged the following changes this month: + +- [feat: add MSRV of 1.71](https://github.com/rust-osdev/endian-num/pull/7) +- [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/endian-num/pull/6) + + +### [`fuse-abi`](https://github.com/rust-osdev/fuse-abi) +Maintained by [@mkroening](https://github.com/mkroening) + +The `fuse-abi` crate provides bindings to FUSE devices. In motivation similar to that of `virtio-spec`, this project aims to provide correct foundational definitions for the FUSE kernel ABI. + +We merged the following changes this month: + +- [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/fuse-abi/pull/1) + + + + +### [`spinning_top`](https://github.com/rust-osdev/spinning_top) +Maintained by [@phil-opp](https://github.com/phil-opp) + +The `spinning_top` crate provides a simple spinlock implementation based on the abstractions of the [`lock_api`](https://docs.rs/lock_api/0.4.1/lock_api/) crate. + +We merged the following changes this month: + +- [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/spinning_top/pull/27) + + +### [`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: + +- [uefi: Add device path generation for discovered devices in a PciTree](https://github.com/rust-osdev/uefi-rs/pull/1831) +- [uefi: significantly improve ergonomics of Handle (device path and component2 protocols)](https://github.com/rust-osdev/uefi-rs/pull/1858) +- [uefi-raw & uefi: serial: add support for protocol revision 1.1](https://github.com/rust-osdev/uefi-rs/pull/1873) +- [Improve docs of `OpenProtocolAttributes`](https://github.com/rust-osdev/uefi-rs/pull/1891) +- [uefi: Add `handle_protocol` doc alias to open_protocol functions](https://github.com/rust-osdev/uefi-rs/pull/1893) +- [uefi: serial: improve documentation and correctness of read() and write()](https://github.com/rust-osdev/uefi-rs/pull/1900) + + + + + + + +Thanks to [@seijikun](https://github.com/seijikun) for their contributions! + + +### [`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: + +- [build(deps): upgrade bitfield-structs to 0.12](https://github.com/rust-osdev/virtio-spec-rs/pull/17) +- [build(deps): update allocator-api2 to 0.4](https://github.com/rust-osdev/virtio-spec-rs/pull/18) +- [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/virtio-spec-rs/pull/21) +- [fix: rust-2018-idioms](https://github.com/rust-osdev/virtio-spec-rs/pull/22) +- [fix: upgrade to Rust 2024](https://github.com/rust-osdev/virtio-spec-rs/pull/23) + ## Other Projects From f8bb2d23ba136e7aed68582fa7618ad4c51f47a5 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Wed, 11 Mar 2026 17:18:30 +0000 Subject: [PATCH 4/7] Update to zola 0.22.1 --- .github/workflows/build-site.yml | 12 ++++++------ config.toml | 8 +++++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-site.yml b/.github/workflows/build-site.yml index 4781fa7..5798cd6 100644 --- a/.github/workflows/build-site.yml +++ b/.github/workflows/build-site.yml @@ -17,10 +17,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: "Download Zola" - run: curl -sL https://github.com/getzola/zola/releases/download/v0.16.1/zola-v0.16.1-x86_64-unknown-linux-gnu.tar.gz | tar zxv + run: curl -sL https://github.com/getzola/zola/releases/download/v0.22.1/zola-v0.22.1-x86_64-unknown-linux-gnu.tar.gz | tar zxv - name: "Build Site" run: ./zola build @@ -36,10 +36,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: "Download Zola" - run: curl -sL https://github.com/getzola/zola/releases/download/v0.16.1/zola-v0.16.1-x86_64-unknown-linux-gnu.tar.gz | tar zxv + run: curl -sL https://github.com/getzola/zola/releases/download/v0.22.1/zola-v0.22.1-x86_64-unknown-linux-gnu.tar.gz | tar zxv - name: "Run zola check" run: ./zola check @@ -49,7 +49,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - run: curl -L https://git.io/misspell | bash name: "Install misspell" @@ -76,7 +76,7 @@ jobs: path: generated_site - name: Check out gh-pages branch - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: ref: "gh-pages" path: "gh-pages" diff --git a/config.toml b/config.toml index bb43f8e..df0591a 100644 --- a/config.toml +++ b/config.toml @@ -11,11 +11,13 @@ compile_sass = false build_search_index = false # Generate RSS feed -generate_feed = true -feed_filename = "rss.xml" +generate_feeds = true +feed_filenames = ["rss.xml"] [markdown] -highlight_code = true + +[markdown.highlighting] +theme = "material-theme-ocean" [link_checker] skip_prefixes = [ From 8997eccd11e7f3262d6fc47767bf16a2d223c47c Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Wed, 11 Mar 2026 17:19:14 +0000 Subject: [PATCH 5/7] Update publish date --- content/this-month/2026-02/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/this-month/2026-02/index.md b/content/this-month/2026-02/index.md index 3215a98..c0f241b 100644 --- a/content/this-month/2026-02/index.md +++ b/content/this-month/2026-02/index.md @@ -1,6 +1,6 @@ +++ title = "This Month in Rust OSDev: February 2026" -date = 2026-03-04 +date = 2026-03-11 [extra] month = "February 2026" From f3d51f9eb3641024d70c0f4954458964c3df8983 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Wed, 11 Mar 2026 17:19:45 +0000 Subject: [PATCH 6/7] Fix publish date of last post --- content/this-month/2026-01/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/this-month/2026-01/index.md b/content/this-month/2026-01/index.md index 9e8c172..97cba3c 100644 --- a/content/this-month/2026-01/index.md +++ b/content/this-month/2026-01/index.md @@ -1,6 +1,6 @@ +++ title = "This Month in Rust OSDev: January 2026" -date = 2027-02-04 +date = 2026-02-04 [extra] month = "January 2026" From 7294bc80db08f1eb008e55d06c69d9d7a2f4669e Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Wed, 11 Mar 2026 17:21:57 +0000 Subject: [PATCH 7/7] Sort rust-osdev updates --- content/this-month/2026-02/index.md | 114 ++++++++++++++-------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/content/this-month/2026-02/index.md b/content/this-month/2026-02/index.md index c0f241b..c8d68c0 100644 --- a/content/this-month/2026-02/index.md +++ b/content/this-month/2026-02/index.md @@ -90,17 +90,60 @@ In this section, we give an overview of notable changes to the projects hosted u <> --> -### [`acpi`](https://github.com/rust-osdev/acpi) -Maintained by [@IsaacWoods](https://github.com/IsaacWoods) +### [`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) -The `acpi` repository contains crates for parsing the ACPI tables – data structures that the firmware of modern computers use to relay information about the hardware to the OS. +`uefi` makes it easy to develop Rust software that leverages safe, convenient, +and performant abstractions for UEFI functionality. -We merged the following changes this month: +We merged the following PRs this month: -- [Add support for extracting NUMA information from SRAT and SLIT](https://github.com/rust-osdev/acpi/pull/264) -- [Suggestion: Use colored instead of termion](https://github.com/rust-osdev/acpi/pull/265) +- [uefi: Add device path generation for discovered devices in a PciTree](https://github.com/rust-osdev/uefi-rs/pull/1831) +- [uefi: significantly improve ergonomics of Handle (device path and component2 protocols)](https://github.com/rust-osdev/uefi-rs/pull/1858) +- [uefi-raw & uefi: serial: add support for protocol revision 1.1](https://github.com/rust-osdev/uefi-rs/pull/1873) +- [Improve docs of `OpenProtocolAttributes`](https://github.com/rust-osdev/uefi-rs/pull/1891) +- [uefi: Add `handle_protocol` doc alias to open_protocol functions](https://github.com/rust-osdev/uefi-rs/pull/1893) +- [uefi: serial: improve documentation and correctness of read() and write()](https://github.com/rust-osdev/uefi-rs/pull/1900) -Thanks to [@martin-hughes](https://github.com/martin-hughes) for their contributions! + + + + + + +Thanks to [@seijikun](https://github.com/seijikun) for their contributions! + + +### [`bootloader`](https://github.com/rust-osdev/bootloader) +Maintained by [@phil-opp](https://github.com/phil-opp) and [@Freax13](https://github.com/Freax13) + +The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we merged the following changes: + +- [Expose data for custom boot image creation](https://github.com/rust-osdev/bootloader/pull/535) +- [build with -Zjson-target-spec](https://github.com/rust-osdev/bootloader/pull/536) +- [Enable json-target-spec](https://github.com/rust-osdev/bootloader/pull/537) +- [release 0.11.15](https://github.com/rust-osdev/bootloader/pull/538) +- [fix typo in year](https://github.com/rust-osdev/bootloader/pull/539) +- [update bootloader crates](https://github.com/rust-osdev/bootloader/pull/545) + + + +Thanks to [@Freax13](https://github.com/Freax13) and [@Wasabi375](https://github.com/Wasabi375) for their contributions! + + +### [`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: + +- [build(deps): upgrade bitfield-structs to 0.12](https://github.com/rust-osdev/virtio-spec-rs/pull/17) +- [build(deps): update allocator-api2 to 0.4](https://github.com/rust-osdev/virtio-spec-rs/pull/18) +- [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/virtio-spec-rs/pull/21) +- [fix: rust-2018-idioms](https://github.com/rust-osdev/virtio-spec-rs/pull/22) +- [fix: upgrade to Rust 2024](https://github.com/rust-osdev/virtio-spec-rs/pull/23) ### [`bootimage`](https://github.com/rust-osdev/bootimage) @@ -116,21 +159,17 @@ We merged the following changes this month: - [Fix QEMU test flakiness on ARM64 macOS](https://github.com/rust-osdev/bootimage/pull/107) -### [`bootloader`](https://github.com/rust-osdev/bootloader) -Maintained by [@phil-opp](https://github.com/phil-opp) and [@Freax13](https://github.com/Freax13) +### [`acpi`](https://github.com/rust-osdev/acpi) +Maintained by [@IsaacWoods](https://github.com/IsaacWoods) -The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we merged the following changes: +The `acpi` repository contains crates for parsing the ACPI tables – data structures that the firmware of modern computers use to relay information about the hardware to the OS. -- [Expose data for custom boot image creation](https://github.com/rust-osdev/bootloader/pull/535) -- [build with -Zjson-target-spec](https://github.com/rust-osdev/bootloader/pull/536) -- [Enable json-target-spec](https://github.com/rust-osdev/bootloader/pull/537) -- [release 0.11.15](https://github.com/rust-osdev/bootloader/pull/538) -- [fix typo in year](https://github.com/rust-osdev/bootloader/pull/539) -- [update bootloader crates](https://github.com/rust-osdev/bootloader/pull/545) +We merged the following changes this month: - +- [Add support for extracting NUMA information from SRAT and SLIT](https://github.com/rust-osdev/acpi/pull/264) +- [Suggestion: Use colored instead of termion](https://github.com/rust-osdev/acpi/pull/265) -Thanks to [@Freax13](https://github.com/Freax13) and [@Wasabi375](https://github.com/Wasabi375) for their contributions! +Thanks to [@martin-hughes](https://github.com/martin-hughes) for their contributions! ### [`endian-num`](https://github.com/rust-osdev/endian-num) @@ -166,45 +205,6 @@ We merged the following changes this month: - [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/spinning_top/pull/27) -### [`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: - -- [uefi: Add device path generation for discovered devices in a PciTree](https://github.com/rust-osdev/uefi-rs/pull/1831) -- [uefi: significantly improve ergonomics of Handle (device path and component2 protocols)](https://github.com/rust-osdev/uefi-rs/pull/1858) -- [uefi-raw & uefi: serial: add support for protocol revision 1.1](https://github.com/rust-osdev/uefi-rs/pull/1873) -- [Improve docs of `OpenProtocolAttributes`](https://github.com/rust-osdev/uefi-rs/pull/1891) -- [uefi: Add `handle_protocol` doc alias to open_protocol functions](https://github.com/rust-osdev/uefi-rs/pull/1893) -- [uefi: serial: improve documentation and correctness of read() and write()](https://github.com/rust-osdev/uefi-rs/pull/1900) - - - - - - - -Thanks to [@seijikun](https://github.com/seijikun) for their contributions! - - -### [`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: - -- [build(deps): upgrade bitfield-structs to 0.12](https://github.com/rust-osdev/virtio-spec-rs/pull/17) -- [build(deps): update allocator-api2 to 0.4](https://github.com/rust-osdev/virtio-spec-rs/pull/18) -- [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/virtio-spec-rs/pull/21) -- [fix: rust-2018-idioms](https://github.com/rust-osdev/virtio-spec-rs/pull/22) -- [fix: upgrade to Rust 2024](https://github.com/rust-osdev/virtio-spec-rs/pull/23) - - ## 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.