Skip to main content


Pre-virtualization: Soft layering for virtual machines


Joshua LeVasseur, Volkmar Uhlig, Yaowei Yang, Matthew Chapman, Peter Chubb, Ben Leslie and Gernot Heiser

University of Karlsruhe

IBM Watson




Despite its current popularity, para-virtualization has an enormous cost. Its deviation from the platform architecture abandons many of the benefits of traditional virtualization: stable and well-defined platform interfaces, hypervisor neutrality, operating system neutrality, and upgrade neutrality—in sum, modularity. Additionally, para-virtualization has a significant engineering cost. These limitations are accepted as inevitable for significantly better performance, and for the ability to provide virtualization-like behavior on non-virtualizable hardware such as x86.

Virtualization and its modularity solve many systems problems, and when combined with the performance of para-virtualization become even more compelling. We show how to achieve both together. We still modify the guest operating system, but according to a set of design principles that avoids lock-in, which we call soft layering. Additionally, our approach is highly automated and thus reduces the implementation and maintenance burden of para-virtualization, which is especially useful for enabling obsoleted operating systems. We demonstrate soft layering on x86 and Itanium: we can load a single Linux binary on a variety of hypervisors (and thus substitute virtual machine environments and their enhancements), while achieving essentially the same performance as para-virtualization with less effort.

BibTeX Entry

    publisher        = {Springer},
    author           = {LeVasseur, Joshua and Uhlig, Volkmar and Yang, Yaowei and Chapman, Matthew and Chubb, Peter and
                        Leslie, Ben and Heiser, Gernot},
    year             = {2008},
    month            = aug,
    editor           = {{Yeh-Ching Chung, John Morris}},
    title            = {Pre-virtualization: soft layering for virtual machines},
    booktitle        = {Asia-Pacific Computer Systems Architecture Conference},
    pages            = {1--9},
    address          = {Hsinchu, Taiwan}


Served by Apache on Linux on seL4.