The Virtual Machine
I carry a laptop around with me because it lets me have the same computing environment wherever I am. I don’t have to worry about whether the software I want is installed or whether someone else has set up unusual shortcuts.
When I get to work, however, I plug in an external keyboard, mouse, and monitor. Effectively, I’m just bringing a hard drive, CPU, and RAM with me. If the files were stored on a fileserver, I wouldn’t need the disk, and a CPU and RAM are easy to come by.
What is it that I’m really carrying around? The answer is state. I am carrying around an operating environment’s state wrapped up in a lump of metal and plastic. What do I really need for that?
Sun has one potential solution in the form of their Sun Ray systems. The only thing you carry around with you is a smartcard, which identifies you. When you insert it into a card reader, it connects to a server that sends your desktop to the machine.
IBM has a potentially more interesting suggestion: they put a Xen virtual machine on a USB flash drive, which contained an entire OS install and applications. At login, it would mount a remote fileserver and unmount it whenever the VM was suspended. This could just be plugged into a machine running Xen and immediately display the user’s desktop, even without a network connection.
With live migration of VMs, it would be possible to keep an environment running on a mobile phone and then migrate it to a desk PC at work, an entertainment center at home, and so on.