본문 바로가기

컴퓨터공학/시스템 프로그래밍

ABI와 표준

반응형

동적 라이브러리 vs 정적 라이브러리

  • 동적 라이브러리는 exe에서 해당 함수가 호출될 때 프로세스에 올려져서 호출된 함수를 실행시켜준다
  • 정적 라이브러리는 exe와 함께 묶여서 빌드가 되는 형태

 

라이브러리

유닉스 C 라이브러리 : libc 

리눅스 C 라이브러리 : glibc (지립씨, 글립씨)

 

컴파일러

유닉스 컴파일러 : cc

리눅스 컴파일러 : gcc

 

ABI (Application Binary Interface)

: API는 Programming Interface 인 반면 응용프로그램과 라이브러리, 함수 실행 방식, 레지스터 활용 등을 약속한 인터페이스이다. ABI가 호환되면 재컴파일 없이 동작한다. 유닉스와 리눅스가 호환이 안되는 큰 이유는 ABI가 맞지 않아서 이고 두번째는 시스템콜이 달라서이다.

 

POSIX 

: 유닉스 시스템프로그래밍의 인터페이스 표준

* 리눅스는 POSIX와 ANSI C를 제공한다 

반응형