컴퓨터 구조와 운영체제
운영체제에 앞서 운영체제를 담는 컴퓨터에 대해 알아보자.
컴퓨터 구조는 정의에 따라 다르지만 크게 아래와 같이 구성된다.
컴퓨터 구성 요소는 CPU, 메모리, 입출력장치(I/O), 시스템버스로 구분(폰 노이만 구조)
- CPU(Central Processing Unit, 중앙처리장치): 명령어를 해석하여 실행하는 장치
- 메모리: 데이터의 상태, 명령어 등을 기록하는 장치로 주기억장치, 보조기억장치로 구분
- 주기억장치: 작업에 필요한 프로그램과 데이터를 저장하는 장소. 일반적으로 메모리를 말하면 주기억장치를 말하며 특히 램(RAM)을 가르키는 경우가 많음
- 보조기억장치: 보조메모리라고 불리며 데이터를 일시적 또는 영구적으로 저장하는 장소. 흔히 HDD, SDD를 가르키는 경우가 많으며, 2차 기억 장치의 역할을 함
- 메모리 관리 교체 알고리즘 : 데이터 I/O에 대한 관리
- 입출력장치: 키보드, 스피커, 마우스 등
- 시스템버스: 위의 각각 구성요소를 연결하고 데이터를 주고 받게 해주는 역할
운영체제(OS, Operationg System)
- 컴퓨터 시스템을 운영하고 관리하는 소프트웨어
- 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원을 사용할 수 있도록 지원 위키백과
- 운영체제의 종류로는 Window, MacOS, Linux(ubuntu, centos), Unix 등
Kernel, Shell
운영체제는 크게 커널(Kernel)과 흔히 Shell라고 하는 명령어 해석기(Command interpreter)로 구분된다.
커널(Kernel)
커널은 운영체제의 핵심으로 운영체제가 수행하는 모든 것을 통제하고 관리 및 저장하는 컴퓨터 프로그램이다.
커널의 역할은 아래와 같다.
- 보안
- 자원관리
- 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 한다.
- 특히 프로세스에 처리기를 할당하는 것을 스케줄링이라 한다.
- 추상화

셸(Shell)
셸은 사용자가 커널(운영체제)에 요청하는 명령어를 커널에 요청하고 그 결과를 출력하도록 하는 명령어 해석기이다.
위 그림에서 Applications과 Kernel 사이에 또는 Kernel에 별도로 요청을 보내는 곳에 위치하여 동작한다.
셸은 커널에 입력하는 별도의 프로그램이라 생각된다. 그렇기에 운영체제별 사용자마다의 셸이 구분되어 있다.
sh, bash, csh, ksh, zsh 등이 있다.
참고1: [운영체제(OS)] 1. 운영체제란?