Rust Will Help Linux Succeed and Makes Coding Fun, Says Greg Kroah-Hartman (zdnet.com) 74
ZDNet reports on June's Open Source Summit India 2026 in Mumbai, where Linux stable kernel maintainer Greg Kroah-Hartman gave a talk titled "Rust and Linux: How the Rust Language is Going to Help Linux Succeed."
Kroah-Hartman said in his keynote that "the [Linux] kernel is moving toward Rust. Git is moving toward Rust. Lots of projects are starting to move toward Rust."
He didn't always feel that way. Kroah-Hartman added, "A number of years ago, when a friend of mine said, 'Ah, you got to try this new language. It's called Rust.' I was like, 'What? No, C is great.' His friend continued, "'No, no, no! It makes programming fun again.' I'm like, 'Nah, programming is fun in C.' He was right. I should have done it then. Rust is actually fun. It makes programming fun. It takes a lot of stuff away from having to worry about the compiler, which can fix a lot of your problems for you, and it makes code a little bit better."
So, Kroah-Hartman has moved from being a Rust skeptic to one of its strongest champions inside the kernel. He now regards Rust as a permanent part of Linux, not an experiment. His case is straightforward: Rust's ownership and type system can eliminate most of the "stupid little tiny things" that dominate kernel Common Vulnerabilities and Exposures (CVEs), while making life easier for overworked maintainers. "Rust," in short, "makes my life so much easier...." In India, he said Linux sees "about 13 CVEs a day" and has been running at "almost nine changes an hour" for a decade or more. Most of those vulnerabilities, he argued, are not exotic attacks but simple C mistakes — unchecked pointers, forgotten unlocks, and sloppy cleanup paths: "This is what we're fixing 13 times a day. Small, trivial, little bugs like this all the time.... I've seen every CVE the kernel has done in the past 25 years. I think 80% would be gone, just because they would be caught by Rust." The remaining 20% are the logic bugs he'd prefer to focus on...."
Moreover, Rust is becoming the default for new work in key subsystems. "New drivers for some subsystems are only going to be accepted in Rust...." he said. Binder, the Android IPC mechanism at the heart of billions of devices, now has parallel C and Rust implementations in the kernel. The C version "will go away soon," leaving the Rust version "as the bedrock of all Android devices going forward."
He didn't always feel that way. Kroah-Hartman added, "A number of years ago, when a friend of mine said, 'Ah, you got to try this new language. It's called Rust.' I was like, 'What? No, C is great.' His friend continued, "'No, no, no! It makes programming fun again.' I'm like, 'Nah, programming is fun in C.' He was right. I should have done it then. Rust is actually fun. It makes programming fun. It takes a lot of stuff away from having to worry about the compiler, which can fix a lot of your problems for you, and it makes code a little bit better."
So, Kroah-Hartman has moved from being a Rust skeptic to one of its strongest champions inside the kernel. He now regards Rust as a permanent part of Linux, not an experiment. His case is straightforward: Rust's ownership and type system can eliminate most of the "stupid little tiny things" that dominate kernel Common Vulnerabilities and Exposures (CVEs), while making life easier for overworked maintainers. "Rust," in short, "makes my life so much easier...." In India, he said Linux sees "about 13 CVEs a day" and has been running at "almost nine changes an hour" for a decade or more. Most of those vulnerabilities, he argued, are not exotic attacks but simple C mistakes — unchecked pointers, forgotten unlocks, and sloppy cleanup paths: "This is what we're fixing 13 times a day. Small, trivial, little bugs like this all the time.... I've seen every CVE the kernel has done in the past 25 years. I think 80% would be gone, just because they would be caught by Rust." The remaining 20% are the logic bugs he'd prefer to focus on...."
Moreover, Rust is becoming the default for new work in key subsystems. "New drivers for some subsystems are only going to be accepted in Rust...." he said. Binder, the Android IPC mechanism at the heart of billions of devices, now has parallel C and Rust implementations in the kernel. The C version "will go away soon," leaving the Rust version "as the bedrock of all Android devices going forward."
And it has (Score:2, Funny)
...blueberry marshmallows!
Fun (Score:4, Insightful)
If you have fun programming in Rust, you will have fun programming in C.
"Fun" is something manager types tell you when they are trying to convince you to do something. If something is fun, you don't need to tell people. It's also what you tell toddlers [youtube.com].
Re: (Score:1)
Rust is fun like financial accounting regulations are fun. As in, not fun or satisfying at all for anyone except a tiny minority of people.
C is fun like wrenching on a motorcycle. Necessary if you want your things to work, and a bit dangerous if you aren't careful about your business.
The desire for “Unix” on commodity PC (Score:2)
It's about destroying Microsoft; like in the Old Days
Nope. Linux is now corporate driven, not hobbyist driven. Linux development is largely about having a “Unix” platform that is easily ported to new hardware architectures, large and small. Matter of fact, that’s probably what motivates most hobbyists. Linux’s success is more rooted in the desire for “Unix” on commodity PC hardware than Microsoft hate.
Circa 1990 many of us software developers were eagerly following the various efforts to bring Unix to PC. The students, t
Re: (Score:2)
Liking programming will be beside the point in a few years when the bots have totally taken it over. In a way, it is poetic justice to see those Silicon Valley types who think computation is all anyone needs to know booted out on their asses; hoist on their own petard.
Re: (Score:2)
If you have fun programming in Rust, you will have fun programming in C.
Programming in C is a bit of a slog, frankly. You have to do every. little. thing. by. hand, even though there's a perfectly good computer sitting right there you could (in principle) use to automate away tedious stuff.
Re: (Score:2)
On the other hand, C does exactly what you tell it to do. Rust always feels like a constant argument with the compiler (linter really?) where it keeps going 'I understand what you are trying to but am not going to do it'
Re: (Score:2)
On the other hand, C does exactly what you tell it to do.
Not exactly. It does what the compiler, through blind, fast, accurate and utterly mechanically stupid application of the rules of the standard believes you have told it. The standard has scope to allow for demons to fly from your nose and the compiler will oblige you in that if you accidentally ask it to.
Rust always feels like a constant argument with the compiler (linter really?) where it keeps going 'I understand what you are trying to but am not go
Re: (Score:2)
That's why you posted anonymous and didn't say anything, because... know shit? Jack shit, maybe.
You not only didn't manage to make a point, you didn't even succeed at claiming something was wrong, because you didn't know enough about the subject to even point to which part you wanted to argue about.
And you were replying to a weak argument, so it should have been a softball.
Re: (Score:2)
Not an attack on C, but if you don't know what the compiler is going to do with your code you should have used another language.
If you don't want it to prove Y than you can always just temporarily switch off the prover (i.e. borrow checker[*]) and fuck around with dereferencing raw pointers to your heart's content in an unsafe block.
The problem is that the areas where the evangelists want Rust to save the world, like in the linux kernel, you're usually going to be doing that. It's a mirage.
Most of the time when you can have all the protections, why are you even trying to use a compiled language? Maybe it should be written in Ruby or Python, or something.
Re: (Score:2)
No. C does not do exactly what you tell it to do. Not with modern day optimisers transforming your code in all kind of interesting ways and doing totally weird things if you accidentally hit some undefined behaviour (as defined by the C standard)
Those "arguments" you might have with the Rust compiler are no different that the arguments you will have with your failing tests, and debugger after your C code has compiled. The problems of getting your types lined up and lifetimes of data are the same in both ca
Re: (Score:1)
Re: (Score:3)
Well, you'd be wrong, but don't let it change your opinion.
I like C++, it's fun. Nice combination of being able to do whateverthefuck you want but also you can program the compiler. C has the former but not the latter, and as a programmer I like to program rather than be weirdly precious about not programing the compiler.
I love AWK. It's just so good at what it does, and amazingly underrated.
BASH is my homeboy.
sed, because sometimes life is too easy
Python and Java are... fine. I like programming in general
Many C apps just add a dash of C++ (Score:2)
If you have fun programming in Rust, you will have fun programming in C.
Programming in C is a bit of a slog, frankly. You have to do every. little. thing. by. hand ...
That’s what C++ is for. Many C++ apps actually use little of C++. It is far more common to find that an app is mostly C style with just a few C++ features being used. Smart pointers being a common one.
Re: (Score:2)
Rust also makes quite a good target for AI-powered Spec Driven Development - if that's "fun" or not is a whole debate of its own, mind you.
Rust is compiled, and it's pretty picky about what you can and can't do, so AI agents are quite easily able to iterate a couple of goes until they get something that actually compiles and runs. At that point, in a lot of cases they have /something/ to show for their efforts, very much v0.1, but it's usually a decent place from which to iterate.
From then on, sure, it gets
Re: Fun (Score:2)
Re: (Score:2)
While true, most Rust evangelists aren't programming in either language.
Rust is a tech debt killer (Score:4, Interesting)
Re: (Score:1)
Re: (Score:2)
It's still very easy to write application level bugs in Rust but having the door closed on so many by design means less overall. Other niceties like not having to write headers and sources, integrated unit testing, package management, cross compilatio
Re: (Score:3)
Something like Rust should have become the norm or the standard 25 years ago.
Perhaps programming in it isn't fun but I'm long past fed up of hearing "use the right tool for the job" from those who refuse to use any tool except the ones they're already familiar with
Re: (Score:1)
Coding? (Score:1)
Who does that anymore?
Re: (Score:2)
Re: (Score:2)
Who does that anymore?
People having fun. :-)
Rust is only fun (Score:1)
Rust's let reminds me of Spectrum or ZX-81 basic (Score:2)
So yeah, I guess it's fun in trying to reach those bygone years of by 80's childhood.
let foo = bar;
Re: (Score:2)
Re: (Score:1)
inhibits creative coding
It inhibits sloppy coding, but certainly not creative coding. It just requires some proof that you're not committing some programming sins. AI-produced code never gets reviewed adequately (you can't convince me that these people bragging about 50,000 lines a day are reviewing it all), but at least rust's compiler gives me some confidence in one class of bugs in its code (as long as you build your vibe-slop with `-Dunsafe-code`)
I've heard this one before (Score:2)
"$Coding_Language" will make coding fun!
Since, but not including COBOL.
It's fun if it makes coding it fun for you. And it scratches your itch. But no one language is either fun, nor is suitable for all use cases.
Now, get off my lawn.
Re: (Score:2)
Re: (Score:2)
I remember reading the exact same headline about Go some time ago. Then some time before that C++...... Java as well.
Re: (Score:2)
Yes you did. However Go, C++ never offered anything more than "nice syntax" for this and that. Java helped with real problems, at the expense of the JVM and GC overhead. Rust however offers features never seen before in compiled to native code languages. Even the very anal Ada learned tricks from Rust in recent years,
Re: (Score:2)
Re: (Score:2)
True, but never, ever fun!
COBOL’s goal was to make code work correctly (Score:2)
"$Coding_Language" will make coding fun!
Since, but not including COBOL.
COBOL’s goal was to make code work correctly. Admiral Grace Hopper made sure it met that goal. Too bad she didn’t help K&R and Bjarne. :-)
AI makes programming fun (Score:1)
Very few people enjoy the art of craft. Programming is no different.
Getting the benefit of craftsmanship is a lot more appealing than making the effort to learn how to produce that benefit yourself.
As AI becomes more capable, accessible and cheap the limits will be our understanding and creativity. I do believe the best AI today can code in Rust too...and as Linux lends itself we'll to AI and headless automation it will continue to do
That seems a bit disconnected (Score:2)
No argument about the accomplishments of Greg HK, but first, Linux has already succeeded. And second, most people will struggle with Rust. It is just too complex for the average kernel contributor. It also does not, as Linus has pointed out, prevent logic errors.
Re: (Score:2)
If Rust is too complex then so is C.
C pushes ALL of the complexity onto the programmer, whereas more recent languages get the computer to do things it's good at.
It also does not, as Linus has pointed out, prevent logic errors.
That's not wrong, it's also not right either. For example, C has no way of distinguishing between a pointer to an array, a pointer to a single datum and a pointer to an object which might not exist (i.e.one that can hold NULL), and of course nothing about the ownership of the pointee.
Re: (Score:2)
From your utterly lucidus statement, you seem to not know either Rust or C.
Re: (Score:2)
I think C fanatics are possibly even worse than Rust fanatics.
No debate, no argument, just flinging poo and ignoring the last 70 years of computer science development.
I note you didn't actually address a single point. It's because you know you can't and know you are wrong.
Re: (Score:2)
I guess you are not using malloc then. malloc will say "sure, here is your gigabyte allocation" and then when your program gets around to using that space may well segfault if the memory is not actually available at that time. I'm curious, how are you defending yourself from that?
Re: That seems a bit disconnected (Score:2)
Rust Team’s PR and media relations office (Score:2)
If Rust is too complex then so is C.
Only to those in the Rust Team’s PR and media relations office.
As always with Rust (Score:4, Funny)
Whenever a story about Rust comes up, one must be always be aware of the consequences [imgur.com].
AI (Score:3, Insightful)
Re: AI (Score:2)
Re: (Score:2)
Re: (Score:2)
If all the "problems" are stupid little things then why not just have AI clean it up? Insist that developers use AI defensively rather than tying their hands with a language that limits them.
The AI is trained on the output of human developers and so has the same problems as human developers. Computationally, a "wrong" program can be just as valid a result as a "right" program. You only avoid the wrong program through some form of constraint. If your constraints are all in your context window, rather than in your development environment then
a) they push other things that might also be important out of the context window
b) they are subject to the misunderstandings of the same constrains that exis
Re: AI (Score:2)
Re: (Score:2)
That's why you keep the field small. Handle one kind of error at a time. Have it debug every change and look again for more errors. Loop this until it can't find any. Get it to report exactly what it did in words and confirm it looks reasonable to you. Loop again if it isn't reasonable. That is way faster than doing it manually.
Is it faster? It sounds really tedious and error-prone to me. If someone were to suggest I quit writing code and instead spend the rest of my career supervising the intern as he writes code for me to review and correct, I'd feel the same way about that.
Re: (Score:2)
Computationally, a "wrong" program can be just as valid a result as a "right" program.
I think you have a point you are trying to make, but I cannot figure out what you are trying to say here at all.
Re: (Score:2)
Here's some example code of a "wrong" program that is 100% valid:
int sum_two_numbers(int a, int b)
{
return a-b;
}
It's all just a wrapper for assembly (Score:2)
Will help Linux succeed? (Score:2)
Re: (Score:1)
And Microsoft themself is now acting to make that dependence on Windows go away, with web-based versions of their applications. I think they can see that Windows' time is limited. Maintaining an OS is a big thankless job that they don't need to do, and they're not any good at it so it's not like they deserve thanks anyway.
Re: (Score:2)
By making people dependent on their cloud perpetual subscription versions.
Re: (Score:2)
By making people dependent on their cloud perpetual subscription versions.
Right, they want them dependent on the applications, and providing the OS is no longer necessary to accomplish that.
Re: (Score:1)
Fun Is Subjective (Score:2)
Oh, Greg (Score:2)
You will like Rust OR ELSE (Score:2)
You must strike your back with this rusty piece of barbed wire 19 times per hour. It's fun.
Wish they would use a programming language with a bit more of a proven track record, though. Ada is where it's at.