Я новичок в системном программировании Linux, и я столкнулся с API и ABI во время чтения Системное программирование Linux .
Определение API:
API определяет интерфейсы, с помощью которых одна часть программного обеспечения сообщает с другим на уровне источника.
Определение ABI:
В то время как API определяет источник интерфейс, ABI определяет двоичный интерфейс низкого уровня между двумя или более программ на особая архитектура. Это определяет как приложение взаимодействует с само, как приложение взаимодействует с ядром, и как приложение взаимодействует с библиотеками.
Как программа может взаимодействовать на уровне исходного кода? Что такое исходный уровень? Это как-то связано с исходным кодом? Или исходный код библиотеки включается в основную программу?
Единственная разница, которую я знаю, заключается в том, что API в основном используется программистами, а ABI в основном используется компилятором.