시스템의 자원과 동작을 관리하는 소프트웨어
하드웨어를 관리하고 응용 프로그램과 하드웨어 사이에서 인터페이스 역할을 하며 시스템의 동작을 제어하는 시스템 소프트웨어
CPU, 메모리, 디스크 등의 컴퓨터 하드웨어를 효율적으로 관리하는 것
즉, 운영체제란 컴퓨터의 성능을 높이고 (performance) 사용자에게 편의 제공 (convenience) 을 목적으로 하는 컴퓨터 하드웨어 관리 프로그램이다.
운영체제는 크게 커널 (kernel) 과 쉘 (명령어 해석기, Command Interpreter, Shell) 로 나뉜다.
운영체제에서 작동하는 응용 프로그램을 관리한다. 현재 CPU를 점유해야 할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다.
1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND 등을 관리한다.
가상 메모리 : 물리 메모리의 한계를 극복하기 위해 나온 기술 (실제 메모리를 말하는 것이 아님!), 필요한 부분만 메모리에 부분적으로 적재 시킴
HDD : Hard Disk Drive
NAND flash memory : ROM (Read Only Memory) 에 속함, 비휘발성 메모리
TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야 한다. 현재 상용 OS들은 다양하고 많은 네트워크 프로토콜을 지원한다.
운영체제는 사용자 별로 프라이버시와 보안을 위해 개인 파일에 대해선 다른 사용자가 접근할 수 없도록 해야 한다. 이 밖에도 파일이나 시스템 자원에 접근 권한을 지정할 수 있도록 지원한다.
디바이스 드라이버 : 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램
운영체제는 시스템의 자원, 하드웨어를 관리한다. 시스템에는 여러 하드웨어가 붙어있는데, 이들을 운영체제에서 인식하고 관리하게 만들어 응용 프로그램이 하드웨어를 사용할 수 있게 만들어야 한다.
따라서, 운영체제 안에 하드웨어를 추상화 해주는 계층이 필요하다. 이 계층이 바로 디바이스 드라이버라고 불린다. 하드웨어의 종류가 많은 만큼, 운영체제 내부의 디바이스 드라이버도 많이 존재한다.
이러한 수많은 디바이스 드라이버들을 관리하는 기능 또한 운영체제가 맡고 있다.