Skip to content

Commit 5c8425f

Browse files
authored
Nov 2020: add changes for Pebble and acpi (#31)
1 parent 25bc629 commit 5c8425f

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

content/this-month/2020-11/index.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ date = 0000-01-01
66
month = "November 2020"
77
authors = [
88
"phil-opp",
9+
"IsaacWoods",
910
# add yourself here
1011
]
1112
+++
@@ -36,6 +37,24 @@ The `x86_64` crate provides various abstractions for `x86_64` systems, including
3637

3738
In November, …
3839

40+
### [`acpi`](https://github.com/rust-osdev/acpi)
41+
42+
The `acpi` repository contains crates for parsing the ACPI tables – data structures that the firmware of modern
43+
computers use to relay information about the hardware to the OS. In November, we started fuzzing the AML parser to
44+
help find inputs that crash it and we [found](https://github.com/rust-osdev/acpi/commit/56472490c9564b6740eb5e416624d73be8841faa)
45+
[a](https://github.com/rust-osdev/acpi/commit/5ab486d1a8a8a8160025b88e369e22dc8d993273) [few](https://github.com/rust-osdev/acpi/commit/747bcfd28d44bbdfd39ad4805bba574ac320daf8).
46+
We even found [a case](https://github.com/rust-osdev/acpi/commit/52b05fd91ebb40e9c5511d568b19cb5f10b33d83) where
47+
we'd misinterpreted the spec. This is an important task for the project, as the AML parser will often run in
48+
kernelspace, and so should not panic from any input, however invalid (some more work is needed to make this the
49+
case, however).
50+
51+
[Lexicographic comparison was also implemented for `Buffer` and `String` AML objects](https://github.com/rust-osdev/acpi/commit/6d2045de3acb9b74347ac6ce9ad01051be7bea82),
52+
which means we should now be able to perform all comparisons tables are allowed to make (bar some object
53+
conversions, which still need some work).
54+
55+
The changes this month, as well as some made in December that should improve compile speed a little, have been
56+
published as [`aml v0.10.0`](https://crates.io/crates/aml).
57+
3958
## Personal Projects
4059

4160
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.
@@ -46,11 +65,28 @@ In this section, we describe updates to personal projects that are not directly
4665

4766
This month, ...
4867

68+
### [`IsaacWoods/pebble`](https://github.com/IsaacWoods/pebble)
69+
70+
<span class="gray">(Section written by [@IsaacWoods](https://github.com/IsaacWoods))</span>
71+
72+
Between university and work on `acpi`, I haven't had a huge amount of time to work on Pebble for the last couple of
73+
months, but in November I:
74+
- Implemented a basic form of [TLS](https://en.wikipedia.org/wiki/Thread-local_storage) for userspace tasks. Pebble
75+
doesn't have threads, but an Address Space can have multiple Tasks running from the same image, each of which
76+
need their copy of the master TLS record. TLS support is also needed very early in Rust's `std`, so this was the
77+
next step in creating a `std` implementation for Pebble.
78+
- Tried to fix a bug in Pebble's UEFI bootloader, where we crash if memory allocated to Boot Services is unmapped
79+
after `ExitBootServices`. This may be a bug in OVMF - please get in touch if you've come across something
80+
similar and know what's going on!
81+
- Continued work on the USB XHCI driver
82+
- Improved detection of Intel microarchitectures - we can now differentiate Kaby Lake and Coffee Lake processors
83+
based on their `cpuid` steppings
84+
4985
## Join Us?
5086

5187
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).
5288

5389

5490
<!--
5591
TODO: Update publication date
56-
-->
92+
-->

0 commit comments

Comments
 (0)