There is a lot of industry talk about Virtual Desktops at the moment. This is the desktop OS running as a virtual machine on a server in the datacenter. It sounds like the solution to all those difficult desktop problems, but it is more like a niche within a niche. Much more interesting is the Versatile Desktop. The Versatile Desktop is a personal computing device that is able to run different desktops at different times.
Personal computing requirements are hugely varied, so it is not surprising that the industry provides many different solutions apart from the common or garden desktop. The virtual desktop certainly has a place among them. Here's how I see the logic flow:
- Standard requirement: standard workstation or laptop
- When that won't work: a desktop published over terminal services or Citrix
- When that won't work (because the application mix or the personalisation requirements cannot run on a shared server): a desktop running on a virtual machine.
But is a remote connection to a virtual desktop the best way to do this? Perhaps we could just boot the client device into different desktops locally - a Versatile Desktop.
Part of the attraction of the virtual desktop is that we know that virtualization is highly effective for servers, so: why not for desktops? The reason is that we are usually trying to do something entirely different. For servers we are trying to partition one hardware device to run multiple OS's at the same time. There are cases where we want the desktop to do that too, for example when running a development lab of several virtual servers on one desktop machine. But mostly we want the desktop hardware to be able to run different OS's at different times. Either different users with a different desktop requirement, or the same user requiring different desktops for different things.
Bearing in mind that we can already do this easily with terminal services, the problem only arises when terminal services cannot work, for example when:
- the user is offline or on a slow connection
- the applications do not work over terminal service or the desktop needs to be heavily personalised
- the user requires specialised features on the local device such as: power saving; advanced graphics and audio; wireless and WWAN - and all the other features of a full spec device.
One way to do this is with a client hypervisor (like VMWare Workstation). The problem with a hypervisor is that, almost by definition, it cannot give us the full features of the local device. The hypervisor emulates the native hardware drivers with generic variants, or passes through to the hardware but only for one OS. So for the virtual machine OS we may as well not have a full featured device. If we didn't need a high spec local device then fine, but then why have it?
A better way to do this would be somehow to switch between different OS's stored on the hard disk. We could store different OS's on different partitions of the hard disk. Then let's say we had a function key or a small graphical menu so we could just switch between different OS's. We could boot one high performance desktop for one purpose, and a different OS for another. Both would provide a full OS: available offline; running any applications and fully personalised; and with the full features of the local device. The way to do this is with Unified Extensible Firmware Interface (UEFI).
UEFI is a replacement for the old fashioned BIOS. BIOS is 16-bit with 1 MByte of addressable space, and so is inherently limited in what it can do. There is no mouse in BIOS. UEFI can be 32-bit or 64-bit and so can run a full GUI. In effect, we can have a pre-OS graphical interface that enables the user to choose what to do next. The UEFI can boot any UEFI-aware OS, including Windows 7, Linux and Mac OS X.
UEFI began life as EFI for Intel Itanium processors in 2000. The specification is now controlled by the industry wide Unified EFI Forum, and at version 2.03.
- Apple uses UEFI to boot Mac OS X and Windows 7 on the same machine: so-called Boot Camp.
- Acer uses it on their Aspire One D250 to boot Windows 7 and Android
- HP uses it on notebooks to provide System Diagnostics and a UEFI Boot Mode.
UEFI provides the opportunity for a Versatile Desktop. With UEFI the user could select:
- an iPad-like touch screen interface for casual or social usage
- a production desktop for business usage or heavyweight applications; and different production desktops for different users or purposes
- a Linux client for a seamless remote desktop over terminal services.
So how does the Versatile Desktop compare to the Virtual Desktop?
- Direct access to the full features of the hardware
- Instantly available
- UEFI implementations are proprietary. It depends what the vendor lets you do.
Is this a practical proposition? We will look in another post at the opportunities for using UEFI with the HP Elitebook.