#8 리눅스(유닉스) C 언어의 시스템 콜, API

HYUN·2021년 6월 11일
0
post-thumbnail

시스템 프로그래밍의 기반 요소

  • 시스템 콜 (System call)
  • C 라이브러리
  • C 컴파일러

자세한 내용은 운영체제에서 정리해 두었습니다.


시스템 콜

시스템 콜은 운영체제 리소스나 서비스 등을 요청하기 위해 사용자 영역에서 커널 영역으로 들어가는 함수로 주요 시스템 콜은 read(), write(), open()등이 있습니다.

리눅스(유닉스)는 C 언어로 만들어져 있으므로 시스템 콜 또한 C 언어로 구현되어 있습니다.

API

응용 프로그램과 분리된 하위 호환 인터페이스로 시스템 콜 래퍼 혹은 입출력 라이브러리 등이 있습니다.
사용자가 시스템 콜을 쉽게 사용하기 위한 인터페이스를 제공한다고 생각할 수 있습니다.

C 라이브러리

  • 유닉스 C 라이브러리: libc
  • 리눅스 C 라이브러리: GNU libc- glibc (지립씨, 글립씨)
    • 시스템 콜, 시스템 콜 래퍼, 기본 응용 프로그램 기능 포함

C 컴파일러

  • 유닉스 C 컴파일러: cc
  • 리눅스 C 컴파일러: GNU cc- gcc (지씨씨)

    설치 방법은 터미널 환경에서 아래 명령어 입력
    sudo apt-get install gcc 설치
    gcc --version 버전 확인

ABI | Application Binary Interface

응용 프로그램 바이너리 인터페이스
함수 실행 방시그 레지스터 활용, 시스템 콜 실행, 라이브러리 링크 방식등
ABI가 호환되면 재컴파일 없이 동작
컴파일러, 링커(라이브러리 링크), 툴체인(컴파일러를 만드는 프로그램)에서 제공

POSIX

유닉스 시스템 프로그래밍 인터페이스의 표준으로 IEEE에서 표준화 시도 및 리차드 스톨만이 POSIX를 표준안 이름으로 제안했습니다.

C 언어의 표준

C 언어도 다양한 방햑으로 수정되어 왔지만 C 언어의 표준은 ANSI에서 ANSI C 표준을 정립했습니다.

리눅스는 POSIX와 ANSI C를 지원합니다.

profile
자바스크립트를 좋아합니다. | 이유를 알고 있는 것과 모르는 것의 차이는 분명하다.

0개의 댓글