The present invention relates generally to computer systems. More particularly, this invention relates to rebooting a computer from an operating system stored in a portable device.
Personal computer systems have become common tools in modern society. Portable computer systems such as laptop or notebook computers are gaining more popularity because of their portable convenience. A user may carry a portable computer to a remote location without losing the customized operating environment that the user is familiar with. Thus, most users would prefer to utilize their own computer at any given time without having to sacrifice their individual operating environment or personal settings such as, for example, operating system, email client, word processor, etc.
However, under certain circumstances, it may be considered inconvenient to carry an item such as a notebook computer during a trip because it may still be considered to be “heavy.” Another inconvenience to the user would be fear of loss, theft or having their personal computer hacked, by a hacker. A remote place, such as a hotel in a foreign country, may provide a remote computer for a hotel guest to use; however, the operating environment of the remote computer may be different than the one on the home computer of the user, such as, for example, different operating systems, different native languages, or different applications, etc. Therefore, if the user wants to use a remote or foreign computer, the user is limited to whatever features or settings are available at the remote or foreign computer. In addition, by using a foreign computer, a user may take concern about leaving personal or confidential information behind at the foreign computer.
Techniques for booting a host computer from a portable storage device with customized settings have been described herein. According to one embodiment, in response to detecting a portable storage device inserted into a first host computer having a first operating environment provided by a first operating system (OS) installed in the first host computer, rebooting the first host computer into a second operating environment using a second OS image stored in the portable device. In addition, a personal configuration file stored in the portable device is extracted to configure the second operating environment of the first host computer, such that the user of the portable storage device can operate the second host computer in view of the personal working environment.
Other features of the present invention will be apparent from the accompanying drawings and from the detailed description which follows.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.
Techniques for booting a host computer from a portable storage device with customized settings are described herein. In the following description, numerous details are set forth to provide a more thorough explanation of embodiments of the present invention. It will be apparent, however, to one skilled in the art, that embodiments of the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring embodiments of the present invention.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification do not necessarily all refer to the same embodiment.
According to certain embodiments, a portable storage device such as a USB (universal serial bus) device may be used to store any personal configuration and/or operating environment associated with a user's own computer. Such a storage device may be carried by the user to travel to a remote location and used with a foreign computer that may have a different operating environment or settings. The customized configuration of an operating environment associated with the user may be used to configure the foreign computer into a customized operating environment that is similar to the one available at the user's own computer.
The original configurations of the foreign computer are not utilized. Instead, the foreign computer is booted from an operating system (OS) image stored in the portable device and utilizes a personal configuration file that has captured the personal settings of the user to configure the operating environment at the foreign computer. As a result, a user would operate any foreign computer and utilize their own personalized operating environment such as if the user were operating their computer at home. Note that throughout this application, a portable storage device having a USB interface is utilized as an example of a portable storage device. However, it is not so limited; other portable storage devices having other interfaces, such as, for example, IEEE-1394 (also referred to as Firewire) or PCMCIA (personal computer memory card international association), may also be applied.
When the USB storage device is inserted into the first computer 104, the first working environment 105 may be captured and stored in the USB storage device 108 as a personal configuration file 107. According to one embodiment, upon detecting an insertion of a foreign USB device, the host computer responds with checking on a “Bootable” or “Launchable” partition on the foreign USB device. That triggers the “launch” of a “Utility application software” within the host computer, and a “User Menu” comes up on the computer screen. It shows a multiple selection list for an end user to select or pick up all the application suite, OS configurations, work environment set-up specific parameters, client software, such as email, Web configurations, favor Multi-media app-lets. With one-bottom click or an activation, the Host computer starts collecting all related configurations, parameter settings, and “wrap around” to produce a “Work image” of the Host computer work environment, which is stored in a “User specified partition” of the foreign USB storage device.” For another example, in a Windows operating environment available from Microsoft Corporation of Redmond, Wash., a utility application may “walk through” certain areas of the Windows registry to obtain installation and configuration information of certain applications that are running within the Windows operating system. This information may then be compressed into a relatively small size configuration file 107 stored in the USB storage device 108. The configuration file 107 may be encrypted using a variety of security measures since the configuration file 107 may include certain personal confidential information. In addition, the USB storage device 108 may further include an operating system image 106 (e.g., a server OS image) which may be used to reboot an external computer into a server without using an OS inside of the external computer.
Subsequently at stage 102, the user may carry the USB storage device 108 and insert into a remote or foreign computer 109, where computer 109 may operate in a second operating environment 110. The second operating environment 110 may operate under the same or different operating system as of computer 104. However, the personal configuration of the operating environment (also referred to herein as working environment) may be different from the one in computer 104. When the USB storage device 108 is inserted into the second computer 109 via a USB interface of the computer 109, the USB storage device 108 is detected and recognized, for example, via a plug-n-play feature of the operating system running therein. The USB storage device 108 is then mounted by the operating system (e.g., file system) as a mass storage.
Thereafter at stage 103, a reboot process may be initiated by the user manually or automatically. During the reboot, either a warm boot or a cold boot, the BIOS code is executed to perform certain initialization operations (e.g., POST or power-on self-test). After the BIOS detects the inserted USB storage device, the BIOS may further detect a boot sector located within the USB storage device. For example, the BIOS may launch a local control program (not shown) of the USB storage device which in turn locates and executes the boot sector of the USB device to boot up the computer 109 using the OS image 106. Thus, instead of booting up computer 109 using the original OS of computer 109, the BIOS invokes the local control program of the USB storage device to take over the booting sequence control. As a result, computer 109 is booted using the OS image 106.
Once the computer 109 boots up using OS image 106 to establish an operating environment (e.g., desktop environment), the personal configuration file 107 is extracted to configure the operating environment to include certain personal settings of the user. As a result, the operating environment of computer 109 may have a working environment similar to the one of computer 104, which the user is familiar with.
Once the user has finished using the remote computer 109 (e.g., leaving the hotel or a client site), the user may unplug the portable storage device 108 from the host computer 109 and be ready to go home or go to another remote site. In response to the portable storage device 108 removed from the host computer 109, according to one embodiment, certain “garbage collection” operations may be performed on the host computer 109. For example, certain temporary files (e.g., cached files or temporary files downloaded from a Web page) stored at a storage of the host computer 109 may be erased. As a result, any possible personal confidential information associated with the user may be removed from the remote computer 109.
Furthermore, according to one embodiment, if the user modifies any settings of the working environment (e.g., changes of the address/phone book or Web links/bookmarks, etc.) while operating the host computer 109, prior to removing the portable storage device 108 from the host computer 109, at least a portion of the modified working environment settings may be saved back (e.g., synchronized) to the portable storage device 108. Thus, when a user carrying the portable storage device 108 goes back to the user's own computer (e.g., local or home computer), the modified working environment can be restored from the portable storage device 108 back to the user's own computer (e.g., computer 104).
As described above, when the portable storage device 200 is inserted into an external host computer, the OS image 201 may be used to boot, via local control program 203, an external host computer without using the original OS of the external host computer. Once the host computer boots up, the personal working environment image 202 is extracted and used to configure the operating environment of the host computer to have a predetermined working environment associated with a user of the portable storage device 200.
In addition, the portable storage device 200 may optionally include other control logic. In one embodiment, the other control logic is managed by the local control program 203. Further, portable storage device 200 may includes a variety of connectors (not shown), including an initialization connector, a shut-down connector, a power control connector, a status LED connector, a DC power LED connector, and/or a LCD display connector, etc. However, in another embodiment, the other control logic could include other components. The connectors can be coupled to LEDs (not shown) and an LCD display (not shown) integrated with the portable storage device 200. Further detailed information regarding operations of these components can be found in the above incorporated by reference applications.
According to certain embodiments, the portable storage device may be implemented in a single partition or multiple partitions.
Specifically, referring to
Microsoft Windows partition 302 includes Microsoft Windows OS image 306, which includes the OS routines, definitions, modules, applications-programming-interface (API) interpreters, and drivers that are loaded into a computer's main memory just before running Microsoft Windows. Microsoft Windows based user programs and related data can also be stored in Microsoft Windows partition 40, such as Microsoft Windows applications.
User partition 303 stores use data files 309 which may be accessed by any operating system when each OS has a corresponding driver or program that can open files of that file-type. User configurations 310 can include configuration data that may be specific to one operating system or another, or may include generic configuration information.
Control program 304 is a partition of flash memory in the USB device that stores a control program and related data that is executed by the USB device itself. The USB device then notifies the host computer of the presence of a bootable device desiring to auto-launch an application. The host computer may then transfer control to the bootable device for execution. Boot configurations 311 includes configuration data about the partitions stored in the flash memory of the USB device, such as the association of partitions 301-302 with certain buttons described above, and which partition's data to transfer to a host computer and what action or program to run when each of buttons is activated.
Auto-launcher 312 is a program that helps copy data from one of partitions 301-302 to a host computer being booted when the portable storage device 300 is inserted into the host computer and recognized by the OS that is running on the host computer. Auto-launcher 312 may be a Launch Pad application that check the data type and brings up a list or menu of application software that end users can click on to activate their favorite application software for further action. For example, if the data is MP3 type, then auto-launcher 312 brings up a list of Media player or decoder software for end users to click and choose. Other configurations may exist.
At block 604, in response to a reboot request, the second host computer is rebooted using an OS image stored in the portable storage device. Once the second host computer is rebooted, at block 605, the first working environment image stored in the portable storage device is extracted and used to configure the operating environment of the second host computer. At block 606, the second host computer is operated in a first working environment rather than the original second working environment associated with the second host computer.
Once the user has finished using the second computer (e.g., leaving the hotel or a client site), the user may unplug the portable storage device from the second host computer and be ready to go home or go to another remote site. In response to the portable storage device removed from the second host computer, at block 607, processing logic may perform certain “garbage collection” operations on the second host computer. For example, certain temporary files (e.g., cached files or temporary files downloaded from a Web page) stored at a storage of the second host computer may be erased.
Furthermore, according to one embodiment, if the user modifies any settings of the working environment (e.g., changes of the address/phone book or Web links/bookmarks), prior to removing the portable storage device from the second host computer, at least a portion of the modified working environment settings may be saved back (e.g., synchronized) to the portable storage device. Thus, when a user carrying the portable storage device goes back to the user's own computer (e.g., local or home computer), the modified working environment can be restored back to the user's own computer. Other operations may also be performed.
Note that techniques described above in accordance with embodiments of the present invention can be applied to a variety of mass storage devices such as Serial ATA FLASH hard drive, IDE FLASH hard drive, SCSI FLASH hard drive and Ethernet FLASH hard drive. In addition, a FLASH controller in accordance with the present invention also applies to FLASH memory cards such as Express Card, Mini PCI Express Card, Secure Digital Card, Multi Media Card, Memory Stick Card and Compact FLASH card. Finally, a system in accordance with the present invention also applies to the other serial buses such as PCI Express bus, Serial ATA bus, IEEE 1394 bus and Ethernet bus. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.
As shown in
The processor 703, which may be, for example, an Intel processor or a PowerPC processor, is coupled to cache memory 704 as shown in the example of
Typically, the input/output devices 710 are coupled to the system through input/output controllers 709. The volatile RAM 705 is typically implemented as dynamic RAM (DRAM) which requires power continuously in order to refresh or maintain the data in the memory. The non-volatile memory 706 is typically a magnetic hard drive, a magnetic optical drive, an optical drive, a DVD RAM, a Flash memory, or other type of memory system which maintains data even after power is removed from the system. Typically, the non-volatile memory will also be a random access memory, although this is not required.
While
Thus, techniques for booting a host computer from a portable storage device with customized settings have been described herein. Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Embodiments of the present invention also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), erasable programmable ROMs (EPROMs), electrically erasable programmable ROMs (EEPROMs), magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method operations. The required structure for a variety of these systems will appear from the description below. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of embodiments of the invention as described herein.
A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory (“ROM”); random access memory (“RAM”); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); etc.
In the foregoing specification, embodiments of the invention have been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
This application is a CIP (continuation-in-part) of co-pending U.S. patent application Ser. No. 11/838,192, entitled “Multi-Partition USB Device that Re-Boots a PC to an Alternative Operating System for Virus Recovery”, filed Aug. 13, 2007, which is a CIP of co-pending U.S. patent application Ser. No. 11/624,667, filed Jan. 18, 2007, U.S. patent application Ser. No. 11/040,326, filed Jan. 20, 2005, and U.S. patent application Ser. No. 09/478,720, entitled “Electronic Data Storage Medium with Fingerprint Verification Capability”, filed Jan. 6, 2000, now U.S. Pat. No. 7,257,714. This application is also a CIP of co-pending U.S. patent application Ser. No. 10/762,934, entitled “Method and System for Providing a Modular Server on USB Flash Storage”, filed Jan. 21, 2004, which is a CIP of U.S. patent application Ser. No. 10/002,652, filed Oct. 19, 2001, now U.S. Pat. No. 7,103,765. The disclosure of the above-identified applications and patents is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 11838192 | Aug 2007 | US |
Child | 11846476 | US | |
Parent | 11624667 | Jan 2007 | US |
Child | 11838192 | US | |
Parent | 11040326 | Jan 2005 | US |
Child | 11624667 | US | |
Parent | 09478720 | Jan 2000 | US |
Child | 11040326 | US | |
Parent | 10762934 | Jan 2004 | US |
Child | 09478720 | US | |
Parent | 10002652 | Oct 2001 | US |
Child | 10762934 | US |