(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0007】
<本実施形態の概略>
本明細書に添付した図面の全体を通して、同種の特徴的要素を参照するために、同一の参照番号が使用されている。本明細書に記載された多種多様な実施例は、可搬型記憶装置が存在することが検出された際に、当該可搬型記憶装置内に記憶されているオペレーティング・システムを使用してコンピュータ装置を自動的にブートする機能を実現する。当該可搬型記憶装置が存在することが検出された際に、当該コンピュータ装置は、当該可搬型記憶装置から動的にブートし、当該可搬型記憶装置が存在しないことが検出された際には、当該コンピュータ装置は、当該コンピュータ装置と関係付けられたブート・モジュールにおいて、事前にプログラムされていたブート順序に復帰するように構成されることが可能である。本発明に係る幾つかの実施例においては、当該オペレーティング・システムは、当該可搬型記憶装置内において完全にカプセル化されており、例えば、当該オペレーティング・システムは、当該コンピュータ装置を一番最初にブートしたオペレーティング・システムから完全に分離された別個のものであったりする。
【0008】
以下の検討においては、「動作環境」と題された節は、本発明に係る一つ以上の実施例を使用して発明を実施可能な一つの環境を提示し、説明する。続いて、「レガシーBIOS(Basic Input / Output System)ブート動作」と題された節は、本発明に係る一つ以上の実施例に従って、レガシー型のブート実行システムにおいて、コンピュータ装置のブート動作を動的にリダイレクトする動作を説明する。続いて、「UEFI(Unified Extensible Firmware Interface)ブート動作」と題された節は、本発明に係る一つ以上の実施例に従って、UEFIをサポートするコンピュータ装置のブート動作を動的にリダイレクトする動作を説明する。最後に、「例示的なシステム」と題された節は、本発明に係る一つ以上の実施例を実装するために使用可能な例示的なシステムを説明する。
【0009】
本発明に関し、以下において後述する多種多様な実施例の概要を上述したので、続いて、本発明に係る一つ以上の実施例が実装されることが可能な例示的な動作環境について以下のとおり検討する。
【0010】
<動作環境>
図1は、本発明に係る一つ以上の実施例に従う一つの動作環境を図示し、これは
図1において一般的に参照番号100で示される。環境100は、一つ以上のプロセッサ104、一つ以上のコンピュータ読み取り可能記憶媒体106、および一つ以上のオペレーティング・システム108を有するコンピュータ装置102を含んでおり、当該オペレーティング・システム108は、コンピュータ読み取り可能記憶媒体106の中に存在し、プロセッサ104によって実行されることが可能である。上述したコンピュータ読み取り可能記憶媒体は、限定的な意味ではなく例示的な意味で言うならば、あらゆる形態の揮発性および不揮発性のメモリや典型的にはコンピュータ装置と関係付けられた記憶媒体を含むことが可能である。そのような記憶媒体は、ROM、RAM、フラッシュ・メモリ、ハード・ディスク、着脱可能記憶媒体などを含むことが可能である。コンピュータ装置102の一つの具体例は
図6において説明され、図示されている。
【0011】
加えて、コンピュータ装置102は、PCブート・モジュール110を含む。PCブート・モジュール110は、ソフトウェア、ハードウェア、ファームウェアおよび/またはこれらの組み合わせの中の任意の形態をとり得る概念として表現され、コンピュータ装置102をブートしたり、オペレーティング・システム108のような関連するオペレーティング・システムをロードしたりすることを可能にするように構成されている。本発明に係る幾つかの実施例においては、PCブート・モジュール110は、コンピュータ装置のブート動作を可能にするように構成されたプラットフォーム用ファームウェア(例えば、BIOS(Basic Input / Output System)コード、UEFI(Unified Extensible Firmware Interface)がアクセス可能なファームウェア・コードなど)の多種多様な形態を具備することが可能である。代替的に又は追加的に、PCブート・モジュール110は、以下においてさらに後述するように、コンピュータ装置102の直列的なブート実行順序を可能にするように構成される。
【0012】
コンピュータ装置102は、ブート・リダイレクト実行モジュール112をさらに含んでいる。ブート・リダイレクト実行モジュール112は、ソフトウェア、ハードウェア、ファームウェアおよび/またはこれらの組み合わせの中の任意の形態をとり得る概念として表現され、コンピュータ装置102に接続された可搬型記憶装置(例えば、可搬型記憶装置114)の存在を検出するように構成されている。当該可搬型記憶装置は、コンピュータ装置102に対して任意の方法で接続されることが可能であり、そのような接続方法としては例えば、ケーブルを介した方法、当該コンピュータ装置のプラグに直接挿入する方法、無線により接続する方法などが含まれる。ブート・リダイレクト実行モジュール112は、以下においてさらに後述するとおり、コンピュータ装置102のブート動作を当該可搬型記憶装置内に存在するオペレーティング・システムに動的にリダイレクトすることを可能にするようにさらに構成されることが可能である。ブート・リダイレクト実行モジュール112は、単一のモジュールとして図示されているけれども、それは、一つのモジュール、複数の別々のモジュールまたは複数のモジュールを一つに組み合わせたものとして実装可能であることが理解されよう。
【0013】
図1において、可搬型記憶装置114は、例えば、USBメモリ型記憶装置として図示されている。しかしながら、本願請求項に記載された技術的主題の基本思想から逸脱すること無しに、任意の適切な可搬型記憶装置を使用可能であることが当業者には理解でき、それらの具体例については、以下において述べられている。可搬型記憶装置114は、コンピュータ装置102に取り付けたり取り外したりすることが出来、および/またはコンピュータ装置102との間でデータを交換するように構成されることが可能である。
【0014】
可搬型記憶装置114はコンピュータ読み取り可能記憶媒体116を含む。コンピュータ読み取り可能記憶媒体116は、限定的な意味ではなく例示的な意味で言うならば、あらゆる形態の揮発性および不揮発性のメモリや典型的にはコンピュータ装置と関係付けられた記憶媒体を含むことが可能である。コンピュータ読み取り可能記憶媒体116は、オペレーティング・システム118を含んでおり、コンピュータ装置102の中に含まれているオペレーティング・システム108と同一であっても異なっていてもよい。
【0015】
コンピュータ装置102は、限定的な意味ではなく例示的な意味において例えば、デスクトップ・コンピュータ、ポータブル・コンピュータ、(例えば、PDA(Personal Digital Assistant)等の)ハンドヘルド・コンピュータ、携帯電話などを含む任意の適切なコンピュータ装置として具体化することが可能である。
【0016】
例示的な動作環境について上記のとおり説明したので、続いて、本発明に係る一つ以上の実施例に従って、レガシー型のブート・コードを使用してコンピュータ装置がブートする方法を動的にリダイレクトする動作について検討する。
【0017】
<レガシーBIOS(Basic Input / Output System)ブート動作>
近年のコンピュータは、数種類の記憶装置(例えば、オペレーティング・システムを含んでいる記憶装置)から複数のアプリケーションを実行するように手動で設定することが可能である。例えば、コンピュータ内のBIOSの構成や設定にアクセスしたり構成や設定を修正したりする方法をユーザが良く知っているならば、コンピュータがブートするためのオペレーティング・システムを何れの記憶装置の中から見つけようとするかに関する順番を当該ユーザは手動で再プログラムすることが可能である。この特定のシナリオにおいて、当該コンピュータは、どの記憶装置をブート元として探しに行くかについての直列的な順番を保持し、このような順番の例としては、最初にまずはCD−ROMドライブの中を探し、続いて、ハード・ディスクの中を探すものがある。本発明に係る幾つかの実施例においては、上述した直列的な順番は、ブート装置の各々についての相対的な優先順位を示すことが可能である。BIOSが再プログラムされ、および/または修正されるまでは、当該コンピュータの上述した直列的なブートの順番は同一のままである。関連するBIOS設定にアクセスする方法についての知識無しには、ユーザは、当該コンピュータのブート順序を修正することが出来ないままであり、当該コンピュータ上に新しいオペレーティング・システムを改めてインストールしない限り、当該コンピュータがブートすることが可能なオペレーティング・システムを変更することも一定程度まで出来ないままである。
【0018】
本明細書に記載された多種多様な実施例は、可搬型記憶装置が存在することが検出された際に、当該可搬型記憶装置内に記憶されているオペレーティング・システムを使用してコンピュータ装置を自動的にブートする機能を実現する。例えば、ブート可能なオペレーティング・システムを含んでいるUSBメモリ型記憶装置は、コンピュータ装置に取り付けることが可能である。当該コンピュータ装置は、当該可搬型記憶装置が存在することを判断し(例えば、当該可搬型記憶装置が当該コンピュータ装置に接続されていることを判断し)、当該可搬型記憶装置内に含まれているブート可能なオペレーティング・システムを認識し、そのブート実行順序を当該可搬型記憶装置に動的にリダイレクトするように構成されることが可能である。任意の適切な可搬型記憶装置を使用することが可能であり、そのような可搬型記憶装置の例としては、可搬型のCD−ROM装置、可搬型のメモリ・フラッシュ・カード、外付けハード・ディスク、USBメモリ型記憶装置などがある。本発明に係る幾つかの実施例においては、当該可搬型記憶装置内に格納されているオペレーティング・システムは、当該可搬型記憶装置内において完全にカプセル化される当にすることが可能である。例えば、当該可搬型記憶装置内に含まれているオペレーティング・システムは、コンピュータ装置の内部に常駐している如何なるオペレーティング・システムからも完全に分離され、及び/又はこれらから完全に独立したものとすることが可能である。
【0019】
可搬型記憶装置から動的にブートを実行することは、当該可搬型記憶装置が検出された際に、当該コンピュータ装置が当該可搬型記憶装置からブート動作を実行し、当該可搬型記憶装置が検出されない場合には、当該コンピュータ装置内に事前にプログラムされた直列的な順番に従ってブート動作を実行する。例えば、当該可搬型記憶装置が検出されない場合には、当該コンピュータ装置は、自身と関係付けられたブート実行モジュール内において事前にプログラムされている順番に従ってブート動作を実行することが可能であり、例えば、最初に「記憶装置A」からブート動作を実行し、続いて「記憶装置B」からブート動作を実行し、以下同様に続く。しかしながら、当該可搬型記憶装置が検出された際に、当該コンピュータ装置は、自身もブート実行モジュール内において事前にプログラムされているブート順序から逸脱して、当該検出された可搬型記憶装置からブート動作を実行することが可能である。このような動作は、ユーザからの手動操作による介入無しに実現することが可能であり、例えば、コンピュータ装置のブート・コードをユーザに手動で変更させるようなこと無しに実現される。当該可搬型記憶装置は、当該コンピュータ装置の直列的なブート実行順序の中において指定された複数の記憶装置とは異なるものとすることが可能である。例えば、当該可搬型記憶装置は、上述した具体例において述べた「記憶装置A」および「記憶装置B」とは異なる種類の記憶装置とすることが可能である。
【0020】
本発明に係る幾つかの実施例においては、ブート動作を可搬型記憶装置に動的にリダイレクトする制御は、選択的に有効化したり無効化したりすることが可能である。例えば、幾つかのオペレーティング・システムや装置は、ブート動作のリダイレクト制御をユーザが有効化したり無効化したりすることを可能にするソフトウェアやアプリケーションを含むことが可能である。本発明に係る幾つかの実施例においては、上述したブート動作の動的リダイレクト制御機能は、デフォルト値として「有効化状態」の設定値を持つことが可能であり、別の実施例においては、この機能は、デフォルト値として「無効化状態」の設定値を持つことが可能である。上述したブート動作の動的リダイレクト制御機能が有効化されている場合には、当該可搬型記憶装置が存在することを検出した際に、当該コンピュータ装置は、ブート動作を当該可搬型記憶装置に動的にリダイレクトすることが可能である。上述したブート動作の動的リダイレクト制御機能が無効化されている場合には、当該可搬型記憶装置が存在することが検出されるか否かとは無関係に、当該コンピュータ装置は、自身と関係付けられたブート実行モジュールの中において事前にプログラムされているとおりにブート動作を実行する。
【0021】
幾つかの場合においては、上述した有効化/無効化の機能を有するソフトウェアやアプリケーションは、一般的に全てのユーザからアクセスすることが可能である一方で、そのようなソフトウェアへのアクセスは、指定された特権を有するユーザだけに限定されることも可能である。
【0022】
動作中において、上述したブート動作の動的リダイレクト制御機能は、本発明の一実施形態によれば、以下に述べるとおりに実装することが可能である。まず最初に、一つのファイルが生成され、対応するコンピュータ装置のブート動作の動的リダイレクトの状態を反映している情報(例えば、ブート動作の動的リダイレクトが有効化されているか無効化されているかに関する情報)を含めるために当該ファイルを修正することが可能である。当該ファイルは任意の適切な方法に従って構成設定されることが可能であり、当該ファイルは例えば、セキュリティ保護されたファイル、テキスト形式ファイル、バイナリ形式ファイル、広く一般にアクセス可能なファイルまたはこれらの組み合わせを含む。本発明に係る幾つかの実施例においては、上述したブート動作の動的リダイレクト制御機能は、ファイル以外の形態で提供されることも可能であり、例えば、構成設定、パーティション(区画)テーブル、メタ・データなどのような形式で提供されることも可能である。代替的に又は追加的に、トリガー・ファイルのような追加のファイルが生成され、当該トリガー・ファイルは、当該コンピュータ装置のアクセスを上述した有効化/無効化に関する情報を含んでいるファイルに向けるように構成されることが可能である。本発明に係る幾つかの実施例においては、上述したトリガー・ファイルは、対応するコンピュータ装置のブート動作の動的リダイレクト機能を有効化するアプリケーションにユーザがアクセスすることを介して動的に生成されたり更新されたりすることが可能である。本発明に係るその他の実施例においては、当該コンピュータ装置の内部に常駐するオペレーティング・システムのインストール動作の期間内において、上述したトリガー・ファイルがインストールされることが可能である。
【0023】
例えば、本発明に係る一つ以上の実施例に従う方法における複数の処理ステップを記述するフロー図を図示する
図2について検討する。特に、
図2は、修正されたレガシー型のブート実行プロセスを利用するコンピュータ装置のブート動作を動的にリダイレクトする一例を図示する。
【0024】
レガシー型のブート環境においては、コンピュータ装置は、起動時において、例えばBIOS等のようなファームウェアを使用して、当該コンピュータ装置と関係付けられた多種多様なデバイスを認識し初期化することが可能である。典型的には、BIOS設定画面にアクセスするために、製造販売元が予め定義したキーボード操作を行うことにより、ユーザは、BIOSが構成設定される方法を変更することが可能である。当該BIOSが当該コンピュータ装置の初期化動作の部分を完了したことに応じて、処理ステップ202は、
図2のフローの実行制御をマスター・ブート・レコードに転送する。当該マスター・ブート・レコードは、任意のタイプの記憶装置内に格納されることが可能である。より典型的には、当該マスター・ブート・レコードは、BIOSによってサポートされ、及び/又は認識されている記憶装置の上に格納される。しばしば、当該マスター・ブート・レコードは、パーティション毎に区分された記憶装置の最初のセクターであり、オペレーティング・システム等のような一つ以上のアプリケーションを起動するためにコンピュータ装置によって利用されるより詳細な情報を含んでいる。当該マスター・ブート・レコードは、例えば、パーティション・テーブルを含むこと等により、一つのディスク装置がどのような方法でパーティション毎に区分されるのかを記述する情報をさらに含んでいる。
【0025】
処理ステップ204は、
図2のフローの実行制御をボリューム・ブート・セクターに転送する。当該ボリューム・ブート・セクターは、当該マスター・ブート・レコードによって間接的に起動されることが可能な追加のソフトウェアや追加のアプリケーションを含んでいる。本発明に係る幾つかの実施例においては、当該ボリューム・ブート・セクターは、
図1に記載されたブート動作リダイレクト実行モジュール112の一部分又は全体を含むことが可能である。
【0026】
処理ステップ206は、ブート動作の動的リダイレクト制御が有効化されているかを判定する。この判定動作は、適切な方法により実現することが可能であり、例えば、フラグの設定、トリガー・ファイルの存在、ファイルから抽出された情報などに基づく方法により実現することが可能である。例えば、本発明に係る幾つかの実施例においては、当該コンピュータ装置は、まずトリガー・ファイルが存在するか否かを判定し、当該トリガー・ファイルが存在するならば、上述したとおり、ブート動作の動的リダイレクト制御機能の状態を示す情報(有効化/無効化を表す情報)に関する第2のファイルを処理する。例えば、トリガー・ファイルが存在しないと判定された、及び/又は上述した第2のファイルの中の情報が無効化状態を示していると判定された等により、上述したブート動作の動的リダイレクト制御機能が有効化されていないと判定されたならば、当該コンピュータ装置の実行制御は処理ステップ208に進み、当該コンピュータ装置自身の内部に存在するオペレーティング・システム(OS)をブートする、及び/又は関連するブート実行モジュールによって指示されたOSをブートする。代替的に、例えば、トリガー・ファイルが存在すると判定された、及び/又は上述した第2のファイルの中の情報が有効化状態を示していると判定された等により、上述したブート動作の動的リダイレクト制御機能が有効化されていると判定されたならば、当該コンピュータ装置の実行制御は処理ステップ210に進む。
【0027】
処理ステップ210は、例えば、ブート可能なオペレーティング・システムを含んでいる可搬型記憶装置等のような、さらに別のブート可能な記憶装置が存在するか否かを判定する。この処理ステップは、任意の適切な方法により実行されることが可能である。例えば、ファームウェアは、取り付けられたデバイスに関してサポートされているバスの種別を問い合わせた上で、当該デバイスからの応答を待つように構成されることが可能である。本発明に係る幾つかの実施例においては、当該ファームウェアは、事前に設定されたブート実行順序(例えば、一番最初がUSB、続いて、ハード・ディスクなど)を決定し、最初の分類種別に属する全てのデバイス(上記の例で言えば、USB)を列挙し、続いて、パーティション・レコード、及び/又はアクティブ状態のパーティション(例えば、ブート可能なパーティション)の存在の有無をスキャンするように構成されることが可能である。その他の更なるブート可能な記憶装置が存在しないと判定されたならば、当該コンピュータ装置の実行制御は処理ステップ208に進む。代替的に、本発明に係る一つ以上の実施例においては、更なるブート可能なデバイスが存在すると判定されたならば、当該コンピュータ装置の実行制御は、処理ステップ212に進む。
【0028】
処理ステップ212は、当該ブート可能な記憶装置が、許可済みリストの中に含まれているか否かを判断する。例えば、本発明に係る幾つかの実施例においては、当該コンピュータ装置は、所定の情報を含んでいるファイルやリストを処理することが可能であり、当該所定の情報は、当該コンピュータ装置がブートを実行する起点とすることが許可されているブート可能な複数の記憶装置と関係付けられた情報であり、幾つかの実施例においては、当該所定の情報は、当該コンピュータ装置がブートを実行する起点とすることが許可されていないブート可能な複数の記憶装置と関係付けられた情報である。もしも、当該ブート可能な記憶装置が許可済みのブート可能な記憶装置ではないと判定されたならば、当該コンピュータ装置の実行制御は処理ステップ208に進む。代替的に、当該ブート可能な記憶装置が許可済みのブート可能な記憶装置であると判定されたならば、及び/又は当該ブート可能な記憶装置が許可済みリストの中に含まれていると判定されたならば、当該コンピュータ装置の実行制御は処理ステップ214に進む。許可済みである記憶装置を判定するための任意の適切な方法を利用することが可能であり、そのような方法の例としては、一つ以上の許可済みのデバイスを識別する情報を具備するリストを介した方法、一つ以上の許可されていないデバイスを識別する情報を具備するリストを介した方法、または上述した方法の任意の組み合わせなどがある。本発明に係る幾つかの実施例においては、ユーザは、「許可済みの」及び/又は「許可されていない」デバイスの一覧からなるリストを編集したり管理したりすることが可能である。
【0029】
処理ステップ214は、
図2のフローの実行制御を当該ブート可能な記憶装置と関係付けられたマスター・ブート・レコードに転送する。例えば、
図2のフローの実行制御は、上述したボリューム・ブート・セクターから、当該ブート可能な記憶装置内に格納されているOSと関係付けられているマスター・ブート・レコードへと転送されることが可能である。当該ブート可能な記憶装置と関係付けられているマスター・ブート・レコードに
図2のフローの実行制御が転送されることに応じて、処理ステップ216は、当該ブート可能な記憶装置の中に格納されているポータブルOSをブートする。
【0030】
続いて、本発明に係る一つ以上の実施例に従う方法における複数の処理ステップを記述するフロー図を図示する
図3について検討する。当該方法は、任意の適切なハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせによって実行されることが可能である。本発明に係る少なくとも一部の実施例においては、当該方法の複数の側面は、例えば、
図1に記載されたブート動作リダイレクト実行モジュール112などのような、コンピュータ装置の上で実行中の適切に構成設定されたソフトウェアによって実行される。
【0031】
処理ステップ300は、コンピュータ装置のブート動作の動的リダイレクト制御を有効化するように構成設定されているトリガー・ファイルが存在するか否かを判定する。当該トリガー・ファイルが存在すると判定されたことに応じて、処理ステップ302は、当該コンピュータ装置のブート動作を可搬型記憶装置へと動的にリダイレクトするか否かを判定する。これは、任意の適切な方法に従って判定することが可能であり、そのような方法の具体例は上述したとおりである。本発明に係る幾つかの実施例においては、この判定動作は、当該可搬型記憶装置が存在するか否かに基づいて、ブート動作の動的リダイレクト制御が有効化/無効化されているか、ブート可能なオペレーティング・システムが当該可搬型記憶装置の中に存在するか否か、当該可搬型記憶装置が許可済みのデバイスと判定されるか否かに基づいて、またはこれらの組み合わせに基づいて実行することが可能である。
【0032】
当該トリガー・ファイルが存在しないと判定されたことに応じて、処理ステップ304は、関連するブート実行モジュールによって指定されたとおりに当該コンピュータ装置をブートし、例えば、上述したとおり、関連するBIOS内部において事前にプログラムされた直列的なブート順序に従って当該コンピュータ装置をブートする。
【0033】
本発明の一つ以上の実施例に従って、レガシー型のブート動作のサポートについて上記のとおり検討してきたので、今度は、本発明の一つ以上の実施例に従って、UEFI(Unified Extensible Firmware Interface)の文脈においてブート動作の動的リダイレクト制御について以下のとおりに検討する。
【0034】
<UEFI(Unified Extensible Firmware Interface)ブート動作>
コンピュータ装置をブートするためにBIOSが使用される場合、典型的には、当該BIOSは、当該コンピュータ装置の初期化処理を実行した上で、マスター・ブート・レコードに実行制御を渡すために、実行制御を手放す。当該マスター・ブート・レコードに実行制御を転送するに際して、当該BIOS内に存在しているコード、データおよび設定内容は、これ以降は直接的にはアクセス可能ではなくなる。コンピュータ装置をブートするための代替的な方法は、UEFI(Unified Extensible Firmware Interface)を利用する。UEFIシステムにおいて、当該コンピュータ装置の上にオペレーティング・システムをロードし、ブートするプラットフォーム・ファームウェアは、例えば「ランタイム・サービス」と呼ばれるもののように、ブート実行プロセスの後であっても継続的にアクセス可能な特定の情報要素を含むことが可能である。アプリケーションは、UEFIにおけるこれらの「ランタイム・サービス」を介してブート・デバイス間の優先順位に関するファームウェアの設定内容にアクセスし、当該コンピュータ装置の振る舞いや構成設定を変更することが可能である。本発明に係る幾つかの実施例においては、これは、当該コンピュータ装置の直列的なブート実行順序を再構成するために、ブート実行時にユーザが当該ファームウェアに手動でアクセスすること無しに、当該コンピュータ装置のブート動作を動的にリダイレクトする制御を含むことが可能である。代替的に又は追加的に、これは、修正されタブーと実行順序を有効化するために、可搬型記憶装置と関係付けられた一般的なエントリ及び/又は特定のエントリを追加する動作を含むことが可能である。
【0035】
UEFIシステムは、プラットフォーム・ファームウェア内部に複数のブート・エントリから成るリストを維持管理することが可能である。これらのブート・エントリは、ブート可能なデバイスが発見されるまで、当該ファームウェアに対して特定の順番に従ってブート動作の実行を指示するように構成されている。例えば、以下のようなブート実行順序を含むようなブート・エントリのリストがあると想定する。具体的には、(1)ハード・ディスク その1、(2)ハード・ディスク その2、(3)DVD(ディジタル多用途ディスク)ドライブ、(4)USBドライブ、および(5)ネットワーク・ドライブという順序に従うリストを想定する。上述した具体的なリストに関し、当該コンピュータ装置は、最初に、「ハード・ディスクその1」からブートしようと試みる。「ハード・ディスクその1」の上にブート可能なドライブが見つかった場合には、当該コンピュータ装置のブート動作は、更なる他のデバイスを探しに行くのを中止し、「ハード・ディスクその1」からブートする。ブート可能なドライブが見つからなかった場合には、当該コンピュータ装置の試行は、「ハード・ディスクその2」に進む。上述した処理プロセスは、ブート可能なドライブが見つかるか、または上記リスト中に後続のエントリが見つからなくなるまで、上記リストに沿って繰り返し実行される。本発明に係る幾つかの実施例においては、上記「ランタイム・サービス」は、上述したブート・エントリのリストを修正したり変更したりするために使用されることが可能である。例えば、上記「ランタイム・サービス」を介して、USBドライブに対応するブート・エントリを、上述したリスト内の(4)の位置から(1)の位置に移動することが可能である。上述した具体的な場合において、当該コンピュータ装置が再ブートした際には、当該コンピュータ装置は、ブート動作の起点として、USBデバイスを最優先に探しに行く。ブート可能なディスクを具備したUSBデバイスが存在することが検出された際には、当該コンピュータ装置は、それに従ってブートする。当該USBデバイスが存在する旨が検出されない場合には、当該コンピュータ装置の試行は、ブート・エントリのリスト内において、後続のエントリに対応するデバイスに移行する。
【0036】
本発明に係る幾つかの実施例においては、ブート動作リダイレクト制御アプリケーションを上述したブート・エントリのリスト内に配置することが可能であり、幾つかの場合においては、最優先の順位に対応する位置に配置することが可能である。例えば、上述したブート・エントリのリストを変更して、ブート・デバイスに加えて、及び/又はブート・デバイスの代わりに、アプリケーションを追加するために、上記「ランタイム・サービス」を使用することが可能である。上述した場合に見られるように、上述したリスト内における当該ブート動作リダイレクト制御アプリケーションのエントリ位置は、当該アプリケーションが実行される優先順位を決定することが可能である。当該コンピュータ装置がブートする際に、当該ブート動作リダイレクト制御アプリケーションが、上述したリストの先頭に配置されるならば、当該ファームウェアは、当該アプリケーションに対して最初に実行制御を転送しようと試みる。当該アプリケーションは任意の適切な方法で構成設定することが可能であり、そのような方法の具体例は以下において後述される。例えば、当該アプリケーションは、可搬型記憶装置が存在することが検出された際に、当該コンピュータ装置のブート動作を当該可搬型記憶装置に対して動的にリダイレクトするように構成設定されることが可能である。
【0037】
一つの具体例として、本発明に係る一つ以上の実施例に従う方法における複数の処理ステップを記述したフロー図を図示する
図4について以下のとおりに検討する。具体的には、
図4は、UEFIを介してアクセス可能となるように構成されたプラットフォーム・ファームウェアを使用するブート動作の動的リダイレクト制御の一例を図示する。当該方法は、任意の適切なハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせによって実行されることが可能である。本発明に係る幾つかの実施例においては、当該方法の一部は、
図1に記載されたコンピュータ装置102の上で実行されるように実装されることが可能である。
【0038】
処理ステップ402は、ブート動作リダイレクト制御アプリケーションを実行する。コンピュータ装置は、UEFIと関係付けられたプラットフォーム・ファームウェアを介してブート動作を実行するので、ブート実行プロセスは、例えば、当該コンピュータ装置の内部OSのシステム・パーティション内に存在しているブート動作リダイレクト制御プリケーション等のような一つ以上のアプリケーションを実行する動作を含むことが可能である。本発明に係る幾つかの実施例においては、当該ブート動作リダイレクト制御プリケーションは、複数のブート・エントリから成るリストの中に挿入されることが可能であり、幾つかの場合においては、その挿入先は、リストの先頭に位置するエントリ、及び/又は最高の優先順位に対応するエントリであり、その結果、ブート実行プロセスの期間中において、ブート動作の実行制御は当該ブート動作リダイレクト制御プリケーションに対して一番最初に渡される。当該ブート動作リダイレクト制御プリケーションは、当該コンピュータ装置がブート動作を実行する方法を動的にリダイレクトする制御と関係した機能を含んでおり、例えば、可搬型記憶装置が存在することを識別し、UEFIインターフェースを介してプラットフォーム・ファームウェアを修正するなどの機能を含んでいる。本発明に係る幾つかの実施例においては、当該ブート動作リダイレクト制御プリケーションは、ブート動作の動的リダイレクト制御を有効化したり無効化したりする機能を含んでいる。当該ブート動作リダイレクト制御プリケーションの実行期間中に、当該コンピュータ装置の実行制御は、処理ステップ404に進む。
【0039】
処理ステップ404は、さらに別のブート可能な記憶装置(例えば、上述したようにブート可能なOSを含んでいる可搬型記憶装置等)が存在するか否かを判定する。ブート可能な記憶装置が全く存在しないと判定されたならば、当該コンピュータ装置の実行制御は、処理ステップ406に進み、当該コンピュータ装置のブート動作リダイレクト制御プリケーションやブート実行モジュールによって指示されるところに従って、当該コンピュータ装置の上の内部OSをブートする。しかしながら、ブート可能な記憶装置が存在すると判定されたならば、当該コンピュータ装置の実行制御は、処理ステップ408に進む。
【0040】
処理ステップ408は、当該ブート可能な記憶装置が、許可済みリストの中に含まれているか否かを判定する。この判定動作は、任意の適切な方法に従って実現されることが可能であり、そのような方法の具体例は上述したとおりである。当該ブート可能な記憶装置が許可済みのブート可能記憶装置ではないと判定されるならば、当該コンピュータ装置の実行制御は処理ステップ406に進む。当該ブート可能な記憶装置が許可済みのブート可能記憶装置であると判定されるならば、当該コンピュータ装置の実行制御は処理ステップ410に進む。
【0041】
処理ステップ410は、当該ブート可能な記憶装置の上に格納されているポータブルOSをブートする。これは、任意の適切な方法に従って実現することが可能であり、例えば、UEFIを介してプラットフォーム・ファームウェアに対してプログラムされたロジックによってコマンドを発行する方法に従って実現することが可能である。本発明に係る幾つかの実施例においては、当該ブート可能な記憶装置と関係付けられたブート・エントリは、プラットフォーム・ファームウェアの中に挿入されることが可能であり、その結果、当該ブート可能な記憶装置からブート動作を実行するようにプラットフォーム・ファームウェアに指示を出すことが実行可能となる。例えば、当該ブート可能な記憶装置が可搬型のUSB型の記憶装置である場合には、プラットフォーム・ファームウェアに対して一般的なUSBクラスのエントリが追加され、当該コンピュータ装置のブート動作が当該USB型の記憶装置へとリダイレクトされる。このようにして、当該コンピュータ装置は、ユーザが関連するブート実行モジュールを手動で修正しなくても、当該ブート可能な記憶装置からブートを実行するようにブート動作を動的にリダイレクトされることが可能である。
【0042】
続いて、本発明に係る一つ以上の実施例に従う方法における複数の処理ステップを記述するフロー図を図示する
図5について検討する。当該方法は、任意の適切なハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせによって実行されることが可能である。本発明に係る少なくとも一部の実施例においては、当該方法の複数の側面は、例えば、
図1に記載されたブート動作リダイレクト実行モジュール112などのような、コンピュータ装置の上で実行中の適切に構成設定されたソフトウェアによって実行される。
【0043】
処理ステップ500は、コンピュータ装置をブートする動作を動的にリダイレクトする制御を有効化する。上述したとおり、当該コンピュータ装置をブートする動作の動的なリダイレクト制御は、有効化されたり無効化されたりすることが可能である。例えば、この処理ステップは、当該コンピュータ装置の外部からの接続手段を介して「有効化/無効化」を表す設定値を受信することにより実行されることが可能であり、例えば、運用管理者が当該「有効化/無効化」を表す設定値を当該コンピュータ装置に対してプッシュ配信することを介して実行されることが可能である。
【0044】
処理ステップ502は、当該コンピュータ装置の上に可搬型記憶装置が存在するか否かを判定する。このことは、当該可搬型記憶装置が当該コンピュータ装置に取り付けられているか否か、及び/又は当該コンピュータ装置と通信中であるか否かを判定する動作を含み、そのような判定動作の具体例は上述したとおりである。代替的に又は追加的に、この動作は、当該可搬型記憶装置の上にブート可能なオペレーティング・システムが存在しているか否かを判定する動作を含む。
【0045】
処理ステップ504は、当該コンピュータ装置がブートを実行する起点として、当該可搬型記憶装置が許可可能な記憶装置であるか否かを判定する。許可可能な記憶装置を判定するための任意の適切な方法を利用することが可能であり、そのような方法の具体例は上述したとおりである。
【0046】
当該コンピュータ装置がブートを実行する起点として、当該可搬型記憶装置が許可可能な記憶装置であると判定されることに応じて、当該コンピュータ装置の直列的なブート実行順序をユーザが手動で修正することなく、処理ステップ508は、当該コンピュータ装置のブート動作を、当該可搬型記憶装置に対して動的にリダイレクトする。例えば、当該コンピュータ装置と関係付けられているブート実行モジュール内における複数のデバイス間の直列的な順序をユーザが手動でプログラムすることなく、当該コンピュータ装置は、動的にリダイレクトされることが可能である。本発明に係る幾つかの実施例においては、一のブート・デバイスの存在に基づいて、ソフトウェアが当該ブート・デバイスを当該コンピュータ装置のブート実行順序に対して自動的に追加することが可能である。
【0047】
UEFI環境においてコンピュータ装置のブート動作を動的にリダイレクトする制御をサポートすることについて上記のとおりに検討したので、続いて、本発明に係る一つ以上の実施例に従う例示的なシステムについて以下のとおりに検討する。
【0048】
<例示的なシステム>
図6は、
図1における装置102を参照して上述した任意のタイプの可搬型デバイス及び/又はコンピュータ装置として実装することが可能な例示的な装置600の多種多様な構成要素を図示する。
【0049】
装置600は、装置データ604(例えば、受信したデータ、現在受信中のデータ、同報通信のためにスケジューリングされているデータ、データのパケットなど)の有線または無線による通信を可能にする通信装置602を含む。装置データ604またはその他の装置内コンテンツ情報は、当該装置の構成設定内容、当該装置上に記録されたメディア・コンテンツ、および/または当該装置のユーザと関連する情報などを含むことが可能である。装置600上に記録されたメディア・コンテンツは、任意のタイプの音声データ、ビデオ・データおよび/または画像データを含むことが可能である。装置600は、任意のタイプのデータ、メディア・コンテンツおよび/または情報入力(例えば、ユーザが選択可能な入力、メッセージ、音楽、テレビ媒体コンテンツ、録画されたビデオ・コンテンツおよび任意のコンテンツ情報やデータ源から受信したその他の任意のタイプの音声データ、ビデオ・データおよび/または画像データ)が受信される受信端点となり得る一つ以上のデータ入力606を含む。ユーザが選択可能な入力は、それによってユーザが当該装置と対話することが可能となる一つ以上の入力機構を含む。ユーザが選択可能な入力機構は、例えば、キーボード、ボタン、スタイラス、タッチ・スクリーン、マウス、映像入力などの任意の適切な方法によって実装することが可能である。
【0050】
装置600は、シリアル・インターフェース及び/又はパラレル・インターフェース、無線インターフェース、任意のタイプのネットワーク・インターフェース、モデムの中の何れか一つ以上として、およびその他の任意のタイプの通信インターフェースとして実装されることが可能な通信インターフェース608をさらに含む。通信インターフェース608は、装置600と通信ネットワークとの間に接続および/または通信回線を提供し、それによって、他の電子装置やコンピュータ装置、および通信装置が装置600と通信する。
【0051】
装置600は、一つ以上のプロセッサ610(例えば、マイクロ・プロセッサ、コントローラなど)を含み、プロセッサ610は、装置600の動作を制御し、上述したコンピュータ装置のブート動作の動的リダイレクト制御を実装するためのコンピュータ実行可能な又はコンピュータ読み取り可能な様々な命令コードを処理する。代替的に又は追加的に、装置600は、参照符号612によって一般に識別される処理と制御のための回路と関連して実装されるハードウェア、ファームウェア、または固定された論理回路の何れか又はこれらの組み合わせによって実装されることが可能である。図示されてはいないが、装置600は、装置600内の様々な構成要素を互いに接続するシステム・バスやデータ転送システムを含むことが可能である。システム・バスは、メモリ・バスやメモリ・コントローラ、周辺機器バス、ユニバーサル・シリアル・バスなどのような複数の異なるバス構造の何れか一つ又はこれらの組み合わせ、および/または任意の多種多様なバス・アーキテクチャを利用するプロセッサ・バスやローカル・バスを含むことが可能である。
【0052】
装置600は、一つ以上のメモリ部品のようなコンピュータ読み取り可能記憶媒体614をさらに含み、その具体例には、RAM(Random Access Memory)、不揮発性メモリ(ROM(Read-Only Memory)、フラッシュ・メモリ、EPROM、EEPROMなど)、ディスク記憶装置等が含まれる。ディスク記憶装置は、任意のタイプの磁気記憶装置または光学記憶装置として実装することが可能であり、その具体例には、ハード・ディスク・ドライブ、CD−R、CD−RW、任意のタイプのDVD(Digital Versatile Disc)などが含まれる。
【0053】
コンピュータ読み取り可能媒体616は、装置データ604と共に様々なデバイス・アプリケーション618、装置600の動作的な側面と関係したその他の任意のタイプの情報やデータを格納するデータ記憶の仕組みを提供する。例えば、オペレーティング・システム620は、コンピュータ読み取り可能媒体616に記録されプロセッサ610によって実行されるコンピュータ・アプリケーションとして維持管理されることが可能である。デバイス・アプリケーション618は、デバイス・マネージャ(例えば、制御アプリケーション、ソフトウェア・アプリケーション、信号処理と制御のためのモジュール、特定の装置にとってネイティブなバイナリ命令コード、特定の装置に関するハードウェア抽象化レイヤなど)を含むことが可能である。デバイス・アプリケーション618はさらに、本明細書中で説明されたコンピュータ装置のブート動作の動的リダイレクト制御についての複数の実施例を実装するために利用される任意のシステム構成要素やモジュールを含んでいる。
【0054】
装置600に関して、デバイス・アプリケーション618は、上述したとおり装置600のブート動作を動的にリダイレクトするように構成されることが可能なブート動作リダイレクト制御モジュール622を含んでいる。図中においてブート動作リダイレクト制御モジュール622はソフトウェア・モジュール及び/又はコンピュータ・アプリケーションとして図示され、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせとして実装されることが可能である。
【0055】
<結論>
本明細書に記載された多種多様な実施例は、可搬型記憶装置が存在することが検出された際に、当該可搬型記憶装置内に記憶されているオペレーティング・システムを使用してコンピュータ装置を自動的にブートする機能を実現する。当該可搬型記憶装置が存在することが検出された際に、当該コンピュータ装置は、当該可搬型記憶装置から動的にブートし、当該可搬型記憶装置が存在しないことが検出された際には、当該コンピュータ装置は、当該コンピュータ装置と関係付けられたブート・モジュールにおいて、事前にプログラムされていたブート順序に復帰するように構成されることが可能である。本発明に係る幾つかの実施例においては、当該オペレーティング・システムは、当該可搬型記憶装置内において完全にカプセル化されており、例えば、当該オペレーティング・システムは、当該コンピュータ装置を一番最初にブートしたオペレーティング・システムから完全に分離された別個のものであったりする。
【0056】
本発明の技術的主題は、構造的な特徴や方法的な動作に固有の言い回しで説明されてきたけれども、本明細書に添付した特許請求の範囲において定義されている本発明の技術的主題は、上述したような特定の特徴や動作に必ずしも限定されるものではなく、むしろ、上述した特定の特徴や動作は、本明細書に添付した特許請求の範囲記載の発明を実施するための例示的な形態を開示するものである。