Image: Linus Torvalds/TED/YouTube
The Rust in Linux debate is over. The implementation has begun. In an email conversation, Linux’s creator Linus Torvalds, told me, “Unless something odd happens, it [Rust] will make it into 6.1.”
The Rust programming language entering the Linux kernel has been coming for some time. At the 2020 Linux Plumbers Conference, developers started considering using the Rust language for new Linux inline code. Google, which supports Rust for developing Android — itself a Linux distro — began pushing for Rust in the Linux kernel in April 2021.
As Wedson Almeida Filho of Google’s Android Team said at the time, “We feel that Rust is now ready to join C as a practical language for implementing the kernel. It can help us reduce the number of potential bugs and security vulnerabilities in privileged code while playing nicely with the core kernel and preserving its performance characteristics.”
It took a while to convince the top Linux kernel developers of this. There were concerns about non-standard Rust extensions being needed to get it to work in Linux. For instance, with the new Rust Linux NVMe driver, over 70 extensions needed to be made to Rust to get it working. But, Torvalds had told me in an earlier interview, “We’ve been using exceptions to standard C for decades.”
This was still an issue at the invitation-only Linux Kernel Maintainers Summit. But, in the end, it was decided that Rust is well enough supported in the Clang — the C language family compiler front end — to move forward. Besides, as Torvalds had said earlier, “Clang does work, so merging Rust would probably help and not hurt the kernel.”
At the meeting, Torvalds said, “There was debate at the Maintainers Summit, but it was really mostly about the issue of compiler versions. Which isn’t new to Rust (we already have the whole issue on lots of different compiler versions, and gcc vs clang).
It also helped Rust’s case that — thanks to the ground-breaking work of Linux kernel and Rust developer Miguel Ojeda — Rust on Linux has gotten much more mature. In addition, Andreas Hindborg, a Western Digital Principal Engineer, at the 2022 Linux Plumbers Summit, showed you could write a first-rate driver, an SSD NVM-Express (NVMe) driver for Linux in Rust. The maintainers were convinced it was time to move forward with Rust in Linux. In short, they agreed that Rust on Linux was ready for work.
Now, Torvalds warns in this first release, Rust will “just have the core infrastructure (i.e. no serious use case yet).” But, still, this is a major first step for Rust and Linux.