Virtualization
CSCI-GA.3033-010, Fall 2014



Note that this page will be undergoing extensive revisions -- it is a "just in time" course page.

Sept 3: Welcome. Be prepared to talk about your computing background. What do you know about operating systems, assembly language, and computer architecture. Do you know how to program? What languages?


General Information

Lecture:
Wednesday 5:00 -- 7:00 PM Location: 312
Instructor: Larry Rudolph, rudolph@cs.nyu.edu
TAs/Graders: TBD
Office Hours:
After Class or by appointment
Prerequisites: Operating Systems, programming.
(Optional) Text book: Authors: James E. Smith and Ravi Nair
Title: Virtual Machines
Publisher: Morgan Kaufmann
ISBN-13: 978-1-55860-910-5

Course Description

This master-level course is both an introduction to virtual machine technology as well as an exploration as to what can be done with a hand-crafted virtual machine implementation. Virtual machines allow one to run a windows operating system on a Macintosh computer, several independent instances of virtual machines on a cloud server, and even a virtual phone on an Android device. Topics that will be covered include: This course assumes a basic knowledge of operating systems, such as page tables, device drivers, privileged instructions, and scheduling. It also assumes a knowledge of machine instructions. There are plenty of resources to refresh your knowledge or these features.

Class Materials, Handouts, Lectures and Assignments

LecturesDateTopicHandouts ReadingsProblem Sets
1
Sept 3
Introduction: What is a virtual machine; Simulation vs Emulation
Slides (pdf)
Formal Requirements of Virtualization '74
Read by Sept 10
2
Sept 10
Instruction Set Architectures, Sensitive Instructions
Slides (pdf)
intel 64
Translate x86
Translate Risc-V
ISA Diversity
ISA Lecture
Install QEMU and Risc-V QEMU
3
Sept 17
Memory Virtualization
Slides (Memory)
Memory Management
Trace Cache Management
4
Sept 24
Page Table Management, Patching, Faking the clock


Be a time-lord
5
Oct 1
Para-Virtualization, Hardware Virtualization


Recursive Virtualization
6
Oct 8
Device and Network Virtualization


Universal Snooping
7
Oct 15
File System and Storage Virutalization


Adaptive Deduplication

Oct 22
Mid-Term



8
Oct 29
Containers, Process VMs (e.g. JVM)



9
Nov 5
Mobile Phone Virtualization



10
Nov 12
Other Uses




Nov 19
Project Presentations I




Nov 26
Project Presentations II



11
Dec 3
The Physicalization of Virtual Machines




Grades

Grades are based problem sets, a midterm and final project. The weighting will be:
Class Participation10%
Problem Sets30%
MidTerm30%
Final Project30%

This is a graduate level class, so after mastering and understanding the basic technology, the final project will be doing something novel with virtual machines, such as: creating a mock-device driver to protect personal information, protecting against buffer-overflow attacks, identifying which job is running, intelligent checkpoint-restart, capturing messages before they are encrypted, and deceptive information dispersal.

The midterm will be given on Oct 22.

Projects can be done in groups but all presentations will be given to the class. Nov 26 Class (Thanksgiving Eve) will depend on the number of presentations.

Problem Sets (Usually involves programming) are due two weeks after assigned.

Extra credit given for telling the class about current news articles concerning virtualization.


Computer Accounts and Mailman Mailing List


See also

Academic integrity policy: http://cs.nyu.edu/web/Academic/Graduate/academic_integrity.html