This document provides an overview of virtual machines. It defines a virtual machine as a software implementation of a machine that executes programs like physical hardware. There are two main types: system virtual machines which provide a complete OS environment, and process virtual machines which provide a platform-independent programming environment. Popular virtual machine software discussed includes VMware Workstation, Xen, VirtualBox, and Citrix. VMware Workstation allows multiple operating systems to run simultaneously on a single PC without restarting. Xen is an open-source virtual machine monitor that allows multiple guest operating systems to run concurrently on the same hardware. It has a three-layer architecture consisting of a virtual machine layer, hypervisor layer, and hardware/physical layer.