摘要:
A system, method and computer program product for optimizing handling of guest code in a Virtual Machine include code for identifying, in the guest code, a predetermined pattern that includes privileged but unsafe instructions and an instruction that raises an exception; code for executing the guest code in a native mode; code for, upon encountering the instruction that raise the exception, transferring control to a Virtual Machine Monitor; code for emulating the pattern in the Virtual Machine Monitor; and code for rolling back the effects of privileged but unsafe instructions and any intervening instructions to ensure correct Virtual Machine Monitor context. The pattern can include, for example, a privileged but unsafe instruction, followed by safe instructions, followed by an exception raising instruction, followed by safe instructions, followed by a privileged but unsafe instruction. Optionally, the most frequently occurring patterns can be placed in a cache, for use by the Virtual Machine Monitor to verify their presence in the guest code.
摘要:
A method of emulating segment addressing by a processor that includes initiating a Virtual Machine Monitor in a kernel mode; initiating a Virtual Machine in a user mode; forming a dynamically mapped table in Virtual Machine Monitor space, the dynamically mapped table corresponding to a table of segment descriptors of the Virtual Machine; populating the dynamically mapped table with descriptors that raise exceptions upon an attempt by the Virtual Machine to address a corresponding segment; and mapping a descriptor to the dynamically mapped table upon the Virtual Machine's use of that descriptor.
摘要:
A method, system and computer program product recorded on a computer-readable medium for execution on at least one processor, for seamless integration of a non-native application into a host OS, including launching a first Virtual Execution Environment (VEE) on a computing system that has a host operating system and a host desktop displayed to a user; displaying a window corresponding to the VEE on the host desktop; upon a user invoking a user application that is non-native to both the host OS and the first VEE, (a) installing a second VEE that is compatible with the user application, (b) installing the user application into the second VEE, (c) launching the application inside the second VEE, and (d) displaying the non-native application window within a window of the second VEE. The VEE can be a Virtual Private Server or a Virtual Machine.
摘要:
A method and system for handling of potential unsafe instructions and/or for handling transfers of control in a Virtual Machine, that includes generating a frame composed of pages of analyzed code based on original guest code; identifying instructions within the frame that transfer control (or are otherwise unsafe); replacing instructions that transfer the control with an interrupt that transfers control to a stub in non-privileged code; wherein the stub checks whether the control transfer (or instruction) is safe or unsafe, and (i) for unsafe control transfers/unsafe instructions, switches the context to Virtual Machine Monitor; and (ii) for safe control transfers, executes the control transfer in non-privileged mode. The instructions that transfer control can include any of JMP, CALL, RET and RET(n). The instructions that transfer control can also include interrupts.
摘要:
A system, method and computer program product for virtualizing a processor and its memory, including a host operating system (OS); and virtualization software that maintains a virtualization environment for running a Virtual Machine (VM) without system level privileges and having a guest operating system running within the Virtual Machine. A plurality of processes are running within the host OS, each process having its own virtual memory, wherein the virtualization software is one of the processes. An image file is stored in persistent storage and maintained by the host operating system. The image file represents virtualized physical memory of the VM. A plurality of memory pages are aggregated into blocks, the blocks being stored in the image file and addressable in block form. The virtualization software manages the blocks so that blocks can be mapped to the virtualization software process virtual memory and released when the blocks are no longer necessary. The host OS swaps the blocks between the image file and physical memory when a block that is not in physical memory is accessed by the VM. The image file size is not subject to limitation on virtual process memory size. A user of the VM can access a larger virtual process memory than the host OS permits.
摘要:
Methods and systems for safe execution of guest code in virtual machine context are presented. A method for running a virtual machine in a computing system includes (a) launching a virtual machine monitor (VMM) that uses a software debugger; (b) launching a virtual machine (VM) that can natively run safe instructions; (c) determining, at runtime, if the instruction is safe or potentially unsafe; (d) executing safe instructions in a native mode; and (e) activating control logic to process potentially unsafe instructions in the software debugger. The software debugger can bypass at least one of the potentially unsafe instructions. The potentially unsafe instructions include instructions that cannot be safely executed in the context of the VM, and instructions that can cause unpredictable results in the context of the VM.
摘要:
A system, method and computer program for launching an application into a host OS, include storing a snapshot/image of a Virtual Execution Environment (VEE) on a portable device, wherein the VEE snapshot is packed into a self-extracting file; launching the VEE from the portable device on a computer; and starting a user application within the VEE. The VEE snapshot can be restricted in its use. The VEE can be a Virtual Private Server or a Virtual Machine. The user application is a non-native application for a host OS of the computer. The VEE is launched from an icon on the portable device. The portable device can be, e.g., an iPod, a flash memory card, a digital player, a mobile phone device, a portable gaming device, rewritable CD/DVD/HD DVD/Blu Ray disk, etc. Alternatively, some data can be stored on the portable device, while other data can be downloaded from a network.
摘要翻译:一种用于将应用程序启动到主机OS中的系统,方法和计算机程序,包括将便携式设备上的虚拟执行环境(VEE)的快照/图像存储在其中,其中所述VEE快照被打包到自解压缩文件中; 在计算机上从便携式设备启动VEE; 并在VEE中启动用户应用程序。 可以限制VEE快照的使用。 VEE可以是虚拟专用服务器或虚拟机。 用户应用程序是计算机的主机OS的非本地应用程序。 VEE从便携式设备上的图标启动。 便携式设备可以是例如iPod,闪存卡,数字播放器,移动电话设备,便携式游戏设备,可重写CD / DVD / HD DVD /蓝光光盘等。或者,一些数据可以是 存储在便携式设备上,而可以从网络下载其他数据。
摘要:
A method, system and computer program product recorded on a computer-readable medium for execution on at least one processor, for seamless integration of a non-host application into a host OS, including launching a first Virtual Execution Environment (VEE) on a computing system that has a host operating system and a host desktop displayed to a user; displaying a window corresponding to the VEE on the host desktop; upon a user invoking a user application that is non-native to both the host OS and the first VEE, (a) installing a second VEE that is compatible with the user application, (b) installing the user application into the second VEE, (c) launching the application inside the second VEE, and (d) displaying the non-host application window within a window of the second VEE. The VEE can be a Virtual Private Server or a Virtual Machine.
摘要:
A system, method and computer program product for virtualizing a processor include a virtualization system running on a computer system and controlling memory paging through hardware support for maintaining real paging structures. A Virtual Machine (VM) is running guest code and has at least one set of guest paging structures that correspond to guest physical pages in guest virtualized linear address space. At least some of the guest paging structures are mapped to the real paging structures. For each guest physical page that is mapped to the real paging structures, paging means for handling a connection structure between the guest physical page and a real physical address of the guest physical page. A cache of connection structures represents cached paths to the real paging structures. Each path is described by guest paging structure descriptors and by tie descriptors. Each path includes a plurality of nodes connected by the tie descriptors. Each guest paging structure descriptor is in a node of at least one path. Each guest paging structure either points to other guest paging structures or to guest physical pages. Each guest paging structure descriptor represents guest paging structure information for mapping guest physical pages to the real paging structures.