OS (Operating System)는 컴퓨터 하드웨어와 사용자(또는 프로그램) 사이에서 중재자 역할을 수행하는 소프트웨어다.
운영체제가 없다면, 우리는 하드웨어를 직접 제어해야 하며, 이는 매우 복잡하고 비효율적이다. OS는 하드웨어 자원을 관리하고, 여러 프로그램들이 효율적이고 안정적으로 실행될 수 있도록 도와준다.

운영체제는 크게 다음과 같은 역할을 수행한다:

| 역할 | 설명 |
|---|---|
| 프로세스 관리 | CPU를 여러 프로그램(프로세스) 사이에서 효율적으로 분배함 |
| 메모리 관리 | 프로그램이 사용할 메모리를 할당/해제하고 보호함 |
| 저장장치 관리 | 파일 시스템을 통해 데이터를 저장/읽기 처리함 |
| 입출력(I/O) 관리 | 키보드, 마우스, 프린터 등과의 입출력 흐름을 제어함 |
| 사용자 인터페이스 | GUI, CLI 등의 인터페이스를 제공해 사용자와 소통 가능하게 함 |
| 보안 및 접근 제어 | 사용자 인증, 권한 분리 등을 통해 시스템 자원을 보호함 |
운영체제는 다양한 형태로 존재한다:
단일 사용자 / 다중 사용자
예: Windows (단일 사용자 중심), Linux (다중 사용자 지원)
단일 작업 / 다중 작업(Multitasking)
여러 프로그램을 동시에 실행할 수 있는 기능
실시간 운영체제(RTOS)
정해진 시간 내에 응답이 필요한 임베디드 시스템용 OS
서버/데스크탑/모바일용 OS
목적에 따라 커널 구조, 기능 등이 다름 (예: Android, iOS, Windows Server)
운영체제의 핵심 부분으로, 하드웨어와 직접 통신하는 역할을 맡는다.
커널은 보통 다음과 같은 기능을 포함한다:

운영체제는 일반적으로 다음과 같은 구조를 가진다:
[ 사용자 프로그램 ]
↓
[ 시스템 콜 API ]
↓
[ 커널 (Kernel) ]
↓
[ 하드웨어 (CPU, Memory, I/O 등) ]
사용자 프로그램은 시스템 콜을 통해 커널에 요청하고, 커널은 하드웨어 자원을 제어하여 응답한다.
자원 관리 자동화
복잡한 메모리, CPU, 입출력 제어를 자동으로 처리
사용자 편의성 증대
CLI 또는 GUI 환경을 통해 직관적인 컴퓨터 사용 가능
보안과 안정성
무분별한 접근으로부터 시스템을 보호하고 충돌을 방지
멀티태스킹 지원
동시에 여러 작업을 수행할 수 있게 함