Updates in February 2020
This post gives an overview of the recent updates to the Writing an OS in Rust blog and the corresponding libraries and tools.
blog_os
The repository of the Writing an OS in Rust blog received the following updates:
- Mention potential bump allocator extensions
- Don’t panic on overflow in allocator; return null pointer instead
- Update to Zola 0.10
- Experimental Support for Community Translations
- Use zola check to check for dead links; fix all dead links found
- Convert all external links to https (if supported)
- Mention in “Paging Introduction” that a CPU with 5-level paging is available now
- Double Faults: A missing handler leads to a #GP exception (not a #NP)
- Updated pc-keyboard to
0.5.0
by @RKennedy9064
x86_64
The x86_64
crate provides support for CPU-specific instructions, registers, and data structures of the x86_64
architecture. There were lots of great contributions this month:
- Add User Mode registers by @vinaychandra (released together with #118 as v0.9.0)
- Improve PageTableIndex and PageOffset by @m-ou-se (released as v0.9.1)
- Remove the
cast
dependency by @m-ou-se (released as v0.9.2) - Fix GitHub actions to run latest available rustfmt by @m-ou-se
- Enable usage with non-nightly rust by @haraldh (released as v0.9.3)
- asm: add target_env = “musl” to pickup the underscore asm names by @haraldh (released as v0.9.4)
- Add
#[inline]
attribute to small functions by @AntoineSebert (released as v0.9.5) - Fix clippy warnings by @AntoineSebert
bootloader
The bootloader crate received two small bugfixes and one new feature this month:
- Objcopy replaces
.
chars with_
chars (released as v0.8.6) - Fix docs.rs build by specifying an explicit target (released as v0.8.7)
- Add basic support for ELF thread local storage segments (released as v0.8.8)
bootimage
There were no updates to the bootimage
tool this month.
cargo-xbuild
The cargo-xbuild
crate provides support for cross-compiling libcore
and liballoc
. It received the following contributions this month:
- Added new option to the configuration table by @parraman (released an v0.5.22)
- Pick up xbuild config from workspace manifest by @ascjones (released as v0.5.23)
- Make
fn build
andArgs
public to enable use as lib by @ascjones (released as v0.5.24) - Fix: Not all projects have a root package (released as v0.5.25)
- Improvements to args and config for lib usage by @ascjones (released as v0.5.26)
- Add
cargo xfix
command by @tjhu (released as v0.5.27) - Update dependencies by @parasyte (released as v0.5.28)
uart_16550
The uart_16550
crate, which provides basic support for uart_16550 serial output, received the following updates:
- Switch CI to GitHub Actions
- Cargo.toml: update x86_64 dependency by @haraldh (released as v0.2.3)
- Enable usage with non-nightly rust by @haraldh (released as v0.2.4)
multiboot2-elf64
The multiboot2-elf64
crate provides abstractions for reading the boot information of the multiboot 2 standard, which is implemented by bootloaders like GRUB. There were two updates to the crate in February: