💡운영체제의 핵심 개념
운영체제는 사용자를 위한 프로그램이 아니라, 사용자가 실행하는 프로그램을 위한 프로그램이다.
즉, 응용 프로그램이 안전하고 효율적으로 실행되도록 시스템 자원을 관리하고 제어하는 핵심적인 소프트웨어다.
운영체제의 구성 요소 🧩
✅ 커널 (Kernel)
운영체제의 핵심 서비스를 담당하는 부분으로, 다음과 같은 역할을 수행한다:
- 하드웨어 자원 접근 및 조작
- 프로그램이 올바르고 안전하게 실행되도록 제어
- 프로세스, 메모리, 입출력 등의 핵심 기능 관리
커널은 메모리 상에서 커널 모드로만 접근 가능한 보호된 영역이다.
✅ 사용자 인터페이스 (User Interface)
운영체제와 사용자가 상호작용할 수 있는 통로이다. 커널에 포함된 기능은 아니다.
- GUI (Graphic User Interface): 그래픽 요소를 통해 상호작용 (예: 윈도우, 아이콘)
- CLI (Command Line Interface): 명령어 기반 상호작용 (예: 터미널, 쉘)
이중 모드 (Dual Mode) 🖥️
CPU는 명령어를 실행할 때 두 가지 모드 중 하나로 동작한다.
👤 사용자 모드 (User Mode)
- 일반적인 응용 프로그램이 실행되는 영역
- 커널 영역 접근 불가, 하드웨어 직접 조작 불가
🛡️ 커널 모드 (Kernel Mode)
- 커널 코드를 실행할 수 있는 운영체제 전용 모드
- 모든 명령어와 하드웨어 자원 접근 가능
🔁 시스템 호출 (System Call)
사용자 모드에서 운영체제의 기능이 필요할 때, 커널 모드로 전환하기 위한 요청
- 일종의 인터럽트로 동작
- CPU는 현재 작업을 백업하고 커널로 진입 → 작업 수행 → 원래 작업으로 복귀
📂 시스템 호출의 예시
- 프로세스 생성/종료
- 파일 생성/열기/저장
- 디렉터리 관리
- 디스크 및 장치 접근
운영체제의 핵심 서비스 🔧
📌 프로세스 관리
- 프로세스: 실행 중인 프로그램
- CPU는 한 번에 하나의 프로세스만 실행 → CPU 스케줄링 필요
📌 메모리 관리
- 실행 중인 프로세스를 메모리에 적절히 할당/해제
📌 입출력 관리
📌 파일 시스템 관리
핵심 정리 🧠
- 운영체제의 핵심 기능은 커널이 담당
- 사용자 프로세스가 운영체제 서비스를 사용하려면 → 시스템 콜을 통해 커널 모드로 전환
- 커널은 CPU, 메모리, 입출력 장치, 파일 시스템 등을 관리하는 중심 요소
더 알아보기: 가상 머신과 하이퍼바이저 모드 🧱
🧪 가상 머신(Virtual Machine)
- 소프트웨어로 구현한 가상의 컴퓨터
- 하나의 컴퓨터에 여러 운영체제와 프로그램 설치 가능
- 가상 머신 자체는 응용 프로그램으로 취급됨
🔐 하이퍼바이저 모드 (Hypervisor Mode)
- 가상 머신이 커널 모드로 직접 접근하기 어려운 문제를 해결하기 위해 생긴 새로운 CPU 모드
- 하드웨어 가상화를 지원하는 CPU는 커널 모드 외에 하이퍼바이저 전용 모드를 제공
📘 운영체제를 이해하는 것은 시스템을 제어하고 최적화할 수 있는 첫걸음이다.