Are Virtual-Machine Monitors(VMM) Microkernels Done Right?

The 2 papers [1] and [2] discuss two main concepts evolving in operating systems. Today I would like to present a comparison of the 2.

The 2 papers [1] and [2] present on microkernels and virtual machine monitor (VMM) s and the feasibility of adopting virtualization by implementing these two architectures. Put in brief, [1] suggests that VMMs are a turning point in microkernel development and they aremicrokernels done right and hence, it presents that many of the advantages realized through thestructure of microkernel systems may be similarly developed above a VMM .In contrast, Gernot Heiser and others [2] present opposing the points presented in [1] and emphasize on necessity ofconsidering the similarities holding between microkernels and VMMs.
Both the papers argue on the fact that whether a microkernel could be used to build a hypervisor and vice versa. [2] is supporting the former while [1] is suggesting that VMMs are the correct implementation of microkernels.
We could say that the discussion could be based mainly on the purpose of each. Microkernel evolved as an alternative to the monolithic operating systems where a lot of services likefile systems, device drivers, vertical stacks and more are being run in the privileged mode. Incontrast Microkernel tries to minimize the code running in privileged mode (Trusted ComputingBase- TCB) and achieve more stable and secure system.
A hypervisor or VMM is software that implements virtual machines and is capable of running “guest OS”es on top. Hence it can be said that micro-kernels virtualized as an extension to operating systems whereas hypervisors virtualized an extension to hardware. Virtualization here mainly refers to providing a software environment on which operating systems could run as if they were running directly on the hardware.
In [2] authors have first listed the core primitives of Inter Process Communication (IPC) IPC in microkernels followed by that in VMMs. It presents the fact that microkernel reduces the number of errors in the kernel by combining the three primitives of the IPC into a single primitive which results in reduced number of security mechanisms, code complexity and code size and argue that in contrast VMMs would need a dedicated set of mechanisms, resources and kernel code to combine its rich variety of primitives. Basically we observe that both papers present on common features among microkernels and hypervisors and also the fact that they also have some unique functionalites which make them the best suit for some applications. Combining and optimizing these unique features should provide us better (or ultimate) performance. At present, we observe this idea is also being tried to be implemented via `microviser`s with the aim of providing the efficiency of the best hypervisor and the generality and minimality of the microkernel. An example would be the OKL4 microvisor.
[1]S. Hand, A. Warfeld, K. Fraser, E. Kotsovinos, and D. Magenheimery, “Are virtual machine
monitors microkernels done right?” 2005.
[2] G. Heiser, V. Uhlig, and J. LeVasseur, “Are virtual machine monitors microkernels done
right?” NICTA Technical Report PA005103, 2005.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s