SeamlessWindowsIntegration

Differences between revisions 9 and 10
Revision 9 as of 2007-03-26 07:28:30
Size: 4019
Editor: resnet-50-20
Comment: Added Licensing concern
Revision 10 as of 2007-03-26 11:14:59
Size: 5432
Editor: horatio-073
Comment:
Deletions are marked like this. Additions are marked like this.
Line 36: Line 36:
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. 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 HW 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.

For the sake of simplicity, the initial design will only support qemu, with the intention of supporting more VMs in the future.

=== Window Forwarding Mechanism ===

==== Windows XP Client ====
A combination of RDP and [http://www.cendio.com/seamlessrdp/ seamlessrdp] enables us to run a single program at a time from a Windows XP Pro client. It is conceivable that a similar solution could be constructed to allow the forwarding of a single program window using simple X forwarding, but such a solution is beyond the scope of this project.

While Vista is new and sexy, XP is and will remain an important client to support, possibly even more important than Vista. As many organizations are recoiling at the thought of upgrading to Vista, this project offers them an alternative upgrade path that allows them to run their legacy applications interminably while offering a new, open future.
==== Windows Vista Client ====
The new version of RDP that ships w/ Vista support running individual programs. The easy solution here is simply to wait until rdesktop supports this feature and use that as the forwarding mechanism.
Line 42: Line 53:
 * Because of theming, it will be quite clear that Windows programs aren't running natively. This may be desirable in some circumstances, and less desirable in others. One work-around is to install the Ubuntu Human theme in Windows, or to install a Windows knock-off theme in Ubuntu.

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 HW 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.

For the sake of simplicity, the initial design will only support qemu, with the intention of supporting more VMs in the future.

Window Forwarding Mechanism

Windows XP Client

A combination of RDP and [http://www.cendio.com/seamlessrdp/ seamlessrdp] enables us to run a single program at a time from a Windows XP Pro client. It is conceivable that a similar solution could be constructed to allow the forwarding of a single program window using simple X forwarding, but such a solution is beyond the scope of this project.

While Vista is new and sexy, XP is and will remain an important client to support, possibly even more important than Vista. As many organizations are recoiling at the thought of upgrading to Vista, this project offers them an alternative upgrade path that allows them to run their legacy applications interminably while offering a new, open future.

Windows Vista Client

The new version of RDP that ships w/ Vista support running individual programs. The easy solution here is simply to wait until rdesktop supports this feature and use that as the forwarding mechanism.

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.
  • There may be licensing issues involved with virtualizing Windows. Vista Home at the least isn't licensed to run in a VM. I believe all of the other versions of Vista are suitably licensed, and that they all support RDP. This needs a little bit of research.
  • Because of theming, it will be quite clear that Windows programs aren't running natively. This may be desirable in some circumstances, and less desirable in others. One work-around is to install the Ubuntu Human theme in Windows, or to install a Windows knock-off theme in Ubuntu.

BoF agenda and discussion


CategorySpec CategorySpec

SeamlessWindowsIntegration (last edited 2008-08-06 16:26:32 by localhost)