diff --git a/blog/content/status-update/2020-03-02.md b/blog/content/status-update/2020-03-02.md new file mode 100644 index 00000000..8b25b22d --- /dev/null +++ b/blog/content/status-update/2020-03-02.md @@ -0,0 +1,78 @@ ++++ +title = "Updates in February 2020" +date = 2020-03-02 ++++ + +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: + +- [Mention potential bump allocator extensions](https://github.com/phil-opp/blog_os/pull/722) +- [Don't panic on overflow in allocator; return null pointer instead](https://github.com/phil-opp/blog_os/pull/738) + - [Update Allocator Designs post to signal OOM instead of panicking on overflow](https://github.com/phil-opp/blog_os/pull/739) +- [Update to Zola 0.10](https://github.com/phil-opp/blog_os/pull/747) +- [Experimental Support for Community Translations](https://github.com/phil-opp/blog_os/pull/692) + - [Add translations from rustcc/writing-an-os-in-rust](https://github.com/phil-opp/blog_os/pull/694) + - [Some fixes to generated translations](https://github.com/phil-opp/blog_os/pull/748) + - [Add metadata to translations and list translators](https://github.com/phil-opp/blog_os/pull/749) + - [Add a language selector for browser-supported languages](https://github.com/phil-opp/blog_os/pull/752) +- [Use zola check to check for dead links; fix all dead links found](https://github.com/phil-opp/blog_os/pull/751) +- [Convert all external links to https (if supported)](https://github.com/phil-opp/blog_os/commit/0619f3a9e766c575ba1a4f2c6825049c177f8c70) +- [Mention in "Paging Introduction" that a CPU with 5-level paging is available now](https://github.com/phil-opp/blog_os/pull/732) +- [Double Faults: A missing handler leads to a #GP exception (not a #NP)](https://github.com/phil-opp/blog_os/commit/b532c052add9d3eac18663f1836bc9eee11007af) +- [Updated pc-keyboard to `0.5.0`](https://github.com/phil-opp/blog_os/pull/756) by [@RKennedy9064](https://github.com/RKennedy9064) + +## `x86_64` + +The `x86_64` crate provides support for CPU-specific instructions, registers, and data structures of the `x86_64` architecture. There were lots of great contributions this month: + +- [Add User Mode registers](https://github.com/rust-osdev/x86_64/pull/119) by [@vinaychandra](https://github.com/vinaychandra) (released together with [#118](https://github.com/rust-osdev/x86_64/pull/118) as v0.9.0) +- [Improve PageTableIndex and PageOffset](https://github.com/rust-osdev/x86_64/pull/122) by [@m-ou-se](https://github.com/m-ou-se) (released as v0.9.1) +- [Remove the `cast` dependency](https://github.com/rust-osdev/x86_64/pull/124) by [@m-ou-se](https://github.com/m-ou-se) (released as v0.9.2) +- [Fix GitHub actions to run latest available rustfmt](https://github.com/rust-osdev/x86_64/pull/126) by [@m-ou-se](https://github.com/m-ou-se) +- [Enable usage with non-nightly rust](https://github.com/rust-osdev/x86_64/pull/127) by [@haraldh](https://github.com/haraldh) (released as v0.9.3) + - [asm: add target_env = "musl" to pickup the underscore asm names](https://github.com/rust-osdev/x86_64/pull/128) by [@haraldh](https://github.com/haraldh) (released as v0.9.4) +- [Add `#[inline]` attribute to small functions](https://github.com/rust-osdev/x86_64/pull/129) by [@AntoineSebert](https://github.com/AntoineSebert) (released as v0.9.5) +- [Fix clippy warnings](https://github.com/rust-osdev/x86_64/pull/130) by [@AntoineSebert](https://github.com/AntoineSebert) + - [Resolve remaining clippy warnings and add clippy job to CI](https://github.com/rust-osdev/x86_64/pull/132) + +## `bootloader` + +The bootloader crate received two small bugfixes and one new feature this month: + +- [Objcopy replaces `.` chars with `_` chars](https://github.com/rust-osdev/bootloader/pull/94) (released as v0.8.6) +- [Fix docs.rs build by specifying an explicit target](https://github.com/rust-osdev/bootloader/commit/af4f1016aa19fec3271226f8bfc2145521cf0c98) (released as v0.8.7) +- [Add basic support for ELF thread local storage segments](https://github.com/rust-osdev/bootloader/pull/96) (released as v0.8.8) + +## `bootimage` + +There were no updates to the `bootimage` tool this month. + +## `cargo-xbuild` + +The `cargo-xbuild` crate provides support for cross-compiling `libcore` and `liballoc`. It received the following contributions this month: + +- [Added new option to the configuration table](https://github.com/rust-osdev/cargo-xbuild/pull/56) by [@parraman](https://github.com/rust-osdev/cargo-xbuild/pull/56) (released an v0.5.22) +- [Pick up xbuild config from workspace manifest](https://github.com/rust-osdev/cargo-xbuild/pull/57) by [@ascjones](https://github.com/ascjones) (released as v0.5.23) +- [Make `fn build` and `Args` public to enable use as lib](https://github.com/rust-osdev/cargo-xbuild/pull/59) by [@ascjones](https://github.com/ascjones) (released as v0.5.24) +- [Fix: Not all projects have a root package](https://github.com/rust-osdev/cargo-xbuild/pull/61) (released as v0.5.25) +- [Improvements to args and config for lib usage](https://github.com/rust-osdev/cargo-xbuild/pull/62) by [@ascjones](https://github.com/ascjones) (released as v0.5.26) +- [Add `cargo xfix` command](https://github.com/rust-osdev/cargo-xbuild/pull/64) by [@tjhu](https://github.com/tjhu) (released as v0.5.27) +- [Update dependencies](https://github.com/rust-osdev/cargo-xbuild/pull/65) by [@parasyte](https://github.com/parasyte) (released as v0.5.28) + +## `uart_16550` + +The `uart_16550` crate, which provides basic support for uart_16550 serial output, received the following updates: + +- [Switch CI to GitHub Actions](https://github.com/rust-osdev/uart_16550/pull/6) +- [Cargo.toml: update x86_64 dependency](https://github.com/rust-osdev/uart_16550/pull/5) by [@haraldh](https://github.com/haraldh) (released as v0.2.3) +- [Enable usage with non-nightly rust](https://github.com/rust-osdev/uart_16550/pull/7) by [@haraldh](https://github.com/haraldh) (released as v0.2.4) + +## `multiboot2-elf64` + +The `multiboot2-elf64` crate provides abstractions for reading the boot information of the multiboot 2 standard, which is implemented by bootloaders like GRUB. There were two updates to the crate in February: + +- [Add MemoryAreaType, to allow users to access memory area types in a type-safe way](https://github.com/rust-osdev/multiboot2-elf64/pull/61) by [@CWood1](https://github.com/CWood1) +- [Add some basic documentation](https://github.com/rust-osdev/multiboot2-elf64/pull/62) by [@mental32](https://github.com/rust-osdev/multiboot2-elf64/pull/62) (released as v0.8.2) diff --git a/blog/static/css/main.css b/blog/static/css/main.css index c2a15774..dd835c03 100644 --- a/blog/static/css/main.css +++ b/blog/static/css/main.css @@ -429,3 +429,7 @@ details summary h3, details summary h4, details summary h5, details summary h6 { .toc-comments-link { margin-top: .5rem; } + +.gray { + color: gray; +} diff --git a/blog/templates/status-update-page.html b/blog/templates/status-update-page.html index bc4dccad..162c95ec 100644 --- a/blog/templates/status-update-page.html +++ b/blog/templates/status-update-page.html @@ -14,7 +14,7 @@
{% endblock main %}