응용 프로그램 이진 인터페이스

응용 프로그램 이진 인터페이스(Application Binary Interface, ABI)는 응용 프로그램과 운영 체제 또는 응용 프로그램과 해당 라이브러리, 마지막으로 응용 프로그램의 구성요소 간에서 사용되는 낮은 수준의 인터페이스이다.

ABI는 API와 다르다, API가 소스 코드에서 사용된다면 ABI는 바이너리에서 호환이 가능하다는 점이 다르다.

EABI 
EABI(임베디드 응용 프로그램 이진 인터페이스, embedded-application binary interface)는 임베디드 소프트웨어 프로그램을 수행하는 파일 형식, 자료형, 레지스터 사용, 스택 프레임 조직, 명령 변수를 위한 표준 변환을 정의하고 있다.

EABI를 지원하는 컴파일러는 이와 같은 또다른 컴파일러가 만든 코드와 호환되는 목적 코드를 만드므로 개발자들이 다른 컴파일러가 만들어 낸 목적 코드와 한 컴파일러로 만든 라이브러리를 연결할 수 있게 한다. 자체적인 어셈블리어 코드를 작성하는 개발자들은 EABI를 사용하여 호환 컴파일러가 만들어낸 어셈블리 코드와 상호 작용하게 할 수 있다.

일반 목적의 운영 체제에서 ABI와 EABI의 주된 차이점은 권한 명령이 응용 프로그램 코드 내에서 실행되는 점, 동적 링크가 요구되지 않는다는 점(심지어는 아예 동적 링크를 허용하지 않는 경우도 있음), 메모리 저장을 위해 더 작아진 스택 프레임 조직을 갖춘다는 점이 있다.

널리 쓰이는 EABI로는 파워피씨와 ARM 아키텍처가 있다.

같이 보기 
 프로그래밍 언어

각주

외부 링크 
  What is Application Binary Interface? (from stackoverflow.com)

API
운영체제 기술