Linux royalty backs adoption of Rust for kernel code
-
Greg Kroah-Hartman... urged fellow contributors to embrace those interested in contributing Rust code to improve the kernel.
"Adding another language really shouldn't be a problem... embrace the people offering to join us
Thoughts on this?
-
I’ve gotten into the most hilariously circular debates with rust opponents on this point. Their arguments tend to come down to “just don’t write bad code”.
The team is only as strong as the weakest link. The release is only as good as the least talented dev. Tools that raise the entire foundation are objectively good. Even better are tools that outright prohibit you from even writing entire categories of bugs. Rust is that tool.
And yeah I know it’s not perfect, and it shouldn’t be treated as a panacea. But its advantages should be lauded, not derided because some contributors like to maintain the walled garden of knowledge as if it were a secret spellbook.
-
That does NOT sound like a good idea.
We've turned our development model into a well-oiled engineering marvel,
Exactly, and I'm pretty sure one of the reasons is that it's remained on C, and NOT switched to C++, as has been often suggested.
The second they make it a mixed code base, that's the same second quality will deteriorate. Mixed code base is a recipe for disaster.Edit:
Torvalds eventually responded by defending the Linux kernel development process and scolding Martin for grandstanding on social media about the issue. Martin later quit as a Linux maintainer and resigned from the Asahi Linux project.
Seems like Linus isn't onboard with this.
But I guess all the downvoters know better?
opening for a mixed code base is a recipe for disaster.
Greg Kroah-Hartman:
Yes, mixed language codebases are rough, and hard to maintain, but we are kernel developers, dammit.
That's special pleading, that lacks basis in reality. Still he admits it's rough to mix codebases.
I'm not claiming Rust wouldn't be brilliant in some situations, but the detraction of a mixed codebase is worse than the benefit.
-
Just fork it, do a complete rewrite in Rust, and call it “Runix”
More OS options is better for everyone.
-
Moving from C to C++ would also not solve any real problem. C++ of course adds OOP which I think can be nice (not everyone agrees with this!) but it also adds an insane amount of language complexity and instability. Mentally reasoning about C code is hard, reasoning about C++ code is nearly impossible.
Rust however brings a novel solution to classes of problems like ownership and mutability with the borrow checker. It's now accepted to be a great tool for writing high performance code while preventing a substantial amount of common, but often subtle, bugs from slipping through. It's not arbitrarily the first non-C code to be accepted in the kernel. And it's used in other operating systems like Android and Windows already.
-
The one thing stopping large scale adoption of linux is definitely the lack of options.
-
Mostly this ^.
There's just not really demand for C++ in the kernel; that's not the case with Rust.
-
I think rust would also bring in more developers. So more changes would eventually make its way into the kernel.
-
Their arguments tend to come down to “just don’t write bad code”.
Oooooh, that's a good stratagy! Write that down! Write that down!
-
I just want WindowsXP without security risks. If Linux could make a WindowsXP clone, that works with exe files, and works exactly like WindowsXP, except handles modern standards, I would jizz all over the place.
Yeah. I'm leaving it in as motivation for linux developers. If they don't want to hear about my jizz spraying like a firehose, they should made LindowsXP.
SEE??? I EVEN GAVE YOU A GREAT BRAND NAME!
-
Microhard?
-
- Humans write code
- Humans make mistakes
∴ Humans write bad code
-
I don't know about you, but I prefer provably correct code over "just trust me bro."
There's an analogy I like here. A manager at a trucking company was hiring a new driver, and he asked each of them how close they could get to the edge on a mountain pass. The first said, "I can get within a wheel's width." The second said, "I can drive on the edge, with part of the tire hanging off." And the third said, "I stay away from the edge." The third applicant got the job, because why take the risk?
That's how I feel about C/C++. Why use them if Rust can do the job? You get a lot more safety features without sacrificing performance, what's not to like?
-
This sort of exists https://reactos.org/
Key word on sort of, it's quite rough in many areas
-
In general, for me, Rust > C > C++.
I've heard people say that C is like a loaded and cocked revolved, and if you're not careful, you could blow your foot off, whereas C++ is like a loaded and cocked sawed-off shotgun, and if you're not careful, you could blow your leg off.
-
And that's why I don't work in software development!
-
But some beautiful day in the future, bad code will write badder code.
-
The second they make it a mixed code base, that's the same second quality will deteriorate.
I envy your confidence!
-
That’s kind the entirety of my point: if Rust is a tool that can make expressing algorithms safer and less prone to error - and it can, in a logically provable sense - then what the fuck ground do you have to push back on?
-
Theres heaps of stuff that is under-developed or mssing, but they prefer to rewrite working code in Rust, because ideology.
We are witnessing the death of Linux here, no less, replacing a working kernal with an still undefined language that everyone will have forgotten in 5 years.