System and method thereof for running an unmodified guest operating system in a para-virtualized environment
Abstract
An apparatus and method of operation in a para-virtualized environment. The method includes executing a first hypervisor on a hardware platform of a computing device; and executing a second hypervisor over the first hypervisor, the second hypervisor is configured to capture at least a privileged instruction called by an unmodified guest program executed over the second hypervisor and cause the first hypervisor to execute an instruction corresponding to the captured privileged instruction, wherein the unmodified guest program and the second hypervisor operate in a user space protection domain, e.g., Ring 3, and the at least privileged instruction should be executed in a kernel space protection domain, e.g., Ring 0.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . An apparatus operating in a para-virtualized environment, comprising:
a processor; and a memory coupled to the processor and configured to store at least a first set of instructions for a first hypervisor for execution by the processor and a second set of instructions for a second hypervisor for execution by the processor over the first hypervisor, wherein the first hypervisor is configured to enable execution of an unmodified guest program over the second hypervisor and wherein the unmodified guest program and the second hypervisor operate in a user space protection domain.
2 . The apparatus of claim 1 , wherein the second hypervisor is configured to capture at least a privileged instruction called by the unmodified guest program and translate the at least privileged instruction to at least a corresponding instruction of the first set of instructions executable by the first hypervisor without causing an exception, wherein the at least privileged instruction should be executed in a kernel space protection domain.
3 . The apparatus of claim 2 , wherein execution results of the corresponding instruction are exported to the unmodified guest program.
4 . The apparatus of claim 3 , wherein the execution results are written to a shared memory portion in the memory shared between at least the unmodified guest program and the first hypervisor.
5 . The apparatus of claim 2 , wherein the first hypervisor is a para-virtualized hypervisor.
6 . The apparatus of claim 5 , wherein the first set of instructions are executed in a kernel space protection domain.
7 . The apparatus of claim 6 , wherein the kernel space protection domain is Ring 0 and the user space protection domain is Ring 3 .
8 . The apparatus of claim 2 , wherein the translation includes the use of an application program interface (API) provided by the first hypervisor.
9 . The apparatus of claim 1 , wherein the unmodified guest program is an operating system that was not purposefully designed, programmed, or configured to operate successfully in the para-virtualized environment.
10 . A method of operation in a para-virtualized environment, comprising:
executing a first hypervisor on a hardware platform of a computing device; and executing a second hypervisor over the first hypervisor, the second hypervisor is configured to capture at least a privileged instruction called by an unmodified guest program executed over the second hypervisor and cause the first hypervisor to execute an instruction corresponding to the captured privileged instruction, wherein the unmodified guest program and the second hypervisor operate in a user space protection domain and the at least privileged instruction should be executed in a kernel space protection domain.
11 . The method of claim 10 , wherein the user space protection domain is Ring 3 and the kernel space protection domain is Ring 0 .
12 . The method of claim 10 , wherein responsive of capturing the at least privileged instruction by the second hypervisor, further comprising:
translating by the second hypervisor the at least privileged instruction into at least the corresponding instruction executable by the first hypervisor without causing an exception.
13 . The method of claim 12 , wherein the translation includes the use of an application program interface (API) provided by the first hypervisor.
14 . The method of claim 12 , wherein execution results of the corresponding instruction are exported to the unmodified guest program.
15 . The method of claim 10 , wherein the first hypervisor is a para-virtualized hypervisor.
16 . The method of claim 15 , wherein the unmodified guest program is an operating system that was not purposefully designed, programmed, or configured to operate successfully in the para-virtualized environment.
17 . A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method according to claim 10 .
18 . A method for isolating an unmodified guest program executed in a para-virtualized environment from a para-virtualized hypervisor, comprising:
executing a para-virtualized hypervisor (PVHV) on a hardware platform of a computing device; executing an interface hypervisor (IHV) over the PVHV; and executing the unmodified guest program over the IHV, wherein the IHV is configured to capture at least a privileged instruction received from the unmodified guest program and cause the PVHV to execute an instruction corresponding to the captured privileged instruction, wherein the unmodified guest program and the IHV operate in a user space protection domain and the at least privileged instruction should be executed in a kernel space protection domain.
19 . The method of claim 18 , wherein the user space protection domain is Ring 3 and wherein the kernel space protection domain is Ring 0 .
20 . The method of claim 18 , wherein the IHV is further configured to:
translate the at least privileged instruction to the corresponding instruction by use of an application program interface (API) provided for the PVHV.
21 . The method of claim 18 , wherein execution results of the corresponding instruction are exported to the unmodified guest program.
22 . The method of claim 18 , wherein the unmodified guest program is an operating system that was not purposefully designed, programmed, or configured to operate successfully in the para-virtualized environment.
23 . A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method according to claim 18 .Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.