INTEGRITYの仮想化機能であるINTEGRITY Multivisorは、リアルタイムアプリケーションとLinux / Androidのような汎用OSアプリケーションを同時に、しかも、安全に実行可能なハイパーバイザです。INTEGRITYリアルタイムOS自身がハイパーバイザであり、Linux / AndroidなどのゲストOSは、INTEGRITYの仮想アドレス空間で動作する仮想マシン(VMM)上で実行します。いわば、拡張型Type-1ハイパーバイザであるといえます。リアルタイムアプリケーション(INTEGRITYネイティブアプリケーション)とゲストOSは、シングルコアあるいはマルチコア上で効率的にスケジューリングされ、互いに通信したり、周辺デバイスへのアクセスを制限したりすることが可能です。
INTEGRITY Multivisor
※画像クリックで拡大図を表示
INTEGRITY Multivisorは、INTEGRITY Secure Virtualizationがベースとなっており、多くのプロセッサをサポートしていますが、特にハードウェアによる仮想化支援機能が搭載されているプロセッサでは、ゲストOSの変更を最小化することができます。例えば、Intel社のVT-x、ARM社のVEやFreescale社のEmbedded Hypervisorなどの仮想化支援機能がサポートされているプロセッサでは、「完全仮想化(Full Virtualization)」が可能で、基本的にゲストOSの変更は不要です。仮想化支援機能がサポートされないプロセッサの場合には、ゲストOSを変更してINTEGRITYとのインタフェースを実装することで、「準仮想化(Para-Virtualization)」を実現可能です。
INTEGRITY Multivisorはそれ自身がリアルタイムOSであるため、クリティカルなリアルタイム処理はそのままに、Linux / Androidのような汎用OSアプリケーションを安全に実行可能です。万が一、ゲストOSがクラッシュした場合でも、INTEGRITYがそれを検出し、ゲストOSだけを安全に再起動することができます。多くのハイパーバイザシステムでは、リアルタイムOSもまたゲストOSとして実行するため、リルタイム処理(割込み処理など)に対するオーバヘッドが生じます。
例えば、車載インフォテインメント(IVI)などへの応用を考えた場合、LinuxやAndroidなどの起動時間は、数秒から数十秒かかることもあります。INTEGRITY Multivisorでは、リアルタイムOSであるINTEGRITYが数百ミリ秒以内に起動し、瞬時にカメラの画像や警告灯などを表示します。その後、バックグラウンドでAndroidなどをロードします。INTEGRITYは完全なソフトウェアパーティショニングをサポートしており、各仮想アドレス空間は互いに干渉することなくそれぞれ独立性を保持します。そのため、安全度水準の異なる機能安全モジュールを同時に実行することが可能です。そのため、機能安全を必要とする車載ソフトウェアや生産機械などには非常に適したOSです。