IP Library Granted Patent US 9,804,865
Granted Patent B2
US 9,804,865 · App. 14/720,553 · Granted Oct 31, 2017

Microvisor run time environment offload processor

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,804,865
App. No.
14/720,553
Granted
Oct 31, 2017
Kind
B2
Abstract

Embodiments here include systems and methods for running an application via a microvisor processor in communication with a memory and a storage is disclosed. For example, one method includes installing an application. The method also includes identifying an operating system that the application is configured to execute within. The method also includes identifying a resource required by the application to execute, wherein the resource is part of the operating system. The method also includes identifying a location of the resource in the storage. The method also includes retrieving the resource from the storage. The method also includes bundling the application and the resource in the memory. The method also includes executing the application using the resource.

Claims (69)

1. A method for running an application comprising,

via a microvisor processor in communication with a memory and a storage,

installing an application configured to execute on a specific operating system;

identifying the operating system that the application is configured to execute within, based upon an identifier of the application;

identifying a resource required by the application to execute, wherein the resource is part of the operating system;

identifying a location of the resource in the storage;

retrieving the resource from the storage;

bundling the application and the resource in the memory;

initializing a portion of the operating system, the portion including the resource; and

executing the application using the resource.

2. The method of claim 1 , wherein the resource is at least one selected from the group consisting of a run time library, a snippet, and a kernel.

3. The method of claim 2 , wherein the resource is less than an entirety of the operating system.

4. The method of claim 1 , wherein installing an application comprises loading the application into the memory.

5. The method of claim 1 , wherein the identifying the resource comprises querying for an identifier of the resource from a data store based upon the identifier of the application.

6. The method of claim 1 , wherein the identifying the resource comprises:

the application querying for an identifier of the resource from a data store, and

the application sending the identifier of the resource to the microvisor processor.

7. The method of claim 1 , wherein the identifying the location of the resource in the storage comprises querying the location of the resource from a data store based on an identifier of the resource.

8. The method of claim 7 , further comprising, via the microvisor processor, storing the location of the resource and the identifier of the resource in the memory.

9. The method of claim 1 , wherein the microvisor processor is in communication with the storage over a network.

10. The method of claim 1 , wherein the bundling the application and the resource comprises associating the resource with the application such that the application calls the resource while the application is executing.

11. The method of claim 1 , comprising, via the microvisor processor, communicating with a central processing unit configured to host other applications within a different operating system than the operating system that the application is configured to execute within.

12. The method of claim 1 , comprising:

via the microvisor processor,

installing a second application;

identifying a second operating system that the second application is configured to execute within, the second operating system different than the operating system;

identifying a second resource required by the second application to execute, wherein the second resource is part of the second operating system and is different than the resource;

bundling the second application and the second resource in the memory;

initializing less than an entirety of the second operating system, the less than an entirety of the second operating system including the second resource, wherein said initializing of less than the entirety includes skipping initialization of a portion of the second operating system, wherein the second resource is not included in the portion of the second operating system; and

executing the second application using the second resource.

13. A system, comprising:

a memory configured to store an application configured to execute on a specific operating system;

a storage configured to store a resource, wherein the resource is part of the operating system and is required by the application to execute;

a processor in communication with the memory and the storage, the processor configured to at least:

store the application in the memory,

identify the operating system based upon an identifier of the application,

identify the resource,

retrieve the resource from the storage,

bundle the application and the resource in the memory,

initialize a portion of the operating system, the portion including the resource, and

execute the application using the resource.

14. The system of claim 13 , wherein the resource is less than an entirety of the operating system.

15. The system of claim 13 , wherein the resource is at least one selected from the group consisting of a run time library, a snippet, and a kernel.

16. The system of claim 13 , further comprising a central processing unit configured to host other applications within a different operating system than the operating system that the application is configured to execute within.

17. The system of claim 16 , wherein the processor communicates with the central processing unit over a bus.

18. A computer-readable, non-transitory storage medium storing computer executable instructions that, when executed by one or more computer systems, configure the one or more computer systems to perform operations comprising:

installing an application configured to execute on a specific operating system;

identifying the operating system that the application is configured to execute within, based upon an identifier of the application;

identifying a resource required by the application to execute, wherein the resource is part of the operating system;

identifying a location of the resource in a storage;

retrieving the resource from the storage;

bundling the application and the resource in a memory;

initializing a portion of the operating system, the portion including the resource; and

executing the application using the resource.

19. The computer-readable, non-transitory storage medium of claim 18 , wherein the resource is at least one selected from the group consisting of a run time library, a snippet, and a kernel.

20. The computer-readable, non-transitory storage medium of claim 18 , wherein the resource is less than an entirety of the operating system.

21. A method for running an application configured to execute on an application operating system at a computer, the method comprising:

receiving an application request for the application at the computer from a user device, the user device comprising a device processor and a device memory, the computer comprising a host memory for storing a host operating system and a host processor configured for operating the host operating system that is different from the application operating system;

communicating with a resource library using the computer, the resource library defining one or more resources required for running the application;

identifying, using the computer, a set of resources required for running the requested application from the resource library, the set of resources comprising at least one resource required for the application operating system to support the requested application;

initializing a portion of the application operating system, the portion including the at least one resource; and

running, at the computer, the requested application with the set of resources.

22. A system comprising:

at least one storage component for storing, at least, a host operating system and a resource library defining one or more resources required for running an application configured to execute on an application operating system; and

a host processor configured for operating the host operating system different from the application operating system, the host processor being further configured to:

receive an application request for the application from a user device,

identify, from the resource library, a set of resources required for running the application, the set of resources comprising at least one resource required for the application operating system to host the application;

initialize a portion of the application operating system, the portion including the at least one resource; and

run the requested application with the identified set of resources.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2018
From: FBC HOLDINGS S.A R.L
To: SPHERE 3D CORP; SPHERE 3D INC.; V3 SYSTEMS HOLDINGS, INC.; OVERLAND STORAGE, INC.
Reel/Frame 047605/0027 →
SECURITY INTEREST Recorded Aug 28, 2017
From: OVERLAND STORAGE, INC.; SPHERE 3D CORP.; SPHERE 3D INC.; V3 SYSTEMS HOLDINGS, INC.
To: OPUS BANK
Reel/Frame 043424/0318 →
SECURITY INTEREST Recorded Jun 20, 2017
From: OVERLAND STORAGE, INC.; SPHERE 3D CORP.; SPHERE 3D INC.; V3 SYSTEMS HOLDINGS, INC.
To: OPUS BANK
Reel/Frame 042921/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2016
From: BOOKMAN, PETER G.; MORELLI, GIOVANNI J.
To: SPHERE 3D CORPORATION
Reel/Frame 039862/0327 →