An application binary interface (ABI) is an interface exposed by software that is defined for in-process machine code access. Often, the exposing software is a library, and the consumer is a program.
Includes :
- Instruction set
- size, layout, alignment of basic data types which processor can access
- calling conventions and layouts of the stack
- Name Mangling
- exception propagation
- syscall calling conventions
- for OS ABI, binary formats as well