(57)【要約】【課題】選択された機能を有するオペレーティングシステム（ＯＳ）を作成し使用する方法及びシステムを提供する。【解決手段】パーソナルコンピュータ（ＰＣ）のＯＥＭ製造者又は情報技術専門家のようなユーザは、インストールＯＳイメージ内で利用可能な複数のＯＳコンポーネントからＯＳコンポーネントのセットを選択する。選択されたＯＳコンポーネントのセットは、ＣＤ−ＲＯＭのようなコンピュータ読み取り可能媒体上にＯＳイメージとしてインストールされる。ＯＳイメージは、目標のコンピュータを起動し参照ＯＳイメージをインストールしたり、参照ＯＳイメージの障害発生のインストールから目標のコンピュータを回復したりするような、ユーザが所望する機能を実施するためＯＳイメージと相互作用するスクリプトを含む。【選択図】図１
2010134941.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータに接続された目標の媒体上に、前記第１のコンピュータと独立のハードウエアを有する第２のコンピュータをブートするための縮小オペレーティングシステムイメージをインストールするために、前記第１のコンピュータによって実行される方法であって、
ユーザの選択に応答して複数のオペレーティングシステムコンポーネントから、前記第２のコンピュータをブートするために必要な機能を有するオペレーティングシステムコンポーネントのサブセットを選択するステップと、
前記選択されたオペレーティングシステムコンポーネントのサブセットを解析して、当該サブセットを構成するファイルのテキストベースのリストを生成するステップと、
前記第２のコンピュータを前記縮小オペレーティングシステムを用いてブートするために必要な状態情報を作成するステップと、
前記選択されたオペレーティングシステムコンポーネントのサブセットを、前記目標の媒体上に縮小オペレーティングシステムイメージとしてインストールするステップとを含み、
前記インストールするステップが、前記リストを解析して前記目標の媒体へ前記ファイルを複写するステップと、前記作成された状態情報を前記目標の媒体に複写するステップとを含む、コンピュータ処理における方法。
【請求項２】
前記オペレーティングシステムコンポーネントが、ハードウエアドライバを含む、
請求項１に記載のコンピュータ処理における方法。
【請求項３】
前記インストールするステップが、前記ファイルを前記目標の媒体上で統合するステップであって、レジストリの生成又は更新と、デスクトップアイコンの生成又は更新から成るものを、更に含む、
請求項１に記載のコンピュータ処理における方法。
【請求項４】
前記複数のオペレーティングシステムコンポーネントに含まれない追加のオペレーティングシステムコンポーネントを選択するステップを更に含み、
前記インストールするステップが、前記追加のオペレーティングシステムコンポーネントを前記目標の媒体に複写するステップを含む、
請求項１に記載のコンピュータ処理における方法。
【請求項５】
第１のコンピュータに接続された目標の媒体上に、前記第１のコンピュータと独立のハードウエアを有する第２のコンピュータをブートするための縮小オペレーティングシステムイメージをインストールするために、前記第１のコンピュータによって実行される方法であって、
ユーザの選択に応答して複数のオペレーティングシステムコンポーネントから、前記第２のコンピュータをブートするために必要な機能を有するオペレーティングシステムコンポーネントのサブセットを選択するステップと、
前記選択されたオペレーティングシステムコンポーネントのサブセットを解析して、当該サブセットを構成するファイルのテキストベースのリストを生成するステップと、
前記第２のコンピュータを前記縮小オペレーティングシステムを用いてブートするために必要な状態情報を作成するステップと、
前記選択されたオペレーティングシステムコンポーネントのサブセットを、前記目標の媒体上に縮小オペレーティングシステムイメージとしてインストールするステップとを含み、
前記インストールするステップが、前記リストを解析して前記目標の媒体へ前記ファイルを複写するステップと、前記作成された状態情報を前記目標の媒体に複写するステップとを含む、コンピュータ処理における方法をコンピュータに実施させる、
コンピュータ実行可能命令を有する、コンピュータ読み取り可能媒体。
【請求項６】
第１のコンピュータに接続された目標の媒体上に、前記第１のコンピュータと独立のハードウエアを有する第２のコンピュータをブートするための縮小オペレーティングシステムイメージをインストールするためのシステムであって、
ユーザの選択に応答して複数のオペレーティングシステムコンポーネントから、前記第２のコンピュータをブートするために必要な機能を有するオペレーティングシステムコンポーネントのサブセットを選択する手段と、
前記選択されたオペレーティングシステムコンポーネントのサブセットを解析して、当該サブセットを構成するファイルのテキストベースのリストを生成する手段と、
前記第２のコンピュータを前記縮小オペレーティングシステムイメージを用いてブートするために必要な状態情報を作成する手段と、
前記選択されたオペレーティングシステムコンポーネントのサブセットを、前記目標の媒体上に縮小オペレーティングシステムイメージとしてインストールする手段とを含み、
前記インストールが、前記リストを解析して前記目標の媒体へ前記ファイルを複写することと、前記作成された状態情報を前記目標の媒体に複写することを含む、
システム。
【請求項７】
第１のコンピュータのプロセッサによって実行されるとき、当該プロセッサをして、ユーザの選択に応答して複数のオペレーティングシステムコンポーネントから、第２のコンピュータをブートするために必要な機能を有するオペレーティングシステムコンポーネントのサブセットを選択し、当該選択されたオペレーティングシステムコンポーネントのサブセットを解析して、当該サブセットを構成するファイルのテキストベースのリストを生成し、
前記第２のコンピュータを前記縮小オペレーティングシステムを用いてブートするために必要な状態情報を作成し、
前記生成されたテキストベースのリストに応答して、前記選択されたオペレーティングシステムコンポーネントのサブセットを、縮小オペレーティングシステムイメージとして前記第１のコンピュータに接続された目標の媒体上にインストールさせるプログラムであって、
前記サブセットが更に、前記第１のコンピュータと独立のハードウエアを有する第２のコンピュータ上で実行させる、オペレーティングシステムコンポーネント修正版を含む、
プログラム。
【請求項８】
前記縮小オペレーティングシステムイメージによる一つ以上の機能の実行を命令するテキストベースのスクリプトを更に含む、
請求項７に記載のプログラム。
【請求項９】
前記複数のオペレーティングシステムコンポーネントの中に現存しない追加のオペレーティングシステムコンポーネントをさらに含み、
前記第１のコンピュータのプロセッサによる実行時に、前記プロセッサをして、前記追加のオペレーティングシステムコンポーネントのうちの少なくとも一つを、選択された前記オペレーティングシステムコンポーネントのサブセットに加える動作を、更に実施させる、
請求項７に記載のプログラム。
【請求項１０】
前記オペレーティングシステムコンポーネント修正版が、前記第２のコンピュータの揮発性メモリに前記縮小オペレーティングシステムイメージを用いて第２のコンピュータをブートするために必要な状態情報を書き込むことを特徴とする、
請求項７に記載のプログラム。
【発明の詳細な説明】
【発明の属する技術分野】
【０００１】
本発明は、コンピュータオペレーティングシステムの分野に関する。特に、本発明は、ユーザが所望する機能を実施するためにユーザが選択するコンポーネントを有する、スクリプティングサポートを伴うオペレーティングシステムに関する。
【発明の背景】
【０００２】
オペレーティングシステム（ＯＳ）イメージは、１台のコンピュータの中のハードウエアと相互作用し、多数の機能を実施する。通常のＯＳイメージでは、ハードディスクドライブのような大容量記憶装置上に相当量の空間が求められる。相当量のディスク空間が要求されるため、ＯＳイメージのうち限定された機能のみが求められる状況では、通常のＯＳイメージは効率的ではない。更に、相当量のディスク空間が要求されることと、大容量記憶装置へ読み取りと書き込みのアクセスを行う必要があることから、通常のＯＳイメージは、単一の読出し専用のコンピュータ読み取り可能媒体に常駐することができない。
【０００３】
コンピュータ上にＯＳイメージをインストールするためには、ＭＳ−ＤＯＳのような、読出し専用媒体からコンピュータを起動しうる、最小限の機能を備える別のＯＳが、歴史的に利用されてきた。しかしながら、ＭＳ−ＤＯＳには、６４０キロバイトの揮発性メモリの制限や６４ビットコンピュータとの非互換性を含む、いくつかの限界がある。更に、ＭＳ−ＤＯＳを利用してＯＳイメージをブートしインストールする間、コンピュータを多数回リブートすることがしばしば必要である。加えて、（ハードウエア製造者により供給されるハードウエアドライバとして知られる）ハードウエアを操作するソフトウエアルーチンは、ＭＳ−ＤＯＳを利用するハードウエアを有効にするために、ＭＳ−ＤＯＳの制約の範囲内で稼動するように修正されなければならない。
【０００４】
同様に、ＷＩＮＤＯＷＳ  ＮＴオペレーティングシステム（ＮＴ）のあるバージョンは、例えば、コンピュータにＮＴへの初期起動を用意するテキストモードを介してインストールされる。グラフィカルユーザインターフェースモードセットアップは、ユーザからの入力を基にしたインストールを構成する。オンラインインストールとして参照すると、このインストールの方法は、コンピュータ上にＮＴそれ自体をブートストラップすることを含む。しかしながら、オンラインインストールは、望ましくないほどコンピュータの多数のリブートを必要とする。
【０００５】
大抵のＯＳイメージは、ＯＳの基本的に要求される機能を実施するソフトウエアルーチンを包摂するカーネルを含む。追加機能は、カーネル以外のソフトウエアによりインプリメントされる。ＯＳイメージには、最小限の機能とサイズを有するマイクロカーネルを含む。そのようなマイクロカーネルのＯＳイメージでは、カーネル以外のソフトウエアが、ＯＳイメージのうちの必要とされる相当量の機能を実施する。しかしながら、これらのマイクロカーネルＯＳイメージは、通常、ハードウエアへの依存性が強く、ユーザ所望の特定機能を実施するための、ユーザがカスタマイズし得るテキストベースのスクリプトを、含んでいない。
【０００６】
以下に説明する本発明は、これら及び他の不都合に取り組むものである。
【発明の概要】
【０００７】
本発明は、インストールＯＳイメージから縮小されたオペレーティングシステム（ＯＳ）イメージを生成する。本発明は結果として縮小ＯＳイメージも含む。パーソナルコンピュータ（ＰＣ）のＯＥＭ製造者のようなユーザは、インストールＯＳイメージ内で利用可能な複数のＯＳコンポーネントから、ＯＳコンポーネントのセットを選択する。選択されたＯＳコンポーネントのセットは、ＣＤ−ＲＯＭのようなコンピュータ読み取り可能媒体（ＣＲＭ）上に縮小ＯＳイメージとしてインストールされる。縮小ＯＳイメージは、コマンドプロンプトの表示、参照ＯＳイメージもインストール、又は参照ＯＳイメージのインストールの失敗からのリカバリなどのような、ユーザの所望する機能を実施するための縮小ＯＳイメージと相互作用するスクリプトを含む。縮小ＯＳイメージは、小さい揮発性の及び不揮発性の記憶装置を必要とする。本発明は、３２ビットより大きいアーキテクチャを伴うコンピュータ上に、参照ＯＳイメージをインストールするのに利用されてもよい。本発明は、３２ビット以下のアーキテクチャを伴うコンピュータ上でも、動作可能である。縮小ＯＳイメージは、（通常、保護モードのために書かれているが）ハードウエアを制御するのに利用されるハードウエアドライバを用い、ハードウエアの適切な操作を検証する。縮小ＯＳイメージはユーザ仕様のハードウエアドライバを含むので、本発明に係る縮小ＯＳイメージは、ハードウエアに依存しない。本発明は、コンピュータ上に、ユーザが１回のリブートで参照ＯＳイメージをインストールできるフレームワークを提示する。スクリプトは、ネットワーク接続を可能にすること、大容量記憶装置をパーティションに分けること、及び大容量記憶装置をファイルシステムでフォーマットすることを含み且つそれらに限定されることなく、どんな機能をも実施する。例えば、スクリプトは、ＷＩＮＤＯＷＳオペレーティングシステムで利用可能なフォーマットに係るファイルシステムにより、大容量記憶装置をフォーマットする機能を実施する。
【０００８】
本発明の一つの実施形態によると、コンピュータ処理における方法が、ユーザカスタマイズされたテキストベースのスクリプトを与え、コンピュータ読み取り可能媒体上のオペレーティングシステムイメージから、コンピュータを起動し、上記スクリプトに従って、コンピュータの一つ又はそれ以上の機能を実施する。コンピュータは、３２ビット又は６４ビットのアーキテクチャを有する。
【０００９】
本発明の別の実施形態によると、システムが、ユーザカスタマイズされたテキストベースのスクリプトを与える手段と、コンピュータ読み取り可能媒体上のオペレーティングシステムイメージから、３２ビット又は６４ビットのアーキテクチャを有するコンピュータを起動する手段と、上記のユーザカスタマイズされテキストベースのスクリプトに従って、コンピュータの一つ又はそれ以上の機能を実施する手段とを含む。
【００１０】
本発明の別の実施形態によると、コンピュータ処理における方法が、ユーザカスタマイズされテキストベースのスクリプトを与え、コンピュータ読み取り可能媒体上の第１のオペレーティングシステムイメージからコンピュータを起動し、上記のユーザカスタマイズされテキストベースのスクリプトに従って、コンピュータ上に第２のオペレーティングシステムイメージをインストールする。
【００１１】
起動することとインストールすることは、コンピュータの一度だけの再起動と
ともに生じる。
【００１２】
本発明の別の実施形態によると、システムが、ユーザにより選択されたオペレーティングシステムコンポーネントを備える、第１のオペレーティングシステムイメージと、第２のオペレーティングシステムイメージと、ユーザによりカスタマイズされるテキストベースのスクリプトファイルとを含む。スクリプトファイルは、第１のオペレーティングシステムイメージと相互作用して、コンピュータ上に第２のオペレーティングシステムイメージをインストールする。コンピュータは、３２ビット又は６４ビットのアーキテクチャを有する。
【００１３】
本発明の別の実施形態によると、コンピュータと共に利用するコンピュータ読み取り可能リカバリ媒体が、オペレーティングシステムイメージと、テキストベースのスクリプトファイルとを含む。スクリプトファイルは、オペレーティングシステムイメージと相互に作用し、コンピュータ上のソフトウエアの障害からの回復を指図する。
【００１４】
本発明の別の実施形態によると、コンピュータ処理における方法は、目標の媒体上にオペレーティングシステムイメージを作成する。該方法は、複数のオペレーティングシステムコンポーネントからオペレーティングシステムコンポーネントのサブセットを選択し、選択されたオペレーティングシステムコンポーネントのサブセットに係るファイルのリストを生成し、選択されたオペレーティングシステムコンポーネントのサブセットを、目標の媒体上にオペレーティングシステムイメージとしてインストールする。インストールする工程は、インストールの媒体から目標の媒体へファイルを複写する工程を含む。
【００１５】
本発明の別の実施形態によると、目標の媒体上にオペレーティングシステムイメージを作成するシステムが、複数のオペレーティングシステムコンポーネントからオペレーティングシステムコンポーネントのサブセットを選択する手段と、選択されたオペレーティングシステムコンポーネントのサブセットに係るファイルのリストを生成する手段と、選択されたオペレーティングシステムコンポーネントのサブセットを、目標の媒体上にオペレーティングシステムイメージとしてインストールする手段とを含む。インストールする手段が、インストールの媒体から目標の媒体へファイルを複写することを含む。
【００１６】
本発明の別の実施形態によると、システムが、複数のオペレーティングシステムコンポーネントから目標の媒体上にオペレーティングシステムイメージを作成する。そのシステムは、少なくとも一つのアプリケーションプログラムと、オペレーティングシステムコンポーネント修正版とを含む。アプリケーションプログラムは、１台のコンピュータ上の一つ又はそれ以上のプロセッサよって実行されるとき、ユーザに複数のオペレーティングシステムコンポーネントからオペレーティングシステムコンポーネントのセットを選択させることを含む動作を、一つ又はそれ以上のプロセッサに実施させる。オペレーティングシステムコンポーネント修正版は、選択されたオペレーティングシステムコンポーネントのセットが、オペレーティングシステムイメージとして動作することを許す。
【発明の実施の形態】
【００１７】
概して言うと、本発明は、インストールＯＳイメージから起動可能な縮小ＯＳイメージを形成する、少なくとも一つのアプリケーションプログラムとオペレーティングシステム（ＯＳ）コンポーネントに対する必須の修正とを含む、方法及びシステムに関し、縮小ＯＳイメージは、ＯＥＭ製造者のようなユーザが条件指定する一つ又は複数の機能を実施するスクリプトサポートを有する。縮小ＯＳイメージでは、全体がインストールされた場合のインストールＯＳイメージのうちで、機能、及び／又は、サイズに関して、縮小される。
【００１８】
ユーザは、縮小ＯＳイメージの中に含めるためのＯＳコンポーネントを選択し、所望の機能を可能にする追加のＯＳコンポーネントを選択的に含める。アプリケーションプログラムは、起動可能な縮小ＯＳイメージを形成するために、ＯＳイメージのインストールに対する選択と追加を利用する。縮小ＯＳイメージは、ＣＤ−ＲＯＭのようなコンピュータ読み取り可能媒体（ＣＲＭ）に書かれるか、リモートサーバに格納されるか、又は、ローカルの大容量記憶装置にインストールされる。縮小ＯＳイメージは、ユーザに指定された機能を実施するためのスクリプトを含む。例えば、ユーザは、縮小ＯＳイメージと相互作用してソフトウエアをインストールするスクリプト、ＯＳインストールの失敗から回復するためのスクリプト、ハードウエアドライバを更新するスクリプト、コンピュータを再封（リシール：ｒｅｓｅａｌ）し検査するスクリプト、他のスクリプトを含むアプリケーションプログラムを実行するスクリプト、若しくは他のどんなタスクも実施するスクリプトを、編集できる。
【００１９】
本発明の例示のＯＳは、ＷＩＮＤＯＷＳオペレーティングシステムであるが、本発明は縮小ＯＳイメージを形成し利用する他のオペレーティングシステムにも、利用可能である。例示のＷＩＮＤＯＷＳオペレーティングシステムの実施形態では、縮小ＯＳイメージでは、最小限のＷＩＮ３２アプリケーションプログラミングインタフェース（ＡＰＩ）サブシステムを伴うＷＩＮＤＯＷＳ  ＮＴに関連するコードベースを含む。縮小ＯＳイメージは、ＷＩＮ３２サブシステムの中へと起動（ブート：ｂｏｏｔ）するのに要求されるＯＳコンポーネントを、最小限の数だけ有する。最小限のＯＳコンポーネントには、カーネル、ハードウエアドライバ、及びシステムファイルを含む。縮小ＯＳイメージは、ＷＩＮＤＯＷＳオペレーティングシステムの中の登録に関連するハイブ（ｈｉｖｅ）のようなデータベースに、それ自身に係る最小限の状態情報も格納する。
【００２０】
起動プロセスとＷＩＮＤＯＷＳオペレーティングシステムにて利用可能なＯＳコンポーネントとに関する、一般的な情報については、ソロモンとルシノビッチ（Ｓｏｌｏｍｏｎ  ａｎｄ  Ｒｕｓｓｉｎｏｖｉｃｈ）による「Ｉｎｓｉｄｅ  Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ２０００」２０００年第３版４６−８７、１７７−２０６、及び２１５−２３６頁を参照されたい。それらの内容は参照の上本明細書に組み込まれる。
【００２１】
一つの実施形態では、縮小ＯＳイメージは、マイクロプロセッサに関する保護されたオペレーティングモードのためのサポートを、含む。マイクロプロセッサ操作の保護されたモードは、マイクロプロセッサのリアルモードと、対照をなす。ユーザは、ハードウエア製造者により供給されハードウエアの制御での利用が意図されるハードウエアドライバを用いて、ハードウエアを確認するスクリプトを編集する。保護されたモードのために書かれた、供給されるハードウエアドライバに対しては、ユーザが別途のハードウエアドライバを書く必要や、リアルモードで操作するため保護されたモードのハードウエアドライバを修正する必要もない。ユーザは、縮小ＯＳイメージ内で修正の無いハードウエアドライバを使用し、縮小ＯＳイメージの保護されたモード内でハードウエアを確認する。縮小Ｏ
Ｓイメージが別のＯＳをインストールするのに利用されるときは、ハードウエア確認の結果は、インストールされるＯＳにも利用可能である。
【００２２】
スクリプトを編集することにより、ユーザは、参照ＯＳイメージにつき、自動化された、ハンドフリーのインストールを構成する。縮小ＯＳイメージは、どんなＯＳイメージをインストールするのにも利用され得る。更に、縮小ＯＳイメージは、ＯＳインストールを確定するため、又は、エンドツーエンドのグラフィカルユーザインタフェース（ＧＵＩ）アプリケーションを実行するために、利用され得る。
【００２３】
一つの実施形態では、ＯＥＭ製造者は、６４ビットアーキテクチャ又は３２ビットアーキテクチャのいずれかを有するパーソナルコンピュータ（ＰＣ）上に参照ＯＳイメージをインストールするために、縮小ＯＳイメージを利用する。ＯＥＭ製造者は、アプリケーションプログラムと、縮小ＯＳイメージを形成するために必要なＯＳコンポーネントの修正版とを含む、ソフトウエア開発キット（ＳＤＫ）を受け取る。ＯＥＭ製造者は、特定のＰＣハードウエア及びＯＥＭに係る他の場所的考慮の観点から、ＯＥＭファクトリの目標のコンピュータ上への参照ＯＳイメージのインストールを実施するのに必要なＯＳコンポーネントを選択する。とりわけ、ＯＥＭ供給者は、ハードウエアドライバのようなＯＳコンポーネントを追加若しくは除去し、テキストファイルによる大容量記憶装置の構成の条件
指定をする。アプリケーションプログラムは、選択されたＯＳコンポーネントのセットを伴い、縮小ＯＳイメージを形成する。よって、ＯＥＭ製造者は、フォーマットされていないハードディスクドライブを備えるＰＣのような目標のコンピュータを確認し、目標のコンピュータのハードディスクをフォーマットし、目標のコンピュータ上へ参照ＯＳイメージをインストールするために、縮小ＯＳイメージを利用する。
【００２４】
目標のコンピュータは、３２ビット及び６４ビットを含むがそれらに限定されない種々のアーキテクチャに従って、設計される。各々のコンピュータは、通常、そのアーキテクチャにより分類される。６４ビットアーキテクチャは、通常、６４ビットのグループでデータを内部的に操作するコンピュータ能力を示す。６４ビットコンピュータアーキテクチャは、プロセッシングユニット（図１、符号１２０参照）、プロセッシングユニットに対して内在又は外在する少なくとも一つのメモリレジスタ、及びデータバスを含む、６４ビット幅の基本的な周辺要素である。同様に、３２ビットより大きいアーキテクチャを備えるコンピュータの分類につき、一般的に言及するならば、コンピュータは、６４ビットアーキテクチャ、１２８ビットアーキテクチャ、又は少なくとも３２ビットのグループで内部的にデータを操作するアーキテクチャであればどんなものでもよい。本発明のシステム及び方法は現下利用可能なコンピュータアーキテクチャに限定されないことを、当業者は銘記すべきである。本発明は、１２８ビット及び２５６ビットアーキテクチャを含みそれらに限定されない将来的なコンピュータアーキテクチャに、利用可能であることが意図されている。もし、コンピュータ及び周辺機器を制御するソフトウエアベースのＯＳというコンセプトを有するならば、本発明は、全く異なるタイプのコンピュータ、非デジタルコンピュータでさえも、利用可能である。更に、本発明は、３２ビットアークテクチャ、１６ビットアーキテクチャ、８ビットアーキテクチャ、若しくは単一ビットアーキテクチャを、含むがそれらに限定されない、３２ビット以下のコンピュータアーキテクチャに適用
可能であることが、意図されている。縮小ＯＳイメージによりサポートされるのならどんなコンピュータアーキテクチャも、本発明は操作し得るという点において、通常、本発明のシステム及び方法は、アーキテクチャに依存しない。例えば、縮小ＯＳイメージが、３２ビットアーキテクチャを備えるコンピュータと６４ビットアーキテクチャを備えるコンピュータをサポートするのであれば、本発明は、３２ビットアーキテクチャ、６４ビットアーキテクチャのいずれかを備えたコンピュータであれば適用される。一つの実施形態では、起動と実施のステップは、３２ビット以下のアーキテクチャを有するコンピュータ上にて動作し得る。更に、スクリプトファイルは、３２ビット以下のアーキテクチャを有するコンピュータ上にて動作し得る。
【００２５】
ＭＩＣＲＯＳＯＦＴディスクオペレーティングシステム（ＭＳ−ＤＯＳ）のようなＯＳは、１６ビットアーキテクチャを有するコンピュータ上にて、スクリプト機能を歴史的にサポートしている。ＭＳ−ＤＯＳは、コンピュータ上の機能を実施するため、基本入出力システム（ＢＩＯＳ）と連絡する割り込みを利用する。ＢＩＯＳは、ＭＳ−ＤＯＳ及びＢＩＯＳが動作する特定のコンピュータに関連するＭＳ−ＤＯＳコマンドを実行する。ＢＩＯＳは、修正され、３２ビットコンピュータ上で１６ビットＭＳ−ＤＯＳコマンドを実行し得る。しかしながら、ＢＩＯＳは、３２ビットより大きいアーキテクチャを備えるコンピュータ上では、ＢＩＯＳを完全に書き換えてそのようなアーキテクチャのためのサポートを与えない限り、１６ビットＭＳ−ＤＯＳコマンドを実行するように修正することはできない。更に、ＭＳ−ＤＯＳは、３２ビットより大きいアーキテクチャを備えるコンピュータ上では、ＭＳ−ＤＯＳを完全に書き換えそのようなアーキテクチャのためのサポートを与えない限り、動作可能なコマンドを生成するようには修正できない。ＭＳ−ＤＯＳは、ＭＳ−ＤＯＳ及びＢＩＯＳの固有の設計のために、３２ビット以下のアーキテクチャに原則的に限定される。ＭＳ−ＤＯＳ及び／又はＢＩＯＳを完全に書き換えると、以下に説明するＯＳのような、新しいＯＳとなる。
【００２６】
例えば、他の限定のうちでも、ＭＳ−ＤＯＳは原則的に、８ビット及び初期の１６ビットアーキテクチャプロセッサのために設計されたので、通常ＭＳ−ＤＯＳは大容量のメモリにアクセスできない。８ビット及び初期の１６ビットアーキテクチャプロセッサは、アドレスバスが２０ビット幅しかなかったので、１メガバイトのメモリしかアクセスできないというアドレス制限が通常存在した。（特別のＭＳ−ＤＯＳ拡張を含む）ＭＳ−ＤＯＳは完全に書き換え無ければ、ＭＳ−ＤＯＳの下で動作するアプリケーションは、２０ビットより幅広いアドレスバスを有するプロセッサ上では１メガバイト制限を越えるメモリにアクセスできない。ＭＳ−ＤＯＳは、完全な書き換えを行わない限り、そのようなメモリアクセスをサポートするようには修正され得ない。通常、ＭＳ−ＤＯＳの下で稼動するアプリケーションの多くは、６４０キロバイトに過ぎないメモリが最大限となってしまう。
【００２７】
図１を先ず参照すると、本発明がインプリメントされ得る適切な計算機システム環境１００の一例を、ブロック図が示す。計算機システム環境１００は、適切な計算若しくは操作環境の一例に過ぎず、本発明の利用又は機能の範囲の限界を示唆することを意図しない。計算機システム環境１００は、例示の計算機システム環境１００内で示される要素の内の、どれか一つ若しくは組み合わせに、依存するものであるとは解釈されるべきではなく、関連を要求するものであると解釈されるべきでもない。
【００２８】
本発明は、数多くの他の通常目的の又は特定目的の、計算機システム環境又は構成と共に、動作する。本発明と共に用いられるのが適切である周知の計算機システム、環境、及び／又は構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド若しくはラップトップ装置、多重プロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能消費者エレクトロニクス、ネットワークＰＣｓ、ミニコンピュータ、メインフレームコンピュータ、上記システム若しくは装置のいずれかを含む分散計算機環境、及びその他を含み。それらに限定されるものではない。
【００２９】
本発明は、一つ又は複数のコンピュータ又は他の装置により実行される、プログラムモジュールのような、コンピュータ実行可能命令の通常の文脈において、説明され得る。通常、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、及び、特定のタスクを実施し若しくは特定の抽出データタイプをインプリメントするデータ構造を含むが、それらに限定されるものではない。本発明は、通信ネットワークを介してリンクされるリモートプロセッシング装置によりタスクが実施される分散計算機環境でも実施され得る。分散計算機環境では、プログラムモジュールは、記憶格納装置を含む、ローカルコンピュータ格納媒体及びリモートコンピュータ格納媒体のいずれに配置されてもよい。
【００３０】
図１を参照すると、本発明をインプリメントする例示システムは、コンピュータ１１０形状の一般目的計算機装置を含む。プロセッシングユニット１２０、システムメモリ１３０、及びプロセッシングユニット１２０に対するシステムメモリを含む種々のシステム要素を統合するシステムバス１２１を、コンピュータ１１０の要素が含むが、それらに限定されるものではない。本発明の有る実施形態では、プロセッシングユニット１２０は、３２ビット又は６４ビットアークテクチャを有する。システムバス１２１は、メモリバス即ちメモリコントローラ、周辺バス、及び種々のバスアーキテクチャのいずれかを利用するローカルバスを含む、いくつかのタイプのバス構造のいずれでもよい。内容を限定するものではないが、例として挙げると、そのようなバスアーキテクチャには、インダストリス
タンダードアーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、エンハンストＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクススタンダードアソシエーション（ＶＥＳＡ）ローカルバス、及びメザニンバスとしても知られるペリフェラルコンポーネントインタコネクト（ＰＣＩ）バスを、含む。
【００３１】
通常、コンピュータ１１０は、少なくともある形態のＣＲＭを含む。ＣＲＭはコンピュータ１１０でアクセス可能であれば、どんな利用可能媒体であってもよく、揮発性及び不揮発性媒体、除去可能及び除去不可能媒体を、含む。内容を限定するものではないが例として挙げると、ＣＲＭは、コンピュータ格納媒体及び通信媒体を含みうる。コンピュータ読み取り可能命令、データ構造、及びプログラムモジュール、若しくは他のデータのような、情報の格納のための方法若しくは技術の中でインプリメントされる、揮発性及び不揮発性媒体、除去可能及び除去不可能媒体を、コンピュータ格納媒体は含む。ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタルヴァーサタイルディスク（ＤＶＤ）若しくは他の光学ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶若しくは他の磁気記憶装置、又は、所望の情報を格納するのに利用され得、コンピュータ１１０によりアクセスされ得る他のどんな媒体をもコンピュータ格納媒体は含むが、それらに限定されない。通常、通信媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、又は、キャリアウエーブ若しくは他の輸送メカニズムのようなモジュール化されたデータ信号の中の他のデータを、包含し、あらゆる情報配布媒体を含む。当業者はモジュール化されたデータ信号を周知しており、モジュール化されたデータ信号は一つ若しくは複数の特性を有し、若しくは信号の中の情報を符号化すべく変更されている。内容を限定するものではないが例として挙げると、通信媒体は、有線ネットワーク若しくは直接有線接続のような有線媒体と、可聴音、無線周波数
、赤外線及び他のワイヤレス媒体のようなワイヤレス媒体とを、含む。上記のどの組み合わせも、ＣＲＭの範囲内に含まれる。
【００３２】
システムメモリ１３０は、読出し専用メモリ（ＲＯＭ）１３１及びランダムアクセスメモリ（ＲＡＭ）１３２のような、揮発性及び不揮発性メモリの形態のコンピュータ記憶媒体を含む。基本入出力システム１３３（ＢＩＯＳ）は、スタートアップの間などにコンピュータ１１０の内部で要素間にて情報の輸送を促進する基本ルーチンを含むのであるが、通常、ＲＯＭ１３１の中に格納される。ＲＡＭ１３２は、通常、プロセッシングユニット１２０により、即座にアクセス可能で且つ／又は現下操作される、データ及び／又はプログラムモジュールを含む。内容を限定するものではないが例として挙げると、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７を、示す。
【００３３】
コンピュータ１１０は、他の除去可能／除去不可能媒体、揮発性／不揮発性コンピュータ記憶媒体も含み得る。例示に過ぎないが、図１は、除去不可能で不揮発性磁気媒体から読み取り又は書き込むハードディスクドライブ１４１、除去可能で不揮発性磁気ディスク１５２から読み取り又は書き込む磁気ディスクドライブ１５１、及び、ＣＤ  ＲＯＭや他の光学媒体のような、除去可能で不揮発性光学ディスク１５６から読み取り又は書き込む光学ディスクドライブ１５５を示す。例示のオペレーティング環境で利用され得る、他の除去可能／除去不可能、揮発性／不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等を含み、然もそれらに限定される
ものではない。ハードディスクドライブ１４１は、通常、インタフェース１４０のような除去不可能メモリインタフェースを介してシステムバス１２１に接続し、磁気ディスクドライブ１５１及び光学ディスクドライブ１５５は、通常、インタフェース１５０のような除去可能メモリインタフェースによってシステムバス１２１に接続する。
【００３４】
ドライブ、若しくは他の大容量記憶装置とそれらに関連する前述のコンピュータ記憶媒体は、図１に示されており、コンピュータ１１０に対して、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、及び他のデータを、格納する。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７を格納するように、示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７と同じでも、異なっていてもよい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７は、ここでは、最小限、異なるコピーを示すものとして、異なる数字が与えられている。オペレーティングシステム１４４のような、本発明に係るＯＳは、コンピュータ１１０に対する基本的なソフトウエア制御プログラムであり、ユーザインタフェースの提示を含む種々の機能を実施し、アプリケーションプログラム１４５の実行を処理し、種々の入力／出力（Ｉ／Ｏ）装置からのデータ入力及び装置へのデータ出力を制御する。アプリケーションプログラム１４５は、コンピュータ１１０上で実行可能な幅広く様々な一つ又は複数のソフトウエアルーチンを表す。アプリケーションプログラムの例では、教育プログラム、参照プログラム、（例えば、ワードプロセッサ、スプレッドシート、データベースなどの）生産関連プログラム、レクリエーションプログラム、及び（例えば、通信プログラムなどの）ユーティリティプログラムが含まれるが、それらに限定されるものではない。アプリケーションプログラム１４５は、ユーザによりコンピュータ１１０上にインストールされたり、若しくは、コンピュータ１１０ＯＥＭ製造者及び／又は配布者により予めインストールされたりする。
【００３５】
ユーザは、キーボード１６２や、通常マウス、トラックボール、又はタッチパッドと称されるポインティング装置１６１などのような、入力装置を経由してコンピュータ１１０の中に、コマンド及び情報を入力する。他の入力装置（図示せず。）には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが含まれ得る。これら及び他の入力装置は、システムバスに連結するユーザインプットインタフェース１６０を経由してプロセッシングユニット１２０に接続するのがしばしばであが、パラレルポート、ゲームポート、又は、ユニバーサルシリアルバス（ＵＳＢ）のような、他のインタフェース及びバス構造によっても接続し得る。モニタ１９１又は他のタイプの表示装置も、ビデオインタフェース１９０のようなインタフェースを経て、システムバス１２１に接続する。モニタに加えて、コンピュータは、スピーカ１９７及びプリンタ１９６のような他の周辺出力機器も含み得、それらはアウトプット周辺インタフェース１９５を介して接続し得る。
【００３６】
コンピュータ１１０は、リモートコンピュータ１８０のような一つ又は複数のコンピュータへの論理接続を利用するネットワーク環境にて動作し得る。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアーデバイス、又は他の一般的なネットワークノードであり、通常、コンピュータ１１０に関連して上記にて説明した要素の多く又は全てを含む。但し図１では、メモリストレージ装置１８１のみが示されている。図１に示される論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１及びワイドエリアネットワーク（ＷＡＮ）を含むが、他のネットワークを含んでもよい。そのようなネットワーク環境は、オフィス、企業体全域コンピュータネットワーク、イントラネット、及びグローバルコンピュータネットワーク（例えば、インターネット）において、一般的である。
【００３７】
ＬＡＮネットワーク環境にて利用される際は、コンピュータ１１０は、ネットワークインタフェース又はアダプタ１７０を介してＬＡＮ１７１に接続する。ＷＡＮネットワーク環境にて利用される際は、コンピュータ１１０は通常、モデム１７２、又はインターネットのようなＷＡＮ１７３への通信を確立する他の手段を含む。モデム１７２は、内部にあっても外部にあってもよく、ユーザインプットインタフェース１６０又は他の適切な機構を介して、システムバス１２１に接続し得る。ネットワーク環境では、コンピュータ１１０に関連して示されるプログラムモジュール、若しくはその一部は、リモートメモリストレージ装置に格納され得る。図１は、メモリ装置１８１上に常駐するリモートアプリケーションプログラム１８５を、例として示すが、その例に限定されるものではない。図示されるネットワーク接続は例示であり、コンピュータ間にて通信リンクを確立する他の手段も利用され得る。
【００３８】
次に図２を参照すると、ブロック図が、ＯＳコンポーネント２０２を示す。或るコンピュータシステムでは、ＯＳイメージは、ＯＳコンポーネントに組織化され、各々のＯＳコンポーネント２０２はその機能の一つ又は組み合わせを実施する。各々のＯＳコンポーネント２０２は、コンピュータによりアクセス可能なＮファイル２０４まで含む。
【００３９】
次に図３を参照すると、フローチャートが、目的の媒体上への縮小ＯＳイメージのインストールを示す。目的の媒体はＣＲＭであればよく、コンピュータからローカルにもリモートにもアクセス可能である。ユーザは、３０２において、複数のＯＳコンポーネント（図２符号２０２参照）から少なくとも一つのＯＳコンポーネントを選択する。一つの実施形態では、ユーザはＯＳコンポーネントのセットを選択する。複数のＯＳコンポーネントには、コンピュータの中のハードウエアを使用可能にするドライバが含まれ、そのハードウエアには大容量記憶装置、ネットワークカード、及び／又は、図１に明示又は黙示されるどの装置もが含まれる。上記のように、複数のＯＳコンポーネントの各々は、少なくとも一つのファイル（図２符号２０４参照）を含む。縮小ＯＳイメージのインストールには、選択されたＯＳコンポーネントのセット及び関係するＯＳコンポーネントの修正版に関連するファイルを、目標の媒体上へ複写し統合することが含まれる。選択されたＯＳコンポーネントに関連するファイルは、３０４にて目標の媒体に複写され、３０６にて縮小ＯＳイメージとして統合される。
【００４０】
一つの実施形態では、縮小ＯＳイメージの中の選択されたＯＳコンポーネントのセットには、インストールＯＳイメージの中の複数のオペレーティングシステムコンポーネントのサブセットが含まれる。ユーザは、選択されたＯＳコンポーネントのセットに対して、追加のＯＳコンポーネントを選択の上含ませる。追加のＯＳコンポーネントは、複数のＯＳコンポーネントに無いが、ユーザに供給されるコンポーネントのどんなものも含む。追加のＯＳコンポーネントは、特定のハードウエアドライバ、スクリプトファイル、及びアプリケーションプログラムを含むが、それらに限定されるものではない。例えば、特定のハードウエアドライバは、大容量記憶装置、ビデオ装置ドライバ、入力装置ドライバ、及びネットワーク装置ドライバを含む。縮小ＯＳイメージの中に含まれるハードウエアドライバは、インストールＯＳイメージ内で利用可能なハードウエアドライバ、又はサードパーティからのハードウエアドライバのありとあらゆるものを含むように、ユーザによりカスタマイズされることが可能である。同様に、ユーザは、ネットワーククライアント、テストハーネス、及びレポートユーティリティのようなツール若しくはユーティリティを選択的に含ませる。追加のＯＳコンポーネントに関連するファイルはユーザにより与えられ、目標の媒体に複写され縮小ＯＳイメージに統合される。例えば、特定の大容量記憶装置のためのサポートを追加するには、ユーザは、特定の大容量記憶装置のためのエントリをハードウエアドライバのリストに追加し、全てのドライバを含むファイルディレクトリの中に、特定の大容量記憶装置と関連するハードウエアドライバを含める。ユーザは、縮小ＯＳイメージを目標の媒体上にインストールする前、若しくはインストールした後に、特定のハードウエア装置のためのサポートを追加、若しくは削除する。
【００４１】
一つの実施形態では、縮小ＯＳイメージは、全インストールＯＳイメージのための不揮発性メモリ記憶の通常必要な９５０メガバイトから１．２ギガバイトと比較して、不揮発性メモリ記憶の約１００メガバイトしか必要としない。オペレーティングシステムが展開すると、縮小ＯＳイメージが要求する不揮発性メモリ記憶は、本発明の機能に影響を与えることなく有意に１００メガバイト以下となりうる、ということが当業者であれば銘記される。
【００４２】
縮小ＯＳイメージは、最小限のファイルリストと最小限の状態情報を含む。例えば、ＷＩＮＤＯＷＳオペレーティングシステムでは、状態情報は、ハイブと呼ばれる分離ファイルのセットを含むレジストリとして知られるデータベースに格納される。インストールＯＳイメージを含む媒体の中のＯＳコンポーネントと関連する、各々のあらゆるファイルネームを含むマスタファイルレイアウトリストがある。マスタファイルレイアウトリストの中のエントリは、縮小ＯＳイメージにとって必要であるか否かを示す。例えば、ＷＩＮＤＯＷＳオペレーティングシステムでは、マスタファイルレイアウトリストは、「ｆｉｌｅ  ｌａｙｏｕｔ．ｉｎｆ」である。本発明は、マスタファイルレイアウトリストを解析（ｐａｒｓｅ）し、縮小ＯＳイメージに必要なファイルを識別するイメージ生成ソフトウエアを、含ませる。イメージ生成ソフトウエアは、識別されたファイルを目標の媒体上のファイルディレクトリに複写することにより、目標の媒体上に縮小ＯＳイメージをインストールする。ファイルディレクトリは、不揮発性媒体上にイメージが取られ得る。更に、イメージ生成ソフトウエアは、必要に応じて、目標の媒体上に確認されたファイルを伸張する。イメージ生成ソフトウエアにより、ユーザは、ディレクトリ構造を形成する間に、追加として要求されるファイルを縮小ＯＳイメージに追加することもできる。このように、インストールＯＳイメージの一部として現存していない、より新しいドライバファイルや他のユーティリティファイルを追加する。
【００４３】
ＧＵＩ及びテキストインタフェースは、複数のＯＳコンポーネントからＯＳコンポーネントのサブセットを選択する手段を構成する。ユーザは、ＳＤＫのようなアプリケーションプログラムを介して各々のインタフェースと相互に作用し、縮小ＯＳイメージの中に含めるためＯＳコンポーネントのサブセットを選択する。上記図３に示されるＳＤＫは、選択されたＯＳコンポーネントのサブセットと関連するファイルのリストを生成する手段と、選択されたＯＳコンポーネントのサブセットを目標の媒体上に縮小ＯＳイメージとしてインストールする手段とを構成する。インストール媒体から目標の媒体へファイルを複写することは、インストールのための手段を構成する。更に、上記の例及び本明細書の別箇所に記される例は、ＯＳコンポーネントのサブセットを選択する手段、ファイルのリストを生成する手段、選択されたＯＳコンポーネントのサブセットをインストールする手段を、構成する。
【００４４】
次に図４を参照すると、ブロック図が、目標の媒体４１０への縮小ＯＳイメージ４１２のインストールを示す。ソフトウエア展開ツールキット（ＳＤＫ）４０５、又は少なくとも一つの他のアプリケーションプログラムは、ハードウエアドライバのリストのような、ＯＳコンポーネントのリスト４０２をユーザに表示する。ユーザは、リスト４０２からＯＳコンポーネントのセット４０４を選択する。コンピュータ上の一つまたは複数のプロセッサは、ＳＤＫ４０５が、ユーザにＯＳコンポーネントリスト４０２からＯＳコンポーネントのセット４０４を選択させるように、仕向ける。インストールＯＳイメージ４０６は、ＳＤＫ４０５でアクセス可能であり、リスト４０２に対応する複数のＯＳコンポーネント４０７を与える。例えば、インストールＯＳイメージ４０６は、ＷＩＮＤＯＷＳオペレーティングシステムプロダクト配布物（ディストリビューション：ｄｉｓｔｒｉｂｕｔｉｏｎ）を含む媒体上に配置される。ＳＤＫ４０５は、インストールＯＳイメージ４０６に対して選択されたＯＳコンポーネントのセット４０４を利用し、選択されたＯＳコンポーネントのセット４０４に関連するファイルを確認する。ＳＤＫ４０５は、選択されたＯＳコンポーネントのセット４０４と関連する、複数のＯＳコンポーネント修正版４０８及び対応ファイルのうちのどれであっても、アクセスし確認する。確認されたＯＳコンポーネント修正版４１６は、選択されたＯＳコンポーネント４１４に対して、目標の媒体４１０上での縮小ＯＳイメージ４１２として、動作させる。ＯＳコンポーネント修正版４０８は、複数のＯＳコンポーネント４０７を、置換し、補足し、若しくは加減する。
【００４５】
特に、複数のＯＳコンポーネント４０７の修正４０８は、ＯＳコンポーネント４０７を修正し不揮発性メモリへデータを書き込まないことを、含む。例えば、ＷＩＮＤＯＷＳオペレーティングシステム環境では、本発明のＯＳコンポーネントは、レジストリ情報を、不揮発性メモリの代わりに揮発性メモリに書き込む。レジストリ情報は、ハイブとして知られる分離ファイルの中のデータベースに格納されるＯＳ構成データを含む。ブートアップの間、セットアップローダは、縮小ＯＳイメージに関連するカーネルに対しフラッグを渡し、カーネルに対して縮小ＯＳイメージ４１２が起動されつつあることを示す。カーネルの初期化の間、読み取り専用ＣＲＭからの起動のときであっても、レジストリマネジャがフラグを確認し、レジストリを揮発メモリに書く。レジストリの中のエントリに対して為される変更は、揮発メモリ内で為される。縮小ＯＳイメージ４１２がリブートするならば、揮発性メモリの本質に従い、全ての変更は放棄される。揮発性メモリの中にレジストリ情報を格納すると、縮小ＯＳイメージ４１２に、個々のブートにおけるきれいなレジストリが与えられる。別の実施形態では、目標のコンピュータが不揮発性メモリへの書き込みアクセスを有するならば、ユーザは、リブートがあっても情報を維持できる不揮発性メモリに、レジストリ情報か、若しくは他の構成情報かをセーブするオプションを提供される。
【００４６】
ハイブの中のエントリも、修正され得る。ハイブエントリは、テキストファイルの中で格納される。ハイブ形成ソフトウエアは、縮小ＯＳイメージ４１２を形成する間に、テキストファイルのバイナリバージョンを形成する。ハイブ形成ソフトウエアは、テキストファイルの中のハイブエントリを解析し、目標の媒体のためのバイナリハイブを形成する。ハイブ形成ソフトウエアは、ハイブをメモリの中にロードし、要求される変更をあてはめ、バイナリフォーマットの修正後ハイブをセーブすることによって、現存のバイナリハイブの修正もする。
【００４７】
例えば、ＷＩＮＤＯＷＳオペレーティングシステムを起動するのには、４つのハイブが要求される。必要なハイブは、ＳＹＳＴＥＭ、ＳＯＦＴＷＡＲＥ、ＳＥＣＵＲＩＴＹ、及び、セキュリティアカウントマネジャ（ＳＡＭ）ハイブを含む。デフォルトのＳＹＳＴＥＭハイブは、何のサブシステムかに関する情報、ハードウエアドライブ、及びＷＩＮＤＯＷＳオペレーティングシステムをブートストラップしている際に走らせるサービスを、含む。本発明のＳＹＳＴＥＭハイブは、現行のＷＩＮＤＯＷＳオペレーティングシステムセットアップのＳＹＳＴＥＭハイブの修正バージョンである。ハイブ形成ソフトウエアは、「ｍｉｎｉｎｔ．ｉｎｆ」のようなテキストファイルの中の修正を、デフォルトＳＹＳＴＥＭハイブに対して加える。ＳＯＦＴＷＡＲＥハイブは、「ｈｉｖｅｓｆｔ．ｉｎｆ」のようなテキストファイルから、ハイブ形成ソフトウエアによって、形成される。ＳＥＣＵＲＩＴＹ及びＳＡＭハイブは、ゼロ長ファイルであり、縮小ＯＳイメージ４１２には関連するセキュリティ情報がないことを示す。
【００４８】
縮小ＯＳイメージ４１２が起動しつつあることを示す、カーネルへ渡されるローダフラグを基にして、レジストリマネジャは、特別の配置でレジストリキーを形成する。例えば、レジストリマネジャは、揮発性キーＨＫＬＭ／Ｓｙｓｔｅｍ／ＣｕｒｒｅｎｔＣｏｎｔｒｏｌＳｅｔ／Ｃｏｎｔｒｏｌ／ＭｉｎｉＮＴを形成した後、“Ｏｐｔｉｏｎ”と呼ばれるＤＷＯＲＤ値を形成する。“Ｏｐｔｉｏｎ”は１にセットされ、ユーザが縮小ＯＳイメージ４１２環境にいることを示す。ユーザモードで実行するアプリケーションプログラムは、その値に従って構成を実施する必要があるので、レジストリキーに問い合わせる。
【００４９】
本発明に係る例示のＷＩＮＤＯＷＳオペレーティングシステムの形態では、縮小ＯＳイメージは、“システム”アカウントのセキュリティ特権を有する。縮小ＯＳイメージに対して利用可能なメモリは、利用可能な揮発性メモリの量に限定される。なぜならページングファイルは追加のメモリへのアクセスを与えるようには存在していないからである。更に、本発明に係る例示のＷＩＮＤＯＷＳオペレーティングシステムの形態にてデフォルトで開始される幾つかの他の所望されないサービス（例えば、システムファイル保護）は、縮小ＯＳイメージに対しては、無力である。
【００５０】
ＳＤＫ４０５は、選択されたＯＳコンポーネントのセット４０４と確認されたＯＳコンポーネントの修正版４１６とに関連するファイルを、複写且つ統合することによって、選択されたＯＳコンポーネント４１４及び確認されたＯＳコンポーネントの修正版４１６を目標の媒体４１０上に縮小ＯＳイメージ４１２としてインストールする。ユーザは、複数のＯＳコンポーネント４０７の中に現存しない追加のＯＳコンポーネントを、選択して含める。追加のＯＳコンポーネントは、ＳＤＫ４０５を介し、選択されたＯＳコンポーネント４１４に追加される。ＳＤＫ４０５は、目標の媒体４１０上にスクリプトファイルを含み、ユーザにより条件指定される機能を実施する。目標の媒体４１０が読出し専用ＣＲＭならば、ユーザは、縮小ＯＳイメージ４１２がＣＲＭ上にインストールされる前に、スクリプトファイルをカスタマイズする。目標の媒体４１０が読み取り書き込み可能ＣＲＭならば、ユーザは、縮小ＯＳイメージ４１２がＣＲＭ上にインストールされる前でも、された後でも、スクリプトをカスタマイズできる。
【００５１】
インストールＯＳイメージ４０６、複数のＯＳコンポーネント修正版４０８、及び、図４の目標の媒体４１０は、ＳＤＫ４０５によりローカルにもリモートからでもアクセス可能であり、更にはＳＤＫ４０５の中に含まれ得る、ということが当業者には銘記されるべきである。リモートアクセスの例は、図１のネットワーク環境により記される。
【００５２】
次に図５を参照すると、フローチャートが、別のＯＳイメージをインストールするための縮小ＯＳイメージの利用を示す。コンピュータは、５０２にて、ＣＲＭ上の縮小ＯＳイメージから起動する。一つの実施形態では、縮小ＯＳイメージは、テキストによるユーザインタフェースとＧＵＩとをサポートする。特に、ＧＵＩは、少なくとも２５６色と少なくとも６４０×４８０画素の解像度とを備えるビデオグラフィックアレイ（ＶＧＡ）ビデオモードをサポートする。ユーザによりカスタマイズされテキストベースであるスクリプトは、縮小ＯＳイメージと相互に作用し、コンピュータ上の一つ又は複数の機能の実施を管理する。スクリプトは、機能が実施されるステップを確認する。スクリプトは、ステップが実行されるシーケンスも確認する。スクリプトは、ステップの逐次の実行に加えて、多重タスクをサポートする。即ち、先行するステップが完全に実行された後でのみ、スクリプトの中の各々のステップが実行されるべきか否かを、ステップ毎を基にして、ユーザは条件指定する。このように、スクリプトは、一時での１ステップの実行と、多重ステップの同時の実行とを許容する。一つの実施形態では、スクリプトはコンピュータにより読み出され、ＣＲＭ上に配置されるファイルである。コンピュータで実行可能な命令は、単一のＣＲＭ上に常駐し、スクリプトに係る機能の起動と実施を調整する。別の実施形態では、スクリプトは、コンピュータ近くに配置されるか、若しくはコンピュータから離れて位置する。ＣＲＭは、コンピュータから離れて位置するか、若しくは近くに位置する（図６及び図７の夫々参照）。例えば、コンピュータは、図１のネットワーク環境で説明したように、遠くのＣＲＭ即ちスクリプトにアクセスする。
【００５３】
一つの実施形態では、ＯＥＭ製造者のようなユーザは、スクリプトが、参照ＯＳイメージをコンピュータ上にインストールするのに必要な機能を実施するように、スクリプトを編集する。一つの実施形態では、コンピュータは、パーティションの無いフォーマットされていない大容量記憶装置を備えた空の、即ち未処理のＰＣである。別の実施形態では、コンピュータは、更新される必要があるＯＳを有するＣＲＭを備えるＰＣである。ユーザは、５０４にて、コンピュータ上のハードウエアを確認するスクリプトも、編集する。コンピュータ上のハードウエアには、ネットワークカード、大容量記憶装置、ビデオカード、及び／又は、図１に明示若しくは黙示される他のどんな装置も、含まれる。スクリプトは、条件指定されたハードウエア装置を使用可能にし、適切な操作を検証し欠陥のあるハードウエアを確認するテストを選択的に稼動することによって、ハードウエアを確認する。各々のハードウエア装置を確認するには、ハードウエアドライバが縮小ＯＳイメージに対しハードウエア装置と通信せしめることが、要求される。ハードウエアドライバは、ハードウエア装置の製造者により供給される特別のソフトウエアであり、コンピュータ内にインストールされたＯＳと共に動作しハードウエア装置と通信する。一つの実施形態では、縮小ＯＳイメージは、コンピュータ内のハードウエアを検出し適切なハードウエアドライバであることを確認するための、プラグアンドプレイ（ＰＮＰ）プロトコルをサポートする。縮小ＯＳイメージと共に、ＰＮＰマネジャサービスも稼動する。カーネルの初期化の間、ＰＮＰマネジャのカーネルモード部位は、コンピュータ上の種々のハードウエア装置を検出し、検出されたハードウエア装置に関する情報をレジストリの中の特定の位置に書き込む。本発明の縮小ＯＳイメージでは、ユーザモードＰＮＰマネジャは、それ自身上の検出されたハードウエア装置のためのハードウエアドライバをインストールしないように本質的に無力化されている。これはＰＮＰマネジャのユーザモード部が、検出されたハードウエア装置のためのハードウエアドライバをインストールするか否かを決定する他のＯＳイメージと対照的である。もしハードウエアドライバがインストールされないならば、ＰＮＰマネジャのユーザモード部が、これらのハードウエア装置のためのハードウエアドライバをインストールする。
【００５４】
本発明では、適切なハードウエアドライバがロードし適切に始動すれば、縮小ＯＳイメージは、特定のハードウエアが適切に機能していると想定する。ハードウエアの製造者により供給されるテストの組により、追加のテストがハードウエア上で選択的に実施される。例えば、ユーザは、ハードウエアドライバに対し、ハードウエアと通信するための入力／出力制御コマンド（ＩＯＣＴＬ）を送信し得る。ＩＯＣＴＬコマンドにより戻ってくる値を分析することによって、ユーザは、ハードウエアが想定通り稼動していることを立証できる。別の例としては、ＡＣＭＥネットワークインタフェースカード（ＮＩＣ）が適切に稼動しているかどうか立証するため、ユーザはハードウエアドライバＡＣＭＥＮＩＣ．ＳＹＳをロードする。ＡＣＭＥＮＩＣ．ＳＹＳが首尾よくロードすると、ユーザは、ＡＣＭＥＮＩＣ．ＳＹＳを利用して、ＮＩＣが適切に構成され稼動していることを立証するループバックテストを選択的に実施する。
【００５５】
ＯＥＭ製造者に与えられた、即ち縮小ＯＳイメージの内部で利用可能なハードウエアドライバは、ハードウエアを制御するのに利用され、保護モードをサポートするＯＳにより利用されるために書き込まれる。一つの実施形態では、本発明に係る縮小ＯＳイメージは、ＷＩＮＤＯＷＳオペレーティングシステム環境のような保護モードをサポートするＯＳである。縮小ＯＳイメージには、コンピュータ上に存在し得る幾つかの若しくは全ての可能なハードウエアに対して利用可能な幾つかの若しくは全てのハードウエアドライバが、含まれる。このように、縮小ＯＳイメージはハードウエアに依存しない。一つの実施形態では、「ｔｘｔｓｅｔｕｐ．ｓｉｆ」又は「ｔｘｔｓｅｔｕｐ．ｏｅｍ」のような少なくとも一つのテキストファイルが、コンピュータ上に存在し得る全ての可能なハードウエアに対して利用可能な全てのハードウエアドライバを、列挙する。ユーザは、リストにてハードウエア装置を追加したり削除したりすることにより、コンピュータ上に存在し得る可能なハードウエアのスペクトルを表すテキストファイルを、編集する。ハードウエアドライバのリストを最小限にすることにより、ハードウエア検出及び確認に要求される時間は、最小限化される。
【００５６】
例示のＷＩＮＤＯＷＳオペレーティングシステムの実施形態では、ハードウエアドライバはブートハードウエアドライバか非ブートハードウエアドライバかのいずれかである。縮小ＯＳイメージは、ブートハードウエアドライバを自動的にロードする。ブートハードウエアドライバは、インプット、ストレージ（ハードディスクドライブ及びファイルシステム）、及びディスプレイドライバを含むハードウエアドライバであるが、それらに限定されるものではない。縮小ＯＳイメージは種々のコンピュータ上で起動するので、異なるコンピュータは、異なるディスプレイ、インプット、及びストレージ装置を有し得る。縮小ＯＳイメージは、たいていのコンピュータ上で稼動するドライバの、共通の動的なスーパーセットリストを含む。通常のセットアップの間に利用されるセットアップローダは、デフォルトＶＧＡドライバ、種々の頻繁に利用されるハードディスクドライバのための一般的な大容量記憶装置ドライバ、通常のファイルシステムドライバ、及びキーボードやマウスのための入力ドライバを含むドライバをロードするが、それらに限定されるものではない。ＶＧＡ互換可能なディスプレイ装置は、大抵のＷＩＮＤＯＷＳオペレーティングシステムに必要であるので、デフォルトＶＧＡドライバはＷＩＮＤＯＷＳオペレーティングシステム環境の殆ど全てのコンピュータに対し稼動する。セットアップローダは、ブートドライバとしてこれらのドライバをロードし、リストを作成し、該リストをカーネルに渡しドライバを初期化する。ドライバが初期化する前に、ＳＹＳＴＥＭハイブのサービスキーの下の有効なエントリが形成される。これらのドライバが動的にロードされるので、縮小ＯＳイメージの生成の間には、要求されるレジストリエントリは形成され得ない。「ｓｅｔｕｐｄｄ．ｓｙｓ」のような本発明の別のドライバは、ブートドライバ初期化の間に実行され、他のドライバが初期化される前にレジストリの中に要求されるエントリを形成する。このことは、ドライバを適切に初期化する際に助けとなる。ユーザは、スクリプトの中で条件指定された非ブートハードウエアドライバをロードする。
【００５７】
スクリプトは、５０６にて、大容量記憶装置を分割することを指図する。大容量記憶装置を分割することには、５０８において、大容量記憶装置上にて特定領域を形成し、消去し、又はフォーマットすることが含まれる。一つの実施形態では、縮小ＯＳイメージは、「ｐａｒｔｉｎｆｏ．ｔｘｔ」のようなテキストファイルを参照し、特定の分割情報を得る。ユーザは、「ｐａｒｔｉｎｆｏ．ｔｘｔ」を編集し、ユーザが所望する特定の分割情報を含ましめる。スクリプトは、縮小ＯＳイメージによりサポートされるファイルシステムを伴うフォーマットで大容量記憶装置をフォーマットする。例えば、ＷＩＮＤＯＷＳオペレーティングシステムでは、サポートされるファイルシステムは、ＣＤＦＳ、ＵＤＦ、ＦＡＴ１２、ＦＡＴ３２、及びＮＴＦＳを含む。
【００５８】
参照ＯＳイメージを伴うＣＲＭが、コンピュータから離れて位置しても、スクリプトはネットワークを接続できる。スクリプトは、「ｆａｃｔｏｒｙ．ｅｘｅ」のようなユーティリティを実行し、コンピュータの中の特定のネットワークインタフェースを検出しその特定のネットワークインタフェースのための適切なハードウエアドライバをインストールする。「ｆａｃｔｏｒｙ．ｅｘｅ」ユーティリティは、ＰＮＰマネジャＡＰＩを利用する。ネットワークドライバがインストールされた後、スクリプトは、ＴＣＰ／ＩＰスタックと、「ｎｅｔｆｇ．ｅｘｅ」のようなユーティリティを経由する関連サービスを開始する。ＴＣＰ／ＩＰスタック及び関連サービスにより、コンピュータは、例えば“ｎｅｔ  ｕｓｅ”コマンドにより、リモートコンピュータへアクセスできる。ユーザがネットワーク接続を欲しないのならば、ユーザはスクリプトを修正し「ｆａｃｔｏｒｙ．ｅｘｅ」及び「ｎｅｔｃｆｇ．ｅｘｅ」の実行を不能にする。ネットワーク接続を可能とした後、スクリプトは、リモートＣＲＭからコンピュータ上に参照ＯＳイメージを、５１０において得て、５１２においてインストールする。一つの実施形態では、縮小ＯＳイメージは、サーバメッセージブロック（ＳＭＢ）のような、コンピュータ間のファイルアクセスを可能にするネットワーク接続プロトコルをサポートする。
【００５９】
参照ＯＳイメージをコンピュータ上にインストールすることには、参照ＯＳイメージに係る一つ又は複数のファイルをコンピュータに複写し、ファイルを統合することが、含まれる。例示のＷＩＮＤＯＷＳオペレーティングシステム環境では、ファイルを統合することには、レジストリを作成若しくは更新し、デスクトップアイコンを作成若しくは更新することが、含まれる。スクリプトは、ファイルが複写され統合されるステップを識別する。スクリプトは、ステップが実行される順序も識別する。参照ＯＳイメージがコンピュータ上にインストールされた後、コンピュータは、カスタマへの配送のためシャットダウンされるか、５１４にて再起動される。再起動は、コンピュータをシャットダウンし、それからインストールされた参照ＯＳイメージをロードし開始することを含む。一つの実施形態では、本発明は、単一の再起動のみでのコンピュータ上の参照ＯＳイメージの起動とインストールを目指すフレームワークを与える。即ち、スクリプトにより、ユーザは、単一の再起動により、参照ＯＳイメージをコンピュータ上にイメージ形成できる。本発明により、ユーザは、コンピュータに関連するＣＲＭ上に参照ＯＳイメージをイメージ形成できる。イメージ形成する方法は、ファイルの複写と完全なＯＳインストールを含むファイル転送の方法であれば何でもよく、それらに限定されるものではない。再起動後、インストールされた参照ＯＳイメージは、エンドユーザに対してＯＳイメージのインストール後の個人化を調整する。
【００６０】
ローカルにて又はリモートからアクセス可能な揮発性の及び不揮発性のＣＲＭは、ユーザによりカスタマイズされるテキストベースのスクリプトを与える手段を、構成する。ローカルＣＲＭからの起動、ＰＸＥを経由する起動、又は他のどんなリモートブートプロトコルであっても、３２ビット又は６４ビットアーキテクチャを有するコンピュータをＣＲＭから起動する手段を、構成する。例示のＷＩＮＤＯＷＳオペレーティングシステム環境の「ｃｍｄ．ｅｘｅ」及び「ｃｓｈ．ｅｘｅ」のようなアプリケーションプログラムは、ユーザによりカスタマイズされるテキストベースのスクリプトに係るコンピュータ上の一つ又は複数の機能を実施する手段を構成する。更に、上記の例、及び本明細書の別箇所に記される例は、スクリプトを与える手段、及びコンピュータを起動する手段を構成する。
【００６１】
次に図６を参照すると、リモートの起動コンピュータ６０２から目標のコンピュータ６１６を起動し目標のコンピュータ６１６上に参照ＯＳイメージ６１２をインストールする様子を、ブロック図が示す。例えば、ＷＩＮＤＯＷＳオペレーティングシステムの実施形態では、リモートの起動コンピュータ６０２はリモートインストールサーバである。リモートの起動コンピュータ６０２には、縮小ＯＳイメージ６０６とリモート起動ＣＲＭスクリプト６０８とを含むリモート起動ＣＲＭ６０４が含まれる。一つの実施形態では、目標のコンピュータ６１６は、図１の例示のネットワーク環境の中で記されるようなリモート起動コンピュータ６０２に接続する。目標のコンピュータ６１６は、プレブート実行環境（ＰＸＥ）を含む（が、それに限定されない）多数の方法及びプロトコルによってリモート起動ＣＲＭ６０４から起動する。ＰＸＥブートは、動的ホスト構成プロトコル（ＤＨＣＰ）に適合する。目標のコンピュータ６１６は、ネットワークに渡って、ＤＨＣＰブートリクエストをブロードキャストするか、さもなくば通信する。リモート起動コンピュータ６０２は、ＤＨＣＰブートリクエストを受信し、リモート起動ＣＲＭ６０４から目標のコンピュータ６１６の起動を開始する。目標のコンピュータ６１６を起動することには、リモート起動コンピュータ６０２から目標のコンピュータ６１６の揮発性メモリに縮小ＯＳイメージ６０６をロードし、目標のコンピュータ６１６で縮小ＯＳイメージ６０６を開始することが含まれる。
【００６２】
ローカルでの起動及びリモートからの起動の両方に適用可能な起動プロセスの一つの例は、ＷＩＮＤＯＷＳオペレーティングシステムにて生じる。本発明に係るＷＩＮＤＯＷＳオペレーティングシステムの実施形態では、縮小ＯＳイメージ６０６には、最小限のＷＩＮ３２アプリケーションプログラミングインタフェース（ＡＰＩ）サブシステムを伴うＷＩＮＤＯＷＳ  ＮＴオペレーティングシステムに関連するコードベースが含まれる。最小限のＷＩＮ３２ＡＰＩサブシステムは、インプット／アウトプットＡＰＩ及びコアＷＩＮ３２ＡＰＩを含むが、それらに限定されるものではない。縮小ＯＳイメージ６０６は、縮小ＯＳイメージをロードするために、ブートローダの代わりにセットアップローダを利用する。ユーザは、構成ファイルのローダフラグを利用のためセットアップローダにより条件指定し、リモート起動ＣＲＭ６０４上のＯＳイメージを縮小ＯＳイメージとして識別する。ブートアップの間、セットアップローダはフラグをセットする。セットされたフラグに応じて、縮小ＯＳイメージの内部の機能が実効的となる。例えば、フラグ“／ｍｉｎｉｎｔ”が「ｂｏｏｔ．ｉｎｉ」の中で条件指定される。“／ｍｉｎｉｎｔ”フラグは、“／ｄｅｂｕｇ”や “／ｖｇａ．”のような他のローダフラグと同様である。このように、セットアップローダは、縮小ＯＳイメージ６０６の存在を、縮小ＯＳイメージの中のＯＳコンポーネントに伝達する。ＯＳコンポーネントは、本明細書に記されるようにそのふるまいを変更し、縮小ＯＳイメージとして機能する。例えば、上述のように、機能には、構成情報を揮発性メモリの中にロードすることが含まれる。更に、ユーザモードアプリケーションプログラムは、セットされたフラグに応じて構成を実施する。この実施形態では、インストールＯＳイメージ（図４符号４０６参照）のＯＳコンポーネントに対する修正がＯＳコンポーネントの内部に存在するが、特定のローダフラグの存在によりアクティブとなるまではパッシブである。
【００６３】
セットアップローダは、「ｔｘｔｓｅｔｕｐ．ｓｉｆ」のようなテキストファイルで条件指定される種々のハードウエアドライバを開始する。セットアップローダにより、ユーザは、縮小ＯＳイメージ６０６と目標のコンピュータ６１６のハードウエアとの間の通信を促進するために、追加の起動ハードウエアドライバをロードし、及び／又はハードウエア抽象化層（アブストラクションレイヤー：ａｂｓｔｒａｃｔｉｏｎ  ｌａｙｅｒ）を更新することができる。
【００６４】
セットアップローダは、セットアップローダに係るセッションマネジャの代わりに、通常のセッションマネジャを利用する。ブートアップの間、縮小ＯＳイメージ６０６に係るカーネルは「ｓｍｓｓ．ｅｘｅ」のようなユーティリティを実行する。「ｓｍｓｓ．ｅｘｅ」が実行されると、ＯＳが縮小ＯＳイメージ６０６であることを示すために、カーネル初期化の間に形成されるレジストリキーを探す。レジストリキーが現存するならば、「ｓｍｓｓ．ｅｘｅ」は、ページファイルを作成することを含む（が、それに限定されるものではない）、ＷＩＮＤＯＷＳオペレーティングシステム環境の中に起動するときには通常実施される他の動作を、割愛する。ユーティリティ「ｓｍｓｓ．ｅｘｅ」は、「ｗｉｎｌｏｇｏｎ．ｅｘｅ」のような、レジストリキーを調べるための別のユーティリティも実行する。レジストリキーが現存するならば、「ｗｉｎｌｏｇｏｎ．ｅｘｅ」は、認証ダイアログ及び「ｅｘｐｌｏｒｅｒ．ｅｘｅ」を実行する代わりに、「ｃｍｄ．ｅｘｅ」のようなレジストリ内で条件指定された別のプロセスを実行する。「ｃｍｄ．ｅｘｅ」又は「ｃｓｈ．ｅｘｅ」のようなシェルは、ＷＩＮＤＯＷＳオペレーティングシステムの内部のスクリプト機能をサポートする。「ｃｍｄ．ｅｘｅ」か別のシェルかの選択は、縮小ＯＳイメージ６０６を生成する前に、又は後に、ユーザにより構成可能である。ユーザは、カスタムシェル環境を選択的に条件指定して、縮小ＯＳイメージ６０６のためのデフルトシェルとする。シェルは、「ｗｉｎＢＯＭ．ｉｎｉ」ファイル、又は「ｆｌｏｐｐｙ．ｃｍｄ」ファイルのような一つ又は複数のファイルを伴うスクリプトをサポートし、ユーザにより条件指定される機能を実施する。この実施形態では、縮小ＯＳイメージ６０６は、縮小ＯＳイメージ６０６の中にて、又は、ユーザにより条件指定される、取り外し可能不揮発性メモリのような他の位置の中にて、スクリプトファイルを検索する。スクリプトが配置されているならば、縮小ＯＳイメージ６０６は、スクリプトの内部のコマンドを実行する。スクリプトが配置されていないのならば、縮小ＯＳイメージ６０６はユーザが入力するコマンドを受け入れるためのコマンドプロンプトを表示する。例えば、図６を参照すると、ユーザは、リモート起動ＣＲＭ６０８と関連ＣＲＭスクリプト６１４の、いずれかを含み、両方を含み、又は、いずれも含まず、実行内容を条件指定する。
【００６５】
それから、「ｗｉｎｌｏｇｏｎ．ｅｘｅ」は、「ｃｍｄ．ｅｘｅ」又は他のシェルプロセスが完了するのを待つ。例えば、「ｗｉｎｌｏｇｏｎ．ｅｘｅ」は、２４時間待つこともある。シェルプロセスが２４時間後に完了していないならば、「ｗｉｎｌｏｇｏｎ．ｅｘｅ」は、目標のコンピュータ６１６の再起動を強制する。タイムリミットは、ユーザが、縮小ＯＳイメージ６０６を完全インストールＯＳイメージとして誤用し得ないように、課されている。
【００６６】
縮小ＯＳイメージ６０６は、ユーザにより示されたスクリプトを利用して、目標のコンピュータ６１６上に参照ＯＳイメージ６１２をインストールするように指図する。本発明により、ユーザは、多重レベルのスクリプト環境を与えることによって、手を使う必要のない自動化されたインストールのためのインストールプロセスを構成できる。縮小ＯＳイメージ６０６は、リモート起動ＣＲＭ６０４、目標のコンピュータ６１６に近いＣＲＭ、又はネットワーク経由で目標のコンピュータ６１６がアクセスしうるＣＲＭの、どれでも一つ若しくは組み合わせにおける、「ｗｉｎＢＯＭ．ｉｎｉ」のようなスクリプトを表すファイルを利用する。スクリプトで示される環境により、ユーザは、どんな数のコンピュータであってもそれらに配置するスクリプトのどれでも一つまたは複数分の、実行を調整できる。ユーザが、特定のスクリプトの内部で別のスクリプトの実行を選択的に条件指定することも、想定される。例えば、リモート起動ＣＲＭスクリプト６０８の最終ステップでは、関連ＣＲＭスクリプト６１４を実行できる。
【００６７】
目標のコンピュータ６１６が起動したあと、ユーザにより指定されたスクリプトは、参照ＯＳイメージ６１２と関連ＣＲＭスクリプト６１４を含む関連ＣＲＭ６１０を、配置する。関連ＣＲＭ６１０は、例えば、図１のネットワーク環境の中に記されるように、目標のコンピュータ６１６に近いか、若しくは、目標のコンピュータ６１６に接続する。参照ＯＳイメージ６１２に係るファイルを、目標のコンピュータ６１６に近い大容量記憶装置にて複写し統合することによって、スクリプトは目標のコンピュータ６１６上に参照ＯＳイメージ６１２をインストールする。別の実施形態では、スクリプトは、ファイルシステムを備える大容量記憶装置を先ず分割しそしてフォーマットする。参照ＯＳイメージ６１２を目標のコンピュータ６１６上にインストールした後には、スクリプトは、目標のコンピュータ６１６をシャットダウンするか、若しくは再起動する。
【００６８】
図９は、縮小ＯＳイメージ６０６と共に利用され、大容量記憶装置をフォーマットし目標のコンピュータ６１６上に参照ＯＳイメージ６１２をインストールする、「ｗｉｎＢＯＭ．ｉｎｉ」スクリプトファイルの例である。
【００６９】
次に図７を参照すると、ブロック図が、目標のコンピュータ７０２上に参照ＯＳイメージ７１２をインストールするためにローカルＣＲＭ７０４から目標のコンピュータ７０２を起動する様子を、示す。ローカルＣＲＭ７０４には、縮小ＯＳイメージ７０６とローカルＣＲＭスクリプト７０８が含まれる。目標のコンピュータ７０２は、ローカルＣＲＭ７０４上の縮小ＯＳイメージ７０６から、起動する。
【００７０】
起動後、縮小ＯＳイメージ７０６は、目標のコンピュータ７０２上に参照ＯＳイメージ７１２をインストールすることを指図する、ユーザにより指定されるスクリプトを利用する。縮小ＯＳイメージ７０６は、ユーザにより指定されたスクリプトの位置を探し出し、参照ＯＳイメージ７１２及び関連ＣＲＭスクリプト７１４を含む関連ＣＲＭ７１０を確認する。関連ＣＲＭ７１０は、図６の例と同様に、目標のコンピュータ７０２の近く若しくは遠くに位置する。例えば、図７を参照すると、ユーザは、ローカルＣＲＭスクリプト７０８と関連ＣＲＭスクリプト７１４の、いずれかを含み、両方を含み、又は、いずれも含まず、実行内容を条件指定する。参照ＯＳイメージ７１２に係るファイルを、目標のコンピュータ７０２に係る大容量記憶装置にて複写し統合することによって、スクリプトは目標のコンピュータ７０２上に参照ＯＳイメージ７１２をインストールする。別の実施形態では、スクリプトは、ファイルシステムを備える大容量記憶装置を先ず分割しそしてフォーマットする。参照ＯＳイメージ７１２を目標のコンピュータ７０２上にインストールした後には、スクリプトは、目標のコンピュータ７０２をシャットダウンするか、若しくは再起動する。
【００７１】
次に図８を参照すると、ブロック図が、障害発生のソフトウエア８１０を備えるコンピュータ８０８と、スクリプト８０６を有する縮小ＯＳイメージ８０４を備えるリカバリ媒体８０２との間の相互作用を示す。ユーザは、障害発生のソフトウエア８１０からコンピュータ８０８の回復を実施すべくスクリプト８０６をカスタマイズする。例えば、スクリプト８０６は、図５、図６、又は図７のスクリプトでよい。リカバリ媒体８０２は、縮小ＯＳイメージ８０４とスクリプト８０６を含む。コンピュータ８０８は、障害発生のＯＳ又はアプリケーションプログラムのようなソフトウエアを有する。障害発生のソフトウエア８１０には、崩壊したソフトウエア、動作上の瑕疵があるソフトウエア、さもなくば機能不全のソフトウエアが含まれるが、それらに限定されるものではない。コンピュータ８０８を起動し、ソフトウエアを再インストールし、ソフトウエアへの矯正コードを追加し、さもなくば機能不全を除去するユーザの条件指定の命令に従って、スクリプト８０６は障害発生のソフトウエア８１０の回復を指図する。別の実施形態では、リカバリ媒体８０２は、ネットワークを経由してコンピュータ８０８にアクセスされ得る。
【００７２】
一つの実施形態では、ユーザは関連コンピュータ上のリカバリ媒体８０２を利用し、関連コンピュータ及び他のコンピュータ上のソフトウエアの失敗から回復する。他のコンピュータは、関連コンピュータにより、ローカルにてアクセスされてもリモートからアクセスされてもよい。このように、リカバリ媒体８０２は、どんな数のコンピュータにおいても、特定の類似の問題点の矯正を自動化するのに利用できる。例えば、障害発生のソフトウエアから１台のコンピュータを回復した後、スクリプト８０６は、スクリプト８０６に識別される他の全てのコンピュータに対して、パッチを適用し得る。
【００７３】
別の実施形態では、スクリプト８０６を伴う縮小ＯＳイメージ８０４は、一つ又は複数のコンピュータと相互作用し種々のタスクを実施する。例えば、タスクには、コンピュータ上にデータをバックアップし且つ／又は復元すること、縮小ＯＳイメージ８０４を実行する中央配置サーバから遠隔状態でコンピュータをトラブルシューティングすること、及び、コンピュータのためのリモートサーバにおけるシンクライアント（ｔｈｉｎ  ｃｌｉｅｎｔ）として縮小ＯＳイメージを利用すること等が、含まれる。別の例には、読出し専用メモリからアンチウイルスソフトウエアを実行し別のＯＳイメージ上の感染ファイルのウイルスを除き、他のＯＳイメージ上の感染ファイルを、縮小ＯＳイメージ又は読出し専用媒体上のインストールＯＳイメージからの感染ファイルの矯正バージョンと置換することが、含まれる。
【００７４】
以上の記述により、本発明につき複数の利益ある結果が得られることは明白である。本発明の範囲から乖離することなく生産物及び方法において種々の変更をなすことが可能であるから、上記記述に含まれ、添付の図面に示される全ての事項は、例示としてのみ解釈され、限定された意味にて解釈されないことが、意図されるものである。
【図面の簡単な説明】
【００７５】
【図１】本発明がインプリメントされ得る適切なコンピュータシステム環境の一つの例を示す、本発明に係る一つの実施形態の方法及びシステムのブロック図である。
【図２】オペレーティングシステムコンポーネントを示す、本発明に係る一つの実施形態の方法及びシステムのブロック図である。
【図３】縮小オペレーティングシステムイメージの目標の媒体上へのインストールを示す、本発明に係る一つの実施形態の方法及びシステムのフローチャートである。
【図４】縮小オペレーティングシステムイメージの目標の媒体上へのインストールを示す、本発明に係る一つの実施形態の方法及びシステムのブロック図である。
【図５】縮小オペレーティングシステムイメージを利用して別のオペレーティングシステムイメージをインストールすることを示す、本発明に係る一つの実施形態の方法及びシステムのフローチャートである。
【図６】リモートの起動コンピュータから目標のコンピュータを起動し関連するオペレーティングシステムイメージを目標のコンピュータ上へインストールすることを示す、本発明に係る一つの実施形態の方法及びシステムのブロック図である。
【図７】ローカルのコンピュータ読み取り可能媒体から目標のコンピュータを起動し関連するオペレーティングシステムイメージを目標のコンピュータ上へインストールすることを示す、本発明に係る一つの実施形態の方法及びシステムのブロック図である。
【図８】ソフトウエアのインストールに障害発生のコンピュータと、リカバリ媒体との間の相互作用を示す、本発明に係る一つの実施形態の方法及びシステムのブロック図である。
【図９】縮小ＯＳイメージと共に利用され、大容量記憶装置をフォーマットし目標のコンピュータ上に参照ＯＳイメージをインストールする、「ｗｉｎＢＯＭ．ｉｎｉ」スクリプトファイルの例である。
【符号の説明】
【００７６】
１１０・・・コンピュータ、１２０・・・プロセッシングユニット、１２１・・・システムバス、１３０・・・システムメモリ、１６０・・・ユーザインプットインタフェース、１７０・・・ネットワークインタフェース、１７１・・・ローカルエリアネットワーク（ＬＡＮ）、１８０・・・リモートコンピュータ、２０２・・・オペレーティングシステムコンポーネント、４１２、６０６、７０６、８０４・・・縮小ＯＳイメージ、６１２、７１２・・・参照ＯＳイメージ。
【図１】
2010134941.tif 000003
【図２】
2010134941.tif 000004
【図３】
2010134941.tif 000005
【図４】
2010134941.tif 000006
【図５】
2010134941.tif 000007
【図６】
2010134941.tif 000008
【図７】
2010134941.tif 000009
【図８】
2010134941.tif 000010
【図９】
2010134941.tif 000011