(57)【特許請求の範囲】
【請求項１】
遠隔クライアントにカスタマイズされたオペレーティングシステムイメージをサポートサーバが送信する方法を実施するコンピュータであるサポートサーバにより実行可能なインストラクションを記録した一つまたは複数のコンピュータ読み取り可能な記録媒体において、
オペレーティングシステムのコンピュータコードのコピーであるオペレーティングシステムのイメージを生成する要求を前記遠隔クライアントからサポートサーバが受信するステップであって、前記遠隔クライアントからの要求は、前記遠隔クライアントのハードウェアプロファイルデータであって、コンピュータシステムに含まれる物理コンポーネントの特性を示すハードウェアプロファイルデータを含む、要求を受信するステップと、
前記サポートサーバのビルダーエンジンが、オペレーティングシステムイメージストアに、前記ハードウェアプロファイルデータに一致する既に構築されたオペレーティングシステムイメージがあるか否かを判定するステップと、
前記ハードウェアプロファイルデータに一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにある場合、前記ビルダーエンジンが前記既に構築されたオペレーティングシステムイメージを前記オペレーティングシステムイメージストアから取り出すステップと、
前記ハードウェアプロファイルデータに一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにない場合、前記ハードウェアプロファイルデータに部分的に一致するオペレーティングシステムイメージが既に構築されているかを前記ビルダーエンジンが判定するステップと、
前記ハードウェアプロファイルデータに部分的に一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにある場合、前記ビルダーエンジンが前記部分的に一致するオペレーティングシステムイメージを修正して前記ハードウェアプロファイルデータに一致するカスタマイズされたオペレーティングシステムイメージを構築するステップと、
前記ハードウェアプロファイルデータに部分的に一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにない場合、オペレーティングシステムに含まれるソフトウェアコンポーネントであるオペレーティングシステム要素を格納するデータストアであるプロダクトストアから、カスタマイズされたオペレーティングシステムイメージを前記ビルダーエンジンが構築するステップであって、カスタマイズされたオペレーティングシステムイメージは、前記ハードウェアプロファイルに基づいてＩＮＦセット及びプロダクト設定から生成されるＩＮＦファイルを用いて構築される、ステップと、
前記サポートサーバが前記遠隔クライアントに前記カスタマイズされたオペレーティングシステムイメージを送信するステップと
を実行するためのインストラクションを記録したコンピュータ読み取り可能な記録媒体であり、前記ビルダーエンジンが前記部分的に一致するオペレーティングシステムイメージを修正して前記ハードウェアプロファイルデータに一致するカスタマイズされたオペレーティングシステムイメージを構築することは、オペレーティングシステムイメージに部分的に一致していないハードウェアプロファイルに対応するオペレーティングシステム要素を、前記プロダクトストアから当該部分的に一致していないハードウェアプロファイルに基づいてＩＮＦセット及びプロダクト設定から生成されるＩＮＦファイルを用いて構築することを含む、コンピュータ読み取り可能な記録媒体。
【請求項２】
前記遠隔クライアントが、ローカルネットワークおよびインターネットの少なくとも１のネットワークに接続されていることを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項３】
前記少なくとも１つのプロダクトストアが、格納された前記要素のバージョンデータを格納することを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項４】
前記カスタマイズされたオペレーティングシステムイメージがオペレーティングシステムカーネルを含むことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項５】
前記カスタマイズされたオペレーティングシステムイメージが完全なオペレーティングシステムを含むことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項６】
遠隔クライアントに送信するためのカスタマイズされたオペレーティングシステムイメージをサポートサーバが生成する方法において、
オペレーティングシステムのコンピュータコードのコピーであるオペレーティングシステムイメージを生成する要求を前記サポートサーバが遠隔クライアントから受信するステップであって、前記遠隔クライアントからの要求は、前記遠隔クライアントのハードウェアプロファイルデータであって、コンピュータシステムに含まれる物理コンポーネントの特性を示すハードウェアプロファイルデータを含む、要求を受信するステップと、
前記ハードウェアプロファイルデータに一致するオペレーティングシステムイメージがオペレーティングシステムイメージストアに既に構築されているか否かを前記サポートサーバのビルダーエンジンが判定するステップと、
前記ハードウェアプロファイルデータに一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにある場合、前記ビルダーエンジンが前記既に構築されたオペレーティングシステムイメージを前記オペレーティングシステムイメージストアから取り出すステップと、
前記ハードウェアプロファイルデータに一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにない場合、前記ハードウェアプロファイルデータに部分的に一致するオペレーティングシステムイメージが既に構築されているかを前記ビルダーエンジンが判定するステップと、
前記ハードウェアプロファイルデータに部分的に一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにある場合、前記ビルダーエンジンが前記部分的に一致するオペレーティングシステムイメージを修正して前記ハードウェアプロファイルデータに一致するカスタマイズされたオペレーティングシステムイメージを構築するステップと、
前記ハードウェアプロファイルデータに部分的に一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにない場合、オペレーティングシステムに含まれるソフトウェアコンポーネントであるオペレーティングシステム要素を格納するコンピュータ読み取り可能な記憶媒体を含むデータストアであるプロダクトストアから、カスタマイズされたオペレーティングシステムイメージを前記ビルダーエンジンが構築するステップであって、カスタマイズされたオペレーティングシステムイメージは、前記ハードウェアプロファイルに基づいてＩＮＦセット及びプロダクト設定から生成されるＩＮＦファイルを用いて構築される、ステップと
前記カスタマイズされたオペレーティングシステムイメージを格納するステップと
を含み、
前記ビルダーエンジンが前記部分的に一致するオペレーティングシステムイメージを修正して前記ハードウェアプロファイルデータに一致するカスタマイズされたオペレーティングシステムイメージを構築するステップは、オペレーティングシステムイメージに部分的に一致していないハードウェアプロファイルに対応するオペレーティングシステム要素を、前記プロダクトストアから当該部分的に一致していないハードウェアプロファイルに基づいてＩＮＦセット及びプロダクト設定から生成されるＩＮＦファイルを用いて構築することを含む、
ことを特徴とする方法。
【請求項７】
前記オペレーティングシステムの前記カスタマイズされたイメージを前記ビルダーエンジンが前記遠隔クライアントに伝達するステップをさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記ハードウェアプロファイルデータに基づいて、様々なオペレーティングシステムのコピーを格納するオペレーティングシステムイメージストアから既に構築されたオペレーティングシステムイメージを前記ビルダーエンジンが選択的に取り出すステップをさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
遠隔クライアントに送信するためのオペレーティングシステムイメージを生成するためのシステムにおいて、
前記遠隔クライアントと通信し、オペレーティングシステムのコンピュータコードのコピーであるオペレーティングシステムのイメージを生成する要求を前記遠隔クライアントから受信する第１のインターフェース手段であって、前記遠隔クライアントからの要求は、前記遠隔クライアントのハードウェアプロファイルデータであって、コンピュータシステムに含まれる物理コンポーネントの特性を示すハードウェアプロファイルデータを含む、第１のインターフェース手段と、
オペレーティングシステムに含まれるソフトウェアコンポーネントであるオペレーティングシステム要素を格納する少なくとも１つのデータストアであるプロダクトストア手段と、
前記ハードウェアプロファイルデータに一致するオペレーティングシステムイメージがオペレーティングイメージストアに構築されていないかを判定し、及び、前記ハードウェアプロファイルデータに部分的に一致するオペレーティングシステムイメージが前記オペレーティングイメージストアに既に構築されているかを判定する判定手段と、
前記第１のインターフェース手段を介して前記遠隔クライアントと通信し、かつ前記少なくとも１つのプロダクトストア手段と通信するビルダーエンジン手段であって、
前記判定の結果、前記ハードウェアプロファイルデータに一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにあると判定された場合、前記既に構築されたオペレーティングシステムイメージを前記オペレーティングイメージストアから取り出し、
前記判定の結果、前記ハードウェアプロファイルデータに部分的に一致するオペレーティングシステムイメージがまだ構築されていないと判定された場合、前記遠隔クライアントからの要求に基づいてオペレーティングシステム要素を格納するオペレーティングシステムストアからオペレーティングシステムのカスタマイズされたイメージを構築し、ここで、カスタマイズされたオペレーティングシステムイメージは、前記ハードウェアプロファイルに基づいてＩＮＦセット及びプロダクト設定から生成されるＩＮＦファイルを用いて構築され、
前記判定手段が前記ハードウェアプロファイルデータに部分的に一致するオペレーティングシステムイメージがすでに構築されていると判定された場合、前記部分的に一致するオペレーティングシステムイメージを修正して前記ハードウェアプロファイルデータに一致するカスタマイズされたオペレーティングシステムイメージを構築し、ここで、前記部分的に一致するオペレーティングシステムイメージを修正して前記ハードウェアプロファイルデータに一致するカスタマイズされたオペレーティングシステムイメージを構築することは、オペレーティングシステムイメージに部分的に一致していないハードウェアプロファイルに対応するオペレーティングシステム要素を、前記プロダクトストア手段から当該部分的に一致していないハードウェアプロファイルに基づいてＩＮＦセット及びプロダクト設定から生成されるＩＮＦファイルを用いて構築することを含む、ビルダーエンジン手段と、
前記遠隔クライアントにオペレーティングシステムの前記カスタマイズされたイメージを送信する送信手段と
を含むことを特徴とするシステム。
【請求項１０】
オペレーティングシステムイメージストア手段をさらに含み、前記ビルダーエンジン手段が、前記ハードウェアプロファイルデータに基づいて前記オペレーティングシステムイメージストア手段から既に構築されたオペレーティングシステムイメージを選択的に取り出すことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記遠隔クライアントがディスクレスクライアントを含むことを特徴とする請求項９に記載のシステム。
【請求項１２】
前記遠隔クライアントが故障状態のクライアントを含むことを特徴とする請求項９に記載のシステム。
【請求項１３】
前記遠隔クライアントが、パーソナルコンピュータと無線ネットワーク使用可能デバイスの少なくとも１つを含むことを特徴とする請求項９に記載のシステム。
【請求項１４】
遠隔クライアントに送信するためのカスタマイズされたオペレーティングシステムイメージをコンピュータであるサポートサーバが生成する方法をサポートサーバにより実行させるためのインストラクションを記録した一又は複数のコンピュータ読み取り可能な記録媒体であって、前記方法が、
オペレーティングシステムのコンピュータコードのコピーであるオペレーティングシステムイメージを生成する要求を前記サポートサーバが前記遠隔クライアントから受信するステップであって、前記遠隔クライアントからの要求は、前記遠隔クライアントのハードウェアプロファイルデータであって、コンピュータシステムに含まれる物理コンポーネントの特性を示すハードウェアプロファイルデータを含む、要求を受信するステップと、
前記ハードウェアプロファイルデータに一致するオペレーティングシステムイメージがオペレーティングシステムストアに構築されているか否かを前記サポートサーバのビルダーエンジンが判定するステップと、
前記ハードウェアプロファイルデータに一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにある場合、前記ビルダーエンジンが前記既に構築されたオペレーティングシステムイメージを前記オペレーティングシステムイメージストアから取り出すステップと、
前記ハードウェアプロファイルデータに一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにない場合、前記ハードウェアプロファイルデータに部分的に一致するオペレーティングシステムイメージが既に構築されているかを前記ビルダーエンジンが判定するステップと、
前記ハードウェアプロファイルデータに部分的に一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにある場合、前記ビルダーエンジンが前記部分的に一致するオペレーティングシステムイメージを修正して前記ハードウェアプロファイルデータに一致するカスタマイズされたオペレーティングシステムイメージを構築するステップと、
前記ハードウェアプロファイルデータに部分的に一致する既に構築されたオペレーティングシステムイメージが前記オペレーティングシステムイメージストアにない場合、オペレーティングシステムに含まれるソフトウェアコンポーネントであるオペレーティングシステム要素を格納するデータストアであるプロダクトストアから、カスタマイズされたオペレーティングシステムイメージを前記ビルダーエンジンが構築するステップであって、カスタマイズされたオペレーティングシステムイメージは、前記ハードウェアプロファイルに基づいてＩＮＦセット及びプロダクト設定から生成されるＩＮＦファイルを用いて構築される、ステップと、
前記カスタマイズされたオペレーティングシステムイメージを前記ハードウェアプロファイルデータと関連付けて格納するステップと
を含み、
前記ビルダーエンジンが前記部分的に一致するオペレーティングシステムイメージを修正して前記ハードウェアプロファイルデータに一致するカスタマイズされたオペレーティングシステムイメージを構築することは、オペレーティングシステムイメージに部分的に一致していないハードウェアプロファイルに対応するオペレーティングシステム要素を、前記プロダクトストアから当該部分的に一致していないハードウェアプロファイルに基づいてＩＮＦセット及びプロダクト設定から生成されるＩＮＦファイルを用いて構築することを含むことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピューティングの分野に関し、より詳細には、ディスクレスコンピュータまたは他のコンピュータなどにカスタマイズされたオペレーティングシステムをインストールするために遠隔のクライアントデバイスに問い合わせる技術に関する。
【０００２】
【従来の技術】
コンピュータネットワークの規模と複雑さが増大してくると、これに付随したネットワークインストールおよびネットワークメンテナンスの問題が生じてきた。例えば企業は、データベース、電子メールまたは他のサービスをサポートするために、数十から数千以上ものパーソナルコンピュータまたは他のクライアントマシンの大規模な集合体を配置することができる。これらのマシンの一部は、ハードドライブまたは他の大容量記憶媒体のないシンネットワーククライアントである場合がある。また別の一部は、ハードドライブまたは他の記憶機構は含んでいるものの、不規則なハードウェアの故障が頻発するマシンである場合がある。これらの場合および他の場合では、システム管理者などがマシンにＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（商標）ＮＴ（商標）、Ｗｉｎｄｏｗｓ（商標）２０００、Ｗｉｎｄｏｗｓ（商標）ＸＰ（商標）または他のオペレーティングシステムなどのオペレーティングシステムをブートさせることが困難になる場合がある。
【０００３】
【発明が解決しようとする課題】
ディスクレスマシンまたは故障しているマシンにオペレーティングシステムをインストールするよう設計された遠隔インストーラが市販されている。通常、これらのプラットフォームは、ファイルアクセスおよび他の動作を開始させるためにＭｉｃｒｏｓｏｆｔＤＯＳ（商標）などの比較的基本的な操作コードの小さなカーネルをターゲットマシンに送信する。しかしこのようなプラットフォームは、送信されたオペレーティングシステムを相応にカスタマイズするために、上記の各種Ｍｉｃｒｏｓｏｆｔ  ＷｉｎｄｏｗｓＴＭなどの比較的統合されたオペレーティングシステムをインストールすることも、ターゲットマシン上で様々なタイプのインストールされたハードウェアを検出することもできない。問題はこれ以外にもある。
【０００４】
【課題を解決するための手段】
当技術分野のこれらの問題および他の問題を克服する本発明は、ある点ではネットワークを介するなどしてオペレーティングシステムの実行可能イメージを送信するために遠隔クライアントマシンへの問い合わせおよび応答を実行するためにビルダーエンジンを装備したサポートサーバを伴って、ある点では遠隔デバイス上でオペレーティングシステムをカスタムインストールするためのシステムおよび方法に関する。実施形態では、ビルダーエンジンは、ハードドライブまたは他の記憶機構の有無または誤作動、使用可能な電子メモリおよび他の資源などを示すマシン状態イメージを遠隔クライアントから受信することができる。次いでビルダーエンジンは、ネットワークを介してクライアントに送信するためにオペレーティングシステムの適切なイメージを組み立てることができる。したがって、この点で本発明はクライアントデバイスのハードウェアに依存しないブートを起こすことができるが、これは実施形態ではオペレーティングシステムに対して別個のセットアップ段階を必要とせずに遂行することができる。実施形態では、遠隔クライアントは、オペレーティングシステムイメージの制御下で、電子メモリなどにローカルファイルシステムを引き続き生成することができる。この必須の要素および他の必須の要素がインストールされて動作すると、クライアントはアプリケーションソフトウェアの実行または他のタスクの実施などの動作を行うことができる。実施形態では、遠隔クライアントでオペレーティングシステムイメージが起動されると、クライアントは、初期イメージと交換するようにオペレーティングシステムの完全なイメージをインストールするため、または他のタスクを実行するなどのために他のネットワーク資源にリンクすることなどができる。
【０００５】
【発明の実施の形態】
図１は、遠隔装置にオペレーティングシステムをインストールするためのシステムおよび方法の一実施形態が動作することのできるアーキテクチャを示す図である。図示するようにこの実施形態では、クライアント１０２は、クライアント１０２を初期設定または操作するようカスタマイズされたオペレーティングシステムカーネル１３６の生成および送信を準備するためにマシン固有情報を交換するように、通信リンク１１０を介してサポートサーバ１１２と通信することができる。オペレーティングシステムカーネル１３６の送達および初期設定は、実施形態では別個のセットアップ段階を必要とせずに実行することができる。
【０００６】
実施形態では、クライアント１０２は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（商標）９５、９８、Ｍｉｌｌｅｎｉｕｍ（商標）、ＮＴ（商標）、２０００またはＸＰ（商標）、Ｗｉｎｄｏｗｓ（商標）ＣＥ（商標）、ＭａｃＯＳ（商標）、ＰａｌｍＯＳ（商標）、Ｕｎｉｘ（登録商標）、Ｌｉｎｕｘ、Ｓｏｌａｒｉｓ（商標）、ＯＳ／２（商標）、ＢｅＯＳ（商標）、ＭａｃＯＳ（商標）、ＶＡＸＶＭＳまたは他のオペレーティングシステムまたはプラットフォームを実行するパーソナルコンピュータなどであるか、またはこれを含むことができる。クライアント１０２は、Ｉｎｔｅｌ  ｘ８６ベースのデバイスまたはＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ  ｘ８６互換機、Ｍｏｔｏｒｏｌａ  ６８ＫまたはＰｏｗｅｒＰＣ（商標）デバイス、ＭＩＰＳ、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ  Ｐｒｅｃｉｓｉｏｎ（商標）、またはＤｉｇｉｔａｌ  Ｅｑｕｉｐｍｅｎｔ社製のＡｌｐｈａ（商標）ＲＩＳＣプロセッサなどのマイクロプロセッサ、マイクロコントローラ、またはプログラム制御下で動作するこの他の汎用または専用デバイスなどを含むことができる。クライアント１０２はさらに、例えばフラッシュ可能ＥＰＲＯＭ（電子的にプログラム可能な読み取り専用メモリ）またはこれ以外の電子デバイスまたは他の媒体上に例えば記憶することのできる基本入出力システム（ＢＩＯＳ）１０４を含むことができる。当業者には理解されるだろうが、クライアント１０２は、ランダムアクセスメモリ（ＲＡＭ）またはＥＰＲＯＭ（電子的にプログラム可能な読み取り専用メモリ）などの電子メモリ１０６および電子バスを介して接続された他の関連付けられた構成要素も同様に含むことができる。クライアント１０２には、内蔵型または接続可能な陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、電界発光ディスプレイ、発光ダイオード（ＬＥＤ）、または例えばグラフィカルユーザインターフェース（ＧＵＩ）またはコマンドラインインターフェース（ＣＬＩ）を使用してファイル、データまたは他の資源を表示し、操作するための他の表示画面、パネルまたはデバイスを装備することができる。クライアント１０２はまた、ＷｅｂＴＶ（商標）ユニットなどのネットワーク使用可能機器、無線使用可能なＰａｌｍ（商標）Ｐｉｌｏｔまたは類似のユニット、セットトップボックス、Ｍｉｃｒｏｓｆｔ  Ｘｂｏｘ（商標）、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ（商標）、Ｓｅｇａ  Ｄｒｅａｍｃａｓｔ（商標）などのネットワーク接続可能なゲームプレイングコンソール、あるいはブラウザを装備しているかまたは他のネットワーク使用可能な携帯電話、または他のＴＣＰ／ＩＰクライアントまたは他のデバイスであるか、またはこれらを含むことができる。
【０００７】
実施形態では、クライアント１０２は、例えばディスクレスマシン、すなわちハードドライブまたは他の比較的持続的な記憶媒体を装備していないコンピュータまたは他のクライアントであってよい。この構成では、クライアント１０２には、機能オペレーティングシステムの記憶されたコピーまたはオペレーティングシステム用インストーラの記憶されたコピーがない場合があるので、クライアント１０２は、生産的使用の前に機能オペレーティングシステムまたはカーネルで初期設定しておく必要がある。別の実施形態では、クライアント１０２は、ハードドライブ、ＣＤＲＯＭまたは書き換え可能ＣＤＲＯＭ、または他の磁気媒体、光媒体またはその他の媒体などの記憶機構を含むことができるが、この媒体は、クライアント１０２にオペレーティングシステムをブートさせない、または機能オペレーティングシステムの制御下で動作を続行させないほどまでに動作不能であるかまたは誤作動している可能性がある。すべての場合において、クライアント１０２は、そのマシンを初期設定して動作させるために、選択されたアプリケーションプログラミングインターフェース（ＡＰＩ）、ドライバ、情報（ＩＮＦ）ファイルおよびクライアント１０２のインストールしたハードウェアに合わせた他の資源を含んでいるオペレーティングシステムカーネル１３６を受信するためにサポートサーバ１１２と通信することができる。
【０００８】
クライアント１０２は、例えば電源が投入され、ＢＩＯＳ１０４を検出し、ロードすることができる。実施形態では、ＢＩＯＳ１０４は、オペレーティングシステムをブートする前に、またはブートされたオペレーティングシステムを必要とせずに、通信リンク１１０に対してクライアント１０２を自動的に識別することのできるＩｎｔｅｌ社製のＰｒｅ−Ｂｏｏｔ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＰＸＥＴＭ）プロトコルなどのネットワーク使用可能なコードを含むことができる。これによってクライアント１０２は、ロードされたオペレーティングシステムを必要とせずに通信リンク１１０を介してサポートサーバ１１２と通信することができる。クライアント１０２は、例えば実施形態では、サポートサーバ１１２に動的ホスト構成プロトコル（ＤＨＣＰ）でデータを送信することができる。ＢＩＯＳ１０４は、媒体アクセス制御（ＭＡＣ）または他のアドレスまたはデータなどのネットワークアドレスを通信リンク１１０に自動的に伝達することなどによって通信リンク１１０に対してクライアント１０２を識別することができる。
【０００９】
ＢＩＯＳ１０４または関連付けられたコードは同様に、通信リンク１１０を介してオペレーティングシステムカーネル１３６を生成しダウンロードするための処理を開始するように要求を送信することができる。実施形態では、クライアント１０２は、既にＢＩＯＳ１０４によってブートされているがハードドライブまたは他の媒体からオペレーティングシステムまたは他の資源をロードすることはできない場合、あるいは他のハードウェアまたはソフトウェアの故障に遭遇している場合がある。このような場合、クライアント１０２は、修理、保守または他の目的でオペレーティングシステムカーネル１３６の生成を要求するために、故障、ネットワークユーティリティまたは他のモジュールをトラップするオペレーティングシステムまたはインターフェースによってネットワークアドレスまたは他のデータを通信リンク１１０に伝達することができる。
【００１０】
ＢＩＯＳ１０４から生成されているといないとに関わらず、クライアント１０２は、必要に応じてオペレーティングシステムカーネル１３６の生成およびダウンロードを開始するために要求パケット１３２を送信することができる。要求パケット１３２の典型的なデータ構造を図３に示す。図に示すように、要求パケット１３２は、クライアント１０２のハードウェア状態とソフトウェア状態を表すか、またはこれに関連するデータ要素および他の情報を含むことができる。例えば要求パケット１３２は、例えばプロセッサ１０８がＩｎｔｅｌ社製のｘ８６ＴＭベースのデバイスであることを示すクライアント１０２のハードウェアアーキテクチャまたは他の部分に関する情報を含むことができる。要求パケット１３２は、ネットワークカード、ビデオまたはサウンドカードなどのアドインデバイス、または周辺機器相互接続（ＰＣＩ）バスまたはプラグアンドプレイ（ＰｎＰ）列挙法などによって検出される他の周辺装置の有無に関する情報を含むことができる。
【００１１】
要求パケット１３２は、オペレーティングシステムカーネル１３６の構成を変更するための１つまたは複数のフラグならびにＭＡＣまたは他のアドレス指定情報用の専用値をさらに含むことができる。他のデータフィールドおよび構造も可能である。
【００１２】
要求パケット１３２は、通信リンク１１０を介してサポートサーバ１１２に送信することができる。通信リンク１１０は、例えばインターネット、ワールドワイドウェブ、イントラネット、ＰＡＮ（パーソナルエリアネットワーク）、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（ワイドエリアネットワーク）、またはＭＡＮ（都市圏ネットワーク）、ストレージエリアネットワーク（ＳＡＮ）、フレームリレー接続、高度インテリジェントネットワーク（ＡＩＮ）接続、同期式光ネットワーク（ＳＯＮＥＴ）接続、デジタルＴ１、Ｔ３、ＥｌまたはＥ３回線、デジタルデータサービス（ＤＤＳ）接続、ＤＳＬ（デジタル加入者回線）接続、Ｅｔｈｅｒｎｅｔ（登録商標）接続、ＩＳＤＮ（統合デジタル通信サービス）回線、Ｖ．９２、Ｖ９０、Ｖ．３４またはＶ．３４ｂｉｓアナログモデム接続などのダイヤルアップポート、ケーブルモデム、ＡＴＭ（非同期転送モード）接続、またはＦＤＤＩ（ファイバ分散データインターフェース）またはＣＤＤＩ（銅分散データインターフェース）接続のいずれか１つまたは複数であってよく、またはこれらのいずれか１つまたは複数を含んでよく、またはこれらのいずれか１つまたは複数にインターフェースしてよい。通信リンク１１０はさらに、ＷＡＰ（ワイヤレスアプリケーションプロトコル）リンク、ＧＰＲＳ（汎用パケット無線サービス）リンク、ＧＳＭ（移動体通信用グローバルシステム）リンク、セルラー式電話の通信路などのＣＤＭＡ（符号分割多元接続）またはＴＤＭＡ（時分割多元接続）リンク、ＧＰＳ（全地球測位システム）リンク、ＣＤＰＤ（セルラーデジタルパケットデータ）、ＲＩＭ（リサーチインモーション社）製の双方向ページングタイプのデバイス、ＢｌｕｅｔｏｏｔｈまたはＢｌｕｅＴｅｅｔｈまたはＷｈｉｔｅＴｏｏｔｈ無線リンク、または８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇなどのＩＥＥＥ８０２．１１（Ｗｉ−Ｆｉ）ベースの無線周波数リンクまたは他のプロトコルのいずれか１つまたは複数であってよく、またはこれらのいずれか１つまたは複数を含んでよく、またはこれらのいずれか１つまたは複数にインターフェースしてよい。通信リンク１１０はさらにまた、ＲＳ−２３２シリアル接続、ＩＥＥＥ−１３９４（Ｆｉｒｅｗｉｒｅ）接続、ファイバチャネル接続、ＩＲＤＡ（赤外線）ポート、ＳＣＳＩ（小型コンピュータシステムインターフェース）接続、ＵＳＢ（ユニバーサルシリアルバス）接続または他の有線あるいは無線の、デジタルあるいはアナログのインターフェースまたは接続のいずれか１つまたは複数であってもよく、またはこれらのいずれか１つまたは複数を含んでもよく、またはこれらのいずれか１つまたは複数にインターフェースしてもよい。
【００１３】
サポートサーバ１１２は、クライアント１０２に送信するためにオペレーティングシステムカーネル１３６を処理するための要求パケット１３２を受信するかまたは他の動作をとることができる。実施形態では、サポートサーバ１１２は、データベース、ネットワークインターフェースおよび要求パケット１３２を評価して適切なオペレーティングシステムカーネル１３６によって応答するための他の資源を含むことができる。サポートサーバ１１２は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（商標）ＮＴ（商標）、Ｗｉｎｄｏｗｓ（商標）２０００、ＭａｃＯＳ（商標）、Ｕｎｉｘ（登録商標）、Ｌｉｎｕｘ、Ｘｅｎｉｘ、ＩＢＭ  ＡＩＸ（商標）、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ  ＵＸ（商標）、Ｎｏｖｅｌｌ  Ｎｅｔｗａｒｅ（商標）、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ  Ｓｏｌａｒｉｓ（商標）、ＯＳ／２（商標）、ＢｅＯＳ（商標）、Ｍａｃｈ、Ａｐａｃｈｅ、ＯｐｅｎＳｔｅｐ（商標）または他のオペレーティングシステムあるいはプラットフォームなどを実行するワークステーションであってよく、またはこれを含んでもよい。図に示すように、サポートサーバ１１２は、クライアント１０２または他のノードに対してＴＣＰ／ＩＰまたは他のデータパケットを送受信するために通信リンク１１０と通信するディスパッチャモジュール１１４を含むことができる。ディスパッチャモジュール１１４は同様に、オペレーティングシステムカーネル１３６の構造を管理することのできるビルダーエンジン１１６と通信して、他のタスクを実行することができる。ビルダーエンジン１１６は、オペレーティングシステムカーネル１３６用の適切な構成要素を抽出するために１つまたは複数のソフトウェアモジュールあるいは他のルーチンまたは資源から構成され、他のタスクを実行することができる。
【００１４】
図に示すように、ビルダーエンジン１１６は、イメージストア１２８およびプロダクトストア１１８を含めて１つまたは複数のストレージリソースと通信することができる。プロダクトストア１１８は、プロダクト識別子、ソフトウェア構成要素および所与の要求されたプロダクトのインスタンスを構築するために必要となる他の資源を含むことができる。例えば、実施形態では、要求パケット１３２は、クライアント１０２の電子メモリ１０６にインストールするためにＭｉｃｒｏｓｏｆｔ  ２０００ＴＭオペレーティングシステムのインスタンスを構築するための要求を含むことができる。この場合、ビルダーエンジン１１６は、レジストリファイルおよび構造、ＡＰＩ、ドライバ、ＩＮＦ（情報）ファイル、他のファイルまたはディレクトリ構造、ユーティリティ、プログラムシェル、ユーザインターフェース、グラフィカルエンジンまたはレンダリングエンジン、あるいは他のシステム資源またはサービスなどの、そのプロダクトに基づいてオペレーティングシステムカーネル１３６用の構成要素を選択することができる。
【００１５】
プロダクトプロセッサ１２０は同様に、要求パケット１３２への応答のための適切な構成要素をプロダクトストア１１８に格納するためにプロダクトストア１１８と連係することができる。プロダクトプロセッサ１２０は、クライアント１０２のマシン構成または他の要因によって、ドライバまたは他の資源を適合または同調させるためにデータまたはルーチンを含むことができるＩＮＦセット１２６およびプロダクト設定１２４と通信することによって適切なＩＮＦファイルを生成するためにＩＮＦパーサー１２２を含むことなどができる。
【００１６】
プロダクト設定１２４は、図３に示す例のようにデータ構造および他の情報を含むことができる。図３に示すように、プロダクト設定１２４は、オペレーティングシステムレジストリまたは他の資源の各種キーまたは他のセクションに挿入されるべき設定を含むことができる。実施形態では、クライアント、ワークステーション、クラスタ、エンタープライズ、あるいはＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ２０００ＴＭまたは他のオペレーティングシステムなどのオペレーティングシステムの他のバージョンまたはクラスなどの個々のプロダクトは、ＧＵＩＤフィールドまたは他のデータによって識別することができる。実施形態では、このフィールドは「ＨＫＬＭ＼Ｓｙｓｔｅｍ＼ＣｕｒｒｅｎｔＣｏｎｔｒｏｌＳｅｔ＼Ｓｅｒｖｉｃｅｓ＼Ｂｉｎｌｂｉｇ＼Ｐｒｏｄｕｃｔｓ」などのレジストリキーまたは他のキーの下に記憶することができる。図３に示すように、ＧＵＩＤまたは他のフィールドによって識別される所与のプロダクト用の設定は、レジストリまたは他のシステムストアのフィールドの下に列挙される設定を含むことができる。プロダクト設定１２４は、例えばｘ８６または他のプロセッサまたはチップセットなどのアーキテクチャ指定子を含むことができる。プロダクト設定１２４は同様に、ｘ８６マシン用の「ｓｔａｒｔｂｍ．ｃｏｍ」あるいは他のモジュールまたはルーチンなどを実行するディフォルトスタートアップモジュール用のインディケータを含むことができる。
【００１７】
プロダクト設定１２４は、ディレクトリパスまたは他のデータによって識別される、オペレーティングシステムカーネル１３６をロードするためのローダーモジュール用のインディケータも含むことができる。プロダクト設定１２４はさらに、カレンシーを維持するために例えばサポートサーバ１１２のディスク上に記憶されているような、ローダーまたは他のモジュールのキャッシュされたイメージの寿命を示すためにキャッシュ期間値を含むことができる。使用時にはディフォルトである３０分または他の値を適用することができるが、０という値はキャッシュされるべきイメージがないことを示す場合がある。
【００１８】
プロダクト設定１２４はさらに、使用されるべき基本システムレジストリキー用のインディケータを含むことができる。プロダクト設定は同様に、ディフォルトを「／ＦＡＳＴＤＥＴＥＣＴ」または他の値にセットすることができる「ｂｏｏｔ．ｉｎｉ」または他のファイルにセットされるべきカーネルブートプログラムなどの、適用するブートパラメータ用のインディケータも含むことができる。プロダクト設定１２４はさらにまた、オペレーティングシステムカーネル１３６またはそのモジュール、あるいは他のモジュールまたは資源のバイナリイメージを含むことになる１つまたは複数のバイナリディレクトリ用のインディケータも含むことができる。実施形態では、ディレクトリをこのキーで指定された順番で使用することができる。複製ファイルが異なるディレクトリにある場合、そのファイルを第１のディレクトリからこのフィールドにコピーすることができる。
【００１９】
プロダクト設定１２４は同様に、オペレーティングシステムカーネル１３６をインストールするために、ＩＮＦディレクトリ用の、すなわちＩＮＦファイルを含めるための１つまたは複数のディレクトリ用のインディケータを含むことができる。「．ｉｎｆ」拡張子を有するすべてのファイルは、指定されたディレクトリのそれぞれで構文解析することができる。実施形態では、複数のディレクトリに含まれ、かつ異なる内容を有する同一のＩＮＦファイルを有することが有効である場合がある。例えば、１つのＩＮＦディレクトリを、合法的に購入されたオペレーティングシステムパッケージを反映する商用在庫管理ユニット（ＳＫＵ）に向け、もう１つのＩＮＦディレクトリを、その同じパッケージのエンタープライズクラスＳＫＵに向けて、各位置に異なる値を有するＩＮＦファイルを含めることができる。実施形態では、オペレーティングシステムカーネル１３６の送達は、オペレーティングシステムまたは他のサポートのための有料または無料の加入などの加入サービスを基礎にすることができる。
【００２０】
プロダクト設定１２４はさらにまた、例えばディレクトリで構文解析されるべきＩＮＦファイルをフィルタリングするために使用することのできる１つまたは複数のＩＮＦクラスストリングを識別するＩＮＦクラス用のインディケータを含むことができる。ＩＮＦクラスが指定されていない場合、オペレーティングシステムインストールプロセスですべてのＩＮＦファイルを構文解析することができる。このフィールドに関する例示の設定によれば、ＢＭｏｎｉｔｏｒ（ブートモニター）、システム、ネットワークおよびディスク関連ＩＮＦファイルを構文解析することができ、他のＩＮＦクラスは省略することができる。この他の組み合わせも可能である。
【００２１】
ＩＮＦセット１２６自体は同様に、構築する目的で１つまたは複数のＩＮＦファイルを含むことができる。ＩＮＦファイルは、一般に、ある点ではドライバファイル、またはクライアントマシンにインストールされたデバイスおよび資源に関係する他のデータを記述することのできるテキストファイルとして構成することができる。ビルダーエンジン１１６は、インストールされた周辺機器および他のパーツまたは資源がオペレーティングシステムカーネル１３６または他のソフトウェアのインスタンスによって適切に認識されることができるように、ＩＮＦセット１２６から適切なドライバおよび他のデータを選択することができる。
【００２２】
ビルダーエンジン１１６は同様に、オペレーティングシステムカーネル１３６の既に構築または修正されたインスタンスのイメージを記憶している場合のあるイメージストア１２８と通信することができる。実施形態では、ビルダーエンジン１１６は、オペレーティングシステムカーネル１３６のイメージがクライアント１０２と一致するかまたはほぼ一致するマシンに対して既に構築され、記憶されているかどうかを判定するために、要求パケット１３２の受信後にイメージストア１２８を照会することができる。イメージストア１２８は、ハードウェア構成要素データのハッシュまたは他の技術によるなどして、クライアント１０２を識別するデータの照合の対象となるハードウェアイメージテーブル１３０を含むことができる。
【００２３】
ビルダーエンジン１１６は、クライアント１０２に応答して構築を送信するために、一致が発見されるとオペレーティングシステムカーネル１３６のイメージを取り出すことができる。同様にして、イメージストア１２８でほぼ一致しているものが発見されると、ビルダーエンジン１１６はその構築を取り出して、クライアント１０２の規格に合うようにプロダクトストア１１８または他の資源を使用してそのイメージを修正する。クライアント１０２のハードウェアプロファイルとイメージストア１２８に記憶されているバージョンの間にオーバーラップがほとんどまたはまったくない場合、ビルダーエンジン１１６は、プロダクトストア１１８および他によってオペレーティングシステムカーネル１３６の総合的な構築を実行することができる。
【００２４】
オペレーティングシステムカーネル１３６の構築が完了する前、最中または後で、ビルダーエンジン１１６は通信リンク１１０を介してクライアント１０２に応答パケット１３４を伝達することができる。応答パケット１３４用の典型的なデータ構造を図４に示す。図に示すように、応答パケット１３４は、要求パケット１３２への応答の状態を表すかまたは関連するデータ要素または他の情報を含むことができる。例えば、図に示すように、応答パケット１３４は、要求の成功または失敗に関する情報をフラグ形式または他のインディケータの形式で含むことができる。応答パケット１３４はさらに、他の試みられた要求パケット１３２を送信することができるようになるまでの期間を示すためなどに、待ち状態にある要求の待ち時間に関する情報を含むことができる。
【００２５】
応答パケット１３４はさらに、オペレーティングシステムカーネル１３６がサポートサーバ１１２から直接的に送信されない場合、クライアント１０２がオペレーティングシステムカーネル１３６をダウンロードしに行くことができるソースアドレスを示すことができる。例えば、実施形態では、遠隔サーバには、ＴＦＴＰアドレスでトリビアルファイル転送プロトコル（ＴＦＴＰ）サーバを使用してアクセスすることができる。他のプロトコルまたはファイルのソースを使用することもできる。オペレーティングシステムカーネル１３６のイメージファイル名も応答パケット１３４に含めることができ、その結果サポートサーバ１１２、ＴＦＴＰサーバまたは他のサーバまたは資源からオペレーティングシステムカーネル１３６を取り出すことができる。他の送達機構も実施可能である。
【００２６】
オペレーティングシステムカーネル１３６を受信すると、クライアント１０２は、ファイル、ネットワークおよび他のシステム機能を実行するためにそのカーネルを電子メモリ１０６に記憶することができる。例えば、データおよび他のファイルを分離し、記憶して作業することができるように、オペレーティングシステムカーネル１３６の制御下でディレクトリ構造を電子メモリ１０６に構築することができる。実施形態では、例えばクライアント１０２が機能的なハードドライブまたは他の記憶機構を含んでいる場合、オペレーティングシステムカーネル１３６は、オペレーティングシステムの完全なセットアップおよびインストールを実行し、さらにリブートまたは他の動作を続けるためにネットワークサイトまたは他の資源にリンクすることができる。
【００２７】
本発明の一実施形態によるカスタマイズされたオペレーティングシステムを生成するためのプロセスを図５に示す。ステップ５０２で、クライアント１０２は、ＤＨＣＰまたは他のプロトコルを使用して通信し、ＰＸＥまたはＢＩＯＳ  １０４の他の資源を使用してサポートサーバ１１２に要求パケット１３２を送信することができる。ステップ５０４で、サポートサーバ１１２は、要求パケットに応答し、ターゲットクライアント１０２に関する詳細または他の情報を確認する他のデータを含めて、ＴＣＰ／ＩＰまたは他のパケットなどの初期データパケットで応答することができる。
【００２８】
ステップ５０６で、クライアント１０２は、オペレーティングシステムカーネル１３６を生成するためにデータのさらなる交換を容易にするようネットワークブートプログラム（ＮＢＰ）または他の「ｓｎｉｆｆｅｒ」あるいは初期設定モジュールを要求することができる。ステップ５０８で、サポートサーバ１１２は、通信リンク１１０を介してクライアント１０２にＮＢＰあるいは他のコンパクトな、または一時的な初期設定モジュールを伝達することができる。ステップ５１０で、クライアント１０２は、サポートサーバ１１２にローダーモジュールを要求するためにＮＢＰまたは他のモジュールを実行することができる。ステップ５１２で、サポートサーバ１１２は、オペレーティングシステムカーネル１３６の受信を容易にするためにクライアント１０２にローダーモジュールを送信することができる。ステップ５１４で、クライアント１０２は、プロセッサ、メモリ、ＰｎＰ、ＰＣＩ列挙法およびクライアント１０２のハードウェアイメージに関する他のデータなどのハードウェアプロファイル情報をサポートサーバ１１２に伝達することができる。
【００２９】
ステップ５１６で、サポートサーバ１１２は、ハードウェア抽象層（ＨＡＬ）、レジストリ、または受信および検証に関する他の情報などのハードウェアイメージをクライアント１０２に送信するために、クライアント１０２のハードウェアプロファイルを解釈することができる。ステップ５１８で、クライアント１０２は、要求パケット１３２または他の構造によるなどして、オペレーティングシステムのイメージまたは構築を要求することができる。ステップ５１８中に、サポートサーバはビルダーエンジン１１６にアクセスしてオペレーティングシステムカーネル１３６を生成することができる。ステップ５２０で、サポートサーバ１１２は、オペレーティングシステムカーネル１３６をクライアント１０２に伝達することができる。ステップ５２２で、クライアント１０２は、電子メモリ１０６からなどの、オペレーティングシステムカーネル１３６に基づくオペレーティングシステムブートを実行することができる。ステップ５２２のブート操作の後に、クライアント１０２は、オペレーティングシステムカーネル１３６でサポートすることができるファイル、プロセッシング、ネットワークおよび他の機能を開始することができる。したがってこの実施形態および他の実施形態では、本発明は、クライアント１０２の特定のハードウェアを事前に知らずに、カスタマイズされたオペレーティングシステムカーネル１３６のインストールを完了することができる。
【００３０】
本発明の上記記述は説明を目的としたものであり、当業者には構成および実施態様の修正形態が想起されよう。例えば、本発明は全般的にオペレーティングシステムカーネル１３６の送達の点に関して記述したが、実施形態では、オペレーティングシステムの完全な、またはより総合的な構築を実行し、送達することができる。同様に、ビルダーエンジン１１６は、実施形態では、オペレーティングシステムカーネル１３６または他の資源と共に、選択されたアプリケーションなどの追加のソフトウェアまたは構成要素を取り出し、構築することができる。
【００３１】
同様に、本発明は全般的に、カスタマイズされたオペレーティングシステムカーネル１３６が目標にする個々のクライアント１０２の分析という点で記述したが、実施形態では、オペレーティングシステムカーネル１３６を受信するハードウェアは１つまたは複数のマシンから構成することができる。例えばＬＡＮまたは他の機能は同一またはほぼ同一のマシンを複数含むことができるが、複数のマシンへのオペレーティングシステムカーネルの送達をトリガするためにハードウェアプロファイルまたは他の要求データを交換する必要があるのはこれらのマシンの内の１つだけである。
【００３２】
同様に、本発明は全般的に単一のサポートサーバ１１２の点で説明したが、実施形態では、１つまたは複数のサーバが、構築された要求の様々な部分をホストし、それに応答し、他の動作を実行することができる。イメージストア１２８、プロダクトストア１１８、プロダクト設定１２４、ＩＮＦファイル１２６および他の資源を格納するために使用されるデータベースまたは他の記憶機構も、同様に分散させることができる。したがって本発明の範囲は、頭記の特許請求の範囲によってのみ限定されるものとする。
【図面の簡単な説明】
【図１】本発明が動作することのできる一実施形態のアーキテクチャを示す図である。
【図２】本発明の一実施形態によるオペレーティングシステム要求パケットのためのデータ構造を示す図である。
【図３】本発明の一実施形態によるプロダクト設定記録のためのデータ構造を示す図である。
【図４】本発明の一実施形態によるクライアントに送達される要求パケットのためのデータ構造を示す図である。
【図５】本発明の一実施形態によるオペレーティングシステムカーネルの初期設定およびローディングの流れ図である。
【符号の説明】
１０２  クライアント
１０４  ＢＩＯＳ
１０６  電子メモリ
１０８  プロセッサ
１１０  通信リンク
１１２  サポートサーバ
１１４  ディスパッチャモジュール
１１６  ビルダーエンジン
１１８  プロダクトストア
１２０  プロダクトプロセッサ
１２２  ＩＮＦパーサー
１２４  プロダクト設定
１２６  ＩＮＦファイル
１２８  イメージストア
１３０  ハードウェアイメージテーブル
１３２  要求パケット
１３４  応答パケット
１３６  オペレーティングシステムカーネル
【図１】
0004647192.tif 000002
【図２】
0004647192.tif 000003
【図３】
0004647192.tif 000004
【図４】
0004647192.tif 000005
【図５】
0004647192.tif 000006