This post is also available in: Italian

Reading Time: 3 minutes

With the term virtualization usually we are talking about System Virtualization, where a physical system is “partitioned” to permit multiple environments (using virtual machines).

But virtualization is more generic and include different types:

  • System Virtualization or Platform Virtualization: the hypervisor layer permit multiple virtual machines (VM). There are mainly two sub-types:
    • Server Virtualization: where VMs are usually server OSes with server roles.
    • Desktop Virtualization: where VMs are desktop OSes. There are two different approaches:
      • Server Hosted: where VMs are running on physical server machines (usually using hypervisor for server virtualization). Also called VDI (Virtual Desktop Infrastructure or Virtual Desktop Interface).
      • Client Hosted: where VMs are running on client (desktop or laptop) physical machines. In this we can have another differentiation based if the solution is un-managed (the user control the VM and its content) or managed (where a central management and policies are defined).
  • Process Virtualization: virtualization work at process level and could be.
    • Language construction: runs a bytecode (like Java or .NET).
    • Cross-ISA emulation: emulation of a different platform.
    • Application Virtualization: applications are isolated from other applications (and in some cases also from some part of the OS, like the filesystem or the registry). Different approaches are possible, like using sandbox (or “bubble”) or build “portable” applications. You can use this kind of applications in different ways: from using streaming (from a central server) or by using off-line and locally.
  • Presentation Virtualization (or Session Virtualization): usually called “terminal services” or “remote desktop services”. You can use it in different ways:
    • Remote Desktop: the entire session of a server desktop is access over a remote connection.
    • Remote App (or seamless window): only the application window is used from a remote connection.
    • WebApp: application is available from a web portal (but usually the application is then executed inside a dedicated client).
  • User State Virtualization: to permit the independence of the user profile from the client.

The different types of virtualization work in different ways by creating a virtual compunting stack that could be diffent.

In a typical computer the stack has at least three different layers (hardware, operating system and applications layer). Using the different types of virtualization we have diffent layers in the virtual enviroment:

  • System Virtualization: the entire stack is provided, but the hardware part of the virtual enviroment is usually just a partition of the physical one.
  • Session Virtualization: only part of the operating system layer is provided in virtualized environment (usually is the part that permit the multi-user and multi-session access), but the application layer is basically shared between the physical system and the multiple virtual environments.
  • Application Virtualization: only part of the operating system layer is provided in virtualized environment (usually to provide a virtual filesystem and/or a virtual registry) and also the application layer is virtualized to permit applications isolation.
  • User State Virtualization: only part of the operating system layer is provided in virtualized enviroment (usually is the part that permit the multi-user and multi-session access).

Note that there are also other virtualizations, like network virtualization, storage virtualization, …


Virtualization, Cloud and Storage Architect. Tech Field delegate. VMUG IT Co-Founder and board member. VMware VMTN Moderator and vExpert 2010-24. Dell TechCenter Rockstar 2014-15. Microsoft MVP 2014-16. Veeam Vanguard 2015-23. Nutanix NTC 2014-20. Several certifications including: VCDX-DCV, VCP-DCV/DT/Cloud, VCAP-DCA/DCD/CIA/CID/DTA/DTD, MCSA, MCSE, MCITP, CCA, NPP.