Rust in the kernel is no longer experimental

Significance and headline debate

  • Commenters generally treat “no longer experimental” as a big milestone: Rust is now a first‑class, “here to stay” language for the kernel, not a trial.
  • The original LWN title (“end of the kernel Rust experiment”) confused many; some thought Rust was being removed. HN users argued about clickbait vs harmless irony, and the author later clarified it was an unintentional misphrasing.

What’s actually written in Rust

  • So far Rust is used mainly for new drivers and auxiliary subsystems: e.g. DRM panic QR-code generator, in‑progress GPU drivers (Apple AGX, NVIDIA “Nova”, Arm Mali “Tyr”), binder on Android, etc.
  • Core kernel remains C; Rust is additive, not a rewrite. Distros like Arch, NixOS, Fedora are already shipping kernels with Rust enabled.

Safety, unsafe, and practical benefit

  • A recurring theme: most kernel Rust code is safe, with small, concentrated unsafe sections at hardware/FFI boundaries.
  • Some skeptics argue that because low‑level code “must” be unsafe, Rust’s benefits are marginal; proponents reply that going from 100% unsafe (C) to ~3–10% unsafe is a major win, backed by data (e.g. Android’s big drop in memory safety bugs).
  • There’s discussion that Rust’s type system also clarifies undocumented kernel invariants (locking/order constraints), forcing better APIs.

C vs Rust vs other languages

  • Pro‑C arguments: ubiquity, simpler toolchains, faster compiles, better coverage of obscure/embedded architectures, C as ABI lingua franca.
  • Pro‑Rust arguments: memory and concurrency safety, stronger types, better ergonomics for complex code, fewer crash‑only‑in‑production bugs.
  • Many expect a long coexistence: C remains for legacy and odd platforms, Rust for new drivers and security‑sensitive code. Comparisons also touch on Zig, Swift, Java, Go, but none are seen as as strong a kernel fit as Rust.

Platform, compiler, and stability concerns

  • Worries: Rust doesn’t yet target all Linux architectures; some (alpha, parisc, sh, etc.) lack solid support. Microcontrollers and exotic platforms are often C‑only.
  • Rust kernel code historically relied on nightly features, raising reproducibility and bootstrapping concerns, though recent kernels build with stable Rust.
  • GCC‑based Rust backends and gccrs are viewed as important for long‑term portability and reducing dependency on LLVM.

Process and community dynamics

  • Some note resistance and friction on LKML (high bar on code quality, brusque culture, specific flare‑ups over Rust VFS work and certain maintainers).
  • Others see Rust’s acceptance as evidence the kernel is willing to modernize under strict technical scrutiny, not a “rewrite everything in Rust” crusade.