Hacker News new | ask | show | jobs
by achiang 2839 days ago
> "we do not break userland, period"

That quote is more accurately read as, "we change things all the time, including user-visible features, and very occasionally, even in breaking ways -- but only because it's impossible to know every single consumer of every single quirk in behavior, and as soon as we learn that one of our changes did in fact break userspace, then we'll change it back".

It's how the kernel community attempts to continue cleaning up decades of tech debt while maintaining the contract with userspace. Honestly, sometimes you just don't know until you try.

It's an inefficient process, but it does sound like the right outcome occurred in this case.

signed, a former kernel developer

2 comments

So the quote should rather read "don't break the actual userland out there" instead of "any conceivable userspace"?
No offense but this seems like blinding fanaticism for a man who is, admitedly right 99.99999% of the other time, not perfect.

In this case however you are arguing that when he said, "we don't break userland, period" he instead meant the opposite? There was no asterix on his statement saying to read the fine print.

What he said was (AFAICT, the exact "we don't break userland, period" wording only appears in this HN thread. Let's go with the rant that I believe the GP was referencing):

The "first rule of kernel maintenance":

    If a change results in user programs breaking, it's a bug in the
    kernel. We never EVER blame the user programs.
Then later, to drive home the point:

    WE DO NOT BREAK USERSPACE!
So, sure, "there was no asterix on his statement saying to read the fine print"--he did better than an asterisk and fine print, he made it part of the main content.
By "userland" Linus meant actual users of the Linux kernel, not all possible theoretical users of the Linux kernel. For example, if there is a program that just uses quirks of implementation to fingerprint the kernel version, it will get broken all the time and will need updating every kernel release, but as long as people's actual servers, phones, desktops and IoT devices keep working without changes, that's not a breaking change.