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
External links
分享到:
相关推荐
System V Application Binary Interface - AMD64 Architecture Processor Supplement-abi
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 ABI基础上,针对AMD64架构处理器的补充,包括LP64和ILP32编程模型。文档的标签是linux、api、...
System V Application Binary Interface (ABI) 是一个在Unix和类Unix系统中定义的二进制接口标准,它规定了软件模块之间如何进行交互,包括系统调用、函数调用约定、数据表示、程序启动和终止的机制等。ABI标准确保...
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 (ABI) — Edition 4.1 #### 概述 《System V Application Binary Interface》(简称 System V ABI)是一份详细介绍了如何在基于System V的UNIX系统上开发、编译和链接...
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(Power Architecture Enhanced Instruction Set Architecture)处理器的嵌入式应用二进制接口(Embedded Application Binary Interface, EABI)。...
比如,对于函数调用参数传递,C语言参数从右向左压栈,而Pascal与其相反C和Pascal编译器各自的标准也隐藏着却是如此(最终编译出来的ABI不兼容)C++编
硬件软件接口可以分为Instruction Set Architecture(ISA)、Application Binary Interface(ABI)和Application Programming Interface(API)等。 Instruction Set Architecture(ISA) Instruction Set ...
可执行链接格式(Executable and Linking Format)最初是由UNIX系统实验室(UNIX System Laboratories,USL)开发并发布的,作为应用程序二进制接口(Application Binary Interface,ABI)的一部分。工具接口标准...
ABI(Application Binary Interface) 如果理解 API 就很容易了解 ABI。简单来说,API 是程序与程序间互动的接口。这个接口包含程序提供外界存取所需的 functions、variables 等。ABI 也是程序间互动的接口,但程序...
《虚拟机:系统与进程的通用平台》的作者从计算机体系结构研究者的角度,以计算机系统接口抽象层次中两个最重要的接口——应用的二进制接口(Application Binary Interface,ABI)和应用程序接口(Application ...
每一种CPU架构,都定义了一种ABI(Application Binary Interface,应用二进制接口),ABI定义了其所对应的CPU架构能够执行的二进制文件(如.so文件)的格式规范,决定了二进制文件如何与系统进行交互。
《虚拟机:系统与进程的通用平台》的作者从计算机体系结构研究者的角度,以计算机系统接口抽象层次中两个最重要的接口——应用的二进制接口(Application Binary Interface,ABI)和应用程序接口(Application ...