본문 바로가기

Study for Backend/Computer Science

[컴퓨터 공학] 운영체제

 

운영체제 (Operating Systems , OS)

- 사용자의 하드웨어, 시스템 리소스 (Hardware) 를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어

- 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할

- 응용프로그램 제어 (소프트웨어를 응용프로그램이라고 함)

- 일반적으로 커널에 여러가지 기능이 추가된 상태

 

 

Kernel

- 운영체제의 핵심이라 할 수 있는 매우 중요한 소프트웨어로 하드웨어의 자원을 자원이 필요한 프로세스에 나눠주고, 덩달아 프로세스 제어(작업 관리), 메모리 제어, 프로그램이 운영 체제에 요구하는 시스템 콜 등을 수행하는 부분이며 운영 체제의 가장 아래 계층에서 돌아감
- 현재 많이 사용되고 있는 운영 체제는 커널 위에 여러 가지 소프트웨어 계층을 올린 것

 

 

Shell

- 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램

쉘은 터미널 환경 CLI 와 GUI 환경 두 종류로 분류됨 (Linux bash)

 

 

System Call

- 시스템 호출 인터페이스는 운영체제가 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공

- 커널 모드로 실행하려면 반드시 시스템 콜을 사용해야 함

user mode 는 응용 프로그램이 사용하고 kernel mode는 OS가 사용함

 

API (Application Programming Interface)

- 함수 또는 라이브러리로서, API 내부에는 필요시 해당 운영체제의 시스템이 콜을 호출하는 형태로 만들어짐

 

 

운영체제를 만드는 순서

1. Kernel 을 개발

2. 시스템콜을 개발

3. 시스템콜 기반, 프로그래밍 언어별 라이브러리 개발 (API)

4. 지원되는 프로그래밍 언어로 Shell 프로그램 개발

5. 지원되는 프로그래밍 언어로 응용 프로그램 개발