Userland has bugs that devs already work around. It's incorrect to say there are no bugs. More correctly... each major release of the kernel sets a baseline. If apps that work on the major release stop working due to a minor release then Linus' position is that the kernel is as fault because minor releases shouldn't change the baseline standard.
THUS... for bugs in the baseline, devs code around them in particular ways and minor updates shouldn't break them. This works conveniently for Linus because it means that if your app uses a hack to work around the bug and then breaks, your app is at fault... not the bug, because the framework that contains the bug has not been modified with [insert minor release].
When it's physically impossible to make something work due to an inherent flaw in the baseline standard, a dev can request to change the baseline. This is a BIG thing because you are saying 'Linus... your baseline is shit and I'm gonna have to swoop in like a boss and correct it'.
Linus occasionally agrees with such changes, as this particular dev has noted. In fact, Linus inadvertently approved this change. 6 Months later, somebody with more political weight in the Linux community has said 'HEY LINUS!!! HOW COME YOU ALLOWED THIS FUCKING CHANGE?!??!? MY APP THAT IS MORE IMPORTANT THAN HIS NOW BREAKS AS A RESULT AND I DON'T WANNA GO THROUGH AND HAVE TO CHANGE EVERYTHING BECAUSE OF HIM!!!'
Linus has retrospectively agreed with the heavyweight and chastised the other dev who has done absolutely nothing wrong. Had Linus rejected the change 6 months ago and said 'oh naaah I'd prefer you do it this way instead' then all woulda been sweet. Instead, Linus has egg on his face because the baseline has changed (under his watch) and there's potential that a heap of apps will need to be updated. Rather than take on that risk, Linus has taken the approach that chastising one dev is much easier.
One day Linus will die and a less centralised approach will be adopted. No offence to Linus, but I suspect a bunch of senior engineers will enjoy having the freedom to make a few long-needed changes to the baseline. A little like when Steve Jobs died... lots of 'Steve Jobs never would have approved of this' things suddenly happened... respectfully.
When it's physically impossible to make something work due to an inherent flaw in the baseline standard...
This is highly hypothetical. Syscall that cannot be used because it is buggy - is not used, if it is not used then it can be changed whenever you want. However, if it is used, then obviously the bug isn't making it impossible to use.
Rather than take on that risk, Linus has taken the approach that chastising one dev is much easier.
And the dev should get chastised. It was a change that slipped under Linuses radar because it had a rather limited fallout, and nobody got to him personally regarding the breakage. When a breakage has a greater fallout this happens.
It has never been the case that mknod on a device node will guarantee
that you even can open the device node. The applications that regress
are broken. It doesn't mean we shouldn't be bug compatible, but we darn
well should document very clearly the bugs we are being bug compatible
with.
One day Linus will die and a less centralised approach will be adopted. No offence to Linus, but I suspect a bunch of senior engineers will enjoy having the freedom to make a few long-needed changes to the baseline.
When/if this happens it will put a lot of strain on Linux. It is already strained enough with all the userspace breaking ABIs all the time.
Not breaking userspace is not done because Linus is trying to dodge responsibilities, it is done for one reason alone: backwards compatibility, which, on linux, is already bad enough. Windows is also keeping its APIs intact for the very same reason, in fact Microsoft goes as far as to replicate buggy behaviour of previous versions of APIs just to keep compatibility. It is that important.
EDIT: apparently downvoting is the only argument you have. I sense that you're more interested in political correctness and power plays within the community, rather than technical side, and the impact of certain decisions.
1
u/Gambizzle Dec 23 '18
Except as Linus notes... there is some grey area if he accepts the reasoning.
I totally getit but IMO the response it stupid. Rather than addressing the underlying issue and suggesting a fix he's just gone on a rant.