The fundamental idea behind a virtual machine is to abstract the hardware of a single computer(the CPU, memory, disk drives, network interface cards, and so forth) into several different execution environments, thereby creating the illusion that each separate execution environment is running its own private computer.