b'\n_START_ARTICLE_\nInterfejs binarny aplikacji\n_START_PARAGRAPH_\nInterfejs binarny aplikacji, ABI (od ang. application binary interface) \xe2\x80\x93 zesp\xc3\xb3\xc5\x82 regu\xc5\x82 i ustale\xc5\x84, kt\xc3\xb3re decyduj\xc4\x85 o wsp\xc3\xb3\xc5\x82pracy mi\xc4\x99dzy programami i bibliotekami a systemem operacyjnym lub mi\xc4\x99dzy r\xc3\xb3\xc5\xbcnymi komponentami danej aplikacji. ABI r\xc3\xb3\xc5\xbcni si\xc4\x99 od API tym, \xc5\xbce dotyczy oprogramowania w wersji skompilowanej, a wi\xc4\x99c binarnej (zwanej r\xc3\xb3wnie\xc5\xbc wykonywaln\xc4\x85), a nie w formie kodu \xc5\xbar\xc3\xb3d\xc5\x82owego._NEWLINE_Interfejs binarny aplikacji definiuje konwencj\xc4\x99 wywo\xc5\x82a\xc5\x84, kt\xc3\xb3ra okre\xc5\x9bla spos\xc3\xb3b wywo\xc5\x82ywania podprogram\xc3\xb3w, przekazywania im argument\xc3\xb3w oraz odbierania zwracanej warto\xc5\x9bci, liczb\xc4\x99, znaczenie i spos\xc3\xb3b wywo\xc5\x82ywania (syscall), a tak\xc5\xbce format plik\xc3\xb3w obiektowych lub bibliotek._NEWLINE_Kompletny ABI, na przyk\xc5\x82ad Intel Binary Compatibility Standard (iBCS), pozwala na uruchamianie aplikacji z poziomu systemu operacyjnego \xe2\x80\x93 wspieraj\xc4\x85cego konkretny ABI \xe2\x80\x93 na innym systemie operacyjnym, bez zb\xc4\x99dnych modyfikacji._NEWLINE_W systemach uniksopodobnych nie dba si\xc4\x99 zbytnio o to, by programy by\xc5\x82y zgodne na poziomie ABI, poniewa\xc5\xbc wa\xc5\xbcniejsza jest zgodno\xc5\x9b\xc4\x87 na poziomie interfejsu programowania aplikacji, czyli kodu \xc5\xbar\xc3\xb3d\xc5\x82owego. Mimo \xc5\xbce wi\xc4\x99kszo\xc5\x9b\xc4\x87 nowoczesnych uniks\xc3\xb3w u\xc5\xbcywa formatu ELF dla plik\xc3\xb3w wykonywalnych, to jednak program\xc3\xb3w z danego systemu uniksowego zwykle nie daje si\xc4\x99 poprawnie uruchomi\xc4\x87 w innym. Wyj\xc4\x85tek stanowi\xc4\x85 systemy z rodziny BSD, kt\xc3\xb3re umo\xc5\xbcliwiaj\xc4\x85, dzi\xc4\x99ki zastosowaniu specjalnego trybu ABI, uruchamianie w nich program\xc3\xb3w linuksowych.'