Lessons Learned

Looking back, there are two main lessons that can be drawn from Xen: the importance of paravirtualization, and the benefits of open source development.

Paravirtualization

Foremost is the success of paravirtualization. A famous quote reminds us:

Any problem in computer science can be solved with another layer of indirection. But that usually will create another problem.

David Wheeler

Virtualization is simply a form of indirection, and even though modern computers have hardware support for virtualization, naïve reliance on this support leads to poor performance. The same problems arise when you make naïve use of any type of virtualization.

For example, virtual memory uses a hard disk to provide the illusion of a vast amount of available memory. However, if you write a program that tries to use all of it as if it were real, physical memory, the performance will be atrocious. In this case you could imagine “paravirtualizing” that program to make it aware of the physical limits, changing the algorithms and data structures used to make it run efficiently in combination with the virtual memory system.

In the context of operating systems, Xen has shown that paravirtualization—whether it be adding a virtual driver, changing the operating system wholesale, or adding enlightenments to improve performance in select areas—is an important technique for improving performance when running in a virtual environment.

Open Source Development

Perhaps the boldest decision taken during Xen’s development ...

Get Beautiful Architecture now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.