(57)【特許請求の範囲】
【請求項１】
コンピューター実行可能命令が具体化された１つ以上のコンピューター記憶媒体であって、前記コンピューター実行可能命令が実行されると、計算機においてオペレーティング・システムを配備する方法を実行し、該方法が、
１つ以上のオペレーティング・システム命令を有する仮想ハード・ドライブ（ＶＨＤ）ファイルを受け取るステップであって、前記ＶＨＤファイルがブート・マネージャー・エンハンサーおよびトランスレーターと関連付けられている、ステップと、
前記ブート・マネージャー・エンハンサーを利用して、前記ＶＨＤファイルを露出するブート・エントリーをブート・マネージャーに追加することにより、前記ブート・マネージャーを強化するステップであって、前記ＶＨＤファイルが前記計算機の物理ドライブに格納される、ステップと、
前記物理ドライブにおけるＶＨＤファイル位置を決定するステップと、
前記ＶＨＤファイル位置を格納するステップと、
前記ＶＨＤファイル位置をリード／ライト要求に適用するために前記トランスレーターを実装するステップであって、前記トランスレーターが、前記ＶＨＤファイル位置に基づいて、前記ＶＨＤファイルの論理オフセットと前記物理ドライブの物理オフセットとの間で前記リード／ライト要求を変換する、ステップと、
前記ＶＨＤファイルから初期ブート・シーケンスを開始するステップと、
を含む、コンピューター記憶媒体。
【請求項２】
請求項１記載のコンピューター記憶媒体において、前記方法が、更に、前記ＶＨＤファイルと、前記ブート・マネージャー・エンハンサーと、前記トランスレーターとを１つのファイルとして受け取るステップを含む、コンピューター記憶媒体。
【請求項３】
請求項１記載のコンピューター記憶媒体において、前記方法が、更に、前記ＶＨＤファイルと、前記ブート・マネージャー・エンハンサーと、前記トランスレーターとを２つ以上のファイルとして受け取るステップを含む、コンピューター記憶媒体。
【請求項４】
請求項１記載のコンピューター記憶媒体において、前記方法は、更に、マウントされたＶＨＤファイルを作成するために前記ＶＨＤファイルをマウントするステップを含む、コンピューター記憶媒体。
【請求項５】
請求項４記載のコンピューター記憶媒体において、前記マウントされたＶＨＤファイルは、前記計算機に対してＳＣＳＩディスクとして表される、コンピューター記憶媒体。
【請求項６】
計算機のオペレーティング・システムを効率的に配備する方法であって、
仮想ハード・ドライブ（ＶＨＤ）ファイルと、ブート・マネージャー・エンハンサーと、トランスレーターとを合成するステップと、
前記ＶＨＤファイルと、前記ブート・マネージャー・エンハンサーと、前記トランスレーターを前記計算機に伝達するステップであって、前記ＶＨＤファイルが前記計算機において初期ブート・シーケンスを実行可能である、ステップと、
を含み、
前記ＶＨＤファイルが１つ以上のオペレーティング・システム命令を有し、前記ＶＨＤファイルが前記ブート・マネージャー・エンハンサーおよび前記トランスレーターと関連付けられ、前記ブート・マネージャー・エンハンサーは、前記ＶＨＤファイルを露出するブート・エントリーを前記計算機のブート・マネージャーに追加することにより、前記ブート・マネージャーを強化し、前記ＶＨＤファイルは、前記計算機の物理ドライブに格納され、前記トランスレーターは、前記物理ドライブにおけるＶＨＤファイル位置に基づいて、前記ＶＨＤファイルの論理オフセットと前記物理ドライブの物理オフセットとの間でリード／ライト要求を変換する、方法。
【請求項７】
請求項６記載の方法において、前記ＶＨＤファイル、前記ブート・マネージャー・エンハンサー、および前記トランスレーターを１つのファイルとして合成する、方法。
【請求項８】
請求項６記載の方法において、前記ＶＨＤファイル、前記ブート・マネージャー・エンハンサー、および前記トランスレーターの少なくとも１つが独立したファイルとして存続するように、前記ＶＨＤファイル、前記ブート・マネージャー・エンハンサー、および前記トランスレーターを合成する、方法。
【請求項９】
請求項６記載の方法において、前記ＶＨＤファイル、前記ブート・マネージャー・エンハンサー、または前記トランスレーターの１つ以上がＳＣＳＩドライバーを含む、方法。
【請求項１０】
請求項６記載の方法において、前記ＶＨＤファイルまたは前記トランスレーターのいずれかが、前記ＶＨＤファイルと前記計算機との間における通信を容易にするＳＣＳＩドライバーを含む、方法。
【請求項１１】
請求項６記載の方法であって、更に、マウントされたＶＨＤファイルを作成するために前記ＶＨＤファイルをマウントするステップを含み、前記マウントされたＶＨＤファイルは、論理ディスクとして前記計算機に露出される、方法。
【請求項１２】
請求項１１記載の方法において、前記マウントされたＶＨＤファイルは、前記計算機によってＳＣＳＩディスクとして認識される、方法。
【請求項１３】
コンピューター実行可能命令が具体化されている１つ以上のコンピューター記憶媒体であって、前記コンピューター実行可能命令が実行されると、計算機においてオペレーティング・システムを配備する方法を実行し、該方法が、
仮想ハード・ドライブ（ＶＨＤ）ファイルを受け取るステップであって、前記ＶＨＤファイルが１つ以上のオペレーティング・システム命令で構成されており、前記ＶＨＤファイルをＳＣＳＩディスクとして露出およびマウントすることができ、前記ＶＨＤファイルがブート・マネージャー・エンハンサーおよびトランスレーターと関連付けられた、ステップと、
前記ブート・マネージャー・エンハンサーを利用して、前記ＶＨＤファイルを露出するブート・エントリーをブート・マネージャーに追加することにより、前記ブート・マネージャーを強化するステップであって、前記ＶＨＤファイルが前記計算機の物理ドライブに格納される、ステップと、
前記物理ドライブにおけるＶＨＤファイルの位置を決定するステップと、
前記トランスレーターによって利用するために、前記ＶＨＤファイルの位置を格納するステップと、
前記トランスレーターをリード／ライト要求に対して実装するステップであって、前記トランスレーターが、前記ＶＨＤファイル位置に基づいて、リード／ライト要求を、前記ＶＨＤファイルの論理オフセットと前記物理ドライブの物理オフセットとの間で変換する、ステップと、
ＳＣＳＩドライバーを実装するステップであって、前記ＶＨＤファイルはＳＣＳＩディスクとしてマウントすることができる、ステップと、
前記ＶＨＤファイルを利用して、前記計算機の初期ブート・シーケンスを開始するステップと、
を含む、コンピューター記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
一般に、オペレーティング・システムは、個別のファイルの大きな集合体であり、これらのファイル全てが合同して動作することによって、計算機に動作環境を提供する。オペレーティング・システムを構成するこれら個々のファイルは、通例、計算機の内部において、ディレクトリおよびフォルダの複雑な構成で維持されている。加えて、オペレーティング・システムまたはオペレーティング・システムの一部のリモートのノードまたは計算機への配備および配信は、オペレーティング・システムのサイズおよび複雑さのために、リモート計算機の各々において困難なタスクとなる場合がある。
【発明の概要】
【０００２】
本発明の実施形態は、オペレーティング・システムを効率的に配備するための方法およびコンピューター記憶媒体に関する。少なくともオペレーティング・システムの命令を含む合成仮想ハード・ドライブ・ファアイルが、計算機に配信される。この仮想ハード・ドライブ・ファイルを受信すると、計算機は、この仮想ハード・ドライブ・ファイルをブート・オプションおよびマウント可能なドライブとすることができるように増強される。次いで、計算機は、初期ブート・シーケンスから開始して、仮想ハード・ドライブ・ファイルを１つのドライブとして利用することができる。
【０００３】
この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断する際に補助として用いられることも意図していない。
【図面の簡単な説明】
【０００４】
以下に、添付図面を参照して実施形態について詳細に説明する。図面において、
【図１】
【０００５】
図１は、本発明の実施形態を実施するために用いるのに適した計算環境の一例のブロック図である。
【図２】
【０００６】
図２は、本発明の一実施形態にしたがって、計算機にオペレーティング・システムを配備する方法の一例の流れ図である。
【図３】
【０００７】
図３は、本発明の一実施形態による、オペレーティング・システムの効率的な配備方法の一例の流れ図である。
【図４】
【０００８】
図４は、本発明の一実施形態による、オペレーティング・システムの効率的な配備方法の別の例の流れ図である。
【図５】
【０００９】
図５は、本発明の実施形態を実施する際に用いるように構成した計算システム・アーキテクチャの一例を示すブロック図である。
【発明を実施するための形態】
【００１０】
本明細書では、法的要件を満たすために、本発明の実施形態の主題について具体的に説明する。しかしながら、説明自体は、本発明の範囲を限定することを意図している訳ではない。むしろ、本発明者は、特許請求する主題は、他の現在の技術または将来の技術と合わせた、異なるステップ、または本文書において記載されているステップと同様のステップの組み合わせを含む、他の方法でも具体化できることを想定している。更に、「ステップ」および／または「ブロック」という用語は、本明細書では、採用する方法の異なる要素を暗示するために用いられるが、これらの用語は、個々のステップの順序が明示的に記載されているのでなければ、またはそうしている場合を除いて、種々のステップ間において特定の順序を含意するように解釈してはならない。
【００１１】
本発明の実施形態は、オペレーティング・システムを効率的に配備するための方法およびコンピューター記憶媒体に関する。少なくともオペレーティング・システムの命令を含む合成仮想ハード・ドライブ・ファアイルが、計算機に配信される。この仮想ハード・ドライブ・ファイルを受信すると、計算機は、この仮想ハード・ドライブ・ファイルをブート・オプションおよびマウント可能なドライブとすることができるように増強される。合成仮想ハード・ドライブ・ファイルは、仮想ハード・ドライブ・ファイルをブート・オプションとして露出し、計算機におけるドライブとしてマウントすることを可能にする追加のデーターおよび情報を含むこともできる。次いで、計算機は、初期ブート・シーケンスから開始して、仮想ハード・ドライブ・ファイルを１つのドライブとして利用することができる。
【００１２】
したがって、一形態では、本発明は、コンピューター実行可能命令を具体化した１つ以上のコンピューター読み取り可能媒体であって、命令を実行すると、オペレーティング・システムを計算機において配備する方法を実行する、コンピューター読み取り可能媒体を提供する。この方法は、１つ以上のオペレーティング・システム命令が関連付けられている仮想ハード・ドライブ・ファイルを受け取るステップを含む。また、仮想ハード・ドライブ・ファイルは、ブート・マネージャー・エンハンサーおよびトランスレーターとも関連付けられている。加えて、この方法は、ブート・マネージャー・エンハンサーを利用してブート・マネージャーを強化するステップと、仮想ハード・ドライブ・ファイルの位置を決定するステップと、仮想ハード・ドライブ・ファイルの位置を格納するステップと、仮想ハード・ドライブ・ファイルの位置をリード／ライト要求に適用するためにトランスレーターを実装するステップと、仮想ハード・ドライブ・ファイルから初期ブート・シーケンスを開始するステップとを含む。
【００１３】
別の形態では、本発明は、オペレーティング・システムを効率的に配備する方法を提供する。この方法は、仮想ハード・ドライブ・ファイルと、ブート・マネージャー・エンハンサーと、トランスレーターとを合成するステップと、ＶＨＤファイルと、ブート・マネージャー・エンハンサーと、トランスレーターを前記計算機に伝達するステップであって、ＶＨＤファイルが前記計算機において初期ブート・シーケンスを実行可能である、ステップとを含む。
【００１４】
本発明の第３の形態は、コンピューター実行可能命令を具体化した１つ以上のコンピューター記憶媒体であって、命令を実行すると、オペレーティング・システムを計算機に配備する方法を実行する、コンピューター記憶媒体を提供する。この方法は、仮想ハード・ドライブ・ファイルを受け取るステップを含み、仮想ハード・ドライブ・ファイルが１つ以上のオペレーティング・システム命令で構成されている。仮想ハード・ドライブ・ファイルは、ＳＣＳＩディスクとして露出およびマウントすることができ、ブート・マネージャー・エンハンサーおよびトランスレーターと関連付けられている。この方法は、更に、ブート・マネージャー・エンハンサーを利用してブート・マネージャーを強化するステップであって、ブート・マネージャー・エンハンサーが、仮想ハード・ドライブ・ファイルをブート・オプションとして前記計算機に露出するブート・エントリーを与える、ステップと、仮想ハード・ドライブ・ファイルの位置を決定するステップと、トランスレーターによって利用するために、仮想ハード・ドライブ・ファイルの位置を格納するステップと、トランスレーターをリード／ライト要求に対して実施するステップであって、前記トランスレーターが、仮想ハード・ドライブ・ファイルの位置に基づいて、リード／ライト要求を論理オフセットと物理オフセットとの間で変換する、ステップと、ＳＣＳＩドライバーを実装するステップであって、仮想ハード・ドライブ・ファイルをＳＣＳＩディスクとしてマウントすることができる、ステップと、仮想ハード・ドライブ・ファイルを利用して、前記計算機の初期ブート・シーケンスを開始するステップとを含む。
【００１５】
以上、本発明の実施形態の全体像について端的に説明したので、その実施形態を実施するのに適した動作環境の一例について、以下に説明する。
【００１６】
図面を総合的に参照するが、最初に図１を特に参照すると、本発明の実施形態を実施するための動作環境の一例が示されており、全体的に計算機１００と称する。計算機１００は、適した計算環境の一例に過ぎず、本発明の使用または機能の範囲についていかなる限定をも示唆することは意図していない。また、計算環境１００は、図示するモジュール／コンポーネントのいずれの１つまたは組み合わせに関しても、何らかの依存性や必須要件を有するという解釈を行ってはならない。
【００１７】
実施形態は、コンピューターあるいはパーソナル・データー・アシスタントまたはその他のハンドヘルド・デバイスのようなその他の機械によって実行される、プログラム・モジュールのようなコンピューター実行可能命令を含む、コンピューター・コードまたは機械使用可能命令という一般的な文脈で説明することができる。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、モジュール、データー構造等を含み、特定のタスクを実行するか、または特定の抽象的データー・タイプを実現するコードに言及する。実施形態は、ハンドヘルド・デバイス、消費者用電子機器、汎用コンピューター、特殊計算機等を含む、種々のシステム構成において実用化することができる。また、実施形態は、分散型計算環境においても実用化することができ、その場合、通信ネットワークを通じてリンクされているリモート処理デバイスによってタスクを実行する。
【００１８】
引き続き図１を参照すると、計算機１００は、以下のデバイスを直接的または間接的に結合するバス１１０を含む。メモリー１１２、１つ以上のプロセッサー１１４、１つ以上のプレゼンテーション・モジュール１１６、入出力（Ｉ／Ｏ）ポート１１８、Ｉ／Ｏモジュール１２０、および例示的な電源１２２である。バス１１０は、１系統以上のバス（アドレス・バス、データー・バス、またはその組み合わせ等）を表すことができる。図１の種々のブロックは、明確化のために、線で示すが、実際には、種々のモジュールの区分けはそれほど明確でなく、比喩的には、これらの線をもっと正確に示すとすれば、灰色で曖昧となるであろう。例えば、ディスプレイ・デバイスのようなプレゼンテーション・モジュールをＩ／Ｏモジュールであると見なすこともできる。また、プロセッサーはメモリーを有する。本発明者は、このようなことは技術の本質であり、図１の線図は、１つ以上の実施形態と合わせて用いることができる計算機の一例を例示するに過ぎないことを繰り返しておく。「ワークステーション」、「サーバー」、「ラップトップ」、「ハンドヘルド・デバイス」等というようなカテゴリ間では区別を行わない。これは、全てが図１の範囲に該当すると考えられ、「コンピューター」または「計算機」を意味するからである。
【００１９】
計算機１００は、通例、種々のコンピューター読み取り可能媒体を含む。一例として、そして限定ではなく、コンピューター読み取り可能媒体は、ランダム・アクセス・メモリー（ＲＡＭ）、リード・オンリ・メモリー（ＲＯＭ）、電子的消去可能プログラマブル・リード・オンリ・メモリー（ＥＥＰＲＯＭ）、フラッシュ・メモリーまたはその他のメモリー技術、ＣＤＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）あるいはその他の光またはホログラフィ技術、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、搬送波、あるいは所望の情報を符号化するために用いることができ計算機１００がアクセスすることができるその他のあらゆる媒体を含むことができる。
【００２０】
メモリー１１２は、揮発性および／または不揮発性メモリーの形態としたコンピューター記憶媒体を含む。メモリーは、リムーバブル、非リムーバブル、またはその組み合わせとすることができる。ハードウェア・デバイスの例には、ソリッド・ステート・メモリー、ハード・ドライブ、光ディスク・ドライブ等が含まれる。計算機１００は、メモリー１１２またはＩ／Ｏモジュール１２０のような種々のエンティティからデーターを読み出す１つ以上のプロセッサーを含む。プレゼンテーション・モジュール（１つ又は複数）１１６は、データー指示をユーザまたはその他のデバイスに提示する。プレゼンテーション・モジュールの例には、ディスプレイ・デバイス、スピーカ、印刷モジュール、振動モジュール等が含まれる。Ｉ／Ｏポート１１８は、Ｉ／Ｏモジュール１２０を含む他のデバイスに計算機１００を論理的に結合することを可能にする。他のデバイスの一部は内蔵されていてもよい。例示的なモジュールには、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー、プリンター、ワイヤレス・デバイス等が含まれる。
【００２１】
図２を参照すると、本発明の一実施形態にしたがって、計算機においてオペレーティング・システムを配備する方法２００の一例を図示する流れ図が示されている。最初に、ブロック２１０において示すように、仮想ハード・ドライブ・ファイルを受け取る。仮想ハード・ドライブ・ファイルを受け取ることに加えて、少なくともブート・マネージャー・エンハンサーおよびトランスレーターも受け取る。仮想ハード・ドライブ・ファイル、ブート・マネージャー・エンハンサー、およびトランスレーターは、１つのファイルとして受け取ることができ、あるいはこれらを２つ以上のファイルとして受け取ることもできる。実施形態では、仮想ハード・ドライブ・ファイル、ブート・マネージャー・エンハンサー、およびトランスレーターは、１つ以上のコンピューター読み取り可能媒体と共に受け取る。
【００２２】
ブロック２１０において受け取った仮想ハード・ドライブ・ファイルは、一般に、図１の計算機１００のような、計算機のオペレーティング・システム命令を含む。仮想ハード・ドライブ・ファイルと共にまたは仮想ハード・ドライブ・ファイルの中に含まれるオペレーティング・システムまたはオペレーティング・システム命令は、コンピューター・システムの資源共有を管理し、これらの資源にアクセスするためのインターフェースを提供するソフトウェアを含む。仮想ハード・ドライブ・ファイルは、加えて、ドライバー、オペレーティング・システム・ローダー、ブート・ローダー、追加のステージ・ブート・ローダー、プログラム・モジュール、および計算機の初期ブート・シーケンスを容易にするための、当業者には周知のその他のコンポーネントを含むことができる。仮想ハード・ドライブ・ファイルは、内部に含まれているデーターおよび情報の操作を可能にする動的ファイルである。仮想ハード・ドライブ・ファイルのこの動的な特性によって、仮想ハード・ドライブ・ファイルと関連付けておよび／または仮想ハード・ドライブ・ファイルの中に永続的データーを維持することが可能となる。これが利点であるのは、データーおよび情報が永続的であることができない場合、スタティック・フォーマットは従前からのオペレーティング・システム体験に対処しないからである。
【００２３】
続いて、ブロック２２０において示すように、ブート・マネージャーを強化する。ブート・マネージャーは、ブート・マネージャー・エンハンサーによって強化することができ、この強化には、ブート・エントリーをブート・マネージャーの中に追加することを含むことができる。これによって、仮想ハード・ドライブ・ファイルを計算機のブート・オプションとして露出する。通例、ブート・マネージャーは、ブート可能命令の利用可能なソースに対するブート・エントリーを含む。仮想ハード・ドライブに対するブート・エントリーを含むようにブート・マネージャーを強化することによって、仮想ハード・ドライブを計算機のブート可能オプションとして含ませることが可能となる。仮想ハード・ドライブ・ファイルをブート・オプションとして計算機に露出させるためには、ブート・マネージャー・エンハンサーは情報を計算機に提供する。この情報は、通例、物理ドライブによって供給される。従前より、物理ドライブは、ハード・ディスク・ドライブ、フロッピ・ドライブ、テープ・ドライブ、ＣＤＲＯＭ、ＤＶＤ、または同様のメディア・ドライブを含む。物理ディスクによって通例供給され、したがってブート・マネージャー・エンハンサーによって供給することができる情報は、関連するドライブの仕様を詳細に記述するヘッダおよびフッタ情報を含む。ブート・マネージャー・エンハンサーが供給するヘッダおよびフッタ情報は、仮想ハード・ドライブ・ファイルを露出しマウントできるドライブとなるように、仮想ハード・ドライブ・ファイルを補足する。
【００２４】
ブート・マネージャー・エンハンサーによるブート・マネージャーの強化は、計算機または計算機のユーザによる余分な介入を必要とする場合もある。この余分な介入は、オペレーティング・システムと共に含まれている計算命令の操作、またはオペレーティング・システムのコンポーネントの変更を含むこともある。加えて、ブート・マネージャー・エンハンサーは、仮想ハード・ドライブ・ファイルを露出させ計算機における１ドライブとしてマウントすることができるように、計算機のオペレーティング・システム・ローダーおよびカーネルも強化することができる。
【００２５】
ブロック２３０を参照すると、次に、仮想ハード・ドライブ・ファイルの位置を決定する。仮想ハード・ドライブは、一旦受け取られると、計算機と関連付けて格納することができる。実施形態の一例では、仮想ハード・ドライブ・ファイルは、一旦計算機によって受け取られると、計算機と関連のあるハード・ディスクに格納される。尚、仮想ハード・ドライブ・ファイルは、計算機１００と関連付けて既に論じたコンピューター読み取り可能媒体、デバイス、またはコンポーネントのうち任意のものに格納、保持、または配置できることは、当業者には言うまでもないことであり認められるであろう。
【００２６】
仮想ハード・ドライブ・ファイルの位置は、種々の方法で示すことができる。例えば、仮想ハード・ドライブ・ファイルの位置は、ドライブ識別子、ディレクトリ、トラック、セクター、範囲、または仮想ハード・ドライブ・ファイルが格納されているハード・ディスクのパーティション位置のうち１つ以上によって示すことができる。仮想ハード・ドライブの位置決定の一例として、仮想ハード・ドライブ・ファイルが計算機の物理ハード・ドライブに常駐するパーティション位置によって、位置を特定することができる。
【００２７】
ブロック２４０において見られるように、続いて、仮想ハード・ドライブの位置を格納する。仮想ハード・ドライブの位置は、計算機内部、例えば、図１の計算機１００に関係付けて既に論じたメモリー１１２に格納することができる。仮想ハード・ドライブ位置をローカルに格納することに加えて、ブロック２３０において決定した仮想ハード・ドライブの位置は、ネットワークを通じてまたは他の遠隔地に格納することもできる。
【００２８】
ブロック２５０において、次にリード／ライト要求に対してトランスレーターを実施する。ブロック２５０における変換(translate)は、１つ以上のリードおよびライト（リード／ライト）要求を変換することができる。これらの要求は、計算機によってメモリー、ドライバー、ボリューム・ドライバー、および要求と関連して利用されるディスク・ドライバーに伝達される。リード／ライト要求は、プロセッサー、例えば、図１のプロセッサー１１４によって発生し、メモリー、例えば、図１のメモリー１１２に導くことができる。リード／ライト要求の変換の一例では、ブロック２１０において仮想ハード・ドライブ・ファイルを受け取った計算機のプロセッサーからのリード／ライト要求を、ブロック２４０に示すように、格納された位置を利用する仮想ハード・ドライブに変換することを含む。この例では、プロセッサーがリード／ライト要求を発生すると、このリード／ライト要求は、仮想ハード・ドライブが格納されている計算機と関連のある物理ハード・ディスクに導かれる。トランスレーターは、仮想ハード・ドライブ・ファイルの位置を適用して、要求された物理オフセットと仮想ハード・ドライブ・ファイルの論理オフセットとの間で変換を行う。論理オフセットは、ブロック２３０および２４０にそれぞれ示すように、仮想ハード・ドライブ・ファイルの位置の決定および格納の結果分かる。この例では、プロセッサーは、仮想ハード・ドライブ・ファイルを収容する物理ディスクの物理オフセットに向けたリード／ライト要求を発生する。次いで、このリード／ライト要求は、ドライブの物理オフセットおよび仮想ハード・ドライブ・ファイルの論理オフセットに基づいて変換される。尚、物理オフセットと論理オフセットとの間の変換は、１方向の変換に限定されるのではないことは、当業者には言うまでもないことであり認められよう。変換は、論理オフセットと物理オフセットとの間でも行うことができる。加えて、変換は、他のコマンドと、計算機およびその関連するプロセッサーによって発行された要求との間でも行うことができる。変換は、リード／ライト要求に限定されるのでなければ、仮想ハード・ドライブ・ファイル、物理ドライブ、または要求のオフセット位置に基づく変換に限定されるのでもない。このような実施形態のうち任意のものおよび全て、そしてその任意の組み合わせは、本発明の実施形態の範囲に該当すると考えることとする。
【００２９】
ブロック２５０において表した変換によって、計算機が発生したリード／ライト要求を、仮想ハード・ドライブ・ファイルが常駐する物理ドライブに基づいて変換することが可能になるだけでなく、トランスレーターは、仮想ハード・ドライブと関連のある他の特定位置へおよびからも変換することができる。例えば、既に述べた論理オフセットは、仮想ハード・ドライブ・ファイルの中にブロックを含む場合もある。仮想ハード・ドライブ・ファイルは物理ディスクでないこともあるので、仮想ハード・ドライブは、前述の位置識別子の全てを利用できない場合があるが、代わりに、トランスレーターは仮想ハード・ドライブ・ファイル内におけるブロック位置に変換することができる。この変換によって、物理オフセットとして発生されたリード／ライト要求を、仮想ハード・ドライブ・ファイル内におけるブロック位置参照を含むことができる論理オフセットに変換することが可能になる。
【００３０】
ブロック２６０において示すように、続いて初期ブート・シーケンスを開始する。計算機は、プロセッサーをブートし、プロセッサーがＢＩＯＳブートプログラムを開始するためにＢＩＯＳ  ＲＯＭを検索しなければならないときはいつでも、初期ブート・シーケンスを実行することができる。これが行われるのは、プロセッサーがその関連する揮発性メモリーに命令を格納していないときである。通例、初期ブート・シーケンスは、計算機に電源が入っていなかったとき、即ち、オフになっていたときに行われる。これらの初期ブート・シーケンスは、ときにはコールド・ブートと呼ばれることもある。初期ブートは、「ウォーム」ブートと対照することができる。ウォーム・ブートとは、プロセッサーの関連するメモリーにデーターが格納されている状態から計算機がブートを開始する場合のブート・シーケンスである。ウォーム・ブートの一例は、ワシントン州RedmondのMicrosoft Corporationから入手可能なWINDOWS(登録商標) XPベースのオペレーティング・システムにおいて、計算機のユーザがALT+CTRL+DELETEの入力を与えたときである。この状況では、計算機は既に機能しており、データーがプロセッサーのメモリーに格納されている。WINDOWS(登録商標) XPオペレーティング・システム環境における初期ブート即ちコールド・ブートの一例は、ブート・シーケンスを開始する前に計算機の電力を完全に落としていた場合である。これは、通常シャット・ダウンと呼ばれている。
【００３１】
現在第１オペレーティング・システムを利用している計算機が、第２オペレーティング・システムをエミュレートし始めた場合、エミュレートされるオペレーティング・システムのブートは初期ブートではない。この状況では、計算機は、追加のオペレーティング・システムをブートする以前には、第１オペレーティング・システムで機能している。第１オペレーティング・システムが計算機において機能しているので、プロセッサーは、ブートの開始時に、その関連するメモリーにデーターを格納してあり、したがってエミュレートされるオペレーティング・システムのブーティングは初期ブートではない。
【００３２】
仮想ハード・ドライブ、ブート・マネージャー・エンハンサー、およびトランスレーターの１つ以上は、仮想ハード・ドライブ・ファイルを計算機においてディスクとしてマウントすることを可能にするディスク・ドライバーを内蔵することができる。計算機の中にディスクをマウントすることによって、計算機はディスクに含まれているデーターにアクセスすることが可能になる。ディスクをマウントするためには、マウント処理、およびその結果行われる、内部に含まれているデーターへのアクセスを容易にするディスク・ドライバーがある。このドライバーは、限定ではないが、パラレルＡＴＡ、統合ドライブ電子部品、ＥＩＤＥ、シリアルＡＴＡ、ＳＡＴＡ、ＳＣＳＩ、シリアル取り付けＳＣＳＩ、ＳＡＳ、改良スモール・ディスク・インターフェース、ファイバ・チャネル、ファイバ・チャネル調停ループ、およびFireWireインターフェースのような、一般周知のフォーマットのうち任意のものの下でのアクセスを可能にすることができる。尚、ディスクを計算機内にマウントするためには種々のインターフェースが利用可能であることは、当業者には認められよう。本発明の実施形態では、インターフェースは、ＳＣＳＩドライバーを含み、このＳＣＳＩドライバーは、仮想ハード・ドライブ・ファイルを露出させ、計算機におけるドライブとしてマウントさせることができる。加えて、実施形態では、インターフェースは、ＳＣＳＩミニポート・ドライバーを含み、仮想ハード・ドライブ・ファイルの露出およびマウントを容易にする。ＳＣＳＩミニポート・ドライバーは、供給されるポート・ドライバーを利用し、このポート・ドライバーは、ＳＣＳＩミニポート・ドライバーとオペレーティング・システムとの間におけるインターフェースとして作用する。したがって、ＳＣＳＩミニポート・ドライバーは、関連するポート・ドライバーのために、より小さなドライバーであることができる。ＳＣＳＩドライバーまたはＳＣＳＩミニポート・ドライバーは、仮想ハード・ドライブ・ファイルを露出およびマウントするために用いることができ、その結果マウントされた仮想ハード・ドライブ・ファイルは、計算機によってＳＣＳＩドライブとして認識され利用することができる。
【００３３】
これより図３に移ると、本発明の一実施形態による、オペレーティング・システムの効率的な配備方法３００の実施形態の一例を示す流れ図が図示されている。最初に、ブロック３１０において示すように、仮想ハード・ドライブ・ファイル、ブート・マネージャー・エンハンサー、およびトランスレーターのうち１つ以上を合成する。本明細書で用いる場合、合成とは、合成された個々の各エレメントを、得られた合成体の全体から個々に識別、抽出、または操作できるような、１つ以上のファイル、命令、またはコーディングのパッケージングまたは組み合わせを含むことができる。合成によって、複数のエレメントをグループ化して、得られた合成体が元のエレメントの集合体となるようにすることができる。本発明の一実施形態では、得られた合成体は、２つ以上のファイルから成り、合成体を構成するエレメントの１つは、残りの合成体とは別個の個別エレメントのまま存続する。尚、仮想ハード・ドライブ・ファイル、ブート・マネージャー・エンハンサー、およびトランスレーターは、ブロック３１０の合成の前では、１つのファイルまたは数個のファイルであってもよいことは、当業者には言うまでもなく認められよう。更に別の実施形態では、ブート・マネージャー・エンハンサーおよびトランスレーターが、仮想ハード・ドライブ・ファイル内に含まれている他のプログラム・モジュール、コード、または命令に組み込まれる。ブロック３１０において合成されるブート・マネージャー・エンハンサーは、仮想ハード・ドライブ・ファイルをブート可能なドライブ・オプションとして計算機に露出するブート・エントリーによって、計算機のブート・マネージャーを強化する。加えて、ブロック３１０において合成されるトランスレーターは、リード／ライト要求に対して、物理オフセットと論理オフセットとの間で変換を行う。その結果得られる１つ以上の合成体も、後の伝達のために、ブロック３１０において格納される。
【００３４】
これよりブロック３２０を参照すると、続いて、仮想ハード・ドライブ・ファイル、ブート・マネージャー・エンハンサー、およびトランスレーターを伝達する。一旦これらのエレメントの１つ以上が合成されたなら、その結果得られた合成物を計算機、例えば、図１の計算機１００に伝達する。合成物の伝達は、複数の方法を通じて行うことができる。この合成物は、計算機に、ＵＳＢドライブ、ディスケット、ハード・ドライブ、ＣＤ−ＲＯＭ、ＤＶＤ、コンピューター・テープ、またはその他の周知のコンピューター記憶媒体を通じて伝達することができる。加えて、この合成体は、種々のタイプの送信またはブロードキャストによって計算機に伝達することもできる。これには、有線またはワイヤレス接続、インターネット接続、赤外線接続、Bluetooth接続、衛星接続、無線接続、あるいは当技術分野では周知のその他の通信方法による伝達を含むことができる。このような通信デバイスおよび方法の任意のものおよび全て、ならびにその任意の組み合わせは、本発明の実施形態の範囲に該当すると考えることとする。
【００３５】
ブロック３２０における仮想ハード・ドライブ、ブート・マネージャー・エンハンサー、およびトランスレーターの伝達は、１回の通信であってもよく、または種々の通信方法および通信時間を跨いで配信してもよい。実施形態の一例では、この伝達は、複数の計算機を接続するネットワーク接続を通じて行われる。一例は、組織と関連のある多くの計算機を接続するためにネットワークを維持する大会社である。仮想ハード・ドライブ、ブート・マネージャー・エンハンサー、およびトランスレーターは、１つのファイルに合成され、この１つのファイルが会社のネットワークを通じて伝達される。次いで、会社はこの合成したファイルを、ネットワークと関連のある１つ、数個、または全ての計算機に伝達する。合成ファイルの伝達によって、効率的で信頼性の高いオペレーティング・システムの配備がし易くなる。この効率的な配備は、仮想ブート・マネージャー・エンハンサー、トランスレーター、およびＳＣＳＩミニポート・ドライバーのうち１つ以上の使用によって遂行される。
【００３６】
これより図４に移ると、本発明の一実施形態による、オペレーティング・システムの配備のための効率的な方法４００の更に別の実施形態を示す流れ図が図示されている。最初に、ブロック４１０において、仮想ハード・ドライブ・ファイルを受け取る。仮想ハード・ドライブ・ファイルには、ブート・マネージャー・エンハンサーおよびトランスレーターのうち１つ以上が合成されている。ブロック４１０の一実施形態は、ブート・マネージャー・エンハンサーおよびトランスレーターの双方と合成されている仮想ハード・ドライブ・ファイルを受け取ることを含む。この仮想ハード・ドライブ・ファイルは、仮想ハード・ドライブ・ファイルを受け取った計算機が、仮想ハード・ドライブ・ファイルを用いて初期ブート・シーケンスを実行することを可能にする１つ以上のオペレーティング・システム命令およびコンピューター・モジュールを含む。
【００３７】
次に、ブロック４２０において示すように、ブート・マネージャーを強化する。ブート・マネージャーの強化は、ブート・マネージャー・エンハンサーによって遂行される。ブート・マネージャーは、ブート・エントリーをブート・マネージャーに含ませることにより、ブート・マネージャー・エンハンサーによって強化される。このブート・エントリーは、仮想ハード・ドライブ・ファイルを対象とし、結果的に仮想ハード・ドライブ・ファイルをブート可能なオプションとして計算機に露出させる。本発明の一実施形態では、ブロック４３０によって示すように、仮想ハード・ドライブ・ファイルを露出するブート・エントリーがブート・マネージャーに含まれるように、ブート・マネージャーをブート・マネージャー・エンハンサーによって強化することを規定する。
【００３８】
次に、ブロック４４０において示すように、仮想ハード・ドライブの位置を決定する。即ち、仮想ハード・ドライブを関連付けて格納する物理ドライブに対する仮想ハード・ドライブ・ファイルの位置を決定する。実施形態の一例では、この位置は、物理ディスクのセクターおよびオフセットとして規定される。次いで、ブロック４５０に示すように、仮想ハード・ドライブの位置を、計算機によって格納する。この位置は、トランスレーターが、後にリード／ライト要求の物理オフセットと論理オフセットとの間における変換を決定する際に用いられる。
【００３９】
次に、ブロック４６０において示すように、仮想ハード・ドライブをマウントする。既に論じたように、ドライブをマウントするとき、マウントされるドライブと関連のある計算機は、そのドライブの中に含まれているデーターにアクセスすることができる。本発明の一実施形態は、ＳＣＳＩミニポート・ドライバーの使用によって、仮想ハード・ドライブ・ファイルをＳＣＳＩドライブとしてマウントし易くする。この実施形態の結果、仮想ハード・ドライブ・ファイルは、計算機によって、ドライブとしてデーターを読み出すおよび書き込むためにアクセス可能となる。
【００４０】
続いて、ブロック４７０において示すように、リード／ライト要求に対してトランスレーターを実施する。既に論じたように、トランスレーターは、リード／ライト要求における物理オフセットと論理オフセットとの間で変換を行う。実施形態の一例では、この変換は、ブロック４４０において決定されブロック４５０において格納された仮想ハード・ドライブ・ファイルの位置に基づく。位置情報は、物理オフセットと論理オフセットとの間の変換を容易にする。
【００４１】
ブロック４８０において示すように、次に初期ブート・シーケンスを開始する。仮想ハード・ドライブ・ファイルからの初期ブート・シーケンスでは、仮想ハード・ドライブがブート可能なオプションとして露出され、仮想ハード・ドライブ・ファイルの位置が決定され、仮想ハード・ドライブ・ファイルがドライブとしてマウントされ、トランスレーターが物理オフセットと論理オフセットとの間の変換を行い、仮想ハード・ドライブ・ファイルがオペレーティング・システム命令またはその他のプログラム・モジュールを含んでいなければならない。
【００４２】
図５を参照すると、本発明の実施形態を実施する際に使用するように構成されている計算システム・アーキテクチャ５００の一例を示すブロック図が図示されている。尚、図５に示す計算システム・アーキテクチャ５００は、１つの適した計算システムの一例に過ぎず、本発明の使用または機能の範囲について何の限定をも示唆することは意図していないことは、当業者には言うまでもないことであり認められよう。また、計算システム・アーキテクチャ５００が、ここで例示するいずれの１つのモジュール／コンポーネントまたはモジュール／コンポーネントの組み合わせに関しても、何らかの依存性や必須要件を有するという解釈を行ってはならない。
【００４３】
計算システム・アーキテクチャ５００は、サーバー５０２および計算機５０４とを含み、これらはネットワーク５０６を通じて互いに通信する。ネットワーク５０６は、限定ではなく、１つ以上のローカル・エリア・ネットワーク（ＬＡＮ）および／またはワイド・エリア・ネットワーク（ＷＡＮ）を含むことができる。このようなネットワーキング環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては、極普通である。したがって、ネットワーク５０６については本明細書ではこれ以上説明しない。
【００４４】
図２に示すサーバー５０２および計算機５０４の各々は、例えば、図１を参照して先に説明した計算機１００のような、いずれの種類の計算機でもよい。限定ではなく一例のみとして、サーバー５０２および計算機５０４の各々は、パーソナル・コンピューター、デスクトップ・コンピューター、ラップトップ・コンピューター、ハンドヘルド・デバイス、移動体ハンドセット、消費者用電子デバイス等とすることができる。加えて、計算機５０４は、更に、キーボード、キーパッド、スタイラス、ジョイスティック、およびユーザが有線データーまたは無線データーをネットワーク５０６に供給することを可能にするその他の任意の入力開始コンポーネントも含むことができる。しかしながら、本発明はこのような計算機における実施には限定されず、その実施形態の範囲に該当する種々の異なる種類の計算機のいずれにおいても実施できることは、注記してしかるべきである。
【００４５】
サーバー５０２は、本明細書において記載した方法を実行するように構成可能な、任意のタイプのアプリケーション・サーバー、データーベース・サーバー、またはファイル・サーバーを含むことができる。加えて、サーバー５０２は専用サーバーまたは共有サーバーであってもよい。サーバー５０２のコンポーネント（明確化のために図示しない）は、限定ではなく、処理ユニット、内部システム・メモリー、および情報（例えば、ファイルおよびそれと関連のあるメタデーター）を格納する１つ以上のデーターベースを含む種々のシステム・コンポーネントを結合するのに適したシステム・バスを含むことができる。
【００４６】
サーバー５０２は、仮想ハード・ドライブ５０８、ブート・マネージャー・エンハンサー５１０、およびトランスレーター５１２を含む。実施形態によっては、図示したコンポーネント５０８、５１０、および５１２の１つ以上を単体アプリケーションとして実装することもできる。他の実施形態では、図示したコンポーネント５０８、５１０、および５１２の１つ以上を直接サーバー５０２および／または計算機５０４のオペレーティング・システムに統合することもできる。尚、図５に示すコンポーネント５０８、５１０、５１２の特性および数量は一例であり、限定として解釈してはならないことは、当業者には言うまでもないであろう。本発明の実施形態の範囲内において所望の機能を達成するためには、任意の数のコンポーネントを用いることができる。
【００４７】
仮想ハード・ドライブ５０８は、オペレーティング・システム命令と、オペレーティング・システムの配備およびブート処理を容易にするその他のコンピューター・モジュールとを含むことができる。加えて、仮想ハード・ドライブ５０８は、仮想ハード・ドライブ５０８を計算機５０４のような計算機においてドライブとして露出しマウントするために必要となり得るドライバーまたはその他のインターフェースも含むことができる。
【００４８】
ブート・マネージャー・エンハンサー５１０は、仮想ハード・ドライブ５０８をブート可能なオプションとして計算機５０４に認識させることができるように、ブート・マネージャーを強化することを可能にする情報、データー、または命令を供給する。ブート・マネージャー・エンハンサー５１０は、実施形態の一例では、仮想ハード・ドライブ・ファイルと関連のある計算システムのブート・マネージャーを、ブート・エントリーを含むように変更する。ブート・マネージャーにブート・エントリーを追加することにより、仮想ハード・ドライブ・ファイルをドライブとして計算機に露出しマウントすることが可能となる。
【００４９】
トランスレーター５１２は、リード／ライト要求を変換するための情報、データー、または命令を含む。トランスレーター５１２によって行われる変換は、物理オフセットと論理オフセットとの間の変換であり、計算機５０４が、仮想ハード・ドライブ５０８にドライブとしてアクセスすることを可能にする。代替実施形態では、トランスレーター５１２の変換は、仮想ハード・ドライブ・ファイルを格納する物理ドライブの位置と、仮想ハード・ドライブ・ファイルのブロック位置との間で変換する。トランスレーター５１２は、計算機が発生したリード／ライト要求を、仮想ハード・ドライブ５０８のデーターにアクセスしこれを操作することができる要求に変換することを可能にする。
【００５０】
尚、計算システム・アーキテクチャ５００は単なる一例にすぎないことは、当業者には言うまでもないことであろう。サーバー５０２および計算機５０４を単体ユニットとして例示したが、サーバー５０２および計算機５０４はスケーラブルであることは、当業者には認められよう。例えば、サーバー５０２は実際には互いに通信する複数のサーバーを含むこともあり、計算機５０４は互いにそしてサーバー５０２と通信する複数の計算機を含むこともあり得る。単体ユニットを図示したのは、明確さのためであり、実施形態の範囲にいずれの形態にも限定することを意味するのではない。
【００５１】
本発明の実施形態は、オペレーティング・システムを効率的に配備するための方法およびコンピューター記憶媒体に関することは、理解することができよう。オペレーティング・システム命令を含んだ合成仮想ハード・ドライブ・ファイルを計算機に配信する。仮想ハード・ドライブ・ファイルを受け取ると、計算機は強化され、仮想ハード・ドライブ・ファイルをブート・オプションおよびマウント可能なドライブとすることができる。合成仮想ハード・ドライブ・ファイルは、仮想ハード・ドライブ・ファイルをブート・オプションとして露出し、計算機にドライブとしてマウントすることを可能にする追加のデーターおよび情報も含むことができる。次いで、計算機は、初期ブート・シーケンスから開始して、仮想ハード・ドライブ・ファイルを仮想ドライブ・ファイルとして利用することができる。
【００５２】
以上、特定的な実施形態に関して本発明を説明したが、あらゆる観点において限定ではなく例示であることを意図している。当業者には、本明細書において記載した実施形態の範囲から逸脱することなく、代替実施形態が明白となるであろう。
【００５３】
以上の説明から、本発明の実施形態は、先に明記した目標および目的を、記載したシステムおよび方法から自明でありこれらに特有なその他の利点と共に、達成するのに相応しく構成されていることが分かるであろう。ある種の特徴およびサブコンビネーションは有益であり、他の特徴やサブコンビネーションを参照せずに用いることができることは言うまでもない。これは、特許請求の範囲によって考慮されていることであり、その範囲に該当することとする。
【図１】
0005480155.tif 000002
【図２】
0005480155.tif 000003
【図３】
0005480155.tif 000004
【図４】
0005480155.tif 000005
【図５】
0005480155.tif 000006