We present the development and implementation of a virtual machine monitor (VMM) for the RISC-V processor architecture. The VMM enables static resource partitioning, where processor cores, memory, and devices are assigned to virtual machines at startup and remain fixed throughout operation. Such resource partitioning ensures mutual isolation between virtual machines and predictable behavior, which is essential for safety-critical systems. The VMM leverages the hardware virtualization extension and supports two-stage address translation, virtualization of serial devices, emulation of the external interrupt controller, and paravirtualization of block devices via an enlightened driver. We evaluate the VMM on the QEMU riscv64-virt platform across several configurations, including the concurrent execution of two virtual machines running the xv6 operating system, each with a dedicated serial device, disk, and emulated interrupt controller
|