Tools guide

We will be using QEMU/KVM to develop lvisor. This is much easier than using a physical machine. You will need an x86-64 machine (or VM) with processor support for Intel VT-x virtualization extensions, running Linux configured to enable KVM.

CSE-provided host

We have arranged for a Linux machine with KVM support to be made available to you for the duration of the quarter: amlia.cs.washington.edu. You can use ssh to connect to this machine using your CSE credentials just like attu.

We have built the various toolchains required to run lvisor on amlia, so that you can use it for development and testing. To enable the toolchain and add the programs to your path, you can (in bash) run

$ source ~lukenels/usr/bin/setup_tools.sh

You may find it useful to add this to your .bash_profile.

Other hosts

You may also choose to develop and test lvisor on your own Linux machine or VM. If you do so, you will need to install various software, either through your package manager or from source.

  • QEMU (v2.10.1)
  • gcc (v7.2.0)
  • binutils (v2.29.1)
  • git

Version numbers indicate the version tested by the course staff. Newer / older versions may also work.

On Ubuntu, you can install these with:

$ sudo apt install qemu gcc git binutils

To make sure KVM has been correctly configured, check if the file /dev/kvm exists and if nested virtualization is enabled.

$ cat /sys/module/kvm_intel/parameters/nested
Y

If the above file does not exist or its content is not Y, you need to reconfigure KVM.

It is possible to develop lvisor on macOS using the Bochs emulator, though this is not recommended.