데이터과학 삼학년

시스템 콜, API 본문

Computer Science/System Programming

시스템 콜, API

Dan-k 2020. 1. 18. 17:11
반응형

시스템 프로그래밍 핵심 기술 - 시스템콜과 API

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

    • 시스템 콜 (System call)

    • C 라이브러리

    • C 컴파일러

→ 사용자 영역에서의 시스템 프로그래밍

  •  시스템 콜 : 운영체제 리소스나 서비스 요청을 위해, 사용자 영역에서 커널영역으로 들어가는 함수

    • 주요 시스템 콜 : read(), write(), open() 등

    • 리눅스/유닉스는 C언어로 만들어져 있어서 시스템콜도 C언어로 구현

  • 시스템 콜 구현 방법

    • eax 레지스터에 시스템 콜 번호 넣고

    • ebx 레지스터에 시스템 콜에 해당하는 인자값을 넣고

    • 소프트웨어 인터럽트 명령을 호출하면서 0X80 값을 넘겨줌

  •  
    • CPU는 사용자 모드를 커널 모드로 바꿔줌

    • IDT(Interrupt Descripotr Table)에서 0X80에 해당하는 주소함수)를 찾아서 실행

    • syster_call() 함수에서 eax로부터 시스템 콜 번호를 찾아서 해당번호에 맞는 시스템 콜 함수로 이동

    • 해당 시스템 콜 함수 실행 후 다시 커널 모드에서 사용자모드로 변경하고 다음 코드 실행

 

API(Application Programming Interface)

    • 응용프로그램과 분리된 하위 호환 인터페이스

      • 시스템 콜 래퍼, 입출력 라이브러리 등

    • 동적 라이브러리 → 어떤 실행 파일의 실행이 필요할때만 해당 라이브러리가 프로세스위로 올려져서 해당 프로세스를 실행할 수 있도록 되어있는 것

 

위 자료는 fastcampus를 토대로 작성하였음을 밝힙니다.
728x90
반응형
LIST
Comments