Updates in January 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:
- Move #[global_allocator] into allocator module
- Update many_boxes test to scale with heap size
- New post about allocator designs 🎉
- Provide multiple implementations of align_up and mention performance
- Refactor Simplified Chinese translation of post 3 by @Rustin-Liu
- Use checked addition for allocator implementations
- Fix dummy allocator code example
- Some style updates to the front page
- Mark active item in table of contents
- Make active section link more discreet by @Menschenkindlein
I also started working on the upcoming post about threads.
bootloader
The bootloader crate received two minor updates this month:
- Move architecture checks from build script into lib.rs
- Update x86_64 dependency to version 0.8.3 by @vinaychandra
Since I focused my time on the new Allocator Designs post, I did not have the time to make more progress on my plan to rewrite the 16-bit/32-bit stages of the bootloader in Rust. I hope to get back to it soon.
bootimage
There were no updates to the bootimage
tool this month.
x86_64
The following changes were merged this month:
- Allow immediate port version of in/out instructions by @m-ou-se
- Make more functions const by @m-ou-se
- Released as version 0.8.3
- Return the UnusedPhysFrame on MapToError::PageAlreadyMapped by @haraldh
- This is a breaking change since it changes the signature of a type.
- No new release was published yet to give us the option to bundle it with other breaking changes.
There are also some pull requests that have some open design questions and are still being discussed:
- Add p23_insert_flag_mask argument to mapper.map_to() by @haraldh
- Related proposal: Page Table Visitors by @mark-i-m
- Add User Mode registers by @vinaychandra
Please feel free to join these discussions if you have opinions on the matter.
cargo-xbuild
The cargo-xbuild
crate, which cross-compiles the sysroot, received the following updates this month:
- Override target path for building sysroot by @upsuper
- Published as version 0.5.21
uart_16550
The uart_16550
crate, which provides basic support for uart_16550 serial output, received a small dependency update:
- Update dependency for x86_64 by @haraldh
- Published as version 0.2.2