시스템 호출(system call)은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 C나 C++과 같은 고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법이다.
일반적으로 유저들이 사용하는 프로그램인 응용프로그램은 유저레벨의 함수들로는 많은 기능을 구현하기 힘듭니다. 커널(Kernel)의 도움이 필요하기에 중간에 커널모드로 전환해서 작업을 수행해야합니다. 이 과정중 수행활 권한이 있어야하기에 반드시 시스템 콜을 통해 수행해야만 합니다.
권한은 아무렇게 함수를 호출했을 경우 시스템 전체를 망가뜨릴 수 있기때문에 꼭 필요합니다. 따라서 이러한 명령어들은 특별하게 커널 모드에서만 실행할 수 있도록 설계되었고, 만약 유저 모드에서 시스템 콜을 호출할 경우에는 운영체제에서 불법적인 접근이라 여기고 trap을 발생시킵니다.
출처
https://fjvbn2003.tistory.com/306 [Chaos and Order:티스토리]