ARM 아키텍처를 다룰 때 Exception Level(EL) 개념을 이해하는 것은 필수적이다. EL은 CPU의 실행 권한을 계층적으로 나누는 설계 방식으로, 운영체제(OS), 하이퍼바이저, 보안 펌웨어 등이 각자의 역할에 맞게 동작할 수 있도록 한다.
이번 글에서는 ARM의 EL 구조를 개괄적으로 살펴보고, EL0(사용자 모드)와 EL1(커널 모드)에 집중하여 설명하겠다.
⸻
1. Exception Level(EL) 개요
ARM 아키텍처(AArch64)에서는 총 4개의 Exception Level(EL0~EL3)을 제공하며, 숫자가 클수록 높은 권한을 갖는다.

⸻
2. EL0 – 사용자 모드 (User Mode)
EL0는 애플리케이션이 실행되는 공간으로, 직접 하드웨어 리소스에 접근할 수 없다.
운영체제(OS)가 제공하는 시스템 호출(System Call, SVC)을 통해 EL1 커널과 통신해야 한다.
예시: Android/iOS 앱, 웹 브라우저, 터미널 프로세스 등
<EL0에서 EL1으로 시스템 호출하는 과정>
1. 애플리케이션이 read() 같은 시스템 호출을 실행
2. SVC(Supervisor Call) 명령어를 사용하여 EL1으로 진입
3. EL1(커널)이 요청을 처리한 후 EL0로 다시 반환
<EL0에서 EL1로의 전환 예제 (Assembly)>
mov x8, #64 // 시스템 호출 번호 (예: getpid)
svc #0 // EL1으로 진입
svc #0 명령어를 실행하면 EL0 → EL1으로 전환되어 커널에서 시스템 호출을 처리함
⸻
3. EL1 – 커널 모드 (Kernel Mode)
EL1은 운영체제 커널이 실행되는 공간으로, EL0의 요청을 처리하며 메모리 관리, 스케줄링, 인터럽트 처리를 수행한다.
예시: Linux, FreeBSD, RTOS 등
<EL1의 주요 역할>
• 가상 메모리(Virtual Memory) 관리
• 스케줄링 및 프로세스 격리
• 인터럽트 및 예외(Exception) 처리
EL1은 EL0 프로세스를 보호하고 제어하는 역할을 하므로, EL0가 허용되지 않은 동작(예: 메모리 침범)을 시도하면 이를 감지하고 종료할 수 있다.
⸻
4. 결론
ARM 시스템에서는 EL0(사용자 모드)와 EL1(커널 모드)가 핵심적인 역할을 수행하며,
• EL0는 애플리케이션이 실행되는 공간
• EL1은 OS 커널이 실행되며 EL0 프로세스를 관리
다음 글에서는 EL2(하이퍼바이저 모드)와 EL3(보안 모드)를 살펴보겠다.
'임베디드' 카테고리의 다른 글
Endianess란 무엇일까? Big-Endian 과 Little-Endian (0) | 2025.03.21 |
---|---|
ARM Exception Level(EL) 알아보기(2): EL2(하이퍼바이저)와 EL3(보안 모드) (0) | 2025.03.19 |
Flash 메모리: 대용량 비휘발성 저장 장치 (1) | 2025.03.17 |
EEPROM: 대표적인 비휘발성 메모리 (0) | 2025.03.15 |
UART (Universal Asynchronous Receiver/Transmitter) 통신의 이해 (2) | 2025.03.13 |