DATE: Wednesday, October 25, 2006
TIME: 3:00 pm - 4:00 pm


Joshua LeVasseur
University of Karlsruhe

Pre-virtualization: Soft Layering for Virtual Machines

Para-virtualization ties a guest operating system and a hypervisor together, which restricts the system architecture — for example, when Linux uses the Xen API, Linux is unable to run on alternative hypervisors such as VMware, Linux itself, or a security kernel such as EROS. Furthermore, the lock-in obstructs evolution of its own paravirtualization interface — virtual machines provide the vital ability to run obsoleted operating systems alongside new operating systems, but para-virtualization often lacks this feature, requiring all concurrent instances to be the hypervisor’s supported version. Even general purpose operating systems have weaker restrictions for their applications. This lock-in discards the modularity of virtualization.  Modularity is an intrinsic feature of traditional virtualization, helping to add layered enhancements to operating systems, especially when enhanced by people outside the operating system’s development community (e.g., Linux server consolidation provided by VMware).

Virtualization and its modularity solve many systems problems, and when it is combined with the performance of para-virtualization, it becomes even more compelling. We show how to achieve both together. We offer a set of design principles, which we call soft layering, that govern the modifications made to the operating system. Additionally, our approach is highly automated, thus reducing 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.

Joshua LeVasseur is working towards a PhD in the System Architecture Group at the University of Karlsruhe in Germany, where he has contributed to microkernel design, multiprocessor virtual machine scalability, device driver reuse, and backwards compatibility via virtual machines.  Prior to Karlsruhe, Joshua worked for Intel in the IA64 Architecture Group, and worked for Loudcloud developing large network management infrastructure.  He obtained a degree in Electrical Engineering from Georgia Tech in 1997.  His email is jti at

For Further Seminar Info:
, or visit