cross-posted from: https://lemmy.world/post/25857381

Hellwig is the maintainer of the DMA subsystem. Hellwig previously blocked rust bindings for DMA code, which in part resulted in Hector Martin from stepping down as a kernel maintainer and eventually Asahi Linux as a whole.

191 points

Linus ain’t wrong tho

permalink
report
reply
117 points
*

He is totally correct and it is great to see him finally step in to settle this drama. Hopefully it will reduce the level of noise going forward.

permalink
report
parent
reply
32 points

I really appreciated him saying ‘I don’t want yes men, I need people to call me on my bullshit, but I’m calling you out on yours’.

I read through the next few replies, and it seems like the anti-rust maintainer just has an axe to grind and can’t stand people working in a language they don’t understand.

permalink
report
parent
reply
6 points

He understands Rust and claims to like it. He simply disagrees with the decision to have a mixed language kernel and is trying to unilaterally stop it from happening.

permalink
report
parent
reply
134 points

Gee Linus you think you could’ve fucking said something before it got to this point?

permalink
report
reply
94 points

Sometimes you gotta let people try to resolve things on their own first.

permalink
report
parent
reply
27 points

Yes but that clearly was not happening. And now they lost a contributor for no reason.

permalink
report
parent
reply
17 points

I’d venture to guess this isn’t the first time Linus has had to deal with devs who have ideological disagreements and one quits. It’s not also his job to keep that from happening. What he said is true, there’s a process they have for maintaining Linux, and it doesn’t involve flame wars on social media…it involves flame wars over email 😅.

But seriously, if a devs are going to get upset at each other and rage quit, it’s not Linus’ job to play mediator.

permalink
report
parent
reply
-9 points

Marcan was probably fed up and was looking for a reason leave. If that’s not the case, then it’s silly for him to just quit mid-discussion, before it’s even become apparent what the reaction to Cristoph Hellwig’s behavior would be and whether his reply would even be taken into account during the review process.

permalink
report
parent
reply
18 points

Yah took him long enough and should have never got to this point. Now we have lost a contributer.

permalink
report
parent
reply
6 points

We’ve lost two this week

permalink
report
parent
reply
15 points

Internal politics is a bitch 😩

permalink
report
parent
reply
-4 points

What do you mean? He did step in, understood absolutely no context of the issue, told everyone to shut up, and then left without any real input. Fucking joke

permalink
report
parent
reply
-6 points

Sometimes when you’re celebrating someone’s judgement, don’t shit on their judgement.

permalink
report
parent
reply
75 points

People really afraid of Rust out here.

permalink
report
reply
21 points

It literally wasn’t about Rust specifically though. Christoph literally said it was about anything that was not C, including assembly, C++, brainfuck, or whatever, entering the kernel. Christoph likes Rust. Christoph (rightfully) does not like mixed language codebases for projects as large and important as Linux

permalink
report
parent
reply
24 points

(rightfully) does not like mixed language codebases for projects as large and important as Linux

You make it sound like it’s a matter of taste rather than a technical one (and I suspect it actually might be just about taste in the end)

permalink
report
parent
reply
3 points

Its a little of column A, little of column B type situation.

Yes, some of it is his taste, but that taste is coming from a technical place. Primarily long term maintainability of the project.

I realize what Linus came out and said outlines that no code is entering Christoph’s part of the project, but Christoph is playing goalie and needs to make sure that never happens in order to keep everything working correctly for a very long time.

Maybe the DMA module gets rewritten completely in Rust one day, but until then, rust modules interfacing with a C-only component seems to be the best for long-term maintenance.

permalink
report
parent
reply
16 points

Not his call, as we can see now

permalink
report
parent
reply
8 points

But isn’t this in specific just about bindings?

permalink
report
parent
reply
1 point

It appears so now, yes, but when the drama initially came out it sounded like they were asking for a tiny amount of rust in the kernel to make it work, or if not rust, changing the C to tailor it specifically to the rust. Which I think is a reasonable thing to be concerned about from a maintainability perspective long-term, especially if the rust developers decide to leave randomly (Hector’s abrupt quitting over this very issue is a prime example).

permalink
report
parent
reply
1 point

Yea but if someone uses those bindings then you can’t just not support it.

By the time this code gets into a large scale production system it will be 2029. That is when the bugs will come in if someone leveraged the Rust bindings.

You can ask the big company users at that time to contribute their fixes upstream, but if they get resistance because they have relatively junior Rust devs trying to push up changes that only a handful of maintainers understand, the company will just stop upstreaming their changes.

The primary concern that a major open source project like this will have is that the major contributors will decide that interacting with it is more trouble than it is worth. That is how open source projects move to being passion projects and then die when the passion dies.

permalink
report
parent
reply
2 points

Rust is straight up better than C. It’s safer and less prone to errors.

It’s not feasible to convert the entire Linux codebase at once. So your options are to either have a mixed codebase, or stick with effectively Cobol into 2020.

permalink
report
parent
reply
-1 points
*

Rust is great, but you are not thinking from a long-term project perspective. Rust is safer, but Linux needs to be maintainable or it dies.

Based on what you’re saying, the only way its going to reasonably be converted to Rust is if someone forks Linux and matches all the changes they’re making in C as they happen but converts it all to Rust. Once its all converted and maintainability has been proven, a merge request would need to be made.

permalink
report
parent
reply
8 points

I can relate. I can emphasize with someone who’s learned every nuance of a language, and after 30-40 years suddenly these kids come in with their strange hieroglyphics slowly replacing everything you’ve worked on.

permalink
report
parent
reply
22 points

Except that’s literally the reality with computers. Everything evolves and things go obsolete. I’m sure the COBOL and Fortran programmers were pissed when the kids started using C too.

permalink
report
parent
reply
44 points

A lot of people commenting on this seem to have gaps in their knowledge of what happened. I highly recommend reading the linked email, as it is both short and has valuable context.

permalink
report
reply
11 points
*

Is there an easy way of seeing the preceding emails in a threaded format?

I read some posted yesterday that were related but it’s damn confusing whether the conversation has been active in between?

https://feddit.uk/comment/15366243

permalink
report
parent
reply
6 points

On the bottom of the page you have a tree representation of replies, with clickable links to each message. The layout might not work well on mobile with limited screen width though, but you can just click through them.

permalink
report
parent
reply
6 points

A lot of people commenting on this seem to have gaps in their knowledge of what happened

We’re in a Linus-email-🍿-thread, so that kind of goes without saying doesn’t it? 😂

permalink
report
parent
reply
11 points

Anyone got more context on this I can read through? I haven’t kept up with this other than Linus’s notorious attitude.

permalink
report
reply
15 points
*

Someone submitted some code to the Linux kernel. One of the maintainers repeatedly denied it for no reason other than it contained code that is not C. A different contributor became very angry, lashed out publicly on social media, accused the maintainer of sabotaging R4L for no technical reason, then removed themselves from the project. They were also the founder of Asahi Linux and resigned from that as well.

It’s nothing to do with Rust, specifically.

permalink
report
parent
reply
14 points

Marcan is not the submitter. Unless I’ve missed something, the submitter is still working on the patch.

permalink
report
parent
reply
5 points
*

Yes you’re correct. I’ll update that.

permalink
report
parent
reply
-12 points
*

Yeah that is a very opinionated description. Up until “the submitter became very angry, lashed out” that sounds about right, but from there on, your bias shows. Which is fine, and human, but probably worth mentioning this to others reading this. It’s not exactly an objective view, whatever that’s worth.

permalink
report
parent
reply
11 points

The part where I exclusively stated facts is opinionated?

permalink
report
parent
reply
13 points

It’s mostly in that linked thread. The high level of it is a guy wanted to push Rust code. The maintainer said no it would mean the API for this would be tied to Rust and that is unacceptable. It cause another big contributer to throw a fit and Linus said he can’t be everyone’s mom. They kept fighting for like 2 months apparently? Now Linus stepped in, looked at the code and said the Rust code clearly doesn’t impact the API in the way the maintainer was saying it just breaks itself if the maintainers allow changes to the API.

I kinda dislike the idea that it’s cool for people to contribute code that is so easy to break. I have a feeling after it happens a few times they are going to claim that it is being done intentionally and that the slap fights will carry on.

permalink
report
parent
reply
39 points

I do not know why you say it is easy to break.

The Rust team are maintaining their side. I do not expect it to break. And the C code that the Rust code depends on is used by lots of other code. It should be a stable interface. Changing the C code just to break the Rust code would break a lot of C code too and upset a lot of folks.

And the who point is to create a more idiomatic interface on the Rust side. So, even if the c interface does change, it may only be a small amount of Rust code that needs to change in response.

permalink
report
parent
reply
-2 points
*

I can understand Hellwig’s fear, though.

From what I gather as a bystander, it’s apparently common that a refactoring in your module that breaks its API will involve fixing all the call-sites to keep the effort on the person responsible for the change. Now the Rust maintainers say “it’s fine; if it breaks, we’ll deal with it” which is theoretically takes away the cross-language issue for the C-maintainer. Practically I can very well see, that this will still cause friction in the future.

Let’s say such a change happens and at that time there’s a bit of time pressure and the capacity on the rust maintainers is thing for whatever reasons. Will they still happily swallow that change or will they start to discuss if it’s really necessary to do that change? And suddenly, the C-maintainer has a political discussion on top of the technical issue they wanted to solve.

As someone who just wants to get shit done, I would definitely have that fear.

(That doesn’t mean it’s still a bullet not worth swallowing. The change overall can still be worth the friction. I am just saying that I think it’s not totally unwarranted that a maintainer feels affected by this even though current pledges from the other parties promise otherwise; this stance can change or at least be challenged over and over.)

permalink
report
parent
reply
-3 points

Yea and if the Rust developers don’t show up to the show? Rust is a baby and it has done so little on its own. This isn’t a neat little side project, this is code that a major vendor will want to take up and will demand be maintained. There are implications on a global scale.

permalink
report
parent
reply
8 points

Thanks for the summary, I did a bit of reading myself. It’s interesting the dynamics at play here - you’ve got a long, long term contributor in Hellwig who’s been a maintainer since before Rust even existed, then you’ve got quite a few people championing Rust being introduced into the kernel. I feel like Hellwig’s concerns must have more to do with the long term sustainability of the Rust code - like will there be enough Rust developers 10, 20, 30 years down the line. I mean, even if it stays maintained, having multiple languages in a codebase increases complexity and makes it harder to contribute. Then you have Filho resigning from the Rust for Linux project, which in itself kind of calls into question the long term sustainability of the project. It seems like Rust would have quite a few benefits for the Linux kernel, but the question remains of if it’s still gonna be any good in a few decades. This is juicy stuff!

permalink
report
parent
reply

Linux

!linux@lemmy.ml

Create post

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

  • Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
  • No misinformation
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

Community stats

  • 7.4K

    Monthly active users

  • 5K

    Posts

  • 77K

    Comments