December 11, 2022T1
Rust Enters the Linux Kernel — The Beginning of C's End
Linus Torvalds merged initial Rust support into the Linux 6.1 release. Since 1973, the Linux kernel had effectively been C-only; this was the historic moment at which Rust—with its memory-safety guarantees—was formally admitted into kernel development. Expansion began with device drivers and, from 2024, accelerated into Apple Silicon GPU drivers, NVMe, and filesystem layers. The transition was not smooth: in 2024 the so-called 'Rust for Linux' conflict pitted some conservative C maintainers against Rust advocates—a symbol of a generational shift in the software culture around language choice.

Metadata
- Date
- December 11, 2022
- Decade
- 2020s
- Tier
- T1
- Timelines
- A History of Programming Languages · A History of Operating Systems · A History of Open Source and Free Software
- Sources
- 06
- Connections
- 01
Rust Enters the Linux Kernel — Three Decades of C Monoculture End
Linux 6.1, released on 11 December 2022, looked like a routine major release. Inside it, however, sat one of the most unprecedented decisions in the kernel's history: initial Rust language support was officially merged.
Since Linus Torvalds released Linux in 1991, the kernel had effectively been written in C. Apart from architecture-specific assembly and a few scripts, three decades of code were a single colour. Now, for the first time, a second language had landed in mainline.
Why Rust — The Memory-Safety Case
The largest single category of kernel bugs is memory-safety violations: use-after-free, double-free, out-of-bounds, data races. Google and Microsoft have repeatedly reported that about 70% of their security vulnerabilities trace back to memory safety. C cannot prevent these at the compiler level.
Rust's ownership and borrow checker eliminate most of them at compile time. The logic of adoption was simple: don't rewrite the kernel—but write new code, especially drivers, in Rust, and that new code will be memory-safe.
Miguel Ojeda and Rust for Linux
The project was led by Miguel Ojeda, a Spanish programmer with a physics background. Discussion began in 2020 as Rust for Linux (R4L); the first patches hit the kernel mailing list in 2021. At the September 2022 Maintainers Summit, Torvalds gave the public commitment to merge the next cycle—and 6.1 in December delivered.
The first merge was deliberately minimal: the Rust toolchain, parts of the alloc crate, and a few sample modules. No driver implementations yet. But this scaffolding became the base for full deployment over the next three years.
A Change of Heart for Linus
Torvalds was once famous for calling C++ a "horrible language" and being conservative about language choice in Linux. The Rust decision looked like an unexpected pivot for that personality.
His own framing was pragmatic: a generational hand-off among kernel developers is necessary, and a language choice that fails to attract younger contributors will quietly kill the project over the long term—plus the memory-safety argument is technically sound. He accepted Rust not on ideology but on sustainability grounds.
The 2024 Conflict — Hellwig vs R4L
The technical merge went smoothly. The cultural merge did not. In January 2025, a patch with the innocuous title "Add dma coherent allocator abstraction" became the flashpoint on the kernel mailing list.
Christoph Hellwig—maintainer of the DMA subsystem, one of the kernel's core C maintainers and the original author of the NVMe driver—publicly refused to take on review or maintenance of the Rust abstraction. His position: "I will not accept a binding to a language I cannot read sitting on top of a subsystem I'm responsible for. Carrying a two-language maintenance burden per subsystem doesn't scale."
R4L's position was the inverse: "The Rust-side abstractions are maintained by the Rust side. We are not asking C maintainers to read Rust." Technically these are parallel lines. They were no longer purely a technical disagreement.
Hector Martin's Exit
Hector Martin, project lead of Asahi Linux (Linux on Apple Silicon Macs), had been writing an Apple GPU driver in Rust. He criticised Hellwig sharply on the mailing list and publicly on Mastodon.
In February 2025 Torvalds intervened in an open email, reprimanding Martin: pressure via social media—"social media brigading"—was not a kernel development tool; debate happens on the mailing list. The same message also affirmed that maintainer veto is respected.
Days later, on 13 February 2025, Martin resigned as Asahi Linux project lead and stepped down as an upstream kernel maintainer, citing burnout, demanding users, and his loss of faith in Torvalds' leadership. R4L had already lost another maintainer in August 2024: Microsoft engineer Wedson Almeida Filho, on similar grounds.
2025 — Rust Graduates From "Experiment"
Despite the human friction, the technical work accelerated. In 2025 Miguel Ojeda announced that Rust for Linux had formally exited its "experimental" phase, and Torvalds endorsed a "Rust kernel policy" document that codified long-term support for the effort.
Major driver work began landing:
- Nova — a new open-source NVIDIA driver targeting Turing and newer GPUs (which depend on the GSP, GPU System Processor); intended as successor to Nouveau. Skeleton in Linux 6.15; expanded in 6.17.
- Apple AGX — the GPU driver inherited from Asahi, continued by the community after Martin's departure.
- NVMe and null block — partial Rust implementations under active development.
- Android Binder — led by Google. Smaller Rust pieces include the DRM panic-screen QR code generator.
What It Demonstrated
The arrival of Rust in the kernel is not just the addition of a language. It is the moment when the most influential open-source operating system project updated its unwritten rule that "we write in C".
It is also the event that made visible the human cost of introducing a new language into a massive volunteer project—cultural collisions, maintainer departures, the difficulty of leadership calls. The friction between thirty years of C culture and a new era that demands memory safety is not fully resolved.
Even so, by 2025 Rust is firmly rooted in Linux. The C monopoly is over, and a meaningful share of the kernel code written from here on will not be in C.
Sources
SecondaryRust for Linux — Wikipedia