|
| 1 | ++++ |
| 2 | +title = "This Month in Rust OSDev: May 2022" |
| 3 | +date = 2022-06-08 |
| 4 | + |
| 5 | +[extra] |
| 6 | +month = "May 2022" |
| 7 | +authors = [ |
| 8 | + "phil-opp", |
| 9 | + # add yourself here |
| 10 | +] |
| 11 | ++++ |
| 12 | + |
| 13 | +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. |
| 14 | + |
| 15 | +<!-- more --> |
| 16 | + |
| 17 | +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. |
| 18 | + |
| 19 | +<!-- |
| 20 | + This is a draft for the upcoming "This Month in Rust OSDev (May 2022)" post. |
| 21 | + Feel free to create pull requests against the `next` branch to add your |
| 22 | + content here. |
| 23 | + Please take a look at the past posts on https://rust-osdev.com/ to see the |
| 24 | + general structure of these posts. |
| 25 | +--> |
| 26 | + |
| 27 | +## Project Updates |
| 28 | + |
| 29 | +In this section, we give an overview of notable changes to the projects hosted under the [`rust-osdev`] organization. |
| 30 | + |
| 31 | +[`rust-osdev`]: https://github.com/rust-osdev/about |
| 32 | + |
| 33 | +### [`uefi-rs`](https://github.com/rust-osdev/uefi-rs) |
| 34 | + |
| 35 | +<span class="maintainers">Maintained by [@GabrielMajeri](https://github.com/GabrielMajeri) and [@nicholasbishop](https://github.com/nicholasbishop)</span> |
| 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 changes in May: |
| 40 | + |
| 41 | +#### Improvements |
| 42 | + |
| 43 | +- [Change logger max level to be set by feature](https://github.com/rust-osdev/uefi-rs/pull/429) |
| 44 | +- [Release new versions of the crates](https://github.com/rust-osdev/uefi-rs/pull/432) <span class="gray">(published `uefi v0.16.0`, `uefi-macros v0.7.0`, and `uefi-services v0.13.0`)</span> |
| 45 | +- [Implement `Deref` and `DerefMut` for `ScopedProtocol`](https://github.com/rust-osdev/uefi-rs/pull/434) |
| 46 | +- [Implement `core::fmt::Write` for `Serial`](https://github.com/rust-osdev/uefi-rs/pull/437) |
| 47 | +- [Add documentation links](https://github.com/rust-osdev/uefi-rs/pull/426) |
| 48 | + |
| 49 | +#### Fixes |
| 50 | + |
| 51 | +- [Fix an accidental `*const` conversion](https://github.com/rust-osdev/uefi-rs/pull/423) |
| 52 | +- [Fix compilation of the xtask package under Windows and add to CI](https://github.com/rust-osdev/uefi-rs/pull/438) |
| 53 | +- [Switch back to automatic `Debug` derive for `Header` struct](https://github.com/rust-osdev/uefi-rs/pull/435) |
| 54 | +- [Check table version before calling UEFI 2.0+ functions](https://github.com/rust-osdev/uefi-rs/pull/436) |
| 55 | + |
| 56 | +Thanks to [@JonahPlusPlus](https://github.com/JonahPlusPlus), [@raccog](https://github.com/raccog), and [@verticalegg](https://github.com/verticalegg) for their contributions! |
| 57 | + |
| 58 | +### [`bootloader`](https://github.com/rust-osdev/bootloader) |
| 59 | + |
| 60 | +<span class="maintainers">Maintained by [@phil-opp](https://github.com/phil-opp), [@rybot666](https://github.com/rybot666), and [@64](https://github.com/64)</span> |
| 61 | + |
| 62 | +The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we merged the following new feature: |
| 63 | + |
| 64 | +- [Add UEFI PXE support](https://github.com/rust-osdev/bootloader/pull/237) to load a kernel from a TFTP server |
| 65 | + |
| 66 | +This feature will be part of the upcoming `v0.11` release. Thanks to [@Freax13](https://github.com/Freax13) for this contribution! |
| 67 | + |
| 68 | +### [`pci_types`](https://github.com/rust-osdev/pci_types) |
| 69 | + |
| 70 | +The `pci_types` library provides types for accessing and configuring PCI devices from Rust operating systems. Lots of this code (e.g. identifying devices by class codes) can be shared |
| 71 | +between projects, and would benefit from community contributions. |
| 72 | + |
| 73 | +We merged the following change in May: |
| 74 | + |
| 75 | +- [PCI capabilities and status register support](https://github.com/rust-osdev/pci_types/pull/3) |
| 76 | + |
| 77 | +Thanks to [@alesharik](https://github.com/alesharik) for this contribution! |
| 78 | + |
| 79 | +### [`xhci`](https://github.com/rust-osdev/xhci) |
| 80 | + |
| 81 | +<span class="maintainers">Maintained by [@toku-sa-n](https://github.com/toku-sa-n)</span> |
| 82 | + |
| 83 | +The `xhci` crate provides types of xHCI structires, such as Registers and TRBs. |
| 84 | + |
| 85 | +We merged the following fix this month: |
| 86 | + |
| 87 | +- [fix(StructuralParameters2): Bit range in `max_scratchpad_buffers_hi`](https://github.com/rust-osdev/xhci/pull/134) <span class="gray">([published](https://github.com/rust-osdev/xhci/pull/135) as `v0.8.4`)</span> |
| 88 | + |
| 89 | +Thanks to [@Yuna-Tomi](https://github.com/Yuna-Tomi) for this contribution! |
| 90 | + |
| 91 | +## Call for Participation |
| 92 | + |
| 93 | +Want to contribute to a Rust OSDev project, but don't know where to start? Pick up one of these outstanding |
| 94 | +issues in one of our projects and get started! |
| 95 | + |
| 96 | +<!-- |
| 97 | +Please use the following template for adding items: |
| 98 | +- [(`repo_name`) Issue Description](https://example.com/link-to-issue) |
| 99 | +--> |
| 100 | + |
| 101 | +<span class="gray"> |
| 102 | + |
| 103 | +_No tasks were proposed for this section this month._ |
| 104 | + |
| 105 | +</span> |
| 106 | + |
| 107 | +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. |
| 108 | + |
| 109 | +## Other Projects |
| 110 | + |
| 111 | +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. |
| 112 | + |
| 113 | +<span class="gray"> |
| 114 | + |
| 115 | +_No projects were proposed for this section this month._ |
| 116 | + |
| 117 | +</span> |
| 118 | + |
| 119 | +## Join Us? |
| 120 | + |
| 121 | +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