Intel Patent reveals virtual machine geared for consumer desktops

Posted by Dennis Sellers Apple ico Jun 22, 2006 at 1:28pm

imageOn June 22, the US Patent & Trademark Office revealed Intel’s patent application titled “Method, apparatus and system for transparent unification of virtual machines.” The patent states that “given the complexity and processing requirements of virtualization, this technology has typically been available only on workstations, servers and/or mainframes for use by sophisticated users. As processor technology advances, however, virtualization is being made available in the desktop environment for use by average users.”

Considering the fact that the patent relates to average consumers using advanced virtual machine technology, the chances are high that Apple will take advantage of Intel’s “unified desktop interface” in their next iteration of OS X, dubbed Leopard. What’s described herein goes far beyond the initial capabilities of Apple’s current Boot Camp solution.

Intel’s abstract

A method, apparatus and system for transparently unifying virtual machines (“VMs”) is disclosed. An embodiment of the present invention enables a user to interact with various applications on a VM host while unaware of the VM structure on the VM host. The user may be presented with a unified desktop interface representing a composite and/or unified view of the VM host. Via this unified desktop interface, the user may perform all necessary commands and/or receive output. Invisible to the user, the unified desktop interface represents a unification console. The unification console may be an independent component (e.g., an enhanced VM) and/or a subset of a virtual machine manager (“VMM”) component on the VM host. In either situation, the unification console may, alone and/or in conjunction with the VMM, route and/or redirect and/or transform and/or filter the user’s commands to the appropriate applications and redirect and/or copy and/or transform and/or filter the output from the applications to be displayed in the unified desktop interface.
Excerpts from the patent

As previously described, virtualization is becoming more commonly available in the desktop environment. In this environment, the most likely users are unlikely to be computer professionals (e.g., information technology specialists in corporate environments) but rather less sophisticated users (e.g., home personal computer (“PC”) users and/or non-technical, less sophisticated corporate users). The applications that run within the desktop environment and the types of uses for the applications may also differ from corporate applications. For example, one use of virtualization in a home (and the associated advantage of running one or more independent VMs on a host) may be for each family member to be allocated a VM partition with their own customized environment, e.g., a gaming VM partition, a Personal Video Recorder (“PVR”) appliance VM, an enterprise Information Technology (“IT”) supplied VM for telecommuting, etc. Moreover, it is likely that each user may have several VMs, each possibly dedicated for a specific task such as a dedicated VM for internet browsing, one for gaming applications, etc. Some might be scheduled to run 24.times.7 (e.g. a personal video recorder (“PVR)), while others are launched and exited frequently. In this environment, the average home PC user may be overwhelmed by the task of understanding and/or managing the VM partitions (e.g., moving files, setting up access permissions, etc.).

Guest OS

VM 110 and VM 120 may function as self-contained platforms respectively, running their own “guest operating systems” (i.e., operating systems hosted by VMM 130, illustrated as “Guest OS 111” and “Guest OS 121” and hereafter referred to collectively as “Guest OS”) and other software (illustrated as “Guest Software 112” and “Guest Software 122” and hereafter referred to collectively as “Guest Software”). Each Guest OS and/or Guest Software operates as if it were running on a dedicated computer. That is, each Guest OS and/or Guest Software may expect to control various events and have access to hardware resources on Host 100. The VMM need not just project a representation of the physical platform or give direct access to resources. The VMM may also create new virtual devices (e.g. a network interface card (“NIC”)) while possibly using Host 100’s processor and similar devices (e.g., another NIC) on Host 100 to emulate those virtual devices.

The virtual platform presented to a given VM by VMM 130 may be a hybrid of virtual and physical elements. Therefore, within each VM, the Guest OS and/or Guest Software may behave as if they were, in effect, running on the virtual platform hardware, supported by the VMM 130. In reality however, VMM 130 has ultimate control over the events and hardware resources (which may be physical or virtual as created by VMM 130), and allocates resources to the VMs according to its own policies. Recursive or layered VM schemes may also be possible, e.g., VM 110 may host another virtual host (which may appear to have behaviors like physical Host 100 or some other virtual host platform, or a hybrid platform.) These types of recursive schemes are well known to those of ordinary skill in the art and further description thereof is omitted herein in order not to unnecessarily obscure embodiments of the present invention.

In order to access applications running on the various VMs on a VM host, a user typically has to know which VM the application is running in and manually switch to the appropriate VM. Thus, for example, if the user desires to play a video game (e.g., Guest Software 112 running on VM 110), the user has to manually select VM 110, find the application and launch the game. Thereafter, if the user desires to access another application (e.g., Guest Software 122 running on VM 120), the user has to determine which VM the application is running in and manually switch to that VM in order to run the application. Although switching between VMs may not be especially cumbersome (e.g., a keystroke to switch from one VM to another), keeping track of what applications are running on each VM may prove to be difficult, especially if the host is configured to run more than two VMs (as is likely). For a home PC user, keeping track of the various partitions that are running on his or her PC and/or the applications running in each partition may prove to be highly complex. The typical home PC user may not be technically savvy enough to understand the underlying view of the VM host and as a result, may have difficulties and/or shy away from fully utilizing a host running multiple VMs.

Transparently unifying multiple Virtual Machines (VMs)

Embodiments of the present invention provide a method, apparatus and system for transparently unifying multiple VMs on a host. More specifically, according to an embodiment of the present invention, users may interact with Guest Software on a VM host via a unified graphical user interface (the user interface hereafter referred to as “Unified Desktop Interface 200”). As illustrated in FIG. 2, the user may be presented with Unified Desktop Interface 200, which is a logical representation of the views of all or a subset of the various VMs on Host 100 such that the user can see and/or launch applications in one or more VMs from this view. In various embodiments, the view presented to the user may resemble a typical desktop, but unknown to the user, the desktop may in fact represent applications contained in various VMs on the host.

image

In one embodiment, the user’s view of Unified Desktop Interface 200 may include all applications available to the user. Thus, for example, if the user has access to all the VMs on Host 100, then the various applications in each partition may be visible and accessible to the user in Unified Desktop Interface 200. Alternatively, the user may only have permission to access a subset of VMs on the host, in which case the applications visible and accessible to the user may include only those contained in the authorized VMs. As illustrated, Mail Program 210, Audio Visual Program 220 and various other applications (shown collectively as “Other Applications 230”) are presented to the user in this interface without any indication of which VM these applications reside in. In fact, from the user’s perspective, there may appear to be little to no difference between a non-virtualized environment and the virtualized environment of Host 100 (in which each application is contained in its own VM).

Unified Desktop Interface 200 illustrated in FIG. 2 is merely an example of an interface that the user may see, in which there is no indication that the host is virtualized. In an alternate embodiment, Unified Desktop Interface 200 may include a view of all the VMs as well as all the applications running in each VM. In yet another embodiment, in a layered VM environment, a unified desktop interface may exist across all VM layers. Alternatively, in a layered VM environment, a unified desktop interface may be provided with each VMM, thus enabling one unified desktop interface to be embedded in the unified desktop environment of a parent VM layer.

Various other unified desktop interfaces may be implemented without departing from the spirit of embodiments of the present invention. Most importantly, by presenting a unified view to the user, embodiments of the present invention significantly improve the usability of multiple VMs simultaneously, because the user’s experience may resemble that of a typical desktop PC user, namely one in which the user simply selects an application (i.e., Guest Software) on Host 100 to execute, without needing to be aware of the virtual partitions on the PC and/or how to manage or exchange the Guest Software files within these partitions. Thus, for example, if the user selects Mail Program 210, as expected, the user may then be presented with the graphical output (“Mail Program Output 310”) from Mail Program 210, as illustrated in FIG. 3. The user may view this output within Unified Desktop Interface 200 and the underlying interaction with the various VMs on Host 100 may remain invisible to the user, i.e., the user does not know that Mail Program 210 is actually executing in one of the VMs on Host 100.

Although invisible to the user, various elements on Host 100 enable the user to view and/or interact with all the VMs on Host 100 via Unified Desktop Interface 200. More specifically, in various embodiments of the present invention, a “unification console” (described in further detail below) enables the unified interface by transparently redirecting the input and/or output from the user and the VMs such that the user does not have to know which VM an application resides in and/or is running in. For the purposes of this specification, input and/or output shall include any form of input and/or output that Host 100 may recognize.

Unification console

image

As illustrated in FIG. 4, in one embodiment, when a user selects an application on Host 100 (e.g., Mail Program 210) via the unified interface (e.g., Unified Desktop Interface 200 in FIG. 2), the user selection may be intercepted by Enhanced VMM 430 and passed onto Unification Console 400. Unification Console 400 may then, in conjunction with Enhanced VMM 430, determine how and where to deliver the user selection. Similarly, Unification Console 400 and/or Enhanced VMM 430 may handle the redirection of output (e.g., graphical output) from Mail Program 210 such that the user views the output on the unified interface (e.g., Unified Desktop Interface 200 in FIG. 2). Although FIG. 4 shows only VM 110, VM 120 may also be running on Host 100. Details of VM 120 have not been included herein in order to avoid obscuring how VM 110 functions according to an embodiment of the present invention. It will be readily apparent to those of ordinary skill in the art, however, that VM 120 may function similarly, alone or concurrently with VM 110. Details of how Unification Console 400 performs the routing, redirection and/or delivery of input and/or output for VM 110 is discussed in further detail below.

Additionally, in one embodiment, audio output from VMs without the current user focus may be muted or turned down. Similarly, inputs into the VMs may also be transformed or filtered by Unification Console 400. For example, audio voice data may only be permitted to certain applications and VMs, even if the system microphone is always on. In one embodiment, audio input may be muted to all applications except a child’s voice morphing program or to a Voice Over IP (VoIP) Internet telephony VM or application. In yet another embodiment, high-resolution video inputs may have resolution downgraded to accommodate the bandwidth or processing or storage limitations afforded a given VM or application. Such restrictions may be documented in the descriptors 450.

Notice

Macsimum News presents only a brief summary of patents with associated graphic(s) for journalistic news purposes as each such patent application and/or grant is revealed by the U.S. Patent & Trade Office. Readers are cautioned that the full text of any patent applications and/or grants should be read in its entirety for further details.

This report is based on Intel’s patent application number 20060136912

If you’d like to see more Intel patent coverage on MacsimumNews in the future, then drop me an email at neo@macsimumnews.com

(To see Part 2, click here.)

Article Information

Comment on this Article Print this Article Email this Article Digg This

Contributor

Contributor

Dennis Sellers

Dennis has been a newspaper editor/reporter (seven years) and teacher (seven years). He has over 4,000 magazine, newspaper and online articles to his credit.  He has also covered the Mac and tech industries for over a decade for such online publications as MacCentral, MacMinute and now MacsimumNews.

Recent Articles


Hotel München