Interfejs binarny aplikacji
Interfejs binarny aplikacji, ABI (od ang. application binary interface) – zespół reguł i ustaleń, które decydują o współpracy między programami i bibliotekami a systemem operacyjnym lub między różnymi komponentami danej aplikacji. ABI różni się od API tym, że dotyczy oprogramowania w wersji skompilowanej, a więc binarnej (zwanej również wykonywalną), a nie w formie kodu źródłowego.
Interfejs binarny aplikacji definiuje konwencję wywołań, która określa sposób wywoływania podprogramów, przekazywania im argumentów oraz odbierania zwracanej wartości, liczbę, znaczenie i sposób wywoływania (syscall), a także format plików obiektowych lub bibliotek.
Kompletny ABI, na przykład Intel Binary Compatibility Standard (iBCS), pozwala na uruchamianie aplikacji z poziomu systemu operacyjnego – wspierającego konkretny ABI – na innym systemie operacyjnym, bez zbędnych modyfikacji.
W systemach uniksopodobnych nie dba się zbytnio o to, by programy były zgodne na poziomie ABI, ponieważ ważniejsza jest zgodność na poziomie interfejsu programowania aplikacji, czyli kodu źródłowego. Mimo że większość nowoczesnych uniksów używa formatu ELF dla plików wykonywalnych, to jednak programów z danego systemu uniksowego zwykle nie daje się poprawnie uruchomić w innym. Wyjątek stanowią systemy z rodziny BSD, które umożliwiają, dzięki zastosowaniu specjalnego trybu ABI, uruchamianie w nich programów linuksowych.