Following arguments on the Linux kernel mailing list the past few days over some Linux kernel maintainers being against the notion of Rust code in the mainline Linux kernel and trying to avoid it and very passionate views over the Linux kernel development process, Asahi Linux lead developer Hector Martin has removed himself from being an upstream maintainer of the ARM Apple code.
Linus needs to step back again. He’s a liability to the kernel’s long term sustainability.
Rust seems to be imperative for security. I hope people in the Linux kernel community put aside their differences and find common ground for the benefit of everyone.
From my perspective as an outsider, there is a lot of apparent hostility and seemingly bad faith engagements going on in this space. Hopefully the reasons are innocuous like them just not wanting to learn a new language, to avoid increasing their workload, or to simply avoid working with the Rust team for whatever reasons they might have.
I would argue that anybody standing in the way of progress and increased security should be moved out of the way. No need for shaming or deep dives, just move the ship forward.
Hector posting it to social media, and by his own admission, to shame the C devs, is pretty hostile and bad faith too. Imo it’s the most overt occurrence of hostility here, but no one seems to mind? Are people just completely numb to social media hostilities or smth?
Does the kernel not need a lot of memory unsafe Rust code? There is a way to bypass the safety nets and I heard that for stuff like kernel development that is necessity.
The crucial point is that the people who can work on the kernel now itself are
- c people who don’t know rust yet
- c people who know rust well
The moment we get rust in there, the people who can work on the kernel reliably as a whole are
- c people who know rust well
That’s a much smaller group than the one above.
Here’s the point: THE SAME ISSUE would arise if it were D, or some kind of compiled python, object-oriented bash static objects, if that existed; or anything. Whatever the other language was, it’d present the same risk.
Rust people: it’s not about you. It’s about splitting the codebase.
I always thought kernel devs were smart people. I’m kind of shocked learning a new language is this big of a barrier to them.
Even “smart people” have resource/time limitations. Learning rust to an extent that will work on that level is not the same as learning C.
The rust people said they’d take ownership of the work for the bindings so C maintainers don’t have to. What’s the issue?
Agreed, especially as the proprietary alternatives are starting to incorporate more and more Rust, even Windows is starting to rewrite their core libraries in Rust.
On top of security though, its going to be important for continuing to bring new maintainers onboard. Less and less people are learning C, especially to a level proficient enough to be a kernel maintainer. As Rust matures even more, C is effectively a legacy language at this point, a C++ won’t be too far behind either, and Linux is going to be hard pressed to find maintainers as the graybeards retire.
The anti Rust bullshit is gonna kill Linux’s growth.
Meh, it’s just internal politics. Whether or not it’s rust makes no difference to the layperson whatsoever. I’m in favour of rust but don’t blow it out of proportion.
it seemed like the innocent(ish) holy wars of the past like emacs vs vi; but it’s taken on a whole new destructive trajectory of its own and the old guard would rather see Linux ossify into irrelevancy rather than letting the next generation take over.
it reminds me of an old quote from a general to the effect of: if 5 americans survive a nuclear war and 4 russian survive; then we’ve won and it was worth it.
either that or it’s like the technological equivalent of the the democratic leadership w disaffected democratic voters leading to defeat in this last election or an elderly driver whose grown children are trying to take away their keys before things get worse; all are refusing to acknowledge the writing on the wall because they think they still got it, but they don’t.
Ossify is up there with moist in my list of favourite words.
Unless those old farts die first
It’s really a bummer seeing how much childish drama is in the Linux dev community.
I am not nearly a good enough dev to contribute to the Linux kernel, but I am working my way towards that point currently at night after my kids are in bed. Be the change and what not.
There is a reason the type of devs who have the talent, passion and time for projects like this are not spending 60hrs/wk at Google.
That’s a good way to take a bad situation and make it better. Good luck! Maybe I’ll join you one day.
Damn, Linus really went out of his way to say:
How about you accept the fact that maybe the problem is you. You think you know better. But the current process works. It has problems, but problems are a fact of life. There is no perfect. However, I will say that the social media brigading just makes me not want to have anything at all to do with your approach. Because if we have issues in the kernel development model, then social media sure as hell isn’t the solution. The same way it sure as hell wasn’t the solution to politics. Technical patches and discussions matter. Social media brigading - no than\k you.
…but still fails to answer the question of “should we continue implementing kernel things in rust”.
Yes I read the whole thread and the lack of replies on his part were kind of infuriating
This news along with the news of WiFi driver maintainer stepping down, feels like there won’t be any new blood in Linux kernel development except for corporate funded developers.
That’s a shame irrespective of the drama. Asahi is surprisingly good. Installation is (relatively) straightforward.
I’ve got it on my primary laptop. I don’t use it frequently because battery life is poor compared to MacOS and I can’t use an external display but it’s an impressive achievement and I’m sure it will only get better. I haven’t used fedora in 20 years but it’s slick and easy and most of it just works. It looks just like my Linux workstation desktop.
It seems a lot of new developers want to do some things differently; old guard devs can either make some compromises, or accept that fewer new devs will want to be part of upstream.
Unsurprising. You don’t have to follow Hector Martin on social media for very long to learn that he’s a petulant, indignant, self-righteous drama queen.
I’m not going to deny that he can act aggressively, but his point is still valid. The anti-Rust sentiments of some maintainers has slowed down the upstreaming of Rust into the kernel. It doesn’t make sense to waste people’s time by letting R4L limp along in its current state.
R4L either needs to be given the go-ahead to get things upstreamed, to the dismay of some Linux maintainers who don’t like Rust, or R4L should be killed and removed from the kernel so we can stop wasting people’s time.
Personally, I think killing R4L would be a major mistake. Android’s Linux fork with Rust support has been a major success for Google and significantly cut down on vulnerabilities. And the drivers for Apple’s M chips has been surprisingly robust given how new they are and for being reverse engineered.
Sounds a lot like Linus Torvalds back in the day, just saying…
Some similarities but the main difference in my eyes is that Linus doesn’t have a permanent victim complex.
What is it that rust is less preferable to?
I’m not too new to linux, but also not too veteran, has it always has this shit drama? There is always some sort of fucking child throwing a tantrum about some shit. Has it always been the case? It’s really getting annoying.
This kind of stuff happens in big companies too, but you don’t see it because it’s not in a public mailing list. One of my teams had a developer who stood on tables to yell until his opinion was accepted, and one time when another developer wouldn’t back down, he threw a chair at them. That angry developer worked there for another 7 years until retirement, while many smart team members around him quit rather than continue dealing with him.
😂. I’d beat the shit out of the mother fucker. I get that he’s a smart developer, but you don’t fucking throw a chair at me, bitch.
It has always been like this.
Man, this is so unfortunate :/
FOSS land is always going to be populated by freaks and geeks. The well socialized devs get jobs at Google. It’s impressive the “system” works as well as it does, IMO. Passion is a big motivator.
There is always some sort of fucking child throwing a tantrum about some shit. Has it always been the case?
Petty much. The big difference this time is that there’s a common enemy (Rust) instead of relatively isolated petty crap.
Well shit
The kernel developers should Come up with a memory safe version of C for developing on the kernel. Kind of like how Git was created.
They kind of already do. The C used by the kernel team isn’t the exact same as what everyone else uses. Mainly because of the tooling they’ve built around it. I can’t remember specifics, but the tooling in place really helps out in that department.
Also, “memory safe C” is already a proposal for the C lang project.
So… Rust?
Rust is already as fast as C and memory safe. The reasons people don’t want it in the kernel basically amount to being a boomer that doesn’t like new things for immaterial reasons. Rust has already proven itself capable in mission-critical applications like drivers.
I wish rust ppl would listen to the maintainers of the 30+ year old c project.
They have decades of experience maintaining and patching contributions made by people who are no longer active and the small request that those contributions be in the language of the project isn’t something to fight against.
It’s really a bummer when skilled developers fall back on stuff like “if shaming on social media doesn’t work, what am I supposed to do?”
Dunno man, when what the dev of 30+ years said was more or less “fuck off”, it seems that advice was in fact heeded
The system works
the small request that those contributions be in the language of the project isn’t something to fight against.
When the contributions not in C are explicitly approved by the project owner, it seems that the 30+ year maintainers shouldn’t try to blockade any progress from actually happening. Working multi-language projects isn’t that much of a nightmare, if code governance and boundaries are well-defined and enforced.
Definitely a case of “everyone sucks here”. The maintainer being a dick and sabotaging R4L without technical justification and Hector putting it on blast.
What sort of advise are they giving? I’m out of the loop
https://lore.kernel.org/lkml/20250108122825.136021-1-abdiel.janulgue@gmail.com/
Here’s the whole thread if you wanna read for yourself.
My take away is that rust people are generally fine and try to abide by the norms of the kernel development process but Martin acts like a jerk and it would be okay if he didn’t come back.
See the comment far, far down in the thread implying that he’s somehow a more serious commenter or developer because he’s funded by donations as opposed to a company.
The holy and sage advice of the dino developers is to not do Rust. You know, not do a thing that Saint Linus himself authorized. Except Saint Linus is apparently not willing to walk the walk in this particular case.
We’re overdue for a Linux fork anyway.
Not a fork of course but there is Redox
Maybe im wrong but with ARM being the new cpu architecture, rust being new, wayland coming into maturity, etc, it appears as though there might end up being a more x86/x11/C focused legacy kernel and a forked ARM/Wayland/Rust focused new generation one.
Which honestly im fine with. And kinda makes sense. Especially if we get into an era where stuff like x86 starts to get phased out entirely. Which i think we will in the next decade or so. Remains to be seen if thatll happen but i think theres a decent chance at this point.
RISC-V is the “new” CPU architecture
Wayland
Is there anything in the kernel that makes it compatible with X11 or Wayland over the other? I know that there’s a graphic driver discussion in the background, but still.
No. The kernel does not care about X11 vs Wayland. Or rather, both X11 and Wayland use KMS ( Kernel Mode Setting ) and DRM ( Direct Rendering ) these days. That is, both X11 and Wayland call on the same kernel features.
Im not a dev so idk about that tbh. But i know atleast that programs have issues with it. Its pretty good these days but some stuff still has to use Xwayland as a compatibility layer.
The kernel is unrelated to the choice of display manager.
The kernel is unrelated to the choice of display manager.
Maybe im wrong
Correct.
the small request that those contributions be in the language of the project isn’t something to fight against.
When the contributions not in C are explicitly approved by the project owner, it seems that the 30+ year maintainers shouldn’t try to blockade any progress from actually happening. Working multi-language projects isn’t that much of a nightmare, if code governance and boundaries are well-defined and enforced.
Definitely a case of “everyone sucks here”. The maintainer being a dick and sabotaging R4L without technical justification and Hector putting it on blast.