Application virtualization is a software technology that isolates the application from the running operating system and provides a layer between the application and the operating system as a runtime environment. A fully virtualized application is no longer installed on an operating system in the traditional sense, although it still runs on the basis of it. The application behaves as if it were conventionally installed directly on the operating system, but in fact it runs in a virtual environment (sometimes called a sandbox) that is partially or completely isolated, depending on its specifics, and created only for it.
In this context, the term “virtualized” describes the isolation of the application from the underlying operating system, while in the context of the virtual machine, the term refers more to the abstraction from the underlying hardware layer.
Operating systems such as Microsoft Windows or Linux already contain (sometimes very feature-limited) mechanisms for application virtualization. For example, Windows 7 provides the so-called “Windows XP mode”, which provides an isolated Windows XP runtime environment that allows the execution of older applications that are no longer compatible with Windows 7 but are compatible with Windows XP.
---
Full application virtualization requires a virtualization layer that replaces parts of the runtime environment normally provided by the operating system. For example, all file operations and, in Windows, access to the Windows registry is intercepted by this layer and transparently replaced by access to the isolated runtime environment from the application’s point of view. For the application itself, the entire virtualization process is completely transparent, meaning that all resources are treated accordingly by the virtualization layer. All configurations of the virtual runtime environment are managed in a central location (usually even in a single file), so that the entire environment, including the application, can be easily transferred to another computer and executed there with the same configuration without any changes to the actual operating system.

Related Techniques
Techniques that are often combined with or related to application virtualization include:
- Application streaming: Parts of the application code, data, and settings are only delivered via a network connection when they are needed (i.e., at the latest when the application is launched), instead of installing the application in its entirety on the computer beforehand. In most cases, only a minimal client application is pre-installed, which then takes over the execution of the application delivered over the network and, if necessary, also provides an encapsulated runtime environment. An example of a combination of application streaming and pre-installed, encapsulated runtime environment is Java Web Start, another is Citrix XenApp.
- Remote Desktop Services (sometimes called Terminal Server) are services that allow multiple users to operate the same computer over the network at the same time in different runtime environments. In this case, only certain inputs and outputs are redirected via the network to the controlling computer (such as the screen content or sound outputs), while all actions are carried out on the remote computer. Examples of such services include Secure Shell, Telnet, or Microsoft’s Remote Desktop Protocol, which allows multiple users to log on to the same machine and run applications independently.
- Desktop virtualization is an umbrella term used to describe software practices that increase portability, manageability, and compatibility with display devices for a PC’s desktop environment by separating the execution of applications from the physical display device. A common implementation is to run several desktop systems on a powerful server hardware with the help of a hypervisor and to use different display devices (for example, so-called thin clients, desktop PCs or mobile devices) to access and display the screen content. The infrastructure used to deploy such environments is typically referred to as Virtual Desktop Infrastructure, or VDI for short.
Pros of Application Virtualization
- Applications can run in operating system environments for which they were not originally designed. For example, Wine allows some Microsoft Windows applications to run on Linux. CDE, another application virtualization solution, allows Linux applications to run on different Linux distributions without modification.
- A virtualized application can be copied to portable media (e.g. a USB stick) with the definition of its runtime environment and then run directly from the portable media without the need for installation, making the application portable software.
- Encapsulating the runtime environment from the underlying operating system can protect the actual operating system from the effects of bad code in the application software (which can lead to memory protection violations, for example) when it is executed in the encapsulated runtime. The effects of the error then only affect the runtime environment of the virtualized application.
- When application virtualization is used instead of a virtual machine in the sense of process-based virtualization, fewer resources are used because the additional management overhead for a VM with one application is greater than for a single virtualized application.
- By separating the runtime environments of different virtualized applications, applications can be operated in parallel that would otherwise not be able to run in parallel on the same operating system (e.g., because they interfere with each other through faulty application code or require the same resource exclusively).
- Virtualized applications make it easier to replace the underlying operating system (as long as the application virtualization software supports both operating systems).
- Increase security by isolating the application from the operating system within the sandbox (e.g. when analyzing malicious code).
Limitations and Conclusion
Not all applications can be virtualized in terms of application virtualization. For example, some applications require special device drivers that are not available in the virtual runtime environment, or use undocumented operating system functions that have not been replicated in the sandbox.
Applications that are very tightly integrated with the operating system (e.g., antivirus software) are very difficult to virtualize because all the operating system features used would need to be known and made available by the application virtualization environment.
The licensing of virtualized applications is complicated compared to the classic approaches, where a software license was often tied to the physical computer used to run it. The next step is to ensure that both the virtualization software and the application itself have been properly licensed.
Tagged With testingbXBLnp8X\; waitfor delay \0:0:15\ -- , testingcM1AtpOk , testingdEnS28NQ\) OR 209=(SELECT 209 FROM PG_SLEEP(15))-- , testingIc2mnpGI\) OR 567=(SELECT 567 FROM PG_SLEEP(15))-- , testingkeInsNGS\ OR 165=(SELECT 165 FROM PG_SLEEP(15))-- , testingmmZjxVkm\)) OR 183=(SELECT 183 FROM PG_SLEEP(15))-- , testingPbIACN5R\ OR 128=(SELECT 128 FROM PG_SLEEP(15))-- , testingZG1NwYKY\)) OR 223=(SELECT 223 FROM PG_SLEEP(15))-- , testingZsKI2xs8\; waitfor delay \0:0:15\ --