시스템 콜은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스임
고급 언어로 작성된 프로그램들은 직접 시스템 콜을 사용할 수 없기 때문에 고급 API를 통해 시스템 콜에 접근하게 하는 방법임
일반적으로 사용자는 응용프로그램을 사용함, 이 때 이 응용프로그램은 유저레벨의 함수들만을 사용함 즉, 사용자 모드로써
하지만 그 정도 수준으로는 많은 기능을 구현하기 힘들어서 커널의 도움을 받아야함
이 커널 영역에서는 운영체제에서 프로그램이 구동되는데 있어 파일을 읽어 오거나, 파일을 쓰거나 혹은 화면에 메시지를 출력하는 등 많은 작업을 할 수 있는데 이를 사용자 모드, 유저레벨에서는 사용할 수 없음
그래서 시스템 콜을 활용해서 이런 커널 영역의 기능을 사용자 모드가 사용 가능하게 그렇게 전환을 한 후 직접적으로 하드웨어에 접근해서 필요한 기능에 대해서 작업을 수행할 권한이 이용가능함
이러한 시스템 콜의 경우 커널 모드에서만 실행할 수 있도록 설계가 됨
통상적으로 시스템 콜은 여러 종류의 기능으로 나뉘어져 있음, 각 시스템 콜에는 번호가 할당되고 시스템 콜 인터페이스는 이러한 번호에 따라 인덱스 되는 테이블을 유지함 예를 들어 open()
시스템 콜을 하는 경우 아래와 같이 이루어짐