Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

how does VDI, server virtualization, client virtualization; compare - architecture wise?

although a lot is written by vendors like Citrix or VMware it is often confusing hidden behind marketing hype...

eg: XenDesktop, XenClient, VMWare View, ThinApp

share|improve this question
up vote 5 down vote accepted

This is all surprisingly similar technology - well at it's most basic anyway.

Firstly I just want to define the difference between terminal-services and virtualisation;

  • Terminal services such as Citrix's older products, MS TS etc. work by having code executing on a server and the display of that code being transmitted and redisplayed on a client, the client keyboard and mouse is passed back to the code on the serving machine.
  • Virtualisation is when an application or OS is ran on a server in an encapsulated and protected environment where that environment presents itself to the application or OS as being a dedicated with no obligation to any other code or system. The virtualised environment may or may not have it's display/keyboard/mouse mapped to an external machine.

I just wanted to get that out of the way so we can carry on.

Anyway, VDI and server/client virtualisation are all essentially the same - guest code runs on one or most host servers. In this case VDI and client virtualisation are very similar in that one of their main purposes is to provide a desktop environment (i.e. display, keyboard and mouse) to their client machines over one protocol or another; whereas server virtualisation rarely has this obligation, often providing CLI inputs for management and Ethernet/IP based output.

Now onto the actual products;

  • XenApp is effectively a very mature terminal services platform, application code runs centrally but is displayed and managed on a client.
  • XenClient is code that allows for desktop virtualisation, the guest code runs on the user's machine and also displays its output onto the same machine, this allows multiple OSs to run on one machine.
  • VMWare View allows multiple iterences of desktop OSs to run on one or more servers, the output of these desktop OSs are displayed on client machines but View is tuned for very heavy reuse of existing memory pages with the aim to only manage the differences between iterences memory after the first iterence is running; i.e. the first Windows 7 user uses the normal amount of memory W7 uses but the second and subsequent users only have the differences between their session and the first session stored - think of it as deduplication of VMs.
  • VMWare ThinApp is a way of bundling up a small virtualisation engine (hypervisor), a basic OS and a given application into a single executable file that is limited to only displaying the output of that bundled application. For instance if you had an application that had very specific code requirements but wanted lots of other machines running a variety of OSs/code-stacks to run your application you could build one ThinApp which run your application in a predefined code environment regardless of the base OS/code-stack.

I've left XenDesktop until the end as it's something of a hybrid product in that it can display VDI-like services, Terminal Services and run local virtualised guests.

Hopefully this has been of some help, I'm sure I've over simplified in some areas but given you question was quite vague I think I've hit the majority of areas.

share|improve this answer

To augment Chopper3's explanation, here is a link to the "VDI Smackdown" white paper by Ruben Spruijt:VDI_smackdown.pdf

It contains a lot of great info to help demystify much of the VDI landscape. The end contains some comparisons that others may argue with, but the first sections contain some of the clearest info I have seen on the subject.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.