시스템 콜이란 무엇인가?

hoon·2023년 2월 14일
0

시스템콜

시스템콜이란 운영체제가 커널에 접근하기 위한 인터페이스이며 응용 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할때 사용한다.

만약 응용 프로그램이 I/O 요청을 위한 트랩을 발동했다면 다음과 같은 과정이 발생한다.

  1. 응용 프로그램이 I/O 요청 트랩발동
  2. 올바른 I/O요청인지 확인
  3. 유저모드가 시스템콜을 통해
  4. 커널모드로 변환후 커널함수를 실행
  • I/O 요청 : 입출력 함수, 데이터베이스, 네트워크, 파일 접근 등에 관한 일

프로세스나 스레드에서 운영체제로 어떠한 요청을 할때, 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 전달된다.

이 시스템 콜은 하나의 추상화 계층으로 이를 통해 네트워크 통신이나 데이터베이스와 같은 낮은 단계의 영역 처리에 대한 부분을 많이 신경 쓰지 않고 프로그램을 구현할 수 있는 장점이 있다.

modebit

시스템콜이 작동될때 modebit을 참고해서 유저모드와 커널모드를 구분한다. modebit은 1 또는 0의 값을 가지는 플래그 변수이다. 카메라, 키보드 등의 I/O 디바이스는 운영체제를 통해서만 작동해야한다.

예를 들어 카메라 프로그램을 사용할때 유저모드를 기반으로 카메라가 켜진다면, 사용자가 의도하지 않았는데 공격자가 갑자기 카메라를 켜는 상황이 발생 할 수 있다. 이러한 상황을 막기 위해서 커널모드를 통해서 작동하게 해야 한다. 이를 위한 장치가 modebit으로 0은 커널모드, 1은 유저모드로 설정된다.

profile
프론트엔드 학습 과정을 기록하고 있습니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN