Key Linux developers, including Linus Torvalds, have approved Rust as a fully-fledged language for kernel programming, ending its experimental status. The decision came at the annual Kernel Maintainers Summit and was announced on LWN.net. While this elevates Rust alongside C and assembler, practical implementation still requires significant bridging work.
The approval marks a significant milestone for Rust in the Linux ecosystem. Developers decided on this change yesterday during the Kernel Maintainers Summit, as reported briefly on LWN.net. Rust, which entered the kernel three years ago with Linux 6.1, has now completed its experimental phase after extensive preparatory work.
In practical terms, Rust joins assembler and C as one of the primary languages for kernel development. However, programmers cannot yet write arbitrary kernel drivers in Rust without limitations. Many subsystems lack the necessary bridging code, or bindings, to interface with existing C-based infrastructure. For instance, a WLAN driver in Rust would need bindings to leverage the kernel's C-written base for WLAN and PCIe devices.
Progress is underway in select areas. Bindings exist or are being developed for subsystems like kernel graphics drivers. A notable example is Nova, a Rust-written driver for modern Nvidia graphics cores, expected to see use on many PCs in the coming years.
Proponents highlight Rust's potential benefits. Its features aim to reduce security vulnerabilities, such as memory access errors, buffer overflows, and concurrency issues. Additionally, the modern language could streamline development processes and draw in younger programmers to Linux kernel work.
Despite the official status, much remains to be done to fully integrate Rust across the kernel.