Skip to content

johannst/mini-kvm-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kvm-rs

Rust Rustdoc

A playground for the Kernel Virtual Machine (KVM) in rust to learn about KVM, rust ffi and x86_64.

The sources are structured as follows:

  • src/ provides a small library as abstraction over the raw KVM API.
  • examples/ contains example VMs using the library above.
  • guest/ contains the guest source code which is run inside the VMs.
  • sysdeps/ contains helper to generate some KVM constants from the system header (executed by build.rs).

Documentation

Rustdoc for this crate is avalable at johannst.github.io/mini-kvm-rs.

Requirements

  • Kernel with kvm support and permissions to open /dev/kvm.
  • Compiler & binuitls for generating the guest images.

Real Mode (16bit) example

Runs the real mode VM with the guest program.

# Once: Build the guest binary image.
make -C guest

# Run the Real Mode example.
cargo run --example real_mode

Long Mode (64bit) example

Runs the long mode VM with the guest program.

# Once: Build the guest binary image.
make -C guest

# Run the Long Mode example.
cargo run --example long_mode

License

This project is licensed under the MIT license.