The Trap and Emulate Strategy
We have to be a little bit clever to get this to work, however. Operating systems running on top of the hypervisor are run as user-level processes. They are not running at the same level of privilege as a Linux operating system that is running on bare metal. But if the operating system code is unchanged, it doesn’t know that it does not have the privilege for doing certain things that it would do normally on bare metal hardware. In other words, when the operating system executes some privileged instructions, meaning they have to be in a privileged mode or kernel mode to run on bare metal in order to execute those instructions, those instructions will create a trap that goes into the hypervisor and the hypervisor will then emulate the intended functionality of the operating system. This is what is called the trap and emulate strategy.
Issues with the Trap and Emulate Strategy
There are some thorny issues with this trap and emulate strategy of full virtualization. That is in some architectures, some privilege instructions may fail silently. What that means is, you would think that the instruction actually succeeded, but it did not, and you may never know about it.
How to Get Around This Problem
In fully virtualized systems, the hypervisor will resort to a binary translation strategy. It knows what are the things that might fail silently in the architecture. It looks for those gotchas in each of these individual binaries of the unmodified guest operating systems and through binary editing strategy they will ensure that those instructions are dealt with carefully. So that if those instructions fail silently, the hypervisor can catch it and take the appropriate action.
This was a problem in early instances of Intel architecture. Both Intel and AMD have since started adding virtualization support to the hardware so that such problems don’t exist anymore. But in the early going, when virtualization technology was first experimented with, in the late 90’s and the early 2000s, this was a problem that virtualization technology had to overcome in order to make sure that you can run operating systems as unchanged binaries on a fully virtualized hypervisor. Full virtualization is the technology that is employed in the VMware system.