Full virtualization is a virtualization technique put into use to deliver a certain kind of virtual machine environment, specifically the one that is a comprehensive replication of the underlying hardware. Full virtualization entails that every significant attribute of the hardware be mirrored into one of several virtual machines – comprising of complete instruction set, input and output operations, interposes, memory access, and whatsoever other elements are used by the software that performs on the bare machine, and that is projected to run in a virtual machine.
In such an environment, any software adept of implementation on the new hardware can function in the virtual machine and, specifically, any operating systems. The evident test of virtualization is whether an operating system projected for stand-alone use can effectively perform inside a virtual machine or not.
One of the main challenges for full virtualization is the intervention and replication of confidential operations, such as I/O instructions. The repercussions of each and every operation completed within a given virtual machine must be retained within that virtual machine only – these virtual operations cannot be permitted to vary the state of any other virtual machine, either the control program, or the hardware.
Some machine instructions can be implemented directly by the hardware, since their effects are wholly confined within the elements administered by the control program, such as memory locations and arithmetic registers. Nevertheless, other instructions that are expected to prick the virtual machine are not permitted to implement directly; rather than that they are either ensnared and replicated.
This new technique i.e. full virtualization has proven highly efficacious for:
- Allocation of a computer system across multiple users;
- Segregating users from one another (or from the control program);
- Imitating new hardware to accomplish enhanced reliability, security and productivity;