Patents Assigned to Parallels Software International, Inc.
  • Publication number: 20120311560
    Abstract: 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.
    Type: Application
    Filed: December 29, 2011
    Publication date: December 6, 2012
    Applicant: PARALLELS SOFTWARE INTERNATIONAL, INC.
    Inventors: NIKOLAY N. DOBROVOLSKIY, ANDREY A. OMELYANCHUK, ALEXANDER G. TORMASOV, SERGUEI M. BELOUSSOV
  • Patent number: 7788593
    Abstract: 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.
    Type: Grant
    Filed: February 10, 2008
    Date of Patent: August 31, 2010
    Assignee: Parallels Software International, Inc.
    Inventors: Alexander V. Grechishkin, Alexey B. Koryakin, Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk, Alexander G. Tormasov, Serguei M. Beloussov
  • Patent number: 7757034
    Abstract: 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.
    Type: Grant
    Filed: November 10, 2006
    Date of Patent: July 13, 2010
    Assignee: Parallels Software International, Inc.
    Inventors: Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk, Alexey B. Koryakin, Anna L. Vorobyova, Alexander G. Tormasov, Serguei M. Beloussov
  • Patent number: 7681134
    Abstract: 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.
    Type: Grant
    Filed: July 11, 2009
    Date of Patent: March 16, 2010
    Assignee: Parallels Software International, Inc.
    Inventors: Alexander V. Grechishkin, Alexey B. Koryakin, Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk, Alexander G. Tormasov, Serguei M. Beloussov
  • Patent number: 7647589
    Abstract: 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.
    Type: Grant
    Filed: May 31, 2005
    Date of Patent: January 12, 2010
    Assignee: Parallels Software International, Inc.
    Inventors: Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk, Alexander G. Tormasov, Stanislav S. Protassov, Serguei M. Beloussov
  • Patent number: 7596677
    Abstract: 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.
    Type: Grant
    Filed: February 6, 2007
    Date of Patent: September 29, 2009
    Assignee: Parallels Software International, Inc.
    Inventors: Alexey B. Koryakin, Mikhail A. Ershov, Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk, Alexander G. Tormasov, Serguei M. Beloussov
  • Patent number: 7581085
    Abstract: 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.
    Type: Grant
    Filed: September 8, 2006
    Date of Patent: August 25, 2009
    Assignee: Parallels Software International, Inc.
    Inventors: Alexey B. Koryakin, Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk, Maxim A. Kuzkin, Alexander G. Tormasov, Serguei M. Beloussov, Stanislav S. Protassov
  • Patent number: 7555592
    Abstract: 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.
    Type: Grant
    Filed: August 9, 2006
    Date of Patent: June 30, 2009
    Assignee: Parallels Software International, Inc.
    Inventors: Alexey B. Koryakin, Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk
  • Patent number: 7506096
    Abstract: 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.
    Type: Grant
    Filed: October 4, 2006
    Date of Patent: March 17, 2009
    Assignee: Parallels Software International, Inc.
    Inventors: Alexey B. Koryakin, Nikolay N. Dobrovolskiy, Andrey A. Omelyanchuk, Alexander G. Tormasov, Serguei M. Beloussov, Stanislav S. Protassov