What is a client hypervisor? Client hypervisors are hypervisors that run on a user’s (client’s) desktop. A nice video showing Xen Client Hypervisor should clarify its usage. Server hypervisors like VMware’s ESX server, and XenServer virtualize a physical server that allow you to run multiple virtual machines. This has many benefits including reduced costs due to consolidation, easy management, and for load balancing.

Question is: Why would you want to virtualize your desktop? This use-case is not that clear, considering that desktops usually run only one operating system like Windows. Some benefits are

  1. Easy management. If all desktops in an enterprise are running in VMs, the administrators can easily upgrade all the VMs easily, assuming that all VMs are derived from a single gold image. This is not as simple as it sounds, if you allow the desktop users to install software, since the operating systems running VMs will diverge from the gold image.
  2. Saving energy. When a desktop running a VM becomes idle, one can easily migrate it to a server, and put the physical machine to sleep. Though, this is conceptually simple, there are many issues including reducing user disruption and consolidation of desktops on the server. See my LiteGreen work for a thorough evaluation of such system and how to solve some of the problems.
  3. Security. Technically, desktops running in VMs are more secure, since they don’t have direct access to hardware and can be monitored by hypervisor to prevent malicious activities. Anti-virus, anit-malware software can be installed in hypervisor, host operating system or management stub VMs, which can monitor the desktop VMs. This is complicated by the fact that VMMs or hypervisors do not have complete state of the operating systems running in VMs. Virtual Machine Introspection (VMI) is an on-going research field pursued by many security/virtualization researchers (Jiang’s work) that tries to solve these problems.

    However, this is a two-edged sword, since hackers can build rootkits that run in a hypervisor too.

    Another interesting usage of client hypervisors is to run different desktop applications in light-weight VMs (Qubes project) for better application isolation.

  4. Mobile Devices. This may be surprising, since mobile devices have usually less powerful hardware (that’s changing, however). The benefit comes from the fact that mobile devices may be able to run proprietary applications in a light-weight VM providing more security and support for legacy applications. The VMs can be moved to a cloud, if needed.

The biggest disadvantage of client hypervisors is: performance overhead and reduced user experience due to not having direct access to display hardware. For example, running a game like Quake in a VM, is not what you are looking for when you are buying powerful graphics cards. GPU virtualization is picking up, but will take some time to become a mature technology. Researchers are working towards allowing VMs to take advantage of graphics acceleration. GPU vendors have to provide hardware support for virtualizing the graphics processors similar to Intel’s VT-x extensions.

Share