Most administrators are somewhat familiar with the concept of virtual computing, or using a software program to create one or more computers within a computer. Each sub-computer can then be loaded with a separate operating system and applications.
The most common virtual computing implementations are through commercial applications like VMware and Microsoft Virtual Server. But for open source enthusiasts, a GNU GPL variant called
Xen's basic idea is the same as in commercial products; it lets you run multiple instances of one or more operating systems on the same computer. What is different about Xen is the implementation, which requires more work on the part of the administrator but yields markedly better results.
Virtual Server and VMware run multiple operating systems natively, but they do so with a performance penalty of about 20%. Even with the speed of modern processors, this can become a major issue if you're running multiple operating system instances side-by-side.
Under Xen, the operating systems (OS) have to be modified. The OS has to be "ported" or rewritten slightly to use the Xen API. But the performance penalties are tiny, on the order of two to eight percent. Benchmarks run against Xen and VMware show that, in some respects, Xen performs better by almost an entire order of magnitude.
This technique of porting operating systems is called paravirtualization. Similar techniques have been used elsewhere in the past. IBM's VM operating system accomplished, in the legacy mainframe world, many of the same things that Xen is being used for now. VMware and the other virtual machine systems do not use paravirtualization -- at least, not yet. Instead, they elect to take a performance hit by merely emulating the behavior of the simulated machine as closely as possible, allowing the guest OS to run unmodified.
One of Xen's biggest assets is the performance gain from paravirtualization. Another is that Xen is a free, open source solution. VMware and Microsoft Virtual Server have free implementations -- the former in the form of a virtual machine player and the latter in an entirely free edition of the product -- but they are proprietary and have closed source, meaning they cannot be tailored from the ground up to fit specific needs. On the other hand, and this is the biggest downside to using Xen, Xen requires a good deal of careful configuration and expert understanding of each operating system in question. It's not really a "plug-and-play" solution.
By contrast, VMware and other such programs are generally friendlier to the non-technical end user, requiring little to no modification of the guest operating system. That said, guest OSes running under such systems usually require an add-on pack to take full advantage of being hosted in a virtualized environment. The add-on packs are not crucial and the system will usually run fine without them, but the packs improve things like user interactions with the virtual machine. For instance, Microsoft provides a set of additions for Linux under Microsoft Virtual Server that improve mouse and video support, coordinate shutdown and time synchronization with the host computer.
Xen's most user-friendly add-on is a third-party management console called VMC (currently in pre-beta, but to be released as open source). VMC, like Microsoft Virtual Server's management console, runs in a Web browser for portability and is slated to include features like application repositories and package management for virtual machines. This support appears to be limited to Linux/UNIX guests, however. Microsoft guests would need to rely on existing technologies like GPO for software management, but that's no different than in Windows instances running under Virtual Server.
Another of Xen's unique features is live migration. A host OS can be migrated from one computer to another without having to shut it down; the contents of the host OS's physical memory are iteratively copied to another computer, and the two can be switched over almost seamlessly. Neither VMware nor Microsoft Virtual Server has this ability yet, although both do support conventional operations like suspend-to-disk (which Xen also supports).
Xen has some slight restrictions in running Windows as a guest OS, and it cannot yet run on Windows as a host. In the pre-3.0 editions of Xen, it was possible to run Windows as a guest by making after-market modifications to Windows, but those changes could not be distributed because of Microsoft's licensing restrictions. The 3.0 release saw Xen rewritten slightly to make use of Intel's VT-X Vanderpool processor instruction sets. This allowed Windows to run in Xen unmodified. (A similar set of extensions called Pacifica is coming out for AMD; Xen support for Pacifica is on the drawing boards as well).
Microsoft Virtual Server is adding support for hardware-assisted emulation in future releases of Virtual Server, so it's entirely possible that in a few years we'll see paravirtualized machine emulation as the standard, rather than the exception. At that point the main differences between Xen and commercial virtualization systems will be the licensing and the availability of the source code.
The best way to set up an OS distribution for Xen is to build one from scratch, and Xen's own wiki has instructions on how to do exactly that for Linux. Similar instructions are available for NetBSD. Some "out-of-the-box" distributions also include Xen kernel support: Novell SUSE Linux 10 includes Xen 3, as does Red Hat's Fedora Core 5 and Debian Linux. Those who are most in a hurry can also try out Xen's live ISO CD (running Debian), and at least one Linux distribution, Xenophilia, uses Xen natively.
Serdar Yegulalp wrote for Windows Magazine from 1994 through 2001, covering a wide range of technology topics. He now plies his expertise in Windows NT, Windows 2000 and Windows XP as publisher of The Windows 2000 Power Users Newsletter and writes technology columns for TechTarget.
This was first published in June 2006