Xenocode application virtualization technology allows complex applications to be deployed in lightweight, pre-configured virtual executables that run instantly, anywhere. Xenocode virtualized applications require no setup, configuration, client, or device drivers, are isolated from external DLL and dependency conflicts, and run properly on locked-down desktops.
What is Xenocode virtualization?
Xenocode is a next-generation virtualization technology that allows applications to be deployed in lightweight, pre-configured, single-executable files that execute instantly on any Windows desktop. Unlike hardware virtualization solutions such as VMware and Virtual PC, which emulate the underlying hardware and therefore require an entire copy of the host operating system, Xenocode application virtualization technology emulates operating system features required for application execution. As a result, Xenocode-virtualized applications have essentially the same performance characteristics as native executables, allowing for easy deployment on corporate Intranets, the web, USB keys, or existing infrastructure such as Microsoft SMS, LANDesk, Altiris, ZENWorks, Unicenter, or AppStream.
Xenocode application virtualization technology allows IT administrators, system integrators, and software publishers to dramatically reduce the costs and complexity associated with development, setup, configuration, deployment, and maintenance of software applications, and to deploy legacy applications on Windows Vista.
The Xenocode Virtual Operating System
The core of Xenocode virtualization technology is the Xenocode Virtual Operating System. The Xenocode Virtual OS kernel is a lightweight implementation of core Windows operating system APIs, including the filesystem, registry, process, and threading subsystems, completely implemented within the Windows user-mode space. The Xenocode Virtual OS kernel is embedded within each virtualized application executable, allowing virtual applications to be executed without any separate client install, device drivers, or player software.
Applications executing within the Xenocode Virtual OS environment interact with a virtualized filesystem, registry, and process environment, rather than directly with the host device operating system. The virtualization engine handles requests within the virtualized environment internally or, when appropriate, routes requests to the host device filesystem and registry, possibly redirecting or overriding requests as determined by the virtual application configuration:

The Xenocode engine supports both merge and override virtualization semantics, down to individual file and folder granularity. This allows virtual operating system contents to be either entirely isolated from or merged with corresponding locations on the host device. The Xenocode virtualization engine dynamically remaps shell folder locations such as My Documents so that proper application behavior is preserved across different operating system versions and deployment structures.
The Xenocode Virtual OS kernel occupies roughly 400K of disk space uncompressed, with negligible runtime performance overhead. And, because Xenocode transparently compresses all virtual environment data, virtual applications typically consume only half as much disk space as the same application installed directly on the host device.
Xenocode application virtualization versus hardware virtualization
Unlike hardware virtualization systems such as Microsoft Virtual PC and VMware, the Xenocode virtualization system works at the application level and virtualizes only those operating system features required for application execution. This allows virtualized applications to operate extremely efficiently, with essentially the same performance characteristics as native executables.
Advantages of Xenocode virtualization over hardware virtualization include:
- Extremely high performance: Xenocode virtual applications execute at essentially the same speed as applications running natively against the host hardware, with only a small additional memory footprint. On the other hand, applications running within hardware-virtualized environments experience significant slowdowns and impose a large memory footprint because the virtual machine includes and virtualizes an entire host operating system.
- Dramatically reduced application size: Xenocode virtual applications only require a disk footprint proportional to the size of the virtualized application, data, and included components. As a result, Xenocode virtual applications are typically small enough to be conveniently and quickly downloaded by end-users. Because hardware virtualization requires inclusion of an entire host operating system image, including many basic subsystems which will already present on the end-user device, hardware virtualization typically requires gigabytes of storage per virtual machine.
- Ability to run dozens of virtualized applications: Because of its low-overhead characteristics, it is easily possible to run dozens of concurrent Xenocode virtual environments per processor. Conversely, due to the high overhead of hardware virtualization, it is generally possible only to run a very small number of hardware-virtualized environments per processor.
- Reduced licensing costs: Because Xenocode virtual applications do not contain a host operating system, it is not necessary to purchase separate operating system licenses to use a Xenocode virtual application. hardware virtualization systems require a host operating system in order function, possibly imposing additional licensing costs and restrictions.
However, hardware virtualization is appropriate in certain specialized scenarios:
- Non-Windows operating systems: Xenocode virtual applications execute only on the Windows operating system. Hardware virtualization can execute any operating system compatible with the underlying virtualized hardware, such as Linux.
- Kernel mode virtualization: The Xenocode Virtual OS only virtualizes user-mode operating system features, whereas hardware virtualization systems emulate the entire OS stack, including kernel mode components. Applications requiring device drivers or other non-user-mode software may require a hardware-virtualized environment to function properly.
You should carefully evaluate the advantages and disadvantages of different virtualization approaches before deciding on a technology to adopt for your deployment scenario.
Xenocode application virtualization and application streaming
Xenocode virtualization is related to application streaming systems such as Microsoft's SoftGrid in that virtualization takes place at the application level. However, unlike application streaming systems, Xenocode virtualization:
- Does not require any specialized streaming servers: Streaming systems use specialized streaming servers to deliver application blocks to clients. Xenocode virtual applications are designed to stream to clients using standard SMB-based file shares, allowing them to be hosted on any Windows host, DFS share, or Linux Samba server.
- Does not require any client installation or device drivers: Streaming systems require that specialized client software be installed on each end-user device before clients can access hosted applications. Some streaming systems further require installation of client device drivers before use. Because the Xenocode Virtual OS kernel is embedded and implemented entirely in user-mode, Xenocode virtual applications run immediately, with no client installation or device drivers.
- Works both offline and online: Many streaming systems require that clients be connected to the streaming server to access applications. Because Xenocode virtual applications are standalone executables, virtual applications can be copied to laptops, USB keys, and other mobile devices for execution both on and off the network.
- Does not require any additional server systems: Most streaming solutions require that Active Directory or other infrastructure services be deployed as a prerequisite to application deployment. Because Xenocode virtual applications are standalone executables, no separate server systems need be purchased or deployed. Note that Xenocode virtual applications can optionally be configured to take advantage of Active Directory and SMS infrastructure, if these are present.
Xenocode virtualization can be used in concert with application streaming systems: Virtualized applications can themselves be streamed, combining the network transport optimizations of the streaming solution with the isolation, compatibility, and offline execution capabilities of Xenocode virtualization. This approach also allows enterprises with a heterogeneous IT infrastructure to enjoy the advantages of application virtualization, even in their non-Active Directory environments.
Comprehensive operating system feature support
Xenocode virtual applications support customization of shell metadata in executables, including customized icons, publisher descriptions, and versions. The Xenocode Virtual OS kernel dynamically remaps shell folders (for instance, the My Documents and Application Data folders) to the appropriate location on each host device. Similarly, registry key values containing explicit path names or prefixes are dynamically remapped to the appropriate values for the executing host device.
Xenocode also fully supports Windows side-by-side (SxS) deployment manifests, should you have applications that use this isolation technology. As an added benefit, virtual applications containing SxS assemblies execute properly on Windows 2000, even though SxS was not implemented in this version of the Windows operating system.
Supported platforms and technologies
The Xenocode Virtual Operating System kernel supports the Windows XP, Windows 2000 and later, Windows Server, and Windows Vista operating systems. Virtual Application Studio creates 32-bit executables, which can be run under 32-bit mode on x64 platforms. Xenocode supports common runtime environments such as the .NET Framework 1.1, 2.0, 3.0, and 3.5, Java 5.0 and 6.0, Flash, and Shockwave.
To simplify runtime and component setup, the Xenocode Virtual Application Studio and Postbuild authoring environments provide one-click configuration of popular runtimes and components.