This document discusses virtual machines. It begins with a brief history of virtual machines and an explanation of what a virtual machine is - a software program that exhibits the behavior of a separate computer. There are two main types of virtual machines: system virtual machines that mimic an entire computer system, and process virtual machines that run single applications in isolation. Some key uses and applications of virtual machines are also outlined, along with the main pros and cons which include improved flexibility but reduced performance compared to physical machines.