패스트캠퍼스 컴퓨터 공학자 따라잡기 온라인 완주반
운영체제(이준희 님) 파트를 수강하며 공부한 내용을 정리한 자료입니다.
운영체제의 역할
사용자 <-> 응용 프로그램 <-> 운영체제 <-> 하드웨어
운영체제는 쉘(Shell)이라고 하는 사용자 인터페이스를 제공한다.
쉘(Shell):
사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
쉘은 터미널 환경(CLI)와 일반 사용자가 주로 사용하는 GUI 환경 두 종류로 분류CLI: Command Line Interface
GUI: Graphical User Interface
운영체제는 사용자뿐만 아니라, 응용 프로그램을 위해서도 인터페이스를 제공한다.
시스템 콜(System Call):
- 시스템 콜 또는 시스템 호출 인터페이스 (운영체제 기능을 호출하는 함수)
- 운영체제는 운영체제의 각 기능을 응용 프로그램들이 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공한다.
- 각 프로그래밍 언어가 운영체제와 상호작용하기 위한 API 내부에는 시스템 콜을 호출하는 형태로 만들어지는 경우가 대부분이다.
여기서 API(Application Programming Interface)는 응용 프로그램과 운영체제(또 하나의 응용 프로그램)이 상호작용하는 창구라고 이해할 수 있다. API는 open()
와 같은 함수들이 모여있는 라이브러리(library) 형태로 제공된다. (C library)
시스템 콜과 상호작용하기 위한 API 규격의 예: POSIX API, 윈도우 API
이처럼 응용 프로그램은 API를 통해 시스템 콜과 상호작용하여 요청을 OS에 전달할 수 있다.
위 그림을 통해 유추할 수 있겠지만, Shell 또한 응용 프로그램의 일종이다.