eVisor es un hipervisor de metal desnudo liviano (tipo 1) escrito en C ++. Este proyecto está destinado a su uso en sistemas integrados (dispositivos ARM64) y con fines educativos.
Video de demostración del evisor @ YouTube - Nuttx se ejecuta en Raspberry Pi4

No dude en leer ゼロからのハイパーバイザ自作入門 también si está interesado. Es un libro japonés sobre la creación de su propio hipervisor.
Se recomienda utilizar Ubuntu 22.04 con Clang 14. Actualmente, este software puede no ser construido en Ubuntu 24 o superior.
sudo apt install cmake clang llvm Este software no usa bibliotecas C ++ Standart (libstdc ++), pero si presiona un error de compilación de cmake siguiente, intente instalar libstdc++-12-dev .
/usr/bin/ld: cannot find -lstdc++: No such file or directorymkdir build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/cross-toolchain-clang-aarch64.cmake
-DCMAKE_BUILD_TYPE={Debug | Release}
-DBOARD={raspi4 | qemu}
-DTEST_GUEST={serial | test_app | nuttx | linux}mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE={Debug | Release}
-DBOARD={raspi4 | qemu}
-DTEST_GUEST={serial | test_app | nuttx | linux}mkdir build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/cross-toolchain-clang-aarch64.cmake
-DCMAKE_BUILD_TYPE=Release -DBOARD=raspi4 -DTEST_GUEST=nuttx
cmake --build . Configurar tarjeta SD para Rasberry Pi4 (consulte config/raspi4/config.txt para la configuración de detalles):
cp config/raspi4/config.txt < path_to_sdcard > /bootCopie el archivo de imagen Nuttx a la tarjeta SD:
cp examples/nuttx/nuttx.bin < path_to_sdcard > /bootCopie el archivo de imagen del evisor en la tarjeta SD:
cp build/kernel.bin < path_to_sdcard > /boot/kernel.binLa consola en serie y los registros de salida se asignan a UART0 (GPIO 14, GPIO 15), con una tasa de baudios de 115200bps.
sudo minicom -D /dev/ttyUSB0
sudo apt install qemu-system-arm Tenga en cuenta que QEMU 9.0 o superior es necesario para ejecutar este software. Consulte Descargar QEMU.
mkdir build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/cross-toolchain-clang-aarch64.cmake
-DCMAKE_BUILD_TYPE=Release -DBOARD=qemu -DTEST_GUEST=nuttx
cmake --build . qemu-system-aarch64
-machine virt,virtualization=on,gic-version=2
-cpu cortex-a72 -smp 4
-m 4G
-nographic -net none
-chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline
-kernel ./kernel.elf
-drive file=../examples/nuttx/nuttx.bin,format=raw,id=drive0,if=none
-device virtio-blk-device,drive=drive0,bus=virtio-mmio-bus.0qemu-system-aarch64
-machine virt,virtualization=on,gic-version=2
-cpu cortex-a72 -smp 4
-m 4G
-nographic -net none
-chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline
-kernel ./kernel.elf
-drive file=../examples/nuttx/nuttx.bin,format=raw,id=drive0,if=none
-device virtio-blk-device,drive=drive0,bus=virtio-mmio-bus.0
-d mmu,in_asm,guest_errors,int,exec,page -D qemu_trace.logUn agradecimiento especial los siguientes desde que me referí particularmente a ellos en la etapa temprana del desarrollo.