基本概念因为本文是概述篇,所以通过直译文档,结合个人理解给出.①应用程序使用ABI(application binary interface,应用程序二进制接口)运行.ABI包含了用户级ISA和一组与AEE(application execution environment,应用程序执行环境)交互的接口.ABI对应用程序隐藏了AEE细节,以便在实现AEE时具有更大灵活性.②传统操作系统支持多个应用程序执行,每个应用程序通过ABI与操作系统通信,操作系统提供AEE.就像ABI与AEE交互一样,RISC-V操作系统通过SBI(supervisor binary interface,管理员二进制接口)与SEE(supervisor execution environment,管理员执行环境)交互.SBI由用户级ISA和管理员级ISA以及一组SBI函数组成.SEE可以是低端硬件平台的boot_loader和BIOS风格的IO系统,也可以是高端服务器中由管理员提供的虚拟机,又或者是主机操作系统上一个转换层.不同特权模式的实现栈③RISC-V特权级别一个RISC-V hart(硬件线程)总是以某种特权级别运行.特权级别用于在软件堆栈的不同组件之间提供保护,尝试执行当前特权模式不允许的操作将引发异常,这些异常可以导致hart进入底层执行环境(如切换到更高特权级别).→注意!特权级别(privilege level)和特权模式(privilege mode)分离i)特权级别指软件代码本身设计时基于的权限等级,例如supervisor级操作系统,是为S级别设计的软件,预期使用S级别特权指令和CSR.ii)特权模式指软件实际运行时硬件所处的权限状态(如M/S/U模式).硬件通过特权模式限制指令和资源访问权限.④机器模式(M模式)在RISC-V硬件平台中具有最高权限,并且是唯一的强制特权级别.M模式下运行的代码通常具有高度可信度,因为它能直接访问底层硬件资源(如中断控制器和内存管理单元).M模式可用于管理RISC-V上的安全执行环境,例如实现可信启动或隔离运行域.→每个特权级别都有一组核心的特权ISA扩展.⑤允许的特权模式组合许多RISC-V实现至少支持用户模式(U模式),以保护系统的其余部分免受应用程序影响.还可以添加S模式,以便在监管级操作系统与SEE之间提供隔离.⑥debug模式可以支持片外调试或制造测试.debug模式(D模式)可以视为额外的一种特权模式,其访问权限甚至高于M模式.supervisor(监督级)和hypervisor(虚拟化级)设计问题/难点①RISC-V特权架构设计遵循的核心原则:为上层软件提供最小但足够的硬件支持,使其能够构建安全高效的系统.→i)Supervisor的核心功能是为操作系统运行提供支持主要解决以下隔离保护问题特权级别隔离 - 防止用户应用程序执行特权指令如修改页表或访问敏感寄存器确保系统稳定性内存隔离 - 隔离各应用程序的内存空间防止相互干扰安全上下文切换 - 实现应用程序与操作系统之间的高效安全切换如处理系统调用和中断异常外部中断处理 - 提供硬件中断的安全接管和处理机制ii)hypervisor的核心功能是提供虚拟机监控支持主要解决两个关键隔离问题一是客户操作系统与hypervisor之间的隔离二是不同客户操作系统之间的隔离。其实现机制包括以下可选特性H模式特权控制当客户OS运行在S模式时某些敏感特权指令会被截获并由hypervisor处理避免直接修改物理硬件状态内存虚拟化客户OS误以为独占全部物理内存实际上其访问的是客户物理地址hypervisor需完成两级地址转换客户物理地址→真实物理地址中断虚拟化物理中断首先由hypervisor接收再精准注入到目标虚拟机设备/I/O虚拟化实现多个虚拟机对物理设备的安全高效共享方案原理①supervisor-操作系统级隔离i) 特权模式S模式Supervisor ModeCPU 可执行所有特权指令。U模式User Mode执行特权指令会触发异常并 trap 至 S 模式的异常处理程序。ii) 基于页表的虚拟内存SV 方案如 SV39/SV48操作系统通过satp寄存器控制进程页表实现虚拟地址到物理地址的转换。不同进程的satp指向不同页表确保虚拟地址空间映射至独立物理区域实现内存隔离。页表条目的权限位R/W/X和用户位U提供页级权限控制例如用户程序无法修改仅 S 模式可写的内核代码页。iii) 异常和中断的委托机制RISC-V 提供medelegMachine Exception Delegation和midelegMachine Interrupt Delegation寄存器。M 模式固件如 OpenSBI可将特定异常如ecall、缺页异常和中断如时钟中断、外部中断委托给 S 模式直接处理。iv) 安全的上下文切换通过ecall指令、寄存器保护及状态保护机制实现。②hypervisor-虚拟化级隔离i) 特权模式降级与陷阱虚拟化H 模式Hypervisor Mode运行时Guest OS 运行于 VS 模式Virtualized Supervisor本质上是受限的 S 模式。当 Guest OS 执行敏感指令如sfence.vma、wfi或访问其 CSR如satp、sstatus时硬件会触发虚拟化管理指令异常Virtual Instruction Exceptiontrap 至 H 模式。Hypervisor 模拟指令效果更新虚拟状态如 Guest 的vsatp而非物理状态。ii) 两级地址转换GVA → GPA由 Guest OS 管理的 Guest 页表vsatp指向完成硬件自动处理Hypervisor 不介入。GPA → PA由 Hypervisor 管理的第二阶段页表完成其基地址存储在hgatpHypervisor Guest Address Translation and Protection寄存器中。iii) 中断和异常的虚拟化Hypervisor 通过新增 CSR如hvip、vsie、vstvec为每个虚拟机模拟和注入虚拟中断。例如物理定时器中断到来时Hypervisor 可设置虚拟机的虚拟中断待定位。下次调度该虚拟机时硬件自动触发虚拟中断使其感知为自身的定时器中断。