Learning path

Full curriculum

Full curriculum

Unit content

Application binary interfaces and platform compatibility

An application binary interface (ABI) is the contract that lets separately built binary components cooperate on a particular platform.

It can specify calling conventions, register usage, data layout, executable and library formats, symbol conventions and how programs enter operating-system services.

ISA is not enough

Two operating systems can run on processors with the same instruction set while expecting different executable formats, system-call interfaces and libraries. A binary built for one platform therefore need not run on the other.

source program
   ↓ compile for target
ISA + ABI + platform libraries
   ↓
runnable binary

Stable boundaries

An ABI lets a compiled application call a library that was built separately because both sides agree on machine-level details. Changing those details incompatibly can break binaries without changing their source code.

Platform compatibility therefore depends on more than the processor architecture: software and operating-system contracts are part of the executable environment.