CS680V -- Virtualization
Prof. Kartik Gopalan
Computer Science, Binghamton University
Virtualization has revolutionalized 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 platformsbesides 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:
- Architecture support for virtualization
- System virtual Machines
- Library Operating Systems
- Security and virtual environments
- Network Function Virtualization
- Live migration
- Virtualization-at scale in cloud computing and High-performance Computing
- Time: Friday 1:10PM to 4:10PM
- Location: ENGB G-14
- Instructor:Prof. Kartik Gopalan (email@example.com)
- Office Hours: Friday 12noon-1pm or by appointment.
- CS350 -- Undergraduate OS. You must be familiar with the fundamentals concepts in Operating Systems as covered in CS350.
- You must be proficient with C programming and use of debuggers (such as gdb).
- You must be comfortable working and programming in the Linux environment.
- 50% - Paper summaries
- 20% - Presentation, leading discussions, and participation
- 30% - Final paper
The primary source of course materials will be papers posted online on this website.
- Hardware and Software Support for Virtualization, Editors: Edouard Bugnion, Jason Nieh, and Dan Tsafrir. Synthesis Lectures in Computer Science, 2017. Morgan and Claypool Publishers. [PDF]
- Virtual Machines: Versatile Platforms for Systems and Processes, By James E. Smith Jim, Jr. Smith, Ravi Nair. Publisher Morgan Kaufmann. Excerpts available online.
- Modern Operating Systems, by Andrew Tanenbaum, Prentice Hall; 4th edition.
- Kernighan, Ritchie, The C Programming Language
- Linux Device Drivers, 3rd Edition by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman. (This book is also available online at http://lwn.net/Kernel/LDD3/).
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.
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.
- Introduction to Virtual Machines
- Principles of System Design
- Conditions for ISA Virtualizability
- Para-virtualization and Hybrid VMs: Disco, VMWare, Xen
- Library OS: Graphene
- Hardware support for virtualization
- Chapter 4 of HSSV Book:x86-64: CPU Virtualization with VT-x.
- Operating-System-Level Virtualization (Containers)
- Various sources on the internet
- Live Migration of Virtual Machines
- Elasticizing Linux via Joint Disaggregation of Memory and Computation