# Patent

## Title
Apparatus and method for adaptation of input/output interface in virtualization environment

## Abstract

Provided are an apparatus and method for adapting an input/output interface. According to the exemplary method, a host system adapts an input/output interface of the guest system to an input/output unit capability of a host system so as to support a service supported by an input/output unit supporting the input/output unit capability of the guest system using the at least one input/output unit of the host system.

## Background
CROSS-REFERENCE TO RELATED APPLICATION(S)
This application claims the benefit under 35 U.S.C. §119(a) of a Korean Patent Application No. 10-2008-0131669, filed on Dec. 22, 2008, and a U.S. Provisional Patent Application No. 61/061,705, filed on Jun. 16, 2008, the disclosures of both of which are incorporated herein in their entirety by reference for all purposes.


BACKGROUND
1. Field
The following description relates to a virtualization system, and more particularly, to a virtualization system allowing the dynamic migration of guest systems.
2. Description of the Related Art
An operating system (OS) includes a group of programs that provide interfaces so that a user can conveniently utilize the hardware in a computing device such as a personal computer. An operating system is used to manage resources, such as processors, memories, input/output interfaces, and communication devices.
Using a virtualization technology, a system that can support a plurality of operating systems may be provided. The concept behind a virtualization technology is to create a virtual layer on a host operating system or provide a hypervisor which itself provides a virtual layer and then create a plurality of logic virtual machines on the virtual layer. A guest operating system may be installed in each logic virtual machine, and each guest operating system may install an application supported by the guest operation system.
SUMMARY
According to one general aspect, there is provided an apparatus having a host system configured to adapt an input/output interface, wherein in response a guest system having an input/output unit capability migrating to the apparatus having the host system which controls at least one input/output unit, the host system adapts an input/output interface of the guest system to the input/output unit capability of the host system desired by the guest system so as to provide a service supported by the input/output unit capability of the guest system using the at least one input/output unit of the host system.
The host system may include a plurality of capability adaptors, each of which is configured to adapt an input/output unit capability to a different input/output unit capability, wherein the host system may select at least one capability adaptor from among the plurality of capability adaptors to adapt the capability of the input/output unit set up in the guest system to the capability of the input/output unit of the host system desired by the guest system.
The host system may create a virtual device interface according to a type of input/output unit desired by the guest system, and connect the selected at least one capability adaptor to a frontend driver of the guest system through the virtual device interface, and to a backend driver of the host system corresponding to the at least one input/output unit.
The guest system may migrate to the apparatus having the host system through a portable storage.
The plurality of capability adaptors may be dynamically changed so as to be newly registered and installed or uninstalled.
The plurality of capability adaptors may include a capability adaptor to convert a first resolution to a second resolution.
In response to a type of the input/output unit supporting the input/output unit capability of the guest system being an input device supporting a keypad and the at least one input/output unit controlled by the host system being a touch panel, the at least one capability adaptor may create a virtual keypad on the touch panel so as to provide the virtual keypad to a user.
The host system may include a registry including a plurality of capability adaptors, each of which is configured to adapt an input/output unit a capability to an different input/output unit capability, a match maker configured to select at least one capability adaptor from among the plurality of capability adaptors to adapt the capability of the input/output unit set up in the guest system to the capability of the input/output unit of the host system desired by capability of the guest system, and a connection manager configured to provide a virtual device interface connecting a frontend driver of the guest system to a backend driver of the host system corresponding to the at least one input/output unit capability of the host system.
In response to the connection manager receiving information on capability of the at least one input/output unit set up in the guest system and information on capability of an input/output unit of the host system desired by the guest system, the connection manager may transfer the received information to the match maker, and connect the at least one capability adaptor selected by the match maker to the virtual device interface and the backend driver of the host system.
According to another aspect, there is provided a method for adapting an input/output interface of a guest system to an input/output interface desired by a guest system, wherein the host system controls at least one input/output unit and the guest system desires to use the at least one input/output unit through the host system, the method including in response to the guest system migrating to an apparatus having the host system, adapting the input/output interface of the guest system to the input/output unit capability of the host system desired by the guest system, and providing a service supported by an input/output unit supporting the input/output unit capability of the guest system, through the at least one input/output unit controlled by the host system.
The adapting of the input/output interface of the guest system may include selecting at least one capability adaptor from among a plurality of capability adaptors, each adaptor being configured to adapt an input/output unit capability to an different input/output unit capability, to adapt the capability of the input/output unit set up in the guest system to the capability of the input/output unit of the host system desired by the guest system.
The adapting of the input/output interface of the host system may further include creating a virtual device interface according to a type of input/output unit desired by the guest system, and connecting the selected at least one capability adaptor to a fronted driver of the guest system through the virtual device interface, and to a backend driver of the host system corresponding to the at least one input/output unit.
The host system may include a registry, a match maker, and a connection manager configured to adapt the input/output interface of the guest system, the registry including a plurality of capability adaptors, each adaptor being configured to adapt an input/output unit capability to an different input/output unit capability, and the adapting of the input/output interface of the host system may include creating by the connection manager a virtual device interface to connect a frontend driver of the guest system to a backend driver of the host system corresponding to the input/output unit capability of the host system, receiving by the connection manager information on capability of the at least one input/output unit set up in the guest system and information one capability of an input/output unit desired by the guest system, and transferring by the connection manager the received information to the match maker, selecting by the match maker at least one capability adaptor from among the plurality of capability adaptors, each of which to adapt the capability of the at least one input/output unit set up in the guest system to the capability of the input/output unit of the host system desired by the guest system, based on the received information, and connecting by the connection manager the at least one capability adaptor selected by the match maker to the virtual device interface and a backend driver of the host system corresponding to the at least one input/output unit.
According to still another aspect, there is provided a computer-readable storage medium having embodied thereon a computer program for executing a method for adapting an input/output interface of a guest system to an input/output interface desired by a guest system, the host system controlling at least one input/output unit and the guest system desiring to use the at least one input/output unit through the host system, the method including in response to the guest system migrating to an apparatus having the host system, adapting the input/output interface of the guest system to the input/output unit of the host system desired by the guest system, and providing a service supported by an input/output unit supporting the input/output unit capability of the guest system, through the at least one input/output unit controlled by the host system.
Other features and aspects will be apparent from the following detailed description, the drawings, and the claims.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram illustrating a system architecture where an exemplary apparatus for dynamic adaptation of an input/output interface is provided.
FIG. 2 is a flowchart illustrating an exemplary method for dynamic adaptation of an input/output interface in a virtualization environment.
FIG. 3 is a block diagram illustrating an exemplary apparatus for dynamic adaption of an input/output interface in a virtualization environment.
FIG. 4 is a flowchart illustrating another exemplary method for dynamic adaptation of an input/output interface in a virtualization environment.
FIG. 5 is a diagram illustrating an example in which an input/output interface is dynamically adapted in a virtualization environment.



Throughout the drawings and the detailed description, unless otherwise described, the same drawing reference numerals will be understood to refer to the same elements, features, and structures. The relative size and depiction of these elements may be exaggerated for clarity, illustration, and convenience.
DETAILED DESCRIPTION
The following detailed description is provided to assist the reader in gaining a comprehensive understanding of the methods, apparatuses, and/or systems described herein. Accordingly, various changes, modifications, and equivalents of the systems, apparatuses and/or methods described herein will be suggested to those of ordinary skill in the art. Also, descriptions of well-known functions and constructions may be omitted for increased clarity and conciseness.
FIG. 1 shows an implementation of a system architecture where an exemplary apparatus for adaptation of an input/output interface is provided.
The system architecture of the apparatus supports a plurality of operating systems including a host system 300 and a guest system 400. The apparatus for dynamic adaptation of an input/output interface may be based on a Virtual Machine Monitor (VMM) layer 200. The VMM layer 200 can contain software, such as VMM, Hypervisor, L4, and the like. Also, the VMM layer 200 may support service migration to store the execution state of the guest system 400 and then run it on a different device.
The input/output interface dynamic adaptation apparatus may be one of various terminals, such as a mobile phone, mobile internet device (MID), digital television (DTV), personal digital assistant (PDA), ultra mobile PC (UMPC), and the like.
The VMM layer 200 visualizes hardware resources to allow guest operating systems to take control of the hardware resources, and manages the allocation of the hardware resources to the guest operating systems. According to an implementation, a plurality of operating systems 300 and 400 run on the same hardware whereas each operates as if running on a separate hardware. The number of operating systems (or domains) that can operate on the same system depends on hardware resource(s). Also, the VMM layer 200 creates different domains for these operating systems in separated address spaces, which may be called virtual machines (VM). Here, each domain may refer to an environment in which an operating system operates.
One operating system among the operating systems functions as the host system 300, which has direct controls on the hardware.
FIG. 1 shows only two operating systems 300 and 400 for convenience of description, but it is understood that the number of guest systems is not limited thereto. Also, FIG. 1 shows only a physical input/output unit 100 among various hardware resources, but it is also understood that other hardware resources can be applied to the current implementation. The physical input/output unit 100 may be a display, audio output unit, keyboard, mouse, track ball, touch pad, graphic tablet, joystick, and the like.
The host system 300 hosts a backend driver 310 which is one of the physical device drivers used in generic operating systems, on the VMM layer 200. While FIG. 1 shows only one backend driver 310, a plurality of backend drivers can be provided according to the type of the physical input/output unit 100. The backend driver 310 directly accesses and controls the physical input/output unit 100.
The physical input/output unit 100 may be, for example, a display, and the display may be one of various types of displays with different resolution, color depth, and the like.
The physical input/output unit 100, which is hardware of the host system 300, may have a different capability from that of an input/output device set up in the guest system 400. The types of physical input/output units that are compatible with the host system 300 may be more limited than the input/output types set up in the guest system 400. In a case where the physical input/output unit 100 of the host system 300 is a display, the display may have size/resolution and color settings which are different from a display type set up in the guest system 400.
The guest system 400 includes a frontend driver 410. When the guest system 400 is loaded in the host system, the frontend driver 410 can be connected to the backend driver 310 through an input/output supporting unit 320.
The input/output supporting unit 320 creates a virtual device interface according to an input/output unit type desired by the guest system 400, and connects the frontend driver 410 to the backend driver 310 through the virtual device interface.
The input/output supporting unit 320 allows at least one input/output unit installed in the guest system 400 to provide a service supported by the capability of the input/output unit of the guest system 400, using input/output unit capability of the host system 300 desired by the guest system 400. Accordingly, the input/output supporting unit 320 can include a plurality of capability adaptors (not shown) to provide a service supported by the capability of an input/output unit to input/output units having different capabilities.
A capability adaptor allows an input/output unit interface of the guest system 400 to adapt an input/output unit interface of host system 300 corresponding to an input/output unit type desired by the guest system 400. According to an implementation, the capability adaptors may be dynamically changed so as to be newly registered and installed or uninstalled.
One of the capability adaptors may be a capability adaptor for changing resolutions. For example, by using the capability adaptor for changing resolutions, a user, who has stopped watching a movie on a PDA, can watch the movie on a TV with a larger display at home seamlessly from the point at which the movie has been stopped.
Also, a capability adaptor may execute at least one function to adapt an input/output interface of the frontend driver 410 to the physical input/output unit 100 of the host system 300. For example, an update display function may be executed to adjust a frame buffer size to a desired size. That is, a capability adaptor may convert an 800×600 screen to a 400×300 screen whereas another capability adaptor may convert a 400×300 screen to an 800×600 screen. As another example, where an input/output unit of the guest system 400 is a key pad and an input/output unit supported by the host system 300 is a touch panel, a capability adaptor may provide a virtual keypad on the touch panel in order to receive a user input through the virtual keypad.
The input/output supporting unit 320 can select and use at least one capability adaptor from among the plurality of capability adaptors so as to adapt the capability of the input/output unit set up in the host system 300 to capability of an input/output unit type desired by the guest system 400. Accordingly, the input/output supporting unit 320 can connect the selected capability adaptor to the backend driver 310 of the host system 300 corresponding to the input/output unit type desired by the guest system 400 through a virtual device interface.
Therefore, when a guest system with an input/output unit capability which is different from that of a host system migrates to the host system, a service of an application which has been executed by the guest system may be provided seamlessly according to the input/output unit capability of the host system although the guest system does not have specific information about the input/output unit capability of the host system. In this case, the application of the guest system can be maintained without any change, and application(s) running in the guest operating system may only see virtual device drivers and may not need to worry about device specific settings and configuration.
FIG. 2 shows a flowchart of an exemplary method for dynamic adaptation of an input/output interface in a virtualization environment.
Referring to FIGS. 1 and 2, the guest system 400 migrates to an apparatus where the host system 300 exists (operation S210). The host system 300 adapts the input/output interface of the guest system 400 to the input/output interface of the host system 300 so that a service of an application running in the guest system 400 and supported by the capability of the input/output interface of the guest system 400 is provided according to the capability of an input/output unit type desired by the guest system 400 among at least one input/output unit installed in the host system 300 (operation S220).
FIG. 3 shows an exemplary apparatus for dynamic adaption of an input/output interface in a virtualization environment.
The input/output interface adaptation apparatus may correspond to the input/output supporting unit 320 of FIG. 1. Referring to FIG. 3, the input/output interface adaptation apparatus 320 includes a registry 321, a match maker 323, a connection manager 325, a capability adaptor (CA) 327, and a virtual device interface 329.
The registry 321 includes a plurality of capability adaptors to provide a service supported by the capability of an input/output unit to input/output units having different capabilities. A dynamic CA algorithm for selecting at least one of the plurality of capability adaptors may be registered in the registry 321. For example, the registry 321 may use a dynamic link library. The registry 321 may uninstall a capability adaptor which is no longer needed.
The match maker 323 selects at least one capability adaptor from among the plurality of capability adaptors to adapt the capability of an input/output unit set up in the guest system 400 (see FIG. 1) to capability of an input/output unit type of the host system 300 desired by the guest system 400.
The connection manager 325 monitors whether the frontend driver 410 (see FIG. 1) of the guest system 400 is found. In response to the frontend driver 410 being found, the connection manager 325 creates a virtual device interface 329 to connect the frontend driver 410 to the backend driver 310 (see FIG. 1) corresponding to the input/output unit type desired by the guest system 400. The backend driver 310 is not connected to the frontend driver 410 directly. Instead, the connection manager 325 connects the backend driver 310 through an appropriate capability adaptor (CA) and the virtual device interface 329 to the frontend driver 410.
The connection manager 325 causes the frontend driver 410 to communicate with the host system 300 through the virtual device interface 329, thereby monitoring whether a frontend driver of a new guest system is found.
The connection manager 325 requests information on capability of an input/output unit set up in the guest system 400 and information on capability of an input/output unit of the host system 300 desired by the guest system 400, to the backend driver 310 and the frontend driver 410, receives the information from the backend driver 310 and the frontend driver 410, and transfers the received information to the match maker 323. The match maker 323 selects an appropriate capability adaptor from the plurality of capability adaptors based on the received information and transfers information on the selected capability adaptor to the connection manager 325. Accordingly, the connection manager 325 can connect the selected capability adaptor to the virtual device interface 329 and the backend driver 310 corresponding to the input/output unit type desired by the guest system 400.
For example, the connection manager 325 transfers to the match maker 323 a message indicating that the virtual device interface 329 requires an 800×600 screen whereas an available backend driver 310 provides a 400×300 screen. In this case, the match maker 323 lets the connection manager 325 know an appropriate capability adaptor capable of performing a shrinking algorithm. Then, the connection manager 325 connects the capability adaptor to the virtual device interface 329 and the backend driver 310 of the corresponding input/output unit.
In FIG. 3, CA 327 represents the capability adaptor selected by the match maker 323, which is connected between the backend driver 319 and the virtual device interface 329. While the CA 327 is shown as a separate module in FIG. 3, it is understood that the CA 327 may be implemented in various ways as long as it can be connected between the virtual device interface 329 and the backend driver 310.
The virtual device interface 329 takes charge of the connection between the frontend driver 410 and the host system 300. For example, the virtual device interface 329 may set up event channels and shared pages with the frontend driver 410 for later data communication based on Xen mechanism. The virtual device interface 329 may be implemented as a device capable of performing different functions according to the types of the input/output units of the host system 300 and guest system 400. Also, the virtual device interface 329 provides an interface between the CA 327 and the frontend driver 410 of the guest system 400. The frontend driver 410 connects to the virtual device interface 329 when finding the virtual device interface 329.
FIG. 4 shows a flowchart of another exemplary method for dynamic adaptation of an input/output interface in a virtualization environment. FIG. 4 shows a process in which a backend driver of a host system is connected to a frontend driver of a guest system.
Referring to FIGS. 1, 3 and 4, the frontend driver 410 of the guest system 400 requests a connection to the host system 300 (operation S410). At this time, the frontend driver 410 transfers to the host system 300 information on a device type to which the guest system 400 wants to connect.
The connection manager 325 receives the connection request and the information on the device type to which the guest system 400 wants to connect (operation S420). Then, the connection manager 325 provides a virtual device interface 329 based on the information on the device type (operation S430).
The virtual device interface 329 sets up an event transfer mechanism between system resources (for example, shared memories, virtual machines, etc.,) requested for communicating with the fronted driver 410 of the guest system 400 (operation S440).
The connection manager 325 requests information on capability of an input/output unit set up in the guest system 400 and information on capability of an input/output unit of the host system 300 desired by the guest system 400, to the backend driver 310 and the frontend driver 410, receives the information from the backend driver 310 and the frontend driver 410, and transfers the received information to the match maker 323 (operation S450).
The match maker 323 selects at least one capability adaptor from among the plurality of capability adaptors to adapt the capability of the input/output unit set up in the guest system 400 to capability of the input/output unit type desired by the guest system 400 (operation S460).
Then, the connection manager 325 connects the capability adaptor selected by the match maker 323 to the virtual device interface 329 and the backend driver 310 corresponding to the desired input/output unit type (operation S470).
After the capability adaptor is connected to the virtual device interface 329 and the backend driver 310, data may flow without the involvement of the connection manager 325. For example, the data executed by the guest system 400 is transferred in the order of the frontend driver 410→virtual device interface 329→capability adaptor 327→backend driver 310→physical input/output unit 100 (see FIG. 1), and then output. Also, information received through the physical input/output unit 100 is transferred in the order of the backend driver 310→capability adaptor 327→virtual device interface 329→frontend driver 410, and thus input to the guest system 400.
FIG. 5 illustrates an example in which an input/output interface is dynamically adapted in a virtualization environment.
FIG. 5 shows the case where a frame buffer resolution is set to 800×600 in a frame buffer frontend driver for a display 501 of a guest system 400, and a frame buffer backend driver for a display 502 of a host system 300 supports a resolution of 400×300. Here, the guest system 400 migrates to an apparatus where the host system 300 exists through a portable storage 10.
Referring to FIGS. 3 and 5, in this case, the connection manager 325 transfers information on the capabilities of frame buffers obtained from the frontend driver and backend driver to the match maker 323, and requests an appropriate capability adaptor to the match maker 323. The match maker 323 informs the connection manager 325 of information on an appropriate capability adaptor which can convert the resolution of 800×600 to 400×300 in correspondence to the capability of the backend driver.
The connection manager 325 connects the capability adaptor to a virtual device interface 329 which may be provided in advance. Accordingly, a moving picture service of a game application, which has been executed in the guest system 400, can be provided adaptively according to the display requirements of the host system 300.
The methods described above may be recorded, stored, or fixed in one or more computer-readable storage media that includes program instructions to be implemented by a computer to cause a processor to execute or perform the program instructions. The media may also include, alone or in combination with the program instructions, data files, data structures, and the like. Examples of computer-readable media include magnetic media, such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVDs; magneto-optical media, such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like. Examples of program instructions include machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter. The described hardware devices may be configured to act as one or more software modules in order to perform the operations and methods described above, or vice versa. In addition, a computer-readable storage medium may be distributed among computer systems connected through a network and computer-readable codes or program instructions may be stored and executed in a decentralized manner.
A number of exemplary embodiments have been described above. Nevertheless, it will be understood that various modifications may be made. For example, suitable results may be achieved if the described techniques are performed in a different order and/or if components in a described system, architecture, device, or circuit are combined in a different manner and/or replaced or supplemented by other components or their equivalents. Accordingly, other implementations are within the scope of the following claims.

## Claims

1. An apparatus comprising a non-transitory computer-readable storage medium storing instructions for a host system to adapt an input/output interface, the host system comprising a plurality of capability adaptors the capability adaptors included in a registry, each of which is configured to adapt an input/output unit capability to a different input/output unit capability, wherein
in response to a guest system migrating to the apparatus having the host system which controls at least one input/output unit, wherein the guest system has an input/output unit capability,
the host system adapts an input/output interface of the guest system to the input/output unit capability of the host system desired by the guest system so as to provide a service supported by the input/output unit capability of the guest system using the at least one input/output unit of the host system wherein the host system selects at least one capability adaptor from among the plurality of capability adaptors to adapt the capability of an input/output unit set up in the guest system to the capability of the input/output unit of the host system desired by the guest system.

2. The apparatus of claim 1, wherein the host system creates a virtual device interface according to a type of the input/output unit desired by the guest system, and connects the selected at least one capability adaptor to a frontend driver of the guest system through the virtual device interface, and to a backend driver of the host system corresponding to the at least one input/output unit.

3. The apparatus of claim 1, wherein the guest system migrates to the apparatus having the host system through a portable storage.

4. The apparatus of claim 1, wherein the plurality of capability adaptors are dynamically changed so as to be newly registered and installed or uninstalled.

5. The apparatus of claim 1, wherein the plurality of capability adaptors comprise a capability adaptor to convert a first resolution to a second resolution.

6. The apparatus of claim 1, wherein in response to a type of the input/output unit supporting the input/output unit capability of the guest system being an input device supporting a keypad and the at least one input/output unit controlled by the host system being a touch panel, the at least one capability adaptor creates a virtual keypad on the touch panel so as to provide the virtual keypad to a user.

7. The apparatus of claim 1, wherein the host system comprises:
a match maker configured to select at least one capability adaptor from among the plurality of capability adaptors to adapt the capability of an input/output unit set up in the guest system to the capability of the input/output unit of the host system desired by the guest system; and
a connection manager configured to provide a virtual device interface connecting a frontend driver of the guest system to a backend driver of the host system corresponding to the input/output unit capability of the host system.

8. The apparatus of claim 7, wherein in response to the connection manager receiving information on capability of the input/output unit set up in the guest system and information on capability of an input/output unit of the host system desired by the guest system, the connection manager transfers the received information to the match maker, and connects the at least one capability adaptor selected by the match maker to the virtual device interface and the backend driver of the host system.

9. A method for adapting an input/output interface of a guest system to an input/output interface desired by a guest system, wherein a non-transitory computer-readable storage medium storing instructions for a host system to control at least one input/output unit and the guest system desires to use the at least one input/output unit through the host system, the method comprising:
in response to the guest system migrating to an apparatus having the host system, adapting the input/output interface of the guest system to the input/output unit of the host system desired by the guest system by selecting at least one capability adaptor from among a plurality of capability adaptors included in a registry, each adaptor being configured to adapt an input/output unit capability to an different input/output unit capability; and
providing a service supported by an input/output unit supporting the input/output unit capability of the guest system, through the at least one input/output unit controlled by the host system wherein the adapting of the input/output interface of the guest system comprises adapting the capability of the input/output unit set up in the guest system to the capability of the input/output unit of the host system desired by the guest system.

10. The apparatus of claim 1, wherein the registry uses a dynamic link library and the registry uninstalls a capability adaptor which is no longer needed.

11. The apparatus of claim 1, wherein the plurality of capability adaptors included in the registry are dynamically changed so as to be newly registered and installed or uninstalled.

12. The method of claim 9, wherein the adapting of the input/output interface of the host system further comprises creating a virtual device interface according to a type of input/output unit desired by the guest system, and connecting the selected at least one capability adaptor to a frontend driver of the guest system through the virtual device interface, and to a backend driver of the host system corresponding to the at least one input/output unit.

13. The method of claim 9, wherein the plurality of capability adaptors are dynamically changed so as to be newly registered and installed or uninstalled.

14. The method of claim 9, wherein the plurality of capability adaptors comprise a capability adaptor to convert a first resolution to a second resolution.

15. The method of claim 9, wherein in response to a type of the input/output unit supporting the input/output unit capability of the guest system being an input device supporting a keypad and the input/output unit controlled by the host system being is a touch panel, the at least one capability adaptor creates a virtual keypad on the touch panel so as to provide the virtual keypad to a user.

16. The method of claim 9, wherein:
wherein the registry includes the plurality of capability adaptors, and
the adapting of the input/output interface of the host system comprises:
creating by the connection manager a virtual device interface to connect a frontend driver of the guest system to a backend driver of the host system corresponding to the input/output unit capability of the host system;
receiving by the connection manager information on capability of the at least one input/output unit set up in the guest system and information one capability of an input/output unit of the host system desired by the guest system, and transferring by the connection manager the received information to the match maker;
selecting by the match maker at least one capability adaptor from among the plurality of capability adaptors, each of which to adapt the capability of the input/output unit set up in the guest system to the capability of the input/output unit of the host system desired by the guest system, based on the received information; and
connecting by the connection manager the at least one capability adaptor selected by the match maker to the virtual device interface and a backend driver of the host system corresponding to the at least one input/output unit.

17. A non-transitory computer-readable storage medium having embodied thereon a computer program for executing a method for adapting an input/output interface of a guest system to an input/output interface of the host system desired by a guest system, the host system controlling at least one input/output unit and the guest system desiring to use the at least one input/output unit through the host system, the method comprising:
in response to the guest system migrating to an apparatus having the host system, adapting the input/output interface of the guest system to the input/output unit of the host system desired by the guest system by selecting at least one capability adaptor from among a plurality of capability adaptors included in a registry, each adaptor being configured to adapt an input/output unit capability to an different input/output unit capability; and
providing a service supported by an input/output unit supporting the input/output unit capability of the guest system, through the at least one input/output unit controlled by the host system wherein the adapting of the input/output interface of the guest system comprises adapting the capability of the input/output unit set up in the guest system to the capability of the input/output unit of the host system desired by the guest system.