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.
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.
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.
There were no updates to the
bootimage tool this month.
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
- Add User Mode registers by @vinaychandra
Please feel free to join these discussions if you have opinions on the matter.
cargo-xbuild crate, which cross-compiles the sysroot, received the following updates this month:
uart_16550 crate, which provides basic support for uart_16550 serial output, received a small dependency update: