The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →The Linux kernel is still primarily written in C, but Rust is now an optional language for selected kernel components. It has been used for in-tree drivers and related work; it has not replaced C or become available across every subsystem and configuration. The practical boundary is the kernel’s Rust integration, including CONFIG_RUST, the abstractions available to a component, and the toolchain required to build it.
Is Linux written in Rust?
No. Linux kernel documentation describes the kernel as written in C, typically compiled as GNU C11. Rust support is an additional, conditional capability for selected work, not a rewrite of the kernel. The kernel’s language documentation explains the current language and build context at Programming languages.
As an Amazon Associate I earn from qualifying purchases.
Rust support was merged into mainline in Linux v6.1 to assess whether Rust was suitable for kernel use and worth its trade-offs, according to the v6.17 Rust documentation. That history describes why the integration began; it does not mean every part of Linux now supports Rust.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesWhat does CONFIG_RUST do?
CONFIG_RUST is the kernel configuration option associated with Rust support. When the required toolchain and other build prerequisites are available, the option can be enabled so a kernel build can include supported Rust code. It does not translate C code into Rust or make every subsystem’s APIs available to Rust.
#1 Best Overall
Rust code is integrated with an existing kernel whose core infrastructure and much of its code remain C. Kernel-specific abstractions provide a way for Rust components to use kernel facilities across that language boundary. Whether a particular component can be written in Rust depends on the abstractions and interfaces available to it, as well as the target kernel’s configuration and build support. See the kernel’s Rust quick start for the build prerequisites.
Can you write Linux kernel drivers in Rust?
Yes, for selected cases where the kernel’s Rust support and relevant interfaces are available. The Rust for Linux project lists in-tree examples including the Android Binder driver, the Nova GPU driver, and the Null Block driver. These examples show that Rust is used in mainline kernel development; they are not evidence that all drivers, devices, or subsystems can be implemented in Rust.
Rank #2
For a new component, the language decision is therefore specific to the target subsystem and maintainers, rather than a universal choice between C and Rust.
| Decision factor | What to check |
|---|---|
| Integration | Whether the subsystem has the Rust abstractions and APIs the component needs. |
| Build support | Whether the target kernel version, configuration, and toolchain meet the Rust build requirements. |
| Stability and maintenance | Whether the code relies on unstable Rust features and how the project will track kernel and compiler changes. |
| Project fit | Whether contributors and maintainers can support the component and its C–Rust boundary. |
What toolchain and configuration does a Rust kernel build need?
The Rust option appears in kernel configuration only when a suitable toolchain and other requirements are met. The kernel’s quick-start says a complete LLVM toolchain is the best-supported setup. It also says GCC works for some configurations but remains experimental. Requirements can change, so consult the quick-start for the exact kernel tree you plan to build rather than relying on a compiler-version number detached from that release.
Kernel Rust uses the Rust 2021 edition, but that does not mean it uses only stable language features. The language documentation notes that the kernel also uses unstable features. Rust for Linux explains that unstable features do not promise compatibility; that label alone does not mean a feature is broken. Most kernel Rust use is intended to go through the kernel crate’s abstractions, with only a minimal set of features permitted elsewhere, such as in drivers. Removing the need for unstable features is a project priority.
Is Rust in the Linux kernel production ready?
There is no single yes-or-no answer that applies to every kernel build or Rust component. Rust code is already present in mainline, but the v6.17 kernel documentation says support is primarily intended for developers and maintainers working on abstractions, drivers, infrastructure, and tools. It also cautions end users about production readiness and notes that some configurations remain experimental. A component’s presence in mainline does not establish that Rust support is suitable for every production configuration.
Rank #4
Why does the Linux kernel still use C?
The kernel’s primary language and established infrastructure remain C, while Rust support is being integrated selectively. A Rust component needs usable kernel abstractions, a supported build configuration, and maintainers able to handle the language boundary. The documentation establishes these constraints and the project’s direction; it does not establish a kernel-wide performance or security outcome that would justify declaring one language universally preferable.
Recommended Free Tools
What is the goal for stable Rust features?
The Rust Project’s 2026 roadmap states an objective of building Linux kernel releases with stable language features and supporting Linux targets. Work on stabilizing the relevant features is ongoing, so that objective should be read as a direction rather than a claim that the kernel has already eliminated unstable-feature use. The roadmap is available from the Rust Project governance roadmap.
Best Value
Where should contributors start?
Start with the Rust quick-start and the documentation for the kernel version you intend to build. Check whether Rust support is available for your configuration, whether the required toolchain is installed, and whether the target subsystem has the abstractions your proposed work needs. For a specific driver or infrastructure change, also consult the project’s current Rust documentation and relevant subsystem maintainers; broad Rust support does not imply that every contribution can cross the C–Rust boundary today.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




