Virtualization Technologies
This is the home page for the "Virtualization Technologies" course.
Here, you will find (in a badly-organised form) all the
material, slides, and information needed to attend the course
Lessons:
- First lesson: 2020/02/14, 9:30 -> 12:00
- Second lesson: 2020/02/21, 9:30 -> 12:00
- Third lesson: 2020/02/28, 9:30 -> 12:00
- Fourth lesson: 2020/03/09, 9:30 -> 12:00
- Fift lesson: 2020/03/16, 9:30 -> 12:00
- Sixth lesson: 2020/03/23, 9:30 -> 12:00
- Seventh lesson: 2020/03/30, 9:30 -> 12:00
- Eighth lesson: 2020/04/06, 9:30 -> 12:00
Project Ideas:
Remember: before starting to work on a project, contact me for details.
- Write a simple and minimalistic hypervisor for x86_64 or ARM using a programming language at your choice (WARNING! The hypervisor does not need to be complete; it just needs to show that you understood the basic virtualization technologies).
You can use trap and emulate or hardware assisted virtualization, at your choice.
If you also attended the Safe System Programming course, you can write it in Rust: it will count for both the courses.
- Write a minimalistic VM based on KVM, using a programming language at your choice. Implement only few simple devices (invented by you or based on virtio).
If you also attended the Safe System Programming course, you can write it in Rust: it will count for both the courses.
- Implement some simple container runtime, as described in the course (and as better detailed
here --- this tutorial is based on python, but you should use C, C++ or similar).
If you also attended the Safe System Programming course, you can write it in Rust: it will count for both the courses.
- Perform some experiments with multi-processor real-time virtual machines. You can try to verify existing schedulability tests, or you can work on schedulability analysis, or you can try to implement global scheduling in the guest in a correct way
- Experimentally evaluate the real-time performance of (single-processor and multi-processor) virtual machines, considering both scheduling and latencies
- Run some experiments with unikernels
- Write a simple Linux kernel modules that activates VT-x (or some form of hardware-assisted virtualization) and tries to run the host Linux kernel in non-root mode (something like vbh or similar). Enable EPT (or similar technologies) if possible.
Examples:
Links: