시스템 콜
또는 시스템 호출 인터페이스
라고 합니다. 운영체제가 운영체제의 각 기능(I/O Device 제어 등)을 사용할 수 있도록 시스템콜이라는 명령 또는 함수를 제공해요. 보통 C/C++ 같은 고급 언어로 작성된 프로그램은 직접 시스템 콜
에 접근할 수 없어요. 그래서 API(Application Programming Interface)를 통해 운영체제의 기능을 사용할 수 있도록 합니다.
도서관으로 비유하자면,
도서관으로 비유한 관계
- 운영체제 도서관
- 응용 프로그램 시민
- 하드웨어(시스템 리소스) 책
시민응용 프로그램
은 도서관운영체제
에 원하는 책시스템 리소스
을 찾아서 시민에게 빌려줍니다. 책 대여 기간이 만료되면 도서관이 해당 책을 회수하죠.
이처럼, 운영체제
는 응용 프로그램
이 요청하는 CPU 가용 시간을 제공해요. 그리고 운영체제
는 응용 프로그램
이 요청하는 I/O Device
같은 시스템 리소스
사용을 허가하거나 제어를 합니다.
사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램이에요. 흔히들 터미널 환경CLI(Command Line Interface)
과 GUI
환경 두 종류로 분류됩니다.
프로그램을 만드는 개발자는 개발을 하려면 기본적으로 운영체제가 제공하는 기능(feat. 파일 입출력, etc)을 사용해야 합니다. 바로 이걸 시스템콜이라고 합니다. 아까도 언급했듯이 C/C++ 같은 고급 언어로는 직접 접근할 수 없어 따로 API 형태로 제공됩니다. 개념을 설명했으니 이를 도식화 하면 아래와 같아요.