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 anyway? 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 compiler.
Sorry for the stupid question.
Thanks.