Linus Torvalds On Where Rust Will Fit Into Linux

image

An anonymous reader shares an excerpt from a ZDNet article, written by Steven J. Vaughan-Nichols:

Linux is the poster-child for the C language. But times change. The Rust language has been slowly gathering support for use as a system language in Linux. For example, at the 2020 Linux Plumbers Conference, developers gave serious thought to using the Rust language for new Linux inline code. So, where is it today? I asked Linux’s creator, Linus Torvalds, and the Linux stable kernel maintainer Greg Kroah-Hartman for their thoughts. […] What does Torvalds make of all this? He’s in “the ‘wait and see’ camp – I’m interested in the project, but I think it’s driven by people who are very excited about Rust, and I want to see how it actually then ends up working in practice.” “Personally,” Torvalds is “in no way “pushing” for Rust, [but] I’m open to it considering the promised advantages and avoiding some safety pitfalls, but I also know that sometimes promises don’t pan out.”

Torvalds thinks “Rust’s primary first target seems to be drivers, simply because that’s where you find just a lot of different possible targets, and you have these individual parts of the kernel that are fairly small and independent. That may not be a very interesting target to some people, but it’s the obvious one.” Another point is taking on drivers first for “any initial trials to drivers is simply the architecture side,” said Torvalds. “Lots of drivers are only relevant on a couple of target architectures, so the whole issue with Rust code not being supported on some architectures is less of an issue.” Kroah-Hartman agrees that “drivers are probably the first place for an attempt like this as they are the ‘end leafs’ of the tree of dependencies in the kernel source. They depend on core kernel functionality, but nothing depends on them.”

Torvalds knows some people don’t like the idea of Rust in userspace at all. “People complain[ing] about “Rustification” in userspace isn’t a great sign for any future kernel use, but hey, we’ll see. The kernel is different from userspace projects – more difficult in some respects (we use a lot of very odd header files that pushes the boundary of what can be called “C”), but easier in many other respects (mainly in the sense that the kernel is fairly self-contained, and then doesn’t rely on other projects for the final binary).” From where Kroah-Hartman sits, “it will all come down to how well the interaction between the kernel core structures and lifetime rules that are written in C can be mapped into Rust structures and lifetime rules for drivers in Rust to be able to use them properly. That’s going to take a lot of careful work by the developers wanting to hook this all up and I wish them the best of luck.”

5 Likes