(57)【要約】パーソナルインターネット通信装置において、オペレーティングシステムの構成要素ファイルから、最小オペレーティングシステム機能を提供するのに必要な最適化されたオペレーティングシステムイメージ（ＮＫ．ｂｉｎ）が構成される。オペレーティングシステムイメージのサイズを小型化することによって、オペレーティングシステムのロードに要する時間が短縮される。
2009509265.tif 000002
【特許請求の範囲】
【請求項１】
実行可能な命令およびデータが記憶されている少なくとも１つの記録可能な媒体を有する装置であって、前記実行可能な命令およびデータは、少なくとも１つの処理装置によって実行されると、前記少なくとも１つの処理装置に、
カーネルを含み、所定の最小オペレーティングシステム機能を満たすのに必要なファイルのみを含むように構成された最小オペレーティングシステムイメージファイルを、ブートアップ中に揮発性メモリにロードさせ、
前記最小オペレーティングシステムイメージファイルからのオペレーティングシステムのロードを完了するために前記カーネルを実行させる、ところの装置。
【請求項２】
前記実行可能命令およびデータは、更に、前記少なくとも１つの処理装置に、前記最小オペレーティングシステムイメージファイルに含まれないオペレーティングシステム構成要素を、不揮発性記憶装置の所定の場所から取得させる、請求項１に記載の装置。
【請求項３】
前記不揮発性記憶装置の前記所定の場所はハードドライブにある所定のディレクトリを含む、請求項２に記載の装置。
【請求項４】
前記最小オペレーティングシステムイメージファイルはＮＫ．ｂｉｎファイルを含む、請求項１に記載の装置。
【請求項５】
前記最小オペレーティングシステムイメージファイルは圧縮されたＮＫ．ｂｉｎファイルを含む、請求項１に記載の装置。
【請求項６】
前記所定の最小オペレーティングシステム機能はデスクトップ機能である、請求項１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムの分野に関する。一態様では、本発明は、オペレーティングシステムイメージをメモリにブートするためのシステムおよび方法に関する。
【背景技術】
【０００２】
コンピュータシステムは、今日の社会の数多くの分野に、情報管理機能を提供するために、広範囲にわたり使用されるようになっている。パーソナルコンピュータシステムは、一般に、システムプロセッサと、関連する揮発性メモリおよび不揮発性メモリとを有するシステムユニット、ディスプレイモニタ、キーボード、固定ディスク記憶装置、任意選択の取り外し可能な記憶装置、ならびに任意選択のプリンタを備えるマイクロコンピュータとして定義することができる。これらのパーソナルコンピュータシステムは、主として、１人のユーザ（あるいは、コンピュータサーバーシステムとして機能するパーソナルコンピュータの場合には、ユーザのグループ）に個別の演算能力を提供するために設計された情報処理システムであり、個人または中小企業が購入できるように手頃な価格である。
【０００３】
近年、インターネットを介して情報を交換するために、パーソナルコンピュータおよび／またはコンピュータ機器の使用が著しく増加している。この情報の交換は、ユーザのパーソナルコンピュータ／機器が、複数のインターネットサーバに記憶されているデータにアクセスするクライアントとして機能するクライアント／サーバモデルに基づいている。インターネットサービスプロバイダの中には、インターネットサービスを提供する契約の一環として、ユーザにコンピュータまたは機器を支給している業者もいる。インターネットサービスプロバイダは、通常、オペレーティングシステム（ＯＳ）または組込ＯＳが、ＯＳイメージファイルからメモリにロードされているコンピュータ／機器を契約の一環として支給する。ＯＳイメージファイルは、初期状態では、不揮発性記憶装置（フラッシュメモリ、ＲＯＭまたはハードディスクなど）記憶されており、起動時に、基本入出力システム（ＢＩＯＳ）またはブートローダがブートサイクルを開始して、不揮発性記憶装置に記憶されているＯＳイメージファイルからメモリにＯＳをロードする。不揮発性記憶装置からＯＳイメージをみつけ出し、取得するのに時間がかかるために、特にオペレーティングシステムがより複雑となり、追加のファイルや機能を含むために、ＯＳロード動作に時間がかかることがある。
【０００４】
したがって、パーソナルコンピュータのオペレーティングシステムのブートに要する時間を短縮するか最小化するブートロード装置、システム、およびそのための方法が求められている。更に、インターネットサービスプロバイダによって提供される通信ネットワークを介するパーソナルインターネットコミュニケータ（ＰＩＣ）として使用されるようなコンピュータと共に使用される、効率的にロードが行われるオペレーティングシステムに対する大きなニーズがある。従来のシステムの更に別の制約と不都合は、添付の図面と以下の詳細な説明を参照して、本願のほかの部分を検討すれば、当業者にとって明らかとなろう。
【発明の開示】
【０００５】
本発明の方法および装置は、ブートサイクル中に、デスクトップ機能をロードして実行するために必要なファイルを含むオペレーティングシステム（ＮＫ．ｂｉｎなど）の初期または部分イメージを記憶する一方、不要なファイルは、その後、ブートサイクル以外でロードすることによって、効率的にロードが行われるオペレーティングシステムを提供する。部分イメージファイルは、イメージファイルを圧縮することによって、更にサイズを小さくすることができる。初期ＯＳイメージファイルをできるだけ小型化することによって、システムのブートに要する時間を最小限に短縮することができる。
【０００６】
本発明の説明のための各種実施形態によれば、オペレーティングシステムの少なくとも一部をブートアップするのに要するダウンロード時間またはロード時間を改善する、必要な記憶領域が少なくて済むオペレーティングシステムイメージファイルを生成するための方法およびシステムが開示される。予備的なステップとして、完全なオペレーティングシステム機能を備えるオペレーティングシステムの第１のデバッグイメージが作成される。デバッグイメージビルド中に、デバッグ出力が記録され、所定の最小オペレーティングシステム機能を得る際にロードされるオペレーティングシステムファイルの第１のサブセットが特定される。特定されたオペレーティングシステムファイルの第１のサブセットは、縮小オペレーティングシステムイメージファイルとして編成され、これが、ブートアップ中にロードするために不揮発性メモリに記憶されうる。オペレーティングシステムファイルの第１のサブセットに含まれないオペレーティングシステムファイルに関しては、不揮発性メモリの別の所定の場所に記憶される。オペレーティングシステムファイルの第１のサブセットを改良するために、ステップのシーケンスが反復的に繰り返される。例えば、縮小オペレーティングシステムイメージファイルのデバッグイメージが作成されている間に、デバッグ出力が記録されて、所定の最小オペレーティングシステム機能を得る際にロードされる、オペレーティングシステムファイルの改良された第１のサブセットが特定されうる。その後、特定されたオペレーティングシステムファイルの改良された第１のサブセットが、縮小オペレーティングシステムイメージファイルとして編成されうる。
【０００７】
本発明の目的、利点、および他の新しい特徴は、添付の特許請求の範囲と添付の図面と併せて読めば、以下の詳細な説明から、当業者にとって明らかとなるであろう。
【発明を実施するための最良の形態】
【０００８】
以下に、本発明の例示的な実施形態を記載するが、本発明がこれらの具体的な詳細に従わなくとも実施でき、システム上の制約およびビジネス上の制約に適合させるなど、開発の具体的な目的を達成するために、実装に固有の判断が数多く必要とされ、これは実装によって変わるということが理解される。この種の開発作業は複雑かつ時間がかかるものであるが、本開示の利益を受ける当業者にとって日常的な作業である。例えば、本発明をわかりにくくしたり、本発明を過度に限定することのないように、選択された態様を、詳細に図示するのではなく、ブロック図形式で示す。このような記述および表現は、当業者が、自身の作業の内容を他の当業者に説明し伝えるために用いられているものである。添付の図面を参照して本発明を説明する。
【０００９】
図１を参照すると、例示的なネットワーク１００のブロック図が示されており、複数のコンピュータシステム１１０，１１１，１１２（１０５）が１つ以上の通信ネットワーク１４０を介して通信している。図に示すように、各コンピュータシステム（１１０など）は、マルチメディアアクセス装置またはパーソナルインターネットコミュニケータ（ＰＩＣ）とも呼ばれ、１つ以上の通信リンク１２２を介して、インターネットサービスプロバイダ（ＩＳＰ）１２０と操作可能に接続されている。インターネットサービスプロバイダ１２０は、インターネット１４０に接続され、インターネット１４０は、複数のウェブホストサーバ１５０，１５１，１５２に接続されている。インターネットにある情報にアクセスしようとしているユーザは、ＰＩＣ（１１０など）を使用して、このＰＩＣに記憶されている、ウェブブラウザと呼ばれるアプリケーションプログラムを実行する。
【００１０】
ＰＩＣ１１０は、ＰＩＣ１１０が、インターネットサービスプロバイダ１２０との間での通信内容の送受信を可能にする通信ハードウェアおよびソフトウェアを備える。通信ハードウェアおよびソフトウェアは、ＰＩＣ１１０が、インターネットサービスプロバイダ１２０との通信リンクを確立できるようにする。通信リンクは、様々な接続タイプのどのようなものであってもよく、これには、有線接続、デジタル加入者線（ＤＳＬ）、Ｔ１、総合デジタル通信網（ＩＳＤＮ）またはケーブル接続などの直接リンク、セルラーネットワークまたは衛星ネットワークを介した無線接続、電話モデムのダイヤルアップアクセス、ローカルエリアネットワークを介したイーサネットまたはトークンリングなどのローカルデータ転送システムなどがある。
【００１１】
顧客は、ウェブブラウザにコマンドを入力することによって、情報要求を入力すると、ＰＩＣ１１０は、インターネットサービスプロバイダ１２０に情報要求（特定の話題に関連する文書または特定のウェブページの検索など）を送信し、インターネットサービスプロバイダ１２０は、この要求を、インターネット１４０を介して適切なウェブホストサーバ１５０に転送する。インターネットサービスプロバイダ１２０は、ブラウザから送信された要求を受信し、読み出すためのソフトウェアを実行する。インターネットサービスプロバイダ１２０は、要求をモニタするウェブサーバアプリケーションプログラムを実行しており、この特定のウェブサーバにある情報に対する要求を処理して、ユーザのＰＩＣ１１０にこの情報を送信する。
【００１２】
インターネット上の各ウェブホストサーバ１５０，１５１，１５２は、周知のアドレスを有しており、このアドレスを、ユーザがウェブブラウザに提供して、適切なウェブホストサーバに接続する。情報がユーザのウェブホストサーバ１５０で入手不能な場合、インターネット１４０は、中央リンクとして機能し、これにより、ウェブサーバ１５０，１５１，１５２が、要求された情報を提供するため、相互に通信できるようになる。ウェブサーバ１５０，１５１，１５２は複数のウェブページを有することがあるため、ユーザは、閲覧したい特定のウェブページを指定するアドレスも指定する。サーバのホームページのアドレスは、汎用リソースロケータ（ＵＲＬ）とも呼ばれ、サーバと、サーバでのページの場所とを示す一連の番号であり、郵便番号にたとえることができる。簡略化のために、ユーザが、番号の代わりに名前を使用してサーバと文書を指定できるドメインネームシステムが開発された。ＵＲＬは、ドメイン名の最後に追加の情報を追加することにより、コンテンツプロバイダに属するページのグループのなかから、特定のページを更に指定することができる。
【００１３】
図２を参照すると、ＰＩＣ１１０のブロック図が示されている。ＰＩＣ１１０は、プロセッサ２０２、入出力（Ｉ／Ｏ）制御装置２０４、揮発性のランダムアクセスメモリ（ＲＡＭ）メモリ２０６と不揮発性メモリ２０７を含むメモリ、通信装置２１１（モデムなど）、およびディスプレイ２１４を有する。プロセッサ２０２、Ｉ／Ｏコントローラ２０４、メモリ２０６、および通信装置２１１は、１つ以上のバス２１２を介して相互接続されている。ある実施形態では、プロセッサ２０２は、ＡＭＤ  Ｇｅｏｄｅ  ＧＸ  ３２ビットｘ８６互換プロセッサとして実装され、メモリ２０６は、１２８ＭＢのＤＤＲメモリとして実装され、ディスプレイ２１４はＣＲＴモニタとして実装されている。更に、不揮発性メモリ２０７は、最小容量（１０ＧＢなど）の内蔵の３．５インチハードディスクドライブとして実装されたハードディスクドライブ２０９も有しうる。メモリ２０６，２０７の一方または両方は、ＰＩＣ１１０に内蔵されていても、あるいはＰＩＣ１１０に外付けされていてもよい。通信装置２１１については、世界中の異なる電話方式に対応するために、外部コネクタを有する内蔵の５６Ｋ  ＩＴＵ  ｖ．９２モデムを使用することもできるが、ほかのモデム（ソフトモデムなど）を使用してもよい。当然、プロセッサ２０２、メモリ２０６，２０７、ディスプレイ２１４、および通信装置２１１にほかの装置構成を使用してもよいことはいうまでもない。簡潔を期すと共に理解しやすくするために、ＰＩＣ１１０を構成する要素のすべてを詳細に記載しない。このような詳細は当業者に公知であり、特定のコンピュータベンダおよびマイクロプロセッサの種類に従って変更されうる。更に、ＰＩＣ１１０は、所望の実装に応じて、ほかのバス、デバイスおよび／またはサブシステムを有していてもよい。例えば、ＰＩＣ１１０は、キャッシュ、モデム、パラレルインタフェースまたはシリアルインタフェース、ＳＣＳＩインタフェース、ネットワークインターフェイスカードなどを有していてもよい。
【００１４】
図２に示すように、Ｉ／Ｏ制御装置２０４は、例えば１つ以上のＵＳＢポート、キーボード、マウス、音響スピーカなどのＩ／Ｏデバイス２０５に接続されている。また、Ｉ／Ｏ制御装置２０４は、フラッシュメモリまたは他の読取り専用メモリ（ＲＯＭ）２０８および／またはハードディスクドライブ２０９などの不揮発性記憶装置２０７にも接続されている。ＰＩＣ１１０は、通信装置２１１（モデムなど）によって、通信ネットワーク１２２およびインターネット１４０に接続されているように図示されているが、この接続は、当業者に公知の、望ましいネットワーク通信装置であれば、どのようなものによって確立されてもよい。プロセッサ２０２は、ディスプレイ装置２１４に直接接続されているように示されているが、プロセッサが、ディスプレイまたはＩ／Ｏコントローラ装置を介してディスプレイ２１４に間接的に接続されてもよい。同様に、プロセッサが、Ｉ／Ｏコントローラ２０４を介して不揮発性メモリ２０７に接続されているように図示されているが、直接接続も考えられる。
【００１５】
各種のプログラムコードおよびソフトウェアが、ＰＩＣメモリに記憶されている。例えば、起動時にＰＩＣ１１０を起動する基本入出力システム（ＢＩＯＳ）プログラムコードが、不揮発性記憶装置２０７のＢＩＯＳ  ＲＯＭデバイス２１０に記憶されうる。また、不揮発性メモリ２０７は、ブートローダプログラムを（例えば、ハードドライブ２０９のマスタブートレコード（ＭＢＲ）２３１部分に）記憶している。このブートローダプログラムは、一連のロード機構またはモジュールを取得およびロードすることによって、オペレーティングシステムをロードおよび実行して、不揮発性記憶装置からオペレーティングシステムイメージファイルを取得し、オペレーティングシステムイメージを揮発性記憶装置（ＲＡＭなど）にロードする。周知のように、ＢＩＯＳプログラムコード２１０および／またはＭＢＲ２３１のブートローダによって、オペレーティングシステムのロード操作が実行され、これらの一方または両方は、揮発性記憶装置２０７内のブートロード装置として実装されうる。各種実装では、不揮発性記憶装置２０７は、ＲＯＭ（読取り専用メモリ）、またはＥＰＲＯＭ（消去可能ＰＲＯＭ）、ＥＥＰＲＯＭ（電気的消去可能ＰＲＯＭ）などのＰＲＯＭ（プログラマブルＲＯＭ）、フラッシュＲＡＭ（ランダムアクセスメモリ）、あるいはＢＩＯＳを記憶するのに適した他の任意のタイプのメモリなどとして実装される。また、追加のソフトウェアおよびユーザデータが、不揮発性記憶装置２０７のハードドライブ２０９に記憶されて、プロセッサ２０２によって実行および／または処理されてもよい。特定の実施形態では、ＰＩＣソフトウェアおよびユーザデータ２３０には、マスタブートレコード（ＭＢＲ）２３１、初期または部分ＯＳイメージ２３８、オペレーティングシステムの残りの構成要素２３２（これについては後述する）、アプリケーションプログラムパーティション２３３、ソフトウェア更新モジュール２３４、ユーザデータ２３５、および隠しイメージ復旧モジュール２３６が含まれる。アプリケーション２３３には、ウェブブラウザ、Ｆｌａｓｈプレーヤ、ＰｏｗｅｒＰｏｉｎｔ用のプレゼンテーションビューワ、チャット、ゲーム、圧縮ユーティリティ、電子メール、ワードプロセッサ、スプレッドシート、ＰＤＦビューワ、メディアプレーヤおよび／または作図の各アプリケーションなどが含まれる。更に、ユーザデータ２３５は、ユーザがユーザデータに直接アクセスできるように、ユーザのデータをすべて記憶している。このユーザデータ２３５は、ウイルスや他の手段によってデータが破壊されるのを防ぐために、残りのオペレーティングシステムから保護されている。例えば、ユーザが、保護された内容またはユーザのものではない内容（ＭＢＲ２３１、部分ＯＳ２３８、残りのＯＳ２３２、アプリケーション２３３，更新モジュール２３４など）を削除できないように保証するために、ＰＩＣ１１０内の内容を調べる任意のアプリケーションと対話するシェル／ロックフィルタモジュールが提供されうる。別の実施形態では、保護された内容には、システムパーティション２３９内に記憶されているすべての内容が含まれうる。
【００１６】
動作時に、ＢＩＯＳプログラム２１０は、ブートストラッププログラムの設定可能な要素を記憶しているマスタブートレコード（ＭＢＲ）２３１をみつけ出すことによって起動する。ＭＢＲ２３１は、一般に、固定の場所（ハードドライブディスク２０９またはＣＤ−ＲＯＭの先頭セクタなど）に記憶されている。ＢＩＯＳプログラム２１０は、ＭＢＲプログラム２３１を実行したら、次に、ＭＢＲ２３１内のブートローダプログラム（またはこれを指すポインタ）をチェックし、ブートローダプログラムを実行して、ロードすべきオペレーティングシステムと、記憶装置内での、そのロード元の場所とを決定する。ブートローダプログラムには、不揮発性記憶装置でのカーネルの場所がプログラムされており、次に、ブートローダは、オペレーティングシステムコードのロードを完了するために、カーネルを実行する。カーネルがロードされると、ＢＩＯＳプログラム２１０は、オペレーティングシステムカーネルによって提供される初期アドレスに制御を移し、ＰＩＣ１１０内のＲＡＭにオペレーティングシステムがロードされる。オペレーティングシステムは、ロードおよび初期化されると、プログラムの実行を制御して、資源割当て、スケジューリング、入出力制御およびデータ管理などのサービスを提供しうる。特定の実施形態では、ＢＩＯＳ２１０および／またはブートローダにより、ＰＩＣのオペレーティングシステムは、組込型のクローズドオペレーティングシステム（Ｗｉｎｄｏｗｓ  ＣＥタイプのオペレーティングシステムなど）とすることができるが、ＢＩＯＳおよびブートローダプログラムコードは、Ｗｉｎｄｏｗｓベースのオペレーティングシステム、Ｌｉｎｕｘベースのオペレーティングシステムなどの任意のオペレーティングシステム（これらに限らない）に対応することができる。
【００１７】
オペレーティングシステムを迅速かつ効率的にロードするために、ＰＩＣ１１０は、初期バイナリイメージを使用して、オペレーティングシステムをロードするように設計されており、初期バイナリイメージは、ＯＳカーネルに含まれる実行可能形式であり、オペレーティングシステムの完全な機能を有する通常のＯＳイメージと比べて内容が削減されている。例えば、Ｗｉｎｄｏｗｓ  ＣＥオペレーティングシステムを実行しているパーソナルコンピュータの場合、完全ＯＳイメージ（ＮＫ．ｂｉｎ）は従来、ハードドライブに記憶されていたが、このような従来のＯＳイメージファイルはサイズが大きく、複雑であるため、オペレーティングシステムのロードに要する時間が長くなってしまう。本発明の特定の実施形態では、ＰＩＣ１１０に、編集して不要なファイルを削除した縮小または部分ＯＳイメージファイルを記憶して、実際にインストールされるＢＩＮファイルのサイズを小型化または最小化することで、この問題に対処している。また、任意選択でＮＫ．ｂｉｎファイルが圧縮されて、サイズが更に小型化されてもよい。
【００１８】
初期バイナリイメージの例が、図２に示す部分ＯＳイメージファイル（２３７または２３８）である。本発明の各種実施形態によれば、ブートロード装置は、起動中に、不揮発性記憶装置２０７（コンパクトフラッシュ２０８またはハードディスク２０９など）に記憶されているオペレーティングシステムの圧縮イメージおよび／または部分イメージ２３７または２３８にアクセスする。例えば、起動中にＷｉｎｄｏｗｓ  ＣＥ組込形オペレーティングシステムをロードする場合、ブートロード装置は、不揮発性記憶装置２０７に（例えばハードディスクドライブ２０９のファイルディレクトリに）、ＮＫ．ｂｉｎファイルとして記憶されている部分ＯＳイメージ（部分ＯＳ２３８など）を捜す。ＮＫ．ｂｉｎファイルが最初の場所でみつからなかった場合、ブートロード装置は、残りの不揮発性記憶装置２０７を探すか、あるいは最終的に、ＯＳのロード操作が失敗したと決定する。ＮＫ．ｂｉｎファイルがみつかった場合、ファイルのデータをハードディスクドライブ２０９から取得して、これをシステムＲＡＭ（ＤＤＲメモリ２０６など）に転送するために、先頭クラスタ番号がファイルアロケーションテーブル（ＦＡＴ）から取得されて、シリンダ番号、ヘッド番号およびセクタ番号に変換される。部分ＯＳイメージ（例えば２３８）が圧縮ファイルとして記憶されている場合、これらのソフトウェアイメージを伸張して、伸張したファイルを直接、目的の記憶先に記憶するために、ＢＩＯＳ２１０内のデコンプレッサ２４０が使用されうる。
【００１９】
部分ＯＳイメージファイル（２３８など）を、所定の最小オペレーティングシステム機能を満たすのに必要なカーネルおよびファイルのみを含むように構成して、次に、この部分ＯＳイメージファイルをＮＫ．ｂｉｎファイルとして記憶することによって、ブートアップ時間を短縮することができる。ブートアップ中に部分ＯＳイメージファイル２３８（ＮＫ．ｂｉｎファイルとして記憶されている）にアクセスして、これをロードすることによって、オペレーティングシステムのＰＩＣ１１０のための部分のみがロードされる。実装例では、部分ＯＳのロード操作は、少なくともＰＩＣ１１０用のデスクトップをロードすることに成功する。後から、オペレーティングシステムの追加の構成要素または残りの構成要素２３２が必要となったときに、これらが、部分ＯＳイメージ（ＮＫ．ｂｉｎ）によって構成されるオペレーティングシステムの制御下で、メインまたはシステムのパーティション２３９にある所定のディレクトリ（C:\Windowsディレクトリなど）からロードされて、この所定のディレクトリ位置から残りのＯＳ構成要素２３２が取得される。このため、初期状態でインストールされる部分ＯＳイメージ２３８はシステムのパフォーマンスに影響しうる動作パラメータによって予め設定されており、これには、初期状態では、部分ＯＳイメージ２３８と一緒にロードされない残りのＯＳ構成要素２３２の場所の指定が含まれる。
【００２０】
図３を参照すると、プロセッサ２０２のブロック図が示されている。一実施形態では、プロセッサ２０２は、アドバンスト・マイクロ・デバイセズから入手可能なＧｅｏｄｅ  ＧＸ２プロセッサである。プロセッサ２０２は、プロセッサコア３１０、バスまたはインタフェースユニット３１２、グラフィックプロセッサ３１４、ディスプレイコントローラ３１６、およびビデオプロセッサ３１８を有する。また、プロセッサ２０２は、メモリコントローラ３３０、Ｉ／Ｏコントローラインタフェース３３２、およびディスプレイ装置インタフェース３３４も有するが、これらのコントローラおよびインタフェースがプロセッサ２０２の外付けで実装されてもよいことはいうまでもない。図に示した実施形態では、プロセッサ２０２は、ブートアップ時に部分ＯＳイメージ２３７，２３８をロードし、その後、残りのＯＳ構成要素２３２を必要に応じてロードするために、メモリ２０６，２０７に記憶されているソフトウェアを実行する。
【００２１】
図４を参照すると、本発明の各種実施形態に従って構成された、元のソフトウェアイメージ４００の例示的なファイル構造と、これと対応する部分ソフトウェアイメージ４０２のファイル構造が示される。元のソフトウェアイメージファイル４００の構造は、Ｗｉｎｄｏｗｓ  ＣＥオペレーティングシステム（ＯＳ）などの数多くのオペレーティングシステムイメージに使用され、Ｗｉｎｄｏｗｓ  ＣＥの場合は、元のＯＳファイルは、ＮＫ．ｂｉｎファイルに記憶されている。図に示すように、元のＯＳイメージファイル４００は、ファイルヘッダ（ＦＨ）４０１と、１つ以上のレコード４０３（レコード１、レコード２、…、レコードｎ）を含むようにフォーマットされた１つの単一ファイルに記憶されている。ファイルヘッダ４０１は、シグニチャ、イメージのロードの始点となるアドレス、およびイメージファイルの総長さを有する。ファイル内の各レコード（レコード１、レコード２、…、レコードｎ）には、ヘッダと、その後に続くレコードのデータペイロードが含まれる。レコードヘッダ（ＲＨ）には、データの宛先アドレス、データ長、およびレコードのデータの内容を検証するために使用される妥当性検査コード（チェックサムなど）が含まれる。
【００２２】
本発明によれば、部分ＯＳイメージファイル４０２は、実際にインストールされる部分ＯＳイメージファイル４０２のサイズを小型化または最小化する目的で、不要なファイルを除去するために元のＯＳイメージファイル４００（ＮＫ．ｂｉｎなど）を編集して編成される。特定の実施形態では、編集または除去されるファイルは、所定の最小オペレーティングシステム機能を得るのには、ＰＩＣ１１０が必要としないファイルである。図中の例では、部分ＯＳイメージファイル４０２は、ファイルヘッダ４０４と、最小オペレーティングシステム機能を提供する選択されたレコード（例えばレコード１、レコード４、およびレコードｎ）のペイロード４０６として構成されている。ファイルヘッダ４０４は、ペイロードファイル４０６を記憶すべき宛先に関する情報を含んでおり、ペイロード４０６は、最小オペレーティングシステム機能を得るために（例えば、デスクトップがロードされディスプレイで実行されている状態を得るために）必要なレコードを含む。部分ＯＳイメージファイル４０２に含まれないレコード（例えば、レコード２、レコード３、レコード５、レコード６など）は、残りのＯＳ構成要素４０８（例えば図２の残りのＯＳ２３２）として記憶され、これらは、必要に応じて、所定のディレクトリ４１２（C:\Windowsディレクトリなど）からロードされる。ＯＳイメージ４０２を小型化することによって、記憶媒体（インターネットサーバ、ファイルサーバ、ハードドライブ、メモリなど）間でＯＳイメージファイルを転送するのに要する時間が短縮される。
【００２３】
任意選択で、レコードベースの圧縮機構を使用して、部分ＯＳイメージファイル４０２を記憶するのに必要な媒体の領域を更に減らすことができる。特定の実施形態では、部分ＯＳファイル４０２のヘッダ部分４０４は圧縮されないが、ペイロード４０６は圧縮される。圧縮されたイメージは、図２に示す、ＢＩＯＳ２１０内のデコンプレッサ２４０によって伸張される。このようにして、ペイロード４０６を所望の場所に直接配置するためにヘッダ情報４０４が使用され、ペイロード４０６の伸張は、この配置プロセスの間、その実行中に（on the fly）行われる。この方式は、ＰＩＣのブート時間を短縮し、ブートパフォーマンスを大幅に向上させる。ＯＳイメージファイルの圧縮に関する更に詳しい詳細は、２００５年６月３０日出願の、アドバンスト・マイクロ・デバイセズに譲渡された米国特許出願第１１／１７２，５０９号「ソフトウェアイメージを生成するための伸張技術（Decompression Technique For Generating Software Image）」に記載されている。同出願を、本明細書中に完全に記載したものとして、その全体を、参照によりここに援用する。
【００２４】
図５を参照すると、ブートパフォーマンスのために最適化された部分ＯＳイメージを編成するための例示的な方法５００を示すフローチャートが示される。オペレーティングシステムビルダによって、元のイメージが生成されたら、部分または圧縮イメージファイルを後処理ステップとして生成することができること、ならびに、図に示した方法を使用して、どのような最小オペレーティングシステム機能を提供する部分または初期ＯＳイメージを構成できることはいうまでもない。しかし、説明を簡単にするために、図５の例は、デスクトップ機能を起動および実行するのに必要な最小ＯＳイメージを定義する場合を採り上げて記載する。
【００２５】
ステップ５０２において、予備的なステップとして、完全ＯＳイメージが取得され、完全ＯＳイメージに対してデバッグビルド処理が実行される。この時点で、完全ＯＳイメージ（Ｗｉｎｄｏｗｓ  ＣＥ  ＯＳに使用されるものなど）のサイズは約３４ＭＢであり、これには、レジストリファイル、ホストドライバおよびＯＳカーネルに必要なデバイスドライバ（ディスプレイドライバ、オーディオドライバなど）が含まれるが、これらに限定されない。
【００２６】
次に、完全ＯＳからロードされているファイルが記録されている間に、コンピュータの動作機能がモニタされるように、デバッグビルド操作が実行される。所望のデバッグビルドツールであれば、どのようなものでも使用することができるが、特定の実施形態では、Ｗｉｎｄｏｗｓ  ＣＥのイメージファイル（ＮＫ．ｂｉｎ）のデバッグイメージを作成するために、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＣＥ  Ｐｌａｔｆｏｒｍ  Ｂｕｉｌｄｅｒツールを使用する。どのようなデバッグビルドツールを使用する場合でも、ステップ５０４において、デバッグ出力が記録される一方、ステップ５０６において、所定の最小オペレーティングシステム機能が得られた（デスクトップが起動されて、画面上で実行されているなど）ことを検出するために、画面が観察される。最小機能が得られていない場合（判定５０６の結果が「いいえ」の場合）、ファイルのロードの記録が引き続き行われる（線５０７に示す）。最小機能が得られた場合（判定５０６の結果が「はい」の場合）、ステップ５０８において、記録されたファイルが部分ＯＳイメージとして編成される。記録されたファイルを編成して、縮小または変更イメージを作成するこのプロセスでは、Ｐｌａｔｆｏｒｍ  Ｂｕｉｌｄｅｒツールを使用して、イメージに対する変更を反復的に実行しながら、最小イメージが正しくブートすることを保証するために、デバッグ出力を記録する。このようにして、ブートサイクル中に、所定の最小オペレーティングシステム機能を提供するのに必要なファイルのみを含むように、部分ＯＳイメージが構成され、不要なファイルは、その後、ブートサイクル以外でロードするように、部分ＯＳイメージファイルとは別に記憶されうる。初期ＯＳイメージファイルをできるだけ小型化することによって、システムのブートに要する時間を最小限に短縮することができる。
【００２７】
例えば上記の例のように、部分ＯＳイメージを１回のデバッグビルド操作で構成することも考えられるが、本発明の特定の実施形態は、所望の結果を達成し、最適化された部分ＯＳイメージファイルを得るために、１つ以上の経路を使用しうる。例えば、ステップ５０２〜５０８を使用して、手動デバッグビルド操作を実行し、第１の仮のＯＳイメージを得て、その後、これらのステップを繰り返す反復プロセスを使用して、部分ＯＳイメージの編成（assembly）が改良されうる。この実装では、ステップ５０８で編成された第１の仮の部分ＯＳイメージに、最小機能を得るのに必要な全てのファイルが含まれているとは限らない。不足ファイルを追加するために、ステップ５１０において、第１の仮の部分ＯＳイメージがロードされ、この部分ＯＳイメージに対してデバッグビルド操作が実行される。部分ＯＳイメージからロードされたファイルが記録されている間に、コンピュータの動作がコンピュータのディスプレイ画面で観察される。例えば、ステップ５１２においてデバッグ出力が記録される一方、ステップ５１４において、デスクトップが起動され実行されたことを検出するために、画面が観察される。所定の最小オペレーティングシステム機能（デスクトップが画面に表示されているなど）が得られない場合（判定５１４の結果が「いいえ」の場合）、ステップ５１２において記録された不足ファイルが、編成ステップ５１６によって部分ＯＳイメージに追加され、反復プロセスが繰り返される（線５１７に示す）。最小機能が得られた場合（判定５１４の結果が「はい」の場合）、ステップ５１８において、記録されたファイルと不足ファイルが、最小部分ＯＳイメージとして編成される。完全ＯＳイメージにあるほかの残りのファイルのすべてが、必要に応じて、その後、ブートサイクル以外で取得できるように、残りのＯＳ構成要素ファイルとしてハードドライブに記憶されうる。
【００２８】
周知のように、部分ＯＳイメージについて、所望のレベルまたは最適化されたレベルの機能を得て、ＯＳイメージのサイズを小型化するために、ステップ５１０〜５１７が、必要に応じて反復的に繰り返されうる。例えば、第１の経路で、完全ＯＳイメージ（例えばＷｉｎｄｏｗｓ  ＣＥ  ＯＳに使用されるものなど）のサイズを約３４ＭＢから約１２ＭＢに小型化することができ、追加の反復的な経路によって、ＯＳイメージのサイズを約８ＭＢに更に小型化することができる。
【００２９】
本発明は、本開示の教示の利益を得る当業者にとって自明の、異なるが均等の別法によって変更および実施されてもよいため、上記に記載した特定の実施形態は例に過ぎず、本発明の限定事項とみなすべきではない。したがって、上記の説明は、記載した特定の形式に本発明を限定することを意図するものではなく、当業者が、本発明の最も広い形の趣旨および範囲から逸脱することなく、さまざまに変更、置換、変形することができるように、添付の特許請求の範囲によって規定される本発明の趣旨ならびに範囲に含まれる全ての変形例、均等物および代替例を含むことを意図していることが理解されるべきである。
【図面の簡単な説明】
【００３０】
【図１】１つ以上の通信ネットワークを介して通信している複数のコンピュータシステムのブロック図。
【図２】本発明の各種実施形態による、コンピュータシステム（パーソナルインターネットコミュニケータなど）のシステムブロック図。
【図３】パーソナルインターネットコミュニケータに使用するためのプロセッサシステムのブロック図。
【図４】本発明の各種実施形態による、元のソフトウェアイメージの例示的なファイル構造と、これと対応する部分ソフトウェアイメージのファイル構造を示す図。
【図５】ブートパフォーマンスのために最適化された部分ＯＳイメージを編成するための例示的な方法を示すフローチャート。
【図１】
2009509265.tif 000003
【図２】
2009509265.tif 000004
【図３】
2009509265.tif 000005
【図４】
2009509265.tif 000006
【図５】
2009509265.tif 000007
【国際調査報告】
2009509265.tif 000008
2009509265.tif 000009
2009509265.tif 000010