Qtブログ(日本語)

Embedded Hypervisorで組み込み製品およびシステムを改善する方法

作成者: Risto Avila|Sep 27, 2021 10:00:00 PM

Embedded Hypervisorは、膨大な数の組み込み製品がスムーズかつ安全に機能するように調整するソフトウェアです。私は同僚のMiao Luoと協力して、長年にわたってEmbedded Hypervisorに取り組んできました。本記事では、ハイパーバイザーによって組み込みシステムを改善する方法に関する、私たちの考えや専門家の意見をご紹介します。

記事の内容:

Embedded Hypervisorとは

Embedded Hypervisorは、組み込みシステムのソフトウェアレイヤーまたはハードウェアレイヤーであり、これによって1つのハードウェアプラットフォーム上で複数のオペレーティングシステム(OS)を実行できるようになります。

組み込みシステムにおけるハイパーバイザーの目的

Embedded Hypervisorの目的は、組み込みシステム内で各種のオペレーティングシステム、ソフトウェア、コンポーネント、機能が互いに独立して動作できるようにすることにあります。


この仕組みは、複数のOSが1つのハードウェアプラットフォーム上で動作する場合に有効です。Embedded Hypervisorでは機能別にセグメント化を行うことで、各機能のセキュリティを強化しています。またハイパーバイザーは、システム内の時間的制約が少ない部分の動作が、リアルタイムのパフォーマンスを必要とする部分を阻害しないように調整することができます。

ハイパーバイザーによって組み込み仮想化が可能になる仕組み

組み込み仮想化では単体のハードウェアを複数の要素に分割することで、「仮想コンピューター(仮想マシン)」を作ります。それによって異なる複数のOSが、それぞれ別個のコンピューター上で動作しているかのように、さまざまな作業を行えるようになります。それを可能にするのが、OSの下位にあるハードウェアレイヤーまたはソフトウェアレイヤーであるハイパーバイザーです。
詳細な組み込みオペレーティングシステムの仕組みと実例をご覧いただけます。ハイパーバイザーの詳細と組み込みシステム内での位置付けについては、弊社が作成した組み込み製品の計画と要件ガイドブックをご覧ください。

ハイパーバイザーのタイプの違い

ハイパーバイザーには2つのタイプがあります。Type 1ハイパーバイザーはハードウェア上で動作し、ハードウェアを制御します。Type 2ハイパーバイザーはOS上のソフトウェアとして実行され、上位の仮想マシンを調整します。

  • Type 1ハイパーバイザー:ハードウェアに直接インストールするため、「ベアメタル」ハイパーバイザーとも呼ばれます。Type 1ハイパーバイザーは通常、Type 2ハイパーバイザーに比べて高速で効率に優れています。オペレーティングシステムや他のレイヤーを経由する必要がありません。また、Type 2ハイパーバイザーに比べてセキュリティも優れています。
  •  Type 2ハイパーバイザー: このソフトウェアはオペレーティングシステム上で実行され、各種のOSまたはソフトウェアからのハードウェアリソースの要求を調整します。Type 2 ハイパーバイザーは基盤となるOSの上で動作するため、セットアップと管理が簡単であり、さまざまなハードウェアで容易に使用できます。効率性ではType 1ハイパーバイザーに劣るため、パフォーマンスにラグが生ずる可能性があります。またセキュリティもType 1に比べて低くなります。

Embedded Hypervisorのメリット

Embedded Hypervisorのメリットは、組み込みシステムまたはデバイスがより効率的に動作し、セキュリティが向上するという点にあります。またシステムの動作がセグメント化されるため、一部で異常が発生してもシステムの他の部分に影響しません。

Embedded Hypervisorの重要なメリット:


  •  効率性: 組み込みシステムには多くの場合、特定のプロセスを特定の期間内に完了する必要がある、リアルタイム要件が含まれています。これにはシステム障害を防止する意味もあります。しかしシステムには、緊急性が低く、リアルタイム要件がないプロセスが含まれている場合もあります。ハイパーバイザーは、異なるオペレーティングシステムがそれらのプロセスを別個に実行できるようにします。リアルタイム要件がないプロセス内の遅延や処理上の問題は、リアルタイム要件があるプロセスに影響しません。
  • セキュリティ: ハイパーバイザーは、各種のオペレーティングシステムまたは仮想マシン間の強力な保護レイヤーとして機能します。エンジニアはこのレイヤーにより、厳格なセキュリティを必要とするオペレーティングシステムまたは仮想マシンが、適切なレベルの通信方法とポリシーに準拠するように管理できます。同じセキュリティ要件を満たす必要がないその他のOSは、これよりも低いセキュリティで動作を続行することが可能です。

「Embedded Hypervisorは、機能安全要件に準拠したデバイスを構築するうえで大きな効果があります」
Qtの『Embedded Product Planning and Requirements Guide』より

  • 区画化: ハイパーバイザーを利用すれば、複数のオペレーティングシステムを相互に完全に独立して動作させることができます。1つのシステムでの異常やクラッシュは、同じハードウェア上で実行されている他のOSには影響しません。

    組み込みシステムを専門とする独立系ソフトウェア開発者でコンサルタントのBurkhard Stubert氏は、ハイパーバイザーの概念を説明するために、非リアルタイムのLinuxオペレーティングシステムと、セーフティークリティカルな処理を行う別のリアルタイムOSを使用する、組み込みデバイスを例に挙げています。

    Stubert氏は次のように語ります。「ハイパーバイザーによって、2つのオペレーティングシステムが相互に分離されます。安全性に欠けるLinuxシステムが、安全に保護されたリアルタイムオペレーティングシステムに影響を及ぼすことがあってはなりません。ハイパーバイザーはこれらを明確に分離して、相互に影響が生じないようにします。Linuxシステムがクラッシュしたとしても、クラッシュするのはそのシステムだけです。リアルタイムOSには影響しません」
  • 認証コストの削減: 組み込みデバイスには、認証を必要とするものがあります。代表的な例としては安全性認証があります。Embedded Hypervisorを使用すれば、認証規格に準拠する必要があるシステムコンポーネントを分離して完全に隔離できるため、認証が容易になり、認証に伴うコストが削減されます。認証規格に準拠する必要があるのはそのコンポーネントだけだからです(詳細は、分離されたセーフティークリティカルな機能をQtを使用して作成し、組み込みシステム内での認証をサポートする方法を確認してください)。
  • 複雑なシステムの管理: 旧来の製品から自動運転車に至るさまざまな製品の動作を支える、複雑なソフトウェアが今後ますます増えていきます。いくつものハードウェアを必要とする複雑なシステムでそうしたソフトウェアを実行していくのは、ハイパーバイザーのようなテクノロジーがない限りほぼ不可能でしょう。

    The Qt Companyの自動車業務を監督するプロダクトマネジメントディレクター、Miao Luoは次のように述べています。「ソフトウェアは将来的にますます複雑なものになっていくでしょう。現在、1台の車両を製造するには約1億行ものソフトウェアコードが必要です。自動運転車ならばそれが10億行になります。旧来のアーキテクチャではそれに対応できません。自動車用ソフトウェアとハードウェアのための簡素化されたアーキテクチャが求められているのです」
  • マルウェア検出: ハイパーバイザーの中には、仮想マシンやオペレーティングシステムに侵入したマルウェアを検出できるものがあります。ハイパーバイザーはそのマルウェアにフラグを付け、エンジニアが対応できるようにします。

Embedded Hypervisorのその他の機能

Embedded Hypervisorには上記の重要なメリットの他にも、組み込みデバイスの動作を円滑にし、効率性を高める機能があります。

Embedded Hypervisorのその他の機能:

  • 相互に異なるマルチコアプロセッサーや仮想マシン上で実行できる
  • 仮想マシンイメージから起動できる
  • すべてのシステムリソースとハードウェアリソースをより効率的に利用できる

ハイパーバイザーの要件

Embedded Hypervisorは、いくつかの主要な要件を満たす必要があります。最も重要なことは、組み込みシステムのプロセッサーアーキテクチャで円滑に動作し、コンピューターリソースの利用を最小にすることです。

Several primary requirements for embedded hypervisors: Embedded Hypervisorの主要な要件:


  • プロセッサーアーキテクチャに適合する: 従来型のコンピューターシステムでは、少数の一般的なプロセッサーアーキテクチャのいずれかを使用していましたが、組み込みシステムや組み込みデバイスの場合は広範なプロセッサーから選択することができます。したがって、システム内のプロセッサーアーキテクチャに適合するハイパーバイザーを選択する必要があります。
  • リソースの消費量が少ない: ほとんどの組み込みシステムでは、電力やコンピューターメモリーを含め、リソースが厳格に制限されています。Embedded Hypervisorはそのような制約の下で適切に機能しなければなりません。
  • 高速通信: Embedded Hypervisorは、すべてのシステムコンポーネント間で低遅延か非常に高速な通信を確保する必要があります。

Embedded Hypervisorと従来型のハイパーバイザーまたは企業向けハイパーバイザーの比較

従来型のハイパーバイザーまたは企業向けハイパーバイザーは、一般的なデスクトップコンピューターやデスクトップコンピューターのネットワークで動作します。この種のハイパーバイザーは、コンピューターがすべてのハードウェアを効率的に利用できるように調整し、またコンピューターの用途別に区分けを行います。ハイパーバイザーのインストールは、デスクトップコンピューターやネットワークのデプロイ後に行います。

Embedded Hypervisorはそれとは異なります。エンジニアはEmbedded Hypervisorを最初から組み込みシステムに導入します。Embedded Hypervisorは基本的に、システム内のあらゆる機能を調整します。Embedded Hypervisorはデバイスの動作に不可欠な存在になります。

どの時点でEmbedded Hypervisorを使用するか

Embedded Hypervisorは、組み込みデバイスの機能を相互に分離して最適に動作させる用途で、いつでも使用できます。特に、デバイスにリアルタイム要件がある場合に効果を発揮します。

Embedded Hypervisorの例

Embedded Hypervisorにはオープンソースバージョンと商用バージョンがあります。ハイパーバイザーのタイプは、組み込みデバイスの用途に応じて選択します。

オープンソースのEmbedded Hypervisor:

  • Xvisor Hypervisor
    XvisorはオープンソースのType 1ハイパーバイザーであり、特にARMプロセッサーで使用します
  • ACRN Hypervisor
    ACRNはオープンソースのハイパーバイザーであり、特にInternet of Things(IoT)デバイスで使用します。ACRNハイパーバイザーは、Linux、Android、リアルタイムオペレーティングシステムをサポートします。

商用Embedded Hypervisor:

  • QNX Hypervisor for Safety
    QNX Hypervisor for Safetyは、複数のオペレーティングシステムをチップ上で1つのシステムに統合します。このハイパーバイザーは、特に車両用に認証されています。
  • INTEGRITY Multivisor
    INTEGRITY Multivisorも自動車業界でよく使用されているハイパーバイザーであり、共通のハードウェア上で複数のOSを実行する場合に有効です。
  • Nucleus Hypervisor (Siemens)
    Nucleus Hypervisorは、高速起動を必要とする組み込みデバイス用に設計されたType 1ハイパーバイザーです。
  • OKL4 Hypervisor
    OKL4は、General Dynamicsが所有するリアルタイムType 1ハイパーバイザーです。このハイパーバイザーは、Linux、VxWorks、Androidなどのオペレーティングシステムをサポートします。
  • OpenSynergy COQOS Hypervisorは、特に自動車用に適した複雑性が低いEmbedded Hypervisorとして設計された、Type 1ハイパーバイザーです。

Embedded Hypervisorの用途

エンジニアはEmbedded Hypervisorを広範なデバイスで使用できますが、特に自動車業界、医療業界、大規模な産業施設(工場、発電所、炭鉱など)の3つの分野で使用されています。

Embedded Hypervisorの用途

  • 医療業界: 医療機器には一般的に、リアルタイムと非リアルタイムのニーズが混在しています。また、パフォーマンスと動作について厳格な要件があります。医療業界では特に患者情報について厳格なセキュリティが求められています。Embedded Hypervisorはセキュリティ要件に確実に準拠しながら、それらすべてに対応できます。
  • 自動車業界: 乗用車やトラックでは、組み込みシステムとEmbedded Hypervisorが広範に使用されています。ハイパーバイザーによって、インストルメントクラスターとエンターテインメントシステムが1つのハードウェアプラットフォーム上の複数のOS上で動作します。

    Miao Luoは次のように説明しています。「不可欠なものとそうでないものを分けることが、ハイパーバイザーの重要な機能です。自動車のダッシュボードの計器群には、速度やギア、またドライブモードであるかリバースモードであるかなど、非常に重要な情報が集約されています。それらすべてが不可欠な情報であり、インフォテインメント(音楽ソースなど)、不可欠とは言えない情報と分けることが重要です。そのような独立性を確保するには、ハードウェアが1つしかない場合でも、2つのオペレーティングシステムを別個に維持する必要があります。そして緊急性がないシステムでクラッシュが発生しても、他のシステムに影響が及ばないようにしなければなりません」

    ハイパーバイザーは、車両診断など、他にもさまざまなOSタスクを調整できます(QtはGreen Hills Softwareと協力して、運転中に車両のあらゆる状態を把握できる最先端のインストルメントクラスターを設計しました。その詳細をご確認ください)。


  • 産業用途: 工場、発電所、炭鉱、その他の工業施設では、リアルタイム要件がある組み込みシステムや組み込みデバイスでハイパーバイザーが使用されています。専門家は、これらの施設の多くでサイバー攻撃が発生することを懸念しています。Embedded Hypervisorはそのようなニーズにも、マルウェア検出機能で対応することができます。
  • Embedded Hypervisorのその他の用途: Embedded Hypervisorはさまざまな業界と製品で利用されています。スマートフォンメーカーはハイパーバイザーによって、ユーザーが個人用とセキュリティが強化されたビジネス用途の両方でデバイスを使用できるようにしています。PINを入力してクレジットカードやデビットカードを使用する機器でも、Embedded Hypervisorが利用されています。

Embedded Hypervisorによる組み込みシステムの改善

組み込みデバイスと組み込みシステムの多くが、安全性が確保されたハイパーバイザーを必要としています。実際に、Embedded Hypervisorがなければ適切に機能しないシステムは少なくありません。ハイパーバイザーによって、システムの効率性が向上し、セキュリティ要件が満たされ、マルウェアの検出が可能になります。

Qtが実現する最も安全な組み込みデバイス

さまざまな市場で機能安全要件の重要性が高まっています。ハイウェイ、病院、鉄道、あるいは工場でも、安全性向上は当然の要求です。Qtは、機能の安全性が確保された、使いやすい最新の組み込みシステム開発を可能にします。強固なC++を基盤に、Qtはハイパーバイザーや組み込みRTOSをサポートするだけでなく、TÜV NORD認証済みのQt Safe Rendererなど、組み込みデバイスのセキュリティを確実にする有益なツールも提供しています。

Qt 6の詳細と、機能の安全性が確保されたソフトウェアを作成する方法をご覧ください。