Virtual Machines, Spring 2024
Into the Depths of Virtualization and Virtual Machines
Welcome!
This is the webpage for CS 562: Virtual Machines IIT. This course is for graduates and advanced undergraduates in Computer Science.
Course Communication
We’ll be using Discord for course communication (see Blackboard for link).
Books
The following book is the only required textbook for this course. If you plan on pursuing computer systems seriously, it is a great book to have as a reference:
Virtual Machines: Versatile Platforms for Systems and Processes (1st Edition), by Jim Smith and Ravi Nair, 2005 Morgan Kaufmann.
If you are looking for books to help you in this area, and for good reference texts to have on your shelf, please consider the following:
- Anderson & Dahlin. Operating Systems: Principles and Practice, 2nd edition, 2014.
- Remzi & Andrea Arpaci-Dusseau. Operating Systems: Three Easy Pieces, available online here.
- Bovet & Cesati. Understanding the Linux Kernel, 3rd edition, 2005.
Projects
Most of your time in this class will be spent working on projects. You’ll learn more about them as we go.
Development Environment
For all projects I will provide you with a Vagrant configuration which you can use to spawn a virtual machine to do your work on. To use Vagrant, you’ll need a VMM installed on your machine. VirtualBox and libvirt (built on QEMU/kvm) are two free options. VMware Workstation or Fusion for Mac will work as well. If you’re on a Windows box, HyperV is another option. See here for getting started with Vagrant VMs.
Other Useful Links and Resources
- Nice tutorial for learning git
- Emulators for various historically significant machines
- MS BASIC for 6502
- Interrupt logic on the 6502
- 6502 on the cloud
- Visual 6502
- Godbolt compiler explorer
- 6502 ISA reference
- Original MOS 6502 programmer reference manual
- The Morning Paper