第 12 章:特权级与系统调用
学习目标
- 理解特权级概念
- 掌握系统调用机制
12.1 特权级
RISC-V 定义了 3 个特权级:
M-mode (Machine) - 最高权限
S-mode (Supervisor) - 操作系统
U-mode (User) - 用户程序
12.2 系统调用
用户程序通过 ecall 指令请求操作系统服务。
# write 系统调用
li a7, 64 # syscall number
li a0, 1 # fd (stdout)
la a1, msg # buffer
li a2, 13 # length
ecall
12.3 CSR 寄存器
控制和状态寄存器:
csrr t0, mstatus # 读取
csrw mstatus, t0 # 写入
实践练习
实现简单的系统调用。