관리 메뉴

c0smicb0y

API & ABI 본문

프로그래밍/Linux

API & ABI

2015. 9. 5. 17:26

이식성(portability)에 영향을 끼치는 두가지

둘 다 컴퓨터 소프트웨어의 다른 부분들 사이에서의 인터페이스를 정의한다.


API(Application Programming Interface)

API는 소프트웨어가 소스레벨에서 다른 소프트웨어와 communicate하는 한 부분으로서 인터페이스를 정의한다. 주로 함수로서 제공된다.


ABI(Application Binary Interface)

ABI는 특정 아키텍처에서 소프트웨어의 두개 이상의 부분들 사이에서의 바이너리 인터페이스를 정의한다. 어플리케이션이 자기자신과 어떻게 상호작용하는지, 어플리케이션이 커널과 어떻게 상호작용하는지, 어플리케이션이 라이브러리와 어떻게 상호작용하는지 정의한다. Calling Convention을 다룬다. 윈도 xp에서 구동되는 프로그램이 윈도 10에서도 구동되는 이유가 MS에서 ABI를 지원하기 때문이다. API와 달리 명시적으로 제공될 필요가 없어서 어셈블리로 프로그래밍 할려고 하지 않는 이상 신경 쓸 필요가 없다. 특정 언어에 의존적이지 않다. 즉, 다른 언어라도 컴파일 되면 같은 ABI를 쓸 수 있다.

'프로그래밍 > Linux' 카테고리의 다른 글

doxygen 사용법  (9) 2015.12.19
Qt5 Install on Ubuntu  (0) 2015.11.18
GDB TUI  (0) 2015.11.18
Linux Kernel  (0) 2015.10.29
Linux File System  (0) 2015.09.07
Comments