-
Welcome to CS 378! We are going to learn about virtualization technologies, and we are going to do some interesting projects. This is a project-intensive course.
-
I don't teach with slides. This is going to be a discussion-based class. I'll make notes like these available, but you need to pay attention in class. There are no textbooks for this course.
-
Grading:
- 20% Midterm-1
- 20% Midterm-2
- 30% Project: implementing your own hypervisor
- 30% Project: contributing to an open-source repository related to virtualization
-
There are two projects in this class: an implementation-based project and an open-source project. Most of the learning will come from doing the projects!
-
Students work in groups for 2--4 for all projects
-
You can optionally do a research project with me instead of the open-source project. Come talk to me early if you want to do this.
-
Students learn a lot from doing the open-source project, but it takes a lot of time to set up. Start work on this early!
-
History of Virtualization
- Virtual machines go back to at least 1969: PDP-10 Virtual Machines
- Seminal work came out around this time: Formal Requirements for Virtualizable Third Generation Architectures, 1974
- Virtual machines started off as functional, but having poor performance
- A lot of progress towards good performance was made by 1997, resulting in another seminal paper: Disco: Running Commodity Operating Systems on Scalable Multiprocessors
- VMware started in 1998
- VMware Workstation in 1999
- VMware ESX Server in 2001
- Xen paper in SOSP 2003
- Nested virtualization paper in OSDI 2010
- Docker introduced containers in 2013
- Unikernels Queue article comes out in 2013
- AWS Lambda introduced in November 2014
-
The main force driving progress in virtualization is economics: virtualization allows better utilization of hardware for the provider, and lower costs for the user