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

hpNetworkEdge.pdf lecture8.pdf SDN1.pdf SDN.pdf virtual_networking_concepts.pdf
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
Device and Network Virtualization
Slides (IO Devices)
IO Virtualization
Microsoft's V-Devs
Linux Virtio
Virtual WiFi Paper
Add a device
5
Oct 1
Hardware Virtualization
Slides (HW support)
Intel Virt Support
HW v SW Comparison
Measure Virtualization Costs
6
Oct 8
Migrations, KVM, Containers Slides (HW support)
VM vs Containers
KVM for Server
KVM for ARM KVM for ARM 1
Cells1 Cells2


7
Oct 15
Overshadow and SGX
Slides(Overshadow)
Slides(Intel SGX)
Slides(Security)
Overshadow
Intel SGX>
Good Bad Ugly>
Who does it?
8
Oct 22
Virtualized Network, Software Defined Networks, Data Centers
Slides
Virt Network Concepts
HP's Virt Network Concepts
Network Virtualization
Software Defined Networks
Network Aware VM Placement

9
Oct 29
Open Stack, Open Cloud



10
Nov 5
JVM: Tinting and Object Tracing



11
Nov 12
Mobile Phone Virtualization



12
Nov 19
Hacking Dayn



13
Nov 26
File System and Storage Virutalization



14
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