应用二进制接口

应用二进制接口
应用二进制接口(Application Binary Interface, ABI)是一种规范,它详细规定了应用程序与其所依赖的操作系统或库之间的底层接口。ABI不仅涵盖了应用程序接口(API)的功能,还涉及编译后的目标代码在不同系统间的兼容性问题。[1][2][3]

描述

ABI描述了应用程序与操作系统之间的交互方式,以及应用程序内部各组件之间的通信机制。它包括但不限于调用约定、系统调用编码、应用程序对操作系统的系统调用方法等。ABI的标准制定旨在简化软件在不同操作系统之间的迁移,从而降低开发者的移植成本。尽管如此,目前尚未有非常成功的ABI标准化案例,尽管Linux标准化工作组正在进行相关的努力。

区别于API

ABI与API的区别在于,API主要关注源代码级别的接口,而ABI则更侧重于已编译目标代码的互操作性。这意味着,如果两个系统都遵循相同的ABI,那么它们可以共享已经编译好的二进制代码,而不需要重新编译。