A simple Rust-VMM based hypervisor.
Rust-VMM reference implementation prototype.
The reference implementation bears 2 major targets:
Simple
General purposed
Binary
Subcommands
The reference implementation works in the way of subcommands. The command format looks like:
glue [FLAGS] [subcommand] [OPTIONS]
Process diagram of RUN subcommand
Usage examples
HELP subcommand
$ ./target/debug/glue --help
glue 0.1
Rust-VMM based hypervisor.
USAGE:
glue [FLAGS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
-v, --verbose Sets the level of verbosity
SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
pause Pause the virtual machine
resume Resume the virtual machine
run Start the virtual machine
stop Stop the virtual machine
list List all virtual machines
RUN subcommand
$ ./target/debug/glue run --help
glue-run
Start the virtual machine
USAGE:
glue run [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-c, --cpus <cpus> Number of CPUs [default: 1]
-d, --disk <FILE> Disk image
-k, --kernel <FILE> Kernel to boot
-m, --mem <mem> Memory size in MB [default: 512]
-n, --name <name> A name for the VM
-p, --params <params> Kernel command line arguments
PAUSE subcommand
$ ./target/debug/glue pause --help
glue-pause
Pause the virtual machine
USAGE:
glue pause [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-n, --name <name> Name of the VM
Build - Customize hypervisor (glue) by specifying testing manifest file (it’s Cargo.toml by default) with different features/components and build.
cargo build --manifest-path ./tests/build/example.toml
Basic - Basic functions of VM.
Devices - Device integration tests.
Features - Features of rust-vmm components and their combinations.
Performance - Performance tests, typically:
This is to be discussed. Should we use Pytest like Firecracker do or use Rust test?