3 ms·
I am not a Linux expert, but I wonder why binary compatibility is not something that is a given? I mean, I can use a binary from Win95 in Win11 or WinServer. I
by kwanbix 3y ago
I am not a Linux expert, but I wonder why binary compatibility is not something that is a given? I mean, I can use a binary from Win95 in Win11 or WinServer. I know Windows is coming from the same company, but I am still confused. Anyone can explain?
- n3storm 3y agoCause in FLOSS we can compile from source whereas in Windows Closed world you are given permission to use a binary you cannot recompile to any other target or fix or port or optimize or remove dependencies.
- arp242 3y agoThe binary compatibility exists, it's just that the ecosystems have too many differences. e.g. distro A may ship libfoo.so.1.5.3 and distro B libfoo.so.1.3.2 and distro C ships libfoo.so.2.0.0 Other than that you can run a binary for distro X on distro Y without any problems, and "Linux binaries" from the 90s should also still work as such today (as in, the kernel will run them). I frequently run binaries from Debian packages in spite of not using Debian or anything derived from it and that usually works without any tinkering, and when it doesn't you can usually make it work by also fetching a library or two from Debian. This is also a problem on Windows, because your Windows 95 binary may also not work because of issues like this, depending on exactly how it's compiled, what it does, etc. Static linking solves many of these issues, but also has its own set of downsides, and it's an old discussion. In general, I'm in favour of this though. Some people are vehemently opposed to it with an aggressive passion which means that in practice support for it isn't that great.