Skip to content

Commit f0edb5c

Browse files
authored
Merge pull request #65 from rust-osdev/next
This Month in Rust OSDev (July 2021)
2 parents 3cd5348 + d81934f commit f0edb5c

File tree

2 files changed

+150
-0
lines changed

2 files changed

+150
-0
lines changed

config.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ feed_filename = "rss.xml"
2222
skip_prefixes = [
2323
"https://crates.io/crates", # see https://github.com/rust-lang/crates.io/issues/788
2424
"https://github.com", # because of rate limiting
25+
"https://rusty-hermit.k8s.eonerc.rwth-aachen.de/", # RustyHermit show case
2526
]
2627

2728
[extra]

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

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
+++
2+
title = "This Month in Rust OSDev (July 2021)"
3+
date = 2021-08-07
4+
5+
[extra]
6+
month = "July 2021"
7+
authors = [
8+
"phil-opp",
9+
"IsaacWoods",
10+
"GabrielMajeri",
11+
# add yourself here
12+
]
13+
+++
14+
15+
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.
16+
17+
<!-- more -->
18+
19+
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.
20+
21+
<!--
22+
This is a draft for the upcoming "This Month in Rust OSDev (July 2021)" post.
23+
Feel free to create pull requests against the `next` branch to add your
24+
content here.
25+
Please take a look at the past posts on https://rust-osdev.com/ to see the
26+
general structure of these posts.
27+
-->
28+
29+
## Project Updates
30+
31+
In this section, we give an overview of notable changes to the projects hosted under the [`rust-osdev`] organization.
32+
33+
[`rust-osdev`]: https://github.com/rust-osdev/about
34+
35+
### [`uefi-rs`](https://github.com/rust-osdev/uefi-rs)
36+
37+
The `uefi` crate provides safe and performant wrappers for [UEFI](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface), the successor to the BIOS. In July, we merged the following changes:
38+
39+
- [Add support for getting/setting variables](https://github.com/rust-osdev/uefi-rs/pull/245)
40+
- [Better logger that includes filename and line](https://github.com/rust-osdev/uefi-rs/pull/246)
41+
- [device path: add constants for all subtypes](https://github.com/rust-osdev/uefi-rs/pull/250)
42+
- [device path: change the length type to u16](https://github.com/rust-osdev/uefi-rs/pull/251)
43+
- [Implement `BootServices::protocols_per_handle`](https://github.com/rust-osdev/uefi-rs/pull/253)
44+
- [Add method to get variable names](https://github.com/rust-osdev/uefi-rs/pull/254)
45+
- [Better `fmt::Debug` for `Time` struct + `fmt::Display`](https://github.com/rust-osdev/uefi-rs/pull/256)
46+
- [Fix `BltRegion::Full` bounds check](https://github.com/rust-osdev/uefi-rs/pull/257)
47+
- [Fix procedural macros](https://github.com/rust-osdev/uefi-rs/pull/260)
48+
- [device path: add header struct](https://github.com/rust-osdev/uefi-rs/pull/263)
49+
- [device path: add iter method and test](https://github.com/rust-osdev/uefi-rs/pull/264)
50+
51+
Thanks to [@nicholasbishop](https://github.com/nicholasbishop), [@MaulingMoneky](https://github.com/MaulingMonkey), [@phip1611](https://github.com/phip1611) and [@necauqua](https://github.com/necauqua) for their contributions!
52+
53+
### [`acpi`](https://github.com/rust-osdev/acpi)
54+
55+
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.
56+
This month:
57+
58+
- [Definitions were added for the FADT's fixed and architecture flags](https://github.com/rust-osdev/acpi/pull/103)
59+
- [Table signatures were added for more static tables](https://github.com/rust-osdev/acpi/pull/103)
60+
- [AML: support was added for the `DefPowerResource` opcode](https://github.com/rust-osdev/acpi/commit/7f6bb2ee53c9abb6c552434dbdb4e13cf38b6b26)
61+
- [AML: support was added for the `DefThermalZone` opcode](https://github.com/rust-osdev/acpi/commit/a55d82bad3e5b7ffd42d19487a57ca65359e3bad)
62+
- [AML: support was added for the `DefExternal` opcode](https://github.com/rust-osdev/acpi/commit/188d62fdab853c16e9c3e66bb183acc3e1c9f134)
63+
- [AML: support was added for the `DefConcat` opcode](https://github.com/rust-osdev/acpi/commit/6f92f675a4b0e21a5bc63edd99de1010efdb61fa)
64+
- [AML: support was added for the `DefConcatRes` opcode](https://github.com/rust-osdev/acpi/commit/a883868dd57473a61a095c56d3e7490dfe012700)
65+
- [AML: support was added for the `DefMid` opcode](https://github.com/rust-osdev/acpi/commit/a37008df127c6f2160c1a2ac3ba5f536f8616732)
66+
67+
These changes were published as `acpi v3.1.0` and `aml v0.14.0`. Thanks to [@ethindp](https://github.com/ethindp)
68+
and [@toku-sa-n](https://github.com/toku-sa-n) for their contributions.
69+
70+
### [`multboot2`](https://github.com/rust-osdev/multiboot2)
71+
72+
The `multiboot2` crate provides abstraction types for the boot information of multiboot2 bootloaders.
73+
74+
In July, our `multiboot2` maintenance team gained [@phip1611](https://github.com/phip1611) as a new member. Welcome!
75+
76+
The following changes were merged this month:
77+
78+
- [much improved debug output of BootInformation + enum TagType](https://github.com/rust-osdev/multiboot2/pull/76) <span class="gray">(published as `v0.11.0`)</span>
79+
- [Set up CI on Github Actions](https://github.com/rust-osdev/multiboot2/commit/1d7c0e21fe532550f5ee9757252881e18c88a063)
80+
- [Add multiboot2 magic number](https://github.com/rust-osdev/multiboot2/pull/77)
81+
- [Fixing future compiler error "unaligned_references" (82523)](https://github.com/rust-osdev/multiboot2/pull/82)
82+
- [Rust edition 2018 + formatting + clippy](https://github.com/rust-osdev/multiboot2/pull/84)
83+
- [**Breaking:** `load` returns a result now (no more assertions that could panic)](https://github.com/rust-osdev/multiboot2/pull/80)
84+
- [Renamed multiboot2 bootloader magic constant](https://github.com/rust-osdev/multiboot2/pull/85)
85+
- [Cargo toml prepare relase v0.12 + changelog](https://github.com/rust-osdev/multiboot2/pull/87) <span class="gray">(published as `v0.12.0`)</span>
86+
- [Rename old Github urls in README](https://github.com/rust-osdev/multiboot2/pull/88)
87+
88+
### [`x86_64`](https://github.com/rust-osdev/x86_64)
89+
90+
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.
91+
92+
In July, we merged the following improvements:
93+
94+
- [feat(idt): make it available in the stable Rust](https://github.com/rust-osdev/x86_64/pull/271)
95+
- [gdt: Fix off-by-one error in from_raw_slice()](https://github.com/rust-osdev/x86_64/pull/269)
96+
- [Make align_up and align_down const](https://github.com/rust-osdev/x86_64/pull/270)
97+
- [Add a SelectorErrorCode to segment_not_present in IDT](https://github.com/rust-osdev/x86_64/pull/274)
98+
- [Add flags for CR0, CR4 and XCR0, as well as extra checks for modification of XCR0](https://github.com/rust-osdev/x86_64/pull/273)
99+
- [fix(Changelog.md): typo #278](https://github.com/rust-osdev/x86_64/pull/278)
100+
- [feat(instructions): define `tables::sgdt`](https://github.com/rust-osdev/x86_64/pull/279)
101+
- [Create a CI script for automated releases](https://github.com/rust-osdev/x86_64/pull/281)
102+
- [CI: Use more efficient crates.io API endpoint](https://github.com/rust-osdev/x86_64/pull/282)
103+
- [Release version to 0.14.4](https://github.com/rust-osdev/x86_64/pull/283)
104+
- [Rename XCr0 and CR4 flags](https://github.com/rust-osdev/x86_64/pull/275)
105+
106+
Thanks to [@budde25](https://github.com/budde25) and [@toku-sa-n](https://github.com/toku-sa-n) for their contributions.
107+
108+
## Call for Participation
109+
110+
Want to contribute to a Rust OSDev project, but don't know where to start? Pick up one of these outstanding
111+
issues in one of our projects and get started!
112+
113+
<!--
114+
Please use the following template for adding items:
115+
- [(`repo_name`) Issue Description](https://example.com/link-to-issue)
116+
-->
117+
118+
<span class="gray">
119+
120+
_No tasks were proposed for this section._
121+
122+
</span>
123+
124+
If you maintain a Rust OSDev project and are looking for contributors, especially for tasks suited to people
125+
getting started in this space, please [create a PR](https://github.com/rust-osdev/homepage/pulls) against the
126+
`next` branch with the tasks you want to include in the next issue.
127+
128+
129+
## Personal Projects
130+
131+
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.
132+
133+
### [`phil-opp/blog_os`](https://github.com/phil-opp/blog_os)
134+
135+
<span class="gray">(Section written by [@phil-opp](https://github.com/phil-opp))</span>
136+
137+
This month, the [_Writing an OS in Rust_](https://os.phil-opp.com) blog received the following updates:
138+
139+
- [Translate first two posts into Russian](https://github.com/phil-opp/blog_os/pull/1029)
140+
- Thanks to [@MrZloHex](https://github.com/MrZloHex) for the translation and [@SnejUgal](https://github.com/SnejUgal) and [@vdjagilev](https://github.com/vdjagilev) for reviewing!
141+
- [docs: update version of crates](https://github.com/phil-opp/blog_os/pull/1031)
142+
- [Replace MS doc link in german](https://github.com/phil-opp/blog_os/pull/1034)
143+
- Typo fixes in the [_Paging Implementation_](https://github.com/phil-opp/blog_os/pull/1032), [_Allocator Designs_](https://github.com/phil-opp/blog_os/pull/1040), and [_Async Await_](https://github.com/phil-opp/blog_os/pull/1036) posts.
144+
145+
Thanks to [@Foo-x](https://github.com/Foo-x), [@adi-g15](https://github.com/adi-g15), [@Kalbiq](https://github.com/Kalbiq), and [@MrZloHex](https://github.com/MrZloHex) for their contributions.
146+
147+
## Join Us?
148+
149+
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)