mobile desktop computing
Users make use of computers at home, school, work, and on the road. However, the current personal computer framework ties a user’s data, applications and execution state to a single underlying machine. While a user has access to many different machines, such as at the office and at home, each machine may provide a different computing environment. These different computing environments can provide the user with differing sets of applications as well as variable access to the data a user needs to complete a task. As computers can be prone to failure, applications and data tied to any particular machine can be unexpectedly rendered unavailable. This reliability problem is exacerbated for laptops, which often operate in more hostile working environments and are more prone to being stolen or to fail given the complexity of these devices. To address these problems, we present DeskPod, a portable system that decouples a desktop computing environment from any single hardware device so that it can be stored and executed anywhere. DeskPod builds on our previous work on WebPod and leverages commodity pocketable storage devices, ranging from flash memory sticks with no moving parts that can hold 4 GB of data to portable hard disks, such as Apple’s iPod, that can hold 60 GB and more of data. DeskPod enables these devices to hold a user’s entire computing environment including applications, data and execution state so that it can be checkpointed to portable storage, carried around easily and restarted from the storage device on a completely different computer. Since all applications, data and execution state are stored on the portable storage device, DeskPod does not rely on any application resources or data stored on the host machine. This enables users to continue working even in the face of faulty components as they can simply move their DeskPod environment to another host machine, or create another copy on another storage device. DeskPod also enables mobile users to obtain the same persistent, personalized desktop computing experience from any computer.
DeskPod operates by encapsulating a user’s desktop computing session in a virtualized execution environment and storing all state associated with the session on the portable storage device. This enables DeskPod to be easily backed up when it is plugged into a user’s primary computer by replicating all recent changes to DeskPod’s file system. If the device is lost, users can then simply replicate the file system onto a new device and continue their work. DeskPod virtualization decouples the desktop applications from the underlying operating system environment by introducing a private virtual namespace that provides consistent, host-independent naming of system resources. Desk- Pod also virtualizes the display so that the desktop session can be scaled to different display resolutions that may be available as a user moves from one computer to another. This enables a desktop computing session to run in the same way on any host despite differences that may exist among different host operating system environments and display hardware. Furthermore, DeskPod virtualization protects the underlying host from untrusted applications that a user may run as part of a regular desktop session. DeskPod provides this functionality without modifying, recompiling or relinking any applications or the operating system kernel.
a DeskPod prototype for commodity PCs running Linux and measured its performance. Our experimental results with real applications demonstrate that DeskPod has very low virtualization overhead and can checkpoint and restart desktop sessions with sub-second latencies. We show that DeskPod can reconstitute a user’s desktop session more than an order of magnitude faster than if a user had to reopen the same set of applications without DeskPod. Our results also show that a complete DeskPod desktop computing session including file system state requires less than 512 MB of storage. DeskPod’s modest storage requirements enable it to be used with the small form factor USB drives available on the market today and can be conveniently carried on a key chain or in a user’s pocket. This paper presents the design and implementation of