A minimal Type-I hypervisor based on AArch64 & implemented in rust, capable of booting Linux / ArceOS on qemu.
Ported from RVM-Tutorial.
- Lightweight enough, only 3K+ LoC
- Supported guest OS: ArceOS, Linux
- Guest/host memory isolation with nested paging
- Device emulation and passthrough
- multi-vCPU and multi-guest support (without schedule)
Install cargo-binutils to use rust-objcopy
and rust-objdump
tools:
$ cargo install cargo-binutils
cross compilation tool chain (>= 12.2.Rel1) and QEMU (>= 7.0.0) are also needed.
cd hypervisor
make run LOG=info SMP=4 GUEST=arceos NET=y FS=y
git apply run_linux.patch
cd hypervisor
make run LOG=info SMP=2 GUEST=linux NET=y FS=y