System for and method of network booting of an operating system to a client computer using hibernation
First Claim
1. A method of of booting an operating system (O/S) to one or more client computers from a server in a network, the server storing a hibernation image and communicating with the one or more client computers through one or more client interfaces, the hibernation image having O/S files for the client computer, the method comprising the steps of:
- issuing a first set of one or more requests to the server to download contents of a first set of sectors residing on the server, wherein;
the first set of sectors collectively store a hibernation file which contains the hibernation image; and
the server emulates, in response to the first set of one or more requests, behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the hibernation file are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, and wherein the request issuing step further comprises the steps of;
generating a second set of one or more requests, to the server, by executing emulation code and client disk access interrupt handler procedures resident on the one or more client computers, to download a second set of sectors that collectively comprise a boot file such that the one or more client computers receive the boot file from the server;
executing the boot file and the client disk access interrupt handler procedures, at each of the one or more client computers, so as to generate a third set of one or more requests to the server, to download a third set of sectors collectively storing an O/S boot file containing O/S drivers, wherein the server emulates behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the third set of sector are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, executing the O/S boot file, once the O/S boot file is downloaded from the server, so as to subsequently generate the first set of one or more requests such that the one or more client computers receive, on a sector-by-sector basis from the server, the transmitted contents of the first set of sectors that collectively comprise the hibernation image file;
storing the contents of each of the sectors received from the server on each of the one or more client computers;
resuming operation of the O/S of the one or more client computers in a usable state through the steps, on each client computer, of;
restoring the hibernation image into client memory; and
initializing drivers, data structures and applications associated with the O/S, locally booting a client computer;
saving one or more initialization files into the client computer'"'"'s memory;
configuring the client computer to a desired state;
hibernating the configured client computer, thereby generating a hibernation file; and
storing the hibernation file on the server.
10 Assignments
0 Petitions
Accused Products
Abstract
A system for and method of network booting of an operating system (O/S) on one or more client devices, such as personal computers (PC'"'"'s), employing a hibernation image. Remote booting of sets of client devices is facilitated by employing virtual disk emulation and, in certain preferred embodiments, broadcasting or multicasting of data residing on a network server which is necessary to appropriately boot and configure the one or more client devices, the data including hibernation, O/S and application files.
89 Citations
18 Claims
-
1. A method of of booting an operating system (O/S) to one or more client computers from a server in a network, the server storing a hibernation image and communicating with the one or more client computers through one or more client interfaces, the hibernation image having O/S files for the client computer, the method comprising the steps of:
-
issuing a first set of one or more requests to the server to download contents of a first set of sectors residing on the server, wherein;
the first set of sectors collectively store a hibernation file which contains the hibernation image; and
the server emulates, in response to the first set of one or more requests, behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the hibernation file are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, and wherein the request issuing step further comprises the steps of;
generating a second set of one or more requests, to the server, by executing emulation code and client disk access interrupt handler procedures resident on the one or more client computers, to download a second set of sectors that collectively comprise a boot file such that the one or more client computers receive the boot file from the server;
executing the boot file and the client disk access interrupt handler procedures, at each of the one or more client computers, so as to generate a third set of one or more requests to the server, to download a third set of sectors collectively storing an O/S boot file containing O/S drivers, wherein the server emulates behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the third set of sector are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, executing the O/S boot file, once the O/S boot file is downloaded from the server, so as to subsequently generate the first set of one or more requests such that the one or more client computers receive, on a sector-by-sector basis from the server, the transmitted contents of the first set of sectors that collectively comprise the hibernation image file;
storing the contents of each of the sectors received from the server on each of the one or more client computers;
resuming operation of the O/S of the one or more client computers in a usable state through the steps, on each client computer, of;
restoring the hibernation image into client memory; and
initializing drivers, data structures and applications associated with the O/S, locally booting a client computer;
saving one or more initialization files into the client computer'"'"'s memory;
configuring the client computer to a desired state;
hibernating the configured client computer, thereby generating a hibernation file; and
storing the hibernation file on the server. - View Dependent Claims (2, 11, 13, 14)
-
-
3. A method of booting an operating system (O/S) to one or more client computers from a server in a network, the server storing a hibernation image and communicating with the one or more client computers through one or more client interfaces, the hibernation image having O/S files for the client computer, the method comprising the steps of:
-
issuing a first set of one or more requests to the server to download contents of a first set of sectors residing on the server, wherein;
the first set of sectors collectively store a hibernation file which contains the hibernation image; and
the server emulates, in response to the first set of one or more requests, behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the hibernation file are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, and wherein the request issuing step further comprises the steps of;
generating a second set of one or more requests, to the server, by executing emulation code and client disk access interrupt handler procedures resident on the one or more client computers, to download a second set of sectors that collectively comprise a boot file such that the one or more client computers receive the boot file from the server, executing the boot file and the client disk access interrupt handler procedures, at each of the one or more client computers, so as to generate a third set of one or more requests to the server, to download a third set of sectors collectively storing an O/S boot file containing O/S drivers, wherein the server emulates behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the third set of sector are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, executing the O/S boot file, once the O/S boot file is downloaded from the server, so as to subsequently generate the first set of one or more requests such that the one or more client computers receive, on a sector-by-sector basis from the server, the transmitted contents of the first set of sectors that collectively comprise the hibernation image file;
storing the contents of each of the sectors received from the server on each of the one or more client computers;
resuming operation of the O/S of the one or more client computers in a usable state through the steps, on each client computer, of;
restoring the hibernation image into client memory; and
initializing drivers, data structures and applications associated with the O/S, wherein transmitting the third set of sectors collectively storing an O/S boot file further comprises the steps of;
registering, during an invitation phase, the one or more client computers requesting the O/S boot file download; and
multicasting, on a sector-by-sector basis, sectors to the one or more registered client computers, while designating in round-robin fashion in each round a different registered client from which the server will accept a request for the next sector, until all sectors of the third set of sectors have been multicast. - View Dependent Claims (5, 9)
-
-
4. A method of booting an operating system (O/S) to one or more client computers from a server in a network, the server storing a hibernation image and communicating with the one or more client computers through one or more client interfaces, the hibernation image having O/S files for the client computer, the method comprising the steps of:
-
issuing a first set of one or more requests to the server to download contents of a first set of sectors residing on the server, wherein;
the first set of sectors collectively store a hibernation file which contains the hibernation image; and
the server emulates, in response to the first set of one or more requests, behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the hibernation file are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, and wherein the request issuing step further comprises the steps of;
generating a second set of one or more requests, to the server, by executing emulation code and client disk access interrupt handler procedures resident on the one or more client computers, to download a second set of sectors that collectively comprise a boot file such that the one or more client computers receive the boot file from the server, executing the boot file and the client disk access interrupt handler procedures, at each of the one or more client computers, so as to generate a third set of one or more requests to the server, to download a third set of sectors collectively storing an O/S boot file containing O/S drivers, wherein the server emulates behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the third set of sector are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, executing the O/S boot file, once the O/S boot file is downloaded from the server, so as to subsequently generate the first set of one or more requests such that the one or more client computers receive, on a sector-by-sector basis from the server, the transmitted contents of the first set of sectors that collectively comprise the hibernation image file;
storing the contents of each of the sectors received from the server on each of the one or more client computers;
resuming operation of the O/S of the one or more client computers in a usable state through the steps, on each client computer, of;
restoring the hibernation image into client memory; and
initializing drivers, data structures and applications associated with the O/S, wherein transmitting the third set of sectors collectively storing an O/S boot file further comprises the steps of;
registering, during an invitation phase, the one or more client computers requesting the O/S boot file download; and
broadcasting, on a sector-by-sector basis, sectors to the one or more registered client computers, while designating in round-robin fashion in each round a different registered client from which the server will accept a request for the next sector, until all sectors of the third set of sectors have been broadcast. - View Dependent Claims (10)
wherein if no sector sequence file resides on the server, the server learns a new sector sequence file by;
selecting a single registered client, booting the selected client while recording to a sector sequence file an ordered list of sectors requested by the selected client during booting, and using the learned sector sequence file to broadcast the plurality of sectors to the non-selected registered clients.
-
-
6. A method of booting an operating system (O/S) to one or more client computers from a server in a network, the server storing a hibernation image and communicating with the one or more client computers through one or more client interfaces, the hibernation image having O/S files for the client computer, the method comprising the steps of:
-
issuing a first set of one or more requests to the server to download contents of a first set of sectors residing on the server, wherein;
the first set of sectors collectively store a hibernation file which contains the hibernation image; and
the server emulates, in response to the first set of one or more requests, behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the hibernation file are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, and wherein the request issuing step further comprises the steps of;
generating a second set of one or more requests, to the server, by executing emulation code and client disk access interrupt handler procedures resident on the one or more client computers, to download a second set of sectors that collectively comprise a boot file such that the one or more client computers receive the boot file from the server, executing the boot file and the client disk access interrupt handler procedures, at each of the one or more client computers, so as to generate a third set of one or more requests to the server, to download a third set of sectors collectively storing an O/S boot file containing O/S drivers, wherein the server emulates behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the third set of sector are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, executing the O/S boot file, once the O/S boot file is downloaded from the server, so as to subsequently generate the first set of one or more requests such that the one or more client computers receive, on a sector-by-sector basis from the server, the transmitted contents of the first set of sectors that collectively comprise the hibernation image file;
storing the contents of each of the sectors received from the server on each of the one or more client computers;
resuming operation of the O/S of the one or more client computers in a usable state through the steps, on each client computer, of;
restoring the hibernation image into client memory; and
initializing drivers, data structures and applications associated with the O/S, wherein transmitting the first set of sectors collectively storing the hibernation file further comprises the steps of;
registering, during an invitation phase, the one or more client computers requesting the hibernation file download; and
multicasting, on a sector-by-sector basis, sectors from the server to the one or more registered client computers, while designating in round-robin fashion in each round a different registered client from which the server will accept a request for the next sector, until all sectors of the first set of sectors have been multicast. - View Dependent Claims (8, 17)
-
-
7. A method of booting an operating system (O/S) to one or more client computers from a server in a network, the server storing a hibernation image and communicating with the one or more client computers through one or more client interfaces, the hibernation image having O/S files for the client computer, the method comprising the steps of:
-
issuing a first set of one or more requests to the server to download contents of a first set of sectors residing on the server, wherein;
the first set of sectors collectively store a hibernation file which contains the hibernation image; and
the server emulates, in response to the first set of one or more requests, behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the hibernation file are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, and wherein the request issuing step further comprises the steps of;
generating a second set of one or more requests, to the server, by executing emulation code and client disk access interrupt handler procedures resident on the one or more client computers, to download a second set of sectors that collectively comprise a boot file such that the one or more client computers receive the boot file from the server, executing the boot file and the client disk access interrupt handler procedures, at each of the one or more client computers, so as to generate a third set of one or more requests to the server, to download a third set of sectors collectively storing an O/S boot file containing O/S drivers, wherein the server emulates behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the third set of sector are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, executing the O/S boot file, once the O/S boot file is downloaded from the server, so as to subsequently generate the first set of one or more requests such that the one or more client computers receive, on a sector-by-sector basis from the server, the transmitted contents of the first set of sectors that collectively comprise the hibernation image file;
storing the contents of each of the sectors received from the server on each of the one or more client computers;
resuming operation of the O/S of the one or more client computers in a usable state through the steps, on each client computer, of;
restoring the hibernation image into client memory; and
initializing drivers, data structures and applications associated with the O/S, wherein transmitting the first set of sectors collectively storing the hibernation file further comprises the steps of;
registering, during an invitation phase, the one or more client computers requesting the hibernation file download; and
broadcasting, on a sector-by-sector basis, sectors from the server to the one or more registered client computers, while designating in round-robin fashion in each round a different registered client from which the server will accept a request for the next sector, until all sectors of the first set of sectors have been broadcast. - View Dependent Claims (18)
-
-
12. A method of booting an operating system (O/S) to one or more client computers from a server in a network, the server storing a hibernation image and communicating with the one or more client computers through one or more client interfaces, the hibernation image having O/S files for the client computer, the method comprising the steps of:
-
issuing a first set of one or more requests to the server to download contents of a first set of sectors residing on the server, wherein;
the first set of sectors collectively store a hibernation file which contains the hibernation image; and
the server emulates, in response to the first set of one or more requests, behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the hibernation file are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, and wherein the request issuing step further comprises the steps of;
generating a second set of one or more requests, to the server, by executing emulation code and client disk access interrupt handler procedures resident on the one or more client computers, to download a second set of sectors that collectively comprise a boot file such that the one or more client computers receive the boot file from the server, executing the boot file and the client disk access interrupt handler procedures, at each of the one or more client computers, so as to generate a third set of one or more requests to the server, to download a third set of sectors collectively storing an O/S boot file containing O/S drivers, wherein the server emulates behavior of a disk drive on the one or more client computers such that the contents of individual sectors of the third set of sector are accessed by the server in a predetermined manner from a disk drive associated with the server and transmitted, via the network, to the one or more client computers requesting the download, executing the O/S boot file, once the O/S boot file is downloaded from the server, so as to subsequently generate the first set of one or more requests such that the one or more client computers receive, on a sector-by-sector basis from the server, the transmitted contents of the first set of sectors that collectively comprise the hibernation image file;
storing the contents of each of the sectors received from the server on each of the one or more client computers;
resuming operation of the O/S of the one or more client computers in a usable state through the steps, on each client computer, of;
restoring the hibernation image into client memory; and
initializing drivers, data structures and applications associated with the O/S, wherein the O/S drivers include a network filter driver and a storage driver enabling server emulation; and
wherein the initializing step further comprises the steps of;
queueing by the storage driver all client read and write requests into previously allocated memory;
reading one or more initialization or system files contained in the hibernation file from client memory;
initializing the network filter driver or any other required drivers to accept client read and write requests; and
dequeueing by the storage driver all client read and write requests.
-
-
15. A method of booting an operating system (O/S) to one or more client computers from a network, the network storing a hibernation image on a first server, the hibernation image having O/S files for the client computer, the method comprising the steps of:
-
issuing a first set of one or more requests, through the execution of emulation code residing on the one or more client computer which handles client disk access operations through an interrupt handler procedure, to the first server to download an emulation code file, wherein the first server emulates behavior of a disk drive on the one or more client computers such that the emulation code file is accessed by the first server from a disk drive associated with the first server and transmitted, via the network, to the one or more client computers requesting the emulation code file;
executing the first boot sector at each of the one or more client computers thereby issuing a second set of one or more requests to the first server to download contents of a first plurality of sectors residing on the first server, wherein the first plurality of sectors collectively store an O/S boot file, and allowing the first server to emulate, in response to the second set of one or more requests, behavior of a disk drive on the one or more client computers such that the first plurality of sectors is accessed by the first server from a disk drive associated with the first server and transmitted, via the network, to the one or more client computers requesting the first plurality of sectors;
executing the O/S boot file at each of the one or more client computers thereby loading an O/S loader, issuing a third set of one or more requests to the first server to download contents of a second plurality of sectors residing on the first server, wherein the second plurality of sectors collectively store the hibernation image, and allowing the first server to emulate, in response to the third set of one or more requests, behavior of a disk drive on the one or more client computers such that the second plurality of sectors is accessed by the first server from a disk drive associated with the first server and transmitted, via the network, to the one or more client computers requesting the second plurality of sectors;
storing the contents of each of the sectors received from the first server on each of the one or more client computers;
restoring the hibernation image into memory of each of the one or more client computers; and
resuming operation of the O/S of the one or more client computers in a usable state.
-
-
16. Apparatus for booting an operating system (O/S) to one or more client computers from a server in a network, the server storing a hibernation image and communicating with the one or more client computers through one or more client interfaces, the hibernation image having O/S files for the client computer, the apparatus comprising:
-
one or more client computers each having;
a processor;
a memory, in communication with the processor, for storing executable computer instructions therein;
wherein the processor, in response to the instructions;
issues a first set of one or more requests to the first server to download contents of a first set of sectors residing on the server, wherein;
the first set of sectors collectively store a hibernation file which contains the hibernation image; and
the server emulates, in response to the first set of one or more requests, behavior of a disk drive on the one or more client computers, and wherein the request issuing step further comprises the steps of;
generating a second set of one or more requests, to the server, by executing emulation code and client disk access interrupt handler procedures resident on the one or more client computers, to download a second set of sectors that collectively comprise a boot file, executing the boot file and the client disk access interrupt handler procedures, at each of the one or more client computers, so as to generate a third set of one or more requests to the server, to download a third set of sectors collectively storing an O/S boot file containing O/S drivers, wherein the server emulates behavior of a disk drive on the one or more client computers, executing the O/S boot file, once the O/S boot file is downloaded from the server, so as to subsequently generate the first set of one or more requests such that the one or more client computers receive, on a sector-by-sector basis from the server, the transmitted contents of the first set of sectors that collectively comprise the hibernation image file;
stores the contents of each of the sectors received from the server;
resumes operation of the O/S in a usable state through the steps, on each client computer, of;
restoring the hibernation image into client memory; and
initializing drivers, data structures and applications associated with the O/S;
locally boots a client computer;
saves one or more initialization flies into the client computer'"'"'s memory;
configures the client computer to a desired state;
hibernates the configured client computer, thereby generating a hibernation file; and
stores the hibernation file on the server;
and a server having;
a server processor;
a server memory, in communication with the server processor, for storing executable computer instructions therein;
wherein the server processor, in response to the instructions;
accesses the first set of sectors in a predetermined manner from a disk drive associated with the server;
transmits via the network to the one or more client computers requesting download of the first set of sectors, after a predetermined invitation period, the first set of sectors such that the actual source of the sectors remains transparent to the one or more client computers;
accesses the second set of sectors in a predetermined manner from a disk drive associated with the server;
transmits via the network to the one or more client computers requesting download of the second set of sectors;
accesses the third set of sectors in a predetermined manner from a disk drive associated with the server; and
transmits via the network to the one or more client computers requesting download of the third set of sectors, after a predetermined invitation period, the third set of sectors such that the actual source of the sectors remains transparent to the one or more client computers.
-
Specification