I have read:
AlmaLinux has opted to drop its goal to remain 1-to-1 binary compatible with RHEL. Instead, AlmaLinux’s new goal is to be Application Binary Interface-compatible with RHEL. To accomplish this, AlmaLinux plans to use CentOS Stream source code that Red Hat continues to make available.
Can some please tell me in “simple terms” what is meant by “Application Binary Interface-compatible” and what the advantage and disadvantages are?
I believe Rocky is 1-to-1 binary compatible with RHEL so what are AlmaLinux’s (Application Binary Interface-compatible) advantages over Rocky?
Thanks very much.
A traditional executable program was written in C. It had source code in that language. The source is compiled into binary objects, and linked into executable binary. All of it won’t be in the executable file, it will rely in shared objects, aka libraries. (Compiling and linking is building.) When the program is started, it is first dynamically linked to the libraries that system has – libraries it was originally linked with.
Any library file that looks like the corresponding file in RHEL and thus can be dynamically linked and used like the RHEL version is binary compatible. Applications built for RHEL do work in AlmaLinux (and vice versa), because the libraries look and behave the same.
However, the libraries don’t have to be identical under the hood – their implementation can differ. That is divergence now somewhat necessary, since access to (RHEL) source code has changed. Before RHEL, Alma, and Rocky were basically built from same source code.
The difference between Alma and Rocky is therefore in how the source code is now acquired, and not so much in what is in the distro nor how it works. It is not obvious whether either approach has advantage over the other.
Disclaimer: I’m not involved in building distros, so what I wrote is how things seem to me.
Furthermore, does my text have any “simple terms”?
Thank you, definitely a more elaborate response han what I was expecting (without any simple terms
)
Also, from what I have read, the Alma source in from the CentOS stream side.
Is that correct? If so, do feel there is an advantage to doing it this way?
Again, thanks for the details in your explanation.