Skip to content
FOR THE LOVE OF ALL THINGS TECH
Software

Linux maintainers agree to remove Rust’s experimental status in the kernel

Two monitors displaying code beside a Linux Tux figurine.

Linux kernel maintainers agreed at the 2025 Linux Kernel Maintainers Summit in Tokyo to recognize Rust as a core part of the kernel, with its experimental designation set to be removed.

Kernel developer Jonathan Corbet described the consensus among the assembled developers as recognizing that Rust was “here to stay” and said the experimental tag would come off. Kernel maintainer Steven Rostedt said, “There was zero pushback.”

The agreement followed comments by Linux creator Linus Torvalds at Open Source Summit Korea 2025, where he said Rust was “truly becoming part of the kernel” and was no longer just an experiment.

C remains the dominant language in the codebase. The Rust effort has focused on enabling new kernel code to be written in the language rather than rewriting the existing kernel.

In October 2022, Kees Cook submitted a pull request for initial Rust support in Linux 6.1-rc1. He described its contents as the minimum needed to build Rust code in the kernel, with more interfaces and drivers to follow. The submission included build-system support, Rust crates and bindings, documentation and samples.

Memory safety and driver development

Memory safety was a central argument for adopting Rust. At the 2019 Linux Security Summit, Alex Gaynor and Geoffrey Thomas cited research showing that roughly two-thirds of kernel vulnerabilities assigned CVEs in Android and Ubuntu stemmed from memory-safety issues.

Rust for Linux maintainer Miguel Ojeda explained that Rust guarantees against undefined behavior, including use-after-free errors, double frees and data races, as long as unsafe code is sound. Its safety guarantees therefore depend on the correctness of that unsafe code.

Drivers have long been a proposed starting point. In 2021, Torvalds described them as relatively small, independent kernel components. He noted that many drivers are relevant to only a few architectures, making gaps in Rust’s architecture support less of an obstacle for those uses.

Linux stable kernel maintainer Greg Kroah-Hartman described drivers as the “end leafs” of the kernel’s dependency tree: they depend on core functionality, but nothing depends on them. He said integrating Rust drivers would require carefully mapping the kernel’s C structures and lifetime rules into Rust equivalents.

Integration and maintenance challenges

Ojeda dated the creation of the Rust for Linux organization to summer 2019, with activity beginning the following summer. Discussions at the 2020 Linux Plumbers Conference addressed access to existing C application programming interfaces, architecture support and application binary interface compatibility between Rust and C.

Learning and maintaining another language also raised concerns. During a 2021 discussion, Video4Linux maintainer Laurent Pinchart said he did not have time to stop other work and learn Rust anytime soon, making it difficult for him to take responsibility for Rust code in his subsystem. At Linux Plumbers 2024, Intel engineer Dan Williams described the difficulty of reviewing and debugging Rust code for maintainers unfamiliar with the language.

A dispute over proposed Rust abstractions for the Direct Memory Access API illustrated the disagreement over maintenance responsibilities. Christoph Hellwig opposed the proposed integration and said he had no interest in maintaining code in multiple languages. Rust developer Danilo Krummrich said contributors had written a shared abstraction around the C API for Rust drivers and offered to maintain it themselves.