I would also say that it’s a lot easier to learn to write rust when you’re writing something that runs sequentially on a single core in userspace as opposed to something like the Linux kernel. Having dipped my toes in rust that seems very approachable. When you start doing async concurrency is when the learning curve becomes steep.

I've found that when you're doing concurrency, Rust makes things easier, and it becomes simpler to get right.

However, adapting the conventions and mechanisms of a large complex C system like the Linux kernel to Rust is taking time.

Those footguns still exist in C, they’re just invisible bugs in your code. The Rust compiler is correct to point them out as bad architecture, even if it’s annoying to keep fighting the compiler.