Difference between API and ABI
Asked 07 September, 2021
Viewed 1.4K times
  • 60
Votes

I am new to Linux system programming and I came across API and ABI while reading Linux System Programming.

Definition of API:


An API defines the interfaces by which one piece of software communicates with another at the source level.

Definition of ABI:


Whereas an API defines a source interface, an ABI defines the low-level binary interface between two or more pieces of software on a particular architecture. It defines how an application interacts with itself, how an application interacts with the kernel, and how an application interacts with libraries.

How can a program communicate at a source level? What is a source level? Is it related to source code in any way? Or the source of the library gets included in the main program?

The only difference I know is API is mostly used by programmers and ABI is mostly used by a compiler.

10 Answer