From 7fc58dcf659f84340c41b400b56acc21d8d8aa02 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Wed, 9 Jul 2025 11:19:09 +0200 Subject: [PATCH 1/6] Create draft for July issue --- content/this-month/2025-07/index.md | 87 +++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 content/this-month/2025-07/index.md diff --git a/content/this-month/2025-07/index.md b/content/this-month/2025-07/index.md new file mode 100644 index 0000000..9731242 --- /dev/null +++ b/content/this-month/2025-07/index.md @@ -0,0 +1,87 @@ ++++ +title = "This Month in Rust OSDev: July 2025" +date = 2025-08-04 + +[extra] +month = "July 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. + + + + + +## 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 de8dfe6fa80843f21fe21f36d29636a3e710b8a9 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Fri, 8 Aug 2025 09:17:51 +0200 Subject: [PATCH 2/6] Add updates for rust-osdev crates --- content/this-month/2025-07/index.md | 51 +++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/content/this-month/2025-07/index.md b/content/this-month/2025-07/index.md index 9731242..fce6db9 100644 --- a/content/this-month/2025-07/index.md +++ b/content/this-month/2025-07/index.md @@ -63,6 +63,57 @@ In this section, we give an overview of notable changes to the projects hosted u <> --> +### [`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 fix: + +- [Fixes the type of target-c-int-width in target jsons.](https://github.com/rust-osdev/bootloader/pull/509) + +Thanks to [@OmegaMetor](https://github.com/OmegaMetor) for their contribution! + + +### [`uart_16550`](https://github.com/rust-osdev/uart_16550) +Maintained by [@phil-opp](https://github.com/phil-opp) + +The `uart_16550` crate provides basic support for serial port I/O for 16550-compatible UARTs. We merged the following change this month: + +- [Update port.rs to do \r\n](https://github.com/rust-osdev/uart_16550/pull/40) + +Thanks to [@rsahwe](https://github.com/rsahwe) for their contribution! + + +### [`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: + +- [doc: fix broken links](https://github.com/rust-osdev/uefi-rs/pull/1716) +- [uefi: Add HiiKeywordHandler and HiiConfigAccess protocol](https://github.com/rust-osdev/uefi-rs/pull/1684) +- [protocols: Add ACPI Table protocol](https://github.com/rust-osdev/uefi-rs/pull/1731) +- [feat: `uefi-raw` IoMmu Protocol Impl](https://github.com/rust-osdev/uefi-rs/pull/1732) + +Thanks to [@seijikun](https://github.com/seijikun), [@Jonathas-Conceicao](https://github.com/Jonathas-Conceicao) and [@PelleKrab](https://github.com/PelleKrab) for their contributions! + + + +### [`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: + +- [docs(offset_page_table): fix typo](https://github.com/rust-osdev/x86_64/pull/555) +- [feat: add forwarding `impl PageTableFrameMapping for &P`](https://github.com/rust-osdev/x86_64/pull/556) + +Thanks to [@mkroening](https://github.com/mkroening) for their contributions! From eae7625b1a61e0eb5e69b598d3f8e39ddbb2b2ee Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Fri, 8 Aug 2025 15:49:01 +0200 Subject: [PATCH 3/6] Add blog posts and infra updates --- content/this-month/2025-07/index.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/content/this-month/2025-07/index.md b/content/this-month/2025-07/index.md index fce6db9..7d4892c 100644 --- a/content/this-month/2025-07/index.md +++ b/content/this-month/2025-07/index.md @@ -32,7 +32,20 @@ Please follow this template: - (optional) Some additional context --> - +- [You Are The BIOS Now: Building A Hypervisor In Rust With KVM](https://yeet.cx/blog/you-are-the-bios-now) +- [How to write Rust in the kernel: part 3](https://lwn.net/Articles/1026694/) +- [Vivo BlueOS Kernel open-sourced](https://github.com/vivoblueos/kernel) + - Vivo is a Chinese company selling smartphones and [smartwatches](https://www.vivo.com/en/products/watch3) + - BlueOS appears to be their smartwatch OS, now its kernel is open source (Apache license) + - POSIX-compatible, targets ARM and RISCV, supports Rust's `std` library + - Chinese homepage: https://blueos.vivo.com/kernel +- [This Month in Redox - July 2025](https://www.redox-os.org/news/this-month-250731/) +- [Writing a Rust GPU kernel driver: a brief introduction on how GPU drivers work](https://www.collabora.com/news-and-blog/blog/2025/08/06/writing-a-rust-gpu-kernel-driver-a-brief-introduction-on-how-gpu-drivers-work/) +- [`bitpiece`: a crate for defining and manipulating bitfields with procedural macros](https://github.com/roeeshoshani/bitpiece) +- [A Clone of the Linux Kernel's Red-Black Tree in Rust](https://www.reddit.com/r/rust/comments/1lyad9b/rougenoir_a_clone_of_the_linux_kernels_redblack/) +- [Rex: Closing the language-verifier gap with safe and usable kernel extensions](https://www.usenix.org/conference/atc25/presentation/jia) +- [Dynamic Indirect Syscalls via JOP or ROP in Rust](https://kirchware.com/Dynamic-Indirect-Syscalls-via-JOP-or-ROP-in-Rust) +- [Practicing Linux Syscalls with Rust and x86_64 Assembly](https://www.reddit.com/r/rust/comments/1lyxyoa/practicing_linux_syscalls_with_rust_and_x86_64/) ## Infrastructure and Tooling @@ -45,6 +58,7 @@ In this section, we collect recent updates to `rustc`, `cargo`, and other toolin - (optional) Some additional context --> +- [Allow volatile access to non-Rust memory, including address 0](https://github.com/rust-lang/rust/pull/141260) ## `rust-osdev` Projects From 9004aabe0bdc4a64bb28ee3b61d78df3d7f57b02 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Fri, 8 Aug 2025 15:53:01 +0200 Subject: [PATCH 4/6] Set publish date --- content/this-month/2025-07/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/this-month/2025-07/index.md b/content/this-month/2025-07/index.md index 7d4892c..ff8bb2a 100644 --- a/content/this-month/2025-07/index.md +++ b/content/this-month/2025-07/index.md @@ -1,6 +1,6 @@ +++ title = "This Month in Rust OSDev: July 2025" -date = 2025-08-04 +date = 2025-08-08 [extra] month = "July 2025" From 8156ef956edca27371c5b94ca44cbf445111ef80 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Fri, 8 Aug 2025 16:00:15 +0200 Subject: [PATCH 5/6] Add phil-opp/blog_os updates --- content/this-month/2025-07/index.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/content/this-month/2025-07/index.md b/content/this-month/2025-07/index.md index ff8bb2a..34464ba 100644 --- a/content/this-month/2025-07/index.md +++ b/content/this-month/2025-07/index.md @@ -147,6 +147,16 @@ In this section, we describe updates to Rust OS projects that are not directly r +### [`phil-opp/blog_os`](https://github.com/phil-opp/blog_os) +(Section written by [@phil-opp](https://github.com/phil-opp)) + +We merged the following changes to the [_Writing an OS in Rust_](https://os.phil-opp.com/) blog this month: + +- [Fix: `target-c-int-width` field now expects an integer](https://github.com/phil-opp/blog_os/pull/1425) + - [Update blog for `target-c-int-width` change](https://github.com/phil-opp/blog_os/pull/1426) +- [Add `[[bin]]` section with `test=false` to Cargo.toml](https://github.com/phil-opp/blog_os/pull/1412) (thanks to [@tigeryant](https://github.com/tigeryant)) + - [Update first post to set `test=false` for binary](https://github.com/phil-opp/blog_os/pull/1427) + ## 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 8ce7236f6f045d17d373e5fd481c9f412c2fca28 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Fri, 8 Aug 2025 16:03:45 +0200 Subject: [PATCH 6/6] Fix dead link in old post --- content/this-month/2024-04/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/this-month/2024-04/index.md b/content/this-month/2024-04/index.md index 29bd137..e40b1e7 100644 --- a/content/this-month/2024-04/index.md +++ b/content/this-month/2024-04/index.md @@ -32,7 +32,7 @@ Please follow this template: - (optional) Some additional context --> -- [Testing Virtualization Stacks by Utilizing Mini Operating System Kernels](https://cyberus-technology.de/articles/testing-virtualization-stacks-utilizing-mini-kernels) \ +- [Testing Virtualization Stacks by Utilizing Mini Operating System Kernels](https://cyberus-technology.de/en/articles/testing-virtualization-stacks-utilizing-mini-kernels/) \ Multiple mini OS kernels help Cyberus Technology to investigate issues related to complicated problems in virtualization stacks, such as never delivered interrupts. Although the Cyberus Guest Tests are written in C++,