`

Application binary interface

阅读更多

http://en.wikipedia.org/wiki/Application_binary_interface

 

In computer software , an application binary interface (ABI ) describes the low-level interface between an application (or any type of) program and the operating system or another application.

 

Description

ABIs cover details such as data type size and alignment; the calling convention , which controls how functions ' arguments are passed and return values retrieved; the system call numbers and how an application should make system calls to the operating system; and in the case of a complete operating system ABI, the binary format of object files , program libraries and so on. A complete ABI, such as the Intel Binary Compatibility Standard (iBCS),[ 1] allows a program from one operating system supporting that ABI to run without modifications on any other such system, provided that necessary shared libraries are present, and similar prerequisites are fulfilled.

Other ABIs standardize details such as the C++ name decoration ,[ 2] exception propagation,[ 3] and calling convention between compilers on the same platform, but do not require cross-platform compatibility.

An ABI should not be confused with an application programming interface (API) which defines a library of routines to call, data structures to manipulate, and/or object classes to use in the construction of an application using that particular (often language specific) API.

 

EABI

An embedded-application binary interface (EABI) specifies standard conventions for file formats , data types, register usage, stack frame organization, and function parameter passing of an embedded software program.

Compilers that support the EABI create object code that is compatible with code generated by other such compilers, thus allowing developers to link libraries generated with one compiler with object code generated with a different compiler. Developers writing their own assembly language code may also use the EABI to interface with assembly generated by a compliant compiler.

The main differences of an EABI with respect to an ABI for general purpose operating systems are that privileged instructions are allowed in application code, dynamic linking is not required (sometimes it is completely disallowed), and a more compact stack frame organization to save memory.[ 4]

Widely used EABIs include PowerPC [ 5] and ARM .[ 6] [ 7]

 

References

  1. ^ Intel Binary Compatibility Standard (iBCS)
  2. ^ Itanium C++ ABI (compatible with multiple architectures)
  3. ^ Itanium C++ ABI: Exception Handling (compatible with multiple architectures)
  4. ^ "EABI Summary ". PowerPC Embedded Application Binary Interface — 32-Bit Implementation (Version 1.0 ed.). Motorola. 1995-10-01. pp. 28–30. http://ftp.twaren.net/Unix/Sourceware/binutils/ppc-docs/ppc-eabi-1995-01.pdf .  
  5. ^ "PowerPC Embedded Processors Application Note"
  6. ^ "Debian ARM accelerates via EABI port ". Linuxdevices.com. 2007-01-19. http://linuxdevices.com/news/NS9048137234.html . Retrieved 2007-10-11 .  
  7. ^ Andrés Calderón and Nelson Castillo (2007-03-14). "Why ARM's EABI matters ". Linuxdevices.com. http://linuxdevices.com/articles/AT5920399313.html . Retrieved 2007-10-11 .  

External links

分享到:
评论

相关推荐

    System V Application Binary Interface - AMD64 Architecture

    System V Application Binary Interface - AMD64 Architecture Processor Supplement-abi

    The Base Standard of Application Binary Interface for the ARM Architecture.pdf

    This document describes the structure of the Application Binary Interface (ABI) for the ARM architecture, and links to the documents that define the base standard for the ABI for the ARM Architecture...

    System V Application Binary Interface AMD64 Architecture Processor Supplement

    该文档标题为“System V Application Binary Interface AMD64 Architecture Processor Supplement”,描述了在System V ABI基础上,针对AMD64架构处理器的补充,包括LP64和ILP32编程模型。文档的标签是linux、api、...

    System V Application Binary Interface :abi.pdf

    System V Application Binary Interface (ABI) 是一个在Unix和类Unix系统中定义的二进制接口标准,它规定了软件模块之间如何进行交互,包括系统调用、函数调用约定、数据表示、程序启动和终止的机制等。ABI标准确保...

    SYSTEM V APPLICATION BINARY INTERFACE

    The System V Application Binary Interface, or ABI, defines a system interface for compiled application programs. Its purpose is to establish a standard binary interface for application programs on ...

    System V Application Binary Interface pdf

    ### System V Application Binary Interface (ABI) — Edition 4.1 #### 概述 《System V Application Binary Interface》(简称 System V ABI)是一份详细介绍了如何在基于System V的UNIX系统上开发、编译和链接...

    SYSTEM V APPLICATION BINARY INTERFACE Edition 4.1, UNIX ABI pdf

    The System V Application Binary Interface, or ABI, defines a system interface for compiled application programs and a minimal environment for support of instal- lation scripts. Its purpose is to ...

    powerpc_eabi_app.rar_PowerPC EABI_PowerPC_EABI_Tools_powerpc_pow

    标题中的"powerpc_eabi_app.rar"提示我们讨论的主题是关于PowerPC(Power Architecture Enhanced Instruction Set Architecture)处理器的嵌入式应用二进制接口(Embedded Application Binary Interface, EABI)。...

    iamwwcposts#articles#32-ABI(Application Binary Interface)是什么?1

    比如,对于函数调用参数传递,C语言参数从右向左压栈,而Pascal与其相反C和Pascal编译器各自的标准也隐藏着却是如此(最终编译出来的ABI不兼容)C++编

    计算机组成与设计硬件软件接口第四版答案

    硬件软件接口可以分为Instruction Set Architecture(ISA)、Application Binary Interface(ABI)和Application Programming Interface(API)等。 Instruction Set Architecture(ISA) Instruction Set ...

    ELF文件系统格式

    可执行链接格式(Executable and Linking Format)最初是由UNIX系统实验室(UNIX System Laboratories,USL)开发并发布的,作为应用程序二进制接口(Application Binary Interface,ABI)的一部分。工具接口标准...

    深入以太坊智能合约 ABI

    ABI(Application Binary Interface) 如果理解 API 就很容易了解 ABI。简单来说,API 是程序与程序间互动的接口。这个接口包含程序提供外界存取所需的 functions、variables 等。ABI 也是程序间互动的接口,但程序...

    虚拟机 : 系统与进程的通用平台英文版带详细书签

    《虚拟机:系统与进程的通用平台》的作者从计算机体系结构研究者的角度,以计算机系统接口抽象层次中两个最重要的接口——应用的二进制接口(Application Binary Interface,ABI)和应用程序接口(Application ...

    Android so加载深入分析

    每一种CPU架构,都定义了一种ABI(Application Binary Interface,应用二进制接口),ABI定义了其所对应的CPU架构能够执行的二进制文件(如.so文件)的格式规范,决定了二进制文件如何与系统进行交互。

    虚拟机 系统与进程的通用平台 James E. Smith / Ravi Nair 完整pdf

    《虚拟机:系统与进程的通用平台》的作者从计算机体系结构研究者的角度,以计算机系统接口抽象层次中两个最重要的接口——应用的二进制接口(Application Binary Interface,ABI)和应用程序接口(Application ...

Global site tag (gtag.js) - Google Analytics