Skip to content

Commit 5710f72

Browse files
authored
Merge pull request #241 from rust-osdev/next
This Month in Rust OSDev: December 2024
2 parents 0b6bdf7 + e88d6aa commit 5710f72

File tree

6 files changed

+174
-4
lines changed

6 files changed

+174
-4
lines changed

config.toml

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ skip_prefixes = [
2828
"https://www.reddit.com/", # 403 forbidden
2929
"https://blog.rust.careers", # Expired certificate
3030
"https://gee.cs.oswego.edu", # times out
31+
"https://archive.org", # times out
3132
]
3233

3334
[extra]

content/this-month/2023-04/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Please follow this template:
4747
- (optional) Some additional context
4848
-->
4949

50-
- [Rust Kernel Programming](https://coderjoshdk.github.io/posts/Rust-Kernel-Programming.html)
50+
- [Rust Kernel Programming](https://web.archive.org/web/20241127063903/https://coderjoshdk.github.io/posts/Rust-Kernel-Programming.html)
5151
- [Linux Kernel Rust Modules](https://tomcat0x42.me/linux/rust/2023/04/07/linux-kernel-rust-modules.html)
5252
- [Aero OS: A new modern operating system made in Rust, now able to run the Links browser, Alacritty and much more!](https://www.reddit.com/r/rust/comments/12p2rf7/aero_os_a_new_modern_operating_system_made_in/)
5353
- [Felix, an x86 hobby OS written in Rust](https://www.reddit.com/r/rust/comments/12gxh8b/felix_an_x86_hobby_os_written_in_rust/)

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Please follow this template:
4343
- [Making VirtIO sing - implementing virtio-sound in rust-vmm project](https://fosdem.org/2024/schedule/event/fosdem-2024-1910-making-virtio-sing-implementing-virtio-sound-in-rust-vmm-project/)
4444
- [The case for a virtual Rust stateless codec driver](https://fosdem.org/2024/schedule/event/fosdem-2024-2985-the-case-for-a-virtual-rust-stateless-codec-driver/)
4545
- [An open-source, open-hardware offline finding system](https://fosdem.org/2024/schedule/event/fosdem-2024-3264-an-open-source-open-hardware-offline-finding-system/)
46-
- [Making an RISC-V OS (Part 1): Project Setup](https://traxys.me/riscv_os_setup.html)
46+
- [Making an RISC-V OS (Part 1): Project Setup](https://web.archive.org/web/20240619011057/https://traxys.me/riscv_os_setup.html)
4747
- [Looking for people to help out with CharlotteOS (Beginners are welcome!)](https://www.reddit.com/r/osdev/comments/1aeffha/looking_for_people_to_help_out_with_charlotteos/)
4848
- [The Linux kernel now contains the first useful component written in Rust](https://fosstodon.org/@kernellogger/111741507899977461)
4949
- [BPF Opens Door to Linux Extensible Scheduling (Maybe with Rust!)](https://thenewstack.io/bpf-opens-a-door-to-linux-dynamic-scheduling-maybe-with-rust/)

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Please follow this template:
3535
- [Redox OS - Porting Strategy](https://www.redox-os.org/news/porting-strategy/)
3636
- [This Month in Redox](https://redox-os.org/news/this-month-240229/)
3737
- [Tock Compiles on Stable Rust!](https://tockos.org/blog/2024/talking-tock-55/)
38-
- [Making an RISC-V OS (Part 2): Kernel in virtual addresses](https://traxys.me/riscv_os_2.html)
38+
- [Making an RISC-V OS (Part 2): Kernel in virtual addresses](https://web.archive.org/web/20240714023153/https://traxys.me/riscv_os_2.html)
3939
- The Embedded Rustacean [Issue 13](https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-13) and [Issue 14](https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-14)
4040
- [Linux Kernel: Rewrite the VP9 codec library in Rust](https://lore.kernel.org/lkml/[email protected]/)
4141
- [Anouncing stabby 3.0.0](https://www.reddit.com/r/rust/comments/1amjknw/anouncing_stabby_300_and_rustconf_video_available/)

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Please follow this template:
4848
- Video: [LinuxFest Northwest 2024: Meet COSMIC DE](https://www.youtube.com/watch?v=JHLfsWhDvz0)
4949
- New [`offset-allocator`](https://github.com/pcwalton/offset-allocator) crate, providing a fast, simple, hard real time allocator
5050
- not `no_std` yet, but should be easy to port (only requires a `Vec`-like type)
51-
- [Making an RISC-V OS (Part 3): Managing free memory](https://traxys.me/riscv_os_buddy.html)
51+
- [Making an RISC-V OS (Part 3): Managing free memory](https://web.archive.org/web/20241006213624/https://traxys.me/riscv_os_buddy.html)
5252
- [Asterinas](https://asterinas.github.io/): a secure, fast, and general-purpose OS kernel written in Rust and compatible with Linux
5353

5454
## Infrastructure and Tooling

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

+169
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
+++
2+
title = "This Month in Rust OSDev: December 2024"
3+
date = 2025-01-11
4+
5+
[extra]
6+
month = "December 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 (December 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+
- [This Month in Redox OS - December 2024](https://www.redox-os.org/news/this-month-241231/)
36+
- Video: [Intro to Embassy : embedded development with async Rust](https://www.youtube.com/watch?v=pDd5mXBF4tY)
37+
- [2025: The Year of COSMIC — Alpha 5 Released!](https://blog.system76.com/post/cosmic-alpha-5-released)
38+
- Funding Opportunities - with [Redox OS](https://redox-os.org/) or on your own
39+
- The NGI Zero Commons Fund and NGI Zero Fediversity Fund each have a call for proposals with a Feb. 1 deadline.
40+
If the proposal is successful, it would be to start roughly in June or July (based on our experience) and run for up to 12 months,
41+
with an amount up to 50,000 EUR.
42+
There must be a "European component", so a EU-based developer would be an ideal fit,
43+
or perhaps a project where the maintainer is EU-based. Here are the links:
44+
- [NGI Zero Commons Fund](https://nlnet.nl/commonsfund/)
45+
- [NGI Zero Fediversity Fund](https://nlnet.nl/fediversity/)
46+
- Redox is looking for a part-time or short-term developer to help with implementing device drivers, ACPI support, and similar,
47+
who would like to join our proposal.
48+
You must be knowledgeable in Rust and drivers, and have good reputation in the open source community.
49+
We have an existing relationship with NLnet, so we can craft the proposal, based on your skillset and our priorities.
50+
Please join us on Matrix and let us know you are interested.
51+
- https://matrix.to/#/#redox-join:matrix.org
52+
53+
54+
## Infrastructure and Tooling
55+
56+
In this section, we collect recent updates to `rustc`, `cargo`, and other tooling that are relevant to Rust OS development.
57+
58+
<!--
59+
Please use the following template:
60+
61+
- [Title](https://example.com)
62+
- (optional) Some additional context
63+
-->
64+
65+
- [Improve default target options for `x86_64-unknown-linux-none`](https://github.com/rust-lang/rust/pull/134765)
66+
- [De-duplicate and improve definition of core::ffi::c_char](https://github.com/rust-lang/rust/pull/132975)
67+
68+
## `rust-osdev` Projects
69+
70+
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.
71+
72+
<!--
73+
Please use the following template:
74+
75+
### [`repo_name`](https://github.com/rust-osdev/repo_name)
76+
<span class="maintainers">Maintained by [@maintainer_1](https://github.com/maintainer_1)</span>
77+
78+
The `repo_name` crate ...<<short introduction>>...
79+
80+
We merged the following changes this month:
81+
<<changelog, either in list or text form>>
82+
-->
83+
84+
### [`uefi-rs`](https://github.com/rust-osdev/uefi-rs)
85+
<span class="maintainers">Maintained by [@GabrielMajeri](https://github.com/GabrielMajeri), [@nicholasbishop](https://github.com/nicholasbishop), and [@phip1611](https://github.com/phip1611)</span>
86+
87+
`uefi` makes it easy to develop Rust software that leverages safe, convenient,
88+
and performant abstractions for UEFI functionality.
89+
90+
We merged the following PRs this month:
91+
92+
- [Fix clippy::needless_lifetimes in Rust 1.83 and ShimLock ABI on ia32](https://github.com/rust-osdev/uefi-rs/pull/1485)
93+
- [Fix clippy::use_self](https://github.com/rust-osdev/uefi-rs/pull/1486)
94+
- [uefi-raw: Add DriverBindingProtocol](https://github.com/rust-osdev/uefi-rs/pull/1487)
95+
- [Increase MSRV to 1.81](https://github.com/rust-osdev/uefi-rs/pull/1484)
96+
- [Update ptr_meta to 0.3.0](https://github.com/rust-osdev/uefi-rs/pull/1496)
97+
- [Remove unstable gate for `core::error::Error` impls](https://github.com/rust-osdev/uefi-rs/pull/1497)
98+
- [Use size_of/size_of_val/align_of/align_of_val from the prelude](https://github.com/rust-osdev/uefi-rs/pull/1498)
99+
- [book: Set driver link-arg in `build.rs`](https://github.com/rust-osdev/uefi-rs/pull/1502)
100+
101+
<!-- - [chore(deps): update crate-ci/typos action to v1.28.2](https://github.com/rust-osdev/uefi-rs/pull/1488) -->
102+
<!-- - [chore(deps): lock file maintenance](https://github.com/rust-osdev/uefi-rs/pull/1493) -->
103+
<!-- - [chore(deps): update crate-ci/typos action to v1.28.3](https://github.com/rust-osdev/uefi-rs/pull/1499) -->
104+
<!-- - [chore(deps): lock file maintenance](https://github.com/rust-osdev/uefi-rs/pull/1500) -->
105+
<!-- - [chore(deps): update crate-ci/typos action to v1.28.4](https://github.com/rust-osdev/uefi-rs/pull/1504) -->
106+
<!-- - [chore(deps): lock file maintenance](https://github.com/rust-osdev/uefi-rs/pull/1506) -->
107+
<!-- - [chore(deps): lock file maintenance](https://github.com/rust-osdev/uefi-rs/pull/1509) -->
108+
109+
Thanks to [@crawfxrd](https://github.com/crawfxrd) and [@JarlEvanson](https://github.com/JarlEvanson) for their contributions!
110+
111+
112+
### [`x86_64`](https://github.com/rust-osdev/x86_64)
113+
<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>
114+
115+
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.
116+
117+
We merged the following PRs this month:
118+
119+
- [fix(idt): panic in `impl fmt::Debug for EntryOptions`](https://github.com/rust-osdev/x86_64/pull/522)
120+
- [Add `MapperFlush` method to get page](https://github.com/rust-osdev/x86_64/pull/525)
121+
- [feat: add `update()` to `Cr3`, `Dr7`, `SFMask`, `UCet`, `SCet`, `mxcsr`, `rflags`, and `XCr0`](https://github.com/rust-osdev/x86_64/pull/527)
122+
- [fix(model_specific): make `{Fs,Gs,KernelGs}Base::write()` unsafe](https://github.com/rust-osdev/x86_64/pull/528)
123+
- [Merge master into next](https://github.com/rust-osdev/x86_64/pull/521)
124+
125+
Thanks to [@mkroening](https://github.com/mkroening) and [@adavis628](https://github.com/adavis628) for their contributions!
126+
127+
128+
### [`bootloader`](https://github.com/rust-osdev/bootloader)
129+
<span class="maintainers">Maintained by [@phil-opp](https://github.com/phil-opp) and [@Freax13](https://github.com/orgs/rust-osdev/people/Freax13)</span>
130+
131+
The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we merged the following improvements:
132+
133+
- [Remove "UEFI boot" log message](https://github.com/rust-osdev/bootloader/pull/476)
134+
135+
Thanks to [@ChocolateLoverRaj](https://github.com/ChocolateLoverRaj) for their contributions!
136+
137+
138+
139+
## Other Projects
140+
141+
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.
142+
143+
<!--
144+
Please use the following template:
145+
146+
### [`owner_name/repo_name`](https://github.com/rust-osdev/owner_name/repo_name)
147+
<span class="maintainers">(Section written by [@your_github_name](https://github.com/your_github_name))</span>
148+
149+
...<<your project updates>>...
150+
-->
151+
152+
### [`roeeshoshani/genesis`](https://github.com/roeeshoshani/genesis)
153+
<span class="maintainers">(Section written by [@roeeshoshani](https://github.com/roeeshoshani))</span>
154+
155+
`genesis` is a bare metal firmware implementation for mips. it implements everything from the bottom up, from
156+
initializing the cpu caches, to configuring pci devices and the interrupt controller.
157+
158+
i noticed that every kernel implementation is always for x86, so i decided to implement it for something a
159+
little more esoteric - mips.
160+
161+
the project is currently in very early stages but the basics are there.
162+
163+
it is my hobby project for me to learn about embedded programming.
164+
165+
feel free to follow along the development of it :).
166+
167+
## Join Us?
168+
169+
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)