Updates in March 2020
This post gives an overview of the recent updates to the Writing an OS in Rust blog and the corresponding libraries and tools.
I focused my time this month on finishing the long-planned post about Async/Await. In addition to that, there were a few updates to the crates behind the scenes, including some great contributions and a new
As mentioned in the Async/Await post, I'm currently looking for job in Karlsruhe (Germany) or remote, so please let me know if you're interested.
The repository of the Writing an OS in Rust blog received the following updates:
- Update linked_list_allocator to v0.8.0
- Update x86_64 dependency to version 0.9.6
- New post about Async/Await
- Discuss the approach of storing offsets for self-referential structs
- Use a static counter for assigning task IDs
In addition to the changes above, there were a lot of typo fixes by external contributors. Thanks a lot!
x86_64 crate provides support for CPU-specific instructions, registers, and data structures of the
x86_64 architecture. In March, there was only a single addition, which was required for the Async/Await post:
- Add an enable_interrupts_and_hlt function that executes
sti; hlt(released as v0.9.6)
The bootloader crate received two contributions this month:
- Implement boot-info-address by @Darksecond (released as v0.8.9)
- Identity-map complete vga region (0xa0000 to 0xc0000) by @RKennedy9064 (released as v0.9.0)
bootimage tool builds the
bootloader and creates a bootable disk image from a kernel. It received a RUSTFLAGS-related bugfix:
There is a new crate under the
vga created by @RKennedy9064. The purpose of the library is to provide abstractions for the VGA hardware. For example, the crate allows to switch the VGA hardware to graphics mode, which makes it possible to draw on a pixel-based framebuffer: