4 ms·
I mean this semi-seriously but doesn't the hypothetical example "CPU on fire" vs "CPU in flames" violate We Do Not Break User Space? As someone who got a useful
by CalChris 5y ago
I mean this semi-seriously but doesn't the hypothetical example "CPU on fire" vs "CPU in flames" violate We Do Not Break User Space? As someone who got a useful (IMHO) one-line patch with less change dinged for WDNBUS, I would say yes.
- dcminter 5y agoAccording to the article "those messages have never really been considered to be a part of the kernel's ABI"
- mjw1007 5y agoRight, but the We Do Not Break User Space rule has often been explained (somewhat emphatically on occasion) as depending on whether anyone's code actually gets broken, not on whether the thing they were relying on was intended to be, or advertised as, a stable interface.
- fctorial 5y agoI think WDNBUS is only respected for the syscall api.
- dcminter 5y agoWhat about /proc ?
- touisteur 5y ago/proc has surely killed some user apps. If you were expected to see a fixed number of lines, a fixed number of columns or the fields to mean the same thing, you're in for suffering. At least I know of meminfo changes, stuff in /proc/net... But to be honest, so have ifconfig, hostname, df... At least in procfs they add things (columns, lines) so apart from meminfo I don't know of changing the meaning of fields.
- mjw1007 5y agoHere's a relatively mild rant where the breaking change in question was in /proc/cpuinfo: «Really. Shut up. The whole "no regressions" thing is very much about the fact that we don't waste users time.» https://linux.kernel.narkive.com/7hMPh8zX/patch-revert-9fc2105aeaaf56b0cf75296a84702d0f9e64437b-to-fix-pyaudio-and-probably-more#post12 https://linux.kernel.narkive.com/7hMPh8zX/patch-revert-9fc21... Of course in an ideal world the extent of the intended promise would be clearly written down in some obvious place. But we don't live in an ideal world.
- dcminter 5y agoI found this statement from Linus in that thread; "It's not that the kernel ABI (with all the system calls, all the /proc files, all the ioctl's, etc) is set in stone and "sacred". Absolutely anything can be changed, wildly. But if it turns out that applications (or hardware) that people use end up breaking noticeably, then that is a regression."
- tinus_hn 5y agoLinus has been pretty strict in not unnecessarily breaking userspace even if something is not strictly ‘part of the ABI’. It’s a judgement call though.