Skip to content

Commit bb6d403

Browse files
authored
Merge pull request #204 from rust-osdev/next
This Month in Rust OSDev: March 2024
2 parents b13a7e4 + d218374 commit bb6d403

File tree

1 file changed

+233
-0
lines changed

1 file changed

+233
-0
lines changed

content/this-month/2024-03/index.md

Lines changed: 233 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
+++
2+
title = "This Month in Rust OSDev: March 2024"
3+
date = 2024-04-10
4+
5+
[extra]
6+
month = "March 2024"
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 (March 2024)" 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+
- [An IRC client in your motherboard](https://axleos.com/an-irc-client-in-your-motherboard/)
36+
- [octox: Writing a Unix-like OS in Rust](https://vmm.dev/en/rust/osinrust.md)
37+
- [This Month in Redox](https://redox-os.org/news/this-month-240330/)
38+
- [Redox Kernel Improvements](https://redox-os.org/news/kernel-10/)
39+
- [MOROS 0.10.3](https://github.com/vinc/moros/releases/tag/v0.10.3)
40+
- [The server chose violence: Hubris's oddest syscall](https://cliffle.com/blog/hubris-reply-fault/)
41+
- [Red Hat's Long, Rust'ed Road Ahead For Nova As Nouveau Driver Successor](https://www.phoronix.com/news/Red-Hat-Nova-Rust-Abstractions)
42+
- [A memory model for Rust code in the Linux kernel](https://lwn.net/SubscriberLink/967049/0ffb9b9ed8940013/)
43+
- [Embedded Rust Bluetooth on ESP: BLE Client](https://apollolabsblog.hashnode.dev/embedded-rust-bluetooth-on-esp-ble-client)
44+
- [EtherCrab 0.4: Distributed Clocks, `io_uring`, Derives, Oh My](https://wapl.es/ethercrab-0-4-io-uring-derives-ethercat-distributed-clocks/)
45+
- The Embedded Rustacean: [Issue 15](https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-15) and [Issue 16](https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-16)
46+
47+
## Infrastructure and Tooling
48+
49+
In this section, we collect recent updates to `rustc`, `cargo`, and other tooling that are relevant to Rust OS development.
50+
51+
<!--
52+
Please use the following template:
53+
54+
- [Title](https://example.com)
55+
- (optional) Some additional context
56+
-->
57+
58+
- [Add basic trait impls for `f16` and `f128`](https://github.com/rust-lang/rust/pull/123085)
59+
- [Add aarch64-apple-visionos and aarch64-apple-visionos-sim tier 3 targets](https://github.com/rust-lang/rust/pull/121419)
60+
- [Changes to Rust's WASI targets](https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html)
61+
- [RFC: patchable-function-entry](https://github.com/rust-lang/rfcs/pull/3543) was merged
62+
- [unsafe attributes RFC](https://github.com/rust-lang/rfcs/pull/3325) completed FCP
63+
- FCP complete to stabilize [raw slice len() method (slice_ptr_len, const_slice_ptr_len)](https://github.com/rust-lang/rust/issues/71146)
64+
- [stabilize ptr.is_aligned](https://github.com/rust-lang/rust/pull/121948)
65+
- [downgrade ptr.is_aligned_to crate-private](https://github.com/rust-lang/rust/pull/121920)
66+
- [transmute: caution against int2ptr transmutation](https://github.com/rust-lang/rust/pull/122379)
67+
- New RFC: [Add realign_stack attribute to rustc](https://github.com/rust-lang/rfcs/pull/3594)
68+
- [`c_unwind` full stabilization request: change in extern "C" behavior](https://github.com/rust-lang/rust/issues/115285)
69+
70+
## `rust-osdev` Projects
71+
72+
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.
73+
74+
<!--
75+
Please use the following template:
76+
77+
### [`repo_name`](https://github.com/rust-osdev/repo_name)
78+
<span class="maintainers">Maintained by [@maintainer_1](https://github.com/maintainer_1)</span>
79+
80+
The `repo_name` crate ...<<short introduction>>...
81+
82+
We merged the following changes this month:
83+
<<changelog, either in list or text form>>
84+
-->
85+
86+
### [`acpi`](https://github.com/rust-osdev/acpi)
87+
<span class="maintainers">Maintained by [@IsaacWoods](https://github.com/IsaacWoods)</span>
88+
89+
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:
90+
91+
- [AML: Correctly invoke `_SEG`,`_BBN`, and `_ADR` methods for PCI region accesses, plus assorted bits](https://github.com/rust-osdev/acpi/pull/208)
92+
- [acpi: Add `SdtHeaderIterator` to get all headers.](https://github.com/rust-osdev/acpi/pull/202)
93+
- [aml: add extra debug info on parsing error](https://github.com/rust-osdev/acpi/pull/207)
94+
- [AML: implement boolean field](https://github.com/rust-osdev/acpi/pull/211)
95+
96+
Thanks to [@fslongjin](https://github.com/fslongjin) and [@rw-vanc](https://github.com/rw-vanc) for their contributions!
97+
98+
99+
### [`x86_64`](https://github.com/rust-osdev/x86_64)
100+
<span class="maintainers">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)</span>
101+
102+
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.
103+
104+
We merged the following PRs this month:
105+
106+
- [miscellaneous improvements](https://github.com/rust-osdev/x86_64/pull/464)
107+
- [release v0.15.0](https://github.com/rust-osdev/x86_64/pull/463)
108+
- [doc: added help on update_flags to get flags](https://github.com/rust-osdev/x86_64/pull/465)
109+
- [Feat: add constructor for `InterruptStackFrameValue`](https://github.com/rust-osdev/x86_64/pull/467)
110+
- [properly jump the address gap in CleanUp](https://github.com/rust-osdev/x86_64/pull/469)
111+
- [expose DEBUG_STR more directly](https://github.com/rust-osdev/x86_64/pull/471)
112+
- [add write_pcid_no_flush](https://github.com/rust-osdev/x86_64/pull/472)
113+
- [release 0.15.1](https://github.com/rust-osdev/x86_64/pull/473)
114+
- [Implement function for creating a gdt in a const environment](https://github.com/rust-osdev/x86_64/pull/413)
115+
116+
Thanks to [@uglyoldbob](https://github.com/uglyoldbob), [@GZTimeWalker](https://github.com/GZTimeWalker), and [@Sxmourai](https://github.com/Sxmourai) for their contributions!
117+
118+
119+
### [`bootloader`](https://github.com/rust-osdev/bootloader)
120+
<span class="maintainers">Maintained by [@phil-opp](https://github.com/phil-opp) and [@Freax13](https://github.com/orgs/rust-osdev/people/Freax13)</span>
121+
122+
The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we merged the following improvements:
123+
124+
- [Change gitter badge to zulip badge](https://github.com/rust-osdev/bootloader/pull/431)
125+
- [avoid 32-bit relocation to `__BOOTLOADER_CONFIG`](https://github.com/rust-osdev/bootloader/pull/428)
126+
127+
Thanks to [@nicholasbishop](https://github.com/nicholasbishop), and [@Freax13](https://github.com/Freax13) for their contributions!
128+
129+
130+
### [`ucs2-rs`](https://github.com/rust-osdev/ucs2-rs)
131+
<span class="maintainers">Maintained by [@GabrielMajeri](https://github.com/GabrielMajeri), [@nicholasbishop](https://github.com/nicholasbishop), and [@phip1611](https://github.com/phip1611)</span>
132+
133+
- [Update Cargo.toml metadata](https://github.com/rust-osdev/ucs2-rs/pull/16)
134+
- [Add a short changelog](https://github.com/rust-osdev/ucs2-rs/pull/17)
135+
- [Add auto-release workflow](https://github.com/rust-osdev/ucs2-rs/pull/18)
136+
- [Set MSRV and add CI job to check it](https://github.com/rust-osdev/ucs2-rs/pull/19)
137+
- [Improve test coverage](https://github.com/rust-osdev/ucs2-rs/pull/20)
138+
139+
140+
### [`pic8259`](https://github.com/rust-osdev/pic8259)
141+
<span class="maintainers">Maintained by [@phil-opp](https://github.com/phil-opp)</span>
142+
143+
The `pic_8259` crate provides abstractions for 8259 and 8259A Programmable Interrupt Controllers (PICs).
144+
145+
We merged the following PR this month:
146+
147+
- [Update x86_64 dependency to version 0.15.0](https://github.com/rust-osdev/pic8259/pull/6)
148+
149+
Thanks to [@iTitus](https://github.com/iTitus) for their contribution!
150+
151+
152+
### [`ovmf-prebuilt`](https://github.com/rust-osdev/ovmf-prebuilt)
153+
<span class="maintainers">Maintained by [@phil-opp](https://github.com/phil-opp) and [@nicholasbishop](https://github.com/nicholasbishop)</span>
154+
155+
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:
156+
157+
- [Transition to a workspace](https://github.com/rust-osdev/ovmf-prebuilt/pull/39)
158+
- [Add empty ovmf-prebuilt package](https://github.com/rust-osdev/ovmf-prebuilt/pull/45)
159+
- [fix(deps): update rust crate clap to v4.5.4](https://github.com/rust-osdev/ovmf-prebuilt/pull/46)
160+
161+
162+
### [`volatile`](https://github.com/rust-osdev/volatile)
163+
<span class="maintainers">Maintained by [@phil-opp](https://github.com/phil-opp)</span>
164+
165+
The `volatile` crate provides a safe wrapper type for implementing volatile read and write operations. This is useful for accessing memory regions that have side-effects, such as memory-mapped hardware registers.
166+
167+
We merged the following PRs this month:
168+
169+
- [Implement some useful traits](https://github.com/rust-osdev/volatile/pull/41)
170+
- [Fix clippy warning about clone implementation](https://github.com/rust-osdev/volatile/pull/44)
171+
- [Fix build with `very_unstable` feature](https://github.com/rust-osdev/volatile/pull/45)
172+
- [Remove `Sized` requirement for `Send` and `Sync` on `VolatileRef`](https://github.com/rust-osdev/volatile/pull/42)
173+
174+
Thanks to [@nspin](https://github.com/nspin) and [@kadiwa4](https://github.com/kadiwa4) for their contributions!
175+
176+
177+
### [`linked-list-allocator`](https://github.com/rust-osdev/linked-list-allocator)
178+
<span class="maintainers">Maintained by [@phil-opp](https://github.com/phil-opp) and [@jamesmunns](https://github.com/jamesmunns)</span>
179+
180+
The `linked-list-allocator` crate provides a basic `no_std` allocator that builds a linked list from freed memory blocks and thus needs no additional data structures. We merged the following PR this month:
181+
182+
- [Remove stabilized feature](https://github.com/rust-osdev/linked-list-allocator/pull/81)
183+
184+
185+
### [`uefi-rs`](https://github.com/rust-osdev/uefi-rs)
186+
<span class="maintainers">Maintained by [@GabrielMajeri](https://github.com/GabrielMajeri), [@nicholasbishop](https://github.com/nicholasbishop), and [@phip1611](https://github.com/phip1611)</span>
187+
188+
The `uefi-rs` crate provides safe and performant wrappers for [UEFI](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface), the successor to the BIOS. We merged the following PRs this month:
189+
190+
<!--
191+
- [chore(deps): update rust crate log to v0.4.21](https://github.com/rust-osdev/uefi-rs/pull/1087)
192+
- [fix(deps): update rust crate syn to v2.0.52](https://github.com/rust-osdev/uefi-rs/pull/1088)
193+
- [chore(deps): update crate-ci/typos action to v1.19.0](https://github.com/rust-osdev/uefi-rs/pull/1090)
194+
- [fix(deps): update rust crate tempfile to v3.10.1](https://github.com/rust-osdev/uefi-rs/pull/1089)
195+
- [fix(deps): update rust crate proc-macro2 to v1.0.79](https://github.com/rust-osdev/uefi-rs/pull/1095)
196+
- [fix(deps): update rust crate anyhow to v1.0.81](https://github.com/rust-osdev/uefi-rs/pull/1094)
197+
- [chore(deps): update rust crate trybuild to v1.0.90](https://github.com/rust-osdev/uefi-rs/pull/1093)
198+
- [fix(deps): update rust crate syn to v2.0.53](https://github.com/rust-osdev/uefi-rs/pull/1096)
199+
- [chore(deps): update cachix/install-nix-action action to v26](https://github.com/rust-osdev/uefi-rs/pull/1098)
200+
- [fix(deps): update rust crate walkdir to v2.5.0](https://github.com/rust-osdev/uefi-rs/pull/1102)
201+
- [fix(deps): update rust crate os_info to v3.8.1](https://github.com/rust-osdev/uefi-rs/pull/1101)
202+
- [fix(deps): update rust crate nix to 0.28.0](https://github.com/rust-osdev/uefi-rs/pull/1100)
203+
- [fix(deps): update rust crate regex to v1.10.4](https://github.com/rust-osdev/uefi-rs/pull/1106)
204+
- [fix(deps): update rust crate os_info to v3.8.2](https://github.com/rust-osdev/uefi-rs/pull/1105)
205+
206+
-->
207+
208+
- [uefi: Derive Hash for all char and string types](https://github.com/rust-osdev/uefi-rs/pull/1086)
209+
- [uefi_raw: Add firmware_storage module](https://github.com/rust-osdev/uefi-rs/pull/1085)
210+
- [Use auto-release from crates.io to release](https://github.com/rust-osdev/uefi-rs/pull/1068)
211+
- [uefi-services: Use "dep:" syntax](https://github.com/rust-osdev/uefi-rs/pull/1091)
212+
- [release: uefi-raw-0.5.1, uefi-0.27.0, uefi-services-0.24.0](https://github.com/rust-osdev/uefi-rs/pull/1092)
213+
- [Fix some new lints/warnings](https://github.com/rust-osdev/uefi-rs/pull/1103)
214+
215+
216+
## Other Projects
217+
218+
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.
219+
220+
<!--
221+
Please use the following template:
222+
223+
### [`owner_name/repo_name`](https://github.com/rust-osdev/owner_name/repo_name)
224+
<span class="maintainers">(Section written by [@your_github_name](https://github.com/your_github_name))</span>
225+
226+
...<<your project updates>>...
227+
-->
228+
229+
<span class="gray">No projects updates were submitted this month.</span>
230+
231+
## Join Us?
232+
233+
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 [gitter channel](https://gitter.im/rust-osdev/Lobby).

0 commit comments

Comments
 (0)