RISC-V Privilege 모드 개요
RISC-V는 시스템의 안정성과 보안을 위해 계층적인 privilege 모드를 도입한다. 각 모드는 서로 다른 권한 수준과 역할을 가지며, 소프트웨어와 하드웨어 간의 명확한 경계를 형성한다.
1. Privilege 모드란?
RISC-V는 하드웨어 스레드(hart)가 실행되는 환경에서 여러 privilege 모드를 지원한다. 각 모드는 소프트웨어가 접근할 수 있는 자원과 트랩(예외 및 인터럽트) 처리 방식을 다르게 정의한다. 기본적으로 RISC-V는 아래 세 가지 모드를 제공한다.
각 모드의 역할
2.1. M-모드 (Machine Mode)
- 시스템 초기화, 하드웨어 설정, 보안 제어를 담당한다.
- 가장 높은 특권을 가지며 모든 자원에 완전한 접근 권한을 부여한다.
- 트랩 처리, 디버깅, 시스템 콜 등 저수준 작업을 수행한다.
- 보안 관점에서 가장 높은 권한을 가진다.
2.2. S-모드 (Supervisor Mode)
- 운영체제 커널이 동작하는 모드이다.
- 사용자 모드에서 발생한 예외나 시스템 호출을 받아 처리한다.
- 가상 메모리 관리, 인터럽트 제어 등 OS 핵심 기능을 수행한다.
- OS를 실행하려면 반드시 S-모드를 구현해야 한다.
2.3. U-모드 (User Mode)
- 일반 응용 프로그램이 실행되는 모드이다.
- 제한된 권한만 부여되어 잘못된 소프트웨어가 시스템 전체에 영향을 주지 않도록 보호한다.
- 응용 프로그램은 U-모드에서 동작하며, OS의 시스템 호출을 통해 상위 모드 기능을 사용한다.
- 보안 관점에서 가장 낮은 특권을 가진다.
3. 응용 환경에 따른 구현 차이
- 운영체제 환경: 리눅스와 같은 완전한 운영체제를 실행하려면 S-모드를 지원해야 한다. OS 커널은 S-모드에서 동작하며, 사용자 모드에서 발생한 트랩을 처리한다.
- 베어메탈 환경: 운영체제 없이 직접 애플리케이션을 실행하는 경우, M-모드만 구현해도 충분하다. 베어메탈 시스템은 단일 특권 수준(M-모드)에서 전체 시스템을 제어한다.
4. 보안 관점에서의 권한 계층
- U-모드는 가장 낮은 특권을 가지며, 응용 프로그램 실행에 제한된 접근 권한을 부여한다.
- S-모드는 중간 수준의 특권을 가지며, 운영체제 커널이 하드웨어 자원과 사용자 간의 중재를 수행한다.
- M-모드는 가장 높은 특권을 가지며, 시스템의 전체 제어권을 갖는다.
따라서 보안 계층은 U-모드 < S-모드 < M-모드 순으로 구성된다.
5. 정리
RISC-V는 계층별 privilege 모드를 도입하여 소프트웨어의 안전성과 시스템 보안을 강화한다.
- 일반 응용 프로그램은 U-모드에서 실행되며, 제한된 권한으로 동작한다.
- 운영체제 커널은 S-모드에서 실행되어 사용자 모드의 요청을 받아 처리한다.
- 시스템 초기화, 디버깅, 보안 제어 등 중요한 작업은 M-모드에서 수행된다.
- 베어메탈 환경에서는 M-모드만 구현해도 애플리케이션 실행이 가능하다.
이러한 계층 구조는 각 모드에 맞는 역할 분담과 보호를 가능하게 하여, 시스템 전체의 안정성과 보안을 확보한다.
Related
- RISC-V Privileged Specification
Leave a comment