複数の仮想マシンを搭載し、前記複数の仮想マシンを管理する仮想マシン管理部を備える情報処理装置であって、前記仮想マシン管理部は、プログラムを実行するための仮想マシンを生成するアプリVMVirtualMachine生成部を備え、前記複数の仮想マシンの一つである第1の仮想マシンは、当該第1の仮想マシンで動作可能な第1のプログラムを、当該第1の仮想マシンで動作させるか、当該第1の仮想マシン以外の他の仮想マシンで動作させるかを判定し、前記アプリVM生成部は、前記第1の仮想マシンにより、前記第1のプログラムを他の仮想マシンで動作させると判定された場合に、前記第1のプログラムを実行するための第2の仮想マシンを生成する情報処理装置。前記第1の仮想マシンは、前記第1のプログラムが他の機器から取得されたプログラムである場合、前記第1のプログラムを他の仮想マシンで動作させると判定する請求項1に記載の情報処理装置。前記第1の仮想マシンは、前記第1のプログラムが他の機器から取得されたデバイスドライバソフトウェアを含む場合、前記第1のプログラムを他の仮想マシンで動作させると判定する請求項2に記載の情報処理装置。前記情報処理装置は、さらに、VM用OSOperatingSystemプログラムを記憶する記憶部を備え、前記第1の仮想マシンは、さらに、前記第1のプログラムと異なる、当該第1の仮想マシンで動作可能な第2のプログラムを、当該第1の仮想マシンで動作させるか、前記他の仮想マシンで動作させるかを判定し、前記アプリVM生成部は、前記第1の仮想マシンにより、前記第2のプログラムを前記他の仮想マシンで動作させると判定された場合に、前記第2のプログラムを実行するための第3の仮想マシンを生成し、前記アプリVM生成部は、前記第2の仮想マシン用のオペレーティングシステムと、前記第3の仮想マシン用のオペレーティングシステムとの両方を、前記VM用OSプログラムを用いて生成する請求項1~3のいずれか1項に記載の情報処理装置。前記第2の仮想マシンは、当該第2の仮想マシンのオペレーティングシステムで実行できない処理であるOS処理の実行を他の仮想マシンに依頼するOS処理依頼を前記仮想マシン管理部へ送るOS処理依頼部を備え、前記仮想マシン管理部は、さらに、前記第2の仮想マシンから前記OS処理依頼があった時に、他の仮想マシンへ前記OS処理を依頼するOS処理依頼制御部を備える請求項1~4のいずれか1項に記載の情報処理装置。前記仮想マシン管理部は、さらに、前記複数の仮想マシンの親子関係を管理する親子関係管理部とを備え、前記親子関係管理部は、前記仮想マシンの生成を依頼した前記第1の仮想マシンを親とし、当該依頼に応じて生成した前記第2の仮想マシンを子として親子関係を管理し、前記OS処理依頼制御部は、前記第2の仮想マシンから前記OS処理依頼があった時に、前記第2の仮想マシンの親として管理されている前記第1の仮想マシンへ前記OS処理を依頼する請求項5に記載の情報処理装置。前記仮想マシン管理部は、さらに、前記OS処理依頼により実現する機能ごとに、当該機能の前記OS処理依頼を他の仮想マシンに依頼可能か否かを判定するポリシー管理部を備え、前記OS処理依頼制御部は、前記OS処理依頼を依頼可能であると前記ポリシー管理部が判定した場合、前記第1の仮想マシンへ前記OS処理を依頼する請求項6に記載の情報処理装置。前記OS処理依頼部は、前記第1のプログラムが他の機器から取得されたデバイスドライバソフトウェアを含み、かつ、前記OS処理を当該デバイスドライバソフトウェアが処理可能な場合、前記OS処理を前記第2の仮想マシンで処理すると判定し、前記OS処理を当該デバイスドライバソフトウェアが処理できない場合、前記OS処理依頼を前記仮想マシン管理部へ送る請求項5に記載の情報処理装置。情報処理装置で動作する仮想マシンを生成する仮想マシン生成方法であって、当該第1の仮想マシンで動作可能な第1のプログラムを、当該第1の仮想マシンで動作させるか、当該第1の仮想マシン以外の他の仮想マシンで動作させるかを前記第1の仮想マシンが判定するステップと、前記第1のプログラムを他の仮想マシンで動作させると判定された場合に、前記第1のプログラムを実行するための第2の仮想マシンを生成するステップとを含む仮想マシン生成方法。請求項9に記載の仮想マシン生成方法をコンピュータに実行させるプログラム。請求項10に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。ネットワークを利用してプログラムを配信するアプリ配信システムであって、前記アプリ配信システムは、請求項1に記載の情報処理装置と、アプリ配信サーバとを含み、前記アプリ配信サーバは、配信するプログラムを保持するアプリ保持部と、前記情報処理装置へプログラムを送信するアプリ送信処理部とを備え、前記第1の仮想マシンは、前記第1のプログラムが前記アプリ送信処理部により送信されたプログラムである場合、前記第1のプログラムを他の仮想マシンで動作させると判定するアプリ配信システム。複数の仮想マシンを搭載し、前記複数の仮想マシンを管理する仮想マシン管理部を備える半導体集積回路であって、前記仮想マシン管理部は、プログラムを実行するための仮想マシンを生成するアプリVMVirtualMachine生成部を備え、前記複数の仮想マシンの一つである第1の仮想マシンは、当該第1の仮想マシンで動作可能な第1のプログラムを、当該第1の仮想マシンで動作させるか、当該第1の仮想マシン以外の仮想マシンで動作させるかを判定し、前記アプリVM生成部は、前記第1の仮想マシンにより、前記第1のプログラムを他の仮想マシンで動作させると判定された場合に、前記第1のプログラムを実行するための第2の仮想マシンを生成する半導体集積回路。しかしながら、従来の構成では、ダウンロードしたアプリ及びデバドラが全て同じ仮想マシン内で動作する。そのため、従来の構成は、不正アプリ又は不正デバドラをダウンロードした時に、他のダウンロードしたアプリケーションを保護できないという課題を有していた。本発明は、上記従来の課題を解決するもので、不正アプリ又は不正デバドラによる他のアプリが持つ情報へのアクセスを防止可能とした情報処理装置を提供することを目的とする。上記従来の課題を解決するために、本発明の一形態に係る情報処理装置は、複数の仮想マシンを搭載し、前記複数の仮想マシンを管理する仮想マシン管理部を備える情報処理装置であって、前記仮想マシン管理部は、プログラムを実行するための仮想マシンを生成するアプリVMVirtualMachine生成部を備え、前記複数の仮想マシンの一つである第1の仮想マシンは、当該第1の仮想マシンで動作可能な第1のプログラムを、当該第1の仮想マシンで動作させるか、当該第1の仮想マシン以外の他の仮想マシンで動作させるかを判定し、前記アプリVM生成部は、前記第1の仮想マシンにより、前記第1のプログラムを他の仮想マシンで動作させると判定された場合に、前記第1のプログラムを実行するための第2の仮想マシンを生成する。この構成によれば、本発明の一形態に係る情報処理装置は、例えば、悪意を持った攻撃者による攻撃用のアプリ不正アプリ又は不正デバドラの可能性があるアプリに対しては独立した仮想マシンを生成し、当該仮想マシンで当該アプリを個別に実行できる。これにより、当該情報処理装置は、当該アプリから他のアプリが持つ情報へのアクセスを防止することができる。また、前記第1の仮想マシンは、前記第1のプログラムが他の機器から取得されたプログラムである場合、前記第1のプログラムを他の仮想マシンで動作させると判定してもよい。この構成よれば、本発明の一形態に係る情報処理装置は、不正アプリ又は不正デバドラの可能性がある、他の機器から取得されたアプリから、他のアプリが持つ情報へのアクセスを防止することができる。また、前記第1の仮想マシンは、前記第1のプログラムが他の機器から取得されたデバイスドライバソフトウェアを含む場合、前記第1のプログラムを他の仮想マシンで動作させると判定してもよい。この構成よれば、本発明の一形態に係る情報処理装置は、不正デバドラから、他のアプリが持つ情報へのアクセスを防止することができる。また、前記情報処理装置は、さらに、VM用OSOperatingSystemプログラムを記憶する記憶部を備え、前記第1の仮想マシンは、さらに、前記第1のプログラムと異なる、当該第1の仮想マシンで動作可能な第2のプログラムを、当該第1の仮想マシンで動作させるか、前記他の仮想マシンで動作させるかを判定し、前記アプリVM生成部は、前記第1の仮想マシンにより、前記第2のプログラムを前記他の仮想マシンで動作させると判定された場合に、前記第2のプログラムを実行するための第3の仮想マシンを生成し、前記アプリVM生成部は、前記第2の仮想マシン用のオペレーティングシステムと、前記第3の仮想マシン用のオペレーティングシステムとの両方を、前記VM用OSプログラムを用いて生成してもよい。この構成よれば、本発明の一形態に係る情報処理装置は、複数の仮想マシンに対して、共通のOSを用いることができる。これにより、各仮想マシンに対して異なるOSを用いる場合に比べて、記憶部の容量を削減できる。また、前記第2の仮想マシンは、当該第2の仮想マシンのオペレーティングシステムで実行できない処理であるOS処理の実行を他の仮想マシンに依頼するOS処理依頼を前記仮想マシン管理部へ送るOS処理依頼部を備え、前記仮想マシン管理部は、さらに、前記第2の仮想マシンから前記OS処理依頼があった時に、他の仮想マシンへ前記OS処理を依頼するOS処理依頼制御部を備えてもよい。この構成よれば、本発明の一形態に係る情報処理装置では、仮想マシンは、自身が実行できない処理を他の仮想マシンに依頼できる。これにより、各仮想マシンのOSの機能を削減できるので、各仮想マシンに必要な資源メモリ等を削減できる。また、前記仮想マシン管理部は、さらに、前記複数の仮想マシンの親子関係を管理する親子関係管理部とを備え、前記親子関係管理部は、前記仮想マシンの生成を依頼した前記第1の仮想マシンを親とし、当該依頼に応じて生成した前記第2の仮想マシンを子として親子関係を管理し、前記OS処理依頼制御部は、前記第2の仮想マシンから前記OS処理依頼があった時に、前記第2の仮想マシンの親として管理されている前記第1の仮想マシンへ前記OS処理を依頼してもよい。この構成によれば、本発明の一形態に係る情報処理装置は、OS処理を依頼してきた仮想マシンに対して親の関係にある仮想マシンに対してOS処理を依頼できる。また、前記仮想マシン管理部は、さらに、前記OS処理依頼により実現する機能ごとに、当該機能の前記OS処理依頼を他の仮想マシンに依頼可能か否かを判定するポリシー管理部を備え、前記OS処理依頼制御部は、前記OS処理依頼を依頼可能であると前記ポリシー管理部が判定した場合、前記第1の仮想マシンへ前記OS処理を依頼してもよい。この構成によれば、本発明の一形態に係る情報処理装置は、不正アプリ又は不正デバドラによる、特定の機能を実現するアプリが持つ情報へのアクセスを防止できる。また、前記OS処理依頼部は、前記第1のプログラムが他の機器から取得されたデバイスドライバソフトウェアを含み、かつ、前記OS処理を当該デバイスドライバソフトウェアが処理可能な場合、前記OS処理を前記第2の仮想マシンで処理すると判定し、前記OS処理を当該デバイスドライバソフトウェアが処理できない場合、前記OS処理依頼を前記仮想マシン管理部へ送ってもよい。この構成によれば、本発明の一形態に係る情報処理装置は、各仮想マシンのOSの機能を削減できるので、各仮想マシンに必要な資源メモリ等を削減できる。なお、本発明は、このような情報処理装置として実現できるだけでなく、情報処理装置に含まれる特徴的な手段をステップとする仮想マシン生成方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD-ROM等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。さらに、本発明は、このような情報処理装置の機能の一部又は全てを実現する半導体集積回路LSIとして実現したり、このような情報処理装置含むアプリ配信システムとして実現したりできる。以上より、本発明は、不正アプリ及び不正デバドラによる他のアプリが持つ情報へのアクセスを防止可能とした情報処理装置を提供することができる。以下、本発明の実施の形態について、図面を参照しながら説明する。実施の形態1本発明の実施の形態1に係る情報処理装置は、DLアプリ及びDLデバドラの実行時には、当該DLアプリ又はDLデバドラ専用の仮想マシンを生成する。これにより、プログラムが不正アプリ又は不正デバドラであったとしても、専用の仮想マシンで動作するため、当該プログラムは、他のプログラムが持つ情報へアクセスできない。このように、本発明の実施の形態1に係る情報処理装置は、不正アプリ又は不正デバドラによる他のアプリが持つ情報へのアクセスを防止できる。<アプリ配信システム100の構成>図1は、本発明の実施の形態1に係るアプリ配信システム100の構成図である。図1に示すアプリ配信システム100は、機器110と、アプリ配信サーバ120と、開発装置130と、機器111とを含む。機器110は、例えば、ネットワーク通信機能を搭載した携帯電話である。この機器110は、アプリ配信サーバ120とネットワークを介して接続され、アプリ配信サーバ120からアプリをダウンロードする。また、アプリをダウンロードした機器110は、アプリをインストールすることで、当該機器110に新しい機能を追加する。アプリ配信サーバ120は、機器110及び開発装置130とネットワークを介して接続される。このアプリ配信サーバ120は、開発装置130がアップロードしたアプリの管理、及び、機器110へのアプリのダウンロード処理を行う。開発装置130は、アプリ配信サーバ120とネットワークを介して接続され、機器110で動作するアプリの開発を行う装置である。また、開発装置130は、機器111とUniversalSerialBus以下、USBという規格等のインターフェースで接続される。開発者は、開発装置130上でアプリを開発し、機器111上で想定通りの動作を行うかのテストを実施する。テストによって開発したアプリに不具合が見つかった場合は、開発者は、開発装置130を用いてデバッグし、見つかった不具合を解消する。その後、開発したアプリをアプリ配信サーバ120へアップロードすることで、機器110でアプリが使用可能になる。なお、機器110と機器111とは、同じ機能を持つ機器であり、一般ユーザによって使用されている機器110か、開発者によって使用されている機器111かが、異なるだけである。また、機器110及び111は、本発明の情報処理装置に相当する。<機器110及び111のソフトウェア構成>図2は、本発明の実施の形態1に係る機器110及び111のソフトウェア構成図である。図2に示す機器110及び111は、通常のソフトウェア実行環境以下、通常環境という1000と、安全なソフトウェア実行環境以下、保護環境という1100とを含む。機器110及び111は、通常環境1000と保護環境1100とを切り替えて、ソフトウェア通常環境1000又は保護環境1100を実行する。保護環境1100のソフトウェアは、セキュアOS1101と、セキュアブート部1102とを含む。ここで、セキュアOSは、セキュアオペレーティングシステムである。セキュアOS1101は、保護環境1100のソフトウェアを管理する。セキュアブート部1102は、機器110及び111の電源投入時にセキュアブートを行う。セキュアブートの処理については、フローチャートを用いて後ほど説明する。なお、通常環境1000と保護環境1100とを切り替える方法に関しては、例えば、特許文献2に記されている方式が使用できる。<通常環境1000のソフトウェア構成>図3は、本発明の実施の形態1に係る通常環境1000のソフトウェア構成図である。図3に示す通常環境1000のソフトウェアは、仮想化ソフトウェア1001と、仮想マシン1002、1003、1004及び1005とを含む。また、仮想マシン1002は、仮想ハードウェア1010と、汎用OS1011と、ダウンロード制御アプリ1012と、アプリA1013と、アプリB1014とを含む。また、仮想マシン1003は、仮想ハードウェア1020と、アプリVMOSX1021と、DLアプリX1022とを含む。また、仮想マシン1004は、仮想ハードウェア1030と、アプリVMOSY1031と、DLアプリY1032とを含む。また、仮想マシン1005は、仮想ハードウェア1040と、RTOS1041と、通話ソフトウェア1042とを含む。ここで、汎用OSは汎用オペレーティングシステムであり、アプリVMOSはアプリVMオペレーティングシステムであり、DLアプリはダウンロードアプリであり、RTOSはリアルタイムオペレーティングシステムである。また、VMは、仮想マシンVirtualMachineである。仮想化ソフトウェア1001は、その上で動作する仮想マシン1002~1005を制御する仮想マシン制御機能と、その仮想マシン1002~1005に対してメモリ及びCPUなどのハードウェアリソースを割り当てるとともに管理するリソース管理機能と、仮想マシン1002~1005からの要求に従ってデバイスへアクセスするデバイスアクセス機能と、仮想マシン1002~1005をスケジューリングするスケジューリング機能とを有する。この仮想化ソフトウェア1001は、本発明の仮想マシン管理部に相当する。仮想マシン1002、1003、1004及び1005は、仮想ハードウェアと、OSと、アプリとを含み、仮想化ソフトウェア1001によりそれぞれ独立に実行される。また、仮想マシン1002、1003、1004及び1005は、それぞれ独立しており、これらの仮想マシン間で、直接、データの受け渡し、又は指示のやり取りが行われることはない。言い換えると、これらの仮想マシン間での、データの受け渡し、又は指示のやり取りは、常に仮想化ソフトウェア1001を介して行われる。仮想ハードウェア1010、1020、1030及び1040は、それぞれの仮想マシンに仮想的にハードウェアの機能を提供する。また、仮想ハードウェア1010、1020、1030及び1040は、IPLInitialProgramLoader及びBIOSBasicInput/OutputSystemも含む。なお、仮想ハードウェア1010、1020、1030及び1040は、仮想化ソフトウェア1001の構成によっては、仮想化ソフトウェア1001、又は、各仮想マシンのOSに統合される場合もある。汎用OS1011は、アプリアプリA1013及びアプリB1014をメモリ上にロードして実行する、あるいは、アプリアプリA1013やアプリB1014をメモリ上から削除アンロードする。さらに、汎用OS1011は、仮想化ソフトウェア1001にDLアプリDLアプリX1022及びDLアプリY1032の実行を依頼する。また、汎用OS1011は、ダウンロード制御アプリ1012、アプリA1013及びアプリB1014に対して、ネットワーク通信機能を提供する。ダウンロード制御アプリ1012は、機器110にインターネットを介して接続されているアプリ配信サーバ120と通信し、機器110へのアプリのダウンロード処理、及び機器110へのインストール処理を行う。アプリA1013及びアプリB1014は、アドレス管理機能、Webブラウズ機能、及び電子メール機能などの機能を有し、ユーザに対してこれらの機能を提供する。本発明の実施の形態1では、DLアプリは、汎用OS1011上で動作するダウンロード制御アプリ1012によりアプリ配信サーバ120からダウンロードされ、機器110内に保存される。その後、汎用OS1011から仮想化ソフトウェア1001へDLアプリの実行依頼があった時に、仮想化ソフトウェア1001は、それぞれのDLアプリが個別の仮想マシン上で動作するように設定する。これにより、仮想マシン上でDLアプリが実行される。なお、本発明の実施の形態1では、DLアプリX1022とDLアプリY1032とがアプリ配信サーバ120からダウンロードされ、実行される場合を説明するが、本発明はこれに限定されるものではない。また、仮想マシンの数も4つに限定されるわけではない。つまり、汎用OS1011から仮想化ソフトウェア1001へDLアプリの実行依頼があれば、4つ以上の仮想マシンが生成されてもよいし、RTOS1041から仮想化ソフトウェア1001へDLアプリの実行依頼があった時に仮想マシンが生成されてもよい。アプリVMOSX1021及びアプリVMOSY1031は、DLアプリを動作させる仮想マシンで動作しているOSである。アプリVMOSX1021は、DLアプリX1022が動作するために必要な機能を有する。また、アプリVMOSY1031は、DLアプリY1032が動作するために必要な機能を有する。なお、アプリVMOSX1021及びアプリVMOSY1031の詳細は後述する。DLアプリX1022及びDLアプリY1032は、アプリ配信サーバ120からダウンロードされたアプリである。このDLアプリX1022及びDLアプリY1032は、アプリA1013やアプリB1014と同様に、ユーザに対して様々な機能を提供する。RTOS1041は、機器の基本機能を提供するソフトウェアを動作させるためのOSである。通話ソフトウェア1042は、機器110及び111の基本機能である通話機能をユーザに提供する。なお、それぞれのDLアプリが個別の仮想マシン上で動作するように仮想化ソフトウェア1001により設定されるとしたが、本発明は、これに限定されるものではない。例えば、アプリ配信サーバ120からダウンロードされていないアプリアプリA1013及びアプリB1014が個別の仮想マシン上で動作するように設定されてもよいし、一部のDLアプリは汎用OS1011上で動作してもよい。なお、アプリVMOSX1021とアプリVMOSY1031とは、それぞれ異なる機能を有してもよいし、同じ機能を有してもよい。また、アプリVMOSX1021及びアプリVMOSY1031は、汎用OS1011と同じ機能を有してもよい。<機器110及び111のハードウェア構成>図4は、本発明の実施の形態1に係る機器110及び111のハードウェア構成図である。図2及び図3の各構成要素は、図4に示す内部保護メモリ1204とメモリ1220とに格納された各構成要素に対応する。これらの各構成要素を実現するためのソフトウェアが、CPU1201上で実行されることにより、各機能が実現される。図4に示す機器110及び111は、システムLSI1200と、不揮発性記憶装置1240と、メモリ1220とを含む。システムLSI1200は、不揮発性記憶装置1240及びメモリ1220と外部バスを介して接続されている。システムLSI1200は、CPU1201と、IPL1202と、実行環境切替部1203と、内部保護メモリ1204とを含む。なお、システムLSI1200の詳細は後述する。メモリ1220は、仮想化ソフトウェア1001と、汎用OS1011と、ダウンロード制御アプリ1012と、アプリA1013と、アプリB1014と、アプリVMOSX1021と、DLアプリX1022と、アプリVMOSY1031と、DLアプリY1032と、RTOS1041と、通話ソフトウェア1042とを格納する。これらは、図3の各構成要素をメモリ1220にロードした様子を示している。不揮発性記憶装置1240は、アプリ実行専用VM1241と、DLアプリX1242と、DLアプリY1243とを格納する。また、図示しないが、不揮発性記憶装置1240は、メモリ1220及び内部保護メモリ1204に格納するソフトウェアを格納する。さらに、不揮発性記憶装置1240は、アプリA1013、アプリB1014、DLアプリX1242及びDLアプリY1243以外のアプリを格納していてもよい。内部保護メモリ1204に格納するソフトウェアは、予め定められた鍵で暗号化された状態で不揮発性記憶装置1240に格納される。これらのソフトウェアは、機器110及び111の工場製造時に不揮発性記憶装置1240に格納される。また、これらのソフトウェアは、システム起動時又はアプリの起動要求時に、不揮発性記憶装置1240から、メモリ1220及び内部保護メモリ1204へ展開される。なお、内部保護メモリ1204に格納するソフトウェアを暗号化する鍵は、全ての機器で同一の鍵を用いてもよいし、システムLSI1200ごとに個別の鍵を用いてもよいし、ソフトウェアごとに個別の鍵を用いてもよい。また、暗号化されたソフトウェアを復号する鍵は、システムLSI1200内部に鍵格納部図示しないを備え、その中に格納されてもよいし、システムLSI1200内部に格納された鍵を用いて暗号化された状態で不揮発性記憶装置1240に格納されてもよい。機器110及び111は、さらに、図4に図示されていない入出力部などを備えているが、これらは本発明の本質ではないので説明を省略する。また、システムLSI1200は、さらに、図4に図示されていない周辺回路などを備えているが、これらは本発明の本質ではないので説明を省略する。<システムLSI1200の構成>以下、本発明の実施の形態1に係るシステムLSI1200の各構成要素の詳細について説明する。CPU1201は、メモリ1220と内部保護メモリ1204とに格納されたソフトウェア等に含まれる命令コードを実行することにより、機器110及び111全体の動作を制御する。また、CPU1201は、動作モードとして特権モードと非特権モードとの2つのモードを有する。汎用OS1011は特権モードで動作し、ダウンロード制御アプリ1012、アプリA1013及びアプリB1014は非特権モードで動作する。IPL1202は、機器110及び111の電源が投入された時に一番はじめに起動するソフトウェアである。このIPL1202は、機器110及び111の電源が投入された時に、内部保護メモリ1204に展開したセキュアOS1101、及びメモリ1220に展開した仮想化ソフトウェア1001を起動する。このIPL1202は、システムLSI1200内に設けられたマスクROMに格納されている。実行環境切替部1203は、システムLSI1200の通常環境1000と保護環境1100とを切り替える機能を実現する。実行環境切替部1203は、システムLSI1200の実行環境が保護環境の時にのみCPU1201等から内部保護メモリ1204へアクセス可能になるようアクセス制御する。内部保護メモリ1204は、セキュアOS1101と、セキュアブート部1102とを格納する。なお、システムLSI1200は、さらに、不揮発性保護メモリ図示しないを含んでもよい。この不揮発性保護メモリは、システムLSI1200の実行環境が保護環境の時にのみCPU1201等から不揮発性保護メモリへアクセス可能になるように、実行環境切替部1203によりアクセス制御される。なお、不揮発性保護メモリは、内部保護メモリ1204に格納されるソフトウェア、又は暗号化されたソフトウェアを復号する鍵を格納してもよい。<アプリ配信サーバ120の構成>図5は、本発明の実施の形態1に係るアプリ配信サーバ120の構成図である。図5に示すアプリ配信サーバ120は、アプリ保持部2000と、アプリ受信処理部2001と、アプリ送信処理部2002とを含む。アプリ保持部2000は、アプリ配信サーバ120が管理するアプリを格納する。アプリ受信処理部2001は、ネットワークを介して接続された開発装置130と通信し、開発装置130がアップロードするアプリを受信する。また、アプリ受信処理部2001は、受信したアプリをアプリ保持部2000へ送信し、送信したアプリの保持及び管理をアプリ保持部2000に依頼する。アプリ送信処理部2002は、ネットワークを介して接続された機器110と通信する。このアプリ送信処理部2002は、機器110が要求したアプリをアプリ保持部2000から取得し、取得したアプリを機器110へ送信する。また、アプリ送信処理部2002は、アプリ保持部2000が保持しているアプリのリストを作成し、作成したリストを機器110へ送信する。<開発装置130の構成>図6は、本発明の実施の形態1に係る開発装置130の構成図である。図6に示す開発装置130は、パッケージ生成部3000と、設定ファイル生成部3001と、鍵ペア保持部3002と、鍵ペア生成部3003と、デバッグ処理部3004と、アップロード処理部3005とを含む。パッケージ生成部3000は、開発者が作成したソースコードをコンパイルすることでアプリを生成する。そして、パッケージ生成部3000は、生成したアプリに、アプリ署名Signature、設定ファイル、及び公開鍵証明書Certificateを付加したパッケージファイルを生成する。アプリ署名の方式には、例えば、RSA暗号方式を用いた署名方式が利用できる。なお、詳細は後述する。なお、アプリ署名デジタル署名の方式に関しては、RSA暗号方式に限定されるものではなく、他の署名方式を用いてもよい。例えば、他の署名方式は、非特許文献2の171ページから188ページに詳しく説明されている。また、公開鍵証明書に関しては、非特許文献3に詳しく説明されている。設定ファイル生成部3001は、アプリに付加する設定ファイルを生成する。設定ファイルには、当該アプリが機器のどのリソースを使用するかを示す情報、当該アプリの開発者に関する情報、及び当該アプリが他のアプリに対してどのようなサービスを提供するかを示す情報などの各種情報が記されている。設定ファイル生成部3001は、これらの情報を、アプリ開発者が設定する値を元に生成する。鍵ペア保持部3002は、パッケージに付加するアプリ署名を生成及び検証するために使用する鍵公開鍵暗号方式における秘密鍵と公開鍵との鍵対を保持する。例えば、鍵ペア保持部3002は、この公開鍵を、非特許文献3ITU-TRecommendationX.509で説明されている公開鍵証明書のフォーマットで保持する。鍵ペア生成部3003は、公開鍵暗号方式における秘密鍵と公開鍵との鍵対を生成し、生成した鍵対を鍵ペア保持部3002に保持する。なお、公開鍵暗号方式に関しては非特許文献2の107ページから130ページに詳しく説明されている。デバッグ処理部3004は、開発装置130にUSB等で接続された機器111と通信し、開発者が作成したアプリをデバッグするための処理を行う。デバッグするための処理とは、生成したパッケージを用いたアプリのインストール、インストールしたアプリの実行、ブレークポイントの設定、及びログ出力の取得等の処理がある。アップロード処理部3005は、開発装置130にネットワークを介して接続されたアプリ配信サーバ120と通信し、パッケージ生成部3000が生成したパッケージをアプリ配信サーバ120へアップロードする処理を行う。<パッケージ生成部3000の構成>図7は、本発明の実施の形態1に係るパッケージ生成部3000の構成図である。図7に示すパッケージ生成部3000は、コンパイラ3100と、リンカ3101と、パッケージ生成ツール3102とを含む。コンパイラ3100は、入力されたソースコード3110をコンパイルすることでオブジェクトファイルを生成する。リンカ3101は、コンパイラ3100が生成したオブジェクトファイルとライブラリとをリンクすることで機器110及び111が実行可能なファイル実行ファイルを生成する。パッケージ生成ツール3102は、リンカ3101が生成した実行ファイルと、設定ファイル生成部3001が生成する設定ファイル3132と、鍵ペア保持部3002が保持する秘密鍵3130及び公開鍵証明書3131とを用いてダウンロードパッケージ3120を生成する。<ダウンロードパッケージ3120の構成>図8は、本発明の実施の形態1に係るダウンロードパッケージ3120の構成図である。図8において、ダウンロードパッケージ3120は、アプリ3200と、デバドラ3201と、設定ファイル3202と、アプリ署名リスト3203と、公開鍵証明書3204とを含む。アプリ3200及びデバドラ3201は、コンパイラ3100及びリンカ3101が、開発者が作成したソースコード3110から生成した実行ファイルである。設定ファイル3202は、パッケージ生成ツール3102に入力される設定ファイル3132と同じである。アプリ署名リスト3203は、アプリ3200と、デバドラ3201と、設定ファイル3202とのそれぞれの署名が並んだリストである。パッケージ生成ツール3102は、ダウンロードパッケージ3120生成時に、入力されたアプリ3200と、デバドラ3201と、設定ファイル3202とから、それぞれ署名を生成し、アプリ署名リスト3203を生成する。また、アプリ署名リスト3203は、署名の生成には、秘密鍵3130を使用する。公開鍵証明書3204は、パッケージ生成ツール3102に入力される公開鍵証明書3131と同じである。なお、ダウンロードパッケージ3120は、アプリ3200と、デバドラ3201と、設定ファイル3202と、アプリ署名リスト3203と、公開鍵証明書3204とをそれぞれ1つずつを含むとしたが、本発明はこれに限定されるものではない。例えば、各ファイルは、1つであってもよいし、複数あってもよい。また、これらのファイルの一部がダウンロードパッケージ3120に含まれてもよい。また、これらのファイルは、ダウンロードパッケージ3120として1つのファイルでダウンロードされてもよいし、それぞれのファイルが個別にダウンロードされてもよいし、複数のファイルに分割されてダウンロードされてもよい。なお、アプリ署名リスト3203は、アプリ3200と、デバドラ3201と、設定ファイル3202とのそれぞれの署名が並んだリスト全体に対する署名を含んでもよい。また、ダウンロードパッケージ3120は、アプリ署名リスト3203の署名を含んでもよい。<セキュアブート処理>機器110及び111は、仮想化ソフトウェア1001及び保護環境1100で動作するソフトウェアが改竄されていないかを、機器起動時に検証する。以下、機器110及び111が電源投入され仮想化ソフトウェア1001が起動するまでの方法セキュアブート処理を、図9のフローチャートを用いて説明する。機器110及び111は、電源が投入されるとシステムLSI1200内部にあるIPL1202を起動する。IPL1202は、まず機器110及び111のハードウェアの初期化処理を行うS1000。この初期化処理では、メモリ1220の動作チェック、実行環境切替部1203の初期化、及び周辺回路図示しないの初期化などの処理が行われる。その後、セキュアOS1101が起動される。セキュアOS1101は、保護環境1100の初期化安全なソフトウェア実行環境の構築を行うことにより、保護環境1100でアプリが動作可能な状態にする。その後、セキュアOS1101は、セキュアブート部1102をロードS1001し、セキュアブート部1102を起動する。ここで、セキュアブート部1102は、暗号化された状態で不揮発性記憶装置1240に格納されている。よって、実行環境切替部1203は、システムLSI1200に固有の鍵を用いて暗号化されたセキュアブート部1102を復号し、復号したセキュアブート部1102を内部保護メモリ1204へロードする。セキュアブート部1102は、セキュアOS1101と、セキュアブート部1102との検証を行うS1002。検証の方法として、セキュアブート部1102は、ソフトウェアのハッシュ値を生成し、生成したハッシュ値と予め計算しておいた参照ハッシュ値との比較を行うことで、セキュアOS1101及びセキュアブート部1102が改竄されていないかを検証する。また、参照ハッシュ値は、工場出荷前に計算され、セキュアブート部1102に埋め込まれる。また、セキュアブート部1102は、参照ハッシュ値を埋め込んだ状態で暗号化され、不揮発性記憶装置1240に格納される。なお、ここでは、ソフトウェアの検証方法にハッシュ値を利用するとしたが、本発明はこれに限定されるものではなく、ハッシュ値の代わりに署名を用いる方法でもよい。この時、セキュアブート部1102は、署名の検証に用いる公開鍵を埋め込んだ状態で暗号化され、不揮発性記憶装置1240に格納されてもよいし、セキュアブート部1102とは別に不揮発性記憶装置1240に格納されてもよい。また、セキュアブート部1102は、公開鍵を機器外部の別の装置から取得してもよい。セキュアブート部1102は、ステップS1002でセキュアOS1101と、セキュアブート部1102とを検証した結果、セキュアOS1101と、セキュアブート部1102とが改竄されていないと判定した場合には、ステップS1003でOKと判定し、ステップS1004へ遷移する。また、セキュアブート部1102は、ステップS1002でセキュアOS1101と、セキュアブート部1102とを検証した結果、セキュアOS1101と、セキュアブート部1102とのどちらか一方でも改竄されていると判定された場合には、ステップS1003でNGと判定し、ステップS1006へ遷移する。セキュアブート部1102は、ステップS1003でOKと判定した場合には、仮想化ソフトウェア1001の検証を行うS1004。例えば、セキュアブート部1102は、ステップS1002と同様の検証方法を用いる。セキュアブート部1102は、ステップS1004で仮想化ソフトウェア1001を検証した結果、仮想化ソフトウェア1001が改竄されていないと判定した場合には、ステップS1005でOKと判定し、処理を終了し、セキュアOS1101へ処理を戻す。一方、セキュアブート部1102は、ステップS1004で検証した結果、仮想化ソフトウェア1001が改竄されていると判定した場合には、ステップS1005でNGと判定し、ステップS1006へ遷移する。セキュアブート部1102は、ステップS1003又はステップS1005でNGと判定した場合には、セキュアブート失敗フラグを設定するS1006。セキュアブート失敗フラグは、内部保護メモリ1204上の特定の領域に保存されるデータ図示しないである。セキュアOS1101、及びセキュアOS1101上で動作するアプリは、セキュアブート失敗フラグをチェックすることで機器110及び111の状態を把握し、動作するか否かを決定する。セキュアブート部1102は、ステップS1006の処理終了後、セキュアOS1101へ処理を戻す。セキュアOS1101は、セキュアブート部1102から処理が戻ると、IPL1202へ処理を戻す。IPL1202は、不揮発性記憶装置1240に格納されている仮想化ソフトウェア1001をメモリ1220へロードS1007し、仮想化ソフトウェア1001を実行起動する。なお、セキュアブート処理は、TCGTrustedComputingGroupのMPWGMobilePhoneWorkGroupで規定するセキュアブートを用いてもよい。また、ここでは、保護モードソフトの検証S1002と仮想化ソフトウェアの検証S1004とを連続して処理するとしたが、本発明はこれに限定されるものではない。例えば、保護モードソフトの検証S1002を行った後、一度IPL1202まで処理を戻し、引き続き、IPL1202からセキュアOS1101を経由して、セキュアブート部1102に対して仮想化ソフトウェアの検証S1004を依頼してもよい。また、セキュアブート処理は仮想化ソフトウェア1001を実行するまでとしたが、本発明はこれに限定されるものではなく、仮想マシン内のIPL、OS、及びアプリもセキュアブート処理の対象にしてもよい。また、IPL、OS、及びアプリをセキュアブートの対象にする場合は、それぞれが次に起動するソフトウェアを改竄されていないか検証してから次に起動するソフトウェアを起動実行する。<仮想マシンの起動処理>仮想化ソフトウェア1001は、機器起動時に所定の仮想マシンを起動する。更に、実行中の仮想マシンからの要求に応じて、新規に仮想マシンを生成する処理を行う。以下、仮想化ソフトウェア1001起動後に各仮想マシンが起動する処理を、図10のフローチャートを用いて説明する。仮想化ソフトウェア1001は、セキュアブート処理の最後でIPL1202により起動され、初期化処理S1010を実行する。初期化処理後、仮想化ソフトウェア1001は、仮想マシン1002を実行するためにメモリなどのハードウェアリソースを確保したうえで、仮想マシン1002を起動する。仮想マシン1002は、起動されると、まず、初期化処理S1011を行う。初期化処理として、仮想マシン1002は、仮想ハードウェア1010内のIPL1202を実行する。また、仮想マシン1002は、汎用OS1011をメモリにロードし、汎用OS1011を実行する処理を行う。その後、汎用OS1011の起動処理中又は処理後において、仮想マシン1002から仮想化ソフトウェア1001への処理依頼、又はハードウェア割り込みが発生することにより、仮想マシン1002の処理が中断され、仮想化ソフトウェア1001へ処理が戻る。次に、仮想化ソフトウェア1001は、仮想マシン1005を実行するためにメモリなどのハードウェアリソースを確保し、仮想マシン1005を起動する。仮想マシン1005は、起動されると、まず、初期化処理S1012を行う。初期化処理として、仮想マシン1005は、仮想ハードウェア1040内のIPL1202を実行する。また、仮想マシン1005は、RTOS1041をメモリにロードし、RTOS1041を実行する処理を行う。その後、RTOS1041の起動処理中又は処理後において、仮想マシン1005から仮想化ソフトウェア1001への処理依頼、又はハードウェア割り込みが発生することにより、仮想マシン1005の処理が中断され、仮想化ソフトウェア1001へ処理が戻る。その後、仮想化ソフトウェア1001は、スケジューリング機能に従って、仮想マシンをスケジューリングする。スケジューリング機能により、仮想マシン1002が実行された時、機器を使用するユーザからの要求により、仮想マシン1002は、アプリを起動するS1013。アプリ起動時に、仮想マシン1002は、起動が要求されたアプリを、仮想マシン1002で動作させるか、他の仮想マシンで動作させるかを判定する。具体的には、仮想マシン1002は、起動を要求されたアプリがDLアプリかどうかを判定するS1014。なお、DLアプリとは、ネットワークを介して他の機器からダウンロードされたアプリに限らず、他の機器から取得されたアプリであってもよい。例えば、DLアプリとは、機器110に着脱可能な記録媒体を介して、機器110が出荷後に取得したアプリであってもよい。また、仮想マシン1002は、ユーザが起動要求したアプリがDLデバドラかどうかの判定を行ってもよい。仮想マシン1002は、DLアプリである時は、OKと判定し、DLアプリではない時にはNGと判定する。例えば、仮想マシン1002は、DLアプリの判定に、起動を要求されたアプリのファイル名に付随する拡張子を利用する。仮想マシン1002は、ステップS1014でOKと判定した場合には、起動を要求されたアプリを実行するためのVMアプリVMの生成を仮想化ソフトウェア1001に依頼する。仮想化ソフトウェア1001は、DLアプリを実行するための仮想マシン1003を生成しS1015、当該仮想マシン1003を起動する。生成処理の詳細は、フローチャートを用いて後ほど説明する。仮想マシン1003は、起動されると、初期化処理S1017を行い、起動が要求されたアプリを実行するS1018。また、DLアプリ実行中S1018に、仮想マシン1003から仮想化ソフトウェア1001への処理依頼、又はハードウェア割り込みが発生することにより、仮想マシン1003の処理が中断され、仮想化ソフトウェア1001へ処理が戻ることもある。その場合、仮想化ソフトウェア1001のスケジューリング機能により、仮想マシン1003が再スケジュールされた時に、当該仮想マシン1003は中断された処理の続きを実行する。アプリが終了すると、仮想マシン1003は、仮想化ソフトウェア1001へ仮想マシンの終了を通知する。仮想化ソフトウェア1001は、仮想マシン1003からの終了通知を受けて、仮想マシン1002へ、VMの終了を通知する。仮想マシン1002は、VMの終了通知を受けて、ステップS1013で起動を要求されたアプリが終了したことを認識する。一方、仮想マシン1002は、ステップS1014でNGと判定した場合には、起動を要求されたアプリを実行するS1016。上記のように、本発明の実施の形態1に係る機器110及び111は、当該機器110及び111の起動時に所定の仮想マシンを起動する。更に、機器110及び111は、その起動した所定の仮想マシンに対して、ユーザからDLアプリの起動が要求された時には、DLアプリ専用の仮想マシン仮想マシン1003を追加で起動し、その仮想マシン内でDLアプリを実行する処理を行う。なお、仮想マシン1003の処理中断中に、仮想マシン1002が別のDLアプリを実行するためのVMの生成を依頼した時は、仮想化ソフトウェア1001は、仮想マシン1003とは別の仮想マシン仮想マシン1004等を生成し、DLアプリがそれぞれ別の仮想マシンで動作するようにする。<仮想化ソフトウェア1001の構成>図11は、本発明の実施の形態1に係る仮想化ソフトウェア1001のソフトウェア構成図である。図11において、仮想化ソフトウェア1001は、アプリVM生成部1300と、アプリ実行専用VM取得部1301と、VM管理部1302と、OS処理依頼制御部1303と、親子関係管理部1304と、ポリシー管理部1305とを含む。アプリVM生成部1300は、仮想化ソフトウェア1001上で動作する仮想マシンから、仮想マシンアプリVMの生成依頼を受けて、DLアプリを実行するための仮想マシンアプリVMを生成する。ここで、アプリVM生成部1300は、この仮想マシンアプリVMを、アプリ実行専用VMと、仮想マシンから通知されたDLアプリとに応じて生成する。また、アプリVM生成部1300は、VM管理部1302へ、生成した仮想マシンの管理を依頼する。更に、アプリVM生成部1300は、親子関係管理部1304へ、仮想マシンの生成依頼をした仮想マシンを親とし、生成した仮想マシンを子として、登録する。なお、生成処理の詳細は、フローチャートを用いて後ほど説明する。また、ここでは、アプリVM生成部1300は、アプリ実行専用VMと、仮想マシンから通知されたDLアプリとから、DLアプリを実行するための仮想マシンを生成するとしたが、本発明はこれに限定されるものではない。例えば、アプリVM生成部1300は、アプリ配信サーバ120から、アプリとOSと仮想ハードウェアとを含んだ状態の仮想マシンをダウンロードし、当該仮想マシンのロード処理とVM管理部1302への管理依頼とを行ってもよい。また、アプリVM生成部1300は、DLアプリ実行時に仮想マシンを生成するのではなく、当該DLアプリをアプリ配信サーバ120からダウンロードした時に仮想マシンを生成してもよい。アプリ実行専用VM取得部1301は、不揮発性記憶装置1240に記憶されているアプリ実行専用VM1241を読み込む。図12は、アプリ実行専用VM1241の構造を示す図である。アプリ実行専用VM1241は、ヘッダ情報1310と、VM本体1311と、検証値1312とを含む。また、VM本体1311は、OS1315と、仮想ハードウェア1316とを含む。また、ヘッダ情報1310は、実行するアプリを書き込むアドレス論理アドレスと、デバドラを管理している管理構造体のアドレス論理アドレスとを含む。検証値1312は、VM本体1311をハッシュ関数に入力した時に得られるハッシュ値である。また、OS1315は、本発明のVM用OSに相当し、不揮発性記憶装置1240は、本発明の記憶部に相当する。なお、検証値1312は、VM本体1311の後ろにあるのではなく、VM本体1311の前にあってもよいし、ヘッダ情報1310に含まれてもよい。さらに、検証値1312は、アプリ実行専用VM1241に含まれるのではなく、アプリ実行専用VM1241とは別に、アプリ実行専用VM1241と関連づけた状態で、不揮発性保護メモリに格納されてもよい。なお、ハッシュ関数としては、MD4、MD5、SHASecureHashAlgorithm-1、及びSHA-2などのアルゴリズムが利用可能である。また、検証値1312は、ハッシュ値ではなく、デジタル署名、メッセージ認証コードMAC:MessageAuthenticationCode値、誤り検出符号値、又は誤り訂正符号値でもよい。MAC値を計算するアルゴリズムとしては、CBC-MACCipherBlockChainingMessageAuthenticationCode、及びHMACKeyed-HashingforMessageAuthenticationCodeなどが利用可能である。また、誤り検出符号値を計算するアルゴリズムとしては、巡回冗長検査CRC:CyclicRedundancyCheck、及びチェックサムなどが利用可能である。また、誤り訂正符号値を計算するアルゴリズムとしては、リード/ソロモン符号、及びターボ符号などが利用可能である。なお、ハッシュ関数に関しては非特許文献4の96ページから105ページに、デジタル署名方式に関しては非特許文献2の171ページから188ページに、メッセージ認証コードに関しては非特許文献4の30ページから39ページにそれぞれ詳しく説明されている。なお、複数のアプリ実行専用VM1241を不揮発性記憶装置1240に記憶し、アプリ実行専用VM取得部1301は、DLアプリによって使用するアプリ実行専用VM1241を変えてもよい。この時、アプリ実行専用VM1241のヘッダ情報1310は、アプリ実行専用VM1241が持つ機能を含んでもよいし、DLアプリと紐付ける情報を含んでもよい。VM管理部1302は、仮想化ソフトウェア1001上で動作している仮想マシンを管理する。VM管理部1302は、機器起動時に起動する仮想マシンと、DLアプリを実行するためのVMとを一緒に管理する。また、VM管理部1302は、仮想マシンの管理に、図13に示す仮想マシン管理テーブル1350を用いる。この仮想マシン管理テーブル1350は、仮想マシンを識別するためのIDと、仮想マシンの状態と、仮想マシンが使用しているメモリのアドレス範囲と、仮想マシンを中断する時の状態を保存する中断状態保存先とを含む。OS処理依頼制御部1303は、仮想化ソフトウェア1001上で動作している仮想マシンからのOS処理依頼を受けて、依頼してきた仮想マシンと親の関係にある仮想マシンに対してOS処理を依頼する。OS処理依頼制御部1303は、親子関係管理部1304から親の関係にある仮想マシンの情報を取得する。なお、OS依頼処理の詳細は、フローチャートを用いて後ほど説明する。親子関係管理部1304は、アプリVM生成部1300からの通知に基づいて、仮想マシン間の親子関係を管理する。親子関係管理部1304は、親子関係を、親子関係管理テーブル1360を用いて管理する。図14は、親子関係管理テーブル1360の構造を示す図である。親子関係管理テーブル1360は、親の仮想マシンのID親仮想マシンIDと子の仮想マシンID子仮想マシンIDとを含む。また、親仮想マシンIDと子仮想マシンIDとは、仮想マシン管理テーブル1350のIDに対応する。ポリシー管理部1305は、OS処理依頼により実現する機能ごとに、当該機能のOS処理依頼を他の仮想マシンに依頼可能か否かを判定する。具体的には、ポリシー管理部1305は、仮想マシンからOS処理依頼があった時に、そのOS処理を実施するかどうかを、ポリシーテーブル1370に基づいて決定する。ポリシーテーブル1370は、図15Aに示すように、機能と、仮想マシンIDとを含む。機能の列には、機器が持つ機能が全て列挙され、仮想マシンIDの列にその機能を持つ仮想マシンのIDが格納される。この時、DLアプリによる使用を禁止する機能に関しては、仮想マシンIDとしては、使用禁止を示す特殊なID図15Aでは0を格納する。なお、ポリシーテーブルは図15Bに示す構成でもよい。図15Bに示すポリシーテーブル1371は、機能と、各仮想マシンがその機能にアクセス許可されているかどうかを示すシンボルとを含む。図15Bに示す○はアクセス許可、×はアクセス不許可を示す。また、ここでは、ポリシーを仮想マシンごとに決めるとしたが、本発明はこれに限定されるものではなく、ポリシーをDLアプリごとに決めてもよい。この場合、仮想マシン管理テーブル1350に、DLアプリと仮想マシンとを紐付けするための情報が追加される。また、図15A及び図15Bでは、機能として、TV視聴、通話及び商用コンテンツ再生を例示しているが、当該機能はこれに限定されるものではない。例えば、ポリシー管理部1305は、デバドラへの処理依頼を実施するかどうかを決定するために、デバドラごとに使用を禁止するかどうかを示す情報をポリシーテーブル1370又は1371に格納してもよい。また、ポリシー管理部1305は、メモリ操作関数などのOSの内部関数ごとに使用を禁止するかどうかを示す情報をポリシーテーブル1370又は1371に格納してもよい。さらに、ポリシー管理部1305は、これらの情報を組み合わせた情報をポリシーテーブル1370又は1371に格納してもよい。また、仮想マシンからのOS処理依頼のうち、アプリVMOS内部で行うべき処理は、本来OS処理依頼が来ないため、そのような処理依頼があった時にDLアプリによる使用を禁止してもよい。アプリVMOS内部で行うべき処理としては、ダウンロードしたデバドラをインストールする処理、ダウンロードしたデバドラを実行する処理、及びメモリマップ関係の機能に関する処理などがある。なお、詳細は後述する。<汎用OS1011の構成>図16は、本発明の実施の形態1に係る汎用OS1011の構成図である。図16において、汎用OS1011は、アプリロード部1400と、アプリVMOS処理受付部1401と、デバドラA1402とを含む。アプリロード部1400は、ユーザからのアプリの起動要求を受けて、アプリの起動処理を行う。アプリロード部1400は、ユーザが起動要求をしたアプリがDLアプリかどうかを判断する。アプリロード部1400は、ユーザが起動要求をしたアプリがDLアプリであった場合には、仮想化ソフトウェア1001へアプリVMの生成を依頼する。また、アプリロード部1400は、ユーザが起動要求をしたアプリがDLアプリではなく、通常のアプリであった場合には、汎用OS1011上で動作するアプリとして当該アプリを実行する。アプリVMOS処理受付部1401は、仮想化ソフトウェア1001からのOS処理の依頼を受けて、依頼されたOS処理を実施し、その結果を仮想化ソフトウェア1001へ通知する。アプリVMOS処理受付部1401は、仮想化ソフトウェア1001から、実施するOS処理の識別子と引数とを受け取り、識別子に応じた処理を行う。また、アプリVMOS処理受付部1401は、汎用OS1011の初期化処理の中で、仮想化ソフトウェア1001に対してコールバック関数を登録し、そのコールバック関数を介してOS処理の依頼を受ける。なお、アプリVMOS処理受付部1401は、コールバック関数を介してOS処理の依頼を受けるとしたが、本発明はこれに限定されるものではなく、仮想化ソフトウェア1001から汎用OS1011に依頼を通知できる機構であればよい。例えば、アプリVMOS処理受付部1401は、仮想ハードウェアの機能として、OS処理依頼専用の割り込み処理を介してOS処理の依頼を受けてもよい。また、汎用OS1011のシステムコールにOS処理依頼専用のシステムコールを追加し、アプリVMOS処理受付部1401は、そのシステムコールを介してOS処理依頼を受け付けてもよい。デバドラA1402は、機器110及び111に装着されているハードウェアへのアクセスを管理する。このデバドラA1402は、汎用OS1011内、及び汎用OS1011上で動作するアプリからの要求に応じて動作する。<アプリロード部1400の構成>図17Aは、本発明の実施の形態1に係るアプリロード部1400の構成図である。図17Aに示すアプリロード部1400は、アプリ取得部1410と、判定部1411と、ロード部1412と、VM生成依頼部1413とを含む。アプリ取得部1410は、ユーザが起動要求したアプリを不揮発性記憶装置1240から読み込む処理を行う。判定部1411は、ユーザが起動要求したアプリがDLアプリかどうかの判定を行う。判定部1411は、ユーザが起動要求したアプリがDLアプリではなかった場合には、ロード部1412に、アプリのロード及び起動を依頼する。判定部1411は、ユーザが起動要求したアプリがDLアプリであった場合には、VM生成依頼部1413にDLアプリの起動を依頼する。DLアプリの判定方法として、例えば、判定部1411は、起動を要求されたアプリのファイル名に付随する拡張子が所定の拡張子に一致するかどうか比較することにより判定を行う。DLアプリが利用する拡張子所定の拡張子は、システム設計時に決定され、汎用OS1011に事前に埋め込まれ、比較に利用される。なお、判定部1411は、DLアプリの判定に拡張子を利用するとしたが、これに限定されるものではない。例えば、DLアプリが特定のディレクトリフォルダに格納され、判定部1411は、起動を要求されたアプリのディレクトリ名フォルダ名が、DLアプリを格納しているディレクトリ名と一致するかどうか比較してもよい。また、DLアプリのヘッダ情報にDLアプリであることを識別するための情報識別子が埋め込まれ、判定部1411は、その情報があるかどうかをチェックしてもよい。また、判定部1411は、DLアプリのダウンロードパッケージ3120に含まれる公開鍵証明書3204に含まれる情報を用いてDLアプリであるかを識別してもよい。この識別方法としては、例えば、主体者Subject又は発行者Issuerを識別する情報が特定の企業を示す情報になっているかどうかを比較する方法、又は証明書の識別子CertificateSerialNumberが特定の文字列から構成されているかを調べる方法などが考えられる。また、アプリ配信サーバ120からダウンロードしたDLアプリを管理するDLアプリ管理部を設け、判定部1411は、DLアプリ管理部が管理するアプリかどうかで、起動要求されたアプリがDLアプリであるかどうかを判定してもよい。ロード部1412は、アプリ取得部1410が読み込んだアプリをメモリ1220へ書き込み、アプリの起動に必要な処理例えば、ヘッダの解析、論理アドレスの設定、スタックの設定及びエントリポイントの設定等を行ったうえで、アプリを実行する。VM生成依頼部1413は、判定部1411からDLアプリの起動依頼を受けて、仮想化ソフトウェア1001に対して、アプリVMの生成を依頼する。また、VM生成依頼部1413は、依頼時に、アプリVMで実行するDLアプリを仮想化ソフトウェア1001に通知する。なお、図17Bのように、アプリロード部1400は、判定部1411と、ロード部1412と、VM生成依頼部1413とのみを含んでもよい。この場合、アプリ取得部1410の機能は、判定部1411が内包してもよいし、仮想化ソフトウェア1001のアプリVM生成部1300とロード部1412とが内包してもよい。<アプリVMOSX1021及びアプリVMOSY1031の構成>図18A及び図18Bは、本発明の実施の形態1に係るアプリVMOSの構成図である。図18AはアプリVMOSX1021の構成を、図18BはアプリVMOSY1031の構成を示す図である。図18Aに示すアプリVMOSX1021は、OS処理依頼部1500と、デバドラB1501とを含む。OS処理依頼部1500は、アプリVMOSX1021上で動作するDLアプリX1022からのOS処理依頼を受けて、仮想化ソフトウェア1001にOS処理依頼を依頼する。この時、デバドラB1501に対する処理依頼であった場合には、仮想化ソフトウェア1001へ依頼するのではなく、アプリVMOSX1021内から直接デバドラB1501へ処理を依頼する。デバドラB1501は、アプリVMOSX1021内で動作するデバイスドライバで、DLアプリX1022のみが使用し、他のアプリは使用しない。図18Bに示すアプリVMOSY1031は、OS処理依頼部1500を含む。なお、デバドラB1501は、DLアプリX1022のみが使用し、他のアプリは使用しないとしたが、本発明はこれに限定されるものではない。例えば、DLアプリY1032がデバドラB1501を使用してもよい。この場合、アプリVMOSY1031は、さらに、デバドラB1501を含む。そして、DLアプリY1032は、アプリVMOSY1031に含まれるデバドラB1501を使用する。OS処理依頼部1500は、アプリVMOSY1031上で動作するDLアプリY1032からのOS処理依頼を受けて、仮想化ソフトウェア1001にOS処理依頼を依頼する。アプリVMOSY1031は、内部にデバドラを持たないため、OS処理依頼部1500は、全てのOS処理依頼を仮想化ソフトウェア1001へ依頼する。<OS処理依頼部1500の構成>図19Aは、本発明の実施の形態1に係るOS処理依頼部1500の構成図である。図19Aに示すOS処理依頼部1500は、OS処理受付部1510と、依頼判定部1511と、内部処理部1512と、依頼部1513とを含む。OS処理受付部1510は、DLアプリからのOS処理依頼を受け付ける。依頼判定部1511は、依頼を受けたOS処理が、アプリVMOS内部で行う処理か、仮想化ソフトウェア1001へ依頼する処理かの判定を行う。依頼判定部1511は、依頼を受けたOS処理が内部で行う処理であった場合には、内部処理部1512へ処理を依頼する。また、依頼判定部1511は、依頼を受けたOS処理が仮想化ソフトウェア1001へ依頼する処理であった場合には、依頼部1513へ処理を依頼する。内部処理部1512は、DLアプリから依頼された処理を呼び出し、その処理結果をDLアプリへ返す。依頼部1513は、仮想化ソフトウェア1001へOS処理を依頼する。また、依頼部1513は、仮想化ソフトウェア1001から得られる結果をDLアプリへ返す。依頼判定部1511で、アプリVMOS内部で行う処理として判定される処理としては、例えば、ダウンロードしたデバドラをインストールする処理、ダウンロードしたデバドラを実行する処理、及びメモリマップ関係の機能に関する処理などがある。なお、OS処理依頼部1500は、OS処理依頼を内部で行う処理かどうかを判定するとしたが、これに限定されるものではない。図19Bに示すOS処理依頼部1500のように、依頼を受けたOS処理に対してOS処理依頼を内部で行う処理かどうかを判定せずに、全ての処理を仮想化ソフトウェア1001へ依頼するとしてもよい。<アプリVM生成処理>汎用OS1011と仮想化ソフトウェア1001とは、互いに連携しながらDLアプリをアプリVMOS上で動作させるために、アプリVMの生成処理を行う。以下、汎用OS1011から仮想化ソフトウェア1001へアプリVMの生成を依頼した時のアプリVM生成処理を、図20のフローチャートを用いて説明する。汎用OS1011は、ユーザからのアプリ実行要求に応じて、アプリの起動処理を行う。まず、汎用OS1011のアプリロード部1400は、実行要求されたアプリを不揮発性記憶装置1240から取得しS1100、取得したアプリをメモリ1220へ書き込む。アプリロード部1400は、取得したアプリがDLアプリかどうか判定するS1101。アプリロード部1400は、取得したアプリがDLアプリである時は、OKと判定し、取得したアプリがDLアプリではない時にはNGと判定する。アプリロード部1400は、ステップS1101でOKと判定した場合には、仮想化ソフトウェア1001へ実行要求されたアプリを実行するためのVMアプリVMの生成を依頼する。この時、アプリロード部1400は、取得したアプリを一緒に仮想化ソフトウェア1001へ送る。仮想化ソフトウェア1001のアプリVM生成部1300は、アプリVMの生成依頼を受けて、生成するアプリVM用のメモリ領域をメモリ1220上に確保し、不揮発性記憶装置1240からアプリ実行専用VM1241を読み込み、確保したメモリ領域へVM本体1311を書き込むS1102。その後、アプリVM生成部1300は、正しいVM本体1311が書き込まれたか確認するために、書き込んだVM本体1311から検証値を生成する。次に、アプリVM生成部1300は、生成した検証値と、アプリ実行専用VM1241の検証値1312とを比較し、一致するかどうかを検証する。アプリVM生成部1300は、生成した検証値と、アプリ実行専用VM1241の検証値1312とが一致しない場合には、アプリVMの生成を中止する。なお、ここでは、アプリVM生成部1300は、VM本体1311をメモリに書き込んだ後に検証値1312を確認するとしたが、本発明はこれに限定されるものではない。例えば、アプリVM生成部1300は、不揮発性記憶装置1240からアプリ実行専用VM1241を読み込む前に、VM本体1311の検証値を計算し、計算した検証値と検証値1312とが一致するかどうかを検証してもよい。また、アプリVM生成部1300は、DLアプリ用の個別の仮想マシンを生成する際に、OS1315を共通で用いる。例えば、DLアプリX1022を実行する仮想マシン1003のアプリVMOSX1021と、DLアプリY1032を実行する仮想マシン1004のアプリVMOSY1031との両方を、OS1315を用いて生成する。具体的には、DLアプリX1022及びDLアプリY1032が共にDLデバドラを含まない場合、アプリVMOSX1021とアプリVMOSY1031とは同一の機能を有する。また、DLアプリX1022がDLデバドラを含む場合、アプリVM生成部1300は、OS1315に当該DLデバドラの機能を加えることでアプリVMOSX1021を生成する。ここで、本発明の実施の形態1に係る機器110は、上述したように、DLアプリに対して個別の仮想マシンを生成し、当該仮想マシンでDLアプリを実行する。そのため、アプリごとにOSが必要となるため、この複数のOSを格納しておくための不揮発性記憶装置1240の容量が増加するという問題が生じる。これに対して、アプリVM生成部1300は、共通のOS1315を用いて、各アプリ用のOSを作成する。これにより、不揮発性記憶装置1240には、単一のOS1315のみを格納しておくだけでよいので、当該不揮発性記憶装置1240の容量を削減できる。次に、アプリVM生成部1300は、汎用OS1011から受け取ったアプリを、メモリ1220へ書き込むS1103。また、アプリVM生成部1300は、書き込むアドレスとして、アプリ実行専用VM1241のヘッダ情報1310に記載されているアドレスを参照する。また、アプリVM生成部1300は、アプリ実行専用VM1241とアプリとから生成したアプリVMをVM管理部1302へ登録し、生成したアプリVMに当該アプリVM仮想マシンを識別するためのIDを付与する。次に、アプリVM生成部1300は、VM生成処理を依頼した汎用OS1011が動作する仮想マシンのIDID1と、生成したアプリVMのIDID2とを取得する。また、アプリVM生成部1300は、ID1を親とし、ID2を子とする親子関係を親子関係管理部1304に記憶するS1104。次に、アプリVM生成部1300は、生成したアプリVMの実行をVM管理部1302へ依頼する。これにより、VM管理部1302はアプリVMを実行するS1105。実行されたアプリVM内で、アプリVMOSが実行され、更にDLアプリが実行される。一方、アプリロード部1400は、ステップS1101でNGと判定した場合には、取得したアプリを汎用OS1011上で動作するアプリとして汎用OS1011に登録し、当該アプリを実行するS1106。<OS処理依頼時の処理>アプリVMOSX1021及びアプリVMOSY1031は、その上で動作するDLアプリX1022又はDLアプリY1032からOS処理の依頼があった場合に、そのOS処理を仮想化ソフトウェア1001へ依頼する。仮想化ソフトウェア1001は、OS処理の依頼を受けて、その処理が行える汎用OS1011へOS処理を依頼する処理を行う。以下、DLアプリからのOS処理依頼の処理を、図21のフローチャートを用いて説明する。以下の説明では、アプリVMOSX1021上で動作するDLアプリX1022からのOS処理依頼を汎用OS1011が処理する場合を説明する。ここで、汎用OS1011が動作する仮想マシン1002の仮想マシンIDを1とし、アプリVMOSX1021及びDLアプリX1022が動作する仮想マシン1003の仮想マシンIDを3とする。また、親子関係管理テーブル1360には、図14のように、親仮想マシンID1、子仮想マシンID3の組が登録されているとする。図21において、DLアプリX1022は、デバイスへのアクセスなどのシステムコールを発行することで、アプリVMOSX1021に対してOS処理を依頼する。依頼を受けたアプリVMOSX1021は、依頼されたOS処理がアプリVMOSX1021内部で行う処理か、他の仮想マシンへ依頼する処理かを判定するS1200。アプリVMOSX1021は、アプリVMOSX1021内部で行う処理である場合にはYESと判定し、内部で行わない処理の場合にはNOと判定する。具体的には、アプリVMOSX1021は、依頼されたOS処理をアプリVMOSX1021が実行できるか否かを判定する。例えば、アプリVMOSX1021がDLデバドラの機能を含んでおり、依頼されたOS処理が当該DLデバドラの処理である場合、アプリVMOSX1021は、当該OS処理を当該アプリVMOSX1021が実行できるアプリVMOSX1021内部で行う処理と判定する。また、アプリVMOSX1021は、依頼されたOS処理が当該DLデバドラの処理以外である場合、当該OS処理を当該アプリVMOSX1021が実行できない他の仮想マシンへ依頼する処理と判定する。アプリVMOSX1021は、ステップS1200でNOと判定した場合には、仮想化ソフトウェア1001へOS処理を依頼する。仮想化ソフトウェア1001のOS処理依頼制御部1303は、OS処理を依頼した仮想マシンの親の関係にあたる仮想マシンがどの仮想マシンかを判定するために、親子関係管理部1304に問い合わせ、親の仮想マシンの識別子を取得するS1201。問い合わせを受けた親子関係管理部1304は、親子関係管理テーブル1360を参照し、子仮想マシンIDの列からOS処理を依頼した仮想マシンのID今の場合3を検索する。次に、親子関係管理部1304は、検索したIDと対で管理されている親仮想マシンID今の場合1を取得し、取得した親仮想マシンIDをOS処理依頼制御部1303へ通知する。次に、OS処理依頼制御部1303は、依頼されたOS処理がポリシーに適合しているかのチェックをポリシー管理部1305に依頼する。依頼を受けたポリシー管理部1305は、ポリシーテーブル1370を参照することによりポリシーをチェックするS1202。また、ポリシー管理部1305は、ポリシーテーブル1370から、その機能を提供している仮想マシンIDを取得し、その仮想マシンIDが使用禁止を示す特殊なID図15Aの場合、0になっていないかをチェックする。特殊なIDになっていた場合には、ポリシー管理部1305は、チェック結果としてNGを返す。また、ポリシー管理部1305は、特殊なIDでなかった場合には、チェック結果としてOKを返す。OS処理依頼制御部1303は、ステップS1202のポリシーチェックがOKであったかどうかを判定するS1203。OS処理依頼制御部1303は、ステップS1203でOKと判定した場合には、親の関係にある仮想マシン1002で動作している汎用OS1011にOS処理を依頼する。汎用OS1011は、依頼されたOS処理を実施しS1204、その結果を仮想化ソフトウェア1001へ通知する。仮想化ソフトウェア1001は、通知された結果を、アプリVMOSX1021へ通知する。更に、アプリVMOSX1021が、当該結果をDLアプリX1022へ通知する。一方、OS処理依頼制御部1303は、ステップS1203でNGと判定した場合には、結果としてエラーをアプリVMOSX1021へ通知する。また、アプリVMOSX1021は、ステップS1200でYESと判定した場合には、アプリVMOSX1021の内部でOS処理を実施するS1205。次に、アプリVMOSX1021は、実施したOS処理の結果を、DLアプリX1022へ通知する。なお、ここでは、DLアプリX1022がOS処理を依頼し、汎用OS1011がOS処理を実施する場合に関して説明したが、本発明はこれに限定されるものではない。例えば、他のアプリVMで動作するアプリがOS処理依頼を行ってもよいし、汎用OS1011以外のOSでOS処理を実施してもよい。ここで、本発明の実施の形態1に係る機器110は、上述したように、DLアプリに対して個別の仮想マシンを生成し、当該仮想マシンでDLアプリを実行する。そのため、仮想マシンごとにOSを実行する必要があるので、必要となるハードウェアメモリ等が増加するという問題が生じる。これに対して、本発明の実施の形態1に係る機器110では、DLアプリ用に生成された仮想マシンは、自身のOSが処理できないOS処理を他の仮想マシンに依頼する。これにより、DLアプリ用に生成された仮想マシンのOSの機能を削減できるので、必要となるハードウェアを削減できる。例えば、当該OSは、OS処理を依頼する機能と、DLデバドラの機能とのみを実現できればよい。<アプリ実行専用VM生成装置1600の構成図>図22は、本発明の実施の形態1に係るアプリ実行専用VM生成装置1600の構成図である。図22に示すアプリ実行専用VM生成装置1600は、アプリ実行前停止コード挿入部1601と、VM生成部1602と、VM実行部1603と、専用VM生成部1604とを含む。また、アプリ実行専用VM生成装置1600は、VMソースコード1610が入力され、アプリ実行専用VM1620を出力する。このアプリ実行専用VM1620は、機器110及び111で、不揮発性記憶装置1240にアプリ実行専用VM1241として格納される。VMソースコード1610は、アプリVMOSのソースコードと、仮想ハードウェアの設定情報とを含む。アプリVMOSのソースコードは、アプリVMOSがその上で動作するアプリをメモリ1220へロードする処理の直前に、その旨を示す文字列停止識別子が挿入されている例えば、PRE_APP_EXEC:。アプリ実行前停止コード挿入部1601は、VMソースコード1610に挿入されている停止識別子を検出して、当該停止識別子を、アプリVMOSから仮想化ソフトウェア1001への通知命令ハイパーコール又はハイパーバイザコール:hypercallに置き換える。VM生成部1602は、VMソースコード1610をコンパイル処理及びリンク処理することによりVMの実行イメージファイルを作成する。VM実行部1603は、仮想化ソフトウェア1001と同等の機能を有し、VMの実行イメージファイルを実行する。実行されたVMは、停止識別子の代わりに埋め込まれた通知命令まで処理を行った後、VM実行部1603への通知処理を行う。VM実行部1603は、この通知を受けてVMの処理を停止する。専用VM生成部1604は、停止したVMの状態メモリ上のデータ及びCPUのレジスタの値等と、VMの実行イメージファイルとから、アプリ実行専用VM1620のVM本体1311を生成する。更に、専用VM生成部1604は、ヘッダ情報1310と検証値1312とを生成し、それらを組み合わせてアプリ実行専用VM1620を生成する。アプリ実行専用VM1620は、アプリVMOSが起動し、アプリをロードする直前の状態で停止したVMイメージファイルを含む。なお、ここでは、アプリをメモリ1220へロードする処理の直前に停止識別子が挿入されているとしたが、本発明はこれに限定されるものではない。例えば、アプリをメモリ1220へロードした処理の直後に停止識別子が挿入されてもよい。また、ここでは、アプリ実行前停止コード挿入部1601は、停止識別子を通知命令ハイパーコールに置き換えるとしたが、本発明はこれに限定されるものではない。例えば、アプリ実行前停止コード挿入部1601は、VMソースコード1610を解析することで停止すべき場所を自動的に検出し、検出した場所に通知命令を挿入してもよい。また、通知命令は、ハイパーコールでなく、ブレークポイント命令でもよいし、専用の割り込み命令でもよい。以上説明したように、本発明の実施の形態1によれば、汎用OS1011は、アプリ実行時に、実行するアプリがDLアプリであるかどうかを判断し、DLアプリであった場合に、DLアプリをそれ専用の仮想マシンアプリVMで動作させる。このため、DLアプリが、汎用OS1011上で動作する他のアプリ、及び他のDLアプリが使用するデータにアクセスすることを防止することができる。また、機器110は、DLアプリの実行時に動的にアプリVMを生成するため、アプリVMが、常時、メモリ1220を占有することがない。さらに、アプリVMOSがOS処理を仮想化ソフトウェア1001へ依頼する構成にすることで、アプリVMOSのサイズを小さくすることができる。これにより、アプリVM実行時のメモリ1220の利用サイズを減らすことができる。このため、本発明の実施の形態1に係るアプリ配信システム100は、メモリなどのリソースの少ない携帯電話、及びTVなどの家電製品においても利用できる。さらに、DLアプリの実行用の仮想マシンのアプリVMOSを共通化することにより、格納しておくOSのデータ量を削減できる。さらに、アプリVMOSは、OS処理を仮想化ソフトウェア1001へ依頼するか、アプリVMOS内部で処理するかを判定する。このため、汎用OS1011が処理するとセキュリティの観点から問題となる処理に関しては、アプリVMOS内部で処理することができる。これにより、DLアプリが攻撃用のアプリであったとしても、汎用OS1011への攻撃を防止することができる。また、仮想化ソフトウェア1001でOS処理依頼を受けた時に、本来アプリVMOS内部で行う処理であるかどうかを判断することで、セキュリティの観点から問題となる処理に関しては、アプリVMOS内部と仮想化ソフトウェア1001との2カ所で判断することになる。このため、アプリVMOS内部だけで判断する場合と比べて、セキュリティを向上できる。このように、本発明の実施の形態1に係るアプリ配信システム100は、不正アプリ及び不正デバドラによる情報資産の漏洩及び改竄を防止できる。これにより、ユーザは安心して機器を利用することができる。実施の形態2本発明の実施の形態2では、本発明の実施の形態1の構成に対して、アプリVMのOS処理を汎用OS1011で処理する機能を持たない構成について説明する。以下、本発明の実施の形態2に係る仮想化ソフトウェア1001と汎用OS1011との構成及び生成処理を説明する。なお、本発明の実施の形態1と同じ構成要素、同じ処理については、同じ符号を用い、説明を省略する。<仮想化ソフトウェア1001の構成>図23は、本発明の実施の形態2に係る仮想化ソフトウェア1001のソフトウェア構成図である。図23に示す仮想化ソフトウェア1001は、アプリVM生成部1300と、アプリ実行専用VM取得部1301と、VM管理部1302とを含む。アプリVM生成部1300は、仮想化ソフトウェア1001上で動作する仮想マシンから、VMアプリVMの生成依頼を受けて、アプリ実行専用VMと、仮想マシンから通知されたDLアプリとから、DLアプリを実行するためのVMアプリVMを生成する。また、アプリVM生成部1300は、VM管理部1302へ、生成した仮想マシンの管理を依頼する。ここで、アプリVM生成部1300は、本発明の実施の形態1と異なり、親子を認識し、親子関係管理部へ登録する処理は行わない。なお、アプリ実行専用VM取得部1301と、VM管理部1302に関しては、本発明の実施の形態1と同じである。<汎用OS1011の構成>図24は、本発明の実施の形態2に係る汎用OS1011の構成図である。図24に示す汎用OS1011は、アプリロード部1400と、デバドラA1402とを含む。汎用OS1011は、本発明の実施の形態1と異なり、他の仮想マシンからのOS処理依頼を受け付けないため、OS処理依頼受け付けに必要な機能を持たない。アプリロード部1400とデバドラA1402とに関しては、本発明の実施の形態1と同じである。また、本発明の実施の形態2では、アプリVMOSX1021及びアプリVMOSY1031の構成は、汎用OS1011と同じ構成となる。なお、アプリロード部1400は、汎用OS1011と同じ構成であってもよいし、図17Aに示す構成において、判定部1411とVM生成依頼部1413とを備えず、アプリ取得部1410によりアプリ取得後、すぐにロード部1412によりアプリVMOS上にロードするとしてもよいし、アプリVMOS上で動作しているアプリから他アプリを起動できない構成にしてもよい。<アプリVM生成処理>本発明の実施の形態2に係るアプリVMの生成処理は、本発明の実施の形態1に係るアプリVM生成処理図20と大部分は同じ処理となる。しかし、本発明の実施の形態2に係る仮想化ソフトウェア1001は、アプリVMからのOS処理依頼を制御する機能を持たないため、ステップS1104の親子関係を登録する処理を行わない。そのため、アプリVM生成部1300は、アプリ実行専用VMとDLアプリとからアプリVMを生成S1102とS1103し、VM管理部1302へ登録後、生成したアプリVMの実行をVM管理部1302へ依頼する。依頼を受けたVM管理部1302は、アプリVMを実行するS1105。なお、上記以外の処理は、本発明の実施の形態1と同じ処理である。以上説明したように、本発明の実施の形態2によれば、汎用OS1011がアプリ実行時に、DLアプリであるかどうかを判断し、DLアプリであった場合に、DLアプリをそれ専用の仮想マシンアプリVMで動作させる。このため、本発明の実施の形態2に係るアプリ配信システム100は、DLアプリが、汎用OS1011上で動作するアプリ、又は他のDLアプリが使用するデータにアクセスすることを防止することができる。このように、本発明の実施の形態2に係るアプリ配信システム100は、不正アプリ及び不正デバドラによる情報資産の漏洩及び改竄を防止できる。これにより、ユーザは安心して機器を利用することができる。実施の形態3本発明の実施の形態3では、本発明の実施の形態1の構成に対して、仮想マシンを生成する機能を持たない構成について説明する。以下、本発明の実施の形態3に係る仮想化ソフトウェア1001と汎用OS1011との構成及び生成処理を説明する。なお、本発明の実施の形態1と同じ構成要素、同じ処理については、同じ符号を用い、説明を省略する。<仮想化ソフトウェア1001の構成>図25は、本発明の実施の形態3に係る仮想化ソフトウェア1001のソフトウェア構成図である。図25に示す仮想化ソフトウェア1001は、VM管理部1302と、OS処理依頼制御部1303と、親子関係管理部1304と、ポリシー管理部1305とを含む。なお、VM管理部1302と、OS処理依頼制御部1303と、親子関係管理部1304と、ポリシー管理部1305とに関しては、本発明の実施の形態1と同じである。<汎用OS1011の構成>図26は、本発明の実施の形態3に係る汎用OS1011の構成図である。図26に示す汎用OS1011は、アプリVMOS処理受付部1401と、デバドラA1402とを含む。なお、アプリVMOS処理受付部1401とデバドラA1402とに関しては、本発明の実施の形態1と同じである。なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。1上記実施の形態におけるDLアプリは、アプリ配信サーバ120からダウンロードされるとしたが、これに限定されるものではない。例えば、DLアプリは、開発装置又はUSB接続したPCからインストールされたアプリであってもよいし、機器110の出荷時に初めからインストールされていてもよい。2上記実施の形態における機器110及び111のソフトウェア構成は、RTOS1041を含む仮想マシン1005がなくてもよいし、汎用OS1011を含む仮想マシン1002、又はRTOS1041を含む仮想マシン1005が複数あってもよい。また、OSを含まない仮想マシンがあってよいし、OS機能を内包したアプリが動作する仮想マシンがあってもよい。さらに、これらの仮想マシンが、アプリVMの生成を仮想化ソフトウェア1001に依頼してもよい。このとき、それぞれの仮想マシンは別々の親として親子関係管理部1304へ登録される。3上記実施の形態におけるアプリVMは、DLアプリ実行時にメモリ1220にロードされ、実行されるとしたが、これに限定されるものではない。例えば、仮想化ソフトウェア1001は、DLアプリ実行前にアプリ実行専用VM1241のみをメモリにロードしておき、DLアプリ実行時にDLアプリをメモリ1220にロードしてもよい。また、仮想化ソフトウェア1001は、DLアプリ実行前にアプリ実行専用VM1241とDLアプリとを事前にメモリ1220にロードしてもよい。4上記実施の形態におけるアプリ実行専用VM1241は、アプリ実行専用VM生成装置1600を用いて、アプリVMOSが起動し、アプリをロードする直前の状態で停止したVMイメージファイルを含むとしたが、これに限定されるものではない。例えば、アプリ実行専用VM1241は、アプリVMOSが起動する前の状態のVMイメージファイルを含んでもよい。このとき、DLアプリごとにアプリVMOSを起動するとしてもよいし、アプリをロードする直前の状態で停止するアプリVMを事前に起動しておき、DLアプリ実行時に、アプリをロードする直前の状態で停止したアプリVMのコピーを作成し、そのコピーしたアプリVMでDLアプリを実行してもよい。5上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、及びマウスなどから構成されるコンピュータシステムである。前記RAM又はハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。6上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSILargeScaleIntegration:大規模集積回路から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM及びRAMなどを含むコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGAFieldProgrammableGateArrayや、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブルプロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。7上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM及びRAMなどから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。8本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BDBlu-rayDisc、又は半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、又はデータ放送等を経由して伝送するものとしてもよい。また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。9上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。