eVisor ist ein leichter bloßem Metall-Hypervisor (Typ 1) in C ++ geschrieben. Dieses Projekt ist für die Verwendung in eingebetteten Systemen (ARM64 -Geräten) und für Bildungszwecke gedacht.
Evisor Demo Video @ YouTube - Nuttx läuft auf Raspberry Pi4

Bitte lesen Sie auch ゼロからのハイパーバイザ自作入門, wenn Sie interessiert sind. Es ist ein japanisches Buch über das Erstellen eines eigenen Hypervisors.
Es wird empfohlen, Ubuntu 22.04 mit Clang 14 zu verwenden. Derzeit ist diese Software möglicherweise nicht auf Ubuntu 24 oder höher gebaut.
sudo apt install cmake clang llvm Diese Software verwendet keine C ++ -Standart-Bibliotheken (libstdc ++). Wenn Sie jedoch einen folgenden CMake-Build-Fehler aufnehmen, versuchen Sie, libstdc++-12-dev zu installieren.
/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 . Setup SD -Karte für Rasberry PI4 (siehe Konfiguration/raspi4/config.txt für die Detaileinstellungen):
cp config/raspi4/config.txt < path_to_sdcard > /bootKopieren Sie die NUTTX -Bilddatei in die SD -Karte:
cp examples/nuttx/nuttx.bin < path_to_sdcard > /bootKopieren Sie die Evisor -Bilddatei in die SD -Karte:
cp build/kernel.bin < path_to_sdcard > /boot/kernel.binDie seriellen Konsolen- und Ausgangsprotokolle werden UART0 (GPIO 14, GPIO 15) mit einer Baud -Rate von 115200bit / s zugeordnet.
sudo minicom -D /dev/ttyUSB0
sudo apt install qemu-system-arm Beachten Sie, dass QEMU 9.0 oder höher erforderlich ist, um diese Software auszuführen. Bitte beachten Sie, dass QEMU herunterladen.
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.logBesonderer Dank geht an die Anhängerschaft, da ich sie im frühen Entwicklungsstadium besonders auf sie verwiesen habe.