back

by matheusmoreira·8y ago·view on hn ↗
Those applications may not work together with each other, but they do work together with user space libraries such as glibc. Linux distributions aim to provide binary compatibility with those applications. It's tricky because these libraries simply don't take binary interfaces as seriously as the Linux kernel developers do. While you can upgrade the kernel and expect programs to work afterwards and if they don't it's a kernel bug, the same is not true for user space libraries.

The distributions themselves are also a source of binary incompatibility. For example, one distribution may use symbol versioning while another may not, and this means users cannot download a random binary meant for one distribution and expect it to run on another one even if the versions of dependencies are the same. Compiling from source ensures the resulting software is binary compatible but the source is not guaranteed to be available since programs may be proprietary.