+++ title = "Updates in July 2019" date = 2019-08-02 +++ This post gives an overview of the recent updates to the _Writing an OS in Rust_ blog and the used libraries and tools. Since I'm still very busy with my master thesis, I haven't had the time to work on a new post. But there were quite a few maintenance updates this month and also a few new features such as the new `OffsetPageTable` type in the `x86_64` crate. We also had some great contributions this month. Thanks to the efforts of [@64](https://github.com/64), we were able to considerably lower the compile times of the `x86_64` and `bootloader` crates. Thanks to [@Aehmlo](https://github.com/Aehmlo), the `cargo-xbuild` crate now has a `cargo xdoc` subcommands and support for the `cargo {c, b, t, r}` aliases. The following list gives a short overview of notable changes to the different projects. ## blog_os - [Fix a lot of dead links in both the second and first edition](https://github.com/phil-opp/blog_os/pull/638) - [Update paging introduction post to use page fault error code](https://github.com/phil-opp/blog_os/pull/644) ## x86_64 - [Reexport MappedPageTable on non-x86_64 platforms too](https://github.com/rust-osdev/x86_64/pull/82) - [Update GDT docs, add user_data_segment function and WRITABLE flag](https://github.com/rust-osdev/x86_64/pull/78) by [@64](https://github.com/64) (published as version 0.7.2) - [Add a new `OffsetPageTable` mapper type](https://github.com/rust-osdev/x86_64/pull/83) (published as version 0.7.3) - [Update integration tests to use new testing framework](https://github.com/rust-osdev/x86_64/pull/86) - [Remove raw-cpuid dependency and use rdrand intrinsics](https://github.com/rust-osdev/x86_64/pull/85) by [@64](https://github.com/64) (published as version 0.7.4) ## bootloader - [Remove stabilized publish-lockfile feature](https://github.com/rust-osdev/bootloader/pull/62) (published as version 0.6.2) - [Update CI badge, use latest version of x86_64 crate and rustfmt](https://github.com/rust-osdev/bootloader/pull/63) by [@64](https://github.com/64) (published as version 0.6.3) - [Use volatile accesses in VGA code and make font dependency optional](https://github.com/rust-osdev/bootloader/pull/67) by [@64](https://github.com/64) - Making the dependency optional should improve compile times when the VGA text mode is used - Published as version 0.6.4 - **Breaking**: [Only include dependencies when `binary` feature is enabled](https://github.com/rust-osdev/bootloader/pull/68) (published as version 0.7.0) ## bootimage - [If the bootloader has a feature named `binary`, enable it](https://github.com/rust-osdev/bootimage/pull/43) (published as version 0.7.6) - This is required for building `bootloader 0.7.0` or later ## cargo-xbuild - [Add `cargo xdoc` command for invoking `cargo doc`](https://github.com/rust-osdev/cargo-xbuild/pull/39) by [@Aehmlo](https://github.com/Aehmlo) (published as version 0.5.13) - [Don't append a `--sysroot` argument to `RUSTFLAGS` if it already contains one](https://github.com/rust-osdev/cargo-xbuild/pull/40) (published as version 0.5.14) - [Add xb, xt, xc, and xr subcommands](https://github.com/rust-osdev/cargo-xbuild/pull/42) by [@Aehmlo](https://github.com/Aehmlo) (published as version 0.5.15)