class: center, middle background-image: url(include/title-background.svg) # .right[Virtualisation 101] ## .right[Logistics]
.right[Pierre Olivier] .right[[pierre.olivier@manchester.ac.uk](mailto:pierre.olivier@manchester.ac.uk)] --- # The Instructor .center[
**Pierre Olivier** Senior lecturer at the University of Manchester ] .medium[ Mail: [pierre.olivier@manchester.ac.uk](mailto:pierre.olivier@manchester.ac.uk) Website: https://sites.google.com/view/pierreolivier/ Google Scholar: https://scholar.google.com/citations?user=rBr5a7UAAAAJ ] --- # Website
.center[**All slides + lab exercise are available online in HTML/PDF format**:
**https://olivierpierre.github.io/virt-101**
] --- # Course Unit Outline 1. **Introduction to Virtualisation** (~1h) -- 2. **Operating Systems Basics** (~1h) -- 3. **The Theory of Virtualisation** (~1h) -- 4. **Hardware Support for Virtualisation: CPU and Memory** (~1h) -- 5. **I/O Virtualisation** (~1h) -- 6. **Lightweight Virtualisation: Containers & Unikernels** (~1h) -- 7. Lab Exercise: **Virtualising a Simple I/O Device** (~2h) --- # Lab Exercise .left3col[ - **Virtualising a simple I/O device: a random number generator** - Given the device specs, implements its behaviour in software in the Qemu virtual machine monitor - Build a driver in the guest (Linux) kernel - Run a VM with an application accessing the device through the driver - 2 weeks to complete, **deadline 21/01/2025** - Will be marked out of 20 ] .right3col[
] --- # Required Software/Hardware for the Lab Exercise - **Debian or a Debian derivative (e.g. Ubuntu, Mint, etc.) with KVM support** - Either natively installed - Or in a VM (e.g. VirtualBox, an image will be provided) - **You'll also get remote SSH access to a container with KVM support** To check for KVM support, verify the presence of the file `/dev/kvm`: ```sh $ ls -l /dev/kvm crw-rw----+ 1 root kvm 10, 232 Jan 4 11:33 /dev/kvm ``` --- # Reading List - Highly Recommended: **Hardware and Software Support for Virtualization**, *Edouard Bugnion, Jason Nieh and Dan Tsafrir*, Morgan & Claypool, 2017 (this course is partially based on this book, referred to as **the textbook** in these slides) -- - Recommended books: - **The Definitive Guide to the Xen Hypervisor**. *David Chisnall*, Pearson Education, 2008 - **Modern Operating Systems**, *Andrew Tannenbaum and Herbert Bos*, Prentice Hall Press, 2014 - **Principles of Computer System Design: an Introduction**, *Jerome Saltzer and Frans Kaashoek*, Morgan Kaufmann, 2009 - **Linux Kernel Development**, *Robert Love*, Addison-Wesley Professional, 2010