Difference between API and ABI

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.

11 Answers
11

Leave a Comment