Virtualization Techniques (IN2125) (Lecture)

Lecturer (assistant)
  • Josef Weidendorfer
TermWintersemester 2021/22
Language of instructionEnglish
DatesSee TUMonline


- Classification of Virtual Machines - Operating System Virtualization - ISA Virtualization - Interpretation - Binary Translation - Dynamic Optimization - Process Virtual Machines - high-Level Language Virtual Machines - HW/SW-Codesign Virtual Machines - System Virtual Machines - Multiprocessor Virtualization - Applications

This lecture will be held in English.

Email Lecturer: Josef Weidendorfer

Time: Every Wednesday, 14:00 - 16:30 (15 min break in the middle).

(Update 5.10.21) There is a room booked for this lecture (FMI 00.13.009A) and we may switch to hybrid lecture (both presence and online attendance possible) at some point during the semester, but the first date (20.10.21) definitly will be given as online Zoom meeting. The link will be distributed to registered participants via EMail a few days before the first lecture. For later presence, note that the 3G rule needs to be ensured: you must be either vaccinated ("geimpft") against, recovered ("genesen") from, or tested ("getestet") negative on Covid-19, with according certificate. This would be checked during the partial-presence lecture.

First lecture: Wednesday, October 20, 2021. Last lecture: February 9, 2022.



The written exam will take place on Tuesday, Feb 15, 2022. Start is 11:30. New location: MW 0001, Gustav-Niemann-Hörsaal (5510.EG.001)

Current plan is a presence exam. Please be there 10-15 minutes early.


Duration: 75 minutes.


An example exam from WS10/11 can be found here (exam will be 75 minutes not 60 minutes as this one from WS10/11).



During the semester, instead of the lecture, there will be 3 labs spanning the timeframe of one lecture each, with date announced in advance. Topics for the labs are getting insights into the working of a process VM, Java JVM, and a system VM.


Date Topic Comments / Material
Oct 20 Organization Via Zoom. Slides Organization, Slides IntroHomework 1, Recording
Oct 27 Introduction (1) Via Zoom. Recording
Nov 3 Introduction (2) Hybrid. Recording
Nov 10 ISA Emulation (1) Slides ISA EmulationHomework 2, C code for Homework 2, Recording
Nov 17 ISA Emulation (2) Recording
Nov 24 ISA Emulation (3) Recording - Solution Homework 2 Task 1+2
Dec 1 Lab 1: Valgrind

From 14:00 - 17:00 via Zoom. Task SheetTutorial Slides,
Valgrind 3.18.1 sourcesObserver tool skeleton patch,

solution task 3 patch, partial recording

Dec 8 Process-VMs (1) Slides Process-VMs, Solution HW2 Task 1-3, Recording
Dec 15 Process-VMs (2) Recording
Dec 22 Process-VMs (3) Online via Zoom. Recording, Solution HW2 Task4
Jan 12


Online via Zoom. Slides HLL-VMs, Recording
Jan 19 Lab 2: JVM From 14:00 - 17:00 via Zoom. Task Sheet, Byte Code Assembler Jasmin,
Byte Code Verifier, Sources OpenJDK Hotspot, recording
Jan 26 HLL-VMs (2),
ystem-VMs (1)
Online via Zoom. Slides System-VMsSolution Homework 2,
Feb 2 System-VMs (2) Online via Zoom. Recording
(last slide in System-VMs relevant for exam: slide 36, without slide 28)
Feb 9 System-VMs (3) /
Lab3: LGuest+Hypercalls /
Exam Q & A
From 14:00 - 17:00 via Zoom. Recording.
Lecture slides discussed are not relevant for exam
Material for Lab3: Task Sheet with answers, LGuest PDF
Feb 15 Exam See above

Student Presentations

A student presentation, done well, will give you a bonus grade of 0.3 for the final exam. 


Should be 15-20 min. Topics can be motivation/techniques/benchmarks of existing VM implementations, for example (also propose your own!): related to Process-VMs: QEmu, Rosetta, related to OS-level virtualisation: Docker, Singularity. Related to HLL-VM: platform (bytecode) used in Python, .NET related to System-VMs: Xen, KVM



  • 10.11.21 J.S. -  Namespaces and CGroups in Linux - slides
  • 17.11.21 V.G. - HW2, task 1
  • 8.12.21: M.M. - Containers for HPC - slides
  • 8.12.21: C.D. - HW2, task 3 - code
  • 15.12.21: V.W: Rosetta 2
  • 22.12.21: B.S. - WebAsm
  • 22.12.21: J.S. - HW2, task 4
  • 9.2.22: V.H. - System-VM Backup with KVM