26.6. Nested virtual machines
The designs of ordinary kernel-based systems, microkernels and library extensible systems each provide different positions at which to draw the boundary between kernel-mode execution and user-mode execution. One feature that all of these systems have in common is the use of a dual-mode environment in which the system is either executing part of the kernel, or it is executing a user-mode process. This scheme has several advantages.
Dual-mode execution enjoys almost universal support from modern microprocessors, for example through specialized instructions for implementing system call and return operations.
Exposing each application as a separate entity directly to the operating system means that only a single level ...