본문 바로가기
Computer Science

시스템 프로그래밍 핵심 기술

by 개발자 데이빗 2022. 1. 9.

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

  • 시스템 콜
  • C 라이브러리
  • C 컴파일러

API

  • 응용 프로그램과 분리된 하위 호환 인터페이스
    • ex) 시스템 콜 래퍼, 입출력 라이브러리 등
    • 동적, 정적 라이브러리가 있음

C 라이브러리

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

C 컴파일러

  • 유닉스 C 컴파일러 - cc
  • 리눅스 C 컴파일러 - GNU cc- gcc (지씨씨)
  • 리눅스에 gcc 설치
sudo apt-get install gcc

 

GCC 컴파일 과정

$ gcc -o test test.c
(1) 전처리기 소스 파일의 전처리기 부분을 처리하고 test.i 임시파일을 생성
(2) C컴파일러 전처리된 파일 test.i로부터 어셈블리어로 된 test.s를 생성
(3) 어셈블러 어셈블리어 파일 test.s로부터 오브젝트 파일 test.o를 생성
(4) 링커 오브젝트 파일 test.o로부터 실행파일 test를 생성한다.

 

ABI (Application Binary Interface)

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

C 언어 표준 - ANSI C

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

'Computer Science' 카테고리의 다른 글

쉘 스크립트  (0) 2022.01.14
시스템 프로그래밍 - 프로세스 관리  (0) 2022.01.10
시스템 프로그래밍 - 쉘 사용법  (0) 2022.01.06
시스템 프로그래밍 - 리눅스  (0) 2022.01.03
파일 시스템  (0) 2022.01.03

댓글