A virtual machine is an entire “PC in a window”. When you start a virtual PC, for example, the first thing that you see is a window which opens up in Windows. It contains a virtual BIOS screen as it starts up and tries to boot.
The benefit of a virtual machine is that it can’t directly modify the “real” Windows running on your machine. The virtual machine is assigned its own hard disk space, and any modifications you make are stored on that virtual hard disk.
You can run a browser in a copy of an operating system running in a virtual machine, and any settings that it changes, any history that it creates, and any malware that it downloads affect only the virtual machine. If you keep a snapshot of an original virtual machine hard disk image, then any time you want to discard all the settings, history, and perhaps malware, all you need do is erase the current image and copy over the original to start clean again.
While the setting changes that you make are kept from run to run, if you do decide to start over, that does mean that they’re all lost. And if you want those changes to take effect in your “real” Windows installation, you’re still faced with running the browser in the real Windows, not the virtual machine.
In computing, a virtual machine (VM) is the virtualization/emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination.
Virtual machines differ and are organized by their function, shown here:
- System virtual machines (also termed full virtualization VMs) provide a substitute for a real machine. They provide functionality needed to execute entire operating systems. A hypervisor uses native execution to share and manage hardware, allowing for multiple environments which are isolated from one another, yet exist on the same physical machine. Modern hypervisors use hardware-assisted virtualization, virtualization-specific hardware, primarily from the host CPUs.
- Process virtual machines are designed to execute computer programs in a platform-independent environment.
Some virtual machine emulators, such as QEMU and video game console emulators, are designed to also emulate (or "virtually imitate") different system architectures thus allowing execution of software applications and operating systems written for another CPU or architecture. Operating-system-level virtualization allows the resources of a computer to be partitioned via the kernel. The terms are not universally interchangeable.