1/9
Flashcards covering the key concepts about Application Binary Interface (ABI), its components, and its difference from API.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Application Binary Interface (ABI)
A hardware-level interface between two software components that defines how code interacts at the binary level, including calling conventions, data layout, system calls, and register usage.
Calling convention
The ABI-defined rules for how to pass arguments to a function and how to return a value.
Caller-save registers
Registers that the caller must assume may be overwritten by the callee; if needed after the call, the caller must save them before making the call.
Callee-save registers
Registers that the callee must preserve and restore before returning, so the caller sees them unchanged.
Data layout in memory
How the ABI specifies the representation of data in memory, including type layout, alignment, and padding.
System calls
The mechanism defined by the ABI for requesting services from the operating system (transitions between user and kernel mode) and the calling convention for those calls.
Hardware registers usage
How the ABI prescribes which processor registers hold arguments, return values, and temporary data during a call.
API vs ABI difference
API is a source-code level interface; ABI is a binary-level interface ensuring compatibility at runtime.
Library interoperability via ABI
Independently developed libraries can work together if they conform to the same ABI, without agreeing on internal details.
Fill-in-the-blank example
common