The Linux kernel has recently introduced the Rust programming language as an alternative to C for creating kernel modules.
Rust is a strongly, statically typed programming language with a focus on memory safety features which produces extremely compact executable code. These properties, paired with its good tooling, make Rust a natural choice for creating many types of kernel modules, including device drivers, network protocols and filesystems.
Unfortunately, setting up an environment to build and run Rust kernel modules is not trivial, because it requires both a custom toolchain and custom kernel changes which are not usually suitable for a generic distro kernel.
Dealing with Rusty complexity
Ubuntu has made it easier to use Rust for kernel programming by providing all the necessary toolchain and kernel requirements to build and test out-of-tree kernel modules.
This has the potential to make kernel programming more accessible to a wider audience of individuals who are…