I read the term trap-and-emulate virtualization in some articles on how to set up a virtual pc. Can anyone please tell me what this term means?
I understood that it definitely is some method for creating a virtual pc. But how is it done?
Trap-and-emulate is a technique used by the virtual machine to emulate privileged instructions and registers and pretend to the OS that it's still in kernel mode.
Emulation, in a software context, is the use of an application program or device to imitate the behavior of another program or device. Common uses of emulation include: Running an operating system on a hardware platform for which it was not originally engineered.
The main difference between them is that emulation is the computer program's ability in an electronic device to emulate the behavior of another program or device. On the other hand, virtualization is the process of creating a virtual instance of computer hardware platforms.
"Until recently, the x86 architecture has not permitted classical trap-and-emulate virtualization. Virtual Machine Monitors for x86, such as VMware ® Workstation and Virtual PC, have instead used binary translation of the guest kernel code.
An operation system is designed to have full control of the system. But when an OS is running as a virtual machine in a hypervisor, some of its instructions may conflict with the host operation system. So what does the hypervisor do? It emulates the effect of that specific instruction or action without carrying it out. In this way, the host OS is not effected by the guest's actions. This is called trap and emulate.
Attempting a privileged instruction when in user mode causes an error to occur thus leading to trap state.
And after this the VMM (Virtual Machine Manager) gets control and analyzed the error , executes the operation as attempted by the guest and then return the control back to guest in user mode.
Note : Kernel mode privileged command runs slower due to trap and emulate
There are two types of operations performed by OS/Application running on Virtual Machine Manager (or Hypervisor):
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With