응용 프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스) 관계
위 3가지 관계를 도서관으로 비유해보자.
- 운영체제는 도서관
- 응용 프로그램을 사람
- 컴퓨터 하드웨어는 책
사람은 도서관에서 책(자원)을 빌리고(요청)
도서관은 빌리려는(요청하는) 책(자원)을 사람에게 빌려주고,
도서관은 기한이 다 되었을 때 빌린 사람에게 책(자원)을 회수한다.
위 비유를 정리하자면 다음과 같다.
- 운영체제는 응용 프로그램이 요청하는 메모리를 허가 및 분배
- 운영체제는 응용 프로그램이 요청하는 CPU 시간을 제공
- 운영체제는 응용 프로그래밍 요청하는 IO Devices 사용을 허가 및 제어

응용 프로그램이 제공하는 인터페이스
- 사용자
- 쉘(CLI - cmd, GUI - 윈도우 탐색기)
- 응용 프로그램
- API(Application Programming Interface) 함수 제공
응용 프로그램이 운영체제에게 요청하는 방법을 시스템콜 이라고 한다.
시스템 콜
- 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
- API 내부에는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분
정리하자면,
운영체제는 컴퓨터 하드웨어와 응용 프로그램을 관리하고, 사용자 인터페이스를 제공하기 위해 쉘 프로그램을 제공한다.
응용 프로그램이 운영체제 기능을 요청하기 위해서, 운영체제는 시스템 콜을 제공하는데, 시스템 콜을 직접 사용하기보다는, 시스템콜을 호출하는 각 언어별 api 형태로 제공한다.