INTERPOSITION METHOD SUITABLE FOR HARDWARE-ASSISTED VIRTUAL MACHINE
First Claim
1. A method of interposing operations in a computational system that includes a virtualization system executable on an underlying hardware processor that natively supports one or more instructions that transition between host and guest execution modes, the method comprising:
- introducing a hooked vector into a supervisor register block of the hardware processor, wherein the hooked vector displaces a system call handler vector otherwise set by a guest computation to activate a system call handler;
read and write protecting at least the hooked vector containing portion of the supervisor register block;
initiating execution of a code sequence of the guest computation on the hardware processor using one of the instructions that transition between the host and guest execution modes thereof, wherein the code sequence includes a system call and wherein upon initiation of the system call, the hardware processor transfers execution to a substitute handler in accordance with the hooked vector; and
responsive to execution of the substitute handler, initiating a hooked operation and transferring control to the system call handler.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention is a method of interposing operations in a computational system that includes a virtualization system executable on an underlying hardware processor that natively supports one or more instructions that transition between host and guest execution modes. The method includes introducing a hooked vector into a supervisor register block of the hardware processor, wherein the hooked vector displaces a system call handler vector otherwise set by a guest computation; read and write protecting at least the hooked vector containing portion of the supervisor register block; initiating execution of a code sequence of the guest computation on the hardware processor using one of the instructions that transition between the host and guest execution modes thereof, wherein the code sequence includes a system call and wherein upon initiation of the system call, the hardware processor transfers execution to a substitute handler in accordance with the hooked vector; and responsive to execution of the substitute handler, initiating a hooked operation and transferring control to the guest system call handler.
-
Citations
24 Claims
-
1. A method of interposing operations in a computational system that includes a virtualization system executable on an underlying hardware processor that natively supports one or more instructions that transition between host and guest execution modes, the method comprising:
-
introducing a hooked vector into a supervisor register block of the hardware processor, wherein the hooked vector displaces a system call handler vector otherwise set by a guest computation to activate a system call handler; read and write protecting at least the hooked vector containing portion of the supervisor register block; initiating execution of a code sequence of the guest computation on the hardware processor using one of the instructions that transition between the host and guest execution modes thereof, wherein the code sequence includes a system call and wherein upon initiation of the system call, the hardware processor transfers execution to a substitute handler in accordance with the hooked vector; and responsive to execution of the substitute handler, initiating a hooked operation and transferring control to the system call handler. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A virtualization system adapted for execution on a hardware processor that provides hardware-assistance for virtualization using a native instruction executable on the processor to initiate a guest execution mode for direct execution of code associated with a guest computation, the virtualization system configured to selectively interpose on system calls initiated by the guest computation using:
- (i) a hooked vector introduced into a supervisor register block of the processor, displacing a system call handler vector otherwise set for the guest computation to activate a system call handler; and
(ii) a substitute handler introduced into the guest computation code as a loadable kernel module, the substitute handler executable to initiate a hooked operation and to transfer control to the system call handler, wherein the virtualization system spoofs operative content of a system call handler vector coding of the model-specific register based on protection faults serviced by the virtualization system. - View Dependent Claims (15, 16, 17)
- (i) a hooked vector introduced into a supervisor register block of the processor, displacing a system call handler vector otherwise set for the guest computation to activate a system call handler; and
-
18. A computer program product embodied in one or more computer readable media and comprising:
-
program code executable on a physical machine to implement a virtualization system that exports at least one virtual machine to a guest computation; and substitute handler code introducible as a loadable kernel module of the guest computation and executable to initiate a hooked operation and to transfer control to a system call handler of the guest computation, the program code including initialization code executable in response to a hypercall from the guest computation to introduce into a supervisor register block of the physical machine a hooked vector that identifies the substitute handler code and displaces a vector to the system call handler otherwise set for the guest computation and to spoof operative content of the supervisor register block based on protection faults serviced by the virtualization system. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification