(57)【要約】  コンシューマー電子装置において複数のオペレーティングシステムを支援する技法及びツール。例えば、異なるメディアタイプを支援しているビデオディスクプレーヤーのオペレーティングシステム間の素早い切り換えを可能にすると同時に、待ち時間を減らしてユーザー体験に対する見込まれる悪影響を緩和させる技法及びツールを記載する。【選択図】図２
2010518512.tif 000002
【特許請求の範囲】
【請求項１】
異なるメディアフォーマットで符号化された異なるデジタルメディア情報を再生する方法であって、
メモリー内に第１のアイドル状態（２６０）の第１のオペレーティングシステムを有し、且つメモリー内にアクティブ状態の第２のオペレーティングシステムを有しているデジタルメディアプレーヤーにおいて第１のデジタルメディア情報を受信するステップであって、前記第１のデジタルメディア情報が、第１のメディアフォーマットに従って符号化されているものと、
前記第１のオペレーティングシステムを前記第１のアイドル状態（２６０）から立ち上げるステップ（２４５，２６５）であって、前記第１のオペレーティングシステムが、前記第１のメディアフォーマット用のメディア再生を支援しているものと、前記第２のオペレーティングシステムが、前記第１のメディアフォーマットと異なる第２のメディアフォーマット用のメディア再生を支援しているものと、
前記第１のオペレーティングシステムによって提供された動作環境において実行する第１のアプリケーションを使用し、前記第１のデジタルメディア情報を再生するステップ（２７０）と、を特徴とする方法。
【請求項２】
更に、
前記第１のオペレーティングシステムによって使用するためのリソースを解放するために、前記第２のオペレーティングシステムを第２のアイドル状態（２１５）にするステップを含む請求項１記載の方法。
【請求項３】
更に、
前記デジタルメディアプレーヤーにおいて第２のデジタルメディア情報を受信するステップであって、前記第２のデジタルメディア情報が、前記第２のメディアフォーマットに従って符号化されているものと、
前記第２のオペレーティングシステムによって使用するためのリソースを解放するために、前記第１のオペレーティングシステムを第３のアイドル状態にするステップ（２６０）と、
前記第２のオペレーティングシステムを前記第２のアイドル状態（２１５）から立ち上げるステップ（２９０，２２０）と、
前記第２のオペレーティングシステムによって提供された動作環境において実行する第２のアプリケーションを使用し、前記第２のデジタルメディア情報を再生するステップ（２２５）と、を含む請求項２記載の方法。
【請求項４】
更に、
ナビゲーション又は機器構成機能に関するリクエストを受信するステップと、
前記第２のオペレーティングシステムによって使用するためのリソースを解放するために、前記第１のオペレーティングシステムを第３のアイドル状態にするステップ（２６０）と、
前記第２のオペレーティングシステムを前記第２のアイドル状態（２１５）から立ち上げるステップ（２９０，２２０）と、
前記第２のオペレーティングシステムによって提供された動作環境において、前記ナビゲーション又は機器構成機能に関するメニューを表示するステップ（２２５）と、を含む請求項２記載の方法。
【請求項５】
前記デジタルメディアプレーヤーが、スタンドアロン装置、通信装置の一部又はディスプレイ装置の一部であることを特徴とする請求項１記載の方法。
【請求項６】
前記第１のオペレーティングシステムを前記第１のアイドル状態（２６０）から立ち上げるステップ（２４５，２６５）が、前記アクティブ状態の前記第２のオペレーティングシステムから前記第１のアイドル状態（２６０）の前記第１のオペレーティングシステムに立ち上げメッセージを送信するステップ（２４５）を含むことを特徴とする請求項１記載の方法。
【請求項７】
前記第１のデジタルメディア情報が、高解像度映像コンテンツを含んでいて、前記第１のメディアフォーマットが、高解像度映像フォーマットであることを特徴とする請求項１記載の方法。
【請求項８】
前記第１のオペレーティングシステムを前記第１のアイドル状態（２６０）から立ち上げるステップ（２４５，２６５）が、前記第１のデジタルメディア情報が符号化されている前記第１のメディアフォーマットの識別に応答することを特徴とする請求項１記載の方法。
【請求項９】
前記第１のオペレーティングシステムを前記第１のアイドル状態（２６０）から立ち上げるステップ（２４５，２６５）が、前記第１のオペレーティングシステムによって支援されているナビゲーション又は機器構成機能のユーザー選択に応答することを特徴とする請求項１記載の方法。
【請求項１０】
異なるメディアフォーマットで符号化された異なるデジタルメディア情報を再生する方法であって、
不揮発性記憶装置にストアされている第１のオペレーティングシステム及び不揮発性記憶装置にストアされている第２のオペレーティングシステムを有するデジタルメディアプレーヤーにおいて、第１のデジタルメディア情報を受信するステップであって、前記第２のオペレーティングシステムが、メモリーにおいてアクティブ状態で実行しているものと、
前記第１のデジタルメディア情報が符号化されている第１のメディアフォーマットを識別するステップ（３３０）であって、前記第１のメディアフォーマットに対する再生が、前記第１のオペレーティングシステムによって支援されており、前記第１のメディアフォーマットと異なる第２のメディアフォーマットに対する再生が、前記第２のオペレーティングシステムによって支援されているものと、
前記識別に応答して第１のオペレーティングシステムを不揮発性記憶装置からメモリーへロードするステップ（３０５，３１０，３５０）であって、前記第１のオペレーティングシステムがメモリーにおいてアクティブ状態で実行するとき、前記第１のオペレーティングシステムが、前記第１のデジタルメディア情報を再生するための動作環境を提供するものと、を特徴とする方法。
【請求項１１】
更に、
前記第１のオペレーティングシステムによって提供される前記動作環境において実行する第１のアプリケーションを使用し、前記第１のデジタルメディア情報を再生するステップ（３５５）であって、前記第１のアプリケーションが、前記第１のメディアフォーマットに従って符号化されている前記第１のデジタルメディア情報を復号するように作動可能なもの、を含む請求項１０記載の方法。
【請求項１２】
前記デジタルメディアプレーヤーが、スタンドアロン装置、通信装置の一部又はディスプレイ装置の一部であることを特徴とする請求項１０記載の方法。
【請求項１３】
更に、
ナビゲーション又は機器構成機能に関するリクエストを受信するステップと、
前記第１のオペレーティングシステムをシャットダウンするステップと、
前記第２のオペレーティングシステムを前記不揮発性記憶装置からメモリー内にロードするステップ（３０５，３１０，３１５）であって、前記第２のオペレーティングシステムが、前記ナビゲーション又は構成機能に関するメニューを提示する動作環境を提供するものと、
前記第２のオペレーティングシステムによって提供される前記作環境に前記メニューを提示するステップ（３２０）と、を含む請求項１０記載の方法。
【請求項１４】
前記第１のデジタルメディア情報が、高解像度映像コンテンツを含んでいて、前記第１のメディアフォーマットが、高解像度映像フォーマットを含むことを特徴とする請求項１０記載の方法。
【請求項１５】
更に、前記第１のオペレーティングシステムがメモリーにおいてアクティブ状態で実行する前に、前記第２のオペレーティングシステムをシャットダウンするステップを含む請求項１０記載の方法。
【請求項１６】
更に、
前記デジタルメディアプレーヤーにおいて第２のデジタルメディア情報を受信するステップであって、前記第２のデジタルメディア情報が、前記第２のメディアフォーマットに従って符号化されているものと、
前記第２のメディアフォーマットを識別するステップ（３６５）と、
前記第２のメディアフォーマットの識別に応答して前記第１のオペレーティングシステムをシャットダウンし、前記第２のオペレーティングシステムを不揮発性記憶装置からメモリーへロードするステップ（３０５，３１０，３１５）であって、前記第２のオペレーティングシステムが、前記第２のデジタルメディア情報を再生する動作環境を提供するもの、を含む請求項１５記載の方法。
【請求項１７】
異なるメディアフォーマットで符号化された異なるデジタルメディア情報を再生する方法であって、
メモリー内に第１のアイドル状態（２６０）の第１のオペレーティングシステムを有し、且つメモリー内にアクティブ状態の第２のオペレーティングシステムを有しているデジタルメディアプレーヤーにおいて第１のデジタルメディア情報を受信するステップであって、前記第１のデジタルメディア情報が、第１のメディアフォーマットに従って符号化されているものと、
前記第１のオペレーティングシステムを前記第１のアイドル状態（２６０）から立ち上げるステップ（２４５，２６５）であって、前記第１のオペレーティングシステムが、前記第１のメディアフォーマットに対するメディア再生を支援しているものと、前記第２のオペレーティングシステムが、前記第１のメディアフォーマットと異なる第２のメディアフォーマットに対するメディア再生を支援しているものと、
複数のハードウェアのコンポーネントの少なくとも１つの状態を持続するステップと、
前記複数のハードウェアコンポーネントの制御を前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへ転送するステップと、
前記第１のオペレーティングシステムによって提供された動作環境において実行する第１のアプリケーションを使用し、前記第１のデジタルメディア情報を再生するステップ（２７０）と、を特徴とする方法。
【請求項１８】
前記少なくとも１つのハードウェアコンポーネントが、前記デジタルメディアプレーヤーに接続されているディスプレイであって、前記持続された状態が、表示情報を含むことを特徴とする請求項１７記載の方法。
【請求項１９】
前記表示情報が、メニューを含むことを特徴とする請求項１８記載の方法。
【請求項２０】
ファームウェアレイヤ（５３０）が、前記複数のハードウェアコンポーネントに抽象アクセスする入力／出力サービス（５３４）を提供していて、前記ファームウェアレイヤが、前記第１のアイドル状態（２６０）に対するアイドルモード機能を実装していることを特徴とする請求項１７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンシューマー電子装置において複数のオペレーティングシステムを支援する技法及びツールに関する。
【背景技術】
【０００２】
コンシューマー電子装置用のメディアフォーマットは、ますます複雑になっていると同時に、それらの高度な機能の多くもハードウェアからソフトウェアに移っている。その結果、コンシューマー電子装置のソフトウェア環境が、ますます複雑になっている。
【０００３】
更に、ＤＶＤなどのようなより古い、より単純なフォーマットは、より安い、より単純なハードウェアへそれらの処理の多くを任せたとしても、それらの処理のいくつかをまだソフトウェアに残している。例えば、音声及び映像ストリームは、専用のハードウェアによって復号化されると思われるが、メニュー処理（又は「ナビゲーション」）の機能性は、ソフトウェアで実装され得る。基本的なナビゲーションソフトウェアは、比較的単純であり得るが、ＤＶＤ市場は、時間と共に発展している。ＤＶＤプレーヤーは、より多くの機能を有するＤＶＤを正確に処理するために複雑化したメニューの処理ロジックを用いて対応している。その結果、比較的単純なＤＶＤフォーマットが発達し、その再生ソフトウェアは、現在、かなり複雑である。多くのプレーヤーの製造者が、このソフトウェアに多大な投資をしていて、ソフトウェアは、時間と共に発展し、それらの動作環境に依存性を有している。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
異なる利用可能なメディアフォーマットを用いて複数のフォーマットを支援するコンシューマー電子装置の必要性がある。例えば、彼らのＤＶＤプレーヤーが全く異なるメディアフォーマットであるＣＤ音声ディスクも再生することをユーザーが一般に期待していることを考慮するとき、複数のフォーマットの支援が望まれていることが明らかである。次に対処されるべき課題は、それら自身のオペレーティングシステムを要求し得る複数のソフトウェアアプリケーションを、費用対効果に優れた方法でどのように実行するかである。
【課題を解決するための手段】
【０００５】
この「課題を解決するための手段」は、「発明を実施するための形態」において、更に以下に記載したいくつかの概念を簡易化された形式で紹介する。この概要が、請求項記載対象の重要な機能又は本質的な機能を識別することも意図せず、請求項記載対象の範囲を限定するために使用されることも意図していない。
【０００６】
要約すれば「発明を実施するための形態」を、コンシューマー電子装置において複数のオペレーティングシステムを支援する様々な技法及びツールに向ける。例えば、異なるメディアタイプを支援しているビデオディスクプレーヤーにおいて、オペレーティングシステム間の素早い切り換えを可能にすると同時に、待ち時間を減らしてユーザー体験に対する見込まれる悪影響を緩和する技法及びツールを記載する。
【０００７】
付加的な機能及び利点を、添付の図面を参照し由来する以下の様々な実施形態の詳細な説明から明らかにする。
【図面の簡単な説明】
【０００８】
【図１】記載した実施形態のいくつかが実装され得る適切な計算環境の一般化された例を示すブロック図である。
【図２】記載した１つ以上の実装による異なるオペレーティングシステム間の機能変更を処理する「正常ハンドオフモデル」に関する技法の例を示す流れ図である。
【図３】記載した１つ以上の実装による異なるオペレーティングシステム間の機能変更を処理する「ウォームブート」に関するモデルの技法の例を示す流れ図である。
【図４】記載した１つ以上の実装によるディスクフォーマット変更の正常ハンドオフ処理に関する技法の例を示す流れ図である。
【図５】記載した１つ以上の実装によるディスクフォーマットの変更を処理するブートローダー及びＢＩＯＳサービスを有するファームウェアを示すシステム図である。
【図６】記載した１つ以上の実装によるディスクフォーマット変更のウォームブート処理に関する技法の例を示す流れ図である。
【図７】記載した１つ以上の実装による並行してウォームブートメディアフォーマットの切り換え動作を実行する技法の例を示す流れ図である。
【発明を実施するための形態】
【０００９】
例えば、メディアプレーヤーなどの組み込み装置において複数のオペレーティングシステムを支援する技法及びツールを本明細書に記載する。
本明細書に記載した実装に対しては、様々な代替手段があり得る。例えば、流れ図ダイヤグラムを参照して記載した一定の技法が、一定の段階その他を繰り返すか又は省略することによって、流れ図に示されている段階の順番を変更することにより変えられ得るが、同一の結果を達成する。異なる実施形態は、記載した１つ以上の技法及びツールを実装する。本明細書に記載した技法及びツールのいくつかは、背景において述べられている１つ以上の課題に対処している。しかしながら所与の技法／ツールは通常、そのような課題すべてを解決するわけではない。
【００１０】
Ｉ．  計算環境
図１は、記載した実施形態のいくつかが実装され得る適切な計算環境（１００）の一般化された例を示す。計算環境（１００）は、本技法及びツールが、汎用的又は専用の様々な計算環境において実装され得るように有用性又は機能性の範囲に関していかなる限定を提示することを意図していない。例えば計算環境（１００）は、携帯用オーディオプレーヤー、携帯用ビデオプレーヤー、携帯用オーディオ及びビデオプレーヤー、コンソールオーディオプレーヤー、コンソールビデオプレーヤー又はコンソールオーディオ及びビデオプレーヤーなどのメディア装置を提供し得る。そのようなメディア装置は、スタンドアロンのユニットであり得るか又は別の装置（例えば通信装置又はディスプレイ装置）に含まれ得る。
【００１１】
図１を参照すると、計算環境（１００）は、少なくとも２つの処理ユニット（１１０，１１５）及び関連するメモリー（１２０，１２５）を含む。処理ユニット（１１０，１１５）は、ＣＰＵ、映像アクセラレーター用ＧＰＵ又は別のコプロセッシングユニットを含む。図１において、この最も多い基本構成（１３０）が破線内に含まれている。あるいはまた計算環境は、単一の処理ユニットを含む。処理ユニット（１１０，１１５）は、計算機実行可能命令を実行し、実際又は仮想のプロセッサーであり得る。マルチプロセッシングシステムにおいては、複数の処理ユニットが、計算機実行可能命令を実行し処理能力を増大させる。シナリオの符号化又は復号化においては、ホストの符号化又は複合化プロセスが、利用可能な処理ユニット（１１０，１１５）を使用し、符号化又は復号化の操作を実行する。一定の動差がＧＰＵなどの専用処理ユニットによって実行され得る。メモリー（１２０，１２５）は、揮発性メモリー（例えばレジスター、キャッシュ、ＲＡＭ）、不揮発性メモリー（例えばＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリーなど）又はその２つのいくつかの組み合わせであり得る。メモリー（１２０，１２５）は、特定の１つのプロセッサーであり得るか又は２つ以上のプロセッサーによって共有され得る。メモリー（１２０，１２５）は、複数のオペレーティングシステムを支援する方略を実装している装置に対するソフトウェア（１８０）をストアする。
【００１２】
計算環境は、更なる機能を有し得る。例えば、計算環境（１００）は、記憶装置（１４０）、１つ以上の入力装置（１５０）、１つ以上の出力装置（１６０）及び１つ以上の通信接続装置（１７０）を含む。バス、コントローラー又はネットワークなどの（図示されていない）相互接続装置が、計算環境（１００）のコンポーネントを相互接続する。（図示されていない）オペレーティングシステムソフトウェアは通常、計算環境（１００）において実行する別のソフトウェアを動作環境に提供し、計算環境（１００）のコンポーネントの動きを調整する。
【００１３】
記憶装置（１４０）は、取り外し可能又は取り外し不可能であり得、磁気ディスク、磁気テープ又はカセット、ＣＤ−ＲＯＭ、ＤＶＤ又は計算環境（１００）内の情報をストアするために使用され得アクセスされ得る別の任意の媒体を含む。記憶装置（１４０）は、ソフトウェア（１８０）に関する命令をストアする。
【００１４】
入力装置（単数又は複数）（１５０）は、キーボード、マウス、ペン、タッチスクリーン若しくはトラックボールなどのタッチ入力装置、音声入力装置、スキャニング装置又は計算環境（１００）への入力を提供する別の装置であり得る。音声又は映像に関しては、入力装置（単数又は複数）（１５０）は、サウンドカード、ビデオカード、テレビチューナーカード又はアナログ若しくはデジタル形式で音声若しくは映像入力を受け入れる類似の装置又は符号化された音声若しくは映像を計算環境（１００）に読み出すＤＶＤ、ＣＤ−ＲＯＭ又はＣＤ−ＲＷであり得る。出力装置（単数又は複数）（１６０）は、ディスプレイ、プリンター、スピーカー、ＣＤ、若しくはＤＶＤライター又は計算環境（１００）からの出力を提供する別の装置であり得る。
【００１５】
通信接続装置（単数又は複数）（１７０）は、通信媒体を介し別の計算実体との通信を可能にする。通信媒体は、計算機実行可能命令、音声若しくは映像入力又は出力又は搬送波データ信号の他のデータなどの情報を伝達する。搬送波データ信号は、１つ以上のその特性のセットを有しているか又は信号における情報を符号化する方法によって変更された信号である。制限ではなく例として、通信媒体は、電気的、光学的、無線周波数（「ＲＦ」）、赤外線（「ＩＲ」）、音響又は他のキャリヤーを用いて実装された有線又は無線の技法を含む。
【００１６】
本技法及びツールを、計算機可読媒体に関する一般的な文脈で記載し得る。計算機可読媒体は、計算環境内部でアクセスされ得る利用可能な任意の媒体である。制限ではなく例として、計算環境（１００）を有する計算機可読媒体は、メモリー（１２０）、記憶装置（１４０）、通信媒体及び上記の任意の組み合わせを含む。
【００１７】
プログラムモジュールに含まれるターゲットの実際又は仮想のプロセッサー上の計算環境で実行されるような本技法及びツールを計算機実行可能命令に関する一般的な文脈で記載し得る。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造その他を含む。プログラムモジュールの機能性は、様々な実施形態において所望されるように結合され得るか又はプログラムモジュールの間で分割され得る。プログラムモジュールに関する計算機実行可能命令は、ローカル又は分散計算環境内で実行され得る。
【００１８】
詳細に提示するために記載は、計算環境における計算機の動作を記載するために「チェック」及び「立ち上げ」などの用語を使用している。これらの用語は、計算機によって実行される動作に対する高度な抽象化であって、人間によって実行される動作と混乱してはならない。これらの用語に相当する実際の計算機の動作は、実装に従って変わる。
【００１９】
II．  コンシューマー電子装置における複数オペレーティングシステムの支援方略
コンシューマー電子装置は、ますます複雑になっていて、ハードウェアからソフトウェアまでそれらの機能性の多くに対する支援に移っている。ＤＶＤなどのより古くてより単純なフォーマットは、それらは通常、より安価で、より単純なハードウェアにそれらの処理の多くを任せているが、多くの場合、それらの処理のいくつかをソフトウェアに残している。例えば、音声及び映像ストリームは、専用ハードウェアによって復号され得るが、メニュー処理（又は「ナビゲーション」）機能は、ソフトウェアで実装され得る。その結果、ＤＶＤなどの比較的単純なフォーマットを支援しているいくつかのコンシューマー電子装置は、それにもかかわらず複雑なソフトウェアを有するように発展している。
【００２０】
更に、異なるメディアフォーマット用の再生ツールは、異なるオペレーティングシステムの要件を有し得、更にそれらを処理する装置のソフトウェア環境を複雑にし得る。例えば、（本明細書において時としてＨＤ  ＤＶＤフォーマットとして参照される）ＨＤ  ＤＶＤビデオディスク規格に従って符号化された高解像度映像コンテンツは、（マイクロソフト社又は他のオペレーティングシステムからのＷｉｎｄｏｗｓ（登録商標）ＣＥオペレーティングシステムなどの）第１のオペレーティングシステムによって支援されている再生アプリケーションを使用して復号され得、（本明細書において時としてブルーレイフォーマットとして参照される）ブルーレイビデオディスク規格に従って符号化された高解像度映像コンテンツは、（リナックスベースのオペレーティングシステム、他のＵｎｉｘ（登録商標）ライク又はＵｎｉｘ（登録商標）改良型のオペレーティングシステム又は他のオペレーティングシステムなどの）第２のオペレーティングシステムによって支援されている再生アプリケーションを使用して復号され得る。デュアルフォーマットディスク（例えばブルーレイフォーマットのコンテンツ及びＨＤ  ＤＶＤフォーマットのコンテンツを有するディスク）は、更に別のオペレーティングシステムの要件を有し得る。特定の動作環境向けに設計されたソフトウェアのいくつかは、時間と共にそれらの動作環境上の依存性を有するように発展している。これら及び他の要素の結果として、コンシューマー電子装置は、ますます複雑なソフトウェア環境を有している。
【００２１】
コンシューマー電子装置による対処するべき問題は、費用対効果に優れた方法によって、それ自身のオペレーティングシステムを必要とするそれぞれ複数のソフトウェアアプリケーションをどのように実行するかである。一解決策は、支援されているメディアフォーマットのそれぞれタイプ向けのオペレーティングシステム及びソフトウェアアプリケーションを備えているプロセッサーを含むことである。更に費用対効果に優れた解決策は、異なるタイプの媒体が処理されるとき、複数のオペレーティングシステム及びソフトウェアアプリケーション（例えば、メディアフォーマット毎に最大１つのオペレーティングシステム及びソフトウェアアプリケーション）をストアし、プレーヤーにリブートさせることである。例えば、プレーヤーは、ＨＤ  ＤＶＤ用に１つのオペレーティングシステム、ＤＶＤ用に別のもの及びＣＤ音声用に別のものを有し得る。オペレーティングシステムと支援されているアプリケーションとの間のマッピングは、一対一である必要はない。例えば、ＤＶＤ及びＣＤ音声再生は、一オペレーティングシステム上で実行し得るが、ＨＤ  ＤＶＤ再生は、異なるオペレーティングシステム上で実行する。
【００２２】
しかしながら、複数のオペレーティングシステムに関連する潜在的な課題が存在する。第１のオペレーティングシステム上で実行するＨＤ  ＤＶＤフォーマット及び第１のオペレーティングシステムと全く異なる第２のオペレーティングシステム上で実行する（時としてブルーレイディスクフォーマットと呼ばれる）ブルーレイフォーマットの２つのデジタルビデオディスクメディアフォーマットを支援している装置を考えられたい。あるフォーマットから別のもの（例えば第２のオペレーティングシステムを使用し支援されているブルーレイ再生から第１のオペレーティングシステムを使用し支援されているＨＤ  ＤＶＤ−映像再生）に移行するときに考慮されるべき一課題は、ディスクのローディング時間である。考慮すべき別の課題は、ユーザー体験に対する悪影響を減らすためにオペレーティングシステム間の切り替えをユーザーの目に見えないように保つと同時に、ユーザーに対し（それら自身のオペレーティングシステムを要求する）複数のソフトウェアアプリケーション間をどのように切り換えさせるかである。
【００２３】
記載した「マルチブート」技法及びツールによって、ユーザー体験に過度の干渉をせずにオペレーティングシステム間で装置を低コストで切り換えることができる。本明細書の記載において、用語「デュアルブート」は、時として２つのオペレーティングシステム間を切り換える装置を記載するために使用されているが、本明細書に論述した考えを、２つを超えるオペレーティングシステムを実行し得る装置に拡張できる。利用可能な２つのオペレーティングシステムを有するデュアルブート装置は、利用可能な２つ以上のオペレーティングシステムを有し得るマルチブート装置のサブセットである。用語マルチブート及びデュアルブートは、以下、詳細に説明する必要がある装置が、オペレーティングシステムの間を切り換えるためにリブートする必要がある要件を示していない。
【００２４】
マルチブート設計に対するオプションは、以下を含む。
１．  オペレーティングシステムの移行は、２つ以上のオペレーティングシステムが同時に作動する協調的なハンドオフ（又は正常ハンドオフ）装置を用いて処理される。例えば、記載した実装においては、第１のオペレーティングシステムと第２のオペレーティングシステムとの間のハンドオフが実行されるが、第１及び第２のオペレーティングシステムの双方が実行し続けられる。
１つのオペレーティングシステムは、ハンドオフの後、アイドル状態となる。
【００２５】
２．  オペレーティングシステムの移行は、オペレーティングシステムの１つに対するウォームブート関与するハンドオフ装置を用いて処理される。用語「ウォームブート」は、本明細書においては、装置が既に電源を入れられた後、ロードされるオペレーティングシステムを使って装置上で生じるオペレーティングシステムブートを参照するために使用される。
【００２６】
マルチブート設計オプション間の選択は、（例えばシングルコア又はデュアルコア）チップ選択、実装コスト及び外部に依存するような多くのエレメントに依存し得る。チップ設計の多くは、単一のプロセッサーコアを有していて、低レベルのハードウェアスレッド又は別の技術が複数のオペレーティングシステムを同時実行する支援を提供しない場合、一度に１つのオペレーティングシステムを支援する。別のチップ設計は、２つのプロセッサーコアを有していて、単一の対称型マルチプロセッシング向けオペレーティングシステムは、通常、その双方を使用しない。いかなる場合も、システムオンチップ設計の選択は多くの場合、単にプロセッサーコア以外にも依存していて、音声／映像復号、二次元グラフィックスアクセラレーター、復号化その他のためのユニットなどのチップ上の他の機能ユニットも考慮している。
【００２７】
Ａ.  例
以下の例は、オペレーティングシステム間の移行を処理する技法を例示していて、移行時間及びユーザー体験に対する可能性ある影響などの要因を占めている。この章の例は、２つのオペレーティングシステムの切り換えを記載しているが、２つを超えるオペレーティングシステムの間を切り換えることが可能である。代替実装においては、以下の例に示されているステップは、再順序付けされ得るか、省略され得るか又は異なるステップに取り替えられ得る。例えば、オペレーティングシステムＡからオペレーティングシステムＢへの切り替えを記載している例は、リクエストされたオペレーティングシステムＢの機能が、もはや使用されなくなった後か又はデフォルトによって、それがその次のユーザー動作に対応してオペレーティングシステムＡにおける機能を使用するオペレーティングシステムＡに戻るように拡張され得る。オペレーティングシステム間の移行は、必要とされるか又は望まれている間、継続し得る。最初にオペレーティングシステムＡがプライマリオペレーティングシステムである例は、最初にオペレーティングシステムＢがプライマリオペレーティングシステムであるように変更され得、又は逆もまた同様である。
【００２８】
本例は、スタンドアロン装置であり得るか又は別の装置の一部として含まれるデジタルメディアプレーヤーを用いて実装される。あるいはまた本例は、別のコンシューマー電子装置か又は別の計算機装置を用いて実装される。
【００２９】
1.  正常ハンドオフの例
例１：この正常ハンドオフシナリオにおいては、コンシューマー電子装置は、オペレーティングシステムＡ及びオペレーティングシステムＢが、同時に実行するように構成されている。この例においては、オペレーティングシステムＡは、プライマリオペレーティングシステムであって、装置のほとんどの機能を今、制御している。それはユーザーが、（例えば特定のフォーマットのビデオディスクを装置に装着すること）によって、オペレーティングシステムＢによって提供される機能を使用することを試みていることを検出する。
例１のプロセスは、以下のステップを含む：
１.  識別された機能要件（単数又は複数）を（例えば不揮発性記憶装置に）ストア。
２.  （必要な場合）、オペレーティングシステムＢによって使用されるようにハードウェア制御のリソースをリリース。
３.  オペレーティングシステムＢへ制御を転送。
４.  上記のステップ１でストアされたデータを読み出すことによって、要求されている機能を（オペレーティングシステムＢを用いて）決定。
５.  機能要件を満たす必要なハードウェアリソースを必要な場合、アクティブにして（オペレーティングシステムＢを用いて）使用。１つのオペレーティングシステムから別のオペレーティングシステムへの移行が、いくつかのハードウェア（例えばディスプレイ）リソースに対して正常に実行され得、それらの（例えば現在のメニュー表示）状態は、移行時間を短縮し及び／又はユーザー体験に対する悪影響を緩和するために、オペレーティングシステムＡからオペレーティングシステムＢへのハンドオフを介し完全又は部分的に持続される。
６.  所望されている機能を（オペレーティングシステムＢを用いて）提供。
例１のステップ３においては、制御は、１つ以上のメッセージをオペレーティングシステムＢに送信することによって、オペレーティングシステムＢに転送される。これらのメッセージは、いくつかの方法によって実装され得る。例えば、実装の中には、（オペレーティングシステムＡがプロセッサーコアＡ上で実行し、オペレーティングシステムＢがプロセッサーコアＢ上で実行する）オペレーティングシステム／プロセッサーコアそれぞれが、その中でハードウェアのメールボックスキューを実装するドライバーを有するものもある。メールボックスキューは、オペレーティングシステムＡとオペレーティングシステムＢとの間でメッセージ通信するために使用される単純な先入れ先出しキューであり得る。オペレーティングシステムに対する制御コンポーネント（例えばドライバー）は、そのキューに到着するメッセージを待っていて、そのオペレーティングシステム及びコアをスリープするようにそれに命令する。メッセージは、その値が、オペレーティングシステム間の正常なハンドオフの目的のために予約されているメモリーワード（例えば値１は、制御コンポーネントが、そのオペレーティングシステム／コアをスリープさせる必要があることを示していて、値２は、制御コンポーネントが、スリープ状態からそのオペレーティングシステム／コアを立ち上げる必要があることを示していて、他の値は、他の目的に予約されている）であり得る。あるいはまたメッセージ通信は、別のプロトコル及び／又は別のタイプのデータ構造を用いて実装される。
【００３０】
メールボックスキューの実装の例においては、オペレーティングシステムＡが、それが再生しないフォーマットのディスクを検出したとき、それは（例えば２の値を有する）メッセージをメッセージ通信ドライバーに送信し、オペレーティングシステムＢのドライバーのメールボックスキューにそのメッセージを送信する。オペレーティングシステムＢ用のドライバーは、メールボックスキュー内のメッセージを待っていて、オペレーティングシステムＡからメッセージを受信し、（値が「立ち上げ」と示す）メッセージを解釈し、オペレーティングシステムＢ及びコアＢを立ち上げるための（例えばドライバーを適切に再び可能にする）ステップを実行する。オペレーティングシステムＡは、オペレーティングシステムＢが首尾よく立ち上がると仮定し、立ち上げメッセージをオペレーティングシステムＢに送信した後、それ自体をスリープさせる。あるいはまたオペレーティングシステムＡは、それ自体をスリープモードに入れるようにオペレーティングシステムＢからオペレーティングシステムＡに命令する（例えば１の値を有する）メッセージを待っている。オペレーティングシステムＢにそのようなメッセージを送信させることによって、オペレーティングシステムＢが首尾よく目覚めた後、オペレーティングシステムＡは、しばらくした後にそのようなスリープメッセージを取得しない場合、オペレーティングシステムＡは、システム全体をリブートすること及び／又は別のステップを実行することをユーザーに知らせることによって、エラー処理を開始できる更に良いエラー処理を考慮している。
【００３１】
メッセージングプロセスでは、オペレーティングシステムＢは、それが再生しないフォーマットのディスクに遭遇した場合、リバースされる。オペレーティングシステムＢは、（例えば２の値を有する）メッセージをオペレーティングシステムＡのドライバーのメールボックスキューにそのメッセージを送信するメッセージングドライバーに送信する。オペレーティングシステムＡ用のドライバーは、そのメールボックスキュー内のそのメッセージを待っていて、オペレーティングシステムＢからのメッセージを受信し、（値が「目覚めなさい」と示す）メッセージを解釈し、オペレーティングシステムＡ及びコアＡを立ち上げるためのステップを実行する。それ自体をスリープさせるオペレーティングシステムＢは、立ち上げメッセージをオペレーティングシステムＡに送信するかあるいはまた又はオペレーティングシステムＡからのスリープメッセージを待っている。
【００３２】
例２：図２は、オペレーティングシステム同時に実行する際の機能を使用する正常ハンドオフモデルによる技法（２００）の例を示す流れ図である。図２に示されている技法（２００）は、上記例１のステップはいくつかの点で異なるが、それでも２つのオペレーティングシステム間のスムーズな移行を達成している。
【００３３】
技法（２００）においては、ブートローダーがアクティブにされ（２０５）、オペレーティングシステムＡ及びＢがブートされる（２１０，２５５）。図２においては、オペレーティングシステムは、アイドル状態で開始する（２１０，２５５）。オペレーティングシステムのどちらかが、他方のオペレーティングシステムからの立ち上げメッセージ（２２０，２６５）によって、アイドル状態（２１５，２６０）から立ち上げられ得る。これは、例えばユーザーが操作をリクエストするか、ナビゲーション動作を実行するか、機器構成設定をチェックするか、又は（例えばディスクを変えることによって）メディアコンテンツを変えたとき発生し得る。
【００３４】
立ち上がった後、アクティブにされたオペレーティングシステムは、そのオペレーティングシステムを使用して利用可能な主要機能を実行する（２２５又は２７０）。アクティブにされたオペレーティングシステムは、機能変更を検出すると（２３０又は２７５）、それがその新しい機能を実行し得るか否かチェックする（２３５又は２８０）。そうでない場合、オペレーティングシステムは、必要に応じて他方のオペレーティングシステムへ移行するために、ハードウェアリソースを準備し（２４０又は２８５）、立ち上げメッセージを他方のオペレーティングシステムに送信する（２４５又は２９０）。立ち上げメッセージを送信するオペレーティングシステムはその後、見込まれる立ち上げメッセージを待つためにアイドル状態に戻る。
【００３５】
図２の例においては、オペレーティングシステムＡ及びＢは、ブートされた後（２１０，２５５）、初めにアイドル状態に入る（２１５，２６０）。あるいはまた１つ以上のオペレーティングシステムは、初めはアクティブ状態である。例えば、ブルーレイ及びＨＤ  ＤＶＤディスク双方を再生するビデオディスクプレーヤーにおいては、第１のオペレーティングシステムは、それが電源投入されたとき、ＨＤ  ＤＶＤディスクがプレーヤーに存在するとき、初めアクティブ状態に入る。初めにアイドル状態に入り、立ち上げメッセージに対するチェックする代わりに、第１のオペレーティングシステムは、別のオペレーティングシステムが、（例えば、ユーザーがブルーレイディスクを挿入し）アクティブになることを必要とするイベントが発生するまで、第１のオペレーティングシステム上で実行中の（例えば、ＨＤ  ＤＶＤメニューの起動又はＨＤ  ＤＶＤ再生）ソフトウェアを使用して利用可能な主要機能を実行する。若しくは、装置は、１つのオペレーティングシステムがデフォルトによって始動されたときにアクティブであるように構成され得る。
【００３６】
２.  ウォームブート例
例３：このウォームブートシナリオにおいては、オペレーティングシステムＡ及びオペレーティングシステムＢは、同時ではなく個々に実行するように構成される。この例においては、オペレーティングシステムＡは、プライマリオペレーティングシステムであって、装置のほとんどの機能を今、制御している。それは、ユーザーがオペレーティングシステムＢによって提供される機能を使用することを試みていることを検出する。
例３の処理は、以下のステップを含む。
【００３７】
１.  識別された機能要件を不揮発性記憶装置にストア。
２.  オペレーティングシステムの要件を不揮発性記憶装置にストア。
３.  オペレーティングシステムＡをシャットダウン。
４.  リブート。
５.  上記のステップ２においてストアされたデータを読み出すことによって、要求されているオペレーティングシステムを（ブートローダーを用いて）決定。この例においては、これはオペレーティングシステムＢである。
６.  オペレーティングシステムＢをブート。
７.  上記のステップ１においてストアされたデータを読み出すことによって、要求されている機能を（オペレーティングシステムＢを用いて）決定。
８.  機能要件を満たす必要なハードウェアリソースを必要な場合、アクティブにし、（オペレーティングシステムＢを用いて）使用。１つのオペレーティングシステムから別のオペレーティングシステムへの移行が、移行時間を短縮し、及び／又はユーザー体験に対する悪影響を緩和するために、いくつかのハードウェアリソース（例えばディスプレイ）に対して正常に実行され得、（例えば現在メニューを表示している）それらの状態は、オペレーティングシステムＡからオペレーティングシステムＢへのハンドオフを介し完全に又は部分的に持続されている。
９.  所望されている機能を（オペレーティングシステムＢを用いて）提供。
例４：図３は、オペレーティングシステムが同時に実行しない装置において、異なるオペレーティングシステムの機能を使用するためのウォームブートモデルによる技法（３００）の例を示す流れ図である。図３に示されている技法（３００）は、上記の例３のいくつかの点においてステップと異なるが、それでも２つのオペレーティングシステム間のスムーズな移行を達成している。
【００３８】
技法（３００）においては、ブートローダーがアクティブにされ（３０５）、オペレーティングシステムＢがブートされるか否か示すフラグがチェック（３１０）される。フラグがセットされていた場合、装置は、オペレーティングシステムＢをブートし（３１５）、オペレーティングシステムＢを使用して利用可能な主要機能を実行する（３２０）。あるいはまたフラグ以外のインジケーターが、実行される機能及び／又はどのオペレーティングシステムが使用されるか示すために使用される。
【００３９】
機能変更が検出された場合（３２５）、オペレーティングシステムは、それが新しい機能を支援しているか否か決定する（３３０）。それが新しい機能を支援していない場合、その機能に関する情報が不揮発性記憶装置にストアされる（３３５）。ブートフラグが、他方のオペレーティングシステムを使用する必要があることを示すためにリセットされ、リブートが発生する（３４０）。
【００４０】
リブート時（３４０）、ブートローダーがアクティブにされ（３０５）、ブートフラグは、オペレーティングシステムＡがブートされることを示す（３１０）。装置は、オペレーティングシステムＡをブートし（３５０）、オペレーティングシステムＡを使用して利用可能な主要機能を実行する（３５５）。機能変更が検出された場合（３６０）、オペレーティングシステムは、それが新しい機能を支援しているか否か決定する（３６５）。それが新しい機能を支援していない場合、その機能に関する情報が、不揮発性記憶装置にストアされ（３７０）、装置は、オペレーティングシステムＢへリブートし得る（３７５）。
【００４１】
リブート（３４０，３７５）は、装置が電源投入された後にリブートが発生するのでウォームブートである。オペレーティングシステムの典型的なウォームブートの一特徴は、オペレーティングシステムのあらゆるものが再初期化されないことである。ウォームブートの機能性の例は、−ラップトップ計算機がスタンバイ又はハイバネーションモードに入ったとき、いくつかの状態がセーブされ、ラップトップ計算機が再び立ち上がったとき、それが停止したところからもっと素早く通常の動作を再開し得る−ラップトップ計算機における「スタンバイ」又は「ハイバネーション」機能を含む。
【００４２】
Ｂ．議論
上記の例１、２、３及び４は、１つ以上のオペレーティングシステム環境がプライマリオペレーティングシステムによってホストされていて、環境すべてが、必要なハードウェアリソースへのアクセスを共有する（時として仮想化技法として参照される）技法とは異なる。例えば、上記の例１、２、３及び４のオペレーティングシステム移行は、オペレーティングシステムを切り換えるためのユーザーによる意識的な行為から必ずしも生じるわけでなくてそれらは、別のオペレーティングシステムをホストする一オペレーティングシステムも別のオペレーティングシステムが実行するその上のプラットフォームもエミュレートする１つのオペレーティングシステムも関与しない。ユーザーは、その装置上で利用可能な複数のオペレーティングシステムのいかなる認識も有する必要はない。
【００４３】
記載した実装に関する利点及び改善の中には、特定の機能性に必要とされるオペレーティングシステムの間で移行を実行する総時間の縮小及びユーザーにとって目立たないオペレーティングシステム移行を含むものもある。
【００４４】
様々な機能を範囲とするために、２つのオペレーティングシステムを使用する装置の例を考えられたい。この装置の例においては、オペレーティングシステムＡが、光ディスクメディアの再生を支援すると同時にオペレーティングシステムＢが、インターネットの閲覧を支援している。ユーザーがインターネットを閲覧している間、オペレーティングシステムＢは、その装置の下で制御されている。ユーザーが次に光ディスクを挿入し、装置上の「再生」ボタンを押下すると、ユーザーは通常、オペレーティングシステムＢからオペレーティングシステムＡへ切り換えのために、ユーザーによる特定の動作をせずに光メディアの再生がもたらされることを期待している。記載した実装によって、オペレーティングシステム移行及び選択をユーザーから隠すことができる。
【００４５】
通常、オペレーティングシステムがブートし、デバイスドライバーがロードされると、デバイスドライバーが、そのハードウェアを既知の状態に初期化する。ユーザーの目に見える画面又は外部ディスプレイの場合、この初期化は、ユーザーに知覚可能なちらつきをもたらし得るか又はそれは、外部ディスプレイに、装置の信号との同期をしばらく間、失わせ得る。オペレーティングシステムの実体それぞれに対するデバイスドライバーの実装を変更することによって、初期化フェーズは、現在の表示状態を明らかにするように実行され得、ちらつき、破損又は信号損失をもたらすような不要な初期化ステップを実行させない。これは、ユーザーに対してオペレーティングシステム間で更に目立たない移行を実行するためにどのようにリブートシーケンスを設計し得るかに関する一例である。
【００４６】
III．音声及び画像再生装置の実装例
この章は、音声及び画像再生に関する異なるメディアフォーマット（例えばビデオディスクフォーマット）を処理する媒体装置に対するオペレーティングシステムの移行を処理する特定の技法及びツールの例を含む。代替の実装においては、以下の例に示されているステップは、再順番付けされ得るか、省略され得るか又は異なるステップに置換され得る。
【００４７】
例えば、第２のオペレーティングシステムから第１のオペレーティングシステムへの切り替えを記載している例は、第１のオペレーティングシステムを用いて支援されているリクエストされた機能がもはや使用されていなくなった後か、又は第２のオペレーティングシステムを用いて支援されている機能を使用するその後のユーザーの動作に応答し、デフォルトによって第２のオペレーティングシステムに元に戻るように拡張され得る。オペレーティングシステム間の移行は、必要されるか又は望まれている間、継続し得る。初めにプライマリオペレーティングシステムとして第２のオペレーティングシステムを指定する例は、初めにプライマリオペレーティングシステムとして第１のオペレーティングシステムを指定するように変更され得、又は逆もまた同様である。別の代替手段として装置は、異なるメディアフォーマットを支援するために、２つの第１のオペレーティングシステム以外のオペレーティングシステムを使用し得る。本章の例は、（例えばＨＤ  ＤＶＤ、ブルーレイ、ＤＶＤ映像再生又はＣＤ音声再生の）再生動作の実行を記載しているが、オペレーティングシステムは、特定のオペレーティングシステムに特有か又は２つ以上のオペレーティングシステムに共通の別の動作を実行し得る。本章における例は、オペレーティングシステム間の移行をトリガーし得るイベントとしてディスクの変更を記載しているが、特定のオペレーティングシステムを用いて支援されているユーザー選択機能などの他のイベントもオペレーティングシステム間の移行をトリガーし得る。本章における例は、２つのオペレーティングシステム間の切り換えを記載しているが、２つを超えるオペレーティングシステムを切り換えることが可能である。
【００４８】
Ａ．  メディアフォーマット変更のための正常ハンドオフ
実装の中には、メディアフォーマット変更用の正常ハンドオフモデルが、２つ以上のプロセッシングコアそれぞれが異なるメディアフォーマットを支援している異なるオペレーティングシステムを実行するマルチコアの選択処理を含むものもある。正常ハンドオフモデルは、異なるフォーマットのコンテンツに対する更に短いロード時間をもたらし得る。
【００４９】
図４は、ＨＤ  ＤＶＤディスク再生用に第１のオペレーティングシステムを使用し、別のディスクフォーマットのディスク再生用に第２のオペレーティングシステムを使用する装置における正常ハンドオフ移行の処理に関する技法（４００）の例を示す流れ図である。図４に示されている例においては、ブートローダーがアクティブにされ（４０５）、オペレーティングシステムＡ及びＢがブートされる（４１０，４５５）。オペレーティングシステムＢは、まずディスクが装置に存在しているか否かチェックする（４６０）。ディスクが存在している場合、オペレーティングシステムＢは、ディスクがＨＤ  ＤＶＤディスクであるか否か決定する（４６５）。ディスクが、ＨＤ  ＤＶＤディスクでない場合、オペレーティングシステムＢは、オペレーティングシステムを使用し支援されている主要機能（例えばブルーレイ、ＤＶＤ又はＣＤの音声再生（４７０））を実行し得る。ディスクの変更を検出すると（４７５）、オペレーティングシステムは、新しいディスクがＨＤ  ＤＶＤディスクであるか否か決定する（４６５）。
【００５０】
オペレーティングシステムＢが、始動時又はディスクの変更後、ディスクをチェックしたとき、ディスクがＨＤ  ＤＶＤディスクである場合、オペレーティングシステムは、必要に応じオペレーティングシステムＡへの移行のためにハードウェアリソースを準備し（４８０）、立ち上げメッセージをオペレーティングシステムＡへ送信する（４８５）。オペレーティングシステムＢは、アイドル状態に入って（４９０）、オペレーティングシステムＡからの立ち上げメッセージをチェックする（４９５）。立ち上がった後、オペレーティングシステムＢは、再びそのオペレーティングシステムを使用して支援されている主要機能（例えばブルーレイ、ＤＶＤ又はＣＤの音声再生（４７０））を実行し得る。
【００５１】
図４に示されている例においては、オペレーティングシステムＡは、ブートされたとき、初めにアイドル状態（４１５）に入る。オペレーティングシステムＡは、オペレーティングシステムＢからの立ち上げメッセージをチェックする（４２０）。立ち上がった後、オペレーティングシステムＡは、そのオペレーティングシステムを使用して支援されている主要機能（例えばＨＤ  ＤＶＤ映像の再生（４２５））を実行し得る。
【００５２】
ディスクの変更を検出すると（４３０）、オペレーティングシステムは、新しいディスクがＨＤ  ＤＶＤディスクであるか否かチェックする（４３５）。そうでない場合、オペレーティングシステムは、必要に応じてオペレーティングシステムＢへの移行のためにハードウェアリソースを準備し（４４０）、立ち上げメッセージをオペレーティングシステムＢに送信する（４４５）。オペレーティングシステムＡは、次に見込まれる立ち上げメッセージを待つアイドル状態に戻り得る（４１５）。
【００５３】
実装の中には、オペレーティングシステムそれぞれに関するアイドル状態の目的が、オペレーティングシステムそれぞれがアイドル状態のときの装置内のハードウェアへのアクセス回避であるものもある。例えば、１つのオペレーティングシステムが、光ドライブユニットにアクセス中である間、別のアイドル状態の別のオペレーティングシステムが、そのドライブへのアクセスを防ぎ得るものもある。アイドル状態は、異なる方法で処理され得る。例えば、オペレーティングシステムにおけるデバイスドライバーは、アイドルモードを支援するように符号化され得る。若しくは、オペレーティングシステムが、デバイスドライバーを動的にロードし、アンロードすることを支援している場合、ドライバーは、オペレーティングシステムが基盤となるハードウェアへのアクセスを防ぐために、アンロードされ得る。若しくは、オペレーティングシステムの中には、それらの状態が、メモリーにセーブされ、その後、停止し、後で素早く再始動される得、オペレーティングシステムがスリープさせられ得るものもある。そのようなスリープ機能は、マイクロソフト社製のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムにおけるハイバネーション機能を含む。
【００５４】
同一の機構が、装置上のオペレーティングシステムそれぞれにアイドル状態を実装するために、使用される必要はない。例えば、ハイバネーションは、１つのオペレーティングシステムによって支援され得るが、別のオペレーティングシステムは、ドライバーをロードしアンロードすることを支援するだけである。ハイバネーションを支援しているオペレーティングシステムは、ハイバネーション状態に入ることによって、アイドルモードを実施し得るが、別のオペレーティングシステムが、デバイスドライバーをアンロードすることによって、アイドルモードを実施し得る。アイドルモードを直接、支援しているドライバー及びアンロードとデバイスドライバーとの組み合わせは、例えばオペレーティングシステム上のデバイスドライバーのサブセットだけがアンロードされ得る場合、使用され得る。
【００５５】
このモデルに対する代替手段は、装置におけるハードウェアコンポーネントを、ファームウェアレイヤを通過するように抽象化することである。オペレーティングシステムにおけるドライバーは、ハードウェアを直接用いる代わりに抽象化されたコンポーネントと通信し得る。これは、オペレーティングシステムの仮想化環境又はデバイスアクセスは、物理バスが別の装置を介し通過され得る（例えばネットワークドライバーがＵＳＢバスを越えてネットワークカードと通信し得る）レイヤを介し、抽象化されるシステムで使用されるモデルに対するＢＩＯＳの概念と同様である。アイドルモードの機能性は、次に装置へのアクセスを抽象化する中間レイヤにおいて実装され得る。
【００５６】
図５には、ファームウェア（５３０）及び共有ハードウェアリソース（５４０）を有するデュアルコア設計を用いたデュアルブート装置（５００）の例を示す。図５を参照すると、（Ｌｉｎｕｘベースのオペレーティングシステム、別のＵｎｉｘ（登録商標）ライク又はＵｎｉｘ（登録商標）改良型のオペレーティングシステム又は他のオペレーティングシステムなどの）第２のオペレーティングシステム（５１０）は、ブルーレイプレーヤーのスタック（５１４）及び第２のオペレーティングシステム（５１０）に特有のドライバー（５１２）を支援している。（Ｗｉｎｄｏｗｓ（登録商標）ＣＥオペレーティングシステム又は他のオペレーティングシステムなどの）第１のオペレーティングシステム（５２０）は、ＨＤ  ＤＶＤプレーヤーのスタック（５２４）及び第１のオペレーティングシステム（５２０）に特有のドライバー（５２２）を支援している。ファームウェア（５３０）は、ブートローダーデーモン（５３２）を含んでいて、入力／出力サービス（５３４）を提供している。ファームウェア（５３０）は、特定のオペレーティングシステムとのどんな提携も有さずブートロード及びディスクのＩＤ検出状態マシンを仲介するために使用される。入力／出力サービス（５３４）は、オペレーティングシステム（５１０，５２０）双方に関するハードウェア装置（５５０）の共有ハードウェアリソース（５４０）に対する単一エントリーポイントを可能にする。入力／出力サービス（５３４）は、従来のＢＩＯＳサービスと同様である。入力／出力サービス（５３４）は単純であるが、異なるオペレーティングシステム特有のドライバー（５１２，５２２）が、大きく性能を犠牲にすることもなく、既存のドライバーに対し多くの根本的変更もせずに移植可能なほど強力である。Ｕｎｉｘ（登録商標）システム上で見出されるシステムコール「ｉｏｃｔｌ」に関連付けられて使用される単純な読み出し／書き込み／オープン／クローズなどのプログラム動作によって、アプリケーションは、デバイスドライバーと制御又は通信可能になる。
【００５７】
正常ハンドオフモデルは、更なるメモリーと、ハンドオフモデルを調整するためのハードウェアリソース共有及び／又はオペレーティングシステム間の通信オーバーヘッドに対処するオペレーティングシステムに対する修正と、を使用し得るが、移行時間を減らし、ユーザー体験を改善できる。エンジニアリングコストを削減するためには、オペレーティングシステムにおいては多くの場合、可能な限り作業しないことが望ましい。標準のデバイスドライバーを使用することが多くの場合、好まれる。
【００５８】
Ｂ．  メディアフォーマット変更用ウォームブートモデル
図６は、ウォームブートモデルによる利用可能な第１及び第２のオペレーティングシステムを有する装置において、ディスクフォーマットの変更を処理するオペレーティングシステムが同時実行しない技法（６００）の例を示す流れ図である。技法（６００）において、ブートローダーがアクティブにされ（６０５）、ＨＤ  ＤＶＤ再生が実行されるか否かを示すフラグがチェックされる（６１０）。フラグがセットされている場合、装置は、第１のオペレーティングシステムをブートし（６１５）、第１のオペレーティングシステムによって支援されている機能（例えばＨＤ  ＤＶＤの再生（６２０））を実行する。あるいはまたフラグ以外のインジケーターが、実行される機能及び／又はどのオペレーティングシステムが使用されるかを示すために使用される。ディスクの変更が検出された場合（６２５）、オペレーティングシステムは、それが新しいディスクを支援しているか否か決定する（６３０）。新しいディスクを支援していない場合、ＨＤ  ＤＶＤフラグがクリアされ（６３５）、リブート時（６４０）、ブートローダーがアクティブにされ（６０５）、クリアされたＨＤ  ＤＶＤフラグは、第２のオペレーティングシステムがブートされることを示す（６１０）。
【００５９】
リブート後（６４０）か又は初めにＨＤ  ＤＶＤフラグがセットされていない場合、装置は、第２のオペレーティングシステムをブートする（６５５）。第２のオペレーティングシステムは、初めにディスクが装置に存在しているか否かチェックする（６６０）。ディスクが存在している場合、第２のオペレーティングシステムは、そのディスクがＨＤ  ＤＶＤディスクであるか否か決定する（６６５）。そのディスクがＨＤ  ＤＶＤディスクでない場合、第２のオペレーティングシステムは、オペレーティングシステム特有の主要機能（例えばブルーレイ、ＤＶＤ又はＣＤオーディオの再生）を実行し得る（６７０）。ディスクの変更を検出すると（６７５）、オペレーティングシステムは、新しいディスクが、ＨＤ  ＤＶＤディスクであるか否か決定する（６６５）。
【００６０】
第２のオペレーティングシステムが始動時又はディスク変更後、ディスクをチェックしたとき、ディスクがＨＤ  ＤＶＤディスクだった場合、オペレーティングシステムはＨＤ  ＤＶＤフラグをセットし（６８０）、リブート時（６８５）、ブートローダーがアクティブにされ（６０５）、ＨＤ  ＤＶＤフラグは、第１のオペレーティングシステムがブートされることを示す（６１０）。
【００６１】
リブート（６４０，６８５）は、装置が電源投入された後に生じるのでウォームブートである。あるいはまたオペレーティングシステムを直接にロードして開始するロジックが、ブートローダーを介して循環するよりもむしろ、使用され得る。
【００６２】
異なるオペレーティングシステムのリブート又は別のロード及び起動時、いくつかのハードウェアリソースの状態が、ユーザー体験に対する悪影響を緩和するように異なるオペレーティングシステムの制御を介し、完全又は部分的に持続され得る。例えば、高解像度マルチメディアインタフェース（「ＨＤＭＩ」）コントローラーの状態もリセットされ得ず、フロントパネルの表示状態もリセットされ得ない。
【００６３】
前述したウォームブートモデルに対していくつかの選択及び拡張があり得る。例えば、ディスクタイプの識別が、一旦書き込まれ得、装置用のブートローダーに存在し得る。ブートローダーは、ディスクタイプの識別に基づいて正しいオペレーティングシステムを選択し得る。ディスクの変更は、装置を構築するための技術的努力を簡単化し得るブートローダーロジックを取得するために、シャットダウン及びリブートを用いて処理され得る。
【００６４】
別の例として時間を消費する動作が、並行に処理され得る。例えば、メモリーからオペレーティングシステム及び再生アプリケーションをロードし、メディアタイプを識別する処理は、多大な時間がかかり得る。
【００６５】
図７は、ウォームブートのメディアフォーマットの切り換え動作を並列に実行する技法（７００）の例を示す流れ図である。図７に示されている例においては、現在のオペレーティングシステムによって支援されている再生アプリケーションが、初めに実行している。ディスクトレーがオープンされ（７１０）、装置が現在の再生プロセッサーを止めて再生アプリケーションを停止する（７２０）。（このステップは任意であるが、次のステップのためのメモリーをいくらかでも解放するために望まれ得る。）装置は、（空きメモリーが十分にある場合、）別のオペレーティングシステムをメモリーへロードし始める（７３０）。新しいメディアが挿入されたとき（７４０）、システムは、そのメディアタイプを識別する（７５０）。オペレーティングシステムのロード（７３０）は、長時間の動作であり得るので、装置は、オペレーティングシステムのロード（７３０）を妨げずに別の１つ以上のステップ（例えばメディアタイプの識別（７５０））と並行に続行し得る。メディアタイプの識別（７５０）も長時間の動作であり得るので、それも別の１つ以上のステップ（例えばオペレーティングシステムのロード（７３０））と同時に続行する。
【００６６】
装置は、現在のオペレーティングシステムが新しいメディアを支援しているか否かチェックする（７６０）。新しいメディアタイプが、既に実行している現在のオペレーティングシステムを使用する場合、新しいオペレーティングシステムのロード（７３０）が中止され、適切なプレーヤーアプリケーションが新しいメディアに対して起動される（７７０）。新しいメディアタイプが、ロードされるオペレーティングシステムを使用する場合、その装置は、必要な場合、オペレーティングシステムのロードが終えるのを待ってリブートし、メモリーの新しいオペレーティングシステムを再始動する（７８０）。
【００６７】
ウォームブートの実装の中には、いくつかの正常ハンドオフの実装と比較した場合、特定のハードウェアプラットフォームに依存せず、更なるハードウェアリソースも必要とせず、全体の複雑さも有しないものもある。ウォームブート実装の中には、異なるコンテンツフォーマットに対しコンテンツのロード時間が増大するコストを含み得るものもある。
【００６８】
IV．  拡張及び代替手段
デバイスセットアップアプリケーションは、一般に任意の記録媒体に接続されていない潜在的に複雑なソフトウェアアプリケーションである。ビデオディスクプレーヤーに関しては、デバイスセットアップ機能は、多くの場合、セットアップディスクを挿入することによるよりもむしろ、リモートコントローラー上のボタンを介しアクセスされる。単一のオペレーティングシステムが、装置において同時に実行しているときは、セットアップがオペレーティングシステムそれぞれに実装され得、装置を開発する技術的な努力を複雑にするが、より良好なユーザー体験をもたらし得る。若しくは、セットアップは、単一のオペレーティングシステム上に実装され得、そのセットアップを支援しているオペレーティングシステムへのセットアップ入力が、その装置をリブートすることを要求する場合、見込まれるユーザー体験から損なうコストの技術的努力を簡素化する。ハイブリッド手法は、縮小した技術努力と増大した利便性とを混合したものを得るために使用され得る。頻繁にアクセスされる（例えば再生中、字幕を利用可能にするか又は利用不可能にする）動作が、２つ以上のオペレーティングシステムに実装され得、それほど頻繁でない（例えばネットワーク接続を設定する）動作が、単一のオペレーティングシステム上に実装され得る。複数のオペレーティングシステムが、同時に装置上で実行されるとき、セットアップは、単一のオペレーティングシステム上に実装され得、その装置の現在のメディアタイプにかかわらずそれでもなお機能し得る。例えば、セットアップは、１つのＣＰＵコアの上で実行する第２のオペレーティングシステム上に実装され得、ＨＤ  ＤＶＤの再生を制御する第１のオペレーティングシステムに渡されるユーザーインタフェースを実現する。ユーザーインタフェースは、映像再生の代わりか又はそれに加えられて（例えば一緒に組み合わされているか又は別々のウィンドウ画面上に）表示され得る。
【００６９】
装置は、ウォームブートと正常ハンドオフオペレーティングシステム移行技法との組み合わせを実装し得る。例えば、装置は、リソース利用、移行時間及びユーザー体験への影響の可能性などの要因に基づいて、正常ハンドオフ移行又はウォームブート移行を使用する必要があるか否か決定し得る。このようにして装置は、オペレーティングシステム間の移行処理において柔軟性を有し得る。
【００７０】
メディアフォーマットの中には、拡張マークアップ言語（「ＸＭＬ」）の支援、ＥＣＭＡＳｃｒｉｐｔ（標準スクリプト言語）の支援又はＪａｖａ（登録商標）支援などの再生及びメニューナビゲーションの支援を超えた高機能な支援を要求するものもある。これらの類の高度な機能に関する支援を要求する機能選定もオペレーティングシステム移行を駆動し得る。
【００７１】
デュアルフォーマットディスクの使用は、ディスクの変更に関連したイベントと同様のオペレーティングシステム移行をトリガーするイベントをもたらし得る。本明細書に記載した技法及びツールは、デュアルフォーマットディスクと関連し使用され得る。
【００７２】
様々な実施形態を参照して我々の発明の原理を記載し例示しているので、その様々な実施形態がそのような原理から逸脱せずに配置及び詳細において変更され得ることが認められよう。本明細書に記載したプログラム、プロセス又は方法が別の方法で示されていない場合、特定の任意の計算環境タイプに関連も限定もされないことを理解されたい。様々なタイプの汎用又は専用の計算環境が、本明細書に記載した教示による動作を用いて使用されるか又は実行し得る。ソフトウェアで示されている実施形態のエレメントが、ハードウェアで実装され得、逆もまた同様である。
【００７３】
開示された発明の原理が適用される可能性のある多くの実施形態を考慮して、例示されている実施形態は、本発明の好ましい例に過ぎずないことを認められたいのであって、本発明の範囲を限定するように捉えられるべきでない。もっと正確に言えば、本発明の範囲は、以下の請求項によって定義される。
【００７４】
したがって我々は、これらの請求項の範囲及び趣旨内に収まるものすべてを我々の発明として主張する。
【符号の説明】
【００７５】
１００  計算環境
１１０  処理ユニット
１１５  処理ユニット
１２０  メモリー
１２５  メモリー
１３０  基本構成
１４０  記憶装置
１５０  入力装置
１６０  出力装置
１７０  通信接続装置
１８０  ソフトウェア
５００  デュアルブート装置
５１０  オペレーティングシステム
５１２  ドライバー
５１４  スタック
５２０  オペレーティングシステム
５２２  ドライバー
５２４  スタック
５３０  ファームウェア
５３２  ブートローダーデーモン
５３４  入力サービス／出力サービス
５４０  共有ハードウェアリソース
５５０  ハードウェア装置
【図１】
2010518512.tif 000003
【図２】
2010518512.tif 000004
【図３】
2010518512.tif 000005
【図４】
2010518512.tif 000006
【図５】
2010518512.tif 000007
【図６】
2010518512.tif 000008
【図７】
2010518512.tif 000009
【国際調査報告】
2010518512.tif 000010
2010518512.tif 000011