학교 공부하면서 이미 거친 내용들이다.
하지만 대뜸 물어본다면 정확하게 대답할 자신이 없으니 일단 정리한다.
- 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 |
댓글