Rust is digging deeper into Linux: Safe code is slowly replacing the old C school

More abstractions and matching tables are making their way into mainline Linux in Rust.

More abstractions and matching tables are making their way into mainline Linux in Rust.
In the upcoming Linux 6.17 release, the amount of Rust code and related abstractions continues to grow. As seen in recent releases, the language is gradually establishing itself in the kernel as an alternative to C for drivers and infrastructure modules. This week, Miguel Ojeda submitted the main Rust changeset for 6.17, and new patches are also coming through the driver core and other subsystems.
The 6.17 set includes additional Clippy checks, expanded usage of Rust crates within the kernel, and an updated list of maintainers in MAINTAINERS. A bug module with the warn_on! macro was added to the kernel crate, delayed task handling was introduced in the workqueue, and the bits module gained bit and genmask functions. Other parts of the infrastructure were improved as well. The pin-init module also saw several useful enhancements.
Changes through the driver core branch often include Rust-related updates lately. A CoreInternal device context was introduced, along with new language abstractions that make writing drivers in Rust more convenient. It's now possible to define ACPI device identifiers and driver match tables in Rust code. DMA capabilities were expanded, I/O wrappers were improved, and more safety layers were added for working with low-level interfaces.
Some Rust changes are also making their way into 6.17 via other subsystems. In the DRM subsystem, for instance, development continues on the open NVIDIA driver NOVA, which is being written in Rust. Overall, we’re halfway through the two-week merge window for Linux 6.17, and a significant portion of Rust innovations has already been accepted—though patch submissions are still ongoing.
More details about specific patches and discussions can be found in the pull requests submitted this week.