Virtualization is when a virtual machine is used instead of actually doing the computation. (Indirect)
The computer containing these machines is called the host; the machines themselves are called guests.
The program controlling the virtual machines is called the hypervisor.
There are three elements of a virtual machine:
|Partitioning||An arbitrary number of virtual machines can be run on a host.|
|Isolation||Every guest is contained in a separate set of files; resources are not shared between guests.|
|Encapsulation||Each guest is contained in a single folder or file which a user can share.|
Benefits: security, cross-platform etc.
Virtual Machines can be used as test systems for suspicious software: if any bugs affect the virtual machine, no real computers will be affected.
In addition, virtual machines allow developers to make as many attempts as they want.
Ex. A Minecraft computer is a virtual machine: the system is cross-platform, information is stored in different places, user input still does stuff, output etc... All functions are present in Minecraft, but the actual computer is stored as a file in the host system.
Products: VMware; VirtualBox; etc.
Here is an example of a Windows computer running a Linux / Ubuntu virtual machine on VirtualBox.
In this example, the Windows machine is the host, the Linux OS is the guest, and the program VirtualBox is the hypervisor.
One can effectively create a virtual machine using Minecraft and redstone.
The Minecraft computer exhibits all of the qualities of a virtual machine: