I'm trying to understand what types of virtualization exists and to assist this task, I found a book by Dijiang Huang and Huijun Wu, Mobile Cloud Computing.

The passages posted below are also available on Google Books: https://books.google.com/books?id=dupGDgAAQBAJ.

From section 2.2.3, table 2.2, page 42:

HAL (Full)

  • Description: A hypervisor provides a complete VM (of the same computing architecture as the host) enabling unmodified guests to run in isolation.
  • Advantages: Flexibility in running different versions of different OS from multiple vendors.
  • Disadvantages: Guest OS does not know that it is being virtualized; can incur a sizable performance hit on commodity hardware, particularly for I/O intensive applications.

HAL (Parallel)

  • Description: A hypervisor provides a complete but specialized VM (of the same computing architecture as the host) to each guest allowing modified guests to run in isolation.
  • Advantages: Lightweight and fast, near native speeds; demonstrated to operate in the 0.5-3.0% overhead range; allows OS to cooperate with a hypervisor - improves IO and resource scheduling; allows virtualizing architectures that do not support full virtualization.
  • Disadvantages: Requires porting guest OS to use hypercalls instead of sensitive instructions. The main limitation of parallel virtualization is that the guest OS must be tailored specifically to run on top of the VM monitor (VMM), the host program that supports multiple, identical execution environments. This especially impacts legacy closed-source OSs that have not yet implemented parallel virtualized extensions.

Here, the "parallel virtualization" looks as a synonym to "paravirtualization". (I never hear "parallel virtualization" term before reading the book. The term "paravirtualization", on the other hand, is well-known in the Internet.)

However, in section 2.2.2, page 39, the book seems to contradict the previous passage:

In the third virtualization classification presented in Section 2.2.3, we will present two of the most popular HAL-based virtualization solutions, i.e., parallel virtualization (or bare-metal, or Type-1 virtualization) and host-based virtualization (or Type-2 virtualization), in detail.

That is, to summarize:

  • Section 2.2.3: Parallel virtualization is the same as paravirtualization.
  • Section 2.2.2: Parallel virtualization is the same as bare-metal (a.k.a. Type-1) virtualization.
  • However, as I know, paravirtualization and bare-metal (a.k.a. Type-1) virtualization are two different things. Not the same thing.


  • Is it true that the 2nd passage contradict the 1st?
  • Is it true that paravirtualization and bare-metal (a.k.a. Type-1) virtualization are two different things?
  • Do you agree that passage from page 42 is correct, and passage from page 39 is not correct? How would you explain the passage from page 39?
  • I also sent email to the authors 6 days ago, but there was no answer. – john c. j. Jan 18 at 8:05
  • These terms might be quite flexible depending on the author who uses them. The actual question is: does the guest system know it's running on a virtual a machine, or not? – Lorinczy Zsigmond Jan 18 at 8:40

Is it true that paravirtualization and bare-metal (a.k.a. Type-1) virtualization are two different things?

Guests optimizing away abstraction layers is a different dimension from if the hypervisor is on top of a general purpose operating system.

QEMU is an emulator. Add KVM, and hardware acceleration reduces overhead to a minimum, effectively making it type 1. In addition, KVM has paravirtualized guest drivers. Yet, both QEMU and KVM are running on general purpose operating systems; you can run arbitrary applications on your virtual hosts.

Hyper-V runs direct hardware access through a privileged root partition running Windows. Sounds like type 2. Yet, the layers between guests and hardware are minimal, you can't run user processes outside of Hyper-V partitions.

Drawing a diagram of the abstraction layers may help. Implementations do not sort as neatly into binary categories as type 1 versus type 2 suggests. Such categories don't necessarily measure practical considerations like overhead compared to bare metal, or the security and serviceability of a hopefully simple hypervisor.

Early use of the term para-virtualization appears in the Denali paper from University of Washington. At least, a Xen paper cites Denali as coining the term. I can find no evidence of its origin in "parallel". Possibly, it was meant to invoke the "beside" and "assisting" meanings of the prefix para-.

| improve this answer | |
  • I can't say that this answer is really answering all three questions of my question. But this answer is the only one posted, and it will be fair to award the bounty. – john c. j. Jan 23 at 9:27
  • I am not going to argue the fine details of their words. Although, the survey of the many levels of virtualization was useful. Rather, I contrasted the binary categories with the messy architectures and novel designs in hypervisors today. – John Mahowald Jan 23 at 12:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.