Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Logistics

The slides for this chapter are available here.

Website

All the lecture materials including slides and lecture notes, as well as the lab exercise, are available online: https://olivierpierre.github.io.

Outline

This unit is divided into chapters covering the following topics:

  • Introduction to Virtualisation (~1h)
  • Operating Systems Basics (~1h)
  • The Theory of Virtualisation (~1h)
  • Hardware Support for Virtualisation: CPU and Memory (~1h)
  • I/O Virtualisation (~1h)
  • Lightweight Virtualisation: Containers & Unikernels (~1h)
  • Lab Exercise: Virtualising a Simple I/O Device (~2h)

Lab Exercise

We will conclude the day with a lab exercise in which we will virtualise a simple I/O device: a random number generator. Given the device specs, the goal of the exercise will be to implement its behaviour in software in the Qemu virtual machine monitor. That will involve building a driver in the guest (Linux) kernel, and running a VM with an application accessing the device through the driver. You will be given 2 weeks to complete that exercise, with a deadline set for 20/01/2026 (January 20, 2026). The exercise will be marked out of 20.

To complete the lab exercise you will be given remote (SSH) access to a Debian-based development environment. You can also use your personal machine if you have the proper software environment and hardware resources: a Debian or a Debian derivative (e.g. Ubuntu, Mint, etc.) with KVM support and 20 GB of storage free. It can be either natively installed on your personal machine, or running in a VM (e.g. VirtualBox, an image will be provided).

You can find more information about the exercise and its logistic on the corresponding part accessible from the left menu.

Reading List

The course unit is self-contained and in absolute you do not need to read any additional book to complete it. Still, a highly recommended book is:

Hardware and Software Support for Virtualization by Edouard Bugnion, Jason Nieh and Dan Tsafrir, Morgan & Claypool, 2017

This course unit is partially based on this book, which will be referred to as the textbook here.

A few other interesting books: