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.
Questions:
- 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?