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,2021
System V Application Binary Interface AMD64 Architecture Processor Supplement (With LP64 and ILP32 Programming Models) Draft Version 0.3
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
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 ...
The System V Application Binary Interface defines a system interface for compiled application programs. Its purpose is to establish a standard binary interface for application programs on systems that...
比如,对于函数调用参数传递,C语言参数从右向左压栈,而Pascal与其相反C和Pascal编译器各自的标准也隐藏着却是如此(最终编译出来的ABI不兼容)C++编
可执行链接格式(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 ...
可执行连接格式(Executable and Linking Format)最初是作为应用程序二进制接口(Application Binary Interface(ABI)的一部分被UNIX系统实验室(USL)开发和发布。工具接口标准委员会(TIS)将还在发展的ELF标准选作为一种...
* System V Application Binary Interface, Revised Edition * System V Interface Definition, Third Edition * Tool Interface Standards: Portable Formats Specification, Version 1.0 The processor-specific ...