사용자 모드(User Mode)와 커널 모드(Kernel Mode)
사용자 모드(User Mode)
- 정의:
- 응용프로그램이 실행되는 모드로, 운영체제의 커널 및 하드웨어에 직접 접근하지 못하도록 제한된 상태.
- 안전성을 위해 특정한 작업만 수행 가능.
- 특징:
- 제한된 권한: 하드웨어 자원(CPU, 메모리, I/O 등)에 직접 접근 불가.
- 운영체제를 통한 접근: 시스템 호출(System Call)을 통해서만 커널 기능을 사용할 수 있음.
- 응용프로그램 실행: 사용자 모드에서 동작하는 프로그램은 운영체제가 제공하는 API를 통해 작업 요청.
- 예:
- 워드 프로세서, 웹 브라우저, 게임과 같은 응용프로그램이 실행되는 모드.
커널 모드(Kernel Mode)
- 정의:
- 운영체제의 핵심인 커널이 실행되는 모드로, 하드웨어 및 시스템 자원에 대한 모든 권한을 가진 상태.
- 하드웨어를 제어하거나 중요한 작업(메모리 관리, 프로세스 스케줄링 등)을 수행.
- 특징:
- 무제한 권한: CPU, 메모리, I/O 장치 등 모든 자원에 접근 가능.
- 운영체제 기능 실행: 파일 시스템 접근, 프로세스 생성, 네트워크 통신 등 중요한 작업 수행.
- 안정성 중요: 커널 모드에서 발생한 오류는 전체 시스템에 치명적 영향을 줄 수 있음.
- 예:
- 프로세스 스케줄링, 메모리 관리, 파일 시스템 동작 등.
사용자 모드와 커널 모드의 전환
- 시스템 호출(System Call):
- 응용프로그램이 커널 기능(파일 I/O, 메모리 할당 등)을 사용하려면 시스템 호출을 통해 사용자 모드에서 커널 모드로 전환.
- 이 과정에서 모드 비트(Mode Bit)가 변경되며, CPU가 사용자 모드 → 커널 모드로 전환.
- 인터럽트/예외(Interrupt/Exception):
- 입출력 장치 요청이나 예외 상황 발생 시, CPU가 커널 모드로 전환해 인터럽트를 처리.
- 종료 시 복귀:
- 작업이 끝나면 다시 사용자 모드로 돌아가 응용프로그램 실행을 이어감.
CPU Protection Ring
정의
- CPU Protection Ring은 프로세스와 커널이 CPU 자원에 접근하는 권한을 계층적 레벨로 나눈 구조.
- 시스템의 안정성과 보안을 강화하기 위해 권한을 4개의 레벨(Ring)로 분류.
Protection Ring 구조
Protection Ring은 다음과 같은 4개의 계층으로 구성되며, 각 계층은 낮은 숫자가 더 높은 권한을 가짐.
- Ring 0: 커널 모드.
- 운영체제 커널이 실행.
- CPU, 메모리, I/O 등 모든 하드웨어 자원에 접근 가능.
- 시스템의 핵심 기능 수행.
- 예: OS 커널, 드라이버.
- Ring 1: 운영체제 서비스
- 커널에 직접 포함되지 않는 OS 서브시스템이 실행.
- 하드웨어 접근 권한이 제한적.
- 예: 일부 OS 관리 서비스(예: 디바이스 관리).
- Ring 2: 드라이버, 라이브러리
- 장치 드라이버나 소프트웨어 라이브러리 같은 특수 작업을 수행.
- 커널보다 권한이 낮으며, 제한된 하드웨어 접근 권한을 가짐.
- 예: 네트워크 드라이버.
- Ring 3: 사용자 모드
- 응용프로그램이 실행.
- 하드웨어 자원에 직접 접근할 수 없으며, 커넝레 요청(System Call)을 통해 작업 수행.
- 예: 워드 프로세서, 웹 브라우저, 사용자 애플리케이션.
Protection Ring의 목적
- 보안 강화:
- 권한이 낮은 응용프로그램(Ring 3)이 직접 커널(Ring 0)에 접근할 수 없도록 제한.
- 잘못된 코드나 악성 소프트웨어가 커널에 접근하지 못하게 방어.
- 안정성 보장:
- 낮은 권한의 소프트웨어 오류가 시스템 전체에 영향을 주지 않도록 보호.
- 높은 권한 레벨은 안정성이 더 중요하며, 오류 발생 시 전체 시스템에 영향을 미칠 수 있음.
- 효율적인 자원 관리:
- 권한에 따라 적합한 레벨에서 작업을 수행하도록 설계.
정리
- 사용자 모드: 응용프로그램이 동작하는 제한된 권한의 모드.
- 커널 모드: 운영체제 커널이 동작하며 하드웨어에 직접 접근 가능한 권한의 모드.
- Protection Ring: CPU 권한 계층으로, 커널과 응용프로그램 간의 보안 및 안정성을 보장.