시스템콜이란 운영체제가 커널에 접근하기 위한 인터페이스이며 응용 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할때 사용한다.
만약 응용 프로그램이 I/O 요청을 위한 트랩을 발동했다면 다음과 같은 과정이 발생한다.
프로세스나 스레드에서 운영체제로 어떠한 요청을 할때, 시스템콜이라는 인터페이스와 커널을 거쳐 운영체제에 전달된다.
이 시스템 콜은 하나의 추상화 계층으로 이를 통해 네트워크 통신이나 데이터베이스와 같은 낮은 단계의 영역 처리에 대한 부분을 많이 신경 쓰지 않고 프로그램을 구현할 수 있는 장점이 있다.
시스템콜이 작동될때 modebit을 참고해서 유저모드와 커널모드를 구분한다. modebit은 1 또는 0의 값을 가지는 플래그 변수이다. 카메라, 키보드 등의 I/O 디바이스는 운영체제를 통해서만 작동해야한다.
예를 들어 카메라 프로그램을 사용할때 유저모드를 기반으로 카메라가 켜진다면, 사용자가 의도하지 않았는데 공격자가 갑자기 카메라를 켜는 상황이 발생 할 수 있다. 이러한 상황을 막기 위해서 커널모드를 통해서 작동하게 해야 한다. 이를 위한 장치가 modebit으로 0은 커널모드, 1은 유저모드로 설정된다.