Hacker News new | ask | show | jobs
by GuB-42 1876 days ago
This is a problem inherent to Linux, that is, you need maintainers, with APIs changing regularly.

Windows is a lot more stable in that regard, and mainframes are not even on the same league.

It is a choice made by the Linux community, it goes very well with its open source nature and it has advantage in terms of performance and ease of implementing new features, but the drawback is that you can't keep compatibility without active maintenance.

1 comments

*inherent to the GNU/whatever userland.

Linux-the-kernel has not only a stable API, but also a stable ABI, and you can run 20 years old software compiled against that ABI just fine.

The problem is that the userland doesn't give a fuck and breaks itself every other day just for the lulz, starting with the glibc, which doesn't even allow fully static compilation.

So you'll have to use 20 years old versions of everything (but the kernel), which makes running one piece of old software nonviable… but that's hardly the kernel's fault.

I would rather say, the kernel-userland interface is stable. I think it is one of the strongest rule regarding the Linux kernel: don't break userland.

In the kernel itself, however, drivers have to be constantly maintained, which is a PITA if your driver is not in the mainline, but very nice if it is, especially if there is someone to do the job of maintaining it for you.

Again, choices are made, you can't have everything. The ones that led to Linux are good, we know that with the power of hindsight, seeing how successful it has became, not because everything about it is positive (it can't).