CharlyCst / miralis

Miralis is an experimental system that virtualises firmware
https://miralis-firmware.github.io/
MIT License
13 stars 0 forks source link

Add support for Linux on QEMU virt board #78

Closed CharlyCst closed 3 months ago

CharlyCst commented 4 months ago

The goal of this issue is to run Linux on top of Mirage, using a virtualized OpenSBI.

Context

OpenSBI is a standard RISC-V firmware, that is a software that runs in M-mode (the highest privilege mode) and provides a standardized execution environment for S-mode software (e.g. the OS). By default running a kernel on RISC-V QEMU will first load OpenSBI as the firmware, similar to how x86_64 QEMU loads SeaBIOS by default.

The goal of Mirage is to virtualize the firmware to enforce strong isolation guarantees. To do so Mirage deprivileges the firmware and virtualize privileged instructions using a trap & emulate approach. See the architecture diagram in the Mirage doc for reference.

So far we managed to run a virtualized OpenSBI with a toy kernel (which you can reproduce with just run opensbi, see readme for detailed instructions). The goal of this issue is to run a real kernel, i.e. Linux, on top of our virtualized OpenSBI.

How to proceed

CharlyCst commented 3 months ago

Fixed in #92