在计算机科学中,ABI是 应用程序二进制接口(Application Binary Interface)的缩写。它定义了应用程序(或其他类型)和操作系统之间,或其他应用程序之间的低级接口。ABI涵盖了各种细节,如数据类型的大小、布局和对齐;调用约定;以及应用程序如何发出系统调用来trap到内核态等。
ABI的主要目的是确保不同软件模块在二进制级别上能够正确地通信和协作。它通常包括函数调用约定、数据结构布局、寄存器使用等方面的规则。ABI对于操作系统和硬件之间的交互至关重要,并且对于跨平台应用程序的开发和维护也非常重要。通过ABI,不同的程序可以在不同的CPU架构和操作系统上运行,而无需担心二进制兼容性问题。
ABI与API(应用程序编程接口)类似,但API是在较高的源码层定义的调用规范,而ABI是在CPU硬件层定义的规范。ABI通常由编译器、操作系统或库作者定义,并且是二进制级别的接口,这意味着它直接与机器码相关联。
总结来说,ABI是一种规定了软件组件之间如何通过二进制格式进行交互的规范,它确保了不同程序模块在二进制级别上的兼容性和互操作性。