In a typical personal computer, there exists a processor, a basic input-output system (BIOS), a main memory, and a hard drive that stores an operating system and one or more application programs. The BIOS usually takes the form of executable instructions stored on a read-only memory (ROM). During a regular boot-up process, the processor accesses and executes the instructions in the BIOS, and under direction of the BIOS, the processor implements the booting process. The BIOS causes the processor to perform some low-level setup functions to prepare the computer for regular operation. After the setup functions are performed, the BIOS causes the processor to load and execute the operating system stored on the hard drive. By doing so, the BIOS in effect transfers control from itself to the operating system. After the operating system is loaded and executed by the processor, the boot-up process is complete and the computer is ready for operation.
The ROM (read-only-memory) on which the BIOS resides (referred to hereinafter as the BIOS ROM) is typically quite small in size. Despite this small size, however, it has been observed that one or more auxiliary programs may be stored on the BIOS ROM. These auxiliary programs may be executed during the booting process prior to and even in lieu of the operating system on the hard drive to provide certain desired functionalities. An example of an auxiliary program is the self-contained browser disclosed in U.S. patent application Ser. No. 09/449,065 entitled “Self Contained Browser Architecture” filed on Nov. 24, 1999, which is now abandoned, the contents of which are incorporated herein by this reference. Auxiliary programs are generally self-contained, meaning that they comprise all of the components that they need to operate. As a result, they do not need the operating system on the hard drive to function. This can be quite advantageous because even if the hard drive fails or the operating system becomes corrupted, the auxiliary programs are not affected. They can still function. Hence, the auxiliary programs are impervious to many system failures.
Currently, auxiliary programs are executed, if at all, during the boot-up process prior to the transfer of control to the operating system. A mechanism for invoking an auxiliary program during a boot-up process is disclosed in U.S. Pat. No. 7,082,526 entitled “Mechanism for Intuitively Invoking One or More Auxiliary Programs During A Computer Booting Process” filed on Mar. 14, 2003, the contents of which are incorporated herein by this reference. Once the operating system assumes control, however, the auxiliary programs typically can no longer be accessed. This means that if a user wishes to execute an auxiliary program after the operating system has already loaded and executed, the user has to reboot the computer. This can be an inconvenient and time-consuming process.