[TIL] 시스템콜

cjkangme·2023년 7월 31일
0

TIL

목록 보기
16/35
post-custom-banner

시스템 콜

시스템 콜이란

  • 응용프로그램이 커널에 접근하기 위한 인터페이스이다.
  • 응용프로그램이 운영체제 서비스 이용을 위해 커널 함수를 호출할 때, 시스템 콜 인터페이스를 거쳐서 호출이 이루어진다.

운영체제 서비스의 예

  • 프로세스 관리 (프로세스 생성, 삭제 등)
  • 파일 관리 (접근, 조회, 수정 등)
  • 디바이스 관리 (웹캠, 프린터 등)
  • 시간 및 날짜 관리
  • 프로세스 간 통신

시스템 콜의 과정

  1. 응용 프로그램이 커널 함수 사용 요청 트랩(소프트웨어 인터럽트) 발동
  2. 올바른 요청인지 확인
  3. 시스템 콜을 통해 유저 모드에서 커널 모드로 전환 (modebit 변경)
  4. 커널 함수 실행
  5. 실행 완료 후 다시 유저 모드로 변환되어, 나머지 프로그램 코드 실행

modebit

  • 시스템콜이 작동할 때 현재 프로그램이 유저모드인지 커널모드인지를 구분하기 위한 비트
  • modebit = 0이면 커널모드, modebit = 1이면 유저모드를 나타냄

시스템 콜을 사용하는 이유

보안

  • 응용 프로그램이 운영체제의 관리 없이 마음대로 디바이스를 사용하거나 파일을 변경할 수 있게 되어 보안성이 취약해진다.
  • 대표적으로 공격자가 프로그램을 통해 웹캠을 마음대로 실행하여 사생활 침해 등이 발생할 수 있다.
    하지만 시스템 콜을 통해 I/O 디바이스인 웹캠을 운영체제를 통해서만 작동되도록하여 이를 방지할 수 있다. (완벽한 것은 아님)

유저 프로그램과 커널 분리

  • 유저프로그램은 커널 내부의 복잡한 파일 시스템이나 프로세스 생성 과정 등을 알지 못해도, 시스템 콜 인터페이스를 이용하는 방법만 알면 운영체제 서비스를 이용할 수 있다.
  • 즉 프로그램의 호환성이 증가하고 개발 생산성이 증가한다.
post-custom-banner

0개의 댓글