Portable virtual machine
View Patent ↗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 connected to the portable device; and starting a user application within the VEE. The VEE snapshot can be restricted in one of its total usage time or absolute time. The VEE can be, e.g., 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 and write-once CD/DVD/HD DVD/Blue Ray disk. Alternatively, some of the data (such as user-specific data) can be stored on the portable device, while other data (such as OS executables, DLLs, etc.) can be downloaded from a network.
1. A method for launching an application into a host OS, comprising:
storing a snapshot of a Virtual Execution Environment (VEE) on a portable device, the snapshot including register values and VEE memory state at a previous point in time, and B+ tree structures representing VEE files;
launching the VEE from the snapshot on a host computer connected to the portable device, such that the VEE is limited in any of (a) a number of VEE snapshot starts, and (b) total runtime of the VEE;
identifying an operating system of the host computer, and launching a corresponding set of drivers that correspond to the operating system;
launching a virtual disk driver in the VEE, the virtual disk driver including redirecting capability;
binding the VEE to local hardware of the host computer using Trusted Platform Module technology;
starting a user application within the VEE;
executing the user application and generating user data; and
packing the VEE, including any generated user data and a current snapshot of the VEE, into an archive file and storing the archive file on the portable device.
2. The method of claim 1 , wherein the VEE snapshot is restricted in absolute time of use.
3. The method of claim 1 , wherein the VEE snapshot is packed into a self-extracting file.
4. The method of claim 1 , wherein the VEE snapshot includes a preinstalled user application.
5. The method of claim 4 , wherein the VEE snapshot includes multimedia data.
6. The method of claim 1 , further comprising launching the VEE using a VEE starting means executed on the computer, wherein the portable device includes a VEE starting means is stored on the portable device.
7. The method of claim 1 , further comprising monitoring a connection the portable device to the computer, and aborting the VEE execution when the portable device is disconnected from the computer.
8. The method of claim 1 , further comprising:
connecting the portable device to a network server;
transmitting an ID from the portable device to the network server; and
uploading the VEE snapshot to the portable device if the ID is associated with rights for access to the VEE snapshot.
9. The method of claim 8 , wherein the ID is a serial number of the portable device.
10. The method of claim 8 , wherein the ID corresponds to at least one of:
a number of VEE snapshot starts;
total runtime of the VEE;
expiration time of the VEE.
11. The method of claim 8 , wherein the ID corresponds to a user account allows the user to authenticate to a network server via a network communication means; and
the network server provides the user with the VEE snapshot selected from a set of snapshots, based on a user request.
12. The method of claim 11 , wherein the network server provides online shopping services; and
the user can buy the VEE snapshot.
13. The method of claim 11 , further comprising a communication agent providing data transmitted between the portable device and the network server using credentials of the user account.
14. The method of claim 11 , wherein the communication agent is executed either on the portable device or on the computer connected to the portable device.
15. The method of claim 1 , wherein the VEE includes a guest operating system different from the host OS.
16. The method of claim 1 , wherein the VEE includes a guest operating system that is the same as the host OS.
17. The method of claim 1 , wherein the VEE includes a guest operating system with some files removed.
18. The method of claim 1 , wherein the VEE is any of a Virtual Private Server, a Virtual Machine, a Hypervisor-based Virtual Machine, and a Lightweight Hypervisor-based Virtual Machine, a session of Terminal Server Windows, a session of Citrix Presentation Server, Lightweight Hypervisor-based Virtual Machines, VMM-based VMs, Hypervisor-based VM with hardware virtualization support, Hypervisor-based VM without hardware virtualization support, Hypervisor-based VM with security support, Hypervisor-based VM without security support, Sun container-based environments, HPUX internal container environments, an SWsoft Virtuozzo™ virtual environment and jail-based environments.
19. The method of claim 1 , wherein the user application is a non-native application for a host OS of the computer.
20. The method of claim 1 , wherein the VEE is launched using an icon on the portable device.
21. The method of claim 1 , wherein the portable device is any of an iPod, a flash memory card, a digital player, a network storage device, a server-based storage, a mobile phone device, a portable gaming device, rewritable CD/DVD/HD DVD/Blue Ray disk player/recorder and write-once CD/DVD/HD DVD/Blu Ray disk player/recorder.
22. The method of claim 1 , wherein the VEE snapshot is customized for each user.
23. The method of claim 1 , wherein the VEE is launched using user-specific data from the portable device and OS data installed after a download from a network.
24. The method of claim 1 , wherein the VEE is launched using user-specific data from the portable device and OS executable files accessed from remote storage.
25. The method of claim 1 , wherein a support application for installing the VEE installs itself from the portable device prior to the launching and starting steps.
26. The method of claim 1 , wherein the user specific data of the VEE is stored in a virtual hard disk drive on the portable device.
27. The method of claim 1 , wherein the VEE is launched using OS executable files accessed from remote storage.
28. A system for launching an application into a host OS, comprising:
a snapshot of a Virtual Execution Environment (VEE) stored on a portable device, wherein the VEE snapshot is packed into a self-extracting file, the snapshot including register values and VEE memory state at a previous point in time, and tree structures representing VEE files;
means for launching the VEE, from the snapshot stored on the portable device, on a computer connected to the portable device, such that the VEE is limited in a number of VEE snapshot starts;
means for identifying an operating system of the host computer, and launching a corresponding set of drivers that correspond to the operating system;
means for launching a virtual disk driver in the VEE, the virtual disk driver including redirecting capability;
means for binding the VEE to local hardware of the host computer;
a user application within the VEE that is available for use by a user on the computer, wherein the user application is non-native to the host OS;
means for executing the user application and generating user data; and
means for packing the VEE, including any generated user data and a current snapshot of the VEE, into an archive file and storing the archive file on the portable device.
29. A non-transitory computer useable recording medium having computer program logic stored thereon for executing on at least one processor, the computer program logic comprising:
computer program code means for storing a snapshot of a Virtual Execution Environment (VEE) stored on a portable device, wherein the VEE snapshot is packed into a self-extracting file, the snapshot including register values and VEE memory state at a previous point in time, and tree structure representing VEE files;
computer program code means for launching the VEE from the portable device on a computer connected to the portable device, such that the VEE is limited in any of (a) a number of VEE snapshot starts, and (b) total runtime of applications within the VEE;
computer program code means for identifying an operating system of the host computer, and launching a corresponding set of drivers that correspond to the operating system;
computer program code means for launching a virtual disk driver in the VEE, the virtual disk driver including redirecting capability;
computer program code means for binding the VEE to local hardware of the host computer using Trusted Platform Module technology; and
computer program code means for starting a user application within the VEE that available for use by a user;
computer program code means for executing the user application and generating user data; and
computer program code means for packing the VEE, including any generated user data and a current snapshot of the VEE, into an archive file and storing the archive file on the portable device.
30. A method for launching an application into a host OS, comprising:
storing a snapshot of a Virtual Execution Environment (VEE) on a portable device, the snapshot including register values and B+ tree structures representing VEE files;
launching, by a simple control action, the VEE from the portable device on a computer connected to the portable device, such that the VEE is limited in any of (a) a number of VEE snapshot starts, (b) total runtime of the VEE; and (c) expiration time of the VEE;
identifying the host OS, and launching a corresponding set of drivers that correspond to the host OS;
launching a virtual disk driver in the VEE, the virtual disk driver including redirecting capability;
binding the VEE to local hardware of the host computer using Trusted Platform Module technology; and
presenting, to a user of the computer, an application within the VEE on the computer;
executing the application and generating user data; and
packing the VEE, including any generated user data and a current snapshot of the VEE, into an archive file and storing the archive file on the portable device.
31. The method of claim 30 , wherein the control action is a click on an icon.
32. The method of claim 30 , wherein the control action is selection of a button on a control panel of a portable device.
33. The method of claim 30 , wherein the VEE snapshot is distributed among multiple storage devices.
34. The method of claim 33 , wherein the multiple storage devices include at least one portable device and at least one device for storing secret user data.