운영체제란 사용자가 컴퓨터를 편하게 사용할 수 있게 모든 하드웨어 자원을 관리해주는 프로그램으로, 중앙 처리 장치(CPU), 주기억 장치, 보조 기억 장치, 각종 입출력 장치 등이 정상적으로 작동하도록 감시하고 제어하며, 응용 프로그램이 사용하는 CPU 시간, 기억 공간, 입출력 등 하드웨어 자원을 할당하고 배분하는 시스템 관리 기능을 기본으로 제공한다.
쉽게 이야기하면, 운영체제는 중간자 역할을 한다고 할 수 있는데, 사용자의 하드웨어 이용을 편리하게 해주고 시스템 입장에서는 자원을 총괄 관리해주는 프로그램인 것이다.
운영체제는 커널, 인터페이스, 시스템 콜, 드라이버 총 4가지 요소로 구성되어 있다.
📌 커널 Kernel
: 가장 중요한 커널은 용어 자체도 핵심과 같은 의미로 전반적인 프로세스를 뜻한다. 프로세스 관리, 메모리 관리, 저장공간 관리, 연결된 장치 관리 등 컴퓨터에 속한 모든 자원을 관리하는 역할을 한다.
📌 인터페이스 Interface
: 인터페이스는 사용자의 명령을 커널에 전달하고 실행 결과를 사용자에게 알려주는 역할을 한다. 인터페이스의 종류는 크게 2가지로 나뉜다.
📌 시스템 콜 System Call
: 사용자나 프로그램이 직접적으로 컴퓨터 자원에 접근하는 것을 막고 커널을 보호하기 위해서 만들어진 코드 집합이다. 커널에는 중요한 내용이 담겨있기 때문에 아무나 쉽게 접근할 수 없도록 시스템 콜을 통해서만 호출할 수 있도록 설계되어 있다.
📌 드라이버 Driver
: 드라이버는 프린터, 키보드 및 디스크 드라이브와 같은 하드웨어 장치와 운영체제 간의 통신을 가능하게 해주는 소프트웨어이다. 프린터나 키보드와 같은 특수한 목적을 가진 하드웨어는 드라이버를 설치해 소통할 수 있도록 만들어 주어야 한다.
운영체제를 통해 안정적이고 효율적인 동작을 하기 위해서는 사용자 또는 응용프로그램이 직접 하드웨어에 접근하는 것을 방지해야 한다. 따라서 운영체제는 User Mode, Kernel Mode 2가지 모드로 컴퓨터를 제어하는 데, 두 모드는 요청에 따라 시스템 콜을 통해서 전환된다.
User Mode
Kernel Mode
개인용 컴퓨터(PC)에 사용되는 대표적인 OS로는 Microsoft의 Windows, IBM의 OS/2, Apple의 Mac OS 등이 있으며, 서버용으로는 AT&T가 개발한 유닉스(UNIX), 리눅스(Linux) 등이 있고 모바일 기기용으로 구글의 안드로이드(Android), 애플의 iOS 등이 있다.