IP Library › Granted Patent US 9,384,024
Granted Patent B2
US 9,384,024 · App. 14/133,396 · Granted Jul 5, 2016

Dynamic device virtualization

Inventor: Sreekumar Ramakrishnan Nair (San Jose, CA)
Assignee: Dynavisor, Inc.
G06F9/45533G06F9/4555G06F9/461
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,384,024
App. No.
14/133,396
Granted
Jul 5, 2016
Kind
B2
Abstract

A system and method for providing dynamic device virtualization is herein disclosed. According to one embodiment, the computer-implemented method includes observing a behavior of a native device driver of a device attached to a host computer, dynamically creating a virtual device driver by observing the behavior of the native device driver on a host operating system (OS) of the host computer, and providing the virtual device driver to a guest OS running on a virtualization host.

Claims (28)

1. A computer-implemented method, comprising:

observing a behavior of a native device driver of a device attached to a host computer, wherein the behavior includes one or more of a registration of the native device driver, registration by the native device driver of virtual file system function tables, and creation by the native device driver of user space device interfaces;

dynamically creating a virtual device driver by observing the behavior of the native device driver on a host operating system (OS) of the host computer;

providing the virtual device driver to a guest operating system (OS) running on a virtualization host;

securely loading the native driver via a sand box and providing an authenticated entry point for the virtual device driver; and

passing a token that is encrypted with a public key stored in a trusted program module (TPM) of the host computer.

2. The computer-implemented method of claim 1 , wherein the device is selected from a group comprising an input device, a graphics processing unit (GPU), a storage device, a network interface card (NIC), and a sensor.

3. The computer implemented method of claim 1 further comprising notifying device configuration of the host computer to a guest OS.

4. The computer-implemented method of claim 3 , wherein the host computer creates the virtual PCI bus and pushes a virtual PCI bus to the guest OS.

5. The computer-implemented method of claim 3 , wherein the guest OS performs a hypercall to the host computer to pull a list of virtual device drivers available on the host computer.

6. The computer-implemented method of claim 5 , wherein the guest OS starts a device manager client to perform the hypercall to the host computer to get device configuration and cloned virtual drivers.

7. The computer-implemented method of claim 1 further comprising virtualizing a user space device interface.

8. The computer-implemented method of claim 7 , wherein the user space device interface includes a file system entry corresponding to a user space on the guest OS.

9. The computer-implemented method of claim 1 further comprising loading a driver of the device to the guest OS based on the performance of the native device driver.

10. The computer-implemented method of claim 1 , wherein the host computer runs an INTELx86 based Linux.

11. The computer-implemented method of claim 1 further comprising hiding the authenticated entry point into the native device driver.

12. A non-transitory computer readable medium containing computer-readable instructions stored therein for causing a computer processor to perform operations comprising:

observing a behavior of a native device driver of a device attached to a host computer, wherein the behavior includes one or more of a registration of the native device driver, registration by the native device driver of virtual file system function tables, and creation by the native device driver of user space device interfaces;

dynamically creating a virtual device driver based on the performance of the native device driver;

providing the virtual device driver to a guest operating system (OS) running on the host computer;

securely loading the native driver via a sand box and providing an authenticated entry point for the virtual device driver; and

passing a token that is encrypted with a public key stored in a trusted program module (TPM) of the host computer.

13. The non-transitory computer readable medium of claim 12 , wherein the device is selected from a group comprising an input device, a graphics processing unit (GPU), a storage device, a network interface card (NIC), and a sensor.

14. The non-transitory computer readable medium of claim 12 , wherein the computer-readable instructions stored therein for causing the computer processor to perform operations further comprising virtualizing a user space device interface.

15. The non-transitory computer readable medium of claim 14 , wherein the user space device interface includes a file system entry corresponding to a user space on the guest OS.

16. The non-transitory computer readable medium of claim 12 , wherein the host computer runs an INTEL x86 based Linux.

17. The non-transitory computer readable medium of claim 12 , wherein the computer-readable instructions stored therein for causing the computer processor to perform operations further comprising:

hiding the entry point into the native device driver.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2018
From: NAIR, SREEKUMAR R.
To: DYNAVISOR, INC.
Reel/Frame 046143/0823 →
Continuity (2)
Provisional Application 61739002 · Dec 18, 2012
Related Publication 20140189690A1 · Jul 3, 2014