(57)【要約】【課題】受信されたコマンドを適切なオペレーティングシステムに供給できるようにする。【解決手段】中間層４２は、通信部４１で受信されたコマンドを、管理しているテーブルを参照し、第１オペレーティングシステム４３に対するコマンドであるか、第２オペレーティングシステム４４に対するコマンドであるかを判定する。中間層４２は、判定結果に基づき、オペレーティングシステムを起動するとともに、そのオペレーティングシステムに対して受信されたコマンドを転送する。本発明は、複数のオペレーティングシステムを含むＩＣカードなどに適用できる。【選択図】図２
2010198306.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションの追加や削除に対応していない第１のオペレーティングシステムと、
アプリケーションの追加や削除に対応している第２のオペレーティングシステムと、
受信されたコマンドが、前記第１のオペレーティングシステムに対するコマンドであるか、前記第２のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定する判定手段と、
前記テーブルを保持する保持手段と、
前記判定手段による判定結果に基づき、前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムが、処理を開始できるようにメモリを制御する制御手段と、
前記判定結果に基づき、受信されたコマンドを前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムに転送する転送手段と
を備える情報処理装置。
【請求項２】
前記判定手段の判定結果を記憶する記憶手段をさらに備え、
前記判定手段は、受信された前記コマンドが前記テーブルに登録されていない場合、かつ、前記記憶手段に、前記第２のオペレーティングシステムを示す情報が記憶されている場合、前記コマンドは、前記第２のオペレーティングシステムであると判定する
請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、ＩＣチップ、ＩＣカード、または携帯電話機を構成する
請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記第２のオペレーティングシステムが処理するアプリケーションが追加または削除されたとき、前記保持手段に保持され、前記第２のオペレーティングシステムに対応するテーブルを、前記アプリケーションの追加または削除にあわせて更新する更新手段をさらに備える
請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
前記第２のオペレーティングシステムに対応する前記テーブルは、デフォルトのコマンドに関する第１のテーブルと、更新用の第２のテーブルとから構成され、
前記第１のテーブルと前記第２のテーブルは、それぞれ物理的に異なるメモリで管理される
請求項４に記載の情報処理装置。
【請求項６】
前記第２のオペレーティングシステムは、
受信された前記コマンドがアプリケーションの追加、または削除を指示するコマンドであるか否かを判定し、
前記判定による結果が、アプリケーションの追加、または削除するコマンドであると判定された場合、さらに、前記コマンドに前記テーブルの更新の要求が含まれているか否かを判定し、
前記判定による結果が、前記テーブルの更新の要求を含むと判定された場合、前記更新手段に更新要求を出す
請求項４または請求項５に記載の情報処理装置。
【請求項７】
前記第１のオペレーティングシステムと前記第２のオペレーティングシステムのそれぞれのコマンドのフォーマットの違いにより、受信されたコマンドが、前記第１のオペレーティングシステムに対するコマンドであるか、前記第２のオペレーティングシステムに対するコマンドであるかを判定するフォーマット判定手段をさらに備え、
前記判定手段は、前記フォーマット判定手段で判定できなかった結果に対して、受信されたコマンドが、前記第１のオペレーティングシステムに対するコマンドであるか、前記第２のオペレーティングシステムに対するコマンドであるのかを判定する
請求項１乃至６のいずれかに記載の情報処理装置。
【請求項８】
アプリケーションの追加や削除に対応していない第１のオペレーティングシステムと、アプリケーションの追加や削除に対応している第２のオペレーティングシステムを少なくとも含む情報処理装置の情報処理方法において、
受信されたコマンドが、前記第１のオペレーティングシステムに対するコマンドであるか、前記第２のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定し、
その判定結果に基づき、前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムが、処理を開始できるようにメモリを制御し、
その判定結果に基づき、受信されたコマンドを前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムに転送する
ステップを含む情報処理方法。
【請求項９】
アプリケーションの追加や削除に対応していない第１のオペレーティングシステムと、アプリケーションの追加や削除に対応している第２のオペレーティングシステムを少なくとも含む情報処理装置に、
受信されたコマンドが、前記第１のオペレーティングシステムに対するコマンドであるか、前記第２のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定し、
その判定結果に基づき、前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムが、処理を開始できるようにメモリを制御し、
その判定結果に基づき、受信されたコマンドを前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムに転送する
ステップを含む処理をコンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、複数のオペレーティングシステムが搭載されているときに、受信されたコマンドを適切なオペレーティングシステムで処理できるようにした情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、ＩＣ（integrated circuit）を備え、非接触で通信を行える非接触アンテナモジュールを備えるカードが普及している。そのようなカードは、例えば、非接触ＩＣカードなどと称され、非接触で他の装置と通信を行うことが可能とされている。非接触ＩＣカードを用いた非接触通信は、例えば、交通乗車券、電子マネー、ＩＤカード、入退室管理などに用いられ、その用途は広がりつつある。
【０００３】
用途が広がることにより、そのような非接触ＩＣカードは、それぞれの用途に適したＯＳ（operating system）を備える構成にされている。（例えば、特許文献1参照）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−８７１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＩＣカードに限らず、パーソナルコンピュータなどの情報処理装置においても、複数のOSが備えられ、それらのOSが用途に応じて切り換えられて用いられることがある。そのようなパーソナルコンピュータなどでは、ＭＢＲ（Master Boot Record）にパーティションテーブルが置かれ、アクティブにしたいOSのブートセクタが呼び出され、OSの切り替えが行われる。
【０００６】
しかしながら、この手法では、どのOSを呼び出すかを明示的に設定する必要があるので、各OSを起動する手順に手を加える必要がある。また、この手法は、OSを最初に切り替える必要があり、リアルタイムにOSを切り替える際には適していない。
【０００７】
ＩＣカードのＩＣチップ上の各OSは文字列をコマンドとして受け取って動作するため、コマンドとOSの対応表を採用し、受け取ったコマンドによって、動作するOSを切り替えるという手法を適用することが考えられる。
【０００８】
しかしながら、この手法では、OSにアプリケーションが追加される場合、対応表にアプリケーションの新しいコマンドがないと、正しくOSが選択されず、処理が適切にできないといったことが発生する可能性があった。
【０００９】
本発明は、このような状況に鑑みてなされたものであり、複数のOSが混在しても、既存のコマンド仕様を変更することなく、コマンドが対象となるOSに適切に渡されるようにする。
【課題を解決するための手段】
【００１０】
本発明の一側面の情報処理装置は、アプリケーションの追加や削除に対応していない第１のオペレーティングシステムと、アプリケーションの追加や削除に対応している第２のオペレーティングシステムと、受信されたコマンドが、前記第１のオペレーティングシステムに対するコマンドであるか、前記第２のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定する判定手段と、前記テーブルを保持する保持手段と、前記判定手段による判定結果に基づき、前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムが、処理を開始できるようにメモリを制御する制御手段と、前記判定結果に基づき、受信されたコマンドを前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムに転送する転送手段とを備える。
【００１１】
前記判定手段の判定結果を記憶する記憶手段をさらに備え、前記判定手段は、受信された前記コマンドが前記テーブルに登録されていない場合、かつ、前記記憶手段に、前記第２のオペレーティングシステムを示す情報が記憶されている場合、前記コマンドは、前記第２のオペレーティングシステムであると判定するようにすることができる。
【００１２】
前記情報処理装置は、ＩＣチップ、ＩＣカード、または携帯電話機を構成するようにすることができる。
【００１３】
前記第２のオペレーティングシステムが処理するアプリケーションが追加または削除されたとき、前記保持手段に保持され、前記第２のオペレーティングシステムに対応するテーブルを、前記アプリケーションの追加または削除にあわせて更新する更新手段をさらに備えるようにすることができる。
【００１４】
前記第２のオペレーティングシステムに対応する前記テーブルは、デフォルトのコマンドに関する第１のテーブルと、更新用の第２のテーブルとから構成され、前記第１のテーブルと前記第２のテーブルは、それぞれ物理的に異なるメモリで管理されるようにすることができる。
【００１５】
前記第２のオペレーティングシステムは、受信された前記コマンドがアプリケーションの追加、または削除を指示するコマンドであるか否かを判定し、前記判定による結果が、アプリケーションの追加、または削除するコマンドであると判定された場合、さらに、前記コマンドに前記テーブルの更新の要求が含まれているか否かを判定し、前記判定による結果が、前記テーブルの更新の要求を含むと判定された場合、前記更新手段に更新要求を出すようにすることができる。
【００１６】
本発明の一側面の情報処理方法は、アプリケーションの追加や削除に対応していない第１のオペレーティングシステムと、アプリケーションの追加や削除に対応している第２のオペレーティングシステムを少なくとも含む情報処理装置の情報処理方法において、受信されたコマンドが、前記第１のオペレーティングシステムに対するコマンドであるか、前記第２のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定し、その判定結果に基づき、前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムが、処理を開始できるようにメモリを制御し、その判定結果に基づき、受信されたコマンドを前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムに転送するステップを含む。
【００１７】
本発明の一側面のプログラムは、アプリケーションの追加や削除に対応していない第１のオペレーティングシステムと、アプリケーションの追加や削除に対応している第２のオペレーティングシステムを少なくとも含む情報処理装置に、受信されたコマンドが、前記第１のオペレーティングシステムに対するコマンドであるか、前記第２のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定し、その判定結果に基づき、前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムが、処理を開始できるようにメモリを制御し、その判定結果に基づき、受信されたコマンドを前記第１のオペレーティングシステムまたは前記第２のオペレーティングシステムに転送するステップを含む処理を実行させるコンピュータが読み取り可能なプログラム。
【００１８】
本発明の一側面の情報処理装置および方法、並びにプログラムにおいては、アプリケーションの追加や削除に対応していない第１のオペレーティングシステムと、アプリケーションの追加や削除に対応している第２のオペレーティングシステムが少なくとも含まれる。そして、受信されたコマンドが、第１のオペレーティングシステムに対するコマンドであるか、第２のオペレーティングシステムに対するコマンドであるかが、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルが参照されて判定され、その判定結果に基づくオペレーティングシステムが、処理を開始できるようにメモリが制御され、そのオペレーティングシステムにコマンドが転送される。
【発明の効果】
【００１９】
本発明の一側面によれば、複数のオペレーティングシステムが混在しても、既存のコマンド仕様を変更することなく、コマンドが対象となるオペレーティングシステムに適切に渡されるようにすることが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明を適用した情報処理装置の一実施の形態の構成を示す図である。
【図２】情報処理装置の内部構成例を示す図である。
【図３】第１の実施の形態における中間層の構成例を示す図である。
【図４】管理テーブルを参照した処理について説明するための図である。
【図５】中間層の処理について説明するためのフローチャートである。
【図６】第２の実施の形態における中間層の構成例を示す図である。
【図７】管理テーブルを参照した処理について説明するための図である。
【図８】中間層の処理について説明するためのフローチャートである。
【図９】第３の実施の形態における中間層の構成例を示す図である。
【図１０】第２オペレーティングシステムの構成例を示す図である。
【図１１】第２オペレーティングシステムの他の構成例を示す図である。
【図１２】更新に係わる処理について説明するためのフローチャートである。
【図１３】中間層の処理について説明するためのフローチャートである。
【図１４】コマンドのデータ構成について説明するための図である。
【図１５】第４の実施の形態における中間層の構成例を示す図である。
【図１６】中間層の処理について説明するためのフローチャートである。
【発明を実施するための形態】
【００２１】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２２】
［ハードウェアの構成について］
図１は、本発明を適用した情報処理装置の一実施の形態の構成を示す図である。図１に示した情報処理装置１０は、例えば、非接触通信を行うＩＣカード、そのＩＣカードを構成するＩＣチップ、または、そのようなＩＣチップを含む携帯電話などに適用できる。図１に示した情報処理装置は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、不揮発性メモリ１４、バス１５、入出力インタフェース１６、ＭＭＵ（Memory Management Unit）１７、および通信回路１８を含む構成とされる。
【００２３】
ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、入出力インタフェース１６、ＭＭＵ（Memory Management Unit）１７は、それぞれバス１５に接続され、通信回路１８は、入出力インタフェース１６に接続される構成とされる。
【００２４】
ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４は、ＣＰＵ１１が処理を行ううえで必要とされるオペレーティングシステムやデータなどを記憶する。入出力インタフェース１６は、通信回路１８により、他の装置とデータの授受を行う。ＭＭＵ１７は、メモリ、ここでは、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４の制御を行う。
【００２５】
なお、ここでは、ＭＭＵを例に挙げて説明するが、ＭＰＵ（Memory Protection Unit）などのメモリ管理機能を適用することも可能である。
【００２６】
ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４などには、管理テーブルなどが記憶される。詳細は後述するが、管理テーブルのうち、更新などが行われないデフォルトのテーブルは、ＲＯＭ１２に記憶される。管理テーブルのうち、更新などが行われる更新用のテーブルは、不揮発性メモリ１４に記憶されることが好ましい。
【００２７】
また、実施の形態によっては、一時記憶領域を設ける。その一時記憶領域は、一時的にデータが記憶される領域であるため、電源がオフ（OFF）になったときに、記憶されているデータが削除されるようにＲＡＭ１３で構成されることが好ましい。
【００２８】
図２を参照して説明する中間層４２、第１オペレーティングシステム４３、第２オペレーティングシステム４４などは、ＲＡＭ１２、または不揮発性メモリ１４で管理される。またアプリケーションを格納するためのアプリケーション格納部は、不揮発性メモリ１４で構成される。
【００２９】
以下に説明する処理は、ハードウェアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【００３０】
ＣＰＵ１１が、例えば、ＲＯＭ１２や不揮発性メモリ１４などで構成される記憶部（不図示）に記憶されているプログラムを、ＲＡＭ１３にロードして実行することにより、以下に説明する一連の処理が行われる。コンピュータ（CPU１１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア（不図示）に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【００３１】
コンピュータでは、プログラムは、リムーバブルメディアを入出力インタフェース１６に接続されるドライブ（不図示）に装着することにより、入出力インタフェース１６を介して、記憶部にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信回路１８を含む通信部（不図示）で受信し、記憶部にインストールすることができる。その他、プログラムは、ＲＯＭ１２や記憶部に、予めインストールしておくことができる。
【００３２】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【００３３】
［機能構成について］
図１に示した情報処理装置１０の機能について、図２を参照して説明する。例えば、情報処理装置１０を、チップで構成した場合、そのチップ３０には、通信部４１、中間層４２、第１オペレーティングシステム４３、および第２オペレーティングシステム４４が含まれる。チップ３０とその外部に位置する外部装置３１との間で、データの授受が行われる。
【００３４】
外部装置３１は、情報処理装置１０をチップで構成した場合や、携帯電話を構成する部品として構成した場合、チップ以外の部分であり、有線で接続されている機器（例えば、他のチップ）などである。情報処理装置１０を、ＩＣカードなど、単体で利用される装置として構成した場合、外部装置３１は、ＩＣカードなどと非接触で通信を行うリーダライタなどである。
【００３５】
ここでは、情報処理装置１０はチップ３０であるとして説明を続ける。チップ３０の通信部４１は、外部装置３１との通信を行う。通信部４１により通信が制御され、外部装置３１から供給された、例えば、コマンドは、中間層４２に供給される。中間層４２は、第１オペレーティングシステム４３や第２オペレーティングシステム４４に対して、外部装置３１からのコマンドなどのデータを橋渡しする機能を有する。
【００３６】
中間層４２は、管理オペレーティングシステム（管理ＯＳ）としての機能を有する。中間層４２と、第１オペレーティングシステム４３または第２オペレーティングシステム４４の間には、主従関係があり、中間層４２が主であり、第１オペレーティングシステム４３と第２オペレーティングシステム４４が従である。
【００３７】
第１オペレーティングシステム４３と第２オペレーティングシステム４４は、それぞれ異なるオペレーティングシステムである。図２に示した構成では、第１オペレーティングシステム４３と第２オペレーティングシステム４４の２つのオペレーティングシステムが含まれる構成であるとして説明するが、本発明は、２つのオペレーティングシステムが含まれる構成である場合に適用されることが限定されるのではなく、複数のオペレーティングシステムを含む構成とされた場合であっても適用できる。
【００３８】
ここでは図２に示したように、第１オペレーティングシステム４３と第２オペレーティングシステム４４がチップ３０に含まれる場合を例に挙げて説明を続ける。第１オペレーティングシステム４３は、アプリケーションを追加できないオペレーティングシステムであり、第２オペレーティングシステム４４は、アプリケーションを追加できるオペレーティングシステムであるとして説明を続ける。アプリケーションは、所定のオペレーティングシステムが起動されている状態で動作することができる。
【００３９】
そして、第１オペレーティングシステム４３は、既に登録されているアプリケーションを動作させることができるが、登録されていないアプリケーションを追加したり、削除したりすることに対しては対応していないオペレーティングシステムである。また、第２オペレーティングシステム４４は、既に登録されているアプリケーションを動作させることも、登録されていないアプリケーションを新たに登録することや削除することに対しても対応しているオペレーティングシステムである。
【００４０】
アプリケーションが追加されることで、そのアプリケーションで実行できるコマンドが追加されることになる。よって、アプリケーションの追加は、コマンドの追加であると換言することができる。アプリケーションの削除に関しても同様であり、コマンドの削除と換言することができる。
【００４１】
第１オペレーティングシステム４３は、例えば、FeliCa OSなどである。FeliCa（商標）OSは、例えば、電子マネー用途のカードとして用いられ、そのカードは、クレジットカードやプリペイドカード等に代わるものとして商取引に利用されている。FeliCa OSは、電子マネーを示す数値を予め規定されている領域に後から書き込む事や、電子マネーとして使用する領域の範囲を後から規定する事は出来るが、アプリケーションとして、新たにコマンドを追加するなどの機能追加、存在するコマンドを削除する機能削除は出来ない。
【００４２】
第２オペレーティングシステムは、例えば、Java Card OSなどである。Java Card OSは、カードアプリケーションとして機能を追加で搭載することが可能である。なお、ここでは、第２オペレーティングシステムは、例えば、Java Card OSであるとして説明を続けるが、第２オペレーティングシステムは、上記したように、アプリケーションとして機能を追加できるオペレーティングシステムであればよく、Java Card OS以外にも、例えば、MULTOS OSや独自のNative OSなどでも良い。
【００４３】
第１オペレーティングシステム４３と第２オペレーティングシステム４４は、互いにアクセスできないように構成されている。互いにアクセスできないようにするために、firewallなどの論理的な仕組みが適用されたり、物理的に領域を共有することで、同時期に起動されないように制御されたり、機器が異なる構成とされたりする。
【００４４】
図２に示したように、第１オペレーティングシステム４３と第２オペレーティングシステム４４は、メモリの切り替えを行うためのメモリ制御部などのカーネル機能をもつ中間層４２経由で、外部装置３１と通信することができるように構成されている。他の構成として、図示はしないが、オペレーティングシステムのそれぞれが、直接、外部装置３１と通信を行えるような構成としても良い。
【００４５】
ところで、このように、第１オペレーティングシステム４３と第２オペレーティングシステム４４が存在するとき、外部装置３１からのコマンドが、第１オペレーティングシステム４３に対してであるのか、第２オペレーティングシステム４４に対してであるのか、適切に判定し、処理する必要がある。
【００４６】
例えば、第１オペレーティングシステム４３が何らかの処理を実行した後に、第２オペレーティングシステム４４に対するコマンドが受信されたとする。このようなときに、処理を実行していた第１オペレーティングシステム４３に対して引き続きコマンドが供給されてしまうと、第１オペレーティングシステム４３では、そのコマンドを処理できず、エラーが発生してしまうことになる。このようなことを防ぐために、中間層４２が、受信されたコマンドを適切に第１オペレーティングシステム４３または第２オペレーティングシステム４４に対して供給するようにする。そのような中間層４２の構成や動作について、以下に説明する。
【００４７】
［第１の実施の形態について］
図３は、第１の実施の形態における中間層４２の機能を示すブロック図である。図３に示した中間層４２は、コマンド判定部１０１、管理テーブル保持部１０２、メモリ制御部１０３、およびコマンド転送部１０４を含む構成とされている。
【００４８】
コマンド判定部１０１は、通信部４１により受信された外部装置３１からのコマンドが、第１オペレーティングシステム４３に対するコマンドであるか、第２オペレーティングシステム４４に対するコマンドであるかを、管理テーブル保持部１０２を参照して判定する。
【００４９】
管理テーブル保持部１０２は、受信されるコマンドの、例えば、ヘッダの先頭の情報と、そのコマンドがどのオペレーティングシステムに対するコマンドであるのかを示す情報が、関連付けられたテーブルである。一例は、図４を参照して後述する。
【００５０】
メモリ制御部１０３は、コマンド判定部１０１からの指示に基づき、メモリを制御する。メモリ制御部１０３の制御対象とされるメモリは、図１に示した情報処理装置１０におけるＲＯＭ１２、ＲＡＭ１３、および不揮発性メモリ１４である。また、メモリ制御部１０３は、ＭＭＵ（Memory Management Unit)やＭＰＵ（Memory Protection Unit）のメモリ管理機能で実現できる。または、物理的に異なるチップで構成し、電源制御によって複数のオペレーティングシステムが実現されるようにし、メモリ制御部１０３は、その電源制御を行う機能としても良い。
【００５１】
コマンド転送部１０４は、コマンド判定部１０１の判定結果に基づき、通信部４１で受信されたコマンドを、第１オペレーティングシステム４３または第２オペレーティングシステム４４に転送する。
【００５２】
図４を参照し、図３に示した中間層４２の動作について説明する。通信部４１でコマンド１２１が受信されたとする。コマンド１２１のヘッダの先頭には、“６０”（１６進法）との情報が書き込まれている。コマンド判定部１０１は、通信部４１から供給されたコマンド１２１のヘッダの先頭部分の情報を読み出し、その情報と一致する情報を、管理テーブル保持部１０２で管理されているテーブルを参照し、読み出す。
【００５３】
図４に示した例では、管理テーブル保持部１０２として、２つのテーブルが管理されている。ここでは、第１オペレーティングシステム４３と第２オペレーティングシステム４４の２つのオペレーティングシステムがチップ３０に含まれているため、それぞれのオペレーティングシステムに対応するテーブルが、管理テーブル保持部１０２で管理されている。
【００５４】
管理テーブル１４１は、第１オペレーティングシステム４３に対応するテーブルである。管理テーブル１４１は、コマンド１２１のヘッダの先頭が“６０”、“３０”、“Ａ０”（１６進法）である場合、そのコマンド１２１は、第１オペレーティングシステム４３のコマンドであることが関連付けられたテーブルとされている。管理テーブル１４２は、第２オペレーティングシステム４４に対応するテーブルである。管理テーブル１４２は、コマンド１２１のヘッダの先頭が“００Ａ４”、“８０Ｃ２”、“８０Ｃ４”（１６進法）である場合、そのコマンド１２１は、第２オペレーティングシステム４３のコマンドであることが関連付けられたテーブルとされている。
【００５５】
図４に示した例では、管理テーブル保持部１０２に保持されている管理テーブル１４１、管理テーブル１４２に記載されている情報は、コマンドのヘッダ先頭に記載されている事例を挙げたが、管理テーブル保持部１０２で管理される管理テーブルに登録されている情報は、コマンドのヘッダ先頭に記載されている情報に限定されるのではない。すなわち、例えば、コマンドのヘッダ先頭以外の位置に記載されている情報が、管理テーブルに登録されるようにしても良い。
【００５６】
また、そのようにした場合、管理テーブルに登録されている情報と比較するコマンド内のデータの位置は、必ずしも先頭に限らず、比較を行うコマンド判定部１０１によって任意の位置を指定することも可能である。
【００５７】
ここでは、コマンドのヘッダ先頭に記載されている情報が比較されるとして説明を続ける。図４に示した例では、コマンド判定部１０１に供給されたコマンド１２１のヘッダの先頭の情報は、“６０”であるため、コマンド判定部１０１は、管理テーブル１４１を参照し、第１オペレーティングシステム４３に対するコマンドであると判定する。
【００５８】
コマンド判定部１０１は、このような判定をした場合、コマンド転送部１０４に、コマンド１２１とともに、そのコマンド１２１が第１オペレーティングシステム４３に転送するように指示する転送先指定の情報を供給する。コマンド転送部１０４は、コマンド判定部１０１からの情報に基づき、コマンド１２１の転送先を第１オペレーティングシステム４３と設定し、コマンド１２１を、第１オペレーティングシステム４３に転送する。
【００５９】
またコマンド判定部１０１は、メモリ制御部１０３に対して、第１オペレーティングシステム４３を起動するように起動指定の指示を出す。メモリ制御部１０３は、第１オペレーティングシステム４３を起動する。このとき、第１オペレーティングシステム４３に対して、メモリの所定の領域を確保したり、その時点で、第２オペレーティングシステム４４が領域を確保していたら、第２オペレーティングシステム４４を他の領域に移したり、その領域を開放し、第１オペレーティングシステム４３に割り当てたりする制御を実行する。
【００６０】
このような処理について、さらに、図５のフローチャートを参照して説明する。
【００６１】
ステップＳ１０１において、コマンド判定部１０１は、通信部４１で受信された外部装置３１からのコマンドを受信する。コマンド判定部１０１は、コマンドを受信すると、ステップＳ１０２において、コマンドの判定を開始する。コマンドの判定が開始されると、ステップＳ１０３において、管理テーブル保持部１０２で管理されている管理テーブルが読み出される。
【００６２】
すなわち、上記したように、コマンド判定部１０１は、受信されたコマンドのヘッダの先頭部分の情報を読み出し、その情報が、管理テーブル保持部１０２（この場合、管理テーブル１４１または管理テーブル１４２）に登録されているか否かを判定し、登録されていた場合には、さらに、どのオペレーティングシステムに対するコマンドであるかを判定する。
【００６３】
なお、上述したように、コマンドのヘッダの先頭部分以外の位置に位置する情報で、どのオペレーティングシステムに対するコマンドであるかを判定するようにした場合、コマンド判定部１０１は、所定の位置に記載されている情報を読み出すことで判定を行う。
【００６４】
ステップＳ１０４において、管理テーブル保持部１０２に、受信されたコマンドが登録されているか否かが判定される。ステップＳ１０４において、管理テーブル保持部１０２に、受信されたコマンドが登録されていないと判定された場合、ステップＳ１０８において、エラーと判定され、エラー処理が実行される。すなわちこの場合、受信されたコマンドは、第１オペレーティングシステム４３に対するコマンドではなく、第２オペレーティングシステム４４に対するコマンドでもないと判定された場合である。よってこのような場合には、受信されたコマンドは、チップ３０に含まれているオペレーティングシステムで処理するコマンドではないと判定され、エラーとして処理される（受信されたコマンドは処理されない）。また、コマンド判定部１０１は、エラーとして判定した場合、特定の文字列を通信部４１に送付する場合がある。
【００６５】
一方、ステップＳ１０４において、管理テーブル保持部１０２に、受信されたコマンドが登録されていると判定された場合、ステップＳ１０５に処理が進められ、転送先のオペレーティングシステムが判定される。そして、ステップＳ１０６において、コマンド判定部１０１は、メモリ制御部１０３に対して起動（切り換え）させるオペレーティングシステムの情報を渡す。このような処理が行われる一方で、ステップＳ１０７において、コマンド判定部１０１は、コマンド転送部１０４に、オペレーティングシステムの指定情報と、受信されたコマンドを渡す。
【００６６】
このように、アプリケーションの追加や削除に対応していない第１オペレーティングシステム４３と、アプリケーションの追加や削除に対応している第２オペレーティングシステム４４が情報処理装置１０（チップ３０）に含み、受信されたコマンドが、第１オペレーティングシステム４３に対するコマンドであるか、第２オペレーティングシステム４４に対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けた管理テーブル保持部１０２で保持されているテーブルを参照して判定するコマンド判定部１０１、コマンド判定部１０１の判定結果に基づき、第１オペレーティングシステム４３または第２オペレーティングシステム４４が、処理を開始できるようにメモリを制御するメモリ制御部１０３、および、判定結果に基づき、受信されたコマンドを第１オペレーティングシステム４３または第２オペレーティングシステム４４に転送するコマンド転送部１０４を備えることで、以下のような効果がある。
【００６７】
コマンド判定部１０１により、受信されたコマンドが、どのオペレーティングシステムに対してであるかが的確に判定され、その判定に基づき、コマンドが、オペレーティングシステムに対して渡されるとともに、オペレーティングシステムが起動されるようにすることができる。そして、コマンドを受信した時点で、オペレーティングシステムを切り換えることが可能となる。さらに、その切り換えは、切り換え先のオペレーティングシステムを明示的に設定する必要がなく、換言すれば、ユーザが切り換え先のオペレーティングシステムを指定するといったことなく、ユーザの手を煩わせることなく行うことができる。
【００６８】
［第２の実施の形態について］
ところで、第１の実施の形態によれば、受信されたコマンドを適切なオペレーティングシステムに渡すことができるが、例えば、ステップＳ１０４（図５）において、受信されたコマンドが管理テーブル保持部１０２に登録されていないと判定されると、ステップＳ１０８でエラー処理が実行されてしまう。
【００６９】
第２オペレーティングシステム４４は、アプリケーションを追加できる（追加されたアプリケーションのコマンドを追加できる）オペレーティングシステムである。このことを考慮すると、第２オペレーティングシステム４４に関する追加されたアプリケーションのコマンドが、管理テーブル保持部１０２に登録されてないコマンドであっても受信されることがあることが考えられる。
【００７０】
すなわち、ステップＳ１０４において、管理テーブル保持部１０２に登録されていないと判定されるコマンドは、第２オペレーティングシステム４４の追加されたアプリケーションに対するコマンドである場合がある。よって、このことを考慮した第２の実施の形態について以下に説明する。
【００７１】
図６は、第２の実施の形態における中間層４２の機能を示すブロック図である。図３に示した第１の実施の形態における中間層４２と、図６に示した第２の実施の形態における中間層４２とを比較すると、図６に示した中間層４２は、図３に示した中間層４２に、一時記憶領域２０１が追加された構成とされている。その他の構成は同じであり、同一の符号を付してあり、その説明は適宜省略する。
【００７２】
一時記憶領域２０１は、コマンドを受信した時点で（直前まで）起動されていたオペレーティングシステムの情報が記憶される。ここでは、第１オペレーティングシステム４３または第２オペレーティングシステム４４といった情報が記憶される。
【００７３】
図７を参照し、図６に示した中間層４２の動作について説明する。図７を参照しての説明は、図４を参照して既に説明したことと重複するので、その重複する部分に関しては説明を省略する。
【００７４】
コマンド判定部１０１は、通信部４１からコマンド１２１を受信すると、管理テーブル保持部１０２を参照し、必要に応じて、一時記憶領域２０１に記憶されている情報も参照する。図７に示したような状況の場合、受信されたコマンドのヘッダの先頭の情報は、“６０”であるため、管理テーブル１４１が参照されることにより、第１オペレーティングシステム４３へのコマンドであると判定される。そのように判定されたときには、一時記憶領域２０１には、第１オペレーティングシステム４３であることを示す情報が記憶される。
【００７５】
受信されたコマンドが、仮に、管理テーブル保持部１０２に登録されていないコマンドであり、かつ、一時記憶領域２０１に、第２オペレーティングシステム４４を示す情報が記憶されていた場合、コマンド判定部１０１は、受信されたコマンドは、第２オペレーティングシステム４４に対するコマンドであると判定し、そのように処理を実行する。
【００７６】
これは、上記したように、第２オペレーティングシステム４４は、コマンドを新たに追加できるオペレーティングシステムであるために、管理テーブル保持部１０２に登録されていないコマンドが受信されたときで、かつ、第２オペレーティングシステム４４が起動されているときに受信されたコマンドであるならば、第２オペレーティングシステム４４に対するコマンドである可能性が高いからである。換言するならば、新たに追加されたアプリケーションは、第２オペレーティングシステム４４が起動されている時点で受信され、処理される。よって、第２オペレーティングシステム４４に対してコマンドが渡される。
【００７７】
なお、一時記憶領域２０１の初期状態は、何も記憶されていない状態とされる、初期状態は、チップ３０に電圧が供給されたとき（電源がオンにされたとき）の状態である。これは、チップ３０がオフにされたときのオペレーティングシステムを一時記憶領域２０１に記憶し、次にオンにされたときに、その情報に基づいて処理が実行されると、誤った処理が実行されてしまう可能性があるからである。よって、一時記憶領域２０１に記憶されている情報は、電源がオフにされた時点で削除される。そのために、図１を参照して説明したように、一時記憶領域２０１は、ＲＡＭ１０４（図１）で構成される。
【００７８】
なお、チップ３０に電圧が供給された（電源がオンにされた）後、必ず特定のオペレーティングシステムがデフォルトで起動する仕組みを採用することも可能である。そのような仕組みが採用されている場合、前述の「何も記憶されていない状態」から、特定のオペレーティングシステムの起動に合わせて、一時記憶領域２０１の状態も、その起動された特定のオペレーティングシステムの情報が、現在のオペレーティングシステムであることを示す情報として格納されるようにしても良い。
【００７９】
図８のフローチャートを参照し、さらに第２の実施の形態における中間層４２の動作について説明する。
【００８０】
ステップＳ２０１乃至Ｓ２０７の各処理は、図５に示した第１の実施の形態におけるフローチャートのステップＳ１０１乃至Ｓ１０７と同様の処理なので、その説明は省略する。すなわち、受信されたコマンドの情報が、管理テーブル保持部１０２に登録されている場合には、登録されているオペレーティングシステムが起動され（切り換えられ）、コマンドが転送される。
【００８１】
一方、ステップＳ２０４において、受信されたコマンドは、管理テーブル保持部１０２には登録されていないと判定された場合、ステップＳ２０８に処理が進められる。ステップＳ２０８において、前回の転送履歴が一時記憶領域２０１に記憶されているか否かが判定される。例えば、前回、受信されたコマンドが第１オペレーティングシステム４３に転送されていた場合には、第１オペレーティングシステム４３を示す情報が、一時記憶領域２０１に記憶されている。上記したように、一時記憶領域２０１には、初期状態でなければ、情報が記憶されている。換言すれば、連続的にコマンドが受信されている状態であれば、一時記憶領域２０１には情報が記憶されている。
【００８２】
このように、管理テーブル保持部１０２に受信されたコマンドの情報が登録されていないと判定された場合、一時記憶領域２０１が参照される。ステップＳ２０８において、一時記憶領域２０１に情報が記憶されていると判定された場合、ステップＳ２０９に処理が進められる。
【００８３】
ステップＳ２０９において、履歴にあるオペレーティングシステムは、ダウンローダブルであるか否かが判定される。すなわち、一時記憶領域２０１に記憶されている情報が示すオペレーティングシステムは、アプリケーションの追加ができるオペレーティングシステムであるか否かが判定される。
【００８４】
図６に示したような場合、第１オペレーティングシステム４３は、ダウンローダブルのオペレーティングシステムではなく、第２オペレーティングシステム４４は、ダウンローダブルのオペレーティングシステムである。よって、このような場合、一時記憶領域２０１に記憶されている情報が示すオペレーティングシステムが、第１オペレーティングシステム４３である場合、ステップＳ２０９においては、履歴にあるオペレーティングシステムは、ダウンローダブルではないと判定され、ステップＳ２１０に処理が進められる。
【００８５】
ステップＳ２１０において、エラーの処理が実行される。この場合、受信されたコマンドは、管理テーブル保持部１０２に登録されてなく、かつ、その時点で起動されているオペレーティングシステムは、アプリケーションを追加できないオペレーティングシステムである。基本的に、アプリケーションを追加できないオペレーティングシステムに関するコマンドは、管理テーブル保持部１０２に登録されている。よって、このような状況のときには、受信したコマンドを処理する適切なオペレーティングシステムがないため、ステップＳ２１０において、エラー処理が実行される。
【００８６】
一方、一時記憶領域２０１に記憶されている情報が示すオペレーティングシステムが、第２オペレーティングシステム４４である場合、ステップＳ２０９においては、履歴にあるオペレーティングシステムは、ダウンローダブルであると判定され、ステップＳ２０５に処理が進められる。この場合、受信されたコマンドは、管理テーブル保持部１０２に登録されてなく、かつ、その時点で起動されているオペレーティングシステムは、アプリケーションを追加できるオペレーティングシステムである。よって、この場合、第２オペレーティングシステム４４が起動されているときに、第２オペレーティングシステム４４に関するコマンドであるが、管理テーブル保持部１０２には登録されてないコマンドである可能性が高いので、ステップＳ２０５において、第２オペレーティングシステム４４が転送先のオペレーティングシステムとして設定される。
【００８７】
このように、コマンド判定部１０１の判定結果を記憶する一時記憶領域２０１をさらに備え、コマンド判定部１０１が、受信されたコマンドが管理テーブル保持部１０２で保持されているテーブルに登録されていない場合、かつ、一時記憶領域２０１に、第２オペレーティングシステム４４を示す情報が記憶されている場合、コマンドは、第２オペレーティングシステム４４であると判定するようにすることで、以下のような効果がある。
【００８８】
すなわち、管理テーブル保持部１０２に登録されているコマンドが受信されたときには適切に処理ができることはもちろんのこと、管理テーブル保持部１０２に登録されていないコマンドであっても、適切に処理できるようにすることが可能となる。
【００８９】
［第３の実施の形態について］
次に、第３の実施の形態について説明する。第３の実施の形態においては、新たに追加されたアプリケーション（コマンド）が、管理テーブル保持部１０２に登録されるようにする。上記した第２の実施の形態では、コマンドを登録せずに処理できるようにしたが、第３の実施の形態では、コマンドを登録することで処理できるようにする。
【００９０】
図９は、第３の実施の形態における中間層４２の構成を示す図である。図３に示した第１の実施の形態における中間層４２と、図９に示した第３の実施の形態における中間層４２とを比較すると、図９に示した中間層４２は、図３に示した中間層４２に、管理テーブル更新部３０１が追加された構成とされている。その他の構成は同じであり、同一の符号を付してあり、その説明は適宜省略する。
【００９１】
管理テーブル更新部３０１は、管理テーブル保持部１０２で管理されている管理テーブルを更新する。更新対象とされる管理テーブル保持部１０２は、アプリケーションの追加ができるオペレーティングシステムに対応するテーブルである。よって、図９に示したような状況では、第２オペレーティングシステム４４に対応する管理テーブル１４２が、更新対象とされる。よって、図９に示したように、第２オペレーティングシステム４４と管理テーブル更新部３０１との間には、第２オペレーティングシステム４４にだけ解放してあるインタフェースが設けられる。
【００９２】
図１０に、中間層４２と第２オペレーティングシステム４４の詳細な構成であり、管理テーブル保持部１０２の更新に係わる部分についての構成を示す。図１０に示した第２オペレーティングシステム４４は、コマンド解釈部３２１、アプリケーション追加・削除部３２２、アプリケーション格納部３２３、および、管理テーブル更新要求部３２４を含む構成とされる。
【００９３】
コマンド解釈部３２１は、コマンド転送部１０４から転送されてきたコマンドを解釈し、その解釈に基づいて処理を実行する。例えば、コマンド解釈部３２１が、アプリケーションの追加、または削除を指示するコマンドであると解釈した場合、アプリケーション追加・削除部３２２に、アプリケーションの追加または削除の指示が出される。アプリケーション格納部３２３には、アプリケーションが格納されている。
【００９４】
アプリケーション追加・削除部３２２は、アプリケーションを追加する場合、アプリケーション格納部３２３に、新たに追加するアプリケーションを格納させ、アプリケーションを削除する場合、アプリケーション格納部３２３に格納されているアプリケーションであり、削除が指示されたアプリケーションを削除する。
【００９５】
また、アプリケーション追加・削除部３２２は、管理テーブル更新要求部３２４に対して、新たに追加されるアプリケーションのコマンドを、管理テーブル保持部１０２で管理されている管理テーブルに追加するように指示を出す。または、アプリケーション追加・削除部３２２は、管理テーブル更新要求部３２４に対して、削除が指示されたアプリケーションのコマンドを、管理テーブル保持部１０２で管理されている管理テーブルから削除するように指示を出す。
【００９６】
管理テーブル更新要求部３２４は、アプリケーション追加・削除部３２２からの追加または削除の要求を、中間層４２の管理テーブル更新部３０１に出す。管理テーブル更新部３０１は、その指示（要求）に基づき、管理テーブル保持部１０２で管理されている管理テーブルを更新する。
【００９７】
同様にアプリケーションの追加や削除を行い、管理テーブルの更新を行う中間層４２と第２オペレーティングシステム４４の他の構成について、図１１を参照して説明する。
【００９８】
図１０に示した中間層４２の構成と図１１に示した中間層４２の構成は同じである。図１０に示した第２オペレーティングシステム４４の構成と、図１１に示した第２オペレーティングシステム４４の構成を比較するに、図１１に示した第２オペレーティングシステム４４は、図１０に示した第２オペレーティングシステム４４のアプリケーション追加・削除部３２２の代わりに、アプリケーション選択部３４１とされた構成とされ、さらに、アプリケーション実行部３４２が追加された構成とされている。その他の構成は同様であるので、同様の符号を付し、その説明は省略する。
【００９９】
図１１に示した構成の場合、コマンド解釈部３２１は、コマンド転送部１０４から転送されてきたコマンドが、アプリケーションを選択するためのコマンドであると解釈したとき、アプリケーション選択部３４１にコマンドを渡す。アプリケーション選択部３４１は、コマンドで指定されたアプリケーションを、アプリケーション格納部３２３から呼び出す。
【０１００】
アプリケーション実行部３４２は、指定されたアプリケーションを実行し、アプリケーションの実行によって生成されるレスポンスデータをアプリケーション選択部３４１に送信する。アプリケーション選択部３４１は、受信したレスポンスデータを解釈し、そのレスポンスデータに管理テーブルの更新要求と、修正用のデータが含まれていた場合、管理テーブル更新要求部３２４に、そのデータを渡す。
【０１０１】
管理テーブル更新要求部３２４は、中間層の管理テーブル更新部３０１に更新要求を出し、更新するためのデータを渡す。管理テーブル更新部３０１は、受信したデータと、どのオペレーティングシステムからの依頼であるかを識別する情報を対応させて管理テーブル保持部１０２に保持されている管理テーブルを更新する。
【０１０２】
図１０、図１１に、それぞれ示した構成のどちらの構成でも、適切に管理テーブルの更新とアプリケーションの追加、削除を行うことができる。すなわち、第２オペレーティングシステム４４が処理するアプリケーションが追加または削除されたとき、管理テーブル保持部１０２に保持されているテーブルを、アプリケーションの追加または削除にあわせて更新する更新手段を備えることで、適切に管理テーブルの更新とアプリケーションの追加、削除を行うことができる。ここでは図１３のフローチャートを参照した説明は、図１０に示した構成の場合を例に挙げて説明する。
【０１０３】
ところで、第３の実施の形態においては、管理テーブル保持部１０２で保持されている管理テーブルが更新されるが、その更新対象とされるテーブルは、既に作成されているテーブルであっても良いし、新たに作成されるテーブルであっても良い。
【０１０４】
既に作成されているテーブルが更新される場合、例えば図４を参照するに、管理テーブル１４２が更新対象のテーブルとされる。管理テーブル１４２は、アプリケーション追加や削除を行える第２オペレーティングシステム４４に対応するテーブルである。この管理テーブル１４２に対して、新たにコマンドが追加されたり、既に登録されているコマンドが削除されたりするといった更新の処理が実行される。
【０１０５】
しかしながら、このように、デフォルトとして管理テーブル１４２に登録されていたコマンドと、新たに追加されたコマンドを同一のテーブルとして管理することで、セキュリティ的に好ましくない場合がある。すなわち、同一のテーブルとして管理することで、デフォルトのコマンドが削除されてしまったり、改竄されてしまったりする可能性がある。また、同一のテーブルとするためには、コマンドの追加や更新といった処理が行える状態で管理される必要があるため、不揮発性メモリ１４に記憶される必要がある。そのために、前記したように、改竄されてしまったりする危険性がある。
【０１０６】
そこで、既に登録されているコマンドを管理するテーブル、すなわちデフォルトのテーブルと、新たに追加や削除といった更新が行われるテーブルが別々に管理されるようにする。そのような管理の仕方について、図１２を参照して説明する。
【０１０７】
管理テーブル保持部１０２には、第１オペレーティングシステム４３用の管理テーブル１４１、第２オペレーティングシステム４４用の管理テーブル１４２−１、および、第２オペレーティングシステム４４用の管理テーブル１４２−２が保持されている。これらの管理テーブルのうち、管理テーブル１４１と管理テーブル１４２−１は、デフォルトのコマンドを管理するテーブルである。第１オペレーティングシステム４３は、新たにコマンドが追加されることはないので、デフォルトの管理テーブル１４１のみが管理されている。
【０１０８】
これに対して、第２オペレーティングシステム４４は、コマンドの追加が可能なため、デフォルトのテーブルである管理テーブル１４２−１と、更新用のテーブルである管理テーブル１４２−２が設けられている。新たなコマンドの追加や、登録されているコマンドの削除といった処理は、管理テーブル１４２−２に対してのみ行われ、管理テーブル１４２−１に対して行われないように構成されている。更新用のテーブルである管理テーブル１４２−２は、アプリケーションが追加されたとき（コマンドが追加されたとき）に生成されるようにしても良いし、予め用意されていても良い。
【０１０９】
このように、デフォルトのテーブルと更新用のテーブルを設けたときに、同一のメモリに記憶して管理しているのでは、上記したように、セキュリティ的に好ましくない。そこで、改竄などされて欲しくないデフォルトのテーブルである管理テーブル１４１と管理テーブル１４２−１は、ＲＯＭ１２（図１）などのメモリであり、比較的安全な状態を保てるメモリに記憶させる。一方で、更新用のテーブルである管理テーブル１４２−２は、不揮発性メモリ１４（図１）などのメモリであり、更新などの処理を実行できるメモリであり、電源がオフされてもデータが削除されないメモリに記憶させる。
【０１１０】
このように、更新が想定される第２オペレーティングシステム４４に対応する管理テーブルは、デフォルトのコマンドに関する第１のテーブルと、更新用の第２のテーブルとから構成され、第１のテーブルと第２のテーブルは、それぞれ物理的に異なるメモリで管理されるようにする。このようにすることで、セキュリティを高めた状態で、管理テーブルを管理することが可能となる。
【０１１１】
図１２に示したように、管理テーブルを、デフォルトのテーブルと更新用のテーブルといったような階層構造にした場合、一時記憶領域２０１の状態に格納されているオペレーティングシステムの識別情報に従って、対象となるオペレーティングシステムの更新用テーブルに対して、データが修正されることになる。図示はしていないが、複数のオペレーティングシステムで１つの管理テーブルを共有するような構成とした場合には、オペレーティングシステムを識別するための識別情報と対象となるデータとが、一緒に管理テーブル保持部１０２に保持される。
【０１１２】
次に、図１０に示した中間層４２と第２オペレーティングシステム４４の構成を有するときに実行されるコマンドの追加や削除といった更新に係わる処理について、図１３のフローチャートを参照して説明する。
【０１１３】
図１３に示したフローチャートの処理は、第２オペレーティングシステム４４で実行される処理であり、第２オペレーティングシステム４４にコマンドが供給された時点で開始される。よって、図１３に示したフローチャートの処理が実行される前の時点で、図５に示したフローチャートの処理が中間層４２で実行され、その結果、第２オペレーティングシステム４４が起動され、コマンド転送部１０４からコマンドが第２オペレーティングシステム４４に転送されてきている。
【０１１４】
そのようにして、コマンド転送部１０４から転送されてきたコマンドを、ステップＳ３０１において、コマンド解釈部３２１は受信する。ステップＳ３０２において、コマンド解釈部３２１は、受信したコマンドを解釈し、その解釈結果に基づき、ステップＳ３０３における判定を行う。すなわち、ステップＳ３０３において、受信されたコマンドは、アプリケーションの追加を指示するコマンドであるか否かが判定される。
【０１１５】
ステップＳ３０３において、受信されたコマンドは、アプリケーションの追加を指示するコマンドであると判定されると、ステップＳ３０４に処理が進められる。ステップＳ３０４において、コマンド解釈部３２１は、アプリケーション追加・削除部３２２を起動させる。起動されたアプリケーション追加・削除部３２２は、ステップＳ３０５において、コマンドの一部からアプリケーションを抜き出し、アプリケーション格納部３２３に格納させる。このようにして、アプリケーションが追加されると、ステップＳ３１０以降の処理で、必要に応じてコマンドが追加または削除される処理が実行される。
【０１１６】
一方、ステップＳ３０３において、受信されたコマンドは、アプリケーションの追加を指示するコマンドではないと判定されると、ステップＳ３０６に処理が進められる。ステップＳ３０６において、受信されたコマンドは、アプリケーションの削除を指示するコマンドであるか否かが判定される。ステップＳ３０６において、受信されたコマンドは、アプリケーションの削除を指示するコマンドであると判定されると、ステップＳ３０７に処理が進められる。
【０１１７】
ステップＳ３０７において、コマンド解釈部３２１は、アプリケーション追加・削除部３２２を起動させる。起動されたアプリケーション追加・削除部３２２は、ステップＳ３０８において、コマンドの指定に従って、アプリケーション格納部３２３に格納されているアプリケーションを削除する。このようにして、アプリケーションが削除されると、ステップＳ３１０以降の処理で、必要に応じてコマンドが追加または削除される処理が実行される。
【０１１８】
一方、ステップＳ３０６において、受信されたコマンドは、アプリケーションの削除を指示するコマンドではないと判定されると、ステップＳ３０９に処理が進められる。この場合、受信されたコマンドは、アプリケーションの追加を指示するコマンドでも、削除を指示するコマンドでもなく、その他のコマンドである。よって、図１０には図示していないが、その他のコマンドを処理する部分に、コマンド解釈部３２１からコマンドが供給され、供給を受けた部分でコマンドに対応する処理が実行される。
【０１１９】
アプリケーションの追加または削除が、ステップＳ３０５またはステップＳ３０６で実行されると、ステップＳ３１０に処理が進められる。ステップＳ３１０において、アプリケーション追加・削除部３２２は、コマンドに管理テーブルの更新要求が含まれているか否かを判定する。ステップＳ３１０において、コマンドに管理テーブルの更新要求は含まれていないと判定された場合、ステップＳ３１１に処理が進められる。ステップＳ３１１において、通常のインストールまたは削除の処理が実行される。この処理には、管理テーブルの更新の処理は含まれない。
【０１２０】
一方、ステップＳ３１０において、コマンドに管理テーブルの更新要求が含まれていると判定された場合、ステップＳ３１２に処理が進められる。ステップＳ３１２において、アプリケーション追加・削除部３２２は、管理テーブル更新要求部３２４を起動させる。起動された管理テーブル更新要求部３２４は、中間層４２の管理テーブル更新部３０１に対して、管理テーブル保持部１０２で管理されている管理テーブルの更新要求を出す。
【０１２１】
このとき、アプリケーションの追加または削除の対象とされたオペレーティングシステムに対応するテーブルが更新対象の管理テーブルであることを示す情報とともに、更新要求が出される。すなわちこの場合、第２オペレーティングシステム４４に対応する管理テーブルであり、かつ更新対象とされるテーブル（デフォルトのテーブルではないテーブル）が更新対象の管理テーブルであることを示す情報が出される。
【０１２２】
ステップＳ３１４において、管理テーブル更新部３０１は、更新対象とされた管理テーブルを更新する。この場合、第２オペレーティングシステム４４の管理テーブルである管理テーブル１４２−２が更新される。
【０１２３】
このようにして、管理テーブルが更新される。管理テーブルが更新されることで、次にコマンドが受信されたときには、その更新された管理テーブルにも基づいて処理できるようになるため、追加されたコマンドであっても、適切に処理を実行することが可能となる。
【０１２４】
このように、管理テーブルが更新されるようにした場合、また、図１２に示したように、デフォルトのテーブルと更新用のテーブルを別々に設けるようにした場合、中間層４２が受信したコマンドを転送するときの処理時に、必要に応じ、デフォルトのテーブルと更新用のテーブルが参照される。
【０１２５】
第１の実施の形態と第３の実施の形態をともに実施することも可能である。このとき、図５に示したフローチャートにおけるステップＳ１０３で管理テーブルが読み出されるとき、必要に応じて、デフォルトのテーブルだけでなく、更新用のテーブルも読み出される。すなわち、中間層４２のコマンド判定部１０１は、コマンドを受信すると、管理テーブル保持部１０２に保持されている全ての管理テーブルを読み出す。図１２に示した例の場合、管理テーブル１４１、管理テーブル１４２−１、および管理テーブル１４２−２が読み出される。そして、その読み出された管理テーブルに、受信したコマンドの情報が登録されているか否かが判定されることで、ステップ１０４の処理が実行される。
【０１２６】
このように、第１の実施の形態と第３の実施の形態を実施した場合、管理テーブルを更新することも可能であり、その更新された管理テーブルを用いた処理を実行することも可能となる。よって、受信されたコマンドをより確実に処理することが可能となる。
【０１２７】
なお、第１の実施の形態と第３の実施の形態を実施する場合、ステップＳ１０４において、受信されたコマンドは、管理テーブルに登録済みではないと判定された場合、ステップＳ１０８に処理が進められ、エラーと判定されるのではなく、アプリケーションの追加や削除が行えるオペレーティングシステムにコマンドが転送され、図１３に示した更新に係わる処理が実行されるようにする。
【０１２８】
上述した実施の形態においては、第２オペレーティングシステム４４が、アプリケーションの追加や削除が行えるオペレーティングシステムなので、管理テーブルに登録されていないコマンドが受信されたときには、第２オペレーティングシステム４４に、その受信されたコマンドが転送され、図１３に示したフローチャートの処理が実行され、管理テーブルの更新が行われる。このようにすれば、管理テーブルの更新ができ、かつ、その更新された管理テーブルを用いて、次回同じコマンドを受信したとき、ステップＳ１０４において、管理テーブルに登録済みであると判定され、ステップＳ１０５以降の処理が適切に実行されるようにすることができる。
【０１２９】
この場合、アプリケーションの追加や削除が行えるオペレーティングシステムは、チップ３０には第２オペレーティングシステム４４だけであるので、ステップＳ１０４において受信されたコマンドが管理テーブルに登録されていないとき、第２オペレーティングシステム４４に関するコマンドであろうと推定し、その推定に基づいて、上記したような処理を行うことが可能である。
【０１３０】
しかしながら、チップ３０に、アプリケーションの追加や削除を行えるオペレーティングシステムが、２以上含まれた構成とされているような場合、どのオペレーティングシステムのコマンドであるかを推定するのが困難である。例えば、アプリケーションの追加や削除が行えるオペレーティングシステムとして、第２オペレーティングシステム４４と第３オペレーティングシステム（不図示）がチップ３０に記憶されているとする。このような場合、受信されたコマンドが、管理テーブルに登録がなかったときに、第２オペレーティングシステム４４にコマンドを転送するのか、第３オペレーティングシステムにコマンドを転送するのか、一意に決定する（推定する）ことが難しい。
【０１３１】
そこで、アプリケーションの追加や削除が行えるオペレーティングシステムが、複数記憶されるようなチップ３０の場合、第２の実施の形態と第３の実施の形態が実施されることが好ましい。第２の実施の形態は、上述したように、一時記憶領域２０１（図６）を備え、図８に示したフローチャートに基づき処理が実行されるので、管理テーブルに登録されていないコマンドが受信されたときに、どのオペレーティングシステムに転送すればよいかを判定することができるので、どのオペレーティングシステムに転送すればよいかを判定できないといったようなことが発生することを防ぐことが可能となる。
【０１３２】
図８を再度参照するに、ステップＳ２０４において、受信されたコマンドが管理テーブルに登録されていないと判定された場合、ステップＳ２０８において、一時記憶領域２０１に前回の転送履歴が記憶されているか否かが判定される。そして、記憶されていれば、ステップＳ２０９において、一時記憶領域２０１に記憶されている情報が示すオペレーティングシステムは、ダウンローダブルのオペレーティングシステムであるか否かが判定される。そして、ダウンローダブルのオペレーティングシステムであれば、ステップＳ２０５において、ダウンローダブルであると判定されたオペレーティングシステムが、コマンドの転送先として設定される。このような処理が実行されることで、ダウンローダブルのオペレーティングシステムが、図１３に示した更新に係わる処理を実行することになる。
【０１３３】
例えば、一時記憶領域２０１に、第２オペレーティングシステム４４を示す情報が記憶されていれば、受信されたコマンドが、管理テーブルに登録されていなくても、確実に、第２オペレーティングシステム４４に転送され、第２オペレーティングシステム４４で管理テーブルの更新処理が実行される。
【０１３４】
このように、ダウンローダブルに対応した複数のオペレーティングシステムが、チップ３０に記憶されていても、管理テーブルの更新や、その管理テーブルを用いた処理を適切に実行することが可能である。
【０１３５】
さらに、一時記憶領域２０１を中間層４２に設けることで、ステップＳ２０３における管理テーブルの読み出しに係わる処理を高速化することが可能となる。コマンド判定部１０１は、コマンドを受信したとき一時記憶領域２０１を参照し、記憶されている情報が示すオペレーティングシステムに対応する管理テーブルを、管理テーブル保持部１０２から読み出す。
【０１３６】
例えば、一時記憶領域２０１に、第１オペレーティングシステム４３を示す情報が記憶されていた場合、管理テーブル１４１（図１２）が読み出される。仮に、読み出された管理テーブル１４１に、受信されたコマンドが登録されていなければ、他の管理テーブル、例えば、管理テーブル１４２−１が読み出される。
【０１３７】
また、一時記憶領域２０１に、第２オペレーティングシステム４４を示す情報が記憶されていた場合、管理テーブル１４２−１が読み出される。そして、その管理テーブル１４２−１に受信されたコマンドが登録されていなければ、管理テーブル１４２−２が読み出される。
【０１３８】
このように、一時記憶領域２０１に記憶されている情報を参照し、参照する管理テーブルを絞り込んでから参照することで、コマンドが登録されている否かの検索（オペレーティングシステムの検索）の処理を高速化することができる。
【０１３９】
さらに、図１２では、例えば、第１オペレーティングシステム４３に対応する管理テーブル１４１は、１つのテーブルとして図示し、そのように説明したが、複数のテーブルで構成される（階層化されて構成される）ようにしても良い。例えば、始めに受信される可能性の高いコマンドと、第１オペレーティングシステム４３が起動されている状態のときに受信される可能性の高いコマンドとを別の管理テーブルにして保持されるようにしても良い。
【０１４０】
このようにした場合、一時記憶領域２０１に、第１オペレーティングシステム４３であることを示す情報が記憶されているときには、第１オペレーティングシステム４３が起動されている状態のときに受信される可能性の高いコマンドの管理テーブルが参照対象とされるようにすることで、さらに検索にかかる高速化することが可能となる。もちろん、第１オペレーティングシステム４３に対応する管理テーブル１４１以外の管理テーブルも複数のテーブルに分割しておくことで、検索にかかる処理の高速化をはかることが可能となる。
【０１４１】
上記したように、第１の実施の形態乃至第３の実施の形態は、それぞれ単独でも実施できるし、組み合わせても実施できる。単独で実施しても、組み合わせて実施しても、各形態には、以下のような効果がある。
【０１４２】
中間層４２でオペレーティングシステムに対する適切なコマンドの転送処理を実現することができる。そのことにより、既存のオペレーティングシステムを利用しているシステムやサービスの仕様を変更することなく、使用することができるようになる。
【０１４３】
また、搭載するオペレーティングシステムのコマンドの仕様を変更する必要がないので、変更によるセキュリティ低下やセキュリティホールを考慮する必要がなくなり、設計などの手間を軽減することが可能となる。
【０１４４】
さらには、外部装置３１からの条件などを追加せずに、チップ３０内で閉じた条件で、転送すべきオペレーティングシステムを決定できるため、高い汎用性を確保することができる。
【０１４５】
［第４の実施の形態について］
ところで、第１乃至第３の実施の形態によれば、管理テーブルを参照した処理を実行することで、受信されたコマンドを適切なオペレーティングシステムに渡すことができる。さらに、コマンドのフォーマットを参照することで、より早く、確実にコマンドを適切なオペレーティングシステムに渡す例を第４の実施の形態として、以下に説明する。
【０１４６】
図１４は、コマンドのデータ構成例を示す図である。コマンド１２１は、第１オペレーティングシステム４３のコマンドである場合、コマンド４０２として示したような構成であり、第２オペレーティングシステム４４のコマンドである場合、コマンド４０３として示したような構成となる。オペレーティングシステム毎にコマンドのフォーマットは規定されており、以下に説明するようにフィールドの配置や、フィールド長などがオペレーティングシステム毎に異なっている。
【０１４７】
コマンド４０２は、データ長を表す“Len”のフィールドの後に、“ヘッダ（Header）”のフィールドが配置され、“Header”の後に、指示内容などのデータが格納される“ペイロード（Payload）”のフィールドが配置されている。このコマンド４０２における“Len”のフィールドに格納されるデータは、“Len”、“Header”、および “Payload”のそれぞれのフィールド長の合計の値である。換言すれば、コマンド１２１全体の長さが、“Len”のフィールドに格納される。
【０１４８】
コマンド４０３は、“Header”のフィールドの後に、“Len”のフィールドが配置され、“Len”の後に“Payload”のフィールドが配置されている。このコマンド４０３における“Len”のフィールドに格納されるデータは、“Payload”のフィールドのみのフィールド長の値である。換言すれば、コマンド１２１のうちの“Payload”のフィールドのフィールド長が、“Len”のフィールドに格納される。
【０１４９】
このようなフォーマットの違いを利用して、受信されたコマンドが、第１オペレーティングシステム４３に対するコマンドであるか、または第２オペレーティングシステム４４に対するコマンドであるかを判定することができる。具体的には、特定のフィールド長と長さ（LEN）フィールドに格納されている値が一致するか否かを判定することにより、どのオペレーティングシステムに対するコマンドであるかを導出することができる。このことを利用して、受信されたコマンド１２１がどのオペレーティングシステムに対するコマンドであるかを判定する中間層４２について以下に説明する。
【０１５０】
図１５は、第４の実施の形態における中間層４２の機能を示すブロック図である。図３に示した第１の実施の形態における中間層４２と、図１５に示した第４の実施の形態における中間層４２とを比較するに、図１５に示した中間層４２は、図３に示した中間層４２に、フォーマット判定部４２１が追加された構成とされている。その他の構成は同じであり、同一の符号を付してあり、その説明は適宜省略する。
【０１５１】
フォーマット判定部４２１は、受信されたコマンドのフォーマットにより、第１オペレーティングシステム４３に対するコマンドであるか、または第２オペレーティングシステム４４に対するコマンドであるかを判定する。上述したようなフォーマット毎の違い（“Len”フィールドが配置されている位置や値など）の情報は、フォーマット判定部４２１に保持されている。
【０１５２】
フォーマット判定部４２１は、保持している情報に基づき供給されたコマンドの転送先を判定する。フォーマット判定部４２１は、その判定結果に基づき、メモリ制御部１０３とコマンド転送部１０４に指示を出すか、コマンド判定部１０１に指示を出すかを決定する。コマンド判定部１０１は、第１乃至第３の実施の形態と同じく、管理テーブル保持部１０２で保持されている管理テーブルを参照し、第１オペレーティングシステム４３に対するコマンドであるか、または第２オペレーティングシステム４４に対するコマンドであるかを判定する。
【０１５３】
このような判定について、図１６のフローチャートを参照して説明する。図１６を参照しての説明は、図５を参照して既に説明したことと重複する部分があるので、その重複する部分に関しては、適宜説明を省略する。
【０１５４】
フォーマット判定部４２１は、通信部４１からコマンド１２１を受信すると、そのコマンドのフォーマットを参照する。受信されたコマンドの１２１の特定のフィールド長と、“LEN”フィールドに格納されている値が一致するか否かを判定する。例えば、特定のフィールド長として、“Payload”のフィールド長を用いるとする。受信されたコマンド１２１が、コマンド４０２（図１４）である場合、“Len”フィールドに格納されている値と、“Payload”のフィールド長の値は異なるため、第１オペレーティングシステム４３のコマンドであると推測できる。
【０１５５】
また、受信されたコマンド１２１が、コマンド４０３（図１４）である場合、“Len”フィールドに格納されている値と、“Payload”のフィールド長の値が一致するため、第２オペレーティングシステム４４のコマンドであると推測できる。
【０１５６】
ここで、“コマンドであると推測できる”と記載したのは、以下のような理由からである。すなわち、例えば、受信されたコマンド１２１の“Len”のフォールドを参照し、その値が“0x80”（１６進法での表記）であった場合、ちょうど全体長が１２８バイトであれば、第１オペレーティングシステム４３に合致すると推測される。また、“Len”のフォールドの値が“0x80”で、“Payload”フィールドのフィールド長が１２８バイトになる可能性もあり、そのときには、第２オペレーティングシステム４４にも合致すると推測される。
【０１５７】
このように、フォーマットだけでは、受信されたコマンド１２１が、２以上のオペレーティングシステムに対応していると判定される可能性があり、フォーマットでの判定だけでは、オペレーティングシステムを決定することができない可能性がある。そこで、本実施の形態においては、後段の処理で、管理テーブルを参照した処理も実行するように構成し、確実にオペレーティングシステムを決定できるようにする。
【０１５８】
しかしながら、上記した例以外の場合、受信されたコマンド１２１が、フォーマットだけで、１つのオペレーティングシステムに特定でき、そのような場合には、特定されたオペレーティングシステムに対するコマンドであると判定し、その後の処理が実行されるようにしても良い。そこで、図１６に示したようなフローチャートに基づき処理が行われるとする。
【０１５９】
すなわち、ステップＳ４０３において、フォーマットにより受信されたコマンド１２１のオペレーティングシステムが判定される。ステップＳ４０４において、その判定結果が用いられて、転送先のオペレーティングシステムを決定できたか否かが判定される。ここで、転送先のオペレーティングシステムが決定できたと判定されるときの条件を示す。
【０１６０】
まず、上記したように、２つ以上のオペレーティングシステムが該当すると判定されていなとき、すなわち、１つのオペレーティングシステムしか該当していないと判定されるときである。さらに、その該当している判定されたオペレーティングシステムが、第２オペレーティングシステム４４である場合とする。ここで、第２オペレーティングシステム４４に該当すると判定されたときという条件を設けたのは以下の理由からである。
【０１６１】
第２オペレーティングシステム４４は、アプリケーションを追加できる（コマンドを追加できる）オペレーティングシステムである。よって、例えば、管理テーブル１４２−１や管理テーブル１４２−２（図１２）に記載されていないコマンドが、第２オペレーティングシステム４４宛として受信されることもある。
【０１６２】
後段の処理で管理テーブル１４２を参照したときに、その管理テーブル１４２に記載されていれば、第２オペレーティングシステム４４に対するコマンドであることが確定でき、第２オペレーティングシステム４４に受信されたコマンドが渡される。また後段の処理で管理テーブル１４２を参照したときに、その管理テーブル１４２に記載されていなくても、第２オペレーティングシステム４４に対するコマンドである可能性が高いため、第２オペレーティングシステム４４に受信されたコマンドが渡される。
【０１６３】
結果として、フォーマットでコマンド１２１の転送先のオペレーティングシステムを第２オペレーティングシステム４４であると判定した後、管理テーブル１４２を参照して、さらに判定を行っても、その判定結果に係わらず、第２オペレーティングシステム４４に転送される。よって、フォーマットで判定された結果が、第２オペレーティングシステム４４であるとの結果であるときには、管理テーブル１４２を参照することなく、第２オペレーティングシステム４４にコマンドが転送されるようにしても良い。ここでは、そのように処理されるとして説明を続ける。
【０１６４】
ただし、確実性を向上させるために、第２オペレーティングシステム４４と判定された場合であっても、管理テーブルが参照されるようにしても良い。この場合、フォーマットで第２オペレーティングシステム４４と判定されることで、後段の処理で管理テーブルを参照するとき、第２オペレーティングシステム４４の管理テーブル１４２のみを参照すればよくなる。このことは、第１オペレーティングシステム４３でも同様であり、フォーマットで第１オペレーティングシステム４３と判定された場合には、後段の処理で管理テーブルを参照するとき、第１オペレーティングシステム４３の管理テーブル１４１のみを参照すればよい。
【０１６５】
すなわち、参照する管理テーブルを、フォーマットでの判定に基づき絞り込みを行うことが可能となる。絞り込みを行うことで、参照するテーブル数を減らすことができ、処理を高速化することが可能となる。また、フォーマットで管理テーブルを絞り込み、絞り込んだ管理テーブルを参照してオペレーティングシステムを確定するという一連の流れで、オペレーティングシステムに係わらず処理できるようになるため、例えばこのような判定に係わるプログラムなどを簡略化することが可能となる。
【０１６６】
また、セキュリティを高めるために、フォーマットによる判定と管理テーブルを参照した判定が必ず行われるようにしても良い。例えば、悪意をもって、第２オペレーティングシステム４４に対して出されたコマンド１２１が、第２オペレーティングシステム４４に渡されてしまうことを防ぐためである。管理テーブルを参照することで、悪意のあるコマンドが、第２オペレーティングシステム４４に渡されることがないように処理されるようにすることも可能である。
【０１６７】
ここでは、ステップＳ４０４において、１つのオペレーティングシステムしか該当していないと判定され、その判定されたオペレーティングシステムが、第２オペレーティングシステム４４である場合には、管理テーブルを参照せずに、第２オペレーティングシステム４４にコマンド１２１が転送されるとして説明を続ける。
【０１６８】
ステップＳ４０４において、上記条件を満たすため、受信されたコマンドを転送するオペレーティングシステムを決定できたと判定された場合、ステップＳ４０８に処理が進められる。ステップＳ４０８において、フォーマット判定部４２１は、メモリ制御部１０３に対して起動（切り換え）させるオペレーティングシステムの情報を渡す。このような処理が行われる一方で、ステップＳ４０９において、フォーマット判定部４２１は、コマンド転送部１０４に、オペレーティングシステムの指定情報と、受信されたコマンドを渡す。
【０１６９】
一方、ステップＳ４０４において、上記条件を満たさず、受信されたコマンドを転送するオペレーティングシステムを決定できなかったと判定された場合、ステップＳ４０５に処理が進められる。ステップＳ４０５において、受信されたコマンド１２１と、フォーマットにより判定結果が、フォーマット判定部４２１からコマンド判定部１０１に供給される。そして、コマンド判定部１０１は、管理テーブル保持部１０２に保持されている管理テーブルを呼び出す。
【０１７０】
コマンド判定部１０１は、フォーマットによる判定結果を用いて、呼び出す管理テーブルを絞り込み、その絞り込まれた管理テーブルのみを呼び出す。すなわち、例えば、フォーマットによる判定結果が、第１オペレーティングシステム４３であった場合、第１オペレーティングシステム４３の管理テーブル４１が呼び出される。このように、フォーマットを判定することで、呼び出す管理テーブルを絞り込むことができるので、処理の高速化を実現することが可能となる。
【０１７１】
また、ステップＳ４０４において、フォーマットによる判定で、第１オペレーティングシステム４３と第２オペレーティングシステム４４の可能性あると判定されたために、オペレーティングシステムが決定できなかったと判定された場合も、ステップＳ４０５に処理が進められる。この場合、第１オペレーティングシステム４３の管理テーブル１４１と、第２オペレーティングシステム４４の管理テーブル１４２が呼び出される。
【０１７２】
ステップＳ４０６において、コマンド判定部１０１は、呼び出した管理テーブルに、供給されたコマンド１２１が登録済みであるか否かが判定される。このステップＳ４０６以下の処理は、図５のフローチャートのステップＳ１０４以下の処理と、基本的に同様なので、その説明は省略する。
【０１７３】
このように、第４の実施の形態においては、第１オペレーティングシステム４３と第２オペレーティングシステム４４のそれぞれのコマンドのフォーマットの違いにより、受信されたコマンド１２１が、第１オペレーティングシステム４３に対するコマンド１２１であるか、第２オペレーティングシステム４４に対するコマンド１２１であるのかを判定し、そのフォーマットにより判定できなかった結果に対して、さらに、受信されたコマンド１２１が、第１オペレーティングシステム４３に対するコマンド１２１であるか、第２オペレーティングシステム４４に対するコマンド１２１であるのかが判定される。なお、フォーマットにより判定できなかった結果とは、フォーマットによる判定で、１つのオペレーティングシステムに絞り込めなかった場合、１つのオペレーティングシステムに絞り込めたが、そのオペレーティングシステムが、アプリケーションを追加できるオペレーティングシステムでなかった場合、または、フォーマット判定だけでは、オペレーティングシステムを判定せずに、必ずテーブルを参照すると設定されている場合における結果である。
【０１７４】
上述した第４の実施の形態において、フォーマットの情報は、フォーマット判定部４２１が保持しているとして説明した。フォーマットの情報も、管理テーブルを構成する情報として、管理テーブルに含まれるようにしても良い。管理テーブルに、フォーマットの情報が含まれる場合、図１６のフローチャートの処理において、ステップＳ４０５で実行される管理テーブルを呼び出すという処理は、ステップＳ４０３の前の時点で実行されるようにする。そして、呼び出された管理テーブルに含まれるフォーマットの情報が用いられて、ステップＳ４０３におけるフォーマットでの判定処理が実行される。このように構成することも可能である。
【０１７５】
第４の実施の形態は、単独で実施することもできるが、第１乃至第３の実施の形態と組み合わせて実施することもできる。また、第４の実施の形態においても、第１乃至第３の実施の形態と同じ効果を得ることが可能である。
【０１７６】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１７７】
１０  情報処理装置，  １１  ＣＰＵ，  １２  ＲＯＭ，  １３  ＲＡＭ，  １４  不揮発性メモリ，  １５  バス，  １６  入出力インタフェース，  １７  ＭＭＵ，  １８  通信回路，  ３０  チップ，  ３１  外部装置，  ４１  通信部，  ４２  中間層，  ４３  第１オペレーティングシステム，  ４４  第２オペレーティングシステム，  １０１  コマンド判定部，  １０２  管理テーブル保持部，  １０３  メモリ制御部，  １０４  コマンド転送部，  １４１,１４２  管理テーブル，  ２０１  一時記憶領域，  ３０１  管理テーブル更新部，  ３２１  コマンド解釈部，  ３２２  アプリケーション追加・削除部，  ３２３  アプリケーション格納部，  ３２４  管理テーブル更新要求部，  ３４１  アプリケーション選択部，  ３４２  アプリケーション実行部，  ４２１  フォーマット判定部
【図１】
2010198306.tif 000003
【図２】
2010198306.tif 000004
【図３】
2010198306.tif 000005
【図４】
2010198306.tif 000006
【図５】
2010198306.tif 000007
【図６】
2010198306.tif 000008
【図７】
2010198306.tif 000009
【図８】
2010198306.tif 000010
【図９】
2010198306.tif 000011
【図１０】
2010198306.tif 000012
【図１１】
2010198306.tif 000013
【図１２】
2010198306.tif 000014
【図１３】
2010198306.tif 000015
【図１４】
2010198306.tif 000016
【図１５】
2010198306.tif 000017
【図１６】
2010198306.tif 000018