Virtualization is one of the hottest technologies in IT today, and the excitement is fueled in part by free server virtualization products from Microsoft and VMware. Virtualization started as software that let you run different OSs on the same computer simultaneously. Today's technologies extend virtualization to the application level and even to the hardware level, and mature products are available in each category. Even if you're not using virtualization technology currently, you're likely to do so in the future, and you'll want to understand the current virtualization picture— how all the pieces fit together, and the major products available in each category.

Desktop and server virtualization products work in essentially the same way. Virtualization software runs on top of the system's native OS (aka the host OS). The virtualization software provides a management interface and lets you create multiple virtual machines (VMs). Like a physical system, each VM has its own CPU and RAM and can support multiple hard disks and NICs, but the VM's components are virtual, not physical.

A VM exists on a host system's hard disk and uses a portion of that storage for its own virtual hard disks. VMs are typically created using the VM product's administrative interface. The amount of disk space the VM uses depends on the type of virtual hard disk it has. Most virtualization products support two types of virtual hard disks: dynamic and fixed. Dynamic virtual hard disks initially use minimal disk space but automatically expand as more space is needed. Fixed disks are created at a fixed size and can't grow beyond that size. Although fixed disks can waste space if they're created larger than is necessary, they provide better performance because they don't need to resize. Whether the virtual hard disk is dynamic or fixed, the space required on the host is the same amount that would be required on a physical system: from a minimum of 2GB to 4GB to as much as hundreds of gigabytes of disk space, depending on the VM's requirements.

All active VMs must also share the host's physical RAM. If a host system has only 512MB of RAM, you could probably run just one (or maybe two) VMs on the host because the 512MB would need to be shared by the host and the active VMs. By increasing the host system's RAM, you can increase the number of VMs than can run concurrently.

After you create a VM, you start the VM and use the administrative interface to load an OS, referred to as a guest OS, on the VM. The guest OS runs just as it would on a separate physical system. When the guest OS is up and running, you can install applications on the VM almost exactly as you'd install them on a physical system.

Desktop virtualization products are used primarily in development, testing, and Help desk environments. Desktop virtualization products let you create virtual environments for desktop OSs, such as Windows XP and Windows 2000 Professional. Desktop virtualization products can also be used to run server OSs, such as Windows Server 2003 and Linux, but they don't provide the scalability and performance that server virtualization products do for running multiple VMs simultaneously. Furthermore, desktop virtualization products support capabilities that might be important to end users, such as sound and USB devices. Server virtualization products don't always support such capabilities.

The subsequent generation of virtualization products took off in the server space. Server virtualization products solve two basic problems: They enable businesses to consolidate servers and to run legacy server OSs and applications. Server virtualization products run primarily Windows 2003, Windows 2000 Server, and Linux as guest OSs and provide greater scalability and the ability to run more VMs simultaneously than desktop virtualization products do. Server virtualization products also include features that let you manage remote and networked systems.

Application virtualization is a new variation of virtualization technology that solves the problems of conflicts and incompatibility between applications. For example, application virtualization software lets you run multiple versions of Microsoft Office on the same system or install beta software without worrying about corrupting your desktop. Unlike virtualization products that let you run VMs, application virtualization doesn't provide system hardware or OS-level virtualization. Instead, it abstracts the file system and the registry for the virtualized applications. An application virtualization product lets you run virtual applications as if they were regular applications, but the virtual applications leave no footprint in the system registry or file system. Some benefits of application virtualization products are that you can install and run applications without worrying that one application might conflict with another or that an application will corrupt the registry, and you can freely install and test beta software without fear that it will corrupt the base system. And yes, you can combine virtual applications with virtual desktop and server products, run virtual applications on VMs, and install application virtualization products on VMs.

In combination with processor enhancements by Intel and AMD, Microsoft technology enhancements are driving the future of server virtualization. Virtualization software provides tremendous flexibility, but the overhead of maintaining the VM environment adversely affects the performance of virtualization software. Although there are exceptions, VMs typically don't perform as well as hardware-based systems do. Moving part of the support for virtualization into the hardware reduces system overhead and results in better VM performance. However, hardware virtualization requires support from the hardware as well as from the host OS.

On the hardware side, Intel and AMD added logic to their processors to support virtualization. Intel Virtualization Technology is part of the new Dual-Core Intel Xeon and Dual-Core Intel Itanium 2 processor lines. AMD Virtualization Technology is included in the upcoming AMD Opteron line of processors. On the software side, Longhorn Server will support hardware virtualization through Microsoft's new hypervisor technology. The hypervisor enables the OS to take advantage of the new hardware virtualization support provided by the latest generation of Intel and AMD processors. The end result should be better VM performance and a lower cost. The VM images that Virtual Server 2005 and Virtual PC use will be compatible with future hypervisor VM support.