Systems and methods for supporting device access from multiple operating systems
First Claim
1. A computer system comprising:
- computer hardware configured to execute a first operating system, the computer hardware comprising a hardware device;
a virtual machine configured to execute a second operating system;
the hardware device being configured to be controlled by said first operating system via a driver installed on said first operating system;
the first operating system including a service provider, said service provider configured to;
determine a set of functions to expose to the second operating system, the set of functions including functions that the hardware device is configured to perform and functions that software is configured to emulate,expose the set of determined functions to the second operating system via a proxy driver instantiated in the second operating system, the service provider configured to receive function invocations from the second operating system via the proxy driver andsend function invocations that are directly supported by said hardware device to the hardware device and function invocations that software is configured to emulate to an emulator.
2 Assignments
0 Petitions
Accused Products
Abstract
A host operating system can take ownership of a device. The host can project the presence of a device proxy (VDP) into a guest operating system. The VDP provides a set of device functions corresponding to the particular device class. Interactions with the VDP in the guest are forwarded to a Virtual Service Provider (VSP) in the host. The VSP maps a set of device class functions onto physical devices through a hardware abstraction and emulation layer. Functions supported directly by a physical device can be delivered to the device by the hardware abstraction layer (HAL). Functions not directly supported can be implemented through the hardware emulation layer (HEL). A uniform and robust set of functions may be made available in the guest regardless of hardware changes in the host, migration to a new host, or use of the device by other competing operating systems.
28 Citations
20 Claims
-
1. A computer system comprising:
-
computer hardware configured to execute a first operating system, the computer hardware comprising a hardware device; a virtual machine configured to execute a second operating system; the hardware device being configured to be controlled by said first operating system via a driver installed on said first operating system; the first operating system including a service provider, said service provider configured to; determine a set of functions to expose to the second operating system, the set of functions including functions that the hardware device is configured to perform and functions that software is configured to emulate, expose the set of determined functions to the second operating system via a proxy driver instantiated in the second operating system, the service provider configured to receive function invocations from the second operating system via the proxy driver and send function invocations that are directly supported by said hardware device to the hardware device and function invocations that software is configured to emulate to an emulator. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer readable storage medium having instructions for representing by a first operating system a hardware device in a second operating system, said instructions comprising:
instructions for a first operating system that includes a service provider, the service provider including instructions for; determining a set of functions to expose to a second operating system executing in a virtual machine, the set of functions including functions that a hardware device is configured to perform and functions that software is configured to emulate, the hardware device being controlled from the first operating system via a driver installed in the first operating system; exposing the set of determined functions to the second operating system via a proxy driver instantiated in the second operating system, the service provider configured to receive function invocations from the second operating system via the proxy driver and sending function invocations that are directly supported by said hardware device to the hardware device and function invocations that software is configured to emulate to an emulator. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
14. A method for representing by a first operating system a hardware device in a second operating system, comprising:
-
determining, by a service provider executing within said first operating system, a set of functions to expose to a second operating system executing in a virtual machine, the set of functions including functions that a hardware device is configured to perform and functions that software is configured to emulate, the hardware device being controlled from the first operating system via a driver installed in the first operating system; configuring by said first operating system a proxy driver to expose said set of functions to said second operating system; exposing the set of determined functions to the second operating system via a proxy driver instantiated in the second operating system, the service provider configured to receive function invocations from the second operating system via the proxy driver and sending function invocations that are directly supported by said hardware device to the hardware device and function invocations that software is configured to emulate to an emulator. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification