Understanding QNX Virtual Environments
QNX hypervisors are designed to meet the expectations of a hypervisor specified by the Popek/Goldberg Theorem.
CAUTION:
Read this chapter and understand its contents before you attempt to use the hypervisor. A few minutes spent with this chapter now will save you a great deal of time in the future.
The Popek/Goldberg Theorem
The Popek/Goldberg Theorem specifies that a hypervisor should meet the following three criteria:
- Equivalence
- Virtual machines (VMs) running in the hypervisor are essentially the same as the underlying hardware. A guest does not need to be aware that it is running in a VM in order to function properly.
- Safety
- With the exception of guest access to pass-through device memory, the hypervisor maintains control of the hardware at all times, regardless of what the guests are doing. It controls guests' abilities to access hardware devices, limits guests' ability to access host-physical memory to their assigned memory regions, has ultimate control over scheduling, manages interrupt routing, and has the ability to terminate a guest, regardless of what the guest may be attempting to do.
- Performance
- Execution of programs running in VMs is only minimally slower than when running directly on the hardware.
See The Popek/Goldberg Theorem
in Edouard Bugnion, Jason Nieh and
Dan Tsafrir, Hardware and Software Support for Virtualization (Morgan
& Claypool, 2017).
Page updated: