What's It?
"Binary compatibility" (BC) is the ability of one machine to run software that was written for another without having to change or recompile the software
BC of an Operating System:
Binary compatibility of an OS is the ability to run application(s) that were built for one version of OS, on later versions of OS without having to change or rebuild the application; but the same application may not run on earlier versions of the operating system
For example, if a software company wants to ship their product for Solaris 8, 9 & 10 platforms, the product should be built on the earliest version of Solaris ie., Solaris 8, so that it will run on all three versions
BC of a Compiler:
The compiler rule is similar. An old binary can be linked into a program built with a newer compiler. But a binary created by a new compiler cannot be linked into a program built with an older compiler
Eg. Company X creates some libraries using Sun Studio 8 and some with Sun Studio 9. Company X can link all of them into a program built with Sun Studio 10. But a library built with Sun Studio 9 might not work in a program built with Sun Studio 8
Why do we need it?
The reason for the compatibility rules is that the software developers are careful to preserve old interfaces in newer releases, but reserve the right to create new interfaces. When the developer builds a newer compiler or a newer OS, the program might depend on a new interface that is not available with older compilers or older OS versions
Acknowledgements:
Steve Clamage, Sun Microsystems