METHODS AND APPARATUS FOR SHARING A PHYSICAL DEVICE BETWEEN MULTIPLE VIRTUAL MACHINES
Methods and apparatus for sharing a physical device and/or service between multiple virtual and/or physical machines are disclosed. In an embodiment, a hypervisor grants permission to a first virtual machine to access a physical device via the hypervisor. For example, the hypervisor may grant permission to a first virtual machine to access a physical audio device. A second virtual machine then accesses the physical device via the hypervisor and the first virtual machine using a virtual services network stack. For example, the second virtual machine may play music on the audio device via the first virtual machine. In another embodiment, a first physical machine is granted permission to access and/or is connected to a physical device (e.g., an audio device) via a communication channel. A second physical machine then accesses the physical device (e.g., plays music) via the communication channel and the first physical machine using the virtual services network stack.
1 . A method of sharing access to a physical device between a plurality of virtual machines, the method comprising:
granting permission to a first virtual machine to access the physical device mediated by a hypervisor; and
using a packet switched protocol stack to access the physical device from a second different virtual machine via the hypervisor and the first virtual machine.
2 . The method of claim 1 , wherein granting permission to the first virtual machine to access the physical device includes granting permission to the first virtual machine to access physical memory associated with the physical device.
3 . The method of claim 1 , wherein the physical device is an input device.
4 . The method of claim 1 , wherein the physical device is an output device.
5 . The method of claim 1 , wherein the physical device is an input/output device.
6 . The method of claim 1 , wherein the physical device is a coprocessing device.
7 . An apparatus for sharing access to a physical device between a plurality of virtual machines, the apparatus comprising:
a hypervisor; and
at least one physical processor operatively coupled to the hypervisor; wherein the hypervisor is structured to:
grant permission to a first virtual machine to access the physical device mediated by the hypervisor; and
facilitate accessing the physical device from a second different virtual machine via the hypervisor and the first virtual machine, using a packet switched protocol stack.
8 . The apparatus of claim 7 , wherein granting permission to the first virtual machine to access the physical device includes granting permission to the first virtual machine to access physical memory associated with the physical device.
9 . The apparatus of claim 7 , wherein the physical device is an input device.
10 . The apparatus of claim 7 , wherein the physical device is an output device.
11 . The apparatus of claim 7 , wherein the physical device is an input/output device.
12 . The apparatus of claim 7 , wherein the physical device is a coprocessing device.
13 . A computer readable memory storing instructions structured to cause an electronic device to:
grant permission to a first virtual machine to access a physical device mediated by a hypervisor; and
use a packet switched protocol stack to access the physical device from a second different virtual machine via the hypervisor and the first virtual machine.
14 . The computer readable memory of claim 13 , wherein granting permission to the first virtual machine to access the physical device includes granting permission to the first virtual machine to access physical memory associated with the physical device.
15 . The computer readable memory of claim 13 , wherein the physical device is an input device.
16 . The computer readable memory of claim 13 , wherein the physical device is an output device.
17 . The computer readable memory of claim 13 , wherein the physical device is an input/output device.
18 . The computer readable memory of claim 13 , wherein the physical device is a coprocessing device.