On 6/7/22, Warner Losh <imp(a)bsdimp.com> wrote:
But not the same binaries. I've run into a lot of issues trying to run a
binary for Debian on red hat or vice Vera due to shared libraries not being
completely compatible... kinda makes the whole system call argument moot
since there is always significant version skew...
Part of my last job was to maintain a suite of software development
and testing tools for our product across three different operating
system platforms: Windows, Mac OS X, and Linux. The suite had to run
on several versions of four or five Linux distributions. It is all
user mode, unprivileged code.
Windows and OS X rarely had problems with upward compatibility (newer
versions able to run executables built for older versions), but Linux
was living hell. Shared library compatibility was the biggest
problem. Not only were shared libraries often incompatible between
different Linux distributions, they were sometimes incompatible even
between different versions of the same distribution.
The problem of keeping shared libraries upward compatible from release
to release was solved circa 1975 by the engineers who designed the
VAX/VMS ABI. If not before that. It's not rocket science, but it
does require a degree of discipline, care, and attention to detail
when adding new or incompatible changes to an existing library. That
bit of developer culture seems to be absent from Linux and the pieces
of GNU that supply Linux's fundamental libraries (libc, etc.).
To bring this back closer to TUHS, I don't know if the Unix
distributions that support shared libraries suffer from the same
problem.
-Paul W.