SeamlessWindowsIntegration

Revision 8 as of 2007-03-26 07:13:03

Clear message

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

Allow users to run Windows apps on an Ubuntu desktop by remotely connecting to a Windows instance running locally in a VM. Most of the bits currently exist; what this spec will provide is an application to integrate the whole process from VM creation to application installation/execution.

Rationale

Despite best efforts, Windows programs are and will continue to be a part of many desktop users lives. Wine, while a fantastic product and an amazing result, simply isn't sufficient for many programs. At the same time, many of the people who need Windows programs already possess Windows licenses, so a virtualization solution is ideal. As multicore CPUs continue to proliferate in the Desktop market, the associated CPU cost of running a VM all of the time will shrink to nothing.

Use cases

  • Raul is a current Windows user who is interested in giving Ubuntu a shot, but has killer app Program X that simply won't run in Wine and doesn't have a Linux equivalent. He uses this spec's product to install Program X and run it in Ubuntu as if it were a native app.
  • Susan is a web developer who must be sure that her web pages are displayed properly in IE. Unfortunately, wine doesn't yet support the latest release of IE. Fortunately, she can use this product to run IE w/o rebooting into Windows.

Scope

This spec covers the program to assist the user in creating/configuring a VM image, installing Windows, installing programs and running programs from a VM.

Design

The design should have the following considerations:

  • Virtual Machine agnostic (plugin architecture?)
  • Entirely GUI accessible
  • Should include a walk-through for users to install Windows (OEM type preconfiguration possible?)
  • Should wrap the Windows program to handle VM start-up and connection
  • Possibility of a P2V solution to allow users to simply convert an existing Windows install to run all of the apps in Ubuntu?

Implementation

Virtual Machine

We have several choices for virtual machines. On the OSS side of things, we have qemu, virtualbox, bochs, KVM, and xen. On the closed but free side, we have VMware player. With the exception of Xen, all of the above solutions are full virtualization solutions which allow us to run Windows w/o special HW assistance. KVM/qemu/Xen all require modifications to Ubuntu itself (KVM/qemu supported by default after Feisty?). Xen in addition requires Hardware virtualization support to run Windows, so this isn't an option in general, though it is certainly viable for when we detect such a capability.

Unresolved issues

  • As it currently stands, Windows XP only allows a single RDP connection at a time. If we use an implementation similar to SeamlessVirtualization, then we are limited to running a single program at a time.

  • Windows Vista's version of RDP (6.0) supports running individual windows instead of simply viewing the whole desktop. Unfortunately, rdesktop 1.5.0 doesn't appear to support these features yet.

BoF agenda and discussion


CategorySpec CategorySpec