diff --git a/collect-changes/Cargo.lock b/collect-changes/Cargo.lock index 44873f44..77b8e6cf 100644 --- a/collect-changes/Cargo.lock +++ b/collect-changes/Cargo.lock @@ -305,9 +305,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "heck" diff --git a/config.toml b/config.toml index 89c486fc..149a9e83 100644 --- a/config.toml +++ b/config.toml @@ -28,6 +28,7 @@ skip_prefixes = [ "https://www.reddit.com/", # 403 forbidden "https://blog.rust.careers", # Expired certificate "https://gee.cs.oswego.edu", # times out + "https://archive.org", # times out ] [extra] diff --git a/content/this-month/2023-04/index.md b/content/this-month/2023-04/index.md index ca166a11..a4a9c7e3 100644 --- a/content/this-month/2023-04/index.md +++ b/content/this-month/2023-04/index.md @@ -47,7 +47,7 @@ Please follow this template: - (optional) Some additional context --> -- [Rust Kernel Programming](https://coderjoshdk.github.io/posts/Rust-Kernel-Programming.html) +- [Rust Kernel Programming](https://web.archive.org/web/20241127063903/https://coderjoshdk.github.io/posts/Rust-Kernel-Programming.html) - [Linux Kernel Rust Modules](https://tomcat0x42.me/linux/rust/2023/04/07/linux-kernel-rust-modules.html) - [Aero OS: A new modern operating system made in Rust, now able to run the Links browser, Alacritty and much more!](https://www.reddit.com/r/rust/comments/12p2rf7/aero_os_a_new_modern_operating_system_made_in/) - [Felix, an x86 hobby OS written in Rust](https://www.reddit.com/r/rust/comments/12gxh8b/felix_an_x86_hobby_os_written_in_rust/) diff --git a/content/this-month/2024-01/index.md b/content/this-month/2024-01/index.md index d8b01295..44713d28 100644 --- a/content/this-month/2024-01/index.md +++ b/content/this-month/2024-01/index.md @@ -43,7 +43,7 @@ Please follow this template: - [Making VirtIO sing - implementing virtio-sound in rust-vmm project](https://fosdem.org/2024/schedule/event/fosdem-2024-1910-making-virtio-sing-implementing-virtio-sound-in-rust-vmm-project/) - [The case for a virtual Rust stateless codec driver](https://fosdem.org/2024/schedule/event/fosdem-2024-2985-the-case-for-a-virtual-rust-stateless-codec-driver/) - [An open-source, open-hardware offline finding system](https://fosdem.org/2024/schedule/event/fosdem-2024-3264-an-open-source-open-hardware-offline-finding-system/) -- [Making an RISC-V OS (Part 1): Project Setup](https://traxys.me/riscv_os_setup.html) +- [Making an RISC-V OS (Part 1): Project Setup](https://web.archive.org/web/20240619011057/https://traxys.me/riscv_os_setup.html) - [Looking for people to help out with CharlotteOS (Beginners are welcome!)](https://www.reddit.com/r/osdev/comments/1aeffha/looking_for_people_to_help_out_with_charlotteos/) - [The Linux kernel now contains the first useful component written in Rust](https://fosstodon.org/@kernellogger/111741507899977461) - [BPF Opens Door to Linux Extensible Scheduling (Maybe with Rust!)](https://thenewstack.io/bpf-opens-a-door-to-linux-dynamic-scheduling-maybe-with-rust/) diff --git a/content/this-month/2024-02/index.md b/content/this-month/2024-02/index.md index 442420ae..3d7651f1 100644 --- a/content/this-month/2024-02/index.md +++ b/content/this-month/2024-02/index.md @@ -35,7 +35,7 @@ Please follow this template: - [Redox OS - Porting Strategy](https://www.redox-os.org/news/porting-strategy/) - [This Month in Redox](https://redox-os.org/news/this-month-240229/) - [Tock Compiles on Stable Rust!](https://tockos.org/blog/2024/talking-tock-55/) -- [Making an RISC-V OS (Part 2): Kernel in virtual addresses](https://traxys.me/riscv_os_2.html) +- [Making an RISC-V OS (Part 2): Kernel in virtual addresses](https://web.archive.org/web/20240714023153/https://traxys.me/riscv_os_2.html) - The Embedded Rustacean [Issue 13](https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-13) and [Issue 14](https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-14) - [Linux Kernel: Rewrite the VP9 codec library in Rust](https://lore.kernel.org/lkml/20240227215146.46487-1-daniel.almeida@collabora.com/) - [Anouncing stabby 3.0.0](https://www.reddit.com/r/rust/comments/1amjknw/anouncing_stabby_300_and_rustconf_video_available/) diff --git a/content/this-month/2024-04/index.md b/content/this-month/2024-04/index.md index 0688dc05..29bd1373 100644 --- a/content/this-month/2024-04/index.md +++ b/content/this-month/2024-04/index.md @@ -48,7 +48,7 @@ Please follow this template: - Video: [LinuxFest Northwest 2024: Meet COSMIC DE](https://www.youtube.com/watch?v=JHLfsWhDvz0) - New [`offset-allocator`](https://github.com/pcwalton/offset-allocator) crate, providing a fast, simple, hard real time allocator - not `no_std` yet, but should be easy to port (only requires a `Vec`-like type) -- [Making an RISC-V OS (Part 3): Managing free memory](https://traxys.me/riscv_os_buddy.html) +- [Making an RISC-V OS (Part 3): Managing free memory](https://web.archive.org/web/20241006213624/https://traxys.me/riscv_os_buddy.html) - [Asterinas](https://asterinas.github.io/): a secure, fast, and general-purpose OS kernel written in Rust and compatible with Linux ## Infrastructure and Tooling diff --git a/content/this-month/2024-12/index.md b/content/this-month/2024-12/index.md new file mode 100644 index 00000000..eb3a90b1 --- /dev/null +++ b/content/this-month/2024-12/index.md @@ -0,0 +1,169 @@ ++++ +title = "This Month in Rust OSDev: December 2024" +date = 2025-01-11 + +[extra] +month = "December 2024" +editors = ["phil-opp"] ++++ + +Welcome to a new issue of _"This Month in Rust OSDev"_. In these posts, we give a regular overview of notable changes in the Rust operating system development ecosystem. + + + +This series is openly developed [on GitHub](https://github.com/rust-osdev/homepage/). Feel free to open pull requests there with content you would like to see in the next issue. If you find some issues on this page, please report them by [creating an issue](https://github.com/rust-osdev/homepage/issues/new) or using our _comment form_ at the bottom of this page. + + + +## Announcements, News, and Blog Posts + +Here we collect news, blog posts, etc. related to OS development in Rust. + + + +- [This Month in Redox OS - December 2024](https://www.redox-os.org/news/this-month-241231/) +- Video: [Intro to Embassy : embedded development with async Rust](https://www.youtube.com/watch?v=pDd5mXBF4tY) +- [2025: The Year of COSMIC — Alpha 5 Released!](https://blog.system76.com/post/cosmic-alpha-5-released) +- Funding Opportunities - with [Redox OS](https://redox-os.org/) or on your own + - The NGI Zero Commons Fund and NGI Zero Fediversity Fund each have a call for proposals with a Feb. 1 deadline. +If the proposal is successful, it would be to start roughly in June or July (based on our experience) and run for up to 12 months, +with an amount up to 50,000 EUR. +There must be a "European component", so a EU-based developer would be an ideal fit, +or perhaps a project where the maintainer is EU-based. Here are the links: + - [NGI Zero Commons Fund](https://nlnet.nl/commonsfund/) + - [NGI Zero Fediversity Fund](https://nlnet.nl/fediversity/) + - Redox is looking for a part-time or short-term developer to help with implementing device drivers, ACPI support, and similar, +who would like to join our proposal. +You must be knowledgeable in Rust and drivers, and have good reputation in the open source community. +We have an existing relationship with NLnet, so we can craft the proposal, based on your skillset and our priorities. +Please join us on Matrix and let us know you are interested. + - https://matrix.to/#/#redox-join:matrix.org + + +## Infrastructure and Tooling + +In this section, we collect recent updates to `rustc`, `cargo`, and other tooling that are relevant to Rust OS development. + + + +- [Improve default target options for `x86_64-unknown-linux-none`](https://github.com/rust-lang/rust/pull/134765) +- [De-duplicate and improve definition of core::ffi::c_char](https://github.com/rust-lang/rust/pull/132975) + +## `rust-osdev` Projects + +In this section, we give an overview of notable changes to the projects hosted under the [`rust-osdev`](https://github.com/rust-osdev/about) organization. + + + +### [`uefi-rs`](https://github.com/rust-osdev/uefi-rs) +Maintained by [@GabrielMajeri](https://github.com/GabrielMajeri), [@nicholasbishop](https://github.com/nicholasbishop), and [@phip1611](https://github.com/phip1611) + +`uefi` makes it easy to develop Rust software that leverages safe, convenient, +and performant abstractions for UEFI functionality. + +We merged the following PRs this month: + +- [Fix clippy::needless_lifetimes in Rust 1.83 and ShimLock ABI on ia32](https://github.com/rust-osdev/uefi-rs/pull/1485) +- [Fix clippy::use_self](https://github.com/rust-osdev/uefi-rs/pull/1486) +- [uefi-raw: Add DriverBindingProtocol](https://github.com/rust-osdev/uefi-rs/pull/1487) +- [Increase MSRV to 1.81](https://github.com/rust-osdev/uefi-rs/pull/1484) +- [Update ptr_meta to 0.3.0](https://github.com/rust-osdev/uefi-rs/pull/1496) +- [Remove unstable gate for `core::error::Error` impls](https://github.com/rust-osdev/uefi-rs/pull/1497) +- [Use size_of/size_of_val/align_of/align_of_val from the prelude](https://github.com/rust-osdev/uefi-rs/pull/1498) +- [book: Set driver link-arg in `build.rs`](https://github.com/rust-osdev/uefi-rs/pull/1502) + + + + + + + + + +Thanks to [@crawfxrd](https://github.com/crawfxrd) and [@JarlEvanson](https://github.com/JarlEvanson) for their contributions! + + +### [`x86_64`](https://github.com/rust-osdev/x86_64) +Maintained by [@phil-opp](https://github.com/phil-opp), [@josephlr](https://github.com/orgs/rust-osdev/people/josephlr), and [@Freax13](https://github.com/orgs/rust-osdev/people/Freax13) + +The `x86_64` crate provides various abstractions for `x86_64` systems, including wrappers for CPU instructions, access to processor-specific registers, and abstraction types for architecture-specific structures such as page tables and descriptor tables. + +We merged the following PRs this month: + +- [fix(idt): panic in `impl fmt::Debug for EntryOptions`](https://github.com/rust-osdev/x86_64/pull/522) +- [Add `MapperFlush` method to get page](https://github.com/rust-osdev/x86_64/pull/525) +- [feat: add `update()` to `Cr3`, `Dr7`, `SFMask`, `UCet`, `SCet`, `mxcsr`, `rflags`, and `XCr0`](https://github.com/rust-osdev/x86_64/pull/527) +- [fix(model_specific): make `{Fs,Gs,KernelGs}Base::write()` unsafe](https://github.com/rust-osdev/x86_64/pull/528) +- [Merge master into next](https://github.com/rust-osdev/x86_64/pull/521) + +Thanks to [@mkroening](https://github.com/mkroening) and [@adavis628](https://github.com/adavis628) for their contributions! + + +### [`bootloader`](https://github.com/rust-osdev/bootloader) +Maintained by [@phil-opp](https://github.com/phil-opp) and [@Freax13](https://github.com/orgs/rust-osdev/people/Freax13) + +The `bootloader` crate implements a custom Rust-based bootloader for easy loading of 64-bit ELF executables. This month, we merged the following improvements: + +- [Remove "UEFI boot" log message](https://github.com/rust-osdev/bootloader/pull/476) + +Thanks to [@ChocolateLoverRaj](https://github.com/ChocolateLoverRaj) for their contributions! + + + +## Other Projects + +In this section, we describe updates to Rust OS projects that are not directly related to the `rust-osdev` organization. Feel free to [create a pull request](https://github.com/rust-osdev/homepage/pulls) with the updates of your OS project for the next post. + + + +### [`roeeshoshani/genesis`](https://github.com/roeeshoshani/genesis) +(Section written by [@roeeshoshani](https://github.com/roeeshoshani)) + +`genesis` is a bare metal firmware implementation for mips. it implements everything from the bottom up, from +initializing the cpu caches, to configuring pci devices and the interrupt controller. + +i noticed that every kernel implementation is always for x86, so i decided to implement it for something a +little more esoteric - mips. + +the project is currently in very early stages but the basics are there. + +it is my hobby project for me to learn about embedded programming. + +feel free to follow along the development of it :). + +## Join Us? + +Are you interested in Rust-based operating system development? Our `rust-osdev` organization is always open to new members and new projects. Just let us know if you want to join! A good way for getting in touch is our [Zulip chat](https://rust-osdev.zulipchat.com).