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.
blog_os
The repository of the Writing an OS in Rust blog received the following updates:
- Update
x86_64
dependency 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/content
folder under CC BY-NC - Reword sentence in first post by @pamolloy
Further, we’re still working on adding Experimental Support for Community Translations to the blog, starting with Simplified Chinese and Traditional Chinese. Any help is appreciated!
bootloader
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.
bootimage
There were no updates to the bootimage
tool this month.
x86_64
We landed a number of breaking changes this month:
- Replace
ux
dependency with custom wrapper structs - Add new UnusedPhysFrame type and use it in Mapper::map_to
- Make Mapper trait object safe by adding
Self: Sized
bounds 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
The cargo-xbuild
crate, which cross-compiles the sysroot, received the following updates this month:
- Add
--quiet
flag 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)