发明名称 Interposition method suitable for hardware-assisted virtual machine
摘要 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.
申请公布号 US9195487(B2) 申请公布日期 2015.11.24
申请号 US200912468744 申请日期 2009.05.19
申请人 VMware, Inc. 发明人 Adams Keith
分类号 G06F9/455;G06F9/46;G06F9/48 主分类号 G06F9/455
代理机构 代理人
主权项 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 by executing a protection mechanism that covers a system call vector containing portion of the supervisor register block, the protection mechanism hiding the hooked vector from the guest computation; 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, the substitute handler being introduced into the guest computation as a loadable kernel module; and responsive to execution of the substitute handler, initiating a hooked operation and transferring control to the system call handler.
地址 Palo Alto CA US