仮想化を使用すると、Android Automotive OS(AAOS)の単一または複数のインスタンスを、他の自動車用オペレーティング システム(インストルメント クラスタや、自動車のシステム オン チップ(SoC)で先進運転支援システム(ADAS)を実行している OS のインスタンス)とともに、ゲスト仮想マシン(VM)として実行できます。これは、オープン標準ベースの仮想化フレームワークである VirtIO を利用することで実現できます。VirtIO は確立されたインターフェースを提供し、AAOS を共通の仮想化プラットフォームに対して実行できるようにします。これにより、AAOS ゲスト VM を異なるハイパーバイザ システムやハードウェア プラットフォーム間で移植できるようになります。
![AAOS 仮想化アーキテクチャ](https://source.android.com/static/docs/devices/automotive/images/trout_overview_01.png?hl=ja)
自動車のユースケースを可能にするため、VirtIO の仕様が拡張され、virtio-snd
(オーディオ用)、virtio-scmi
(センサー、電源状態管理、クロック管理、パフォーマンス管理用)、virtio-video
(再生用)などのデバイスが追加されました。また、これらのデバイスに対応する VirtIO ドライバも Linux カーネルに追加されています(virtio-snd driver
、IIO SCMI センサー ドライバ、virtio-video driver
ドライバ)。
AAOS は、次のような仮想化サブシステムをサポートする、trout という参照デバイスを提供しています。
- オーディオ
- Dumpstate
- 拡張ビューシステム(EVS)
- ガレージモード
- グラフィック
- センサー
- タッチスクリーン入力
- 車両 HAL
- Bluetooth
- グローバル ナビゲーション衛星システム(GNSS)
AAOS の仮想化について詳しくは、以下の記事をご覧ください。