Method, apparatus and computer program product for debugging...

Electrical computers and digital processing systems: support – Digital data processing system initialization or configuration – Loading initialization program

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06289448

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to the field of booting computer systems. Specifically, this invention is a method, apparatus, and computer program product for debugging the operation of the boot process used to start execution of a client program (such as an operating system) within a computer.
2. Background
Most operating systems need to first be loaded into volatile memory prior to execution.
A typical computer operating system manages computer resources and provides services. For example, the operating system provides controlled access to the computer's resources (such as memory and devices). Usually, a firmware bootstrap program, stored in read-only-memory (ROM), controls a computer between the time the computer is turned on and the time the client program (such as an operating system or a secondary bootstrap program) takes control of the computer. The firmware bootstrap program is responsible for testing and initializing the computer hardware, determining the computer's configuration and devices, invoking the operating system and providing debugging facilities in case of failure.
A bootstrap process often causes a firmware program to execute to load a primary bootstrap program from a known (and reserved) location in storage (either local disk or network storage) into the computer's memory. The computer then starts execution of this primary bootstrap program. The primary bootstrap program is a very small stand-alone FCode or machine language program (for example, the primary bootstrap program on a Sun Microsystems, Inc., computer is limited to 8K bytes). Thus, its functionality is very limited. Generally, the primary bootstrap program has limited capability to use the computer's devices through FCode drivers (subsequently described in the Detailed Description) supplied with the device and to locate and load a secondary bootstrap program accessible from the boot device. The primary bootstrap program includes services that understand the file structure of the boot device. The primary bootstrap program then locates and loads a specified file from the boot device. This specified file may be a stand-alone program such as a diagnostic, an operating system, or a secondary bootstrap program. These stand-alone programs are client programs of their respective bootstrap programs.
The interaction between the client program, the FCode services, and the operating system services is complex and occurs while few system services are available to simplify debugging of the booting process. This situation is particularly true because a mixture of machine instructions and FCode instructions are being executed during the boot phase. This problem is exacerbated by the fact that the mix between FCode and machine instruction execution changes during the boot process.
Thus, the problem is that debugging the bootstrap process is difficult because of the complexity of the bootstrap process, the intermixing of execution modes, and the scarcity of debugging tools during the boot process.
One prior art approach to this problem is including debugging or tracing code within the secondary bootstrap program. However, this capability is not required in production code and if included increases the complexity of the secondary bootstrap program.
It would be advantageous to temporarily provide additional capability to the secondary bootstrap program for debugging and development purposes.
SUMMARY OF THE INVENTION
The present invention provides a mechanism for temporarily including bootstrap debugging code for use with a client program. The invention improves a user's ability to debug the computer boot process by providing an efficient mechanism for interposing additional or replacement functionality between the client program and the bootstrap services. A bootstrap service invocation made by the client program is intercepted and the computer performs the interposed functionality before providing the invoked service.
One aspect of the invention is a computer controlled method for debugging a boot process executing on a computer. The method executes a bootstrap program on the computer. The bootstrap program provides one or more services. The bootstrap program also initiates a bootstrap debug program. The bootstrap debug program intercepts a service invocation of the one or more services. The bootstrap debug program also captures service information that is related to the service invocation of the one or more services and performs the service invocation of the one or more services.
Another aspect of the invention is an apparatus, having a central processing unit (CPU) and a memory coupled to the CPU, for debugging a boot process executed by the apparatus. The apparatus includes a boot mechanism that is configured to execute, using said CPU and said memory, a bootstrap program providing one or more services. The bootstrap program uses a debug initiation mechanism that is configured to initiate a bootstrap debug program. The bootstrap debug program uses a service interception mechanism that is configured to intercept a service invocation of the one or more services. The apparatus also includes an information acquisition mechanism that is configured to capture service information related to the service invocation of the one or more services. In addition, the apparatus includes a service invocation mechanism that is configured to perform the service invocation of the one or more services.
Yet a further aspect of the invention, is a computer program product embedded on a computer usable medium for causing a computer to debug a boot process executed by the computer. When executed on a computer, the computer readable code causes a computer to effect a boot mechanism, a debug initiation mechanism, a service interception mechanism, an information acquisition mechanism, and a service invocation mechanism. Each of these mechanisms having the same functions as the corresponding mechanisms for the previously described apparatus.
An additional aspect of the invention is computer program product embodied in a carrier wave. The carrier wave transmits computer readable code therein for causing a computer to debug a boot process executed by the computer. When executed on a computer, the computer readable code causes a computer to effect a boot mechanism, a debug initiation mechanism, a service interception mechanism, an information acquisition mechanism, and a service invocation mechanism. Each of these mechanisms having the same functions as the corresponding mechanisms for the previously described apparatus.
The foregoing and many other aspects of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments that are illustrated in the various drawing figures.


REFERENCES:
patent: 5598531 (1997-01-01), Hill
patent: 5850562 (1998-12-01), Crump
patent: 5935266 (1999-08-01), Thurnhofer
patent: 5958049 (1999-09-01), Mealey et al.
patent: 5961641 (1999-10-01), Hasegawa
patent: 6006328 (1999-12-01), Drake
IEEE Computer Society,IEEE Standard For Boot(Initialization Configuration)Firmware: Core Requirements and Practices, Institute of Electrical and Electronics Engineers, Inc., 343 East 47th Street, New York, NY, 10017 (1994).

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method, apparatus and computer program product for debugging... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method, apparatus and computer program product for debugging..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method, apparatus and computer program product for debugging... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2484805

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.