IP Library Granted Patent US 7,890,723
Granted Patent B2
US 7,890,723 · App. 11/618,519 · Granted Feb 15, 2011

Method for code execution

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,890,723
App. No.
11/618,519
Filed
Dec 29, 2006
Granted
Feb 15, 2011
Kind
B2
Examiner
CHOE, YONG J
Art Unit
2185
USPC
711/163
Abstract

Method for executing a software application is provided. The method includes detecting a host operating system; executing a virtual operating system in a virtual environment, wherein the virtual operating system is stored in a non-volatile memory device; and executing a software application in the virtual environment, wherein the software application is stored in the non-volatile memory device; and the virtual operating system and the software application are executed independently of the host operating system execution.

Claims (27)

1. A method for executing a software application, comprising:

authenticating a non-volatile memory device coupled to a host system;

detecting a host operating system, wherein the non-volatile memory device detects the host operating system;

executing a virtual operating system in a virtual environment, wherein the virtual operating system is stored in a read only segment of the non-volatile memory device; and

executing the software application in the virtual operating system while the virtual operating system executes in the virtual environment, wherein the software application is stored in a read-only segment of the non-volatile memory device; wherein the virtual environment is controlled by a virtual engine rather than by the host operating system and wherein execution of the virtual engine code is split such that a first portion of the virtual engine code is executed by the host system and a second portion of the virtual engine code is executed by the non-volatile memory device.

2. The method of claim 1 , wherein the software application is a web-browser.

3. The method of claim 1 , wherein a remote server authenticates the non-volatile memory device using a device certificate stored in a secure area of the nonvolatile memory device.

4. The method of claim 1 , wherein the virtual operating system and the software application are executed within the virtual environment controlled by the virtual engine executing on a host system processor after the first portion of the virtual engine code, the virtual operating system, and the software application are loaded by the non-volatile memory device to a host system memory.

5. The method of claim 1 , wherein the virtual operating system and the software application are executed within the virtual environment controlled by the second portion of the virtual engine code executing on a non-volatile memory device controller.

6. The method of claim 1 , wherein the non-volatile memory device is a universal serial bus (USB) device that interfaces with the host system via a USB interface.

7. The method of claim 1 , wherein the virtual operating system and the software application are stored in a secured area of the non-volatile memory device.

8. The method of claim 1 , wherein the host system opens a virtual network connection based on code stored in the non-volatile memory device.

9. The method of claim 1 , wherein the software application can be executed in more than one hardware and software environment.

10. The method of claim 1 , wherein the virtual engine code is stored in a read only segment of the non-volatile memory device.

11. A method for executing a software application, comprising:

detecting a host operating system;

executing a virtual operating system in a virtual environment, wherein the virtual operating system is stored in a non-volatile memory device; and

executing a software application in the virtual operating system while the virtual operating system executes in the virtual environment, wherein the software application is stored in the non-volatile memory device; wherein the virtual environment is controlled by a virtual engine rather than by the host operating system and wherein execution of the virtual engine code is split such that a first portion of the virtual engine code is executed by the host and a second portion of the virtual engine code is executed by the non-volatile memory device.

12. The method of claim 11 , wherein the software application is a web-browser.

13. The method of claim 11 , wherein a remote server authenticates the non-volatile memory device using a device certificate stored in the non-volatile memory device.

14. The method of claim 11 , wherein the virtual operating system and the software application are stored in a read-only segment of the non-volatile memory device; and the virtual operating system and the software application are executed within the virtual environment controlled by the first portion of the virtual engine code executing on a host system processor after the virtual engine, the virtual operating system, and the software application are loaded by the non-volatile memory device to a host system memory.

15. The method of claim 11 , wherein the virtual operating system and the software application are stored in a read-only segment of the non-volatile memory device; and the virtual operating system and the software application are executed within the virtual environment controlled by the second portion of the virtual engine code executing on a non-volatile memory device controller.

16. The method of claim 11 , wherein the non-volatile memory device is a universal serial bus (USB) device that interfaces with the host system via a USB interface.

17. The method of claim 11 , wherein the virtual operating system and the software application are stored in a secured area of the non-volatile memory device.

18. The method of claim 11 , wherein the host system opens a virtual network connection based on code stored in the non-volatile memory device.

19. The method of claim 11 , wherein the software application can be executed in more than one hardware and software environment.

20. The method of claim 11 , wherein code for the virtual engine is stored in a read only segment of the nonvolatile memory device.