Skip to content
Add support of micro VMs

A network driver is developed based on the Virtio Over MMIO interface, which is part of the Virtual I/O Device Specification. Details are published at https://docs.oasis-open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.html

This network driver doesn't depend on the PCI bus and can be used within micro VMs. The current version is developed and tested on Qemu's microvm virtual platform. Details are published at https://qemu.readthedocs.io/en/latest/system/i386/microvm.html

The current version can be tested with the example web server of RustyHermit's Git repository. Please use following command to build the web server:

cargo build --no-default-features --features smoltcp -p httpd
Afterwards, the following command starts the web server withinthe microvm:

qemu-system-x86_64 -M microvm,x-option-roms=off,pit=off,pic=off,rtc=on,auto-kernel-cmdline=off -global virtio-mmio.force-legacy=off -nodefaults -no-user-config -display none -smp 1 -m 1G -serial stdio -kernel loader/target/x86_64-unknown-hermit-loader/debug/rusty-loader -initrd target/x86_64-unknown-hermit/debug/httpd -enable-kvm -cpu host -device isa-debug-exit,iobase=0xf4,iosize=0x04 -netdev tap,id=tap10,ifname=tap10,script=no,downscript=no -device virtio-net-device,netdev=tap10