Hector Martin resigns from Asahi Linux

Cmaier

Site Master
Staff Member
Site Donor
Joined
Sep 26, 2021
Posts
6,561
Main Camera
Sony
Sounds like it’s a pretty toxic community over there. Having met Linus once (at a job interview at transmeta), I’m not surprised.
They have a long standing problem with maintainers going on crazy power trips and shutting down features/projects they don't like by refusing to accept any code, all out in the open. Some of the stuff I've seen in there would have resulted in immediate actions from above in other communities.

I don't know the Linux kernel community enough to assess how widespread it is, but if it's as common as it looks from the outside, either they undergo a significant cultural change or the day there's a competing alternative to Linux in the sectors it dominates people are going to jump ship.
 
They have a long standing problem with maintainers going on crazy power trips and shutting down features/projects they don't like by refusing to accept any code, all out in the open. Some of the stuff I've seen in there would have resulted in immediate actions from above in other communities.

I don't know the Linux kernel community enough to assess how widespread it is, but if it's as common as it looks from the outside, either they undergo a significant cultural change or the day there's a competing alternative to Linux in the sectors it dominates people are going to jump ship.
Yeah apparently it got bad enough that even Linus finally (maybe a little late) put his foot down on some of the behavior:


But I agree it seems like a major cultural problem with kernel development. And I’m not sure if the above is anywhere near enough to change what’s going on. Hector isn’t the only person to quit Linux (kernel) development recently.
 
They have a long standing problem with maintainers going on crazy power trips and shutting down features/projects they don't like by refusing to accept any code, all out in the open.

It kinda makes you wish there was a functional Hurd-like alternative to Linux. Not actual Hurd, which is x86-only at this point, but a comparable μkOS protocol, fully modular, built for AArch64 on top of seL4. It seems like it should be feasible.
 
Yeah apparently it got bad enough that even Linus finally (maybe a little late) put his foot down on some of the behavior:

Re: Rust kernel policy - Linus Torvalds
Too little, too late. Hector mentions a Rust for Linux dev who also quit due to disagreements with the same maintainer, and that maintainer mentions this video as a reason. I remember watching it last year when it happened and the whole thing is bananas. The entire interaction in the video is a veiled threat of purposely breaking the Rust side all the time to make it unmaintainable, and no one cares. It's beyond childish.

And from higher up, the way it's being handled is absurd to me. If they believe Rust is the future, and going to be a key part of the Linux kernel, it's ridiculous to keep up with the "Oh no one will force you to learn Rust. You can just keep writing C code and breaking any Rust code whenever". It's just a different programming language FFS. The stance should be "yes you WILL need to learn Rust to keep maintaining this part of the kernel". The very idea that parts of the same subsystem in a different programming language are automatically "not my problem" needs to be rooted out.

IDK if this is a cultural thing or something. I started as an iOS app developer a few years after the Objective-C to Swift transition started. I mostly wrote Swift code, but occasionally I had to dive into the ObjC code to fix bugs or make small changes to adapt the Swift changes. The responsibilities of each developer were defined by the team/role we were in, not by the programming language the code was written in. That's just absurd. The entire migration would have been a disaster had we just refused to fix anything beyond the language we were most comfortable with.
 
Too little, too late. Hector mentions a Rust for Linux dev who also quit due to disagreements with the same maintainer, and that maintainer mentions this video as a reason. I remember watching it last year when it happened and the whole thing is bananas. The entire interaction in the video is a veiled threat of purposely breaking the Rust side all the time to make it unmaintainable, and no one cares. It's beyond childish.
Interesting to note that the Linux dev community behave much the same as the Linux user community.

I always preferred BSD…or anything other than Linux.
 
Too little, too late. Hector mentions a Rust for Linux dev who also quit due to disagreements with the same maintainer, and that maintainer mentions this video as a reason. I remember watching it last year when it happened and the whole thing is bananas. The entire interaction in the video is a veiled threat of purposely breaking the Rust side all the time to make it unmaintainable, and no one cares. It's beyond childish.

If you work for a smaller company, relish that you don't have to deal with this sort of thing on the regular. I find that larger companies also tend to start picking up behaviors like this as they grow, and the politics can get rather messy quickly because there's a bunch of these sorts of guys in the mix, both in management and as technical leadership (architects in my neck of the woods).

And from higher up, the way it's being handled is absurd to me. If they believe Rust is the future, and going to be a key part of the Linux kernel, it's ridiculous to keep up with the "Oh no one will force you to learn Rust. You can just keep writing C code and breaking any Rust code whenever". It's just a different programming language FFS. The stance should be "yes you WILL need to learn Rust to keep maintaining this part of the kernel". The very idea that parts of the same subsystem in a different programming language are automatically "not my problem" needs to be rooted out.

How I read the "No one will force you to learn Rust" stance was to try to win over maintainers by having the Rust 4 Linux maintainers take on the burden of the Rust bindings/etc early on. When a project is run as a series of fiefdoms, sometimes you have to start by appeasing the local feudal lords like the guy in the video.

At some point, the core maintainers will have to take on Rust, I agree. But the thinking was to try to get Rust rolling by not trying to bootstrap a bunch of kernel maintainers on Rust before anything could be merged which would be unbearably slow and mean that they aren't learning much of anything about how to make Rust work well in the kernel while that happens.

IDK if this is a cultural thing or something. I started as an iOS app developer a few years after the Objective-C to Swift transition started. I mostly wrote Swift code, but occasionally I had to dive into the ObjC code to fix bugs or make small changes to adapt the Swift changes. The responsibilities of each developer were defined by the team/role we were in, not by the programming language the code was written in. That's just absurd. The entire migration would have been a disaster had we just refused to fix anything beyond the language we were most comfortable with.

This is generally been my experience as well. Back when I started, it was maintaining .NET 2 code, scripts, C/C++ interactions, etc. But there was an understanding that there's definitely nuances that take you time to ramp up on. Rust/Swift/Obj-C all have a bunch of things that C simply doesn't. I wouldn't expect someone coming from C to take up Rust all that quickly, because there are a lot of semantical differences, not just syntactically. And this means the knowledge you've gained on heap vs stack, data locality, etc are going to be different in subtle ways that take a bit to sink in, but are ultimately very important when writing low-level code like this. Doing that while also managing all code flowing into your component is a burden, and I can understand a bunch of crotchety types getting upset at the idea that they won't know what's in a PR as well as they do today.

As Swift is derived in part from Obj-C, and the lessons Apple had learned in the decade or so using it on the Mac and iOS, there's much more semantic overlap. The memory management model in particular is very similar, with a few key differences that were honestly things that needed to change from Obj-C.
 
Interesting to note that the Linux dev community behave much the same as the Linux user community.

I always preferred BSD…or anything other than Linux.
One of the beauties of MacOS / POSX is that it is Unix not Linux.

I do dabble a little in Linux but these days just in PopOS! (probably because it is backed by an OEM who is invested in keeping it reasonably performant and stable).
 
One of the beauties of MacOS / POSX is that it is Unix not Linux.

Which is a kinda weird distinction to draw, in my mind. Declaring something "is a Unix" in the case of macOS is more a trademarking exercise. macOS breaks POSIX compliance in some interesting ways that make code non-portable between FreeBSD and macOS, despite Darwin being FreeBSD derived. So in some ways, Linux is more POSIX-compliant than macOS, and more compatible with "official" Unix derived OSes. In reality, these are all Unix-like platforms with different development approaches and management models.

That said, there's some interesting things that Linus did say that I fundamentally agree with, but he is definitely clarifying this rather late in the argument after influential folks have thrown in the towel:

You can't have it both ways. You can't say "I want to have nothing to
do with Rust", and then in the very next sentence say "And that means
that the Rust code that I will ignore cannot use the C interfaces I
maintain".

Maintainers who *want* to be involved in the Rust side can be involved
in it, and by being involved with it, they will have some say in what
the Rust bindings look like. They basically become the maintainers of
the Rust interfaces too.

But maintainers who are taking the "I don't want to deal with Rust"
option also then basically will obviously not have to bother with the
Rust bindings - but as a result they also won't have any say on what
goes on on the Rust side.

And yes, this is the right balance to strike when trying this sort of experiment, IMO. It also makes it clear that as a maintainer, someone can be as involved as they want with the Rust effort, but if they don't want to, they can't necessarily impede it by being obstructionist as well.
 
Which is a kinda weird distinction to draw, in my mind. Declaring something "is a Unix" in the case of macOS is more a trademarking exercise. macOS breaks POSIX compliance in some interesting ways that make code non-portable between FreeBSD and macOS, despite Darwin being FreeBSD derived. So in some ways, Linux is more POSIX-compliant than macOS, and more compatible with "official" Unix derived OSes. In reality, these are all Unix-like platforms with different development approaches and management models.
Ootb sure, but you can make macOS posix compliant as far as Unix 03 at least.
 
Ootb sure, but you can make macOS posix compliant as far as Unix 03 at least.

That's not really the point I'm trying to make here? The thing I'm trying to get at is that a "Unix" doesn't confer any specific value that we care about in this context, as its still this malleable thing that doesn't actually ensure compatibility across platforms in a way that makes Linux "inferior". Especially when we're discussing engineering cultures.

And yes, Apple can get away with not supporting unnamed semaphores and be UNIX 03 compliant, but it's effectively incompatible with them to the point that someone has to be aware of the incompatibility to write portable POSIX code. No worse than when I'm having to write POSIX code for Linux and BSD.
 
That's not really the point I'm trying to make here? The thing I'm trying to get at is that a "Unix" doesn't confer any specific value that we care about in this context, as its still this malleable thing that doesn't actually ensure compatibility across platforms in a way that makes Linux "inferior". Especially when we're discussing engineering cultures.
Probably not these days given Linux dominance, but there was a time, many years ago when there was Solaris, Irix, Unixware, HP-UX etc. It certainly seemed to make a difference then, at least according to to people I know who worked in govt agencies and large corporations. Linux differences were noticeable to the point where it was definitely a pain to write for. Nowadays people think Linux is the standard, and in many ways they are correct.
 
Probably not these days given Linux dominance, but there was a time, many years ago when there was Solaris, Irix, Unixware, HP-UX etc. It certainly seemed to make a difference then, at least according to to people I know who worked in govt agencies and large corporations. Linux differences were noticeable to the point where it was definitely a pain to write for. Nowadays people think Linux is the standard, and in many ways they are correct.

At Exponential Technology we designed cpus with netbsd. At Sun we designed using Solaris. At AMD we designed using Solaris and Linux (I had one of each on my desk). Before all that, at RPI I used mostly Solaris, with a bit of VMS.

When at AMD, you wanted to use Solaris if you wanted to be sure your job would finish. And you used Linux if you wanted your job to be fast. (This had a lot more to do with the speed of the processors than the efficiency of the OS). That was s long time ago, of course. But in those days, having used netBSD, Solaris, and linux all within the course of a single year, netBSD was rock solid, and linux was…not.
 
At Exponential Technology we designed cpus with netbsd. At Sun we designed using Solaris. At AMD we designed using Solaris and Linux (I had one of each on my desk). Before all that, at RPI I used mostly Solaris, with a bit of VMS.

When at AMD, you wanted to use Solaris if you wanted to be sure your job would finish. And you used Linux if you wanted your job to be fast. (This had a lot more to do with the speed of the processors than the efficiency of the OS). That was s long time ago, of course. But in those days, having used netBSD, Solaris, and linux all within the course of a single year, netBSD was rock solid, and linux was…not.
Interesting stuff thanks. Netbsd has always been really interesting. Also loved Solaris.
 
At Exponential Technology we designed cpus with netbsd. At Sun we designed using Solaris. At AMD we designed using Solaris and Linux (I had one of each on my desk). Before all that, at RPI I used mostly Solaris, with a bit of VMS.

When at AMD, you wanted to use Solaris if you wanted to be sure your job would finish. And you used Linux if you wanted your job to be fast. (This had a lot more to do with the speed of the processors than the efficiency of the OS). That was s long time ago, of course. But in those days, having used netBSD, Solaris, and linux all within the course of a single year, netBSD was rock solid, and linux was…not.
And today openBSD if you want the most secure platform.
 
Interesting stuff thanks. Netbsd has always been really interesting. Also loved Solaris.
Loved, loved, loved, and miss the days of Solaris. I go as far back as SunOS days, and made my career as a System Admin on that OS. Had to become a Linux Engineer in the early 2000s when Sun was in its decline.

Loved it so much my first tattoo is the SUN logo in a band of diamonds on my upper arm. "A Nerd Stamp" if you must call it that.
 
Last edited:
At Exponential Technology we designed cpus with netbsd. At Sun we designed using Solaris. At AMD we designed using Solaris and Linux (I had one of each on my desk). Before all that, at RPI I used mostly Solaris, with a bit of VMS.

When at AMD, you wanted to use Solaris if you wanted to be sure your job would finish. And you used Linux if you wanted your job to be fast. (This had a lot more to do with the speed of the processors than the efficiency of the OS). That was s long time ago, of course. But in those days, having used netBSD, Solaris, and linux all within the course of a single year, netBSD was rock solid, and linux was…not.
My second tech job our production servers were all Sun, our sandbox was FreeBSD. My last two jobs are a mix of Linux and Windows servers, although we were using WindowsCE on embedded devices.
 
Probably not these days given Linux dominance, but there was a time, many years ago when there was Solaris, Irix, Unixware, HP-UX etc. It certainly seemed to make a difference then, at least according to to people I know who worked in govt agencies and large corporations. Linux differences were noticeable to the point where it was definitely a pain to write for. Nowadays people think Linux is the standard, and in many ways they are correct.
To be fair, I think Linux Sys V APIs are still rather wonky, as they've focused more on the newer POSIX pieces. But it certainly got some momentum behind it over the years and I'd say it's evolved noticeably since the late 90s and early 2000s when I was running Yellow Dog on an 8600. .

although we were using WindowsCE on embedded devices.
Oh hey. Something I actually worked on. :P
 
Back
Top