Application Binary Interface (ABI)
The Application Binary Interface (ABI) specifies the set of rules and conventions that govern how different software components (such as libraries, applications, and the OS) communicate with each other at the binary level (i.e. machine code).
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