evisor
1.0.0
eVisor C ++로 작성된 가벼운 중간 베어 메탈 하이퍼 바이저 (유형 1)입니다. 이 프로젝트는 임베디드 시스템 (ARM64 장치) 및 교육 목적으로 사용하기위한 것입니다.
Evisor Demo Video @ YouTube -Nuttx 실행 Raspberry Pi4에서 실행됩니다.

관심이 있으시면 자유롭게 읽으십시오. 자신만의 하이퍼 바이저를 만드는 일본어 책입니다.
Clang 14와 함께 Ubuntu 22.04를 사용하는 것이 좋습니다. 현재이 소프트웨어는 Ubuntu 24 이상에서 구축되지 않을 수 있습니다.
sudo apt install cmake clang llvm 이 소프트웨어는 C ++ standart 라이브러리 (libstdc ++)를 사용하지 않지만 다음 cmake 빌드 오류를 누르면 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 . Rasberry PI4의 SD 카드 설정 (세부 사항 설정은 Config/Raspi4/Config.txt 참조) :
cp config/raspi4/config.txt < path_to_sdcard > /bootNuttx 이미지 파일을 SD 카드에 복사하십시오.
cp examples/nuttx/nuttx.bin < path_to_sdcard > /bootEvisor 이미지 파일을 SD 카드에 복사하십시오.
cp build/kernel.bin < path_to_sdcard > /boot/kernel.bin직렬 콘솔 및 출력 로그는 115200bps의 보드 속도로 UART0 (GPIO 14, GPIO 15)에 할당됩니다.
sudo minicom -D /dev/ttyUSB0
sudo apt install qemu-system-arm 이 소프트웨어를 실행하려면 QEMU 9.0 이상이 필요합니다. 다운로드 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.log특히 개발 초기 단계에서 특히 언급했기 때문에 특별한 감사를드립니다.