Method and apparatus for remotely booting a client computer from a network by emulating remote boot chips
First Claim
1. A method for booting a client computer, the method comprising the computer-implemented steps of:
- executing instructions from a first memory to load a set of programs from a second memory, wherein the first memory is a BIOS ROM and the second memory is a nonvolatile, read/write memory;
executing, without an operation system, the set of programs to communicate with a network server;
executing a format program for formatting messages according to a standard for remote booting;
retrieving a boot program from the network server; and
executing the boot program.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for booting a client computer connected to a network without a boot ROM and without an operating system is provided. Instructions from a BIOS ROM are executed to load a boot code loader from a nonvolatile, read/write memory, such as a diskette or hard disk. The boot code loader executes to load a control program from the diskette, and the control program executes to load a set of programs and/or device drivers from the diskette without loading an operating system. The set of programs and/or device drivers communicate with a network server to retrieve a boot program from the network server, and the boot program executes to complete the boot process of the client, such as downloading an operating system from the server.
154 Citations
30 Claims
-
1. A method for booting a client computer, the method comprising the computer-implemented steps of:
-
executing instructions from a first memory to load a set of programs from a second memory, wherein the first memory is a BIOS ROM and the second memory is a nonvolatile, read/write memory;
executing, without an operation system, the set of programs to communicate with a network server;
executing a format program for formatting messages according to a standard for remote booting;
retrieving a boot program from the network server; and
executing the boot program. - View Dependent Claims (2)
-
-
3. A method for booting a client computer, the method comprising the computer-implemented steps of:
-
executing instructions from a first memory to load a boot code loader from a second memory, wherein the first memory is a BIOS ROM and the second memory is a nonvolatile, read/write memory;
executing the boot code loader to load a control program from the second memory;
executing the control program to load a set of programs from the second memory without loading an operating system;
executing the set of programs to communicate with a network server;
retrieving a boot program from the network server; and
executing the boot program. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 14)
loading a master boot record from the second memory; and
executing instructions in the master boot record to load a first file comprising instructions for loading additional files.
-
-
5. The method of claim 4 wherein the master boot record is located in a first disk sector of the second memory, and the first file is a one sector file in a root directory of the second memory.
-
6. The method of claim 3 wherein the step of loading the control program further comprises:
-
reading a boot code loader initialization file;
parsing the boot code loader initialization file to obtain a control program file name; and
loading the control program file.
-
-
7. The method of claim 6 wherein the boot code loader initialization file and the control program file are located in a root directory of the second memory.
-
8. The method of claim 6 further comprising:
-
parsing the boot code loader initialization file to obtain a control program memory address; and
loading the control program file at the specified control program memory address.
-
-
9. The method of claim 3 wherein the step of loading a set of programs further comprises:
-
reading a control program initialization file;
parsing the control program initialization file to obtain a set of device drivers; and
loading the set of device drivers.
-
-
10. The method of claim 9 wherein the control program initialization file is located in a root directory of the second memory.
-
14. The method of claim 3 wherein the step of retrieving the boot program further comprises:
-
sending a message to the network server to find a requested file on the network server;
receiving a message from the network server indicating that the requested file has been found;
sending a message to the network server to get the requested file; and
receiving the requested file from the network server.
-
-
11. A method for booting a client computer, the method comprising the computer-implemented steps of:
-
executing instructions from a first memory to load a boot code loader from a second memory, wherein the first memory is a BIOS ROM and the second memory is a nonvolatile, read/write memory;
executing the boot code loader to load a control program from the second memory;
executing the control program to load a set of programs from the second memory without loading an operating system;
executing the set of programs to communicate with a network server;
retrieving a boot program from the network server; and
executing the boot program;
wherein the step of loading a set of programs further comprises;
reading a control program initialization file;
parsing the control program initialization file to obtain a set of device drivers; and
loading the set of device drivers;
wherein the set of device drivers comprises;
a Media Access Control (MAC) device driver to control a network interface card on the client computer;
a protocol manager device driver for providing information associated with protocol modules to be bound to the MAC driver; and
a message formatter for formatting messages to be sent by the MAC driver on a network connected to the client computer. - View Dependent Claims (12, 13)
reading a protocol initialization file; and
emulating a set of operating system functions in the message formatter to bind the message formatter to the MAC driver.
-
-
13. The method of claim 11 further comprising:
resetting, by the message formatter, any vectors used during execution of the control program or the set of device drivers before initiating execution of the retrieved boot program.
-
15. A computer program product on a computer-readable medium for booting a client computer, the computer program product comprising:
-
first instructions from a first memory for loading a set of programs from a second memory, wherein the first memory is a BIOS ROM and the second memory is a nonvolatile, read/write memory;
second instructions in a set of programs for communicating with a network server without an operating system;
third instructions for executing a format program for formatting messages according to a standard for remote booting;
fourth instructions for retrieving a boot program from the network server; and
fifth instructions for initiating execution of the boot program. - View Dependent Claims (16)
-
-
17. A computer program product on a computer-readable medium for booting a client computer, the computer program product comprising:
-
first instructions from a first memory for loading a boot code loader from a second memory, wherein the first memory is a BIOS ROM and the second memory is a nonvolatile, read/write memory;
second instructions in the boot code loader for loading a control program from the second memory;
third instructions in the control program for loading a set of programs from the second memory without loading an operating system;
fourth instructions in the set of programs for communicating with a network server;
fifth instructions for retrieving a boot program from the network server; and
sixth instructions for initiating execution of the boot program. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 28)
instructions for loading a master boot record from the second memory; and
instructions in the master boot record for loading a first file comprising instructions for loading additional files.
-
-
19. The computer program product of claim 18 wherein the master boot record is located in a first disk sector of the second memory, and the first file is a one sector file in a root directory of the second memory.
-
20. The computer program product of claim 17 wherein instructions for loading the control program further comprise:
-
instructions for reading a boot code loader initialization file;
instructions for parsing the boot code loader initialization file to obtain a control program file name; and
instructions for loading the control program file.
-
-
21. The computer program product of claim 20 wherein the boot code loader initialization file and the control program file are located in a root directory of the second memory.
-
22. The computer program product of claim 20 further comprising:
-
instructions for parsing the boot code loader initialization file to obtain a control program memory address; and
instructions for loading the control program file at the specified control program memory address.
-
-
23. The computer program product of claim 17 wherein instructions for loading a set of programs further comprise:
-
instructions for reading a control program initialization file;
instructions for parsing the control program initialization file to obtain a set of device drivers; and
instructions for loading the set of device drivers.
-
-
24. The computer program product of claim 23 wherein the control program initialization file is located in a root directory of the second memory.
-
28. The computer program product of claim 17 wherein instructions for retrieving the boot program further comprise:
-
instructions for sending a message to the network server to find a requested file on the network server;
instructions for receiving a message from the network server indicating that the requested file has been found;
instructions for sending a message to the network server to get the requested file; and
instructions for receiving the requested file from the network server.
-
-
25. A computer program product on a computer-readable medium for booting a client computer, the computer program product comprising:
-
first instructions from a first memory for loading a boot code loader from a second memory, wherein the first memory is a BIOS ROM and the second memory is a nonvolatile, read/write memory;
second instructions in the boot code loader for loading a control program from the second memory;
third instructions in the control program for loading a set of programs from the second memory without loading an operating system;
fourth instructions in the set of programs for communicating with a network server;
fifth instructions for retrieving a boot program from the network server; and
sixth instructions for initiating execution of the boot program;
wherein instructions for loading a set of programs further comprise;
instructions for reading a control program initialization file;
instructions for parsing the control program initialization file to obtain a set of device drivers;
instructions for loading the set of device drivers; and
wherein the set of device drivers comprises;
instructions in a Media Access Control (MAC) device driver to control a network interface card on the client computer;
instructions in a protocol manager device driver for providing information associated with protocol modules to be bound to the MAC driver; and
instructions in a message formatter for formatting messages to be sent by the MAC driver on a network connected to the client computer. - View Dependent Claims (26, 27)
instructions for reading a protocol initialization file; and
instructions for emulating a set of operating system functions in the message formatter to bind the message formatter to the MAC driver.
-
-
27. The computer program product of claim 25 further comprising:
instructions for resetting, by the message formatter, any vectors used during execution of the control program or the set of device drivers before initiating execution of the retrieved boot program.
-
29. An apparatus for booting a client computer, the apparatus comprising:
-
first execution means for executing instructions from a first memory to load a set or programs from a second memory, wherein the first memory is a BIOS ROM and the second memory is a nonvolatile, read/write memory;
second execution means for executing, without an operating system, the set of programs to communicate with a network server;
third instructions for executing a format program for formatting messages according to a standard for remote booting wherein the standard conforms to Remote Initial Program Load or Preboot Execution Environment protocol;
retrieving means for retrieving a boot program from the network server; and
fourth execution means for executing the boot program.
-
-
30. An apparatus for booting a client computer, the apparatus comprising:
-
first execution means for executing instructions from a first memory to load a boot code loader from a second memory, wherein the first memory is a BIOS ROM and the second memory is a nonvolatile, read/write memory;
second execution means for executing the boot code loader to load a control program from the second memory;
third execution means for executing the control program to load a set of programs from the second memory without loading an operating system;
fourth execution means for executing the set of programs to communicate with a network server;
fifth execution means for retrieving a boot program from the network server; and
sixth execution means for executing the boot program.
-
Specification