Skip to content

Commit b0c00e9

Browse files
authored
Merge pull request #274 from rust-osdev/next
This Month in Rust OSDev: February 2026
2 parents cea142e + 7294bc8 commit b0c00e9

3 files changed

Lines changed: 254 additions & 9 deletions

File tree

.github/workflows/build-site.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ jobs:
1717
runs-on: ubuntu-latest
1818

1919
steps:
20-
- uses: actions/checkout@v2
20+
- uses: actions/checkout@v4
2121

2222
- name: "Download Zola"
23-
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
23+
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
2424

2525
- name: "Build Site"
2626
run: ./zola build
@@ -36,10 +36,10 @@ jobs:
3636
runs-on: ubuntu-latest
3737

3838
steps:
39-
- uses: actions/checkout@v2
39+
- uses: actions/checkout@v4
4040

4141
- name: "Download Zola"
42-
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
42+
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
4343

4444
- name: "Run zola check"
4545
run: ./zola check
@@ -49,7 +49,7 @@ jobs:
4949
runs-on: ubuntu-latest
5050

5151
steps:
52-
- uses: actions/checkout@v2
52+
- uses: actions/checkout@v4
5353

5454
- run: curl -L https://git.io/misspell | bash
5555
name: "Install misspell"
@@ -76,7 +76,7 @@ jobs:
7676
path: generated_site
7777

7878
- name: Check out gh-pages branch
79-
uses: actions/checkout@v2
79+
uses: actions/checkout@v4
8080
with:
8181
ref: "gh-pages"
8282
path: "gh-pages"

config.toml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ compile_sass = false
1111
build_search_index = false
1212

1313
# Generate RSS feed
14-
generate_feed = true
15-
feed_filename = "rss.xml"
14+
generate_feeds = true
15+
feed_filenames = ["rss.xml"]
1616

1717
[markdown]
18-
highlight_code = true
18+
19+
[markdown.highlighting]
20+
theme = "material-theme-ocean"
1921

2022
[link_checker]
2123
skip_prefixes = [
Lines changed: 243 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
+++
2+
title = "This Month in Rust OSDev: February 2026"
3+
date = 2026-03-11
4+
5+
[extra]
6+
month = "February 2026"
7+
editors = ["phil-opp"]
8+
+++
9+
10+
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.
11+
12+
<!-- more -->
13+
14+
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 <a href="#comment-form">_comment form_</a> at the bottom of this page.
15+
16+
<!--
17+
This is a draft for the upcoming "This Month in Rust OSDev (February 2026)" post.
18+
Feel free to create pull requests against the `next` branch to add your
19+
content here.
20+
Please take a look at the past posts on https://rust-osdev.com/ to see the
21+
general structure of these posts.
22+
-->
23+
24+
## Announcements, News, and Blog Posts
25+
26+
Here we collect news, blog posts, etc. related to OS development in Rust.
27+
28+
<!--
29+
Please follow this template:
30+
31+
- [Title](https://example.com)
32+
- (optional) Some additional context
33+
-->
34+
35+
- [Linux 7.0 Officially Concluding The Rust Experiment](https://www.phoronix.com/news/Linux-7.0-Rust)
36+
- Rust is now formally accepted as a permanent part of the Linux kernel, shipping in production across multiple distributions and millions of Android devices.
37+
- [The future for Tyr](https://lwn.net/SubscriberLink/1055590/12d48275b6f81988/)
38+
- 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.
39+
- [Microsoft LiteBox](https://github.com/microsoft/litebox)
40+
- A Rust library OS supporting kernel- and user-mode execution, with sandboxing for running unmodified Linux programs on Windows and SEV SNP.
41+
- [This Month in Redox - January 2026](https://www.redox-os.org/news/this-month-260131/)
42+
- Redox got Cargo and rustc compiling natively and made progress on capability-based security.
43+
- [CHERIoT Rust: Status update #0](https://rust.cheriot.org/2026/02/15/status-update.html)
44+
- 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.
45+
- [Ariel OS v0.3.0: BLE, Sensors, UART, and More!](https://ariel-os.org/blog/ariel-os-0.3.0/)
46+
- New release adds BLE support, hardware-agnostic UART drivers, sensor abstraction, and expanded MCU support (ESP32, STM32, Nordic, RP).
47+
- [Async/await on the GPU](https://www.vectorware.com/blog/async-await-on-gpu/)
48+
- Rust's Future trait and async/await running on GPU hardware, reusing the Embassy embedded executor.
49+
50+
51+
## Infrastructure and Tooling
52+
53+
In this section, we collect recent updates to `rustc`, `cargo`, and other tooling that are relevant to Rust OS development.
54+
55+
<!--
56+
Please use the following template:
57+
58+
- [Title](https://example.com)
59+
- (optional) Some additional context
60+
-->
61+
62+
- [RFC: Unsafe fields](https://github.com/rust-lang/rfcs/pull/3458)
63+
- Approved for implementation. Allows marking struct fields as `unsafe` when they maintain safety invariants.
64+
- [Add `try_shrink_to` and `try_shrink_to_fit` to Vec](https://github.com/rust-lang/rust/pull/152366)
65+
- Fallible shrinking methods that return `TryReserveError` instead of panicking on OOM.
66+
- [Stabilize `ptr_as_ref_unchecked`](https://github.com/rust-lang/rust/pull/151995)
67+
- Raw-pointer-to-reference conversion without null/alignment checks.
68+
- [Stabilize `atomic_try_update` and deprecate `fetch_update`](https://github.com/rust-lang/rust/pull/148590)
69+
- Cleaner API for lock-free atomic compare-and-swap loops. `fetch_update` will be deprecated starting in Rust 1.99.0.
70+
- [Add `avr_target_feature`](https://github.com/rust-lang/rust/pull/146900)
71+
- Unstable target features for AVR microcontrollers including `tinyencoding`, `lowbytefirst`, and various instruction features.
72+
- [Stabilize `cfg_select!`](https://github.com/rust-lang/rust/pull/149783)
73+
- Builtin macro for selecting code based on cfg predicates, simplifying conditional compilation.
74+
- [Stabilize `core::hint::cold_path`](https://github.com/rust-lang/rust/pull/151576)
75+
- Mark unlikely code paths to help the compiler optimize branch layout.
76+
77+
## `rust-osdev` Projects
78+
79+
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.
80+
81+
<!--
82+
Please use the following template:
83+
84+
### [`repo_name`](https://github.com/rust-osdev/repo_name)
85+
<span class="maintainers">Maintained by [@maintainer_1](https://github.com/maintainer_1)</span>
86+
87+
The `repo_name` crate ...<<short introduction>>...
88+
89+
We merged the following changes this month:
90+
<<changelog, either in list or text form>>
91+
-->
92+
93+
### [`uefi-rs`](https://github.com/rust-osdev/uefi-rs)
94+
<span class="maintainers">Maintained by [@GabrielMajeri](https://github.com/GabrielMajeri), [@nicholasbishop](https://github.com/nicholasbishop), and [@phip1611](https://github.com/phip1611)</span>
95+
96+
`uefi` makes it easy to develop Rust software that leverages safe, convenient,
97+
and performant abstractions for UEFI functionality.
98+
99+
We merged the following PRs this month:
100+
101+
- [uefi: Add device path generation for discovered devices in a PciTree](https://github.com/rust-osdev/uefi-rs/pull/1831)
102+
- [uefi: significantly improve ergonomics of Handle (device path and component2 protocols)](https://github.com/rust-osdev/uefi-rs/pull/1858)
103+
- [uefi-raw & uefi: serial: add support for protocol revision 1.1](https://github.com/rust-osdev/uefi-rs/pull/1873)
104+
- [Improve docs of `OpenProtocolAttributes`](https://github.com/rust-osdev/uefi-rs/pull/1891)
105+
- [uefi: Add `handle_protocol` doc alias to open_protocol functions](https://github.com/rust-osdev/uefi-rs/pull/1893)
106+
- [uefi: serial: improve documentation and correctness of read() and write()](https://github.com/rust-osdev/uefi-rs/pull/1900)
107+
108+
<!-- - [chore(deps): update crate-ci/typos action to v1.42.3](https://github.com/rust-osdev/uefi-rs/pull/1885) -->
109+
<!-- - [chore(deps): lock file maintenance](https://github.com/rust-osdev/uefi-rs/pull/1889) -->
110+
<!-- - [chore(deps): lock file maintenance](https://github.com/rust-osdev/uefi-rs/pull/1890) -->
111+
<!-- - [chore(deps): lock file maintenance](https://github.com/rust-osdev/uefi-rs/pull/1895) -->
112+
<!-- - [chore(deps): lock file maintenance](https://github.com/rust-osdev/uefi-rs/pull/1904) -->
113+
114+
Thanks to [@seijikun](https://github.com/seijikun) for their contributions!
115+
116+
117+
### [`bootloader`](https://github.com/rust-osdev/bootloader)
118+
<span class="maintainers">Maintained by [@phil-opp](https://github.com/phil-opp) and [@Freax13](https://github.com/Freax13)</span>
119+
120+
The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we merged the following changes:
121+
122+
- [Expose data for custom boot image creation](https://github.com/rust-osdev/bootloader/pull/535)
123+
- [build with -Zjson-target-spec](https://github.com/rust-osdev/bootloader/pull/536)
124+
- [Enable json-target-spec](https://github.com/rust-osdev/bootloader/pull/537)
125+
- [release 0.11.15](https://github.com/rust-osdev/bootloader/pull/538)
126+
- [fix typo in year](https://github.com/rust-osdev/bootloader/pull/539)
127+
- [update bootloader crates](https://github.com/rust-osdev/bootloader/pull/545)
128+
129+
<!-- - [Bump bytes from 1.10.1 to 1.11.1 in /examples/basic](https://github.com/rust-osdev/bootloader/pull/540) -->
130+
131+
Thanks to [@Freax13](https://github.com/Freax13) and [@Wasabi375](https://github.com/Wasabi375) for their contributions!
132+
133+
134+
### [`virtio-spec-rs`](https://github.com/rust-osdev/virtio-spec-rs)
135+
<span class="maintainers">Maintained by [@mkroening](https://github.com/mkroening)</span>
136+
137+
The `virtio-spec` crate provides definitions from the Virtual I/O Device (VIRTIO) specification.
138+
This project aims to be unopinionated regarding actual VIRTIO drivers that are implemented on top of this crate.
139+
140+
We merged the following PRs this month:
141+
142+
- [build(deps): upgrade bitfield-structs to 0.12](https://github.com/rust-osdev/virtio-spec-rs/pull/17)
143+
- [build(deps): update allocator-api2 to 0.4](https://github.com/rust-osdev/virtio-spec-rs/pull/18)
144+
- [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/virtio-spec-rs/pull/21)
145+
- [fix: rust-2018-idioms](https://github.com/rust-osdev/virtio-spec-rs/pull/22)
146+
- [fix: upgrade to Rust 2024](https://github.com/rust-osdev/virtio-spec-rs/pull/23)
147+
148+
149+
### [`bootimage`](https://github.com/rust-osdev/bootimage)
150+
<span class="maintainers">Maintained by [@phil-opp](https://github.com/phil-opp)</span>
151+
152+
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.
153+
154+
We merged the following changes this month:
155+
156+
- [Add an example kernel that uses the built-in `x86_64-unknown-none` target](https://github.com/rust-osdev/bootimage/pull/104)
157+
- [Fix bootloader build by passing `-Zjson-target-spec`](https://github.com/rust-osdev/bootimage/pull/105)
158+
- [Prepare release](https://github.com/rust-osdev/bootimage/pull/106)
159+
- [Fix QEMU test flakiness on ARM64 macOS](https://github.com/rust-osdev/bootimage/pull/107)
160+
161+
162+
### [`acpi`](https://github.com/rust-osdev/acpi)
163+
<span class="maintainers">Maintained by [@IsaacWoods](https://github.com/IsaacWoods)</span>
164+
165+
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.
166+
167+
We merged the following changes this month:
168+
169+
- [Add support for extracting NUMA information from SRAT and SLIT](https://github.com/rust-osdev/acpi/pull/264)
170+
- [Suggestion: Use colored instead of termion](https://github.com/rust-osdev/acpi/pull/265)
171+
172+
Thanks to [@martin-hughes](https://github.com/martin-hughes) for their contributions!
173+
174+
175+
### [`endian-num`](https://github.com/rust-osdev/endian-num)
176+
<span class="maintainers">Maintained by [@mkroening](https://github.com/mkroening)</span>
177+
178+
The `endian-num` crate provides the `Be` (big-endian) and `Le` (little-endian) byte-order-aware numeric types.
179+
180+
We merged the following changes this month:
181+
182+
- [feat: add MSRV of 1.71](https://github.com/rust-osdev/endian-num/pull/7)
183+
- [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/endian-num/pull/6)
184+
185+
186+
### [`fuse-abi`](https://github.com/rust-osdev/fuse-abi)
187+
<span class="maintainers">Maintained by [@mkroening](https://github.com/mkroening)</span>
188+
189+
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.
190+
191+
We merged the following changes this month:
192+
193+
- [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/fuse-abi/pull/1)
194+
195+
<!-- - [chore: upgrade bindgen-cli to 0.72.1](https://github.com/rust-osdev/fuse-abi/pull/2) -->
196+
197+
198+
### [`spinning_top`](https://github.com/rust-osdev/spinning_top)
199+
<span class="maintainers">Maintained by [@phil-opp](https://github.com/phil-opp)</span>
200+
201+
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.
202+
203+
We merged the following changes this month:
204+
205+
- [fix(docsrs): migrate from `doc_auto_cfg` to `doc_cfg`](https://github.com/rust-osdev/spinning_top/pull/27)
206+
207+
208+
## Other Projects
209+
210+
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.
211+
212+
<!--
213+
Please use the following template:
214+
215+
### [`owner_name/repo_name`](https://github.com/rust-osdev/owner_name/repo_name)
216+
<span class="maintainers">(Section written by [@your_github_name](https://github.com/your_github_name))</span>
217+
218+
...<<your project updates>>...
219+
-->
220+
221+
### [`metta-systems/ram-map-viewer`](https://github.com/metta-systems/ram-map-viewer)
222+
<span class="maintainers">(Section written by [@berkus](https://github.com/berkus))</span>
223+
224+
Added a little GUI for visualizing memory maps. The application itself currently supports a map format that my initialisation code emits, but
225+
it has a MemorySource trait that you can implement to consume any format.
226+
227+
<video src="https://raw.githubusercontent.com/metta-systems/ram-map-viewer/video/video/ram-map-viewer.mp4" controls></video>
228+
229+
### [`metta-systems/vesper`](https://github.com/metta-systems/vesper)
230+
<span class="maintainers">(Section written by [@berkus](https://github.com/berkus))</span>
231+
232+
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.
233+
234+
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.
235+
236+
237+
<!-- <span class="gray">No projects updates were submitted this month.</span> -->
238+
239+
240+
241+
## Join Us?
242+
243+
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).

0 commit comments

Comments
 (0)