Application Binary Interface (ABI)
The Application Binary Interface (ABI) specifies how software (libraries, apps, OS) communicate with each other at the binary level (machine code). The counterpart API defines functions and types programmers use to interact with other software at source-code level.
An ABI includes:
- Calling Convention: How functions receive parameters and return values.
- Data Types and Alignment: Representation in memory (sizes and alignment)
- Binary Format: Format for executable files, object files, and shared libraries
- System Calls: Conventions for making system calls to the OS