Wat is ABI (application binary interface)?

Afspraken op machinetaalniveau waarmee gecompileerde programma's en bibliotheken samen kunnen werken. Omvat onder meer de aanroepconventie, de grootte en uitlijning van gegevenstypen en de manier waarop systeemaanroepen worden gedaan.

Japanse benaming: ABI(アプリケーションバイナリインターフェース)

“ABI (application binary interface)” komt voor in 3 oefenvragen uit 2 onderwerpen, bijv. Instructieset en assembly, Linker, loader en uitvoerbare formaten.

Vakgebied: Instructieset en assembly

Nu oefenen: vragen over ABI (application binary interface)

Welke omschrijving van de ABI (application binary interface) is juist?

  1. AEen afspraak op broncodeniveau die functienamen en argumenttypen vastlegt
  2. BEen afspraak die alleen de soorten CPU-instructies en hun bitindeling vastlegt
  3. CEen afspraak op machinecodeniveau om programma's aan elkaar te koppelen, zoals de aanroepconventie en de grootte en uitlijning van gegevenstypen
Antwoord en toelichting tonen

Antwoord: C. Een afspraak op machinecodeniveau om programma's aan elkaar te koppelen, zoals de aanroepconventie en de grootte en uitlijning van gegevenstypen

De ABI is een afspraak op machinecodeniveau waarmee gecompileerde programma's en bibliotheken samen kunnen werken en omvat de aanroepconventie, de grootte van int, long en pointers, de uitlijning van structuren en de manier van systeemaanroepen. De API legt in broncode vast hoe functies worden gebruikt; ook bij dezelfde API kan een bibliotheek niet worden gebruikt zonder opnieuw te bouwen als de ABI verschilt. Ook bij dezelfde RISC-V-ISA kan de ABI per OS en toepassing verschillen.

“ABI (application binary interface)” in de toelichting

Vragen met “ABI (application binary interface)” (3)

  1. Welke omschrijving van de ABI (application binary interface) is juist?
  2. Wat is het belangrijkste doel van het vastleggen van een aanroepconventie (calling convention)?
  3. Welk voordeel is juist van het zetten van de symboolzichtbaarheid (visibility) op „hidden” voor interne functies, terwijl bij het maken van een gedeelde bibliotheek alleen de van buiten gebruikte functies worden gepubliceerd?

Verwante termen

Aanroepconventie (calling convention) Instructiesetarchitectuur (ISA) Gedeelde bibliotheek (shared library) Via PLT (procedure linkage table) GOT (global offset table) Dynamische linker Adresseringsmodus Assembler Bladfunctie (leaf function)

Naar de woordenlijst