RISC-V에서 Privilege Mode는 프로세서에서 실행되는 소프트웨어가 시스템 자원에 대해 얼마나 많은 제어와 접근을 가질 수 있는지를 결정합니다. Privilege Mode는 보안을 구현하고, 서로 다른 소프트웨어를 분리하며, 사용자 수준의 응용 프로그램이 운영 체제나 하드웨어에 직접적으로 간섭하지 않도록 보장하는 데 매우 중요합니다.
RISC-V Privilege Mode
RISC-V는 여러 가지 Privilege Mode를 정의하며, 각각은 소프트웨어 스택의 다른 계층을 위해 설계되었습니다:
사용자 모드 (U-mode):
목적: 이 모드는 가장 낮은 특권 수준으로, 주로 사용자 응용 프로그램을 실행하는 데 사용됩니다. 이 모드는 중요한 시스템 자원에 대한 접근을 제한하여 사용자 프로그램이 하드웨어나 민감한 시스템 설정에 직접 접근하지 못하도록 합니다.
특징: U-mode에서 프로그램은 자신의 메모리 공간에만 접근할 수 있으며, 제한된 명령어 세트만 사용할 수 있습니다. 하드웨어 자원에 직접 접근하거나, 시스템 설정을 변경하거나, 운영 체제의 도움 없이 I/O 작업을 수행할 수 없습니다.
사용 예: 워드 프로세서, 웹 브라우저, 게임과 같은 일반적인 사용자 응용 프로그램.
슈퍼바이저 모드 (S-mode):
목적: 이 모드는 운영 체제 커널이 하드웨어 자원, 메모리, 시스템 수준 작업을 관리하는 데 사용됩니다. S-mode는 U-mode보다 높은 특권을 가지며, 더 민감한 작업을 수행할 수 있습니다.
특징: S-mode에서는 하드웨어에 직접 접근하고, 메모리 보호를 관리하며, 시스템 전체 설정을 제어할 수 있습니다. 또한 U-mode 응용 프로그램을 관리하며, 메모리 할당, 프로세스 스케줄링, I/O 작업 등을 처리할 수 있습니다.
사용 예: 리눅스와 같은 운영 체제 커널은 사용자 응용 프로그램을 대신해 하드웨어 자원을 제어하고 관리해야 합니다.
머신 모드 (M-mode):
목적: M-mode는 가장 높은 특권 수준이며, 주로 펌웨어나 하드웨어를 직접 초기화하고 관리하는 저수준 시스템 소프트웨어에 사용됩니다.
특징: M-mode는 모든 하드웨어 자원에 완전히 접근할 수 있으며, 시스템 전체를 구성하고 관리할 수 있는 능력을 가지고 있습니다. 시스템 부팅, 인터럽트 처리, 낮은 Privilege Mode로의 진입 등을 담당합니다.
사용 예: 부트로더, 펌웨어, 시스템 관리 소프트웨어.
하이퍼바이저 모드 (H-mode) (옵션, RISC-V 하이퍼바이저 확장에서 정의됨):
목적: H-mode는 가상 머신(VM)을 관리하는 하이퍼바이저에 사용됩니다. 이 모드는 M-mode와 S-mode 사이에 위치하며, 가상화 지원을 제공합니다.
특징: H-mode는 하이퍼바이저가 S-mode의 여러 가상 인스턴스를 관리할 수 있게 하여, 가상 머신을 생성하고 관리할 수 있도록 합니다.
사용 예: KVM이나 Xen과 같은 가상화 소프트웨어는 동일한 하드웨어에서 여러 운영 체제를 실행할 수 있습니다.
Privilege Mode가 함께 작동하는 방법
모드 간 전환: 낮은 Privilege Mode(U-mode)에서 실행되는 소프트웨어는 시스템 호출을 통해 더 높은 Privilege Mode(S-mode)에서 서비스를 요청할 수 있습니다. 예를 들어, 사용자 응용 프로그램이 I/O 작업을 수행해야 할 때, 시스템 호출을 통해 제어가 S-mode의 운영 체제 커널로 전환됩니다.
보안 및 격리: 특권 수준은 서로 다른 소프트웨어 종류를 분리하여 보안을 강화하도록 설계되었습니다. 예를 들어, U-mode의 사용자 응용 프로그램은 S-mode에서 실행되는 운영 체제 커널에 접근하거나 이를 수정할 수 없기 때문에 버그나 악성 소프트웨어가 시스템을 손상시키지 못하게 됩니다.
트랩 처리: 낮은 Privilege Mode에서 제한된 작업을 실행하려고 시도하면 트랩이 발생하고, 더 높은 Privilege Mode(U-mode에서 S-mode로)로 제어가 전환되어 적절한 조치를 취할 수 있습니다.
'RISC-V > Privilege Mode' 카테고리의 다른 글
[RISC-V] Privilege level(PL) 이란 (0) | 2024.06.12 |
---|---|
[RISC-V] Privilege Mode(권한 모드)를 왜 잘 알아야 할까 (0) | 2024.06.11 |