From 98d963a8f676cca930462a9ad579974355626013 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Thu, 3 Sep 2026 10:45:11 +0000 Subject: [PATCH 1/8] Add draft for September issue Co-Authored-By: Claude Opus 5 --- content/this-month/2026-09/index.md | 95 +++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 content/this-month/2026-09/index.md diff --git a/content/this-month/2026-09/index.md b/content/this-month/2026-09/index.md new file mode 100644 index 00000000..999e510c --- /dev/null +++ b/content/this-month/2026-09/index.md @@ -0,0 +1,95 @@ ++++ +title = "This Month in Rust OSDev: September 2026" +date = 2026-10-01 + +[extra] +month = "September 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. + +Please submit interesting posts and projects for the next issue by commenting on the [draft pull request](https://github.com/rust-osdev/homepage/pulls) or via a PR [on GitHub](https://github.com/rust-osdev/homepage/). + + +Disclaimer: Automated scripts and AI assistance were used for collecting and categorizing links. +Everything was proofread and checked manually, with many manual tweaks. + + + + + +## Announcements, News, and Blog Posts + +Here we collect news, blog posts, etc. related to OS development in Rust. + + + +No content was submitted for this section this month. + +## Infrastructure and Tooling + +In this section, we collect recent updates to `rustc`, `cargo`, and other tooling that are relevant to Rust OS development. + + + +No content was submitted for this section this month. + +## `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. + + + +No content was submitted for this section this month. + +## 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 project 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 to get in touch is our [Zulip chat](https://rust-osdev.zulipchat.com). From c51759aed5dd73f74b04dfa0220753dca4d7fb75 Mon Sep 17 00:00:00 2001 From: Philipp Schuster Date: Sun, 20 Sep 2026 15:04:49 +0200 Subject: [PATCH 2/8] 2026-09: uefi-rs, multiboot2, and uart_16550 updates --- content/this-month/2026-09/index.md | 82 ++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/content/this-month/2026-09/index.md b/content/this-month/2026-09/index.md index 999e510c..a45c17c8 100644 --- a/content/this-month/2026-09/index.md +++ b/content/this-month/2026-09/index.md @@ -71,7 +71,87 @@ In this section, we give an overview of notable changes to the projects hosted u <> --> -No content was submitted for this section this month. +### [`uefi-rs`](https://github.com/rust-osdev/uefi-rs) +Maintained by [@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 continued last month's **soundness and specification compliance** work. The +common theme: the crates no longer blindly trust what the firmware reports. For +example, `boot::memory_map` trusted the map size reported by the firmware, so +sorting a map larger than its buffer read out of bounds, and several `boot` and +protocol functions turned null pointers returned by the firmware into handles or +references. In `uefi-raw`, we audited the pointer mutability of the protocol +definitions against the UEFI and PI specifications. This is breaking for the raw +bindings, but it lets the high-level `uefi` crate hand out `&`/`&mut` without +lying to the compiler. + +Not everything was about fixing things. `uefi-raw` gained HII Internal Forms +Representation (IFR) types and `uefi` gained the `AbsolutePointer` protocol, +`CString16::extend`, and allocation-free iteration over the components of a +`Path`. + +All of this is unreleased so far and will ship in the next `uefi` and +`uefi-raw` releases. + +As mentioned last month, [Anthropic](https://www.anthropic.com/) sponsors +@phip1611 with a Max plan as part of their open source program. Much of the +auditing above happened under that sponsorship, and we are happy that it helps +us improve the security, robustness, and reliability of the ecosystem. + +Thanks to [@crawfxrd](https://github.com/crawfxrd), +[@cwize1](https://github.com/cwize1) and +[@the-shank](https://github.com/the-shank) for their contributions! + +We merged the following PRs this month: + + +### [`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._ + +The `raw_type!` macro we announced last month landed. For users, this means that +values unknown to the specification - an unknown header tag type, architecture, +or memory area type - no longer produce undefined behavior. They now arrive as a +`Custom` variant that can simply be ignored. + +On the builder side, structures built on the stack could leak uninitialized +padding bytes into the output. Built structures are now byte-wise identical to +before, except that the padding between tags is guaranteed to be zeroed - so +what a bootloader hands to a kernel no longer depends on whatever was on the +stack. + +Released as `multiboot2 v0.27.0` and `v0.28.0`, `multiboot2-header v0.11.0`, and +`multiboot2-common v0.6.0` and `v0.7.0`. These come with a few breaking changes, +most notably that `Header` and `MaybeDynSized` are now `unsafe` traits, which +affects users implementing custom tags. + +We merged the following PRs this month: + + +### [`uart_16550`](https://github.com/rust-osdev/uart_16550) +Maintained by [@phip1611](https://github.com/phip1611) + +_Simple yet highly configurable low-level driver for 16550 UART devices, +typically known and used as serial ports or COM ports._ + +`v0.8.1` adds the public method `Uart16550::check_present()`, which probes for a +device through the scratch register. `init()` now delegates its existing +presence check to it, so users can run the same probe on their own before +touching the device. + +The repository also gained a `real-hw-test` crate member that builds a bootable +EFI image. This makes it much easier to verify the driver on real hardware +rather than only in virtual machines - which is exactly what this crate was +rewritten for. + +We merged the following PRs this month: + ## Other Projects From 200ec58f92c07ede0cda0889f05985f914266ad5 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Sun, 4 Oct 2026 13:05:58 +0000 Subject: [PATCH 3/8] rust-osdev updates --- content/this-month/2026-09/index.md | 135 +++++++++++++++++++++++++++- 1 file changed, 132 insertions(+), 3 deletions(-) diff --git a/content/this-month/2026-09/index.md b/content/this-month/2026-09/index.md index a45c17c8..f792e1f9 100644 --- a/content/this-month/2026-09/index.md +++ b/content/this-month/2026-09/index.md @@ -105,7 +105,124 @@ Thanks to [@crawfxrd](https://github.com/crawfxrd), [@the-shank](https://github.com/the-shank) for their contributions! We merged the following PRs this month: - + +- [release: uefi-macros-0.20.0, uefi-raw-0.17.0, uefi-0.41.0](https://github.com/rust-osdev/uefi-rs/pull/2092) +- [Various Fixes of Potential Undefined Behavior (LLM Assisted)](https://github.com/rust-osdev/uefi-rs/pull/2077) +- [Various Fixes of Potential Undefined Behavior (LLM Assisted) (2/N)](https://github.com/rust-osdev/uefi-rs/pull/2078) +- [Various Fixes of Potential Undefined Behavior (LLM Assisted) (3/N)](https://github.com/rust-osdev/uefi-rs/pull/2079) +- [Various Fixes of Potential Undefined Behavior (LLM Assisted) (4/N)](https://github.com/rust-osdev/uefi-rs/pull/2080) +- [Various Fixes of Potential Undefined Behavior (LLM Assisted) (5/N)](https://github.com/rust-osdev/uefi-rs/pull/2083) +- [Various Fixes of Potential Undefined Behavior and Panics (LLM Assisted) (6/N)](https://github.com/rust-osdev/uefi-rs/pull/2084) +- [Various Fixes of Potential Undefined Behavior and Panics (LLM Assisted) (8/N)](https://github.com/rust-osdev/uefi-rs/pull/2085) +- [uefi: fix aliasing UB in PciRootBridgeIo I/O accessors](https://github.com/rust-osdev/uefi-rs/pull/2074) +- [uefi: mem: fix the allocation handling of make_boxed](https://github.com/rust-osdev/uefi-rs/pull/2081) +- [uefi: media: validate the file info returned by firmware](https://github.com/rust-osdev/uefi-rs/pull/2082) +- [uefi-raw: spec violation fixes: outputs behind read-only pointers (1/5)](https://github.com/rust-osdev/uefi-rs/pull/2086) +- [uefi-raw: spec violation fixes: read-only inputs (2/5)](https://github.com/rust-osdev/uefi-rs/pull/2087) +- [uefi-raw: spec compliance: event notification context (3/5)](https://github.com/rust-osdev/uefi-rs/pull/2088) +- [uefi-raw: spec compliance: caller-owned outputs (4/5)](https://github.com/rust-osdev/uefi-rs/pull/2089) +- [uefi-raw: spec compliance: mode pointers and docs (5/5)](https://github.com/rust-osdev/uefi-rs/pull/2090) +- [uefi-raw: a few more spec adjustments regarding api_guidelines.md](https://github.com/rust-osdev/uefi-rs/pull/2093) +- [A few small Spec Fixes/Adjustments](https://github.com/rust-osdev/uefi-rs/pull/2063) +- [uefi-raw: Add HII IFR bindings](https://github.com/rust-osdev/uefi-rs/pull/2064) +- [uefi: Add AbsolutePointerProtocol](https://github.com/rust-osdev/uefi-rs/pull/2061) +- [Add EdidDiscovered protocol](https://github.com/rust-osdev/uefi-rs/pull/2073) +- [uefi: some string and path improvements](https://github.com/rust-osdev/uefi-rs/pull/2066) +- [uefi: Improve the debug format of `CStr8`, `CStr16`, and `CString16`.](https://github.com/rust-osdev/uefi-rs/pull/2099) +- [uefi-raw: Use efiapi for C variadic functions](https://github.com/rust-osdev/uefi-rs/pull/2098) +- [pxe: use PxeBaseCodeBootType in PxeBaseCodeSrvlist](https://github.com/rust-osdev/uefi-rs/pull/2058) +- [data_types: export FromSliceUntilNulError](https://github.com/rust-osdev/uefi-rs/pull/2059) +- [uefi-raw: improve documentation how to model UEFI types](https://github.com/rust-osdev/uefi-rs/pull/2091) +- [Various Small Release Preparation Fixes](https://github.com/rust-osdev/uefi-rs/pull/2096) +- [Some Small Fixes](https://github.com/rust-osdev/uefi-rs/pull/2100) + + + + + + + + + +### [`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 uses to relay information about the hardware to the OS. + +We merged the following changes this month: + +- [Breaking: Improve pm1 enable registers control ](https://github.com/rust-osdev/acpi/pull/326) +- [Add functions to get and clear pending events for Pm1EventRegisterBlock](https://github.com/rust-osdev/acpi/pull/325) +- [Add I2C and GPIO resource descriptors](https://github.com/rust-osdev/acpi/pull/333) +- [Add `set_interrupt_model_used` method for calling `\_PIC`](https://github.com/rust-osdev/acpi/pull/357) +- [Create `pci_routing::Pin::from_pci_interrupt_pin` convenience fn.](https://github.com/rust-osdev/acpi/pull/359) +- [Make RegionHandlers be Send + Sync by default](https://github.com/rust-osdev/acpi/pull/318) +- [feat: Don't take explicit references to `Handler`](https://github.com/rust-osdev/acpi/pull/345) +- [Use updated PhysicalMapping interface](https://github.com/rust-osdev/acpi/pull/360) +- [feat(aml): make `spinning_top`, `byteorder`, and `smallvec` optional](https://github.com/rust-osdev/acpi/pull/340) +- [Keep a copy of block stream instead of raw pointer](https://github.com/rust-osdev/acpi/pull/310) +- [Ensure that Locals passed to Methods are preserved](https://github.com/rust-osdev/acpi/pull/335) +- [Correctly unwind stack when handling `Continue`](https://github.com/rust-osdev/acpi/pull/363) +- [Prevent some infinite recursion and loops](https://github.com/rust-osdev/acpi/pull/352) +- [Fix a couple issues with end tags](https://github.com/rust-osdev/acpi/pull/332) +- [fix: Fix compilation with only the `alloc` feature](https://github.com/rust-osdev/acpi/pull/342) +- [Add basic test for ConcatenateRestTemplate](https://github.com/rust-osdev/acpi/pull/334) + + + + + + + + + + +Thanks to [@dewyatt](https://github.com/dewyatt), [@martin-hughes](https://github.com/martin-hughes), [@mkroening](https://github.com/mkroening), and [@ChocolateLoverRaj](https://github.com/ChocolateLoverRaj) 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. + +This month, the crate was upgraded to version 1.4 of the VIRTIO specification and gained virtio-blk definitions, released as `v0.4.0`: + +- [chore: Release version 0.4.0](https://github.com/rust-osdev/virtio-spec-rs/pull/46) +- [feat: add virtio-blk definitions](https://github.com/rust-osdev/virtio-spec-rs/pull/33) +- [feat: update `virtio::Id` to spec 1.4](https://github.com/rust-osdev/virtio-spec-rs/pull/26) +- [feat: add `DeviceStatus::SUSPEND` from spec 1.4](https://github.com/rust-osdev/virtio-spec-rs/pull/27) +- [feat: update features to spec 1.4](https://github.com/rust-osdev/virtio-spec-rs/pull/35) +- [feat(driver_notifications): upgrade to spec 1.4](https://github.com/rust-osdev/virtio-spec-rs/pull/36) +- [feat(net): upgrade to spec 1.4](https://github.com/rust-osdev/virtio-spec-rs/pull/40) +- [feat(pci): upgrade to spec 1.4](https://github.com/rust-osdev/virtio-spec-rs/pull/41) +- [feat(mmio): upgrade to spec 1.4](https://github.com/rust-osdev/virtio-spec-rs/pull/37) +- [feat: make enums ABI-compatible](https://github.com/rust-osdev/virtio-spec-rs/pull/30) + + + + + + + +### [`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 published a first release candidate for `v0.16.0` this month. We merged the following changes: + +- [release 0.16.0-rc.0](https://github.com/rust-osdev/x86_64/pull/608) +- [increase the Minimum Supported Rust Version to 1.98](https://github.com/rust-osdev/x86_64/pull/604) +- [make memory encryption bit an upper limit for physical address bits](https://github.com/rust-osdev/x86_64/pull/603) +- [feat(paging): Implement `IntoIterator` and `Copy` for ranges](https://github.com/rust-osdev/x86_64/pull/609) +- [fix: Add `#[track_caller]` to many address, page, and frame methods](https://github.com/rust-osdev/x86_64/pull/615) +- [fix(paging): Fix panic on displaying a page table with the last physical frame](https://github.com/rust-osdev/x86_64/pull/614) +- [clean up features](https://github.com/rust-osdev/x86_64/pull/607) + + + + +Thanks to [@mkroening](https://github.com/mkroening) for their contributions! ### [`multiboot2`](https://github.com/rust-osdev/multiboot2) Maintained by [@phip1611](https://github.com/phip1611) @@ -132,7 +249,13 @@ most notably that `Header` and `MaybeDynSized` are now `unsafe` traits, which affects users implementing custom tags. We merged the following PRs this month: - + +- [Various small-ish UB and Safety Fixes.](https://github.com/rust-osdev/multiboot2/pull/319) +- [Various UB fixes and Code Improvements](https://github.com/rust-osdev/multiboot2/pull/318) +- [Various UB Fixes](https://github.com/rust-osdev/multiboot2/pull/317) + + + ### [`uart_16550`](https://github.com/rust-osdev/uart_16550) Maintained by [@phip1611](https://github.com/phip1611) @@ -151,7 +274,13 @@ rather than only in virtual machines - which is exactly what this crate was rewritten for. We merged the following PRs this month: - + +- [real-hw-test: init](https://github.com/rust-osdev/uart_16550/pull/71) + + + + + ## Other Projects From 1a287b19eec86238d2c21c395ae63af7d35390ae Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Sun, 4 Oct 2026 13:13:06 +0000 Subject: [PATCH 4/8] Update the UEFI section with the release versions --- content/this-month/2026-09/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/this-month/2026-09/index.md b/content/this-month/2026-09/index.md index f792e1f9..cac43cfb 100644 --- a/content/this-month/2026-09/index.md +++ b/content/this-month/2026-09/index.md @@ -92,8 +92,8 @@ Representation (IFR) types and `uefi` gained the `AbsolutePointer` protocol, `CString16::extend`, and allocation-free iteration over the components of a `Path`. -All of this is unreleased so far and will ship in the next `uefi` and -`uefi-raw` releases. +All of this was released as `uefi v0.41.0`, `uefi-raw v0.17.0`, and +`uefi-macros v0.20.0`. As mentioned last month, [Anthropic](https://www.anthropic.com/) sponsors @phip1611 with a Max plan as part of their open source program. Much of the From e56c9f5f53b0c65181933ccc53dfe966f8193e97 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Sun, 4 Oct 2026 13:13:22 +0000 Subject: [PATCH 5/8] uart: link to the commits for the 0.8.1 changes --- content/this-month/2026-09/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/this-month/2026-09/index.md b/content/this-month/2026-09/index.md index cac43cfb..b5396793 100644 --- a/content/this-month/2026-09/index.md +++ b/content/this-month/2026-09/index.md @@ -263,7 +263,7 @@ We merged the following PRs this month: _Simple yet highly configurable low-level driver for 16550 UART devices, typically known and used as serial ports or COM ports._ -`v0.8.1` adds the public method `Uart16550::check_present()`, which probes for a +[`v0.8.1`](https://github.com/rust-osdev/uart_16550/commit/1d220e8615dbd1fbe3abef0446ffe90d70265be9) adds the public method [`Uart16550::check_present()`](https://github.com/rust-osdev/uart_16550/commit/a563618731b579fcc0984a85d7b2bfe7300e5c08), which probes for a device through the scratch register. `init()` now delegates its existing presence check to it, so users can run the same probe on their own before touching the device. From cae99c4327d7b8131318322bde825e504b087783 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Sun, 4 Oct 2026 13:22:40 +0000 Subject: [PATCH 6/8] Add infra updates --- content/this-month/2026-09/index.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/content/this-month/2026-09/index.md b/content/this-month/2026-09/index.md index b5396793..cb76cd0f 100644 --- a/content/this-month/2026-09/index.md +++ b/content/this-month/2026-09/index.md @@ -53,7 +53,21 @@ In this section, we collect recent updates to `rustc`, `cargo`, and other toolin - (optional) Some additional context --> -No content was submitted for this section this month. +- [alloc: stabilise `Allocator`](https://github.com/rust-lang/rust/pull/156882) + - After years behind the `allocator_api` feature gate, an MVP of the `Allocator` trait is stable, together with `Box`, `Vec`, `Global`, and the `*_with_allocator` methods. This makes custom per-collection allocators possible on stable Rust. The remaining parts of the old feature move to `allocator_ext`. +- [libcore: expose volatile atomic operations](https://github.com/rust-lang/rust/pull/161301) + - Adds unstable `load_volatile`/`store_volatile` methods on the atomic types (`atomic_volatile` feature), for memory shared with devices or other address spaces, such as DMA buffers. +- [x86: on targets that requires SSE, use those registers for ABI](https://github.com/rust-lang/rust/pull/161583) + - On SSE-requiring x86 targets, the Rust ABI now passes values in SSE registers and disabling SSE is a hard error. Kernels that disable SSE need a soft-float target. +- [feat(builtin-deps): Add builtin dependencies manifest syntax](https://github.com/rust-lang/cargo/pull/17498) + - First steps toward [RFC 3875](https://github.com/rust-lang/rfcs/pull/3875) (explicit dependencies on standard library crates for `build-std`), with follow-ups in [#17497](https://github.com/rust-lang/cargo/pull/17497), [#17499](https://github.com/rust-lang/cargo/pull/17499), and [#17513](https://github.com/rust-lang/cargo/pull/17513). +- [make target feature ABI check a hard error on ARM](https://github.com/rust-lang/rust/pull/161280) + - Code that requests a hard-float ABI on ARM without the matching float target features is now rejected. This was a future-compat warning since Rust 1.86. +- [Stabilize `unsafe_cell_access`](https://github.com/rust-lang/rust/pull/162504) + - Stabilizes `UnsafeCell::as_ref_unchecked`, `as_mut_unchecked`, and `replace`. +- [support `#[target_feature(enable = ...)]` on `#[naked]` functions](https://github.com/rust-lang/rust/pull/137720) +- [Add Tier 3 targets for Hyperlight guests](https://github.com/rust-lang/rust/pull/163144) + - Adds `x86_64-unknown-hyperlight` and `aarch64-unknown-hyperlight` targets for bare-metal guests running in Hyperlight micro-VMs. ## `rust-osdev` Projects From a8e459d44bfc1162954283d2282d8075c9deea1e Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Sun, 4 Oct 2026 13:33:14 +0000 Subject: [PATCH 7/8] Fill news section --- content/this-month/2026-09/index.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/content/this-month/2026-09/index.md b/content/this-month/2026-09/index.md index cb76cd0f..6965a784 100644 --- a/content/this-month/2026-09/index.md +++ b/content/this-month/2026-09/index.md @@ -40,7 +40,28 @@ Please follow this template: - (optional) Some additional context --> -No content was submitted for this section this month. +- [OSTEP & Redox: Introduction & The Process](https://himwant.org/posts/ostep-redox-intro/) + - Blog series that maps the concepts of the "Operating Systems: Three Easy Pieces" textbook to Redox. Follow-up posts: [How does scheduling work on Redox?](https://himwant.org/posts/ostep-redox-scheduler/) and [Memory Management in Redox - Pt. 1 Page Tables](https://himwant.org/posts/ostep-redox-memory/) +- [This Month in Redox - August 2026](https://www.redox-os.org/news/this-month-260831/) +- [Rust in the kernel? What about Rust without the kernel!](https://kerkour.com/rust-kernel) +- [The OpenVMM Project](https://techcommunity.microsoft.com/blog/windowsosplatform/the-openvmm-project/4547237) +- [Building a DMA based driver for the RP2350 I2C (safety not included)](https://micro-rust.github.io/posts/001-i2c-dma-handler/) +- [Reverse engineering my e-scooter and rewriting the firmware in rust](https://bensimms.moe/reverse-engineering-scooter/) +- [The Embedded Rustacean Issue #79](https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-79), + [Issue #80](https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-80), + and [Issue #81](https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-81) + +### Linux-related + +- [Kangrejos 2026](https://kangrejos.com) + - The Rust for Linux workshop took place on September 16–17 in Las Palmas. Slides for many sessions (pin-init, field projection, Tyr, Rust UFS driver, Rust SPDM, …) are linked on the page. +- Video: [Kernel Recipes 2026 - Rust for Linux](https://www.youtube.com/watch?v=7kPn2Kf7AJM) + - Talk by Miguel Ojeda. +- [Compiling the kernel with gccrs](https://lwn.net/Articles/1095553/) + - The corresponding RustConf talk is available too: [Arthur Cohen & Pierre-Emmanuel Patry: "Compiling the Linux Kernel with gccrs" | RustConf 2026](https://www.youtube.com/watch?v=GzxLOCigy60) +- [Google's "Painful To Maintain" Binder C Linux Driver Being Removed In Favor Of Rust](https://www.phoronix.com/news/Google-Binder-C-Goodbye) +- [The "rnull" Rust block driver](https://lwn.net/Articles/1090378/) +- [Guide to building kernel modules in Rust](https://thehecknow.hashnode.dev/implementing-a-linux-device-driver-in-rust) ## Infrastructure and Tooling From 8b17e0613a209e60799d37b21c0fd10ff708543a Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Sun, 4 Oct 2026 13:37:02 +0000 Subject: [PATCH 8/8] Exclude osdev wiki from link check --- config.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/config.toml b/config.toml index e619421c..9c9513de 100644 --- a/config.toml +++ b/config.toml @@ -39,6 +39,7 @@ skip_prefixes = [ "https://security.googleblog.com", # rate limits CI runners (429) "https://gitter.im", # redirects to app.gitter.im (301) "https://mirage.io", # intermittent connection failures + "https://wiki.osdev.org", # Cloudflare bot challenge (403) ] # These resolve fine, but their "#..." fragments are client-side routes