Разница между API и ABI

Я новичок в системном программировании Linux, и я столкнулся с API и ABI во время чтения Системное программирование Linux .

Определение API:

API определяет интерфейсы, с помощью которых одна часть программного обеспечения сообщает с другим на уровне источника.

Определение ABI:

В то время как API определяет источник интерфейс, ABI определяет двоичный интерфейс низкого уровня между двумя или более программ на особая архитектура. Это определяет как приложение взаимодействует с само, как приложение взаимодействует с ядром, и как приложение взаимодействует с библиотеками.

Как программа может взаимодействовать на уровне исходного кода? Что такое исходный уровень? Это как-то связано с исходным кодом? Или исходный код библиотеки включается в основную программу?

Единственная разница, которую я знаю, заключается в том, что API в основном используется программистами, а ABI в основном используется компилятором.

176
задан Cole Johnson 23 September 2016 в 05:50
поделиться