よくあるご質問
タイプI(ベアメタル)ハイパーバイザとして、RTSハイパーバイザは、PCを個々のハードウェアパーティションにセキュアに分割し、各パーティションは1つ以上のCPUコア、メモリ、タイマー、I/Oデバイスで構成されます。 デフォルトでは、ハードウェアはOS間で共有されません。これには、CPUコアも含まれます。つまり、OSは、相互に割り込むことなく並列に実行されます。 完全な分離からハードリアルタイムまで、いくつかの異なる実行モードが提供されます。 リアルタイム拡張(リアルタイムタスクのリソースがホストOSによって提供される)とは異なり、RTSハイパーバイザはリアルタイムタスクが他のOSによって妨げられないようにします。 1つのOSをエンドユーザに解放したり、別のOSが重要なコードを実行している間に外部に接続したりすることは、典型的なユースケースの1つです。 コンフィグレーションによって、リアルタイムOSと非リアルタイムOSを組み合わせて実行することができます。
RTSハイパーバイザは、適用するOSに対して異なるモードを提供します。
- 完全な仮想化モードでは、OSを全く変更せずに、セキュアなパーティションで実行します。 このモードではOSが、並行して実行されている他のOSを妨害したり影響を与えたりすることがないことが保証されています。 ただし、これにはわずかなパフォーマンスの低下が伴います。
- リアルタイムコードやリアルタイムOSのハードリアルタイムで確定的動作を保証するために、RTSハイパーバイザは 「特権モード」 と呼ばれるモードも備えています。 特権モードでは、OSは全てのハードウェアに直接アクセスが可能で、RTSハイパーバイザによって提供される準仮想化インタフェースを使用します。 これにより、ハイパーバイザによって遅延が増えることなく、OSを通常の速度で実行することができます。
- MMUによる仮想化、I/O制限、IOMMUなどのセキュリティオプションを選択的にオンにすることができます。
- ラストレベルのキャッシュやメモリバスアクセスなどの共有リソースについては、OS間で、優先順位を付けることができます。
RTSハイパーバイザは非常に柔軟です。 低消費電力モジュールであっても、マルチソケットのサーバであっても、全く同じハイパーバイザのバイナリを実行することができます。 これにより、RTSハイパーバイザは任意のPCで実行することができ、アプリケーション固有の 「カスタマイズ」 は、コンフィグレーションにより行うことができます。
RTSハイパーバイザは、最近のx86ベースのPCであれば、どのようなチップセットでも動作します。 特定の機能(たとえばIOMMUなど)については、ハードウェアによるサポートが必要になる場合があります。
キャッシュは一般的にジッターを低減しますが、共有キャッシュはOSが相互に影響を受ける原因となる可能性があります。 プロセッサがCAT(Cache Allocation Technology)をサポートしている場合、共有されるキャッシュとOS専用のキャッシュを分離することができます。
キャッシュは一般的にジッターを低減しますが、共有キャッシュはOSが相互に影響を受ける原因となる可能性があります。 プロセッサがCAT(Cache Allocation Technology)をサポートしている場合、共有されるキャッシュとOS専用のキャッシュを分離することができます。
すべての標準BIOSやEFIベースのファームウェア(CSM有/無)がサポートされています。 汎用OSが変更なしにPC上で実行できる場合、RTSハイパーバイザもシステム上で実行することができます。
RTSハイパーバイザを実行するために、特別な機能は必要ありません。 ただし、特定のハードウェア機能を使う場合、ファームウェアで有効にしなければならない場合があります。
通常どおりファームウェアの実行後、ブートローダはハイパーバイザをロード、実行し、ハードウェアを初期化して、設定したブートシーケンスでさまざまなOSを起動します。 ブートローダとハイパーバイザを、エンドユーザに表示しないように設定できます。
RTSハイパーバイザは、現在すぐに使用できるOSとして、Microsoft Windows 10とそれ以前のもの、Windows Embedded Compact、VxWorks、XENOMAI、TenAsys Intime分散RTOS、RTOS-32、QNX、Linux、リアルタイムLinux、T-Kernelをサポートしています。 他のOSのサポートは、リクエストに応じていつでも追加できます。 さまざまなOSを、さまざまな実行モードで同時に実行することができ、SMPとシングルCPU、あるいは32ビットと64ビットなど、任意の組み合わせが可能です。
OSは、エンドユーザ自身で、いつでも更新することができます。
たとえば、Microsoft Windowsを使う場合、最初に Windowsをディスクへインストールしてから、ハイパーバイザのインストールを続行します。 OSをディスクにインストールする必要がない場合、RTSハイパーバイザは指定された場所から直接イメージをロードすることもできます。
OS開発には、各OSの標準ツールが使用できます。 RTSハイパーバイザのコンフィグレーションには、開発ツールは必要ありません。
各OS標準のデバッグツールとインタフェースを使用することができます。 これには、カーネルのデバッグとアプリケーションのデバッグのためのツールが含まれます。 RTSハイパーバイザのユニークな点は、たとえば仮想ネットワークを介してWindowsを並行して実行している別のコアから、リアルタイムターゲットをデバッグできることです。 特別なツールやトレーニングは必要ありません。
必要ありません。デバイスを排他的にOSに割り当て、既存のデバイスドライバを変更せずに使用できます。
標準のPCIやPCIeデバイスは、すべて排他的(パススルー)に割り当てることができます。 AHCIやxHCIコントローラなどのデバイスは、OS間で共有できます。
はい、パススルーはRTSハイパーバイザで使用されるデフォルトの割り当てメカニズムです。 メモリとデバイスの保護は、MMUの仮想化とIOMMUによって実現されます。
はい、AHCI共有によってディスクドライブやディスクパーティションの割り当てが可能であり、xHCI共有によってxHCIポートの割り当てが可能です。
PCIやPCIeデバイスは排他的に割り当てることができ、既存のデバイスドライバを使用できるため、任意のフィールドバス、あるいはリアルタイムイーサネットプロトコルを使用することができます。
すべてのネットワークデバイスを割り当てることができ、既存のドライバとプロトコルを使用できます。
内部(TCP/IP)仮想ネットワーク、またはOS間イベントシステムを介して同期できます。
はい、複数のメモリコントローラが存在する場合は、個々のメモリノードをOSに割り当てることができます。
RTSハイパーバイザは、他のソフトウェアをベースにしていません。これは重要な点で、既存のKVMやXENなどのソリューションは、別のユースケース向けに設計されています。 RTSハイパーバイザは、ドイツのラーベンスブルクにあるリアルタイムシステムズ社が単独で開発しており、輸出規制の対象ではありません。
完全な仮想化部分については、数パーセントのオーバーヘッドがあります。 当然、同じハードウェアで複数のOSを実行すると、それぞれのOSが使用できるCPUとメモリが少なくなるため、すべてのハードウェアが使用可能なネイティブOSの実行に比べて、ゲストOSの全体的なパフォーマンスは低下します。
RTSハイパーバイザには、仮想化によって遅延が増えない実行モードがあり、リアルタイムのパフォーマンスが維持されます。 このモードでは、RTSハイパーバイザが電力管理の影響を軽減し、負荷分散として、リアルタイムアプリケーションに不要なデバイスは、別のOSで処理可能であることを考慮すると、OSの確定的動作については RTSハイパーバイザを使わない時よりも優れてます。一方、共有リソースを使用すると、確定的動作に影響を与える可能性があります。
WindowsやLinuxなどの汎用OSは、通常の方法でインストールできます。 RTSハイパーバイザのインストールは、インストーラによりブートローダをインストールして、いくつかのファイルをファイルシステムに配置するだけです。 RTSハイパーバイザの通信メソッドとAPI用に提供されるドライバもインストールされます。
RTSハイパーバイザのインストールと初期コンフィグレーションは数分で完了し、トレーニングは必要ありません。技術的な質問は、サポートチームが回答します。
はい。 OSをモニター、スタート、ストップ、リブートするためのAPIが提供されており、権限を選択的に構成できます。
実際のグラフィックス(GPU)をOSで使用できる(デフォルト)ようにすると、すべての機能を備えたネイティブグラフィックスドライバを使用することができます。