TOPICS IN COMPUTER SYSTEMS: VIRTUAL MACHINESCOMS E6998, Dept of Computer Science, Columbia University
Home | Lectures | Students | Homework

Meeting Times and Location: Spring 2008 T 12:35-2:25pm Location 1127 Mudd
Prerequisites: COMS W4118 Operating Systems I or instructor approval.
Description: The current wave of virtualization technology from VMware, Xen, and Microsoft have revived interest in virtualization and virtual machine monitors. This course will cover the design and implementation of virtual machine monitors as well other recent trends in virtualization. The first half of the course will cover traditional virtualization techniques such as trap-and-emulate, binary translation, shadow page tables and device emulation. New hardware features introduced by Intel and AMD to assist virtualization will also be covered. The second half of the course will survey the classic papers and other recent developments in virtualization.

In addition to the course instructors, we will have guest lecturers who in many cases will cover seminal virtualization papers which they have authored. The course provides a unique opportunity to learn from industry leaders in the field.

This course can be used to satisfy MS track elective requirements for software systems, network systems, and computer security tracks. Because this is a new course, it may not be listed yet in the MS degree track requirements.

Instructor: Scott Devine, co-founder, VMware., office hours: T2:30-4:30PM CSB 464.
Instructor: Prof. Jason Nieh. 212-939-7160, office hours: M3-5PM CSB 518.
Required Text: Virtual Machines: Versatile Platforms for Systems and Processes, Jim Smith and Ravi Nair, Morgan Kaufmann Publishers, San Francisco, CA, 2005 (available from and Columbia University Bookstore).
Computing Requirements: $50 CS account fee required.
20%: Homework Assignment: There will be one homework assignment that involves a small programming mini-project assigned to everyone in the class. The project will involve systems programming.
60%: Team Project: The project is an opportunity for you to take an active part in exploring the subject area, as appropriate for an advanced course. You can choose any project you want, so long as it has something to do with virtualization. The project should be chosen so that it clearly extends your knowledge and understanding of some area of virtualization. Projects are to be done in teams of your own choosing. Projects can focus on new applications of virtualization, new virtualization mechanisms implemented in the context of an existing virtualization system, performance evaluation of virtualization mechanisms, etc.
20%: Final: The final exam is scheduled at the normal final exam time for this class period. The final is cumulative and will cover all material discussed in the course.
0%: No "extra credit" work

We would like the course to run smoothly and enjoyably. Feel free to let us know what you find just, good, and interesting about the course. Let us know sooner about the reverse. See us, leave us a note, or send us email.

Jason Nieh,