Adding support for the Rust language to the Linux kernel. (by Rust-for-Linux)

Rust-for-Linux Alternatives

Similar projects and alternatives to Rust-for-Linux

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better Rust-for-Linux alternative or higher similarity.

Rust-for-Linux reviews and mentions

Posts with mentions or reviews of Rust-for-Linux. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-23.
  • how to compile a rust "hello world" with kernel 6.1?
    2 projects | | 23 Dec 2022
    Note that this template won't work with Linux 6.1, which has very minimal Rust support. You'll want the RustForLinux tree, or maybe Linux 6.2.
  • Rust in the 6.2 Kernel
    2 projects | | 18 Nov 2022
    > Also we’re bringing NPM style supply chain problems to the kernel now?

    Nope. They've thought that through.

    (In fact, cargo is only used to build test helpers.

  • Asahi Lina on her experience writing a driver in rust
    4 projects | | 5 Oct 2022
    The alloc library is available if a global allocator is available. Rust for Linux implements a global allocator (or, more accurately, hooks into the kernel's existing allocator, in rust/kernel/, and therefore you can use the alloc library in the Linux kernel.
  • Rust for Linux officially merged
    7 projects | | 4 Oct 2022
    Here's the tracking issue for unstable features used.
  • Initial Rust support is now merged into the Linux kernel!
    2 projects | | 3 Oct 2022
    There’s a Github repo for the Rust support and the maintainers actually accept pull requests and issues there. They’re quite responsive too and you’ll get excellent feedback on your submissions.
  • LKML: Linus Torvalds: Re: [PATCH v9 12/27] rust: add `kernel` crate
    4 projects | | 2 Oct 2022
  • It’s happening: Rust for Linux inclusion PR for 6.1-rc1
    4 projects | | 1 Oct 2022
    Don't quote me on this, but I do not think that rust will be required to build the kernel for at least a while - their docs specify make LLVM=1 rustavailable, which makes me think that by default it will be built without it. At this time, I think the main focus for now is allowing kernel drivers to be written in Rust (interfacing via provided abstractions over provided bindings), which should be possible without needing the entire kernel to be built with rust enabled. (link to the RFL docks directory if you're interested)
    3 projects | | 1 Oct 2022
    I'm no kernel expert, but it looks like it's mostly the "kernel" crate and some glue code. You can take a look around here:
    3 projects | | 1 Oct 2022
    You can start here:
  • A pair of Rust kernel modules
    2 projects | | 22 Sep 2022
    Rust for Linux tracks the list of "Required" / "Good to have" features from Rust itself. The set of things from that first category which aren't in Stable Rust has been shrinking but isn't zero.

    I don't believe there is a "Special interest group" but since the only comparable team to Rust for Linux would be a hypothetical "NT kernel with Rust" group, to some extent it's hard to argue with what they say they need when they come to Rust teams, e.g. library. Of course just because Rust for Linux wants X doesn't magically mean X is the top priority for the people working in that area, or even in some cases that Rust is going to ever do X. Sometimes the answer will be, as it has been for alloc, well, too bad then, make your own.

    Linus really doesn't like implicit allocation, this is one thing he didn't like about C++. But Rust's own alloc has lots of implicit allocation. For example its String can be appended to, even using an operator like in Java or C++ which means the heap allocation just grows. But what if there's no more RAM? So, in Rust for Linux such features don't exist.

    In both your desktop Rust and Rust for Linux, we can have a variable of type String, like &str it's UTF-8 encoded text, but unlike &str we can have mutable Strings. In desktop Rust you can just write my_string += " and then we ate a whole cake,"; and Rust will grow the String if necessary to fit on this extra text. But that's an implied allocation, so in Rust for Linux, this won't compile, the Rust for Linux String type doesn't have that += operator.

  • A note from our sponsor - InfluxDB | 7 Feb 2023
    InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises. Learn more →


Basic Rust-for-Linux repo stats
7 days ago
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives