CS680V -- Virtualization

Prof. Kartik Gopalan

Computer Science, Binghamton University

[Syllabus] [Lectures] [Policies]

Syllabus

Virtualization has revolutionized modern computing and communication systems over the last decade. Virtualization techniques play a key role across a range of computing environments, from small mobile devices, embedded systems, and personal computers to large-scale data centers, enterprise networks, and cloud platforms besides influencing the emerging IoT and connected vehicle platforms. Virtualization techniques have fundamental functional, security, and performance implications across the computing stack, from processor architectures, operating systems, runtime systems, and networking infrastructure. This course will cover fundamental techniques as well as cutting-edge research problems in virtualization. Topics include:

Course Information:

Prerequisites:

Evaluation Criteria:

Course Materials:

The primary source of course materials will be papers posted online on this website.

Recommended Material:

Credit hours and course expectations: This is a 3-credit course, which means that students are expected to do at least 9 to 9.5 hours of course-related work or activity each week during the semester. This includes scheduled class lecture/discussion meeting times as well as time spent completing assigned readings, studying for tests and examinations, participating in lab sessions, preparing written assignments, and other course-related tasks.

[Syllabus] [Lectures] [Policies]

Lecture Slides

More lectures and slides will be added below as the course progresses.

Please clear your browser's cache and reload this page to see the latest listing of slides below.

  1. Introduction to Virtual Machines
  2. Principles of System Design
  3. Conditions for ISA Virtualizability
  4. Para-virtualization and Hybrid VMs: Disco, VMWare, Xen
  5. Unikernels
  6. Multi-kernels
  7. Barrelfish OS
  8. Library OS: Graphene
  9. Live Hypervisor Replacement
  10. Dune and Arrakis
  11. Elasticizing Linux via Joint Disaggregation of Memory and Computation
  12. Library OS for Containers
[Syllabus] [Lectures] [Policies]