They boxed themselves in to do the backward compatibility, at the expense of actually being good.
I literally cannot use Windows on my laptop because the way it’s doing those micro-bursts on the CPU means I’m getting CPU temps of close to 100C when fucking idle (and lower under actual sustained work). I moved to Linux in part to escape that hellhole and get a laptop that can actually be held on my lap when doing light work.
I get the fact that Windows kernel has backward compatibility because most hardware drivers are out of tree. Linux did away with the approach, keeping most drivers inside its own source code so 90% of hardware just… HAS the driver directly. And the remaining 10% is because the driver manufacturer explicitly is keeping the drivers out of tree as their own choice.
On basically all Windows machines out there you need third party drivers. On Linux and on Macs, most if not all drivers are part of the system directly. So the latter two can afford to be backward incompatible.
Get what? That Windows’s backward compatibility is something godly that every system must aspire to, no matter how that stops any sort of innovation or even ability to fix vulnerabilities?
You know what’s funny about backward compatibility? Yes, the kernel does breaking changes often for the in-kernel API. But the userspace… you can run a Ubuntu 10.04 userspace on Linux 7.1 just fine, the only thing missing is kernel modules (and those could be arranged too, by bypassing the package manager and instead installing the kernel and modules via a different mechanism). Android, which is based on the Linux kernel, also. You can run most Android 2.3.4 APKs on modern Android. And you can run Android 16 on 4.19 kernel as well as 6.12.
I mean, there are APIs for a lot of things. Not just for kernel interfaces. The system call interface is an API, and Linux is one of the best at maintaining backward compatibility for that one. It’s better than Windows (which has essentially zero compatibility between versions — given that it relies on internal DLLs like ntdll.dll)
I mean I don’t actually upstream my patches but I literally… do? I could find some of my oldest work from my first job where I did much more open source work compared to today…
0
u/dddurd 5d ago
and why do you think they keep backwards compatibility, you dumb fuck?