eVisor adalah hypervisor logam telanjang ringan (tipe 1) yang ditulis dalam C ++. Proyek ini dimaksudkan untuk digunakan dalam sistem tertanam (perangkat ARM64) dan untuk tujuan pendidikan.
Evisor Demo Video @ YouTube - Nuttx berjalan di Raspberry PI4

Silakan membaca ゼロからのハイパーバイザ自作入門 juga jika Anda tertarik. Ini adalah buku Jepang tentang menciptakan hypervisor Anda sendiri.
Disarankan untuk menggunakan Ubuntu 22.04 dengan dentang 14. Saat ini, perangkat lunak ini mungkin tidak dapat dibangun di Ubuntu 24 atau lebih tinggi.
sudo apt install cmake clang llvm Perangkat lunak ini tidak menggunakan C ++ Standart Libraries (libstdc ++), tetapi jika Anda menekan kesalahan pembuatan CMake berikut, cobalah untuk menginstal 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 . Pengaturan Kartu SD untuk Rasberry PI4 (lihat config/raspi4/config.txt untuk pengaturan detail):
cp config/raspi4/config.txt < path_to_sdcard > /bootSalin file gambar NutTX ke kartu SD:
cp examples/nuttx/nuttx.bin < path_to_sdcard > /bootSalin file gambar Evisor ke kartu SD:
cp build/kernel.bin < path_to_sdcard > /boot/kernel.binLog konsol dan output serial ditetapkan ke UART0 (GPIO 14, GPIO 15), dengan laju baud 115200bps.
sudo minicom -D /dev/ttyUSB0
sudo apt install qemu-system-arm Perhatikan bahwa QEMU 9.0 atau lebih tinggi diperlukan untuk menjalankan perangkat lunak ini. Silakan lihat Unduh 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.logTerima kasih khusus karena saya secara khusus merujuk mereka pada tahap awal pengembangan.