Updates in December 2019
Happy New Year!
This post gives an overview of the recent updates to the Writing an OS in Rust blog and the corresponding libraries and tools.
The repository of the Writing an OS in Rust blog received the following updates:
x86_64dependency to version 0.8.1. This included the dependency update itself, an update of the frame allocation code, and an update of the blog.
- License the
blog/contentfolder under CC BY-NC
- Reword sentence in first post by @pamolloy
There were no updates to the bootloader this month.
I’m currently working on rewriting the 16-bit/32-bit stages in Rust and making the bootloader more modular in the process. This should make it much easier to add support for UEFI and GRUB booting later.
There were no updates to the
bootimage tool this month.
We landed a number of breaking changes this month:
uxdependency with custom wrapper structs
- Add new UnusedPhysFrame type and use it in Mapper::map_to
- Make Mapper trait object safe by adding
Self: Sizedbounds on generic functions
- Rename divide_by_zero field of IDT to divide_error
- Introduce new diverging handler functions for exceptions classified as “abort”
These changes were released an version 0.8.0. Unfortunately, there was a missing re-export for the new
UnusedPhysFrame type. We fixed it in #110 and released the fix as version 0.8.1.
There was one more addition to the
x86_64 crate afterwards:
- Add support for cr4 control register (with complete documentation) by @KarimAllah (released as version 0.8.2).
There were also a few changes related to continuous integration:
- Remove bors from this repo
- Run ‘push’ builds only for master branch
- Remove Travis CI and Azure Pipelines scripts
- Add caching of cargo crates to GitHub Actions CI
cargo-xbuild crate, which cross-compiles the sysroot, received the following updates this month:
--quietflag that suppresses “waiting for file lock” message by @Nils-TUD (published as version 0.5.19)
- Fix wrong feature name for memcpy=false (released as version 0.5.20)