Skip to content

Commit e2c1aff

Browse files
authored
Merge pull request #71 from rust-osdev/next
This Month in Rust OSDev (September 2021)
2 parents b6d1bee + 1116955 commit e2c1aff

File tree

1 file changed

+142
-0
lines changed

1 file changed

+142
-0
lines changed

content/this-month/2021-09/index.md

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
+++
2+
title = "This Month in Rust OSDev (September 2021)"
3+
date = 2021-10-07
4+
5+
[extra]
6+
month = "September 2021"
7+
authors = [
8+
"phil-opp",
9+
"phip1611",
10+
# add yourself here
11+
]
12+
+++
13+
14+
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.
15+
16+
<!-- more -->
17+
18+
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_](#comment-form) at the bottom of this page.
19+
20+
<!--
21+
This is a draft for the upcoming "This Month in Rust OSDev (September 2021)" post.
22+
Feel free to create pull requests against the `next` branch to add your
23+
content here.
24+
Please take a look at the past posts on https://rust-osdev.com/ to see the
25+
general structure of these posts.
26+
-->
27+
28+
## Project Updates
29+
30+
In this section, we give an overview of notable changes to the projects hosted under the [`rust-osdev`] organization.
31+
32+
[`rust-osdev`]: https://github.com/rust-osdev/about
33+
34+
### [`x86_64`](https://github.com/rust-osdev/x86_64)
35+
36+
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.
37+
38+
In September, we merged the following changes:
39+
40+
- [Add `clean_up` and `clean_up_with_filter`](https://github.com/rust-osdev/x86_64/pull/264) for deallocating unused page tables
41+
- [Add exception vector type](https://github.com/rust-osdev/x86_64/pull/303)
42+
- [Bump `bit_field` to 0.10.1](https://github.com/rust-osdev/x86_64/pull/306)
43+
- [Release version 0.14.5](https://github.com/rust-osdev/x86_64/pull/304)
44+
- [Move segment types into a new registers::segmentation module](https://github.com/rust-osdev/x86_64/pull/309)
45+
- [Release version 0.14.6](https://github.com/rust-osdev/x86_64/pull/310)
46+
47+
Thanks to [@Freax13](https://github.com/Freax13), [@npmccallum](https://github.com/npmccallum), and [@mkroening](https://github.com/mkroening) for their contributions!
48+
49+
50+
### [`uefi-rs`](https://github.com/rust-osdev/uefi-rs)
51+
52+
The `uefi` crate provides safe and performant wrappers for [UEFI](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface), the successor to the BIOS.
53+
54+
This month, we merged the following changes:
55+
56+
- [Improve macro errors](https://github.com/rust-osdev/uefi-rs/pull/277)
57+
- [Implement missing methods of `DebugSupport`](https://github.com/rust-osdev/uefi-rs/pull/290)
58+
- [macros: add compilation tests](https://github.com/rust-osdev/uefi-rs/pull/286)
59+
- [Remove attribute to enable `const_panic`](https://github.com/rust-osdev/uefi-rs/pull/296)
60+
- [Add a test command to build.py and also use it in the CI](https://github.com/rust-osdev/uefi-rs/pull/283)
61+
62+
Thanks to [@necauqua](https://github.com/necauqua) and [@timrobertsdev](https://github.com/timrobertsdev) for their contributions!
63+
64+
### [`bootloader`](https://github.com/rust-osdev/bootloader)
65+
66+
The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables.
67+
68+
We finally merged a long-desired feature this month:
69+
70+
- [Framebuffer configuration](https://github.com/rust-osdev/bootloader/pull/179) <span class="gray">(published as `v0.10.9`)</span>
71+
72+
Thanks to [@anellie](https://github.com/anellie) for this contribution!
73+
74+
### [`multboot2`](https://github.com/rust-osdev/multiboot2)
75+
76+
The `multiboot2` crate provides abstraction types for the boot information of multiboot2 bootloaders.
77+
78+
It is now part of a workspace and lives next to the new crate `multiboot2-header`.
79+
80+
The following changes were merged this month:
81+
82+
- [Code style improvements + optional CI job (clippy, rustfmt, rustdoc)](https://github.com/rust-osdev/multiboot2/pull/92)
83+
- [std in tests; hash for TagType](https://github.com/rust-osdev/multiboot2/pull/94)
84+
- [editorconfig file](https://github.com/rust-osdev/multiboot2/pull/93)
85+
- [prepared cargo workspace, as discussed in PR #79](https://github.com/rust-osdev/multiboot2/pull/86)
86+
87+
The changes were published as <span class="gray">`v0.12.2`</span>.
88+
89+
90+
### [`multboot2-header`](https://github.com/rust-osdev/multiboot2) (**new**)
91+
92+
The `multiboot2-header` crate provides abstraction types for the Multiboot2 header
93+
and a builder struct to construct these headers. The corresponding repository was
94+
prepared ([#86](https://github.com/rust-osdev/multiboot2/pull/86)) and the initial release
95+
is expected in early October. See [#95](https://github.com/rust-osdev/multiboot2/pull/95) for more details.
96+
97+
98+
## Call for Participation
99+
100+
Want to contribute to a Rust OSDev project, but don't know where to start? Pick up one of these outstanding
101+
issues in one of our projects and get started!
102+
103+
<!--
104+
Please use the following template for adding items:
105+
- [(`repo_name`) Issue Description](https://example.com/link-to-issue)
106+
-->
107+
108+
- [(`phil-opp/blog_os`) Looking for a reviewer for a French translation](https://github.com/phil-opp/blog_os/pull/1053)
109+
110+
<!--
111+
<span class="gray">
112+
113+
_No tasks were proposed for this section._
114+
115+
</span>
116+
-->
117+
118+
If you maintain a Rust OSDev project and are looking for contributors, especially for tasks suited to people
119+
getting started in this space, please [create a PR](https://github.com/rust-osdev/homepage/pulls) against the
120+
`next` branch with the tasks you want to include in the next issue.
121+
122+
123+
## Personal Projects
124+
125+
In this section, we describe updates to personal 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.
126+
127+
### [`phil-opp/blog_os`](https://github.com/phil-opp/blog_os)
128+
129+
<span class="gray">(Section written by [@phil-opp](https://github.com/phil-opp))</span>
130+
131+
We merged two small fixes to the [_Writing an OS in Rust_](https://os.phil-opp.com/) blog this month:
132+
133+
- [Fix typos in code examples in Async/Await post](https://github.com/phil-opp/blog_os/pull/1051)
134+
- [Fix link syntax in Russian translation](https://github.com/phil-opp/blog_os/pull/1046)
135+
136+
Thanks to [@jongillham](https://github.com/jongillham) and [@non-descriptive](https://github.com/non-descriptive) for these contributions!
137+
138+
I don't have any notable news about the upcoming third edition of the blog yet, but I'm doing my best to get back up to speed soon.
139+
140+
## Join Us?
141+
142+
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)