ABI

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Application binary interface (ABI) je v informatice označení pro nízkoúrovňové rozhraní. Jde o soubor pravidel, která definují spolupráci na úrovni strojového kódu mezi procesy a jádrem operačního systému, procesy a jimi používanými knihovnami nebo mezi součástmi aplikací. ABI umožňuje již zkompilovanému programu fungovat beze změn na všech systémech, které mají kompatibilní ABI.

Rozdíl mezi ABI a API

Rozdíl mezi ABI a API je ten, že API definuje rozhraní mezi zdrojovým kódem a knihovnami, takže ho používá programátor. Naproti tomu ABI je systémová záležitost, která je používána na úrovni strojového kódu. +more ABI definuje buď tvůrce operačního systému (firma Microsoft u Microsoft Windows) nebo tvůrce překladače (překladač GCC v Linuxu) nebo tvůrce procesoru (EABI pro RISC procesory).

Charakteristika

ABI obsahují informace o: * velikosti, vzhledu a zarovnání datových typů * volací konvence, které kontrolují, jaké parametry jsou funkcím předávány a jaké parametry funkce vrací; například: jestli jsou všechny parametry uloženy na zásobník nebo jestli jsou některé parametry předány do registrů, které registry jsou použité pro které parametry funkcí, a jestli je jako první odebrán ze zásobníku ten parametr, který byl na zásobník uložen jako poslední. * jak by měla aplikace provádět systémová volání operačního systému, a jestli ABI upřednostňuje přímá systémová volání před voláním procedur * a, v případě ABI celého operačního systému, objektové soubory, programové knihovny a tak dále.

Kompletní ABI, jakým je Intel Binary Compatibility Standard (iBCS), umožňuje programu z jednoho operačního systému podporujícímu toto ABI běžet beze změn na kterémkoli jiném operačním systému za předpokladu, že jsou přítomny potřebné knihovny a jsou splněny určité předpoklady.

Ostatní ABI popisují detaily, např. změny názvů v C++, šíření výjimek a volací konvence mezi překladači na stejné platformě, ale nevyžadují multiplatformní kompatibilitu.

EABI

Embedded-application binary interface (EABI) specifikuje konvence formátu souborů, datových typů, použití registrů, organizace zásobníku a předávání parametrů funkcí embedded programů.

Překladače, které podporují EABI, vytvoří objektový kód, který je kompatibilní s kódem vygenerovaným jinými kompilátory, a tím umožňují vývojářům linkovat knihovny vytvořené jedním překladačem k objektovému kódu vygenerovanému jiným překladačem. Vývojáři píšící kód v jazyce symbolických adres mohou využít EABI k interakci se strojovým kódem vytvořeným jiným překladačem.

Hlavními rozdíly mezi EABI a ABI, které se týkají hlavního využití v operačních systémech, jsou, že v aplikačním kódu jsou povoleny privilegované instrukce, dynamické linkování není vyžadováno (někdy dokonce ani není povoleno) a je použita lepší organizace zásobníku za účelem šetření pamětí.

Široce používaná EABI obsahují PowerPC, ARM EABI2 a MIPS EABI.

Výběr EABI může ovlivnit strojový výkon.

Odkazy

Reference

Související články

Rozhraní * Knihovna * API (Application Programming Interface)

Kategorie:Operační systém Kategorie:Programové knihovny Kategorie:Rozhraní

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top