Full virtualization is a process where an entire computer system is made into a software construct. This construct acts like the original hardware in every way. Software that is designed for the hardware will install on the construct as though it was the actual computer and then run with little to no slowdown. Using full virtualization has several uses, such as testing software in a virtual environment or expanding the usefulness of a single computer or server through virtual operating systems. While partial virtualization is very common, full virtualization is relatively rare.
In order to be full virtualization, an entire hardware system needs to be transformed into software. Every action and nuance of the original hardware needs to move over to the virtual system. Since this is such a large undertaking, and some system manufacturers take steps to discourage it, full virtualization is somewhat rare. It is much more common to find partial virtualization, where all the necessary system bits are present, but the physical hardware system handles much of the low-level calculations and functions.
On a full virtualization machine, the software emulates the original machine so closely that any program will install into the software with no conversion or extra steps. The virtual interface mimics the hardware set to such a degree that the software will run precisely the same way it runs on the natural system. With partial virtualization, there is nearly always a lag on the installed programs as commands are moved between the emulated and the actual hardware.
There are a handful of reasons why full virtualization is a major computing goal. When a machine and its operating system are fully virtualized, it is possible to serve it to individual users as a full desktop environment. The users are able to use it exactly as they want, modifying any setting or installing any program. Should a problem develop, the administrators may simply delete the user’s specific virtual segment and then give them a new clean one.
In the same vein, the isolated hardware/software system in a full virtualization environment is completely separate from the actual machine hardware. This means that a user, regardless of what he may do, will never actually interact with the physical hardware. This means destructive user actions, whether on purpose or accidental, are less damaging to the actual system.
The last common goal is the most technical. Since the software system isn’t limited by the actual hardware present in the system, the virtual hardware may be tweaked to improve performance over the original machine. Redundant or unnecessary hardware may be removed. Existing hardware may have its parameters changed to act in ways that were impossible for the original hardware. This allows the system to perform at peak efficiency, something nearly impossible for an actual hardware system to do.