METHODS AND APPARATUS FOR SHARING A SERVICE 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 service between a plurality of virtual machines, the method comprising:
granting permission to a first virtual machine to access the service mediated by a hypervisor; and
using a packet switched protocol stack to access the service from a second different virtual machine via the hypervisor and the first virtual machine.
2 . The method of claim 1 , further comprising using the packet switched protocol stack to access a physical device from the second virtual machine via the hypervisor and the first virtual machine.
3 . The method of claim 1 , wherein the service is an encryption service.
4 . The method of claim 1 , wherein the service is performed by a coprocessor.
5 . The method of claim 1 , wherein granting permission to the first virtual machine to access the service includes granting permission to the first virtual machine to access physical memory associated with the service.
6 . An apparatus for sharing access to a service 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 service mediated by the hypervisor; and
use a packet switched protocol stack to access to facilitate accessing the service from a second different virtual machine via the hypervisor and the first virtual machine.
7 . The apparatus of claim 6 , wherein the apparatus also uses the packet switched protocol stack to access a physical device from the second virtual machine via the hypervisor and the first virtual machine.
8 . The apparatus of claim 6 , wherein the service is an encryption service.
9 . The apparatus of claim 6 , wherein the service is performed by a coprocessor.
10 . The apparatus of claim 6 , wherein granting permission to the first virtual machine to access the service includes granting permission to the first virtual machine to access physical memory associated with the service.
11 . A computer readable memory storing instructions structured to cause an electronic device to:
grant permission to a first virtual machine to access a service mediated by a hypervisor; and
use a packet switched protocol stack to access the service from a second different virtual machine via the hypervisor and the first virtual machine.
12 . The computer readable memory of claim 11 , wherein the electronic device also uses the packet switched protocol stack to access a physical device from the second virtual machine via the hypervisor and the first virtual machine.
13 . The computer readable memory of claim 11 , wherein the service is an encryption service.
14 . The computer readable memory of claim 11 , wherein the service is performed by a coprocessor.
15 . The computer readable memory of claim 11 , wherein granting permission to the first virtual machine to access the service includes granting permission to the first virtual machine to access physical memory associated with the service.