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私は開発の初期段階で特に彼らに言及したので、以下に特別に感謝します。