エンベデッド・ハイパーバイザー - 百科事典
### 概要
統合されたハイパーバイザーは、統合システムの要件をサポートするハイパーバイザーです。統合システムのハイパーバイザーの要件は、サーバーやデスクトップアプリケーション向けのハイパーバイザーとは異なります。統合システムのハイパーバイザーは、デバイスの展開後ではなく、最初から統合デバイスに設計されています。デスクトップや企業環境では、ハイパーバイザーを使用してハードウェアを統合し、計算環境を分離しますが、統合システムでは、さまざまなコンポーネントが協力してデバイスの機能を提供します。モバイル仮想化は統合システムの仮想化と重複しており、一部のユースケースを共有しています。典型的な統合仮想化の属性には、効率、セキュリティ、通信、分離、リアルタイム機能が含まれます。
背景
ソフトウェア仮想化は、1960年代後半から企業分野の主要なトピックでしたが、2000年代初頭まで統合システムにその使用が現れませんでした。仮想化の使用と、ハイパーバイザーとしての実装は、企業アプリケーションとは非常に異なります。効果的な統合ハイパーバイザーの実装は、このようなアプリケーションに固有の多くの問題に対処する必要があります。これらの問題には、統合システムの非常に高度な統合性、システム内の機能ブロックが高速で通信する必要、リアルタイム/確定性のパフォーマンスが必要、リソース制約されたターゲット環境、そして広範なセキュリティおよび信頼性要件が含まれます。
= ハイパーバイザー =
ハイパーバイザーは、オペレーティングシステムを含む他のソフトウェアが、実際にはハイパーバイザーの完全な制御下にあるシステムハードウェアにフルアクセスのようであるように見えるように、1つ以上のソフトウェア仮想化環境を提供します。これらの仮想環境は仮想マシン(VM)と呼ばれ、ハイパーバイザーは通常、同時に管理される複数のVMをサポートします。
分類
ハイパーバイザーは、スーパーバイザーモードまたは特権モード(タイプ1)で専用に実行されるか、オペレーティングシステムとして通常のアプリケーションとしてホストされるか(タイプ2)によって、一般的にタイプ1またはタイプ2に分類されます。タイプ1のハイパーバイザーは、仮想マシンを制御するために必要な主要システムリソースを管理し、最小の信頼できる計算基盤(TCB)を促進します。タイプ2のハイパーバイザーは、通常、より一般的なオペレーティングシステム内でアプリケーションとして実行され、OSのサービスに依存してシステムリソースを管理します。現在、カーネルエクステンションがよくロードされ、仮想化サポートを持つハードウェアを活用しています。
= 統合ハイパーバイザー =
統合ハイパーバイザーは、最もよくタイプ1のハイパーバイザーであり、統合システム開発の要件をサポートします。詳細については参照してください。
以下にこれらの要件をまとめます。
小さくて高速で、複数の分離されたVMをサポートするハイパーバイザー;
中粒度のシステムコンポーネントを軽量かつ安全にカプセル化するサポート;
システム全体にわたって設定可能なセキュリティポリシーに従った高帯域幅、低遅延の通信;
システムリソースに対する最小の影響とリアルタイム遅延保証のサポート;
VM間でのスケジューリングポリシーを実装し、リアルタイムシステムコンポーネントのサポート
実装
統合ハイパーバイザーは、通常、各VMが仮想化ソフトウェアが実行されるハードウェアプラットフォームをエミュレートする複数のVMを提供します。VMは、ベースのネイティブハードウェアをエミュレートすることができますが、エミュレーションが常に可能または必要であるとは限りません。代わりに、仮想プラットフォームが定義されます。
VMが仮想プラットフォームを提供する場合、ゲストソフトウェアはこの環境で実行するためにポートされる必要がありますが、仮想プラットフォームはネイティブハードウェアに依存することなく定義できるため、仮想プラットフォームをサポートするゲストソフトウェアは、ハイパーバイザーによってサポートされるさまざまな異なるハードウェアプラットフォームで変更せずに実行できます。
統合ハイパーバイザーは、パラバーチャライゼーションを使用するか、またはベースのCPUの仮想化機能を使用します。パラバーチャライゼーションはハードウェアがサポートしない場合に必要であり、ゲストカーネルの核心アーキテクチャへの広範な変更を伴います。レジスタレベルでのハードウェアのエミュレーションは、非常に複雑で遅いため、統合ハイパーバイザーではめったに見られません。統合システムの特別な性質により、これらの技術を使用する必要がある変更不可のバイナリのみのゲストソフトウェアをサポートする必要は稀です。
実装のサイズと効率も、統合ハイパーバイザーにとって問題です。なぜなら、統合システムはデスクトップやサーバープラットフォームよりもリソースが制約されているためです。また、ハイパーバイザーは、可能な限り、ネイティブハードウェアプラットフォームの速度、リアルタイム応答、確定性、および電力効率を維持することが望ましいです。
= ハイパーバイザー設計 =
統合システムアプリケーション向けの実装は、一般的に小さなマイクロカーネルや分離カーネル設計に基づいており、仮想化が組み込まれた機能として提供されています。これは2005年にPikeOSで導入されました。これらのアプローチの例は、Open Kernel Labs(マイクロカーネルに続いて分離カーネル)やLynuxWorks(分離カーネル)などの会社によって提供されています。VirtualLogixは、専用の仮想マシンモニタ(VMM)に基づくアプローチがさらに小さくて効率的であると見なしています。この問題は、現在も継続的に議論されていますが、討論のすべての側面で問題点は同じです。具体的には、実装の速度とサイズ(機能レベルによって異なる)が非常に重要です。例えば、「...統合用のハイパーバイザーはリアルタイム機能であり、リソースを節約する必要があります。」と述べられています。
= リソース要件 =
統合システムは、コストやハードウェアの技術的な制限によるため、一般的に非常にリソースが制約されています。したがって、統合ハイパーバイザーは可能な限り効率的であることが重要です。マイクロカーネルや分離カーネルに基づく設計は、小さくて効率的なハイパーバイザーを可能にします。
したがって、統合ハイパーバイザーは、実装の効率と提供される機能レベルによって、数十から数百キロバイトのメモリフットプリントを持っています。数MB(またはそれ以上)のメモリが必要な実装は、一般的に受け入れられません。
タイプ1の統合ハイパーバイザーの小さなTCBにより、システムは非常にセキュアで信頼性が高くなります。コード検査や体系的なテストなどの標準的なソフトウェアエンジニアリング技術を使用して、非常に小さなコードベースにおけるバグの数を最小限に抑えることができます。これにより、ハイパーバイザーとゲストOSの組み合わせが合計で10万~30万行になる可能性がある場合に期待される欠陥のほんの一部に抑えることができます。
= VM間通信 =
統合ハイパーバイザーで最も重要な機能の1つは、プロセス間のリアルタイム通信をサポートする安全なメッセージパスメカニズムです。統合環境では、システムは通常、密接に連結されたタスクをいくつか持ち、そのうちのいくつかが他のタスクから安全に分離される必要があります。仮想化環境では、統合ハイパーバイザーは、複数のVM間のこのような分離をサポートおよび強制します。したがって、これらのVMは、タスク間の低遅延通信を提供するメカニズムへのアクセスが必要です。
プロセス間通信(IPC)メカニズムを使用してこれらの機能を提供し、すべてのシステムサービスを呼び出す方法で、望ましいレベルのVM間の分離を維持する方法で実装できます。また、システムパフォーマンスに大きな影響を与えるため、このようなIPCメカニズムは最小限の遅延で高度に最適化される必要があります。
= ハードウェア要件 =
統合ハイパーバイザーは、ソフトウェアがVMから抜け出せないようにするために、システムリソース(メモリアクセスを含む)を完全に制御する必要があります。したがって、ハイパーバイザーは、ターゲットCPUがメモリ管理サポート(一般的にはMMUを使用して)を提供する必要があります。ARM、MIPS、PowerPCなど、多くの統合プロセッサーが、デスクトップやサーバーチップのベンダーに従って仮想化サポートを追加していますが、まだそのサポートを提供しないプロセッサーが多くあります。したがって、パラバーチャライゼーションをサポートするハイパーバイザーが必要です。
ARMプロセッサーは、そのアプリケーションクラスプロセッサーの設計のほとんどがARM TrustZoneという技術をサポートしており、主に特権VMと非特権VMに対する基本的なハードウェアサポートを提供します。通常、最小の信頼可能な実行環境(TEE)OSがSecure Worldで実行され、ネイティブカーネルがNon-secure Worldで実行されます。
用例
統合ハイパーバイザーの最も一般的な用例には次のようなものがあります:
1. オペレーティングシステムの独立性
2. 1つのプロセッサー上で複数のオペレーティングシステムのサポート
3. システムセキュリティ
4. システム信頼性
5. システムソフトウェアの動的更新
6. レガシーコードの再利用
7. IP保護
8. ソフトウェアライセンス分離
9. アプリケーションのユニコアからマルチコアシステムへの移行
商用製品
Crucible by Star Lab Corp.
Cross-OS Hypervisor - MapuSoft Technologies, Inc.による、1つのOSプラットフォーム上でネイティブにアプリケーションを実行する
OKL4 Hypervisor - ARMベースのスマートコネクトドデバイス(統合、モバイル)をサポートし、国防やセキュリティに敏感なアプリケーションで使用。商業的にCog Systemsによってサポート
INTEGRITY Multivisor - 安全/信頼性認定されたINTEGRITY RTOSのタイプ2マイクロカーネル仮想化サービス
参考文献