Methods and systems for running multiple operating systems in a single mobile device
First Claim
1. A system allowing mobile device to run multiple operating systems and preserve the state and data of the original operating system, comprising the steps of:
- Preparing a guest OS image;
Packaging the image into a special host OS application or file;
Starting a special boot loader for the host OS to read, unpack, load and start the guest OS image from the special host OS application;
Preserving the current state and data of the host OS and starting the guest OS;
Exiting from the guest OS, running exiting code to restore the system state and data to the original host OS and then return back to the host OS.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for running multiple operating systems in a single embedded or mobile device (include PDA, cellular phone and other devices) are disclosed. The invention allows a mobile device that normally can only run a single operating system to run another operating system while preserving the state and data of the original operating system. Guest OS is packaged into special format recognizable by the host OS that still can be executed in place by the system. The Methods include: •Change the memory protection bits for the original OS; •Fake a reduced physical memory space for guest OS; •Use special memory device driver to claim memories of host OS; •Backup whole image of the current OS and data to external memory card.
-
Citations
35 Claims
-
1. A system allowing mobile device to run multiple operating systems and preserve the state and data of the original operating system, comprising the steps of:
-
Preparing a guest OS image;
Packaging the image into a special host OS application or file;
Starting a special boot loader for the host OS to read, unpack, load and start the guest OS image from the special host OS application;
Preserving the current state and data of the host OS and starting the guest OS;
Exiting from the guest OS, running exiting code to restore the system state and data to the original host OS and then return back to the host OS. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of packaging guest OS image inside a host OS application that allows in-place execution of the guest OS code to reduce memory usage where the host OS can only recognized some special file formats:
-
When compiler supports, compiling guest application code to skip those areas required by host OS file format such as record headers as if they are unreachable blocks;
orUse dynamic linking and jump tables for each code segment embedded in the wrapper host application and then filling out the jump tables at run time after loading. - View Dependent Claims (17, 18, 19)
-
-
20. A method to preserve the state and data of the host OS in a mobile device where the boot loader manipulates the memory protection bits for pages of the memory if both OS use the MMU (Memory Management Unit) of the mobile device which supports memory protection;
- changing attributes of all memories used in the original OS (data and code) from read/write to read-only (not write-able) or even not accessible so that those memories of the host OS can no longer be modified after switching to guest OS.
- View Dependent Claims (21, 22)
- 23. A method to preserve the state and data of the host OS in a mobile device to move/copy data of the host OS to the top of the system memories and faked a reduced memory environment to the guest OS. When the guest OS starts, it will think that it is running on a reduced memory device and will never touch memories above the told highest available memory that are used to backup the host OS data, thus the data and state of the host OS is preserved.
- 28. A method to use a special memory device driver loaded during the initialization of the guest OS to claim memories of the host OS. The special memory device driver can claim those memories currently used by the host OS (including data, code and runtime) and keep its content from being modified by other programs of the guest OS until guest OS exit.
-
32. A method to preserve the state and data of the host OS in a mobile device by backing up the current state of the host OS to an external memory cards. The process is:
- boot loader first save the whole OS memory image into external memory device and an exit code restore the host OS from the memory image from the external card upon retuning from the guest OS.
- View Dependent Claims (33, 34, 35)
Specification