Xen (see the text) provides virtual machines using paravirtualization.
Xen (like VMWare) uses a standard operating system for control functions including controlling actual devices. But it must be modified somewhat to handle the hypervisor calls from virtual machines and their guest OS's.
Unlike VMWare, guests VMs are NOT run as processes under control of the standard os.
In Xen guests are run in Xen "domains" that communicate with the standard os via hypervisor calls.
Three examples of paravirtualization in Xen:
- To avoid flushing the TLB (translation lookaside buffer: page table entry cache) when invoking the vmm, Xen mapped into the upper 64Mb of each VM address space.
- Guest allowed to allocated pages, just check that it didn't violate protection restrictions.
- To protect guest OS from user programs, Xen takes advantage of
Intel processor's 4 protection levels:
- Most OS's running on Intel only use level 0 (kernel) and level 3 (user)
- Xen runs as VMM at level 0
- Guest OS runs at level 1
- Applications run at level 3
The operating systems that can be used as the "standard os" supported by Xen currently includes recent versions of Linux and NetBSD.