A virtual-machine is software emulating complete computer hardware. There are various applications that supply this functionality.
The term virtual-machine can be used for a single file containing the software which emulates all the hardware. Virtual-machine software use various hardware and software tricks to speed up the running software.
Programs run on a real machine do not need to be changed to be run on a virtual machine. A program running on a virtual machine works exactly the same as if it were running on its own hardware.
Some virtual machine software include: