Application Binary Interface

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

ABI (ang.) Application Binary Interface – zespół reguł i ustaleń, które decydują o współpracy między programami, bibliotekami, a systemem operacyjnym lub pomię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.

ABI 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 czy np. bibliotek.

Kompletne ABI, jak np. Intel Binary Compatibility Standard (iBCS), pozwala na uruchamianie aplikacji z poziomu systemu operacyjnego, wspierającego konkretne 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 API, 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, na uruchamianie w nich programów linuksowych.