System, method, and adapter card for remote console emulation including remote control of a peripheral device
First Claim
1. A system for providing from a remote computer system, over a network, remote control of a peripheral device of a host computer system, wherein the host computer system has a processor, a memory, and a binary input/output system (BIOS) that supports the loading of BIOS extensions into the host memory for execution by the host processor, the system comprising:
- an adapter card comprising;
a processor;
a network interface controller providing an interface to the network;
a peripheral device interface controller to which the peripheral device is connected;
a communications client program executing on said processor of the adapter card; and
at least one computer-readable medium having stored therein a BIOS extension for said peripheral device interface comprising first program code and second program code, the second program code being embedded within the first program code and defining a separate server program, the BIOS extension being loaded into the host memory during execution of the host computer system BIOS, the first program code of the BIOS extension, when executed by the host processor, performing the following steps;
(i) copying the second program code defining the server program to a new location in the host memory; and
(ii) hooking the new location of the server program to an interrupt of the host computer system to cause the host processor to initiate execution of the server program on the host computer system upon a subsequent occurrence of that interrupt, the server program, when executed on the host processor, establishing communications with the communications client program on the adapter card; and
a remote client program executing on the remote computer system from which a user can instruct, via the network interface to the adapter card, the communications client program to request the server program to invoke the functionality of the host computer system BIOS to control the peripheral device.
12 Assignments
0 Petitions
Accused Products
Abstract
A system, method, and adapter card for providing, via a network, emulation of a console of a host computer system on another, remotely located computer system on the network, includes the ability to remotely control a peripheral device connected to a peripheral device interface controller on the adapter card. The adapter card further comprises a processor, a network interface controller providing a connection to the network, a communications client program executing on the processor, and at least one computer-readable medium having stored therein a modified BIOS extension for said peripheral device interface controller. The modified BIOS extension comprises first program code and second program code, the second program code being embedded within the first program code and defining a separate server program. Upon selection by a user at the remote computer system, the modified BIOS extension is loaded into the host memory during execution of the host computer system BIOS, in place of the standard BIOS extension for the peripheral device interface controller. When executed by the host processor, the first program code of the BIOS extension (i) copies the second program code defining the server program to a new location in the host memory, and then (ii) hooks the new location of the server program to an interrupt of the host computer system to cause the host processor to initiate execution of the server program on the host computer system upon a subsequent occurrence of that interrupt. The server program establishes communications with the communications client program on the adapter card, and, thereafter, upon receipt of requests from the communications client program, invokes functions of the host computer system BIOS to control the peripheral device.
153 Citations
30 Claims
-
1. A system for providing from a remote computer system, over a network, remote control of a peripheral device of a host computer system, wherein the host computer system has a processor, a memory, and a binary input/output system (BIOS) that supports the loading of BIOS extensions into the host memory for execution by the host processor, the system comprising:
-
an adapter card comprising;
a processor;
a network interface controller providing an interface to the network;
a peripheral device interface controller to which the peripheral device is connected;
a communications client program executing on said processor of the adapter card; and
at least one computer-readable medium having stored therein a BIOS extension for said peripheral device interface comprising first program code and second program code, the second program code being embedded within the first program code and defining a separate server program, the BIOS extension being loaded into the host memory during execution of the host computer system BIOS, the first program code of the BIOS extension, when executed by the host processor, performing the following steps;
(i) copying the second program code defining the server program to a new location in the host memory; and
(ii) hooking the new location of the server program to an interrupt of the host computer system to cause the host processor to initiate execution of the server program on the host computer system upon a subsequent occurrence of that interrupt, the server program, when executed on the host processor, establishing communications with the communications client program on the adapter card; and
a remote client program executing on the remote computer system from which a user can instruct, via the network interface to the adapter card, the communications client program to request the server program to invoke the functionality of the host computer system BIOS to control the peripheral device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
(a) selecting the data storage device;
(b) partitioning the data storage device; and
(c) copying a bootable disk image to the data storage device.
-
-
3. The system recited in claim 2, wherein the data storage device is controlled by instructing the communications client program to request the server program to invoke the corresponding INT 13 h diskette services functions of the host computer system BIOS.
-
4. The system recited in claim 1, wherein said network interface controller implements an Ethernet protocol.
-
5. The system recited in claim 1, wherein said peripheral device interface controller comprises a Small Computer Systems Interface (SCSI) controller.
-
6. The system recited in claim 1, wherein said adapter card further comprises a Web server program providing, via said network interface controller, an interface between the remote client program on the remote computer system and the communications client program on the adapter card.
-
7. The system recited in claim 1, wherein the first program code of the BIOS extension hooks the new location of the server program to the operating system bootstrap loader interrupt of the host computer system, thereby causing said server program to be executed upon the occurrence of that interrupt instead of the operating system bootstrap loader of the host computer system.
-
8. The system recited in claim 1, wherein the copying step performed by the first program code of the BIOS extension comprises:
-
(i) determining the size of the second program code from a constant, K, embedded within the first program code;
(ii) decrernenting, by an amount greater than or equal to K, a value stored in host memory that provides an indicator of the top of available host memory, thereby allocating that portion of host memory; and
(iii) copying the second program code to the allocated portion of host memory.
-
-
9. The system recited in claim 1, wherein the server program, when executed on the host processor, performs the followings steps to establish communications with the communications client program on the adapter card:
-
(a) allocates a portion of the host memory to serve as a communications buffer; and
(b) stores a unique signature in the allocated communications buffer at a predetermined location therein.
-
-
10. The system recited in claim 9, wherein said allocation step comprises decrementing a value stored in host memory that provides an indicator of the top of available host memory.
-
11. The system recited in claim 9, wherein the communications client program, when executed on said processor of the adapter card, performs the following steps:
-
(a) locates the communications buffer using the indicator of the top of available host memory; and
(b) determines whether the unique signature has been stored at said predetermined location therein to verify that the communications buffer has been created by the server program.
-
-
12. A method for remotely controlling, over a network, a peripheral device connected to a peripheral device interface controller of an adapter card of a host computer system in the absence of a host operating system, wherein the adapter card has a local processor and a network interface controller that provides a connection to the network, and wherein the host computer system has a processor, a memory, and a binary input/output system (BIOS) that supports the loading of BIOS extensions into the host memory for execution by the host processor, the method comprising:
-
a) executing a communications client program on the processor of the adapter card;
b) causing a BIOS extension stored in a computer-readable medium on the adapter card to be loaded into the memory of the host computer system during execution of the host computer system BIOS, the BIOS extension comprising first program code and second program code, the second program code being embedded within the first program code and defining a separate server program, the first program code of the BIOS extension, when executed by the host processor, performing the following steps;
(i) copying the second program code defining the server program to a new location in the host memory; and
(ii) hooking the new location of the server program to an interrupt of the host computer system to cause the host processor to initiate execution of the server program on the host computer system upon a subsequent occurrence of that interrupt, the server program, when executed by the host processor, establishing communication with the communications client program executing on the adapter card; and
c) instructing, via the network interface to the adapter card, the communications client program to request the server program to invoke the functionality of the host computer system BIOS to control the peripheral device. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
(c) selecting the data storage device;
(d) partitioning the data storage device; and
(c) copying a bootable disk image to the data storage device.
-
-
14. The method recited in claim 13, wherein the data storage device is controlled by instructing the communications client program to request the server program to invoke the corresponding INT 13 h diskette services functions of the host computer system BIOS.
-
15. The method recited in claim 12, wherein the first program code of the BIOS extension hooks the new location of the server program to the operating system bootstrap loader interrupt of the host computer system, thereby causing said server program to be executed upon the occurrence of that interrupt instead of the operating system bootstrap loader of the host computer system.
-
16. The method recited in claim 12, wherein the copying step performed by the first program code of the BIOS extension comprises:
-
(i) determining the size of the second program code from a constant, K, embedded within the first program code;
(ii) decrementing, by an amount greater than or equal to K, a value stored in host memory that provides an indicator of the top of available host memory, thereby allocating that portion of host memory; and
(iii) copying the second program code to the allocated portion of host memory.
-
-
17. The method recited in claim 12, wherein the server program, when executed on the host processor, performs the followings steps to establish communications with the communications client program on the adapter card:
-
(a) allocates a portion of the host memory to serve as a communications buffer; and
(b) stores a unique signature in the allocated communications buffer at a predetermined location therein.
-
-
18. The method recited in claim 17, wherein said allocation step comprises decrementing a value stored in host memory that provides an indicator of the top of available host memory.
-
19. The method recited in claim 17, wherein the communications client program, when executed on the adapter card, performs the following steps:
-
(a) locates the communications buffer using the indicator of the top of available host memory; and
(b) determines whether the unique signature has been stored at said predetermined location therein to verify that the communications buffer has been created by the server program.
-
-
20. An adapter card for providing, via a network, remote control of a peripheral device of a host computer system in the absence of a host operating system, the host computer system having a processor, a memory, and a binary input/output system (BIOS) that supports the loading of BIOS extensions into the host memory for execution by the host processor, the adapter card comprising:
-
a processor;
a network interface controller providing a connection to the network;
a peripheral device interface controller to which the peripheral device is connected;
a communications client program executing on said processor; and
at least one computer-readable medium having stored therein a BIOS extension for said peripheral device interface comprising first program code and second program code, the second program code being embedded within the first program code and defining a separate server program, the BIOS extension being loaded into the host memory during execution of the host computer system BIOS, the first program code of the BIOS extension, when executed by the host processor, performing the following steps;
(i) copying the second program code defining the server program to a new location in the host memory; and
(ii) hooking the new location of the server program to an interrupt of the host computer system to cause the host processor to initiate execution of the server program on the host computer system upon a subsequent occurrence of that interrupt, the server program, when executed on the host processor, establishing communications with the communications client program on the adapter card, and, thereafter, upon receipt of requests from the communications client program, invoking functions of the host computer system BIOS to control the peripheral device. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
(e) selecting the data storage device;
(f) partitioning the data storage device; and
(c) copying a bootable disk image to the data storage device.
-
-
22. The adapter card recited in claim 21, wherein the data storage device is controlled by instructing the communications client program to request the server program to invoke the corresponding INT 13 h diskette services functions of the host computer system BIOS.
-
23. The adapter card recited in claim 20, wherein said network interface controller implements an Ethernet protocol.
-
24. The adapter card recited in claim 20, wherein said peripheral device interface controller comprises a Small Computer Systems Interface (SCSI) controller.
-
25. The adapter card recited in claim 20, wherein said adapter card further comprises a Web server program providing, via said network interface controller, an interface between the remote client program on the remote computer system and the communications client program on the adapter card.
-
26. The adapter card recited in claim 20, wherein the first program code of the BIOS extension hooks the new location of the server program to the operating system bootstrap loader interrupt of the host computer system, thereby causing said server program to be executed upon the occurrence of that interrupt instead of the operating system bootstrap loader of the host computer system.
-
27. The adapter card recited in claim 20, wherein the copying step performed by the first program code of the BIOS extension comprises:
-
(i) determining the size of the second program code from a constant, K, embedded within the first program code;
(ii) decrementing, by an amount greater than or equal to K, a value stored in host memory that provides an indicator of the top of available host memory, thereby allocating that portion of host memory; and
(iii) copying the second program code to the allocated portion of host memory.
-
-
28. The adapter card recited in claim 20, wherein the server program, when executed on the host processor, performs the followings steps to establish communications with the communications client program on the adapter card:
-
(a) allocates a portion of the host memory to serve as a communications buffer; and
(b) stores a unique signature in the allocated communications buffer at a predetermined location therein.
-
-
29. The adapter card recited in claim 28, wherein said allocation step comprises decrementing a value stored in host memory that provides an indicator of the top of available host memory.
-
30. The adapter card recited in claim 28, wherein the communications client program, when executed on said processor of the adapter card, performs the following steps:
-
(a) locates the communications buffer using the indicator of the top of available host memory; and
(b) determines whether the unique signature has been stored at said predetermined location therein to verify that the communications buffer has been created by the server program.
-
Specification