본문 바로가기
IT 지식

OS, Kernel, Shell

by ballena 2021. 7. 14.

학교 공부하면서 이미 거친 내용들이다.

하지만 대뜸 물어본다면 정확하게 대답할 자신이 없으니 일단 정리한다.

 

  • OS(Operation System)

컴퓨터를 사용하기 위해 필요한 SW. 컴퓨터를 사용하며 실행한 모든 프로그램은 OS에서 관리/제어된다.

OS의 첫 번째 목적은 컴퓨터의 HW 관리다. 단순히 HW라고 말하면 별거 없나 싶지만, HW라는 것은 곧 컴퓨터의 모든 자원을 말한다. 컴퓨터의 자원 관리 능력이 좋다면, 컴퓨터의 전체적인 성능 또한 좋아질 것이다.

사용자를 대신해 HW를 관리한다는 점에서 사용자에게 편의를 제공하는 역할도 한다고 볼 수 있다.

-> Performance & Convenience

 

응용 프로그램(Application Program)은 HW 자원을 직접적으로 사용하는 것이 아니라 OS가 제공하는 자원만을 사용할 수 있다. 즉 OS가 다르면 응용 프로그램이 실행되지 않을 수도 있다.

 

 

  • Kernel

OS의 핵심이 되는 프로그램 중 하나. 시스템의 모든 것을 통제한다.

OS의 다른 부분/App 실행에 필요한 여러 가지 서비스를 제공한다.

 

OS의 가장 하부에서 돌아가며 HW 자원을 프로세스에 분배하고, 프로세스 제어, 시스템 콜 등을 수행한다. 오늘날 대부분의 OS는 Kernel 위에 여러 계층을 깔아 올린 것이다. 즉 kernel이 망가지면 OS도 망가진다.

 

종류를 나누면 여러 가지가 있지만, 가장 많이 알려진 것은 아래 3가지다.

1. 단일형(monolithic) kernel

: I/O, 네트워크, 디바이스 지원 등 OS에서 일어나는 모든 일을 하나의 kernel이 처리한다. 속도가 빠르고 설계가 편리하다. 하지만 kernel의 크기가 커지고, 안정성에 있어서 문제가 생길 수 있다.

예시) 리눅스, 유닉스 계열, Windows 9x, Mac 8.6 이하

 

2. microkernal

: 시스템 콜 등의 서비스, 디바이스 관리를 제외한다. 단일형의 단점이었던 kernel의 크기를 줄이고, 안정성/보안을 높였다. 대신 전체적 성능은 저하된다.

예시) 지르콘, 퓨시아 등

 

3. 혼합형(hybrid) kernel

: 단일형 kernel에 microkernel 설계를 넣어 만든 방식.

예시) XNU, iOS, NT kernel 등

 

 

  • Shell

OS에서 kernel과 사용자 사이에 있는 프로그램(인터페이스)이다. 사용자가 입력하는 명령을 해석하고, kernel에 요청하고, 결과를 출력한다. '명령어 해석기'라고도 한다. 껍데기(Shell)를 통해 내부의 kernel에 접근한다, 는 개념이라고 한다. Command Line Shell(CLI)와 Graphic User Shell(GUI)로 구분된다.

평소에 콘솔 창이나 터미널 창이라고 생각하면 될 것 같다(제대로 따지면 다르겠지만).

리눅스 표준 쉘인 Bash, C언어 기반의 C Shell(csh), Korn Shell(ksh) 등이 있다.

'IT 지식' 카테고리의 다른 글

RAM, ROM  (0) 2021.07.14
CI, CD  (0) 2021.07.14
Runtime, Process  (0) 2021.07.14
프로비저닝(Provisioning)  (0) 2021.07.12
클라우드 인프라(Cloud Infrastructure)  (0) 2021.07.12

댓글