4 ms·
Yes and no. The Kernel ABI is stable. Userspace is somewhat of a mess, ABI-wise. But most source code is available, so in most cases, you just need to recompile
by MayeulC 6y ago
Yes and no. The Kernel ABI is stable. Userspace is somewhat of a mess, ABI-wise. But most source code is available, so in most cases, you just need to recompile software to have it run, since APIs are more stable than ABIs.
Now that I'm thinking about it, I wonder if, given proprietary (no source) software A, you couldn't recompile every open-source dependency of A from their sources around A's release time, and get it running. Sticking to open source software as much as you can tends to be a winning strategy in the long term.
The other day I linked the sdl12-compat project, that allows programs such as UT2004 to make use of modern Linux desktop features. Sure, the original sdl 1.2 might not feel at home on a modern Linux desktop (icculus'demonstration[1] showed it was not much better on mac). But as long as the foundations are open, they can be improved upon.
Windows tend to fare better with binary compatibility. But old software feels more and more alien on recent windows versions, and sometimes just stops working, and there's very little you can do about it then, in most cases :/
[1]https://www.patreon.com/posts/project-sdl12-25321792 https://www.patreon.com/posts/project-sdl12-25321792
- AnIdiotOnTheNet 6y agoI will take Windows's "sometimes there's very little you can do about it" against Linux's "compile it and all its dependencies (probably versions of those dependencies from the same time period, and possibly even their dependencies) from source" any day.
- cycloptic 6y agoYou don't want to do that. The first situation is not fixable, the second one is.
- AnIdiotOnTheNet 6y agoHow very Linux Community of you to tell me what I want to do.
- MayeulC 6y agoPart of my point was: if these dependencies are still maintained, chances are their API remained stable, so you only have to compile it with the new headers in most cases. Sometimes, you indeed have to compile obscure dependencies. This is a consequence of a userspace where most software is open source, and where distributions systematically recompile every package. As a side-effect, it is also generally more portable across architectures.