|
| 1 | ++++ |
| 2 | +title = "This Month in Rust OSDev (October 2021)" |
| 3 | +date = 2021-11-08 |
| 4 | + |
| 5 | +[extra] |
| 6 | +month = "October 2021" |
| 7 | +authors = [ |
| 8 | + "phil-opp", |
| 9 | + "phip1611", |
| 10 | + "IsaacWoods", |
| 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 (October 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. |
| 38 | + |
| 39 | +We merged the following PRs this month: |
| 40 | + |
| 41 | +- [Implement missing Event-related functions](https://github.com/rust-osdev/uefi-rs/pull/293) |
| 42 | +- [Remove attribute to enable `const_panic`](https://github.com/rust-osdev/uefi-rs/pull/296) |
| 43 | +- [Use build-std-features instead of rlibc](https://github.com/rust-osdev/uefi-rs/pull/298) |
| 44 | +- [Update `set_virtual_address_map()` to allow remapping of `SystemTable`](https://github.com/rust-osdev/uefi-rs/pull/301) |
| 45 | +- [Fix new clippy errors](https://github.com/rust-osdev/uefi-rs/pull/304) |
| 46 | + |
| 47 | +Thanks to [@timrobertsdev](https://github.com/timrobertsdev), [@YtvwlD](https://github.com/YtvwlD), and [@foxcob](https://github.com/foxcob) for their contributions! |
| 48 | + |
| 49 | +### [`acpi`](https://github.com/rust-osdev/acpi) |
| 50 | + |
| 51 | +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. |
| 52 | + |
| 53 | +This month, [support for the Boot Graphics Resource Table (BGRT)](https://github.com/rust-osdev/acpi/pull/113) table was added to `acpi`. This static table is |
| 54 | +passed from firmware to the OS to communicate information about the state of the screen when control is passed |
| 55 | +over, as lots of firmwares like to print display a logo when booting. <span class="gray">(published as `acpi v4.1.0`)</span> |
| 56 | + |
| 57 | +Thanks to [@ethindp](https://github.com/ethindp) for this contribution! |
| 58 | + |
| 59 | +### [`x86_64`](https://github.com/rust-osdev/x86_64) |
| 60 | + |
| 61 | +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. |
| 62 | + |
| 63 | +In October, we merged the following changes: |
| 64 | + |
| 65 | +- [Enable manipulation of `InterruptStackFrame`](https://github.com/rust-osdev/x86_64/pull/312) |
| 66 | +- [Fix docs for `page_table_index`](https://github.com/rust-osdev/x86_64/pull/318) |
| 67 | + |
| 68 | +Thanks to [@haraldh](https://github.com/haraldh) and [@Freax13](https://github.com/Freax13) for their contributions! |
| 69 | + |
| 70 | +### [`multiboot2-header`](https://github.com/rust-osdev/multiboot2) (**new**) |
| 71 | + |
| 72 | +The `multiboot2-header` crate provides abstraction types for Multiboot2 headers, |
| 73 | +parsing utilities, and a builder to construct such headers. The initial release took |
| 74 | +place in early October and now is ready to be used. Because lots of code was published |
| 75 | +without any in-depth reviews, further testing and code reviews will be highly appreciated. |
| 76 | + |
| 77 | +## Call for Participation |
| 78 | + |
| 79 | +Want to contribute to a Rust OSDev project, but don't know where to start? Pick up one of these outstanding |
| 80 | +issues in one of our projects and get started! |
| 81 | + |
| 82 | +<!-- |
| 83 | +Please use the following template for adding items: |
| 84 | +- [(`repo_name`) Issue Description](https://example.com/link-to-issue) |
| 85 | +--> |
| 86 | + |
| 87 | +<span class="gray"> |
| 88 | + |
| 89 | +_No tasks were proposed for this section._ |
| 90 | + |
| 91 | +</span> |
| 92 | + |
| 93 | +If you maintain a Rust project related to operating system development and are looking for contributors, especially for tasks suited to people getting started in this space, please [create a PR](https://github.com/rust-osdev/homepage/pulls) against the `next` branch with the tasks you want to include in the next issue. |
| 94 | + |
| 95 | +## Personal Projects |
| 96 | + |
| 97 | +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. |
| 98 | + |
| 99 | +### [`phil-opp/blog_os`](https://github.com/phil-opp/blog_os) |
| 100 | + |
| 101 | +<span class="gray">(Section written by [@phil-opp](https://github.com/phil-opp))</span> |
| 102 | + |
| 103 | +We merged the following changes to the [_Writing an OS in Rust_](https://os.phil-opp.com/) blog this month: |
| 104 | + |
| 105 | +- [Add French translation for the first post](https://github.com/phil-opp/blog_os/pull/1053) |
| 106 | + - Thanks to [@Alekzus](https://github.com/Alekzus) for this contribution, and [@dallenng](https://github.com/dallenng) and [@CBenoit](https://github.com/CBenoit) for reviewing! |
| 107 | + - Published at <https://os.phil-opp.com/fr/>. |
| 108 | +- [Improve our integration of the giscus comment system](https://github.com/phil-opp/blog_os/pull/1054) |
| 109 | +- [Use Iosevka font for code blocks and inline code](https://github.com/phil-opp/blog_os/pull/1056) |
| 110 | +- [Initial Dark Mode Support](https://github.com/phil-opp/blog_os/pull/1057) 🌑 |
| 111 | +- [Implement a switch for switching between light and dark mode](https://github.com/phil-opp/blog_os/pull/1058) |
| 112 | +- [Remember chosen theme in `localStorage`, add a switch for going back to system theme, improve layout](https://github.com/phil-opp/blog_os/pull/1059) |
| 113 | +- [Use `crate-ci/typos` action to check for typos](https://github.com/phil-opp/blog_os/pull/1060) |
| 114 | + |
| 115 | +## Join Us? |
| 116 | + |
| 117 | +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