|
|  Get related patents on CD |
| United States Patent | 5404527 |
| Link to this page | http://www.wikipatents.com/5404527.html |
| Inventor(s) | Irwin; James S. (Stevens, PA);
Johnson; Robert A. (Pottstown, PA);
Klein; Ira A. (Collegeville, PA) |
| Abstract | An apparatus and method for retrieving and sending the bootstrap loader and
the DOS code from disk storage on a file server in a network to a
workstation in the network during the boot process of the workstation
where there are one or more file servers in the network and where the file
servers may be different types of computer systems including mainframe
computers. |
| |
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5404527 |
|
|
System and method for remote program load |
|
|
|
|
|
| Publication Date |
April 4, 1995 |
|
|
|
|
|
| Filing Date |
December 31, 1992 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
|
|
|
|
|
|
Public's "Guesstimation" of Royalty Value
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
What is claimed is:
1. In a network having workstations with boot processes and a plurality of
computer systems which are coupled to a respective disk storage device, an
apparatus for obtaining boot services for a workstation from the disk
storage device coupled to a respective one of the plurality of computer
systems during the boot process, the workstations, the computer systems,
and the apparatus coupled to the network, wherein during the boot process
some ones or all of the computer systems can provide boot services, said
apparatus comprising:
means for sending a boot service request on the network;
an interface processor coupled to the network, the interface processor
comprising:
(a) means for communicating with the workstations and the plurality of
computer systems,
(b) means for intercepting the boot service request on the networks,
(c) means for selecting which ones of the plurality of computer systems can
provide boot services,
(d) means for sending the boot service request on the network to the
selected computer systems, said boot service request being formatted to be
received by the selected computer systems,
means for receiving a response on the network from one of the selected
computer systems to establish the one computer system as a provider of the
boot services; and
means for communicating on the network with the one computer system to
obtain the boot services for the workstation from the disk storage device
coupled to the one computer system.
2. Apparatus according to claim 1 wherein the one computer system is the
one of the selected computer systems which is the first to respond to the
boot services request.
3. The apparatus in claim 1, where the interface processor includes:
means for storing messages sent from a computer system to the workstation
which are larger than can be sent to the workstation; and
means for transmitting the stored messages in segments to the workstation
responsive to a request for the segments of the stored messages being
received by the interface processor from the workstation.
4. The apparatus in claim 1, where the interface processor includes:
means for selecting a computer system to provide boot services for the
workstation in response to receiving a boot service request message from
said workstation; and
means for transmitting a response to the boot service request message
indicating that the selected computer system will provide boot services.
5. In a network having a workstation with boot processes, a plurality of
computer systems capable of providing the functions of a file server for
the workstation, and an interface processor for communicating with the
workstation and the computer systems, the workstation, the computer
systems, and the interface processor coupled to the network, a method of
obtaining boot services from one of the computer systems during the boot
process of a workstation on the network, wherein during the boot process
some ones or all of the computer systems can provide boot services, said
method comprising the steps of:
(a) sending, from the workstation, a boot service request on the network;
(b) intercepting, at the interface processor, said boot service request on
the network,
(c) selecting, at the interface processor, which ones of the plurality of
computer systems can provide boot services,
(d) sending, from the interface processor, the boot service request on the
network to the selected computer systems, the boot service request being
formatted to be received by the selected computer systems,
(e) receiving, at the interface processor, a response from a responsive one
of said selected computer systems; and
(f) opening a path through the network to the responsive computer system
for providing boot services to the workstation.
6. In a network having a workstation with a boot process, a plurality of
computer systems capable of performing the functions of a file server, and
an interface processor for communicating with the workstation and the
computer systems, the workstation, the computer systems, and the interface
processor coupled to the networks a method of retrieving informations
through the network, from a disk storage coupled to a respective one of
the plurality of computer systems during the boot process of the
workstation, wherein during the boot process some ones or all of the
computer systems can provide boot services, said method comprising the
steps of:
(a) selecting, at the interface processor, which ones of the plurality of
computer systems can provide boot services,
(b) sending, from the interface processor, a request for retrieval of the
information through the network, said request to be received by the
selected ones of the plurality of computer systems which are coupled to
the network;
(c) receiving, at the interface processor, a first response from a
responsive one of the selected computer systems;
(d) responsive to the first response, sending, from the interface
processor, a confirmation to the responsive computer system on the
network;
(e) intercepting, at the interface processor, a request for the information
during the boot process of the workstation from the workstation;
(f) sending, from the interface processor, the request for the information
to the responsive computer system;
(g) receiving, at the interface processor, a second response from the
responsive computer system answering the request for information; and
(h) transmitting, from the interface processor, the received second
response to the workstation.
7. The method in claim 6 wherein in step (c) the response is the first
response received from a computer system.
8. In a network having a workstation with boot processes, a plurality of
computer systems capable of performing the functions of a file server for
the workstation, and an interface processor for communicating with the
workstation and the computer systems, the workstation, the computer
systems, and the interface processor coupled to the network, a method of
retrieving information from a disk storage on one of the plurality of
computer systems during the boot process of the workstation on the
network, wherein during the boot process some ones or all Of the computer
systems can provide boot services, said method comprising the steps of:
(a) intercepting, at the interface processor, a request for information
from a disk during the boot process of the workstation;
(b) selecting, at the interface processor, which ones of the plurality of
computer systems can provide boot services,
(c) in response to the intercepted request, sending, from the interface
processor, a request to open a path through the network for retrieval of
the information, said request to be received by the selected ones of the
plurality of computer systems which are coupled to the network;
(d) receiving, at the interface processor, a response from a responsive one
of the selected computer systems;
(e) sending, from the interface processor, a confirmation to the responsive
computer system on the network;
(f) sending, from the interface processor, the request for the information
to the responsive computer system;
(g) receiving, at the interface processor, a response to the request for
the information from the responsive computer system;
(h) extracting, from the interface processor, the information from the
received response; and
(i) transmitting, from the interface processor, the received response to
the workstation.
9. In a network having workstations with boot processes, a plurality of
computer systems capable of providing the functions of a file server, and
an interface processor for communicating with the workstation and the
computer systems, the workstation, the computer systems, and the interface
processor coupled to the network, a method of retrieving data from disk
storage on one of the plurality of computer systems during the boot
process of a workstation on the network, wherein during the boot process
some ones or all of the computer systems can provide boot services, said
method comprising the steps of:
(a) intercepting, at the interface processor, a request for program code
during the boot process of the workstation;
(b) selecting, at the interface processor, which ones of the plurality of
computer systems can provide boot services,
(c) sending, from the interface processor, a request for retrieval of data
during the boot process of workstation on the network, said request to be
received by the selected ones of the plurality of computer systems which
are coupled on the network;
(d) receiving, at the interface processor, a response from a responsive one
of the selected plurality of computer systems;
(e) responsive to the received first response, sending, from the interface
processor, a confirmation to the responsive computer system on the
network;
(f) sending, from the interface processor, the request for the program code
to the responsive computer system on the network;
(g) receiving, at the interface processor, a second response from the
responsive computer system through the network, the second response
containing the requested computer code;
(h) retrieving, at the interface processor, the program code from the
second response; and
(i) transmitting, from the interface processor, the retrieved program code
to the workstation.
10. The method in claim 9 wherein in step (d) the response is the first
response received from any of the selected one of the computer systems.
11. In a network having workstations with boot processes, a plurality of
computer systems each including a disk storage, and an interface processor
for communicating with the workstation and the computer systems, the
workstation, the computer systems, and the interface processor coupled to
the network, a method of satisfying BIOS requests generated in a
workstation with data in one of the disk storage of the plurality of
computer systems, wherein during the boot process some ones or all of the
computer systems can provide boot services, said method comprising the
steps of:
(a) intercepting, at the interface processor, a BIOS request during the
boot process of the workstation;
(b) identifying, at the interface processor, selected ones of the plurality
of computer systems on the network for providing boot services to the
workstation;
(c) opening, from the interface processor, a path on the network between
the workstation and one of the selected ones of the plurality of computer
systems;
(d) sending, from the interface processor, the BIOS request to the one of
the selected ones of the plurality of computer systems on the network;
(e) receiving, at the interface processor, a response to the BIOS request
from the one of the selected ones of the plurality of computer systems on
the network; and
(f) transmitting, from the interface processor, the received response to
the workstation.
12. In a network having workstations with boot processes, a plurality of
computer systems each having disk storage, and an interface processor for
communicating with the workstation and the computer systems, the
workstation, the computer systems, and the interface processor coupled to
the network, a method of retrieving BIOS requests from the disk storage of
one of the plurality of computer system during the boot process of a
workstation on the network, wherein during the boot process some ones or
all of the computer systems can provide boot services, said method
comprising the steps of:
(a) sending, from the interface processor, a boot service request on the
network, said request to be received by selected ones of the plurality of
computer systems on the network;
(b) receiving, at the interface processor, a first response from a
responsive one of the selected computer systems;
(c) sending, from the interface processor, an open boot path request
through the network to the responsive computer system;
(d) intercepting, at the interface processor, a BIOS request during the
boot process of the workstation;
(e) sending, from the interface processor, the BIOS request to the
responsive computer system on the network after step (c) has been
completed;
(f) receiving, at the interface processor, a second response to the BIOS
request from the responsive computer system on the network; and
(g) transmitting, from the interface processor, the second response to the
BIOS request to the workstation.
13. The method in claim 12 wherein in step (b) the response is the first
response received from the selected computer systems.
14. In a network having a workstation with boot processes, a plurality of
computer systems capable of providing the functions of a file server for
the workstation, and an interface processor for communicating with the
workstation and the computer systems, the workstation, the computer
systems, and the interface processor coupled to the network, a method of
retrieving the Host Id and Socket ID during the boot process of the
workstation on the network, wherein during the boot process some ones or
all of the computer systems can provide boot services, said method
comprising the steps of:
(a) sending, from the interface processor, a first data frame containing a
boot service request on the network, said first data frame being coded to
be received by selected ones of the plurality of computer systems which
are coupled to the network;
(b) receiving, at the interface processor, a second data frame containing a
response from a responsive one of said selected ones of the plurality of
computer systems to the boot service request;
(c) sending, from the interface processor, a third data frame containing an
open boot path request through the network, the third data frame being
coded to be received by only the responsive computer system;
(d) receiving, at the interface processor, a fourth data frame containing a
response to the open boot path request from the responsive computer
system, the response including a Host Id and Socket ID which identify the
one computer system on the network;
(e) using the Host Id in any requests sent to the responsive computer
system from the workstation during the boot process; and
(f) using the Socket ID for requests for data storage and retrieval from
the responsive computer system from the workstation after the boot process
is complete.
15. In a network having an interface processor, a workstation with a
bootstrap loader with a boot process and one computer system which has
disk storage, a method of pre-fetching DOS code from the disk storage of
the one computer system in response to a request for a segment of DOS code
generated by the bootstrap loader in the workstation during the boot
process, said method comprising the steps of:
(a) sending, from the interface processor, a request or transfer of the
segment of the DOS code through the network to the one computer system;
(b) receiving, at the interface processor, the requested segment and other
segments of the DOS code from the one computer system;
(c) storing, at the interface processor, the received DOS code segments;
(d) transmitting, from the interface processor, the requested DOS code
segment to the workstation; and
(e) transmitting, from the interface processor, the other DOS code segments
to the workstation as the other DOS code segments are requested.
16. The method in claim 15, wherein the network includes an interface
processor having a memory area in which the pre-fetched DOS code is
stored, where:
step (b) includes the step of receiving the requested segment and other
segments of the DOS code at the interface processor;
step (c) includes the step of storing the received DOS code segments in the
memory area of the interface processor; and
step (d) includes the step of transmitting DOS segments to the workstation
from the memory area of the interface processor.
17. The method in claim 15, wherein step (d) includes transmitting the
requested segment and a plurality of the other segments.
18. In a network having a workstation with a bootstrap loader with a boot
process and one computer system which has disk storage, a method of
pre-fetching DOS code from the disk storage after a request for the
bootstrap loader is generated by the workstation during the boot process
of the workstation, said method comprising the steps of:
(a) sending a request for transfer of the bootstrap loader from the
workstation to the one computer system;
(b) transmitting, the bootstrap loader and all segments of the DOS code
from the one computer system to the workstation;
(c) receiving, in the network, the bootstrap loader from the one computer
system and transmitting the bootstrap loader to the workstation;
(d) receiving, in the network, all segments of the DOS code from the one
computer system;
(e) storing the DOS code in a memory area in the network; and
(f) transmitting, to the workstation from the network memory area, the DOS
code in segments in response to requests for the segments received from
the workstation. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
The present invention concerns LANs (Local Area Networks), in particular,
LANs which couple workstations to mainframe computer systems that provide
the functions of a file server, including system initialization functions.
BACKGROUND OF THE INVENTION
In a LAN, there may be one or more computer systems providing the functions
of a file server for workstations coupled to the LAN. A typical file
server provides disk retrieval and storage facilities. The computer
systems which act as a file server may also provide a variety of other
functions, such as those which are typically provided by a mainframe
computer. For example, a mainframe computer may be running several
applications at once such as a database program and a computer aided
design (CAD) program, in addition to the application providing the file
server functions for the workstations. An article entitled "LAN-Connected
Workstations Via BNAv2, Part 1, The Origin, Design and Capabilities of
LCW" by Robert A. Johnson and published in Unisphere in January 1992 is
hereby incorporated by reference for its teachings on LANs and file
servers.
A computer system which acts as a file server provides disk retrieval and
storage facilities to workstations on the LAN. The workstation, through
its Disk Operating System (DOS) and LAN card, communicates with the file
server on the LAN. The disk facilities of the file server may appear as
one or more disk drives to the workstation using DOS. These disk drives
may be in addition to disk drives present in the workstation such as a
floppy disk or a hard disk.
In some LAN systems, it is desirable to have "disk-less" workstations
attached to the LANs in order to reduce costs, provide better security and
data integrity, and to facilitate backup copying of data. Disk-less
workstations, as the name implies, have no local disk drives. In these
systems the disk drives attached to the file servers on the LAN provide
the only data retrieval and storage facilities for the workstations. This
centralizes the location of data storage facilities to only those computer
systems on the LAN which provide the functions of a file server. Data
integrity is thus enhanced since data is only stored in a few locations in
the LAN. Data security is enhanced because users cannot copy programs and
data onto removable media such as floppy disks.
Since disk-less workstation have no local disks, if the workstation is
running DOS, it must somehow "boot" from a file server on the LAN. As used
herein, the word "boot" means to initialize a system to run an operating
system which is stored as a disk file. During the boot process, a DOS is
loaded into a specific portion of the Random Access Memory, RAM, of the
workstation. This is completed by a two step process which is invoked by a
program running in the Read Only Memory Basic Input Output System,
ROM-BIOS, in the workstation.
In the first of these two steps, the ROM-BIOS loads a small program called
a bootstrap loader from a fixed location in disk storage into a specific
portion of the RAM of the workstation and then passes control to this
program. In the second step, the bootstrap loader locates the DOS code in
the disk storage, loads the DOS into a specific portion of the RAM of the
workstation and passes control to the DOS program. A book entitled "Inside
the IBM PC", the fourth edition, written by Peter L. Norton, and published
by Darby Press in 1992 is hereby incorporated by reference for its
teaching on the operations of Personal Computers which use ROM-BIOS.
Thus, when a workstation performs the boot process, either during a cold
boot process, which is performed when the workstation is turned on, or
during a warm boot process which may be performed after a certain
combination of keys are depressed, the bootstrap loader and the DOS are
desirably easily accessible to the workstation on disk storage. Disk-less
workstations as described above, however, do not have a floppy drive or
hard disk and thus the bootstrap loader or the DOS must be retrieved from
disk storage on a file server. In addition, even if the workstation has a
floppy disk or hard disk, it may be desirable for security reasons to
retrieve the bootstrap loader or the DOS program code from disk storage on
a file server.
During the first step of the boot process, the ROM-BIOS of a workstation
first generates a request for the bootstrap loader to be retrieved from a
floppy disk device, if any, on the workstation. If this request is not
successful, then the ROM-BIOS normally generates a request for the
bootstrap loader to be retrieved from a hard drive, if any, on the
workstation. In order to retrieve the bootstrap loader and the DOS from
disk storage on a file server, it is desirable to modify this process.
One possible modification is to patch the ROM-BIOS to generate a request to
read the bootstrap loader from disk storage on a file server instead of
from a floppy disk or hard disk on the workstation. A modification similar
to this is described in U.S. Pat. No. 5,109,515 to Laggis, et al. This
modification, however, is not desirable since patching the ROM-BIOS
reduces the portability and flexibility of the workstations. In addition,
the bootstrap loader may also need to be modified to retrieve the DOS from
the disk storage on the file server.
Another possible modification is to add a device to the workstation that
intercepts one of the bootstrap loader retrieval requests generated by the
ROM-BIOS. The device intercepts the bootstrap loader retrieval request
from the ROM-BIOS, retrieves the bootstrap loader from a fixed location in
the disk storage of a particular file server, and then transmits the
bootstrap loader to the ROM-BIOS thus satisfying its request. In addition,
requests by the bootstrap loader for the DOS object code are intercepted
and satisfied by the device. This solution, however limits the flexibility
of the system to the predetermined server and disk file. Furthermore, this
solution adds a critical path which, if it fails, may cause a system-wide
failure.
SUMMARY OF THE INVENTION
One method used to intercept and process boot strap loader requests from
the ROM-BIOS is to use a LAN interface card in the workstation to
intercept requests generated by the main processor under control of the
ROM-BIOS and bootstrap loader during the boot process of the workstation.
In the exemplary embodiment of the invention, a program in the LAN
interface card interacts with other systems on the LAN to allow one of
several servers on the LAN to provide the boot program and DOS.
The LAN interface card used in this invention intercepts requests from the
ROM-BIOS and bootstrap loader during the boot process of the workstation
and communicates with any server that may be coupled to the LAN according
to a predetermined protocol.
According to one aspect of the invention, the protocol permits the LAN
interface card to be used to communicate with one or more file servers on
the LAN where the file servers may be different types of computer systems,
including mainframe computers.
According to another aspect of the invention, the LAN interface card is
used by the workstation to retrieve and store segments of the data from
disk storage on a file server in addition to the segments of the data
retrieved and stored from disk storage on the file server in response to
the current request.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of an exemplary network employing an embodiment
of the current invention.
FIGS. 2-4, 5A, 5B and 6 are flow chart diagrams which are useful for
describing the exemplary embodiment of this invention.
DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS
Overview
An exemplary network which includes an embodiment of this invention is
shown in FIG. 1. A brief overview of the invention is presented by
reference to this exemplary network. As shown in FIG. 1, three Personal
Computers, PCs, 20, 30 and 40 are attached to one LAN 70 and two larger
(e.g. mainframe) computer systems 50 and 60 are attached to another LAN 80
in the network. The two LANs 70 are 80 are connected by an interface
processor 10. In this network, the computer system 50 or 60 may provide
the functions of a file server.
In the exemplary embodiment of this invention, two primary steps are
involved to transfer data from a file server to a PC during its boot
process. First, during its initialization process, the PC selects a
computer system that is running a virtual disk process and, so, is able to
service data requests. Second, data to be stored and requests for data to
be read are transmitted from the PC to the computer system which was
selected in the first step.
The first step selects a file server that is able to process data requests
made by the PC during its boot process. To complete this step, a
boot-service-request packet is sent from-the PC to the interface processor
10. The interface processor 10 then determines which of the computer
systems, 50 and 60, is able to process the request and sends a response
packet back to the PC.
To be able to service the boot process request the computer system, 50 or
60 in the exemplary embodiment of the invention runs a virtual disk
process 51 or 61. The virtual disk process provides the program code and
data used by the PC in its boot process. The virtual disk process also
permits the PC to access data storage on the computer system as a disk
which is local to the PC and thus creates a virtual disk for the PC.
The PC waits for the first such response packet from the interface
processor 10 which links the PC to a virtual disk process on one of the
computer systems 50 or 60. Upon receipt of the first response packet, the
PC sends an Open Boot Path packet to the interface processor 10.
The PC has now established a path between itself and a process which
provides the functions of a file server. In this step, the PC did not need
to know what file servers were in the network or were available, the
protocol selects an available and capable file server for the PC. The
interface processor 10 provides an address on the network to the PC which
indicates a specific process in the interface processor 10 that will
receive and process packets from the PC during the boot process.
The virtual disk process sends, as a part of its response packet, the host
identifier of the computer system in which the virtual disk process is
executing, through the interface processor 10, to the PC 20. The PC
retrieves the address on the network and host identifier from the packet
and stores them for future use during the boot process. The packet
received by the PC also includes a Socket ID that uniquely defines the
virtual disk process in the network which is accessible via the interface
processor 10. This Socket ID is stored by the PC for later use, once the
system is operating under control of the DOS, to access disk files
maintained by the virtual disk process.
In the second step, a request for data transfer, a BIOS request packet is
sent over the established link, using the stored address on the network
and host identifier, to obtain the bootstrap loader from the disk storage
of the file server, i.e., the virtual disk process. The address on the
network identifies a path for a specific process in the interface
processor 10 which communicates with the virtual disk process using the
host identifier. This BIOS request packet is received by the virtual disk
process running on the computer system 50 or 60 which provides the
functions of a file server. If this computer system is currently able to
process the request, a response packet containing the requested data from
disk storage of the computer system is sent to the PC 20.
If the computer system is not able to handle the request, or if the network
is too busy to handle the additional traffic, the interface processor 10
sends a Host Busy packet to PC. In response to this packet, or if no
response is received within a predetermined amount of time, the PC 20
resends the BIOS request packet to the interface processor after a fixed
time interval.
Once, the virtual disk process is able to respond to the BIOS request
packet, a response packet containing the requested data from disk storage
of the virtual disk process is sent to the PC 20.
This transfer process is completed for both the bootstrap loader and the
DOS code. Once the DOS code is loaded into the RAM of the PC and control
is passed to the DOS codes the PC may send a Close Boot Path packet to the
computer system to close the boot process link between itself and the
computer system, since the boot process is now complete. Alternatively,
this path may be kept open for use by the PC in reading information from
the boot disk using the virtual disk process.
DETAILED DESCRIPTION
A detailed example using the exemplary embodiment of this invention is
presented by reference to FIG. 1 and the flowchart diagrams in FIGS. 2-6.
The detailed example describes the entire process of booting a PC from a
file servers in particular, the entire boot process of the PC system 20 in
FIG. 1 from one of the virtual disk processes 51 and 61 running on the
respective computer systems 50 and 60.
When the PC system 20 performs the cold boot process (i.e. when power is
applied to the workstation) the PC 20, under control of the ROM-BIOS
performs a number of start-up routines. Generally, the PC first executes
the Power-On Self-Test, POST, routine. The POST routine may check the
memory of the PC system 20 and other parts of the PC system 20. Next, the
PC executes an initialization routine. This routine may create interrupt
vectors for the PC system 20 and define initial values for registers and
parameters.
The last start-up routine that the PC executes during the cold boot
process, under control of the ROM-BIOS, is the boot routine. This routine
is also executed by the PC from the ROM-BIOS during a warm boot process. A
warm boot process may be performed after a certain combination of keys are
depressed (e.g. Ctrl, Alt & Del). In response to this signal, the PC,
executing the boot routine, attempts to read a boot record containing the
bootstrap loader from the beginning of a disk, normally drive A, and if
this request fails from drive C. In this process, the PC, using the
ROM-BIOS, generates a BIOS request which indicates that the boot record is
to be read from a specific drive. In the exemplary embodiment of the
invention, a programmable read-only memory (PROM) 22 on a LAN card 21 of
the PC system 20 contains a program which allows the LAN card to emulate
the A drive and so, causes the LAN card to intercept the BIOS requests for
the boot record and DOS code. In this configuration, a processor on the
LAN card operates under control of the boot prom 22. Alternatively, the
program in the boot PROM 22 may control the PC system 20 directly, causing
it to issue the request for the boot record and DOS code through the
network 70 using the LAN card 21. In this configuration, the LAN card does
not emulate a disk drive but, instead, the PC system 20 is modified by the
boot PROM code to issue disk requests, at least during the boot process,
through the LAN. In the material that follows, both of these
configurations are referred to generically as the PC system 20 operating
under control of the boot PROM 22.
Under control of the boot PROM 22, the PC system 20 monitors BIOS requests
generated by the main processor under control of the ROM-BIOS. If the BIOS
request is to read data from the drive being emulated by the PC system
under control of the boot PROM 22, the request is intercepted. Then, in
this exemplary embodiment, the PC system 20 begins a four step process to
retrieve the bootstrap loader and DOS code from disk storage on the
computer system 50 or 60 using a specific protocol.
The four step process, which is shown in the flowchart diagram in FIG. 2,
includes: first, step 210, selecting a computer systems 50 or 60 to be
used to provide boot services; second, step 230, establishing a connection
between the PC system 20 and the virtual disk process running on the
computer system, 50 or 60; third, step 250, sending the BIOS requests,
which were generated by the boot routine in the ROM-BIOS, to the virtual
disk process and receiving BIOS request responses from the virtual disk
process; and fourth, step 270, severing the connection between the virtual
disk process running on the computer system and the PC system 20 after the
boot process is completed 270. This fourth step is optional.
The first part of the boot process, selecting a computer system to provide
the boot services, step 210, is described in detail with reference to FIG.
3. As shown in this Figure, the first step in locating a computer system
running a virtual disk process, step 310, is to generate a
boot-service-request packet and to send it to the computer systems that
are associated with the PC system that generated the request. This step is
performed in part by the PC 20 under control of the boot PROM 22, and in
part by the interface processor 10.
The PC system 20, using the instructions stored in the boot PROM 22,
generates a boot-service-request packet and broadcasts the packet onto the
LAN 70. Each packet generated by the PC system 20 contains an address
field which identifies what device or process attached to the LAN 70 is to
receive the packet placed on the network by the PC 20. Each packet also
contains a Socket ID which is used by the interface processor 10 to direct
the packet to a specific process within the interface processor 10 or the
computer system 50 or 60. Finally, each packet may also contain a host
identifier, HOST.sub.-- ID, which indicates a specific computer system 50
or 60 which is to receive the packet.
In the exemplary embodiment of the invention, the address on the network
for the boot-service-request packet is set to a predefined value, for
example, FFFFFFFFFFFF hexidecimal for Ethernet packets, to indicate that
all processes which are connected to the LAN 70 are to receive this
packet. This type of packet is commonly called a broadcast packet. The
Socket ID is set to a registered standard Xerox.TM. ID which indicates
that the PC wants to start the boot process. The HOST.sub.-- ID is set to
zero since the PC does not know which computer system provides boot
services via a virtual disk process executing on the computer system. In
another exemplary embodiment of the invention there is only one computer
system associated with any PC in the network. In this embodiment, the
HOST.sub.-- ID is not used since it is not necessary. Data on the
exemplary LAN 70 is conveyed using the Internet Datagram Protocol (IDP)
from the Xerox.TM. Network System (XNS) specification for the Link Layer
Transport. Details on the implementation and operation of local area
networks (LANs) may be found in a book by Gerd E. Keiser entitled, Local
Area Networks, McGraw-Hill, 1989 which is hereby incorporated by reference
for its teachings on LANs.
The PC 20, under control of the boot PROM 22, adds the header information
required for the IDP to the boot-service-request packet and transmits the
packet onto the LAN 70.
Because the address on the network is set to the predefined value
indicating a broadcast packet, the interface processor 10 receives a copy
of the packet and evaluates the Socket ID. Because the Socket ID indicates
that the PC which generated the packet wants to start the boot process,
the interface processor 10 directs the packet to the Boot Station process
12 in the interface processor.
The boot station 12 provides the primary control and interface for the PC
and a virtual disk process on a computer system during the boot process of
the PC. The Boot station retrieves packets generated by the PCs during
their boot process directed to the virtual disk process on a computer
system. The boot station reformats the packet as necessary and transmits
the packet to the appropriate computer system via the boot terminal 14 or
15 and the network interface 16 and 17. In one exemplary embodiment of the
invention, one boot station directs packets to one or more computer
systems via boot terminal and network interfaces. In another exemplary
embodiment (not shown) the boot station would only direct the packet to
one boot terminal and network interface and thus two boot stations (not
shown) would be used to process packets for both computer system 50 and 60
shown in FIG. 1.
The Boot terminal 14 and 15 and the network interface 16 and 17 provide the
interface between the boot station 12 and the computer systems 50 and 60
in one exemplary embodiment of the invention. When the interface processor
10 is initialized a boot table is generated which indicates the
connections between the network interface 52 and 62 and the virtual disk
processes 51 and 61 operating on the computer systems 50 and 60 and the
network interface 16 and 17. In one exemplary embodiment of the invention,
the virtual disk process 51 or 61 provides boot services by a Boot
Services Application, BSA, and also provides Data Transfer Services, DTS,
by a DTS application. The boot table in the interface process indicates
the BSA of the virtual disk processes 51 or 61 in the computer systems 50
or 60. In the exemplary embodiment of the invention, a copy of the boot
table is also stored by the computer systems 50 or 60 for data integrity
purposes. Then the boot table is updated when appropriate in both the
interface processor 10 and the appropriate computer system. This system
enables the interface processor to recover from hardware or software
failures by re-initializing its boot tables from the computer systems 50
or 60.
In the exemplary embodiment the network interfaces 16 and 17 direct packets
to the virtual disk process 51 and 61 by placing the packets on the LAN
80. The network interface 52 and 62 receive packets on the LAN 80 that are
directed to the computer system 50 and 60. In another exemplary embodiment
(not shown), there may be a direct connection between the network
interface in the interface processor 10 and the network interface in the
associated computer system, i.e., with reference to FIG. 1, a direct
connection (not shown) between network interfaces 16 and 52, and 17 and
62. In this alternative embodiment LAN 80 would not be present.
In the exemplary embodiment, however, the interface processor 10 via the
boot station 12, boot terminals 14 and 15, and network interfaces 16 and
17, receives the broadcast packet from the LAN 70, reformats it if
necessary, and transmits it onto the LAN 80 where it may be received by
processes connected to the LAN 80 which are running on the computer
systems 50 and 60. The interface processor 10 receives all packets on the
LAN 70 that may be directed to one of the computer systems 50 and 60.
Accordingly, it receives the broadcast boot-service-request packet
generated by the PC system 20.
The reformatting and transmission of the broadcast packet are performed in
the interface processor 10 by routines denoted as boot station 12, boot
terminal 14 and network interface 16 in FIG. 1.
The interface processor 10, under control of the boot station routine 12,
as described above, receives the boot-serv | | |