JP2008198210A - System and method for network booting of operating system of client computer using hibernation - Google Patents

System and method for network booting of operating system of client computer using hibernation Download PDF

Info

Publication number
JP2008198210A
JP2008198210A JP2008031140A JP2008031140A JP2008198210A JP 2008198210 A JP2008198210 A JP 2008198210A JP 2008031140 A JP2008031140 A JP 2008031140A JP 2008031140 A JP2008031140 A JP 2008031140A JP 2008198210 A JP2008198210 A JP 2008198210A
Authority
JP
Japan
Prior art keywords
boot
client
network
file
receiving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008031140A
Other languages
Japanese (ja)
Inventor
Gint Burokas
ブロカス ギント
Robert Lusinsky
ルシンスキ ロバート
Kenny Bunch
バンチ ケニー
Mike Garelick
ガーリック マイク
Marc Sandusky
サンダスキ マーク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ardence Inc
Original Assignee
Ardence Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ardence Inc filed Critical Ardence Inc
Priority to JP2008031140A priority Critical patent/JP2008198210A/en
Publication of JP2008198210A publication Critical patent/JP2008198210A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a system and a method for network booting of an operating system of a client computer. <P>SOLUTION: This invention provides a step and the method for the network booting of the operating system (O/S) of one or a plurality of client devices (2) such as a personal computer (PC) using a hibernation image. Remote booting of one or the plurality of client devices is attained by broadcasting or multi-casting data including hibernation (20), O/S (28) and an application file existing in a network server (4) required for the initial setting, by properly booting one or the plurality of client devices in a specific desirable embodiment by using virtual disk emulation. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明はハイバネーションイメージを利用したパソコン(PC)等の、1つまたは複数
のクライアント装置上のオペレーティングシステムO/Sのネットワークブーティング(
または、ブート処理)に関する。詳細に述べると、本発明は仮想ディスクエミュレーショ
ンを利用することによって、また、特定の実施例において、1つまたは複数のクライアン
ト装置を適切にブートし、初期設定するために必要なネットワークサーバー上に存在する
ハイバネーション、O/S、及びアプリケーションフィルを含むデータをブロードキャス
ティングまたはマルチキャスティングすることによってクライアント装置の遠隔ブーティ
ングを促進する。
The present invention provides network booting of an operating system O / S on one or more client devices, such as a personal computer (PC) using a hibernation image.
Or, boot processing). More particularly, the present invention resides on the network server required to properly boot and initialize one or more client devices by utilizing virtual disk emulation and in certain embodiments. Facilitates remote booting of client devices by broadcasting or multicasting data including hibernation, O / S, and application fills.

コンピューターネットワークはオフィスや企業の他の環境においてパソコン(PC)を
相互接続するために使用されている。PCの使用の拡大とともに、コンピューターファイ
ルの共有化及びインストール後の各PCの管理の促進に対する要求が増している。多数の
PCから成るネットワークにおいて、組織が、各PCを実際に訪問及びサービスするため
のIT用人員を保有することは非常にコストがかかることである。このようなコストを抑
えるために、ソフトウェア及びコンピューターの製造業者はソフトウェア製品をネットワ
ークサーバーで集中的に維持し、ネットワークを介して各クライアントPCに所望のソフ
トウェアをダウンロードするための技術を開発している。
Computer networks are used to interconnect personal computers (PCs) in office and other corporate environments. As the use of PCs expands, there is an increasing demand for sharing computer files and promoting management of each PC after installation. In a network consisting of a large number of PCs, it is very costly for an organization to have IT personnel to actually visit and service each PC. In order to reduce such costs, software and computer manufacturers maintain software products centrally on a network server and develop techniques for downloading desired software to each client PC via the network. .

組み込み型のインテリジェント接続された装置の設計者及び製造者はコストを削減し、
管理性及び信頼性を向上させ、展開を促進し、装置内の知的財産を保護するための方法を
模索している。これらを達成する1つの方法はクライアントPCがネットワークからブー
ト(または、起動)される能力を導入することである。PCのブートプロセスの目的は必
要なオペレーティングシステム要素をロードし、ハードウェア装置を初期化し、ユーザー
にアプリケーションを提示すことである。これは長い処理であり、通常の条件下において
、ハードウェアまたはソフトウェアの初期設定の変化及び認可されたユーザーの変化を考
慮する必要がある。ネットワークブートは、PCに関連した(または、PCに直接接続し
た)ハードウェアが固定的であり、クライアントPCの役割がたびたび変化しない状況に
より適している。ネットワークブートはPCのハードディスクの除去を可能にし、ソフト
ウェアコンテントの中央管理を促進する。現状のネットワークの帯域(10/100Mbs及び1Gb
s)はクライアントPCのローカルハードディスクの速度に達していないので、クライア
ントPCのオペレーティングシステム(O/S)の遠隔的な「コールドブート」は効率的
ではなく、非常に時間がかかる。さらに、ネットワークの有効な帯域幅及びネットワーク
サーバーのリソースは多数のクライアント装置を同時にブート(「ブートストーム」)し
ようとしたときにさらに悪化する可能性がある。「コールドブート」のために必要な長い
時間は通常の組み込み型装置の認知及び挙動の魅力を奪う。したがって、ネットワーク上
のローディングサーバー(または、ロード用サーバー)からの複数のクライアント装置の
ブーティングをスピードアップするスケーラブルな(または、拡張及び縮小が容易な)方
法が要求されている。
Designers and manufacturers of embedded intelligent connected equipment reduce costs,
We are looking for ways to improve manageability and reliability, promote deployment, and protect intellectual property in devices. One way to achieve these is to introduce the ability for the client PC to be booted (or started) from the network. The purpose of the PC boot process is to load the necessary operating system elements, initialize the hardware device, and present the application to the user. This is a long process and under normal conditions it is necessary to take into account changes in hardware or software defaults and changes in authorized users. Network boot is more suitable for situations where the hardware associated with the PC (or directly connected to the PC) is fixed and the role of the client PC does not change frequently. Network boot enables the removal of the PC's hard disk and facilitates central management of software content. Current network bandwidth (10 / 100Mbs and 1Gb
Since s) does not reach the local hard disk speed of the client PC, remote “cold boot” of the client PC operating system (O / S) is not efficient and very time consuming. Furthermore, the effective bandwidth of the network and network server resources can be further exacerbated when attempting to boot a large number of client devices simultaneously ("boot storm"). The long time required for “cold boot” detracts from the perception and behavior of ordinary embedded devices. Therefore, there is a need for a scalable (or easy to expand and shrink) method that speeds up booting of multiple client devices from a loading server (or loading server) on the network.

基本入出力システム(BIOS)、PC、及びO/Sの製造者は「ハイバネーション」
と呼ばれる技術を導入した。ハイバネーションにおいて、全てのPCのメモリー及び状態
はディスクにセーブされ、その後、特定の時間後に回復される。ハイバネーションはバッ
テリーの電力を節約するために、主に、ノート型パソコンで使用されている。例えば、「
ハイバーネートモード」に設定されたノート型パソコンは、それの蓋が閉じられたときに
、または特定の無活動時間が経過した後に、それの状態をそれのローカルハードディスク
にセーブし、電源をオフし、蓋が開けられたときにそれ自体を回復する。ハイバネーショ
ンの本来の目的はバッテリーを節約することであるが、それはPCが完全な「コールドブ
ート」を実施したときよりも素早く、ハイバネーション前のPCの状態に戻ることを可能
にする。ノート型パソコンに電力が再印加されたとき、パソコンはO/Sの非常に少ない
部分だけをロードすればよい。O/Sはハイバネーションイメージが有効であるかをチェ
ックする。ハイバネーションイメージが存在する場合、O/Sはハイバネーションファイ
ルに保存されたメモリーのコンテント(または、内容)をPCのメモリーにコピーし直す
。ハイバネーションイメージが存在しない場合は、通常の「コールドブート」処理が開始
される。ここでハイバネーションイメージを使用したハイバネーションの「再開(または
、回復)」がより少ないデータの初期化を必要とし、それにより、PCが「コールドブー
ト」を実施されるよりも素早く所望の状態に戻れるとうい長所を持つことに注意する必要
がある。
Manufacturers of basic input / output systems (BIOS), PCs, and O / S are “hibernation”
Introduced a technology called. In hibernation, the memory and state of all PCs are saved to disk and then recovered after a certain time. Hibernation is mainly used in notebook computers to save battery power. For example, "
A laptop set to "hibernate mode" saves its state to its local hard disk when its lid is closed or after a certain period of inactivity, and is turned off, Recovers itself when the lid is opened. The original purpose of hibernation is to save battery power, but it allows the PC to return to the state of the PC prior to hibernation more quickly than when the PC performed a full “cold boot”. When power is reapplied to the notebook computer, the computer only needs to load the portion with very little O / S. The O / S checks whether the hibernation image is valid. If a hibernation image exists, the O / S copies the content (or contents) of the memory stored in the hibernation file back to the PC memory. If no hibernation image exists, a normal “cold boot” process is started. Here, “resumption (or recovery)” of hibernation using the hibernation image requires less data initialization so that the PC can return to the desired state more quickly than a “cold boot” is performed. It should be noted that it has a strong advantage.

従来技術のシステムは、ネットワーク上のブートイメージからクライアント装置を遠隔
的にブートすることに関連した長いブート時間を解決するための手法を提示している(例
えば、特許文献1参照)。しかしながら、この特許は各クライアントPCのローカル格納
媒体に格納されたハイバネーションイメージから再生し、一種のリセットにしたがうこと
を教授している。この手法はクライアントPCがハイバネーションの前にPCの所望の状
態の全ての再設定を実施することを必要とし、サーバーが多数のクライアントPCが接続
されたネットワーク上で、対応する複数のクライアントPCに複数のハイバネーションイ
メージを個々に転送するのでネットワークの衝突を引き起こす可能性がある。
Prior art systems present a technique for solving the long boot time associated with remotely booting a client device from a boot image on a network (see, for example, Patent Document 1). However, this patent teaches playing from a hibernation image stored in the local storage medium of each client PC and following a kind of reset. This approach requires that the client PC perform all reconfiguration of the desired state of the PC prior to hibernation, and the server has multiple corresponding client PCs on a network to which many client PCs are connected. Since each hibernation image is transferred individually, it may cause a network collision.

従来のシステムには、サーバーへのネットワーク接続を介してクライアントコンピュー
ター上の32ビットPCオペレーティングシステム(O/S)をブートするためにディス
クエミュレーションを使用する装置及び方法を使用しているものもある(例えば、特許文
献2参照)。詳細に述べると、この特許はクライアントのO/Sがそれ自体でネットワー
ク処理を実施することができるようになるまで、「ガタピシモード(thunking)」と呼ば
れる、ウィンドウズ(登録商標)9xO/Sの32ビット保護モード処理とBIOSによって使用される16ビットリアルモードとの間での(各ディスクI/Oコールでの)スイッチングの方法を教授している。この方法及び装置はO/Sを含むクライアントPC上で望まれるソフトウェアアプリケーションの完全なイメージのダウンロードによる、サーバーからのウィンドウズ(登録商標)95等のO/Sのブートに特に適している。しかしながら、この特許はMicrosoft Corporationの最近のO/Sのバージョン、すなわち、保護モードで動作するウィンドウズ(登録商標)2000及びウィンドウズ(登録商標)XPで有効なハイバネーション機能の長所を考えに入れていない。また、この特許は本発明の特徴の1つである、特定の好まれる実施例においてハイバネーションファイルを含む、所望のデータの、ネットワーク上の複数のクライアントPCへのマルチキャスティングの使用を考えに入れていない。
Some conventional systems use devices and methods that use disk emulation to boot a 32-bit PC operating system (O / S) on a client computer via a network connection to a server ( For example, see Patent Document 2). Specifically, this patent refers to Windows® 9xO / S 32, referred to as “thunking” until the client O / S is able to perform network processing on its own. He teaches how to switch (in each disk I / O call) between bit protection mode processing and the 16-bit real mode used by the BIOS. This method and apparatus is particularly suitable for booting an O / S such as Windows 95 from a server by downloading a complete image of the desired software application on the client PC including the O / S. However, this patent does not take into account the advantages of the hibernation function that is effective in recent O / S versions of Microsoft Corporation, namely Windows 2000 and Windows XP operating in protected mode. This patent also contemplates the use of multicasting of desired data to a plurality of client PCs on a network, including a hibernation file in one preferred embodiment, which is one of the features of the present invention. Absent.

米国特許第6101601号明細書US Pat. No. 6,101,601 米国特許第5974547号明細書US Pat. No. 5,974,547

本発明は仮想ディスクエミュレーションを利用してネットワークサーバー上に格納され
たハイバネーションイメージからの1つまたは複数のクライアントPC上のO/Sのブー
ティング(または、ブート処理)のためのシステム及び方法を提供する。
The present invention provides a system and method for booting (or booting) O / S on one or more client PCs from a hibernation image stored on a network server using virtual disk emulation. To do.

本発明の特定の好まれる実施例において、ハイバネーションイメージ及びいくつかのO
/Sファイルを含むハイバネーションファイル等の、ブート処理を進めるために必要なデ
ータは後で説明されるように(また、本出願人のもう1つの特許出願である国際公開第0
3/090073号「System for and Method of Streaming Data to a Computer in a N
etwork」に説明されているように)、ネットワークサーバーから同期的に(または、同時
的に)ストリームされる(または、データ転送される)。(上述の出願の内容はその全体
が本願に参照として組み込まれるものとする。)
In certain preferred embodiments of the present invention, hibernation images and some O
The data necessary to proceed with the boot process, such as the hibernation file including the / S file, will be described later (also, the applicant's other patent application, WO 0
3/090073 “System for and Method of Streaming Data to a Computer in a N”
streamed (or data transferred) synchronously (or simultaneously) from a network server (as described in etwork). (The contents of the above application are incorporated herein by reference in their entirety.)

1つまたは複数のPCは各々マイクロソフトウィンドウズ(登録商標)2000及びXP等の、ハイバネーションをサポートするO/Sを動作させる。独創的なソフトウェアドライバーは少なくとも部分的にネットワークサーバーから、ハイバネーションファイルを集合的に(または、共同的に)構成する複数のセクター(データパケット)を受諾(または、受信)することによって、各クライアントPCを使用可能な状態に回復(または、再開)することを援助するように動作する。ブート処理の初期の段階でのディスクアクセスのための要求(または、リクエスト)は初めに、PXEサービスを使用して各クライアントからネットワークにリダイレクトされる(または、向け直される)。PXEコードは各クライアントとサーバーとの間に初期の仮想接続を確立し、サーバーがクライアントのもう1つのドライブとして認識されることを可能にするだろう。PXEコードは付加的なエミュレーションコードのダウンロードを援助し、それ(すなわち、ダウンロードされたエミュレーションコード)は次に、ハイバネーションファイルのダウンロードを援助するO/Sコードをダウンロードする。ブート処理の初期段階中、クライアントO/Sにサポートされたネットワークアクセスを与えるために不十分なO/S要素がロード及び起動される。結果として、クライアントのハードディスクアクセス要求はInt 13hハンドラー及びダウンロードされたエミュレーションコードを介して操作される。O/Sのブートの約25%において、O/Sは独創的なドライバーを使用してサーバーとの通信の制御を引き受け、BIOSInt 13hサービスに対する必要性を効果的に回避する。   One or more PCs each run an O / S that supports hibernation, such as Microsoft Windows 2000 and XP. The ingenious software driver accepts (or receives) a plurality of sectors (data packets) that collectively (or jointly) constitute a hibernation file from a network server at least in part. To help restore (or resume) to a usable state. Requests (or requests) for disk access at an early stage of the boot process are initially redirected (or redirected) from each client to the network using the PXE service. The PXE code will establish an initial virtual connection between each client and server, allowing the server to be recognized as another drive for the client. The PXE code assists in downloading additional emulation code, which (ie, downloaded emulation code) then downloads O / S code that assists in downloading the hibernation file. During the early stages of the boot process, insufficient O / S elements are loaded and activated to provide supported network access to the client O / S. As a result, client hard disk access requests are handled via an Int 13h handler and downloaded emulation code. In about 25% of the O / S boot, the O / S takes control of communication with the server using an ingenious driver, effectively avoiding the need for a BIOS Int 13h service.

もう1つの実施例において、ネットワークサーバーからダウンロードされたデータはネ
ットワークサーバーに関連した(または、サーバーに直接接続した)格納装置の複数のセ
クターから予め決められた様式で回復(または、検索)されてもよい。動作中、1つまた
は複数のクライアントPCは複数のセクターのダウンロードに対する複数の要求(または
、リクエスト)を発行する。要求は一時的にクライアントPCの各々のローカルディスク
の動作をエミュレートするサーバーに転送(または、送信)される。1つの実施例におい
て、ネットワークサーバーはサーバーに関連した仮想ハードディスクから所望のデータを
、要求を発行しているクライアントの各々にブロードキャストする。もう1つの実施例に
おいて、ネットワークサーバーはサーバーに関連した(または、サーバーに直接接続した
)仮想ハードディスクから所望のデータを、要求しているクライアントの各々に同時的に
マルチキャストする。サーバーは好まれるものとして、マルチキャスティングの前の、予
め決められた勧誘期間中(または、インビテーション期間中)にダウンロード要求を受諾
(または、受信)する。
In another embodiment, data downloaded from the network server is recovered (or retrieved) in a predetermined manner from multiple sectors of the storage device associated with the network server (or directly connected to the server). Also good. In operation, one or more client PCs issue multiple requests (or requests) for multiple sector downloads. The request is temporarily transferred (or transmitted) to a server emulating the operation of each local disk of the client PC. In one embodiment, the network server broadcasts the desired data from the virtual hard disk associated with the server to each of the issuing clients. In another embodiment, the network server simultaneously multicasts the desired data from the virtual hard disk associated with the server (or directly connected to the server) to each requesting client. The server preferably accepts (or receives) the download request during a predetermined solicitation period (or invitation period) prior to multicasting.

特定の実施例において、エミュレーションはクライアントPCの各々に存在するエミュ
レーションコードを実行することによって達成される。好まれるものとして、エミュレー
ションコードは各クライアントPCのネットワークインターフェースカード(NIC)上
に存在する実行時前ブート環境(PXE(pre-execution boot environment))コードで
ある。代替的な実施例において、エミュレーションは実行されたときに割り込み操作プロ
シジャー(Int 13h)によってディスクアクセス制御を引き受け、所望のデータを要求す
る、ネットワークサーバーからダウンロードされた独創的なブートコードの結果である。
もう1つの実施例において、エミュレーションは(好まれるものとして、ウィンドウズ(登録商標)2000、NT、またはXPである)O/Sの一部、及び、同様にクライアントのネットワークインターフェースの制御を引き受け、所望のデータを要求する、ネットワークサーバーからダウンロードされた2つの独創的なドライバーを実行することによって各クライアントPCで達成される。ストリームされるデータ(または、転送されるデータ)はネットワークサーバーからダウンロードを要求しているクライアントPCへの、バーストモードでのマルチキャストまたはブロードキャストであってもよい。それゆえ、データは各クライアントPCに冗長的に送信されるのではなく、一度だけ送信されればよい。データセクターは各クライアントで受信されるので、それらは独創的なドライバーによって予めアロケートされたデータキャッシュにキュー登録(または、キューイング)される。これは各クライアントがO/Sデータストラクチャー、ドライバー、及び(または)アプリケーションを初期化する等の、他の動作に専念することを可能にする。
In a particular embodiment, emulation is accomplished by executing emulation code that resides on each of the client PCs. Preferably, the emulation code is a pre-execution boot environment (PXE) code that resides on the network interface card (NIC) of each client PC. In an alternative embodiment, emulation is the result of an original boot code downloaded from a network server that, when executed, assumes disk access control by an interrupt handling procedure (Int 13h) and requests the desired data. .
In another embodiment, the emulation assumes control of part of the O / S (which is preferably Windows 2000, NT, or XP), and also the client's network interface, as desired. This is accomplished at each client PC by executing two original drivers downloaded from a network server that request the data. The data to be streamed (or data to be transferred) may be multicast or broadcast in burst mode from the network server to the client PC requesting download. Therefore, the data need not be transmitted redundantly to each client PC, but only once. As data sectors are received at each client, they are queued (or queued) in a data cache that has been previously allocated by an ingenious driver. This allows each client to concentrate on other operations, such as initializing O / S data structures, drivers, and / or applications.

本発明はクライアント装置がハードディスクとともに構成されなくてもよいので、必要
とするハードウェアが少ない。本発明はまた、クライアントPCが同一のハイバネーショ
ンイメージをブートすることを可能にする。これは各クライアントが同一のO/Sやアプ
リケーションの複製を実行する必要がないので、各クライアント装置の維持を容易にする
。例えば、ソフトウェアのアップグレードはクライアントPCの数にかかわらず、単一の
ハイバネーションイメージでのみ実施されることを必要とする。ハイバネーションイメー
ジは複数のクライアントにマルチキャストされるので、例えば、多数のクライアントが同
時にブートしようとしたとき等の、トラフィックのピーク時に、ネットワークのトラフィ
ックが大幅に減少される。したがって本発明の解決法は増大する数のクライアントPCを
ブートするために必要なリソースが少ないので、非常にスケーラブル(または、拡張及び
縮小が容易)である。
The present invention requires less hardware because the client device does not have to be configured with a hard disk. The present invention also allows a client PC to boot the same hibernation image. This facilitates maintenance of each client device since each client does not need to execute the same O / S or application replication. For example, software upgrades need to be performed only on a single hibernation image regardless of the number of client PCs. Because the hibernation image is multicast to multiple clients, network traffic is greatly reduced during traffic peaks, such as when many clients attempt to boot simultaneously. Thus, the solution of the present invention is very scalable (or easy to expand and shrink) because fewer resources are required to boot an increasing number of client PCs.

以下に、本発明の特定の好まれる実施例を図面とともに説明する。
本願において用語「ハイバネーション」はPCが「ポーズ(または、休止)」した状態
でPCの電力がオフにされることを意味する。PCがオフにされている間、電力はそれの
全てまたはほとんどの構成要素から除去される。そして、PCがオンに戻されると、また
は「再開(または、回復)」されると、PCはそれがオフされたときと同じ状態の通常の
動作に戻る。Microsoft Corpの米国特許No.6,209,088等に記載されている「ハイバネーシ
ョン機能」はPCがオフされる直前に呼び出され、全てのプログラム実行を中断し、PC
の全ての状態情報を非揮発性の格納装置に「ハイバネーションイメージ」としてセーブす
る。「再開機能」は揮発性メモリーから実行され、通常、O/S及び(または)O/Sに
よって始動されるアプリケーションプログラムによって使用されるのと同じ実行可能アド
レス空間から実行されるコードによって実施される。以下に説明する本発明の特定の環境
において、「ハイバネーションファイル」はO/Sドライバー等のO/Sファイル及び、
ハイバネーション機能の始動の前にPCの揮発性メモリーに読み込まれる初期化ファイル
を含む。
In the following, certain preferred embodiments of the invention will be described with reference to the drawings.
In the present application, the term “hibernation” means that the power of the PC is turned off while the PC is “paused”. While the PC is turned off, power is removed from all or most of its components. When the PC is turned back on or “resumed (or recovered)”, the PC returns to normal operation in the same state as when it was turned off. The “hibernation function” described in US Patent No. 6,209,088 of Microsoft Corp etc. is called immediately before the PC is turned off, interrupts the execution of all programs, and the PC
Are saved as a “hibernation image” in a non-volatile storage device. The “resume function” is executed from volatile memory and is typically implemented by code executed from the same executable address space used by the O / S and / or application programs started by the O / S. . In the specific environment of the present invention described below, the “hibernation file” is an O / S file such as an O / S driver, and
Contains an initialization file that is read into the PC's volatile memory before the hibernation function is started.

本願で使用される用語「MBR(Master Boot Record)(または、マスターブートレコ
ード)」、「ストレージドライバー(または、格納装置ドライバー)」、及び「ネットワ
ークフィルタードライバー」は出願人によって開発されたブートストラッピングソフトウ
ェアモジュールを意味する。出願人以外の人によって開発されたソフトウェアモジュール
を差別化するために、「O/S」等の従来の慣例的なモジュール名を採用する。また、用
語「仮想ドライブ」、「ブートドライブ」及び「サーバードライブ」は以下の記述におい
て同義的に使用される。
The terms “MBR (Master Boot Record)”, “storage driver (or storage device driver)”, and “network filter driver” as used herein are bootstrappings developed by the applicant. Means a software module. In order to differentiate software modules developed by a person other than the applicant, a conventional conventional module name such as “O / S” is adopted. Further, the terms “virtual drive”, “boot drive”, and “server drive” are used interchangeably in the following description.

図1に示されているネットワークコンピューター環境は企業のネットワークまたはクラ
イアント/サーバーコンフィグレーションであってもよく、そこにおいて、PC2のいず
れかがファイルサーバーまたはネットワークサーバー4として機能してもよい。ネットワ
ークサーバー4は比較的小さいPCから大きなメインフレームを含む、通常のタイプのシ
ステムであってもよい。以下に説明する特定の実施例において、サーバー4は1つまたは
複数のバス16によって接続された1つまたは複数の中央処理ユニット(CPU)6、ハ
ードディスク8、それ自体のBIOS18を備えたリードオンリーメモリー(ROM)1
0、ランダムアクセスメモリー(RAM)12、及びネットワークアダプター14を備え
る中間的なコンピューターである。当業者にとって明白であるだろうが、BIOS18は
ネットワークサーバー内の構成要素間の情報の伝達を援助する基本的なルーチンの組であ
る。以下に説明する特定の実施例において、ネットワークサーバーのハードディスク8は
ハイバネーションイメージ及び特定のO/Sファイル等から成るハイバネーションファイ
ル20、セクターシーケンスファイル22、MBR24等の多様なマイクロインストラク
ションコード、ストリーミングモジュール26、及び、少なくともネットワークフィルタ
ードライバー30及びストレージドライバー(または、格納装置ドライバー)32を含む
O/SMBR28等のO/Sファイルを格納する。
The network computer environment shown in FIG. 1 may be a corporate network or client / server configuration, where any of the PCs 2 may function as a file server or network server 4. The network server 4 may be a normal type system including a relatively small PC and a large mainframe. In the specific embodiment described below, the server 4 is a read-only memory with one or more central processing units (CPUs) 6, a hard disk 8 and its own BIOS 18 connected by one or more buses 16. (ROM) 1
0, an intermediate computer having a random access memory (RAM) 12 and a network adapter 14. As will be apparent to those skilled in the art, the BIOS 18 is a set of basic routines that assist in the communication of information between components within a network server. In the specific embodiment described below, the hard disk 8 of the network server has a hibernation file 20 composed of a hibernation image and a specific O / S file, a variety of microinstruction codes such as a sector sequence file 22 and an MBR 24, a streaming module 26, In addition, an O / S file such as the O / SMBR 28 including at least the network filter driver 30 and the storage driver (or storage device driver) 32 is stored.

選択的に、1つまたは複数の付加的なサーバー34がネットワークに接続され、第1サ
ーバー4及びクライアントPC2と通信してもよい。マルチサーバーネットワークの場合
、クライアントモジュール36(例えば、HPPC)が第1サーバー4内に存在し、クラ
イアント装置からの要求への応答で、どの付加的なサーバー34がクライアントアドレッ
シング情報及びダウンロード情報を含むかを指定してもよい。
Optionally, one or more additional servers 34 may be connected to the network and communicate with the first server 4 and the client PC 2. In the case of a multi-server network, a client module 36 (eg, HPPC) is present in the first server 4 and which additional server 34 includes client addressing information and download information in response to a request from the client device. May be specified.

1つまたは複数のクライアント装置2はネットワーク上のネットワークルーターまたは
ネットワークスイッチ38を介してサーバー4に接続される。物理的な接続はケーブル、
スイッチ式電話線、無線及び赤外線スペクトルで動作するワイヤレス装置、及び他の手段
を含む多様な形式のいずれであってもよい。クライアント装置及びサーバーは標準的な通
信プロトコルを使用して互いにデータを伝送する。マイクロソフトウィンドウズ(登録商標)2000及びウィンドウズ(登録商標)XP等のマイクロソフトハイバネーション機能をサポートするO/S40は適当な数のO/Sモジュール及びO/Sドライバーが起動したとき、各クライアント装置の物理的な機能または設備を管理する。各クライアント装置はインテルコーポレイションによって製造されているx86ファミリーマイクロプロセッサー等の、CPU42を備えている。各クライアントはまた、BIOS48を格納しているROM46及びRAM50を含むローカルメモリー44、ローカル格納装置(または、ローカルストレージ)52、及びシステムバス56によってCPUに接続しているネットワークアダプター54を含む。
One or more client apparatuses 2 are connected to the server 4 via a network router or network switch 38 on the network. Physical connection is cable,
It can be any of a variety of types including switched telephone lines, wireless devices operating in the radio and infrared spectrum, and other means. The client device and server transmit data to each other using a standard communication protocol. The O / S 40 that supports the Microsoft hibernation function, such as Microsoft Windows (registered trademark) 2000 and Windows (registered trademark) XP, has a physical configuration of each client device when an appropriate number of O / S modules and O / S drivers are activated. Manage critical functions or equipment. Each client device includes a CPU 42, such as an x86 family microprocessor manufactured by Intel Corporation. Each client also includes a local memory 44 including a ROM 46 and RAM 50 storing a BIOS 48, a local storage device (or local storage) 52, and a network adapter 54 connected to the CPU by a system bus 56.

図1はまた、適当な数のセクターがダウンロードされ、それらが含むコードが実行され
た後の、クライアントのRAM50の一部を図示している。示されているように、RAM
50はダウンロードされたO/S40、O/Sドライバー76、O/Sローダー78、ネ
ットワークフィルタードライバー30、ストレージドライバー(または、格納装置ドライ
バー)32、及びO/Sネットワークスタック68を含んでもよい。いくつかの実施例に
おいて、RAM50はまた、ハイバネーションファイル20及びWIN32.SYS72等の、シ
ステムユーティリティー機能を与えるカーネルバイナリー(kernel binary)のコピーを
含む。図2を参照すると、各クライアントのネットワークアダプター54は好まれるもの
として、クライアントのハードウェアとネットワークとの間にデータリンクを与えるネッ
トワークインターフェースカード(NIC)である。各NIC54はクライアントシステ
ムバス56に接続するためのバスインターフェース58、ネットワークに接続するための
1つまたは複数のネットワークコネクター60を含む。ネットワークコネクター60はL
ANまたはWANに対応するものであってもよい。NIC54にはまた、NICの固有デ
スティネーションアドレスを格納するためのランダムアクセスメモリー(RAM)62及
び、PXEエミュレーションコード66を格納するための選択的ROM(OPROM)6
4が備えられている。デスティネーションアドレスは各クライアント2がネットワーク上
の他のコンピューターによって個々にアドレッシングされることを可能にする。
FIG. 1 also illustrates a portion of the client's RAM 50 after the appropriate number of sectors have been downloaded and the code they contain has been executed. RAM as shown
50 may include downloaded O / S 40, O / S driver 76, O / S loader 78, network filter driver 30, storage driver (or storage device driver) 32, and O / S network stack 68. In some embodiments, RAM 50 also includes a copy of a kernel binary that provides system utility functions, such as hibernation file 20 and WIN32.SYS 72. Referring to FIG. 2, each client's network adapter 54 is preferably a network interface card (NIC) that provides a data link between the client's hardware and the network. Each NIC 54 includes a bus interface 58 for connection to a client system bus 56 and one or more network connectors 60 for connection to a network. Network connector 60 is L
It may correspond to AN or WAN. The NIC 54 also includes a random access memory (RAM) 62 for storing the NIC's unique destination address, and a selective ROM (OPROM) 6 for storing the PXE emulation code 66.
4 is provided. The destination address allows each client 2 to be individually addressed by other computers on the network.

ブートNIC(BootNIC)基本アーキテクチャ
本発明は1つの側面において、ウィンドウズ(登録商標)2000及び(登録商標)XP等のハイバネーション機能をサポートするO/Sがネットワーク上でブート(または、起動)されることを可能にし、もう1つの側面において、ハイバネーションをサポートする、または、サポートしないO/Sのデータの同期的なストリーミング(または、データ伝送)を可能にする、ここで出願人によってブートNIC技術と呼ばれるシステム及び方法を提供する。ブートする各クライアントは初めに、PXEサービスを使用してサーバー4と通信する。PXEコード66は各クライアントとサーバーとの間に最初にエミュレートされる「仮想ドライブ」を確立する。PXE(実行時前ブート環境)サービスはMBR(マスターブートレコード)コード33がリード要求をサーバーに送ることを可能にし、それによって、サーバーに存在するハイバネーションファイル20が、各クライアントのCPU42によって、ローカルクライアントのハードディスク52に格納することができる複数のデータセクターとして認識されることを可能にする。ブートストラッピングの初期の段階中、BIOS割り込みハンドラーサービスはリアルモードでのみ動作するので、エミュレーションはMBRコード33のリアルモードの実行によって与えられる。処理の後半は、O/Sのカーネルコード及び(ガタピシモード(thunking)が発生しない)保護モードでのみ実行されるストレージドライバー32及びネットワークフィルタードライバー30によってエミュレーションが与えられる。
Boot NIC Basic Architecture In one aspect of the present invention, an O / S supporting a hibernation function such as Windows (registered trademark) 2000 and (registered trademark) XP is booted (or started) on a network. And in another aspect, enables synchronous streaming (or data transmission) of O / S data that supports or does not support hibernation, herein referred to as boot NIC technology by the applicant Systems and methods are provided. Each booting client initially communicates with the server 4 using the PXE service. The PXE code 66 establishes a “virtual drive” that is first emulated between each client and server. The PXE (Pre-Runtime Boot Environment) service allows the MBR (Master Boot Record) code 33 to send a read request to the server, so that the hibernation file 20 residing on the server is transferred to the local client by each client CPU 42. It is possible to be recognized as a plurality of data sectors that can be stored in the hard disk 52. During the early stages of bootstrapping, the BIOS interrupt handler service operates only in real mode, so emulation is provided by execution of the MBR code 33 in real mode. In the second half of the processing, emulation is provided by the O / S kernel code and the storage driver 32 and the network filter driver 30 that are executed only in the protection mode (where no thunking occurs).

図3はネットワークフィルタードライバー30及びストレージドライバー(または、格
納装置ドライバー)32がネットワークサーバーからダウンロードされ、実行された後の
、クライアントのローカルメモリー44の一部をブロック図で図示している。ネットワー
クフィルタードライバーの唯一の役割はブートNICに特有(BootNIC specific)である
データパケットを特定するために、クライアントのNIC54を介してネットワークから
O/Sネットワークスタック68に送られる全てのデータパケットを監視し、前記特有の
データパケットがネットワークスタック68に送られないように遮断し、代わりにそれら
のパケットをストレージドライバー32に送ることである。ストレージドライバー32は
次に、マウントマネジャー(Mount manager)、ボリュームマネジャー(Volume manager
)、及びパーティションマネジャー(Partition manager)等の、格納のための役割を持
つウィンドウズ(登録商標)の多様なマネジャー70と通信する。ネットワークデータパケットがブートNIC特有(BootNIC specific)でない場合、データパケットは影響を受けずにO/Sネットワークスタック(Network stack)68に送られる。当業者にとって明白であるだろうが、データパケットには以下の3つの異なった種類がある。(1)ブロードキャストパケット、ネットワーク上の全てのコンピューターにアドレッシングされるパケット。(2)マルチキャストパケット、2つ以上であるが、必ずしもネットワーク上の全てのコンピューターではない、コンピューターにアドレッシングされるパケット。(3)直接アドレス指定パケット、特定のクライアント装置だけにアドレッシングされるパケット。本発明に従うシステムはこれらのいずれのデータパケット伝達手段を利用してもよい。
FIG. 3 is a block diagram illustrating a portion of the client's local memory 44 after the network filter driver 30 and storage driver (or storage device driver) 32 have been downloaded from the network server and executed. The only role of the network filter driver is to monitor all data packets sent from the network to the O / S network stack 68 via the client NIC 54 in order to identify the data packets that are specific to the boot NIC. Blocking the unique data packets from being sent to the network stack 68 and sending them to the storage driver 32 instead. Next, the storage driver 32 is mounted by a mount manager and a volume manager.
), And various managers 70 of Windows (registered trademark) having a storage role, such as a partition manager. If the network data packet is not specific to Boot NIC (BootNIC specific), the data packet is sent to the O / S network stack 68 without being affected. As will be apparent to those skilled in the art, there are three different types of data packets: (1) Broadcast packet, packet addressed to all computers on the network. (2) A multicast packet, a packet addressed by a computer that is two or more, but not necessarily all computers on the network. (3) Direct addressing packets, packets addressed only to specific client devices. The system according to the present invention may use any of these data packet transmission means.

本発明は、クライアントが(オペレーティングシステムの有無にかかわらず)事前ブー
ト環境(PXE)でネットワークと相互作用するための、予想可能で相互運用可能な方法
を作成するための努力の結果である、事前ブート実行環境(PXE(pre-boot execution
environment))として知られている、広く利用されているスペックの長所を利用する。
PXEの現在のバージョンはWired for Management(WfM)のインテル主導産業イニシア
チブとして確立されたものである。PXEはインテルアーキテクチャーベースのシステム
のブートファームウェアとともに事前ブート(pre-boot)サービスの共通及び首尾一貫的
な組を確立する、以下の3つの技術を包含する。(i)クライアント2がネットワークの
IPアドレスのアロケートを要求し、結果的に、ネットワークブートサーバー4からブー
トストラッププログラム(MBR24及びO/SMBR28)のダウンロードを要求する
ための一律的なプロトコル。(ii)BIOS48またはブートストラッププログラムに
よって利用可能なサービスの首尾一貫的な組を構成するクライアント2のファームウェア
環境の事前ブートで利用可能なAPIの組。(iii)クライアントPCでPXEプロト
コルを実行するための事前ブートファームウェアを始動する標準的な方法。
The present invention is the result of an effort to create a predictable and interoperable way for clients to interact with the network in a pre-boot environment (PXE) (with or without an operating system) Boot execution environment (PXE (pre-boot execution
Take advantage of widely used specifications known as environment)).
The current version of PXE was established as an Intel-led industry initiative of Wired for Management (WfM). PXE encompasses the following three technologies that establish a common and coherent set of pre-boot services with the boot firmware of Intel architecture-based systems: (I) A uniform protocol for the client 2 to request the allocation of the IP address of the network and consequently to request the download of the bootstrap program (MBR 24 and O / SMBR 28) from the network boot server 4. (Ii) A set of APIs available for pre-booting the client 2 firmware environment that constitutes a consistent set of services available by the BIOS 48 or bootstrap program. (Iii) A standard method of starting pre-boot firmware for executing the PXE protocol on the client PC.

PXEスペックの使用はクライアントのNIC54がブート装置として働くことを可能
にする。それはまた、BIOS48がPOST処理前または処理中にOPROM64上に
格納されたNICコードを直接的に使用することを可能にする。本発明は、特定の実施例
において、選択的にブートサーバーディスカバリー(boot server discovery)のPXE
特徴の長所を利用する。この特徴を使用することにより、ブートクライアント2はリモー
トブートの初期段階中にクライアント2に与えられる利用可能なブートサーバーのリスト
から適当なブートサーバー4または34を発見(または、ディスカバリー)することがで
きる。ブートサーバーの種類、または特定のダウンロードされるハイバネーションイメー
ジはクライアントのシステムアーキテクチャーの種類または各クライアントの固有のID
に基づいてインフォメーションテクノロジーアドミニスター(information technology a
dministrator)によって割り当て及び維持されることができる。PXEはサーバー4と通
信するために動的ホスト構成プロトコル(DHCP)及びトリビアルファイル転送プロト
コル(TFTP)を使用する。PXEがクライアントのブートを可能にしたとき、それは
DHCPサーバー4からIPアドレスを取得する。そして、クライアント2はクライアン
トにブートサーバーのリストを与えるDHCPサーバー4を発見してもよい。図1には、
ブートサーバーとして動作してもよい、付加的なサーバー34が示されている。しかしな
がら、本発明の説明を容易にするために、結果としてハイバネーションファイルからのブ
ーティング及びブロードキャストまたはマルチキャスティングとなる本発明の処理は単一
のサーバー4から成るネットワークコンフィグレーションとの関連で説明される。
The use of the PXE spec allows the client NIC 54 to act as a boot device. It also allows BIOS 48 to directly use the NIC code stored on OPROM 64 before or during POST processing. The present invention, in certain embodiments, selectively PXE boot server discovery.
Take advantage of features. By using this feature, the boot client 2 can discover (or discover) an appropriate boot server 4 or 34 from the list of available boot servers provided to the client 2 during the initial stage of remote boot. . The type of boot server, or the specific downloaded hibernation image, is the client's system architecture type or each client's unique ID
Information technology a based on information technology a
dministrator) can be assigned and maintained. PXE uses Dynamic Host Configuration Protocol (DHCP) and Trivial File Transfer Protocol (TFTP) to communicate with server 4. When PXE enables the client to boot, it obtains an IP address from the DHCP server 4. The client 2 may then discover a DHCP server 4 that gives the client a list of boot servers. In FIG.
An additional server 34 is shown that may operate as a boot server. However, to facilitate the description of the present invention, the process of the present invention resulting in booting and broadcasting or multicasting from the hibernation file will be described in the context of a network configuration consisting of a single server 4. .

ハイバネーションイメージからのリモートブーティング
上述したように、本発明はクライアントPCのためのO/Sファイルを有するハイバネ
ーションイメージ20を格納しているサーバー4から1つまたは複数のクライアント2に
O/Sをブートするための改善されたシステム及び方法を与える。各クライアントのCP
U42はDRAMまたは他の種類の揮発性電子メモリー等の、アドレス可能なメモリーか
らのインストラクション(または、命令)のみを実行する。このアドレス可能なメモリー
を初期化するため、少量のPXEコード66がNIC54上のOPROM64に与えられ
る。PXEコード66はMBRコード24をリードするために、クライアントのローカル
ディスクをエミュレートするネットワークサーバー4に要求が発行されることを可能にす
る。ダウンロードされたMBRコード33はさらなるディスクのエミュレーションを可能
にし、O/SMBR28の最初の部分がサーバーからクライアントに送信され、そこで、
DRAMにロードされるように要求する。次に、O/SMBR28はO/Sの残りの部分
のダウンロード及び初期化を行い、そして、それらの残りの部分はハイバネーションファ
イル20をダウンロードする。ここで、以下の説明は複数のクライアントにダウンロード
される単一のハイバネーションファイル20のみを含むが、当業者にとって明白であるよ
うに、本発明の方法を使用して異なったクライアントの組に多数のハイバネーションファ
イルをストリームすることもできる。出願人は、本発明の方法はストリーミングがネット
ワーク上のO/S40のブートに必要な時間を従来の標準的なO/Sのローカルブートに
対して50%以上減少させることができることを観測した。
Remote Booting from Hibernation Image As described above, the present invention boots an O / S from a server 4 storing a hibernation image 20 having an O / S file for a client PC to one or more clients 2. An improved system and method is provided. CP of each client
U42 only executes instructions (or instructions) from addressable memory, such as DRAM or other types of volatile electronic memory. A small amount of PXE code 66 is provided to OPROM 64 on NIC 54 to initialize this addressable memory. The PXE code 66 allows a request to be issued to the network server 4 emulating the client's local disk to read the MBR code 24. The downloaded MBR code 33 allows further disk emulation and the first part of the O / SMBR 28 is sent from the server to the client, where
Request to be loaded into DRAM. Next, the O / SMBR 28 downloads and initializes the remaining portions of the O / S, and those remaining portions download the hibernation file 20. Here, the following description includes only a single hibernation file 20 that is downloaded to multiple clients, but as will be apparent to those skilled in the art, a number of different client sets can be used using the method of the present invention. You can also stream hibernation files. Applicants have observed that the method of the present invention can reduce the time required for streaming to boot O / S 40 over the network by more than 50% over a traditional standard O / S local boot.

ハイバネーショントランザクションプロトコルは2つの部分から成る。最初の半分はブ
ートドライブ8にハイバネーションイメージを生成することであり、第2の半分はハイバ
ネーションファイルからの実際の再開(または、回復)である。
The hibernation transaction protocol consists of two parts. The first half is to create a hibernation image on the boot drive 8 and the second half is the actual resume (or recovery) from the hibernation file.

本発明のブートアップ(boot up)の開始の前に、サーバー4に存在するハイバネーシ
ョンファイル20は直接的な様式で生成される。クライアントPCが所望の状態に設定さ
れた後、ハイバネーションファイル20にハイバネーションイメージを生成するためにハ
イバネーション機能が利用される。ハイバネーションファイル20は次に、サーバーのブ
ートドライブ8に送信される。あるいは、ハイバネーション処理はハイバネーションファ
イルがサーバーのブートドライブに直接セーブされるように実行されてもよい。ハイバネ
ーション機能は全てのドライバーに対してパワーダウンするように命令するが、ストレー
ジドライバー32だけはWIN32.SYS72をローカルメモリー50にキャッシュし、メモリ
ーのコンテントをファイルHIBERFIL.SYS(O/Sローダーが再開時に正当性をチェックす
るファイル)にライトした後に、O/Sの要求によってパワーダウンする。ブート処理を
始動する前に実施されることが好まれるもう1つのステップはブートドライブ8にMBR
24エミュレーションコードを格納することである。
Prior to the start of the boot up of the present invention, the hibernation file 20 present on the server 4 is generated in a direct manner. After the client PC is set in a desired state, a hibernation function is used to generate a hibernation image in the hibernation file 20. The hibernation file 20 is then sent to the boot drive 8 of the server. Alternatively, the hibernation process may be performed such that the hibernation file is saved directly to the server boot drive. The hibernation function instructs all drivers to power down, but only the storage driver 32 caches WIN32.SYS 72 in the local memory 50, and the memory content is saved to the file HIBERFIL.SYS (when the O / S loader resumes). Is written down to a file to be checked for validity, and then powered down by an O / S request. Another step that is preferably performed before starting the boot process is to install MBR on the boot drive 8
24 emulation codes are stored.

ウィンドウズ(登録商標)のアーキテクチャにおいて、ドライバーは「タイプ」を呈することが要求され、1つのドライバーが同時にストレージドライバーとネットワークドライバーとなることができないので、ウィンドウズ(登録商標)のアーキテクチャはサーバーと通信するために1つのドライバーではなく、2つのドライバー、ストレージドライバー32とネットワークフィルタードライバー30とを必要とする。ウィンドウズ(登録商標)2000及びXPのハイバネーションの実行は1つのO/Sドライバーだけがストレージドライバーと通信することが要求されると仮定しており、したがって、ハイバネーション処理が2つ以上のO/Sドライバーをサポートすることを可能にするためのメカニズムを与えていない。現在利用可能な標準的なO/Sドライバーはネットワーク上のファイルから再開するように記述されていないので、それらは上手く動作しないだろう。ローカルドライブからの標準的な再開において、O/Sストレージドライバーはローカルハードディスクとの通信方法だけを知ることが要求される(そして、実際にそうなっている)。   In the Windows® architecture, the Windows® architecture communicates with the server because the driver is required to exhibit a “type” and one driver cannot simultaneously be a storage driver and a network driver. Therefore, two drivers, a storage driver 32 and a network filter driver 30, are required instead of one driver. The execution of hibernation in Windows 2000 and XP assumes that only one O / S driver is required to communicate with the storage driver, and therefore the hibernation process is more than one O / S driver. Does not give a mechanism to allow to support. Since standard O / S drivers currently available are not written to resume from a file on the network, they will not work well. In a standard restart from a local drive, the O / S storage driver is required to know only (and indeed is) how to communicate with the local hard disk.

ストレージドライバー32はNICドライバー74の電力ハンドラー(power handler
)に対するディスパッチアドレス(dispatch address)をストレージドライバー自体のハ
ンドラーで置き換えることによってNICドライバー74の(ディスパッチルーチンdisp
atch routine)に「フック(hook)」する。ストレージドライバー32は次に、オリジナ
ルのNICドライバー電力ハンドラールーチンを呼び出してもよい。
The storage driver 32 is a power handler of the NIC driver 74 (power handler).
) By replacing the dispatch address with the handler of the storage driver itself (dispatch routine disp).
atch routine). The storage driver 32 may then call the original NIC driver power handler routine.

ブート処理は多くの処理から成るが、一般的に、1つのプログラムが事前のプログラム
に対してより高度なプログラムを開始させることを含む。本発明の独創的な方法の主要な
ステップはBIOS初期化、PXE初期化、MBRロード及びInt 13hリダイレクション
、ハイバネーションイメージのロード、及びO/Sの再開(または、回復)である。ここ
で、これらの解決法はウィンドウズ(登録商標)2000に特化したものであるが、以下に記載されるステップはこれらの解決法を他のオペレーティングシステムに拡張するための一般的な枠組を要約したものである。
The boot process consists of many processes, but generally involves one program starting a more advanced program with respect to the prior program. The main steps of the inventive method are BIOS initialization, PXE initialization, MBR loading and Int 13h redirection, hibernation image loading, and O / S resumption (or recovery). Here, these solutions are specific to Windows 2000, but the steps described below summarize the general framework for extending these solutions to other operating systems. It is a thing.

図5を参照すると、パワーアップ直後、クライアント2のBIOS48の初期化はパワ
ーオン/セルフテスト(POST(power-on/self-test))シーケンスの実行(ステップ
502)とともに開始される。各クライアントはそれ自体のIPアドレスを確認するため
にDHCPディスカバリー要求をブロードキャストする。このプロトコル(及び他のプロ
トコル)をサポートするサーバーのO/Sは、ネットワークサーバー4であっても、そう
でなくてもよい、(クライアントがそこから)ブートされるサーバーのアドレスとともに
これらのパラメーターを戻す。仮想ブートドライブ8はネットワークサーバー4(または
、代替的なブートサーバー34)に関連した(または、サーバーに直接接続した)非揮発
性の格納装置を備えてもよい。ドライバーの種類はフロッピー(登録商標)ディスク、ハードディスク、磁気テープ、DVD、CD−ROM、及びフラッシュROMを含む。仮想ブートドライブ8となるために、装置はO/Sファイルまたは、ダウンロードされることが意図されるマイクロインストラクションコードを含むハイバネーションファイルのコピーを保持しなければならない。
Referring to FIG. 5, immediately after power-up, initialization of the BIOS 48 of the client 2 is started together with execution of a power-on / self-test (POST) sequence (step 502). Each client broadcasts a DHCP discovery request to confirm its own IP address. Server O / S that supports this protocol (and other protocols) may or may not be network server 4 and these parameters along with the address of the server from which the client is booted (from there) return. The virtual boot drive 8 may comprise a non-volatile storage device associated with (or directly connected to) the network server 4 (or alternative boot server 34). Types of drivers include floppy (registered trademark) disks, hard disks, magnetic tapes, DVDs, CD-ROMs, and flash ROMs. In order to become a virtual boot drive 8, the device must keep a copy of the O / S file or the hibernation file containing the microinstruction code that is intended to be downloaded.

POST中、CPU42はOPROM64がクライアント2に存在するかを決定するた
めにバス56上でアドレスをチェックする。OPROMが見つかった場合、CPUはOP
ROM上の全てのハードウェア初期化ルーチンを処理し、NIC54を使用可能な状態に
初期化する(ステップ504)。OPROMコードは次に、PXEコードを初期化する(
ステップ506)。OPROMコードはまた、ハードディスク52のリード及びライトを
制御する割り込み13hハンドラーサービスを介して、BIOSブート処理に「フック(hoo
k)」する。PXEコードを使用して、NIC54の制御を引き受けることにより、OP
ROM64のコードはサーバー4と通信し、サーバーのハードディスク8がサーバーに対
するディスクのリード及びライトのリダイレクションを介して、クライアント2のローカ
ルハードディスク52を透明にエミュレートすることを可能にする。
During POST, CPU 42 checks the address on bus 56 to determine if OPROM 64 is present on client 2. If OPROM is found, the CPU
All the hardware initialization routines on the ROM are processed to initialize the NIC 54 to a usable state (step 504). The OPROM code then initializes the PXE code (
Step 506). The OPROM code also “hooks” to the BIOS boot process via an interrupt 13h handler service that controls the reading and writing of the hard disk 52.
k) ". By using the PXE code to assume control of the NIC 54, the OP
The ROM 64 code communicates with the server 4 and allows the server hard disk 8 to transparently emulate the client 2 local hard disk 52 via disk read and write redirection to the server.

POSTシーケンスの終了時に、BIOS48はO/Sのブートを開始するだろう。B
IOSはサーバーの仮想ドライブ8の最初のセクター(シリンダー0、ヘッド0、セクタ
ー1)をリードする(ステップ510)。最初のセクターはO/S40をブートするため
の付加的なエミュレーションコードを含むMBR(マスターブートレコード)24を格納
する。MBR24のコードは慣例的にO/Sの製造者によって供給されるが、以下に説明
するハイバネーション再開処理を容易にするために、付加的なエミュレーションコードを
開発する必要がある。MBRコードはクライアントのメモリーにロードされた後に実行さ
れる(ステップ512)。MBRのコードはネットワークサーバーと通信するためにPX
E66を使用し続け、全ての格納装置アクセス要求を取得するために割り込み13hをフッ
クし、ブート処理の初期の段階中にサーバーの仮想ハードディスク8へのライトを防止す
る(ステップ514)。
At the end of the POST sequence, BIOS 48 will begin booting the O / S. B
The IOS reads the first sector (cylinder 0, head 0, sector 1) of the virtual drive 8 of the server (step 510). The first sector stores an MBR (Master Boot Record) 24 containing additional emulation code for booting the O / S 40. The MBR 24 code is conventionally supplied by the O / S manufacturer, but additional emulation code needs to be developed to facilitate the hibernation resume process described below. The MBR code is executed after being loaded into the client's memory (step 512). The MBR code is PX to communicate with the network server
Continue to use E66, hook interrupt 13h to get all storage device access requests, and prevent writing to the server's virtual hard disk 8 during the early stages of the boot process (step 514).

リード要求は仮想ドライブから所望のデータをブロードキャスティングすることによっ
て履行されてもよい。しかしながら、特定の好まれる実施例において、リード要求は後で
説明される同期的(または、同時的)ストリーミング法を使用することによって履行され
る。あるいは、リード要求はネットワークサーバーによって個々に処理されてもよい。リ
ード要求はオリジナルのInt 13hBIOSルーチンには送られず、代わりにPXEがネッ
トワークサーバー4からデータを受信するためにMBRによって使用される。リード要求
はMBRコードによって履行され、要求はネットワークサーバーからダウンロードされた
データとともに要求の発行元に戻される。ディスクライトは異なった様式で操作される。
MBRコードはライトを実施しないが、正常なライトを示す信号をディスクライトの要求
の発行元に戻す。ライトはオリジナルのInt 13hBIOSルーチンにも送られない。
The read request may be fulfilled by broadcasting the desired data from the virtual drive. However, in certain preferred embodiments, the read request is fulfilled by using a synchronous (or simultaneous) streaming method described below. Alternatively, read requests may be individually processed by the network server. The read request is not sent to the original Int 13h BIOS routine, but is instead used by the MBR for the PXE to receive data from the network server 4. The read request is fulfilled by the MBR code, and the request is returned to the request issuer along with the data downloaded from the network server. Disc lights are operated in different styles.
The MBR code does not perform writing, but returns a signal indicating normal writing to the disk write request issuer. The light is not sent to the original Int 13h BIOS routine.

MBRコードは次に、図1において「ウィンドウズ(登録商標)2000MBR」として示されているような、O/S製造者によって開発されたO/SMBR28をダウンロードする。各クライアント2のMBRコード33は、OPROM64が要求を調べるための機会を持つ前に、それのInt 13hベクトルのフッキング(hooking)を介してローカルディスクのリードに対する全ての要求を取得する。ダウンロードされたMBR88は次に、O/SMBR28をダウンロードするために、PXE66を使用して要求をネットワークサーバーに転送する(ステップ516)。   The MBR code then downloads an O / SMBR 28 developed by the O / S manufacturer, as shown in FIG. 1 as “Windows 2000 MBR”. The MBR code 33 of each client 2 gets all requests for local disk reads via its Int 13h vector hooking before OPROM 64 has the opportunity to examine the request. The downloaded MBR 88 then forwards the request to the network server using PXE 66 to download O / SMBR 28 (step 516).

ステップ518において、ネットワークサーバー4はサーバーの仮想ドライブ8から、
O/SMBR28を集合的に(または、共同的に)構成するデータパケットをO/SMB
Rのダウンロードを要求している各クライアント2にマルチキャストされるかまたは同期
的にストリーム(または、データ転送)する。同期化は後で説明される同期されたストリ
ーミング処理400を使用することによって達成されてもよい。この実施例において、ス
トリーミングモジュール26は勧誘期間中にO/SMBRのダウンロードの要求を出した
、全てのクライアント2へのダウンロードに対する登録を行う。勧誘期間は全てのクライ
アントに登録の機会を与える、予め決められた時間間隔を持つ。ストリーミングモジュー
ル26は次に、リード要求元として最初のクライアントを指定する。すなわち、そのクラ
イアントだけが、全ての登録されたクライアントに次のデータセクターのコンテントがマ
ルチキャストされるための、ストリーミングモジュール26のリード要求を生成すること
を許可される。
In step 518, the network server 4 starts from the virtual drive 8 of the server,
Data packets that collectively (or jointly) configure O / SMBR 28 are O / SMB
Multicast or synchronously stream (or data transfer) to each client 2 requesting R download. Synchronization may be achieved by using a synchronized streaming process 400 described below. In this embodiment, the streaming module 26 registers for downloading to all the clients 2 that issued O / SMBR download requests during the solicitation period. The solicitation period has a predetermined time interval that gives all clients the opportunity to register. The streaming module 26 then designates the first client as the read request source. That is, only that client is allowed to generate a read request for the streaming module 26 for the content of the next data sector to be multicast to all registered clients.

ストリーミングモジュール26は次に、登録されたクライアント2の全てにアクセスし
、リード要求元の識別及びO/SMBR28を集合的に格納する仮想ドライブ8のセクタ
ーのグループの第1のセクターのコンテントをマルチキャストする。ストリーミングモジ
ュールは次に、O/SMBRのセクターのグループの全てのセクターがマルチキャストさ
れたかを決定する。さらなるセクターがマルチキャストされることが必要な場合、かつ、
2つ以上の登録されたクライアントが存在する場合、ストリーミングモジュールは新規の
リード要求元を指定する。次に、ストリーミングモジュールは次のセクターにアクセスし
、新規のリード要求元の識別とともに、それのコンテントを登録されたクライアントの全
てにマルチキャストする。新規のリード要求元を指定するステップは好まれるものとして
、順繰りに実施される。すなわち、各マルチキャストのラウンド後に、登録された1つの
クライアントが順番に仮想ドライブのリード要求を生成する役割を引き受け、他の指定さ
れていないクライアントはデータのマルチキャストを単に待つ。ストリーミング処理40
0はO/SMBR28全体がマルチキャストされ各クライアントにロードされるまで繰り
返され、その時点で、ダウンロードされたO/SMBRはネットワークインターフェース
54の制御及び要求生成処理を引き受ける。
The streaming module 26 then accesses all of the registered clients 2 and multicasts the content of the first sector of the group of sectors of the virtual drive 8 that collectively stores the identification of the read request source and the O / SMBR 28. . The streaming module then determines whether all sectors of the group of O / SMBR sectors have been multicast. If additional sectors need to be multicast, and
If there are two or more registered clients, the streaming module specifies a new read request source. The streaming module then accesses the next sector and multicasts its content to all registered clients along with the identification of the new read requester. The step of designating a new read request source is preferred and is performed in order. That is, after each multicast round, one registered client assumes the role of generating virtual drive read requests in turn, and the other unspecified clients simply wait for data multicast. Streaming process 40
0 is repeated until the entire O / SMBR 28 is multicast and loaded to each client, at which point the downloaded O / SMBR assumes control of the network interface 54 and request generation processing.

ここで、各リード要求はどの登録されたクライアントが発行したかにかかわらず、同一
であることに注意しなければならない。それゆえ、MBRコードによって実施されるリー
ド要求は密集行進法(lock-step)の様式で進行する。各クライアントは同一の仮想ドラ
イブからリードを要求し、既に仮想ドライブからダウンロードされた同一のMBR28を
実行しているので、各リード要求は同一となるだろう。
Note that each read request is the same regardless of which registered client issued it. Therefore, read requests performed by the MBR code proceed in a lock-step manner. Since each client requests a read from the same virtual drive and is already executing the same MBR 28 downloaded from the virtual drive, each read request will be the same.

図5を参照すると、ステップ520において、各登録されたクライアントはブロードキ
ャストまたはマルチキャストされたO/SMBRのセクターを受信及び格納する。受信し
たデータセクターはRAM50の、拡張されたBIOSデータ領域のあめに確保されたメ
モリーの一部に格納される。各ブロードキャストセクターまたはマルチキャストセクター
は連番とともに送信されてもよい。各クライアントは次に、クライアントが送信されたセ
クターの全てを正常に受信したかを決定してもよい(ステップ522)。クライアントが
データパケットを見逃している場合、クライアントはネットワークサーバーから見逃した
データセクターを非同期的に要求してもよい。しかしながら、データはそのクライアント
単体だけに戻され、全ての登録されたクライアントにはブロードキャストまたはマルチキ
ャストされない。
Referring to FIG. 5, in step 520, each registered client receives and stores a broadcast or multicast O / SMBR sector. The received data sector is stored in the RAM 50 in a part of the memory reserved for the expanded BIOS data area. Each broadcast sector or multicast sector may be transmitted with a sequence number. Each client may then determine whether the client has successfully received all of the transmitted sectors (step 522). If the client misses a data packet, the client may request the missed data sector from the network server asynchronously. However, the data is returned to that client alone and not broadcast or multicast to all registered clients.

ステップ524において、O/SMBR28(例えば、ウィンドウズ(登録商標)2000MBR)が各クライアントのメモリー50にロードされ、実行される。次に、O/SMBRは仮想ドライブからO/Sの製造者によって記述されたO/Sローダー74(例えば、NTLDR)をダウンロードする(ステップ526)。ダウンロードされたO/Sローダー78は仮想ドライブ8に有効なハイバネーションイメージが存在するかをチェックしてもよい(ステップ528)。仮想ドライブは事前に有効なハイバネーションイメージ20を含むように設定されている。O/Sローダー78は次に、MBR33が取得かつネットワークサーバー4にリダイレクトする一連のInt 13hリード要求を介して、ハイバネーションイメージのロードを開始する(ステップ530)。ここで、ハイバネーションファイル20を集合的に格納する仮想ドライブ8上の複数のセクターのコンテントにアクセスし、それをブロードキャストまたはマルチキャストするために、ストリーミング処理400が再び利用されてもよい(ステップ532)。   In step 524, O / SMBR 28 (eg, Windows 2000 MBR) is loaded into each client's memory 50 and executed. Next, the O / SMBR downloads the O / S loader 74 (eg, NTLDR) described by the O / S manufacturer from the virtual drive (step 526). The downloaded O / S loader 78 may check whether a valid hibernation image exists in the virtual drive 8 (step 528). The virtual drive is set to include a valid hibernation image 20 in advance. The O / S loader 78 then starts loading the hibernation image via a series of Int 13h read requests that the MBR 33 acquires and redirects to the network server 4 (step 530). Here, the streaming process 400 may be utilized again to access and broadcast or multicast the content of multiple sectors on the virtual drive 8 that collectively store the hibernation file 20 (step 532).

ハイバネーションイメージが各クライアントのローカルメモリー44にコピーされた後
、O/Sローダー78はハイバネーションイメージから回復(または、再生)されたO/
S40、すなわち、ウィンドウズ(登録商標)XPまたは2000に実行を渡す(ステップ534)。ここで、この時点以降、リード要求は同期的な様式で実施されないことに注意しなければならない。すなわち、それらは単体ベースでネットワークサーバーに送信され、ネットワークサーバーによって回答される。
After the hibernation image is copied to the local memory 44 of each client, the O / S loader 78 recovers (or replays) the O / S recovered from the hibernation image.
In S40, that is, execution is passed to Windows XP or 2000 (step 534). Note that after this point, read requests are not performed in a synchronous fashion. That is, they are sent to the network server on a stand-alone basis and answered by the network server.

O/S40はこの時点で、ストレージドライバー32等のドライバー76を起こし、シ
ステムを使用可能な状態に戻すためにいくつかの初期化を実施する必要がある。各クライ
アント2が適切な順序でストレージ(または、格納装置)及びネットワークフィルタード
ライバーをロードするたように構成するために、既存のドライバーに対するいくつかの標
準的なドライバーのレジストリは、以下の表に記載されているように、(regedit32レジ
ストリエディターを使用する等により)予め変更しておく必要がある。
At this point, the O / S 40 needs to wake up a driver 76, such as the storage driver 32, and perform some initialization to return the system to a usable state. To configure each client 2 to load storage (or enclosure) and network filter drivers in the proper order, some standard driver registries for existing drivers are listed in the following table: As before, it needs to be changed in advance (eg by using the regedit32 registry editor).

Figure 2008198210
Figure 2008198210

ここで発生する1つの難しい問題は、NICドライバー74及びネットワークフィルタ
ードライバー30が初期化されるまで、ストレージドライバー32が全てのリード及びラ
イトを防止しなければならないことである。しかしながら、ネットワークフィルタードラ
イバーは、O/S40が表示及び印刷のための低レベルのルーチン等の、システムユーテ
ィリティー機能を与えるファイルWIN32.SYS72及びカーネルバイナリー(kernel binary
)をリードするまで初期化されないだろう。この問題はハイバネーションイメージを生成
する前にWIN32.SYSの、クライアントのメモリー50への早めのキャッシュを行い、それ
によって、ファイルをこの時点でローカルメモリー50内にリードされるハイバネーショ
ンイメージ自体の一部にすることによって解決される。これにより、ファイルWIN32K.SYS
は仮想ドライブ8をアクセスする必要なく、ローカルメモリーからリードすることができ
る。1つの例外として、ストレージドライバー32は全てのO/Sディスクのライト及び
リード要求をハイバネーションイメージの生成中に、事前にアロケートされたキャッシュ
に、すなわち、この時点でクライアントシステムのメモリー50にキュー登録する。スト
レージドライバー32は、要求の処理の許可が安全になるまで、すなわち、NICドライ
バー74及びネットワークフィルタードライバー30が初期化されるまで、単に要求を格
納する(ステップ536)。ファイルWIN32K.SYSはローカルクライアントメモリーからリ
ードされ、データがO/Sに戻される(ステップ538)。
One difficult problem that arises here is that the storage driver 32 must prevent all reads and writes until the NIC driver 74 and network filter driver 30 are initialized. However, the network filter driver does not include the file WIN32.SYS72 and kernel binary that provide system utility functions such as low-level routines for the O / S 40 to display and print.
) Will not be initialized until leading. The problem is that WIN32.SYS caches the client memory 50 early before generating the hibernation image, so that the file is now part of the hibernation image itself that is read into the local memory 50. It is solved by doing. This makes the file WIN32K.SYS
Can read from local memory without having to access the virtual drive 8. With one exception, the storage driver 32 queues all O / S disk write and read requests into the pre-allocated cache during the generation of the hibernation image, ie, at this point in the client system memory 50. . The storage driver 32 simply stores the request until permission to process the request is secure, that is, until the NIC driver 74 and the network filter driver 30 are initialized (step 536). The file WIN32K.SYS is read from the local client memory, and the data is returned to the O / S (step 538).

O/S40は次に、NICドライバー及びネットワークフィルタードライバー30を起
こす。ステップ542において、ネットワークフィルタードライバー30はストレージド
ライバー32に、NIC54が初期化され、ネットワークフィルタードライバー30がペ
ンディング中のリード及びライト要求を受諾する準備ができていることを知らせる。ある
いは、ストレージドライバー32は(ハイバネーションイメージの生成中に)事前に、N
ICドライバー74のディスパッチ機能に「フック」し、それの「IRP_MJ_POWER」のため
のデータを監視する。これはネットワークドライバーが起きたときにストレージドライバ
ー32に警告を出す。O/S40がIRP_MJ_POWERをNICドライバー74に送信した後、
要求は常にフルパワーオン状態(すなわち、NICが完全に使用可能な状態)となる。ス
トレージドライバー32はNICドライバーがIRP_MJ_POWERの処理を終了するまで、すな
わち、ネットワークドライバーが完全に起きるまで待つ。
The O / S 40 then wakes up the NIC driver and network filter driver 30. In step 542, the network filter driver 30 informs the storage driver 32 that the NIC 54 has been initialized and the network filter driver 30 is ready to accept pending read and write requests. Alternatively, the storage driver 32 (Now generating the hibernation image)
“Hook” the dispatch function of the IC driver 74 and monitor the data for its “IRP_MJ_POWER”. This alerts the storage driver 32 when a network driver wakes up. After the O / S 40 sends IRP_MJ_POWER to the NIC driver 74,
The request is always in the full power on state (ie, the NIC is fully usable). The storage driver 32 waits until the NIC driver finishes the processing of IRP_MJ_POWER, that is, until the network driver completely occurs.

ステップ544において、ストレージドライバーはO/S40が使用可能な状態に回復
し、その後にユーザーが通常の様式でクライアントPCを使用することができるように、
全てのキャッシュされたリード及びライト要求のキュー登録を解除する。ここで、この実
施例において、ストレージドライバーがリードとライトを僅かに異なった様式で操作する
ことに注意しなければならない。すなわち、ストレージドライバーはライトが仮想ドライ
ブに対して実行されることによって、異なったクライアントが同一の仮想イメージに同時
にライトしたときに、それのデータを破壊することを防止するために、全てのライトをロ
ーカル的にキャッシュする。逆に、リードは必要なセクターのコピーがクライアント上に
キャッシュされないかぎり、仮想ドライブから実際のリードによって行われる。後者の場
合、セクターはクライアントのメモリーからキャッシュされ、ネットワークトランザクシ
ョンは一切行われない。
In step 544, the storage driver restores the O / S 40 to a usable state, after which the user can use the client PC in the normal manner.
Dequeue all cached read and write requests. It should be noted here that in this embodiment, the storage driver manipulates reads and writes in slightly different ways. That is, the storage driver writes all writes to the virtual drive in order to prevent destroying its data when different clients write to the same virtual image at the same time. Cache locally. Conversely, reads are made by actual reads from the virtual drive, unless a copy of the required sector is cached on the client. In the latter case, the sector is cached from the client's memory and no network transaction takes place.

複数のクライアントへの所望のデータの同期的ストリーミング
特定の好まれる実施例においてブート処理を進めるために必要なデータは、本出願人の
もう1つの特許出願である国際公開第03/090073号に説明されているように、サ
ーバー4から1つまたは複数のクライアント2に同期的にストリームされる。この実施例
に従った本発明の独創的システムは1つまたは複数のクライアント2によって発行された
リード要求への応答で、透明な(transparent)ローカルディスクエミュレーション及び
、サーバーの「仮想」ドライブ8に存在するデータセクターの組のコンテント(または、
内容)のブロードキャスティングまたはバーストモードのマルチキャスティングを利用す
る。
Synchronous Streaming of Desired Data to Multiple Clients The data necessary to proceed with the boot process in a particular preferred embodiment is described in Applicant's other patent application WO 03/090073. As is shown, it is streamed synchronously from the server 4 to one or more clients 2. The inventive system according to this embodiment is in response to a read request issued by one or more clients 2 and is present in a transparent local disk emulation and in the “virtual” drive 8 of the server. Data sector set content (or
Content) broadcasting or burst mode multicasting.

図4のフローチャートは同期的(または、同時的)データストリーミングのための処理
400を図示している。ここで、ハイバネーションファイルを使用したクライアント上の
O/Sのネットワークブートを完了するために、同期的ストリーミング処理400は(い
くつかの意味のある差異とともに)基本的に2回、すなわち、O/Sドライバーが初期化
される前と後とに1回ずつ利用される。これは、O/Sブート処理が仮想ドライブ8から
ファイルをダウンロードするために、ブート処理の初期の段階中に割り込みハンドラープ
ロシジャー(または、割り込みハンドラー処理)を使用するのに対し、その後、それらが
初期化された後にストレージドライバー32及びネットワークフィルタードライバー30
を使用するためである。これは実質的に同等なタスクを実行するために2つの解決法を必
要とすることを意味する。
The flowchart of FIG. 4 illustrates a process 400 for synchronous (or simultaneous) data streaming. Here, in order to complete the network boot of the O / S on the client using the hibernation file, the synchronous streaming process 400 is basically performed twice (with some meaningful differences), ie, the O / S. Used once before and after the driver is initialized. This is because the O / S boot process uses an interrupt handler procedure (or interrupt handler process) during the early stages of the boot process to download files from the virtual drive 8, whereas they are then initialized Storage driver 32 and network filter driver 30
Is to use. This means that two solutions are required to perform substantially equivalent tasks.

特定のデータのダウンロードを所望する各クライアントは最初の要求を発行する。所望
されるデータはブートプログラム、ハイバネーションファイル、O/Sファイル、または
、サーバーの仮想ドライブ8上に存在するアプリケーションファイルを含んでもよい。こ
れらの要求がサーバー4に発行されるとともに、サーバーはPXEコード66及びダウン
ロードされたMBR33のコードの実行を介して、または、ネットワークフィルター及び
ストレージドライバーと共にO/SMBR28のコードの実行を介して、ブートアップ(
boot up)の多様な段階中に、クライアントのローカルディスク52をエミュレートする
。(ステップ402)
Each client desiring to download specific data issues an initial request. The desired data may include a boot program, hibernation file, O / S file, or application file residing on the server virtual drive 8. As these requests are issued to the server 4, the server boots via execution of the PXE code 66 and the downloaded MBR33 code, or through execution of the O / SMBR28 code along with the network filter and storage driver. up(
Emulate the client's local disk 52 during various stages of boot up). (Step 402)

ステップ404において、サーバーのストリーミングモジュール26は予め決められた
勧誘期間中に初期要求を発行している各クライアントを登録する。登録された各クライア
ントはストリーミングモジュール26からのデータパケットを待つ。
In step 404, the server's streaming module 26 registers each client issuing an initial request during a predetermined solicitation period. Each registered client waits for a data packet from the streaming module 26.

ステップ406において、ストリーミングモジュールはサーバー4上でセクターシーケ
ンスファイル22を探す。セクターシーケンスファイル22は所望のデータを含んでいる
データセクターへのアクセス及びデータセクターのブロードキャストまたはマルチキャス
トの順序(オーダー)を決定する。セクターシーケンスファイル22が見つからない場合
、プログラムフローは後で説明されるセクターシーケンスファイルを記録するためのラー
ニング処理(または、学習処理)450に進む。
In step 406, the streaming module looks for the sector sequence file 22 on the server 4. The sector sequence file 22 determines the access to the data sector containing the desired data and the broadcast or multicast order of the data sector. If the sector sequence file 22 is not found, the program flow proceeds to a learning process (or learning process) 450 for recording the sector sequence file described later.

ステップ408において、セクターシーケンスファイル22が見つかった場合、ストリ
ーミングモジュール26は所望のデータを登録されたクライアントにブロードキャストま
たはマルチキャストする。データパケットは好まれるものとして固定速度でブロードキャ
ストまたはマルチキャストされる。
In step 408, if the sector sequence file 22 is found, the streaming module 26 broadcasts or multicasts the desired data to registered clients. Data packets are broadcast or multicast at a fixed rate as preferred.

登録された各クライアント2において、受信されたデータパケットはブロードキャスト
またはマルチキャストのレート及びクライアントのブート処理速度の差を補正するために
固定長のキューに格納される(ステップ410)。ネットワーク及びストレージドライバ
ーは初期のMBR/Int 13hフッキング処理(MBR/Int 13h hooking process)とは異なっ
た様式でストリーミングを操作する。ドライバーはデータを各クライアント内に予めアロ
ケートされた、メモリー上の大型の一時的区分(「データキャッシュ」)にロードする。
登録された各クライアントは、それが正常に受信したデータパケットを追跡する(または
、場所を記録する)。選択的に、登録された各クライアントはサーバーに、最も最近のN
個のパケットが正常に受信されるように試みられたことを示す、アクノリッジメント(ま
たは、受け取り信号)を送信する(ステップ412)。クライアントのアクノリッジメン
トの目的はローカルクライアントのバッファーがオバーランされていないことを確実にす
ることである。
At each registered client 2, the received data packet is stored in a fixed length queue to compensate for the difference between the broadcast or multicast rate and the client boot processing speed (step 410). Network and storage drivers handle streaming in a manner different from the initial MBR / Int 13h hooking process. The driver loads the data into a large temporary section in memory ("data cache") that is pre-allocated in each client.
Each registered client keeps track of (or records the location of) data packets that it has successfully received. Optionally, each registered client sends a server to the most recent N
An acknowledgment (or received signal) is transmitted indicating that attempts have been made to successfully receive the packets (step 412). The purpose of the client acknowledgment is to ensure that the local client buffer is not overrun.

ステップ414において、ストリーミングモジュール26は所望のデータが全てアクセ
スされ、それらのコンテント(または、内容)が送信されたことを確認する。これらの処
理が完了していない場合、ステップ408及びステップ410は完了するまで繰り返され
る。所望のデータが全てブロードキャストまたはマルチキャストされている場合、ストリ
ーミングモジュールは送信が完了したことを示すメッセージを送信する(ステップ416
)。しかしながら、この時点において、全てのクライアントが情報の全てのブロックを問
題なく受信していなくてもよい。すなわち、いくつかのパケットがなんらかの理由によっ
て欠落していてもよい。また、いくつかのクライアントが送信の開始を見逃してもよい。
ステップ418において、クライアント2の各々は送信が成功したことを示すメッセージ
、または、見逃されたパケットの再送信に対する必要性を示すメッセージによって、スト
リーミングモジュール26に応答してもよい。ストリーミングモジュール26はパケット
の再送信のリストを編集し、効果的に順序付ける(ステップ420)。あるいは、パケッ
トの再送信のリストは(ステップ414の前に)データパケットの送信中に、決められた
数のバイト数ごとに繰り返し編集されてもよい。再送信はストリーミングを行っているモ
ジュールとクライアントとの間で個々に行われてもよい(ステップ422)。この時点で
、ほとんどのクライアントは受信したデータパケットの処理をしているので、ネットワー
クの帯域幅は大きく、それゆえ、個々の再送信はブート時間またはネットワークのトラフ
ィックに対して認識可能な程度の影響を与えないだろう。
In step 414, the streaming module 26 confirms that all desired data has been accessed and that their content (or content) has been transmitted. If these processes are not complete, step 408 and step 410 are repeated until completion. If all the desired data is broadcast or multicast, the streaming module sends a message indicating that the transmission is complete (step 416).
). However, at this point, not all clients may have received all blocks of information without problems. That is, some packets may be missing for some reason. Also, some clients may miss the start of transmission.
In step 418, each of the clients 2 may respond to the streaming module 26 with a message indicating a successful transmission or a message indicating the need for retransmission of missed packets. The streaming module 26 compiles and effectively orders the list of packet retransmissions (step 420). Alternatively, the list of packet retransmissions (prior to step 414) may be iteratively edited for each determined number of bytes during the transmission of the data packet. Retransmissions may be performed individually between the streaming module and the client (step 422). At this point, most clients are processing received data packets, so the network bandwidth is high, so individual retransmissions have a discernable effect on boot time or network traffic. Would not give.

ステップ424において、ダウンロードされたデータが正常に処理された後、キャッシ
ュのために事前に確保されたメモリーのアロケートが解除される。
In step 424, after the downloaded data has been successfully processed, the memory allocated in advance for the cache is deallocated.

上述したように、ストリーミング処理400の長所は、各クライアントにおいて、クラ
イアントのO/SがO/Sのデータストラクチャー、ドライバー、またはアプリケーショ
ンの初期化に専念している間、O/Sがデータを必要とする前にデータパケットをメモリ
ーに予めロードすることによって将来必要となるO/Sのデータが既に準備されているだ
ろうということである。ストリーミングモジュール26はクライアントがパケットを利用
できる状態になる前に、クライアントにパケットをブロードキャスト及び(または)マル
チキャストし、ブートアップ時間の依存性をパケットの送信時間からクライアントのブー
ト処理時間に移す。特定の実施例において、ストリーミングモジュール26は送信される
べき仮想ドライブセクターのコンテントの順序を決定するためにセクターシーケンスファ
イル22を利用する。セクターシーケンスファイル22は同期性のストリーミング処理を
着手する前に、サーバー4上に格納されることが予期されるが、これが行われない場合、
セクターシーケンスファイル22は以下に説明されるラーニング処理(または、学習処理
)中に生成されてもよい。
As noted above, the advantages of streaming 400 are that each client needs data while the client's O / S is devoted to initializing the O / S data structure, driver, or application. This means that the O / S data that will be required in the future will already be prepared by preloading the data packet into the memory. The streaming module 26 broadcasts and / or multicasts the packet to the client before the client is ready to use the packet, and shifts the boot-up time dependency from the packet transmission time to the client boot processing time. In certain embodiments, the streaming module 26 utilizes the sector sequence file 22 to determine the order of the virtual drive sector content to be transmitted. The sector sequence file 22 is expected to be stored on the server 4 before embarking on a synchronous streaming process, but if this is not done,
The sector sequence file 22 may be generated during the learning process (or learning process) described below.

ストリーミングモジュール26がセクターシーケンスファイル22を見つけられない場
合、ラーニング処理450が実行される。セクターシーケンスファイルはO/Sがブート
処理を完了するためにリードしなければならない、セクターのリストから成る。ステップ
426において、ストリーミングモジュール26は1つの登録されたクライアントを選択
する。選択されたクライアントが独創的なMBR24及びドライバー(30及び32)を
使用して、慣例的にブートすることが許可されるとともに、ストリーミングモジュールは
新規のセクターシーケンスファイルに、選択されたクライアントがブート中に生成した全
てのセクターアクセス要求を記録する(ステップ428)。ステップ430において、ブ
ートするクライアントは、それがブートを完了したことをストリーミングモジュールに知
らせる。この時点で、新規のセクターシーケンスファイルは仮想ドライブ8に格納され、
ステップ408でストリーミング処理が再開される。上述の本発明の特徴及び実施から当
業者にとっては本発明の他の実施例が明白であるだろう。例えば、いくつかの実施例にお
いて、同期的ストリーミング処理400は割り込みハンドラープロシジャー(または、割
り込みハンドラー処理)によって要求されたデータのダウンロードのみに使用されたり、
サーバーの保護モードアクセスでのみ使用されたりしてもよい。または、同期的ストリー
ミング処理400はクライアントへのアプリケーションの事前ロードに使用されてもよい
。同様に、他の実施例において、データパケットの要求及び受信を同期させるためのMB
Rコードを使用しない、ハイバネーションイメージのネットワークコピーからのブートも
本発明の範囲に含まれる。それゆえ、上述の説明及び実施例は例としてだけのものであり
、本発明の本来の範囲及び意図は付随する請求の範囲によって規定される。
If the streaming module 26 cannot find the sector sequence file 22, a learning process 450 is performed. The sector sequence file consists of a list of sectors that the O / S must read to complete the boot process. In step 426, the streaming module 26 selects one registered client. The selected client is allowed to boot conventionally using the original MBR 24 and drivers (30 and 32) and the streaming module is in the new sector sequence file and the selected client is booting All the sector access requests generated are recorded (step 428). In step 430, the booting client informs the streaming module that it has completed booting. At this point, the new sector sequence file is stored in the virtual drive 8,
In step 408, the streaming process is resumed. From the above features and implementation of the invention, other embodiments of the invention will be apparent to persons skilled in the art. For example, in some embodiments, the synchronous streaming process 400 is used only for downloading data requested by an interrupt handler procedure (or interrupt handler process),
It may be used only for protected mode access of the server. Alternatively, the synchronous streaming process 400 may be used for preloading applications to clients. Similarly, in another embodiment, an MB for synchronizing request and reception of data packets.
Booting from a network copy of the hibernation image without using an R code is also within the scope of the present invention. Therefore, the foregoing description and examples are illustrative only and the true scope and spirit of the invention is defined by the appended claims.

本発明が実施されるクライアント/サーバーネットワーク環境を図示しているブロック図である。1 is a block diagram illustrating a client / server network environment in which the present invention is implemented. FIG. 本発明の1つの実施例に従ったネットワークアダプターを図示しているブロック図である。FIG. 2 is a block diagram illustrating a network adapter according to one embodiment of the present invention. 独創的なドライバーがネットワークサーバーからダウンロードされ実行された後の、クライアントのローカルメモリーの一部の実施例を図示しているブロック図である。FIG. 4 is a block diagram illustrating an example of a portion of a client's local memory after an ingenious driver has been downloaded from a network server and executed. 本発明によって与えられる同期性ストリーミング処理の1つの実施例を図示しているフローチャートである。Figure 6 is a flowchart illustrating one embodiment of a synchronous streaming process provided by the present invention. ハイバネーションイメージファイルを利用している遠隔ネットワークブート処理の1つの実施例を図示しているフローチャートである。6 is a flowchart illustrating one embodiment of a remote network boot process utilizing a hibernation image file.

符号の説明Explanation of symbols

2 クライアント
4 第1サーバー
6 CPU
8 ハードディスク(仮想ドライブ)
10 ROM
12 RAM
14 通信インターフェース(ネットワークアダプター)
16 バス
18 BIOS
20 ハイバネーションファイル
22 セクターシーケンスファイル
24 MBR
26 ストリーミングモジュール
28 O/SMBR
30 ネットワークフィルタードライバー
32 ストレージドライバー
33 MBR
34 第2サーバー
36 クライアントモジュール
38 ネットワークルーター/スイッチ
40 O/S
42 CPU
44 メモリー
46 ROM
48 BIOS
50 メモリー(RAM)
52 ハードディスク
54 ネットワークアダプター(NIC)
56 システムバス
58 バスインターフェース
60 ネットワークコネクター
62 RAM
64 OPROM
66 PXE
68 OSネットワークスタック
70 ウィンドウズ(登録商標)の多様なマネジャー
72 初期化ファイル
74 NICドライバー
76 OSドライバー
78 OSローダー
2 Client 4 1st server 6 CPU
8 Hard disk (virtual drive)
10 ROM
12 RAM
14 Communication interface (network adapter)
16 bus 18 BIOS
20 Hibernation file 22 Sector sequence file 24 MBR
26 Streaming module 28 O / SMBR
30 Network filter driver 32 Storage driver 33 MBR
34 Second server 36 Client module 38 Network router / switch 40 O / S
42 CPU
44 memory 46 ROM
48 BIOS
50 memory (RAM)
52 Hard disk 54 Network adapter (NIC)
56 System bus 58 Bus interface 60 Network connector 62 RAM
64 OPROM
66 PXE
68 OS network stack 70 Various managers of Windows (registered trademark) 72 Initialization file 74 NIC driver 76 OS driver 78 OS loader

Claims (42)

ネットワーク上のサーバから1つ以上のクライアント装置にオペレーティングシステムをストリーミングする方法であって、
該方法は、
該1つ以上のクライアント装置上で実行している実行時前ブート環境サービスによって、該ネットワーク上に常駐する仮想ブートドライブのアドレスを有する第1のサーバを識別することと、
該実行時前ブート環境サービスによって、オペレーティングシステムデータを有するハイバネーションファイルを有する該仮想ブートドライブを検出することと、
実行時前ブートコードを用いて、該1つ以上のクライアント装置と該仮想ブートドライブとの間で仮想ドライブ接続を確立することと、
該仮想ブートドライブから、要求されたマスターブートレコードを受信することと、
該1つ以上のクライアント装置上で該マスターブートレコードを実行することであって、該マスターブートレコードは、オペレーティングシステムローダに対する要求を該仮想ブートドライブに発行する、ことと、
該仮想ブートドライブから該オペレーティングシステムローダを受信することと、
マスターブートレコードコードによって発行された該要求に応答して、該仮想ブートドライブからダウンロードされた該ハイバネーションファイルを、該オペレーティングシステムローダによってロードすることと、
該ロードされたハイバネーションファイルを介して、該1つ以上のクライアント装置上にオペレーティングシステムを回復することと、
該オペレーティングシステムを用いて、該オペレーティングシステムを実行することが可能であるドライバを起動することと
を包含する、方法。
A method of streaming an operating system from a server on a network to one or more client devices comprising:
The method
Identifying a first server having a virtual boot drive address residing on the network by a pre-runtime boot environment service running on the one or more client devices;
Detecting the virtual boot drive having a hibernation file having operating system data by the pre-runtime boot environment service;
Establishing a virtual drive connection between the one or more client devices and the virtual boot drive using pre-runtime boot code;
Receiving a requested master boot record from the virtual boot drive;
Executing the master boot record on the one or more client devices, the master boot record issuing a request for an operating system loader to the virtual boot drive;
Receiving the operating system loader from the virtual boot drive;
In response to the request issued by a master boot record code, loading the hibernation file downloaded from the virtual boot drive by the operating system loader;
Recovering an operating system on the one or more client devices via the loaded hibernation file;
Using the operating system to launch a driver capable of running the operating system.
前記ネットワーク上でブートサーバを見つけ出すことをさらに包含し、該ブートサーバは、前記仮想ブートドライブに関連付けられている、請求項1に記載の方法。   The method of claim 1, further comprising locating a boot server on the network, the boot server being associated with the virtual boot drive. 要求されたデータセクターを受信することをさらに包含し、各データセクターは、前記仮想ブートドライブによって前記1つ以上のクライアント装置に送信される、請求項1に記載の方法。   The method of claim 1, further comprising receiving a requested data sector, wherein each data sector is transmitted to the one or more client devices by the virtual boot drive. 前記ドライバを起動することは、格納装置ドライバおよびネットワークフィルタドライバのそれぞれを起動することをさらに包含する、請求項1に記載の方法。   The method of claim 1, wherein activating the driver further comprises activating each of a storage device driver and a network filter driver. 前記ネットワークフィルタドライバによって、前記要求されたデータセクターの一部を格納装置ドライバにリレーすることと、
前記オペレーティングシステムによって、該要求されたデータセクターの一部を読み出すことにより、前記ネットワークフィルタドライバを初期化することと
をさらに包含する、請求項4に記載の方法。
Relaying a portion of the requested data sector to a storage device driver by the network filter driver;
The method of claim 4, further comprising: initializing the network filter driver by reading a portion of the requested data sector by the operating system.
前記オペレーティングシステムによって発行されたリード要求およびライト要求をキャッシュメモリに格納することと、
前記オペレーティングシステムによって、ネットワークインタフェースカードドライバウを初期化することと、
前記格納装置ドライバによって、該格納されているリード要求およびライト要求の各々をキャッシュメモリから取り出すことであって、該リード要求およびライト要求を取り出すことは、該オペレーティングシステムを回復する、ことと
をさらに包含する、請求項4に記載の方法。
Storing a read request and a write request issued by the operating system in a cache memory;
Initializing a network interface card driver by the operating system;
Retrieving each of the stored read and write requests from the cache memory by the storage device driver, wherein retrieving the read and write requests restores the operating system; 5. The method of claim 4, comprising.
ネットワーク上のサーバから1つ以上のクライアント装置にオペレーティングシステムをストリーミングするシステムであって、
該システムは、
該1つ以上のクライアント装置上で実行している実行時前ブート環境サービスによって、該ネットワーク上に常駐する仮想ブートドライブのアドレスを有する第1のサーバを識別する手段と、
該実行時前ブート環境サービスによって、オペレーティングシステムデータを有するハイバネーションファイルを有する該仮想ブートドライブを検出する手段と、
実行時前ブートコードを用いて、該1つ以上のクライアント装置と該仮想ブートドライブとの間で仮想ドライブ接続を確立する手段と、
該仮想ブートドライブから、要求されたマスターブートレコードを受信する手段と、
該1つ以上のクライアント装置上で該マスターブートレコードを実行する手段であって、該マスターブートレコードは、オペレーティングシステムローダに対する要求を該仮想ブートドライブに発行する、手段と、
該仮想ブートドライブから該オペレーティングシステムローダを受信する手段と、
マスターブートレコードコードによって発行された該要求に応答して、該仮想ブートドライブからダウンロードされた該ハイバネーションファイルを、該オペレーティングシステムローダによってロードする手段と、
該ロードされたハイバネーションファイルを介して、該1つ以上のクライアント装置上にオペレーティングシステムを回復する手段と、
該オペレーティングシステムを用いて、該オペレーティングシステムを実行することが可能であるドライバを起動する手段と
を含む、システム。
A system for streaming an operating system from a server on a network to one or more client devices,
The system
Means for identifying a first server having an address of a virtual boot drive resident on the network by a pre-runtime boot environment service running on the one or more client devices;
Means for detecting the virtual boot drive having a hibernation file having operating system data by the pre-runtime boot environment service;
Means for establishing a virtual drive connection between the one or more client devices and the virtual boot drive using pre-runtime boot code;
Means for receiving a requested master boot record from the virtual boot drive;
Means for executing the master boot record on the one or more client devices, the master boot record issuing a request for an operating system loader to the virtual boot drive;
Means for receiving the operating system loader from the virtual boot drive;
Means for loading the hibernation file downloaded from the virtual boot drive by the operating system loader in response to the request issued by a master boot record code;
Means for recovering an operating system on the one or more client devices via the loaded hibernation file;
Using the operating system to launch a driver capable of running the operating system.
前記ネットワーク上でブートサーバを見つけ出す手段をさらに含み、該ブートサーバは、前記仮想ブートドライブに関連付けられている、請求項7に記載のシステム。   The system of claim 7, further comprising means for locating a boot server on the network, the boot server being associated with the virtual boot drive. 要求されたデータセクターを受信する手段をさらに含み、各データセクターは、前記仮想ブートドライブによって前記1つ以上のクライアント装置に送信される、請求項7に記載のシステム。   The system of claim 7, further comprising means for receiving a requested data sector, wherein each data sector is transmitted to the one or more client devices by the virtual boot drive. 前記ドライバを起動する手段は、格納装置ドライバおよびネットワークフィルタドライバのそれぞれを起動する手段をさらに含む、請求項7に記載のシステム。   The system of claim 7, wherein the means for activating the driver further comprises means for activating each of a storage device driver and a network filter driver. 前記ネットワークフィルタドライバによって、前記要求されたデータセクターの一部を格納装置ドライバにリレーする手段と、
前記オペレーティングシステムによって、該要求されたデータセクターの一部を読み出すことにより、前記ネットワークフィルタドライバを初期化する手段と
をさらに含む、請求項10に記載のシステム。
Means for relaying a portion of the requested data sector to a storage device driver by the network filter driver;
11. The system of claim 10, further comprising: means for initializing the network filter driver by reading a portion of the requested data sector by the operating system.
前記オペレーティングシステムによって発行されたリード要求およびライト要求をキャッシュメモリに格納する手段と、
前記オペレーティングシステムによって、ネットワークインタフェースカードドライバウを初期化する手段と、
前記格納装置ドライバによって、該格納されているリード要求およびライト要求の各々をキャッシュメモリから取り出す手段であって、該リード要求およびライト要求を取り出すことは、該オペレーティングシステムを回復する、手段と
をさらに含む、請求項10に記載のシステム。
Means for storing in the cache memory read requests and write requests issued by the operating system;
Means for initializing a network interface card driver by the operating system;
Means for retrieving from the cache memory each read request and write request stored by the storage device driver, wherein retrieving the read request and write request further restores the operating system; The system of claim 10, comprising:
ネットワークを介してクライアントコンピュータを所定の状態にブートする方法であって、
該方法は、
クライアント実行型エミュレーションコードおよびクライアントディスクアクセス割り込みプロシージャによって、サーバ演算装置に関連付けられた仮想ハードディスクの第1の組のセクターに対する要求を発行することであって、該第1の組のセクターは、第1のブートファイルを含む、ことと、
該ネットワークを介して、該サーバ演算装置から第1のブートファイルを受信することと、
該第1のブートファイルのコンテントを実行することであって、
第2のクライアントディスクアクセス割り込みハンドラプロシージャをインストールすることであって、該第2のクライアントディスクアクセス割り込みハンドラプロシージャは、ハードディスクへのリード要求およびライト要求を傍受し、該リード要求を該サーバ演算装置に転送し、該ライト要求をキャッシュすることにより、該仮想ハードディスクの状態を保つように、該ライト要求が該仮想ハードディスクにおいて実行されることを防止する、ことと、
第2のブートファイルを含む第2の組のセクターに対する第2の要求を発行することと
を包含する、ことと、
該サーバ演算装置から、該第2のブートファイルを受信することであって、該第2のブートファイルは、O/Sブートファイルを含む、ことと、
該第2のブートファイルを実行することであって、
ハイバネーションイメージを含む第3の組のセクターに対する第3の要求を発行すること
を包含する、ことと、
該ハイバネーションイメージを受信することであって、該ハイバネーションイメージは、ローカルメモリのコンテントと、メモリ管理情報と、該クライアントコンピュータを該所定の状態に回復するために必要とされる他の状態情報とを含む、ことと、
該ハイバネーションイメージをクライアントメモリにロードすることと、
O/Sに関連付けられたドライバ、データ構造およびアプリケーションを初期化することにより、該クライアントコンピュータを該所定の状態に回復することと
を包含する、方法。
A method of booting a client computer to a predetermined state via a network,
The method
Issuing a request for a first set of sectors of a virtual hard disk associated with a server computing device by a client-executable emulation code and a client disk access interrupt procedure, wherein the first set of sectors is a first Including a boot file of
Receiving a first boot file from the server computing device via the network;
Executing the content of the first boot file, comprising:
Installing a second client disk access interrupt handler procedure, the second client disk access interrupt handler procedure intercepts a read request and a write request to the hard disk, and sends the read request to the server computing device; Transferring and caching the write request to prevent the write request from being executed on the virtual hard disk so as to maintain the state of the virtual hard disk;
Issuing a second request for a second set of sectors including a second boot file; and
Receiving the second boot file from the server computing device, wherein the second boot file includes an O / S boot file;
Executing the second boot file, comprising:
Issuing a third request for a third set of sectors containing a hibernation image;
Receiving the hibernation image, wherein the hibernation image includes local memory content, memory management information, and other state information required to restore the client computer to the predetermined state. Including,
Loading the hibernation image into client memory;
Recovering the client computer to the predetermined state by initializing drivers, data structures and applications associated with the O / S.
第2のクライアントディスクアクセス割り込みハンドラが、前記クライアントコンピュータにおいてローカル的に前記ライト要求をキャッシュする、請求項13に記載の方法。   The method of claim 13, wherein a second client disk access interrupt handler caches the write request locally at the client computer. 前記第2のクライアントディスクアクセス割り込みハンドラは、前記ネットワーク上の位置に前記ライト要求をキャッシュする、請求項13に記載の方法。   The method of claim 13, wherein the second client disk access interrupt handler caches the write request at a location on the network. 前記エミュレーションコードは、前記クライアントコンピュータに常駐するPXEコードを含む、請求項13に記載の方法。   The method of claim 13, wherein the emulation code comprises PXE code resident on the client computer. 前記ドライバを初期化することは、サーバエミュレーションを可能にするように、ネットワークフィルタドライバおよび格納装置ドライバを初期化することを包含する、請求項13に記載の方法。   The method of claim 13, wherein initializing the driver comprises initializing a network filter driver and a storage device driver to enable server emulation. 前記ハイバネーションイメージを受信することは、前記サーバを介して、該ハイバネーションイメージを受信することを包含する、請求項13に記載の方法。   The method of claim 13, wherein receiving the hibernation image comprises receiving the hibernation image via the server. 前記第2のブートファイルを受信することは、セクターベースで、該第2のブートファイルを受信することを包含する、請求項13に記載の方法。   The method of claim 13, wherein receiving the second boot file comprises receiving the second boot file on a sector basis. 前記クライアントコンピュータによって、前記第2のブートファイルのセクターのうちの1つの再送信を要求することをさらに包含する、請求項19に記載の方法。   20. The method of claim 19, further comprising requesting a retransmission of one of the sectors of the second boot file by the client computer. 前記ハイバネーションイメージを受信することは、セクターベースで、該ハイバネーションイメージを受信することを包含する、請求項13に記載の方法。   The method of claim 13, wherein receiving the hibernation image comprises receiving the hibernation image on a sector basis. 前記クライアントコンピュータによって、前記ハイバネーションイメージのセクターのうちの1つの再送信を要求することをさらに包含する、請求項21に記載の方法。   The method of claim 21, further comprising requesting retransmission by one of the sectors of the hibernation image by the client computer. 命令を有するコンピュータ読み取り可能な媒体であって、該命令が実行された場合、該コンピュータ読み取り可能な媒体は、ネットワークを介して、クライアントコンピュータを所定の状態にブートにさせ、
該コンピュータ読み取り可能な媒体は、
クライアント実行型エミュレーションコードおよびクライアントディスクアクセス割り込みプロシージャによって、サーバ演算装置に関連付けられた仮想ハードディスクの第1の組のセクターに対する要求を発行するための命令であって、該第1の組のセクターは、第1のブートファイルを含む、命令と、
該ネットワークを介して、該サーバ演算装置から第1のブートファイルを受信するための命令と、
該第1のブートファイルのコンテントを実行するための命令であって、
第2のクライアントディスクアクセス割り込みハンドラプロシージャをインストールするための命令であって、該第2のクライアントディスクアクセス割り込みハンドラプロシージャは、ハードディスクへのリード要求およびライト要求を傍受し、該リード要求を該サーバ演算装置に転送し、該ライト要求をキャッシュすることにより、該仮想ハードディスクの状態を保つように、該ライト要求が該仮想ハードディスクにおいて実行されることを防止する、命令と、
第2のブートファイルを含む第2の組のセクターに対する第2の要求を発行するための命令と
を含む、命令と
該サーバ演算装置から、該第2のブートファイルを受信するための命令であって、該第2のブートファイルは、O/Sブートファイルを含む、命令と、
該第2のブートファイルを実行するための命令であって、
ハイバネーションイメージを含む第3の組のセクターに対する第3の要求を発行するための命令
を含む、命令と、
該ハイバネーションイメージを受信するための命令であって、該ハイバネーションイメージは、ローカルメモリのコンテントと、メモリ管理情報と、該クライアントコンピュータを該所定の状態に回復するために必要とされる他の状態情報とを含む、命令と、
該ハイバネーションイメージをクライアントメモリにロードするための命令と、
O/Sに関連付けられたドライバ、データ構造およびアプリケーションを初期化することにより、該クライアントコンピュータを該所定の状態に回復するための命令と
を含む、コンピュータ読み取り可能な媒体。
A computer readable medium having instructions that, when executed, causes the client computer to boot to a predetermined state over a network;
The computer readable medium is:
Instructions for issuing a request for a first set of sectors of a virtual hard disk associated with a server computing device by a client executable emulation code and a client disk access interrupt procedure, the first set of sectors comprising: Instructions including a first boot file;
Instructions for receiving the first boot file from the server computing device via the network;
Instructions for executing the content of the first boot file comprising:
Instructions for installing a second client disk access interrupt handler procedure, the second client disk access interrupt handler procedure intercepting a read request and a write request to the hard disk, and processing the read request to the server operation An instruction that prevents the write request from being executed in the virtual hard disk so as to keep the state of the virtual hard disk by transferring to the device and caching the write request;
An instruction for issuing a second request for a second set of sectors including a second boot file, and an instruction for receiving the second boot file from the server computing device. The second boot file includes an instruction including an O / S boot file;
An instruction for executing the second boot file,
An instruction including an instruction to issue a third request for a third set of sectors including a hibernation image;
Instructions for receiving the hibernation image, the hibernation image comprising local memory content, memory management information, and other status information required to restore the client computer to the predetermined state Including instructions, and
Instructions for loading the hibernation image into the client memory;
A computer readable medium comprising: instructions for recovering the client computer to the predetermined state by initializing drivers, data structures and applications associated with the O / S.
第2のクライアントディスクアクセス割り込みハンドラが、前記クライアントコンピュータにおいてローカル的に前記ライト要求をキャッシュする、請求項23に記載のコンピュータ読み取り可能な媒体。   24. The computer readable medium of claim 23, wherein a second client disk access interrupt handler caches the write request locally at the client computer. 前記第2のクライアントディスクアクセス割り込みハンドラは、前記ネットワーク上の位置に前記ライト要求をキャッシュする、請求項23に記載のコンピュータ読み取り可能な媒体。   24. The computer-readable medium of claim 23, wherein the second client disk access interrupt handler caches the write request at a location on the network. 前記エミュレーションコードは、前記クライアントコンピュータに常駐するPXEコードを含む、請求項23に記載のコンピュータ読み取り可能な媒体。   24. The computer readable medium of claim 23, wherein the emulation code comprises PXE code resident on the client computer. 前記ドライバを初期化するための命令は、サーバエミュレーションを可能にするように、ネットワークフィルタドライバおよび格納装置ドライバを初期化するための命令を含む、請求項23に記載のコンピュータ読み取り可能な媒体。   The computer-readable medium of claim 23, wherein the instructions for initializing the driver include instructions for initializing a network filter driver and a storage device driver to allow server emulation. 前記ハイバネーションイメージを受信するための命令は、前記サーバを介して、該ハイバネーションイメージを受信するための命令を含む、請求項23に記載のコンピュータ読み取り可能な媒体。   24. The computer-readable medium of claim 23, wherein the instructions for receiving the hibernation image include instructions for receiving the hibernation image via the server. 前記第2のブートファイルを受信するための命令は、セクターベースで、該第2のブートファイルを受信するための命令を含む、請求項23に記載のコンピュータ読み取り可能な媒体。   24. The computer readable medium of claim 23, wherein the instructions for receiving the second boot file include instructions for receiving the second boot file on a sector basis. 前記クライアントコンピュータによって、前記第2のブートファイルのセクターのうちの1つの再送信を要求するための命令をさらに含む、請求項29に記載のコンピュータ読み取り可能な媒体。   30. The computer readable medium of claim 29, further comprising instructions for requesting retransmission by the client computer of one of the sectors of the second boot file. 前記ハイバネーションイメージを受信するための命令は、セクターベースで、該ハイバネーションイメージを受信するための命令を含む、請求項23に記載のコンピュータ読み取り可能な媒体。   The computer readable medium of claim 23, wherein the instructions for receiving the hibernation image include instructions for receiving the hibernation image on a sector basis. 前記クライアントコンピュータによって、前記ハイバネーションイメージのセクターのうちの1つの再送信を要求するための命令をさらに含む、請求項31に記載のコンピュータ読み取り可能な媒体。   32. The computer-readable medium of claim 31, further comprising instructions for requesting a retransmission by one of the sectors of the hibernation image by the client computer. ネットワークを介してクライアントコンピュータを所定の状態にブートするシステムであって、
該システムは、
クライアント実行型エミュレーションコードおよびクライアントディスクアクセス割り込みプロシージャによって、サーバ演算装置に関連付けられた仮想ハードディスクの第1の組のセクターに対する要求を発行する手段であって、該第1の組のセクターは、第1のブートファイルを含む、手段と、
該ネットワークを介して、該サーバ演算装置から第1のブートファイルを受信する手段と、
該第1のブートファイルのコンテントを実行する手段であって、
第2のクライアントディスクアクセス割り込みハンドラプロシージャをインストールする手段であって、該第2のクライアントディスクアクセス割り込みハンドラプロシージャは、ハードディスクへのリード要求およびライト要求を傍受し、該リード要求を該サーバ演算装置に転送し、該ライト要求をキャッシュすることにより、該仮想ハードディスクの状態を保つように、該ライト要求が該仮想ハードディスクにおいて実行されることを防止する、手段と、
第2のブートファイルを含む第2の組のセクターに対する第2の要求を発行する手段と
を含む、手段と
該サーバ演算装置から、該第2のブートファイルを受信する手段であって、該第2のブートファイルは、O/Sブートファイルを含む、手段と、
該第2のブートファイルを実行する手段であって、
ハイバネーションイメージを含む第3の組のセクターに対する第3の要求を発行する手段
を含む、手段と、
該ハイバネーションイメージを受信する手段であって、該ハイバネーションイメージは、ローカルメモリのコンテントと、メモリ管理情報と、該クライアントコンピュータを該所定の状態に回復するために必要とされる他の状態情報とを含む、手段と、
該ハイバネーションイメージをクライアントメモリにロードする手段と、
O/Sに関連付けられたドライバ、データ構造およびアプリケーションを初期化することにより、該クライアントコンピュータを該所定の状態に回復する手段と
を含む、システム。
A system for booting a client computer to a predetermined state via a network,
The system
Means for issuing a request for a first set of sectors of a virtual hard disk associated with a server computing device by means of a client-executable emulation code and a client disk access interrupt procedure, the first set of sectors comprising: Including a boot file of, and
Means for receiving a first boot file from the server computing device via the network;
Means for executing the content of the first boot file, comprising:
Means for installing a second client disk access interrupt handler procedure, wherein the second client disk access interrupt handler procedure intercepts a read request and a write request to a hard disk and sends the read request to the server computing device; Means for preventing the write request from being executed in the virtual hard disk so as to maintain the state of the virtual hard disk by transferring and caching the write request;
Means for issuing a second request for a second set of sectors containing a second boot file, and means for receiving the second boot file from the server computing unit, The boot file of 2 includes an O / S boot file;
Means for executing the second boot file, comprising:
Means for issuing a third request for a third set of sectors including a hibernation image; and
Means for receiving the hibernation image, the hibernation image comprising local memory content, memory management information, and other state information required to restore the client computer to the predetermined state; Including, means,
Means for loading the hibernation image into the client memory;
Recovering the client computer to the predetermined state by initializing drivers, data structures and applications associated with the O / S.
第2のクライアントディスクアクセス割り込みハンドラが、前記クライアントコンピュータにおいてローカル的に前記ライト要求をキャッシュする、請求項33に記載のシステム。   34. The system of claim 33, wherein a second client disk access interrupt handler caches the write request locally at the client computer. 前記第2のクライアントディスクアクセス割り込みハンドラは、前記ネットワーク上の位置に前記ライト要求をキャッシュする、請求項33に記載のシステム。   34. The system of claim 33, wherein the second client disk access interrupt handler caches the write request at a location on the network. 前記エミュレーションコードは、前記クライアントコンピュータに常駐するPXEコードを含む、請求項33に記載のシステム。   34. The system of claim 33, wherein the emulation code includes PXE code resident on the client computer. 前記ドライバを初期化する手段は、サーバエミュレーションを可能にするように、ネットワークフィルタドライバおよび格納装置ドライバを初期化する手段を含む、請求項33に記載のシステム。   34. The system of claim 33, wherein the means for initializing the driver includes means for initializing a network filter driver and a storage device driver to enable server emulation. 前記ハイバネーションイメージを受信する手段は、前記サーバを介して、該ハイバネーションイメージを受信する手段を含む、請求項33に記載のシステム。   34. The system of claim 33, wherein the means for receiving the hibernation image includes means for receiving the hibernation image via the server. 前記第2のブートファイルを受信する手段は、セクターベースで、該第2のブートファイルを受信する手段を含む、請求項33に記載のシステム。   34. The system of claim 33, wherein the means for receiving the second boot file includes means for receiving the second boot file on a sector basis. 前記クライアントコンピュータによって、前記第2のブートファイルのセクターのうちの1つの再送信を要求する手段をさらに含む、請求項39に記載のシステム。   40. The system of claim 39, further comprising means for requesting a retransmission of one of the sectors of the second boot file by the client computer. 前記ハイバネーションイメージを受信する手段は、セクターベースで、該ハイバネーションイメージを受信する手段を含む、請求項33に記載のシステム。   34. The system of claim 33, wherein the means for receiving the hibernation image includes means for receiving the hibernation image on a sector basis. 前記クライアントコンピュータによって、前記ハイバネーションイメージのセクターのうちの1つの再送信を要求する手段をさらに含む、請求項41に記載のシステム。   42. The system of claim 41, further comprising means for requesting a retransmission by one of the sectors of the hibernation image by the client computer.
JP2008031140A 2008-02-12 2008-02-12 System and method for network booting of operating system of client computer using hibernation Pending JP2008198210A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008031140A JP2008198210A (en) 2008-02-12 2008-02-12 System and method for network booting of operating system of client computer using hibernation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008031140A JP2008198210A (en) 2008-02-12 2008-02-12 System and method for network booting of operating system of client computer using hibernation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003586784A Division JP4199678B2 (en) 2002-04-18 2002-04-18 System and method for network booting of client computer operating system using hibernation

Publications (1)

Publication Number Publication Date
JP2008198210A true JP2008198210A (en) 2008-08-28

Family

ID=39757027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008031140A Pending JP2008198210A (en) 2008-02-12 2008-02-12 System and method for network booting of operating system of client computer using hibernation

Country Status (1)

Country Link
JP (1) JP2008198210A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158475B2 (en) 2009-05-22 2015-10-13 Samsung Electronics Co., Ltd. Memory apparatus and method therefor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250875A (en) * 1999-02-26 2000-09-14 Toshiba Corp Boot program distributor and computer readable storage medium stored with the program
JP2000259583A (en) * 1999-03-12 2000-09-22 Hitachi Ltd Computer system
JP2000330954A (en) * 1999-03-31 2000-11-30 Internatl Business Mach Corp <Ibm> Method and device for managing client computer in distributed data processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250875A (en) * 1999-02-26 2000-09-14 Toshiba Corp Boot program distributor and computer readable storage medium stored with the program
JP2000259583A (en) * 1999-03-12 2000-09-22 Hitachi Ltd Computer system
JP2000330954A (en) * 1999-03-31 2000-11-30 Internatl Business Mach Corp <Ibm> Method and device for managing client computer in distributed data processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158475B2 (en) 2009-05-22 2015-10-13 Samsung Electronics Co., Ltd. Memory apparatus and method therefor

Similar Documents

Publication Publication Date Title
US7334122B2 (en) System for and method of network booting of an operating system to a client computer using hibernation
US7321936B2 (en) System for and method of streaming data to a computer in a network
US8352624B2 (en) System for and method of streaming data to a computer in a network
US11237811B2 (en) Software installation onto a client using existing resources
US7246200B1 (en) Provisioning and snapshotting using copy on read/write and transient virtual machine technology
TWI428830B (en) Converting machines to virtual machines
US9229732B2 (en) System and method for on-demand delivery of operating system and/or applications
US20110264776A1 (en) Deploying an operating system
JP2004178596A (en) Improvement of reliability using nonvolatile memory cache in discless network-bootable computer
JP4199678B2 (en) System and method for network booting of client computer operating system using hibernation
US10341180B2 (en) Disk distribution system
US20040193863A1 (en) System and method for saving and/or restoring system state information over a network
JP4199677B2 (en) System and method for streaming data to a computer on a network
JP2009230433A (en) Network booting device, program and method
US20040243385A1 (en) Emulation of hardware devices in a pre-boot environment
JP2008198210A (en) System and method for network booting of operating system of client computer using hibernation
US11709669B2 (en) Operating system update via sideband processor
JP2008165823A (en) System and method for streaming data to computer on network
US20030105851A1 (en) Remote management unit with interface for remote data exchange
NZ536066A (en) System for and method of streaming data to a computer in a network
US11409681B2 (en) Computer system communication via sideband processor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110908

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110913

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120329

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120911