privacyguides / privacyguides.org

Protect your data against global mass surveillance programs.
https://www.privacyguides.org
Creative Commons Attribution Share Alike 4.0 International
2.54k stars 198 forks source link

Linux is now making an effort to incorporate rust into the Kernel and userspace #2580

Open kekkoudesu opened 1 month ago

kekkoudesu commented 1 month ago

Affected page

https://www.privacyguides.org/en/os/linux-overview/#missing-security-features

Description

The page currently reads:

Memory corruption bugs are responsible for the majority of vulnerabilities fixed and assigned a CVE. While this is also true for Windows and macOS, they are quickly making progress on adopting memory-safe languages—such as Rust and Swift, respectively—while there is no similar effort to rewrite Linux in a memory-safe language like Rust.

This is no longer true. The kernel's official documentation reads:

Currently, the Rust support is primarily intended for kernel developers and maintainers interested in the Rust support, so that they can start working on abstractions and drivers, as well as helping the development of infrastructure and tools.

If you are an end user, please note that there are currently no in-tree drivers/modules suitable or intended for production use, and that the Rust support is still in development/experimental, especially for certain kernel configurations.

This qualifies as an effort to adopt Rust into the kernel. There isn't an intention to rewrite the entire kernel in Rust, but I'm not sure that's the intention with Windows or macOS either. Having some memory safety that comes with good guarantees is much better than having none at all.

On the userspace side, Rust is being used already.

A notable recent development is the announcement of Nova, the upcoming NVIDIA kernel driver for newer NVIDIA GPUs written in Rust. It follows the impressively fast development of NVK, a userspace NVIDIA driver which uses the NAK compiler backend written in Rust, and released this week in Mesa 24.1, now "ready for prime-time". Nouveau, the current kernel driver for NVIDIA, also uses the NAK compiler.

Notably, Asahi Linux also built and uses a GPU driver written in Rust.

Sources

https://docs.kernel.org/rust/index.html https://rust-for-linux.com https://rust-for-linux.com/nova-gpu-driver https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 https://lists.freedesktop.org/archives/mesa-dev/2024-May/226222.html https://rust-for-linux.com/apple-agx-gpu-driver

Before submitting

kekkoudesu commented 1 week ago

There's also Newton and AccessKit, the new accessibility stack written in Rust: https://blogs.gnome.org/a11y/2024/06/18/update-on-newton-the-wayland-native-accessibility-project/