VEX - Virtual Extension Framework
First Claim
1. A method implemented in a computing system comprising a processor and memory, the method for isolating an extension used by a host process, the method comprising the steps of:
- detecting an operation by the host process, wherein the operation is related to a functionality of the extension;
identifying a proxy for the extension, wherein the proxy supports the functionality related to the operation;
loading the proxy into the host process;
loading the extension into a virtual process, wherein the virtual process is a virtual instance of the host process;
forwarding from the proxy in the host process to the extension in the virtual process a request associated with the operation; and
forwarding, to the proxy in the host process, a response from the extension, wherein the response can be used by the proxy to support the operation by the host process.
1 Assignment
0 Petitions
Accused Products
Abstract
Extensions to operating systems or software applications can be hosted in virtual environments to fault isolate the extension. A generic proxy extension invoked by a host process can coordinate the invocation of an appropriate extension in a virtual process that can provide the same support APIs as the host process. Furthermore, a user mode context can be provided to the extension in the virtual process through memory copying or page table modifications. In addition, the virtual process, especially a virtual operating system process running on a virtual machine, can be efficiently started by cloning a coherent state. A coherent state can be created when a virtual machine starts up, or when the computing device starts up and the appropriate parameters are observed and saved. Alternatively, the operating system can create a coherent state by believing there is an additional CPU during the boot process.
-
Citations
29 Claims
-
1. A method implemented in a computing system comprising a processor and memory, the method for isolating an extension used by a host process, the method comprising the steps of:
-
detecting an operation by the host process, wherein the operation is related to a functionality of the extension; identifying a proxy for the extension, wherein the proxy supports the functionality related to the operation; loading the proxy into the host process; loading the extension into a virtual process, wherein the virtual process is a virtual instance of the host process; forwarding from the proxy in the host process to the extension in the virtual process a request associated with the operation; and forwarding, to the proxy in the host process, a response from the extension, wherein the response can be used by the proxy to support the operation by the host process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer readable storage medium having computer executable instructions for isolating an extension used by a host process, the computer readable medium comprising computer executable instructions for:
-
detecting an operation by the host process, wherein the operation is related to a functionality of the extension; identifying a proxy for the extension, wherein the proxy supports the functionality related to the operation; loading the proxy into the host process; loading the extension into a virtual process, wherein the virtual process is a virtual instance of the host process; forwarding from the proxy in the host process to the extension in the virtual process a request associated with the operation; and forwarding, to the proxy in the host process, a response from the extension, wherein the response can be used by the proxy to support the operation by the host process. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A computing device comprising:
- one or more processors; and
a memory storage, the memory storage comprising computer executable instructions for;creating a host process, wherein the host process performs an operation; creating a virtual process, wherein the virtual process is a virtual instance of the host process, and wherein further the virtual process supports an extension associated with the operation; loading a proxy associated with the operation into the host process; loading the extension into the virtual process; forwarding, to the extension, a request from the proxy; and forwarding, to the proxy, a response from the extension, wherein the response can be used by the proxy to support the operation. - View Dependent Claims (25, 26, 27, 28, 29)
- one or more processors; and
Specification