コネクテッド・カーに採用される 仮想化osのデバッグ手法 · xen dom0...
TRANSCRIPT
![Page 1: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/1.jpg)
日本ローターバッハ株式会社
技術サポート
香川貴人
2017年7月12日
コネクテッド・カーに採用される仮想化OSのデバッグ手法
www.jp.lauterbach.com
欧米の車載機器メーカで採用が進むハイパー
バイザOSに対する取り組み
![Page 2: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/2.jpg)
2 / 38
Hypervisorシステムのデバッグ
![Page 3: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/3.jpg)
3 / 38
ハイパーバイザシステムとデバッグ
ハイパーバイザとは
ハイパーバイザシステムのデバッグ
デモ
アジェンダ
![Page 4: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/4.jpg)
4 / 38
組込みデバッグツールの世界的なリーディングカンパニー
1979年ドイツミュンヘン近郊にて設立
JTAGデバッガ、ICE(In Cirtuit Emulator)の開発、製造、販売およびサポート
中国、フランス、イタリア、日本、チュニジア、イギリス、アメリカに営業/技術サポート拠点
従業員数:ワールドワイドで約120 名
![Page 5: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/5.jpg)
5 / 38
製品コンセプトと強み
モジュラー型の製品構成
80種以上のCPU/DSPアーキテクチャをサポート
様々なホスト環境、コンパイラ、OS、IDEに対応
全製品に共通のGUI (TRACE32 PowerView)
![Page 6: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/6.jpg)
6 / 38
製品ポートフォリオ
![Page 7: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/7.jpg)
7 / 38
ハイパーバイザシステムとデバッグ
ハイパーバイザとは
ハイパーバイザシステムのデバッグ
デモ
アジェンダ
![Page 8: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/8.jpg)
8 / 38
What is a hypervisor?
出典:ウィキペディアによると
“Hypervisor”はコンピュータソフトウェアの一部で、Virtual Machineを生成、実行するファームウェアまたはハードウェア
Hypervisorが1つまたはそれ以上のVirtual Machine を実行しているコンピュータはホストマシンとして定義される
各Virtual MachineはGuest Machineと呼ばれる
Hypervisorはゲストオペレーティングシステム(OS)に仮想的な動作環境を提供し、
ゲストOSの実行を管理
様々なOSからなる複数の
インスタンスが仮想化された
ハードウェアリソースを共有
![Page 9: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/9.jpg)
9 / 38
Why and where to use a hypervisor?
1つのハードウェアで異なるユースケースを並列処理
1つのハードウェアに複数機能を実装:高い費用対効果
安全性:ゲストOSはお互いにブロック
信頼性:Hypervisorがゲストを監視し、
それらを再実行
![Page 10: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/10.jpg)
10 / 38
Why and where to use a hypervisor?
ユースケース:
完全に異なる機能を実現する場合
セキュリティのために分離しなければならい場合
異なるOSを並列に実行
![Page 11: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/11.jpg)
11 / 38
Why and where to use a hypervisor?
多コア化:
ARMのCortex-A5x/A7x
インテル社 Core i9は18コア/36スレッド
CPUリソースをより効果的、効率的に使用するためにHyperviosrを採用
Core0
Core1
Core2
Core3
Core4
Core5
Core6
Core7
![Page 12: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/12.jpg)
12 / 38
Which hypervisor types to exist?
ハードウェアによるHypervisor
Paravirtualization (準仮想化)
Hypervisors (ハードウェアによる仮想化)
Type 1 hypervisor
Type 2 hypervisor
![Page 13: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/13.jpg)
13 / 38
Which hypervisor types to exist?
ハードウェアによるHypervisor
全てハードウェアで管理
例:ARM Trust Zone およびHypervisor: 各ゾーンは、それぞれのレジスタバンクおよびMMUを有する
デバッグツール上では各アクセスクラスを用意
H: Hypervisor
Z: Secure Zone
N: Non-Secure Zone
![Page 14: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/14.jpg)
14 / 38
Which hypervisor types to exist?
Paravirtualization(準仮想化): ソフトウェアhypervisor
ハードウェアによるサポートはなし:Hypervisorソフトウェアによって全て管理
完全なMMUサポート:ゲストOSのプロセスマッピングも含めてHypervisorが管理
各ゲストOSはHypervisorにポーティング
デバッグにはHypervisorとゲストの両方をサポートするための特別な対応が必須
例:Sysgo社 paravirtualized PikeOSと ElinOS (ポートされたLinux)
![Page 15: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/15.jpg)
15 / 38
Which hypervisor types to exist?
Hypervisor (ハードウェアによる仮想化)
Hypervisorは、VMの管理のためにハードウェアを利用
ゲストOSはポーティングの必要なし
Hypervisorはペリフェラル、割り込みおよびMMUへの特権アクセスを管理
各ゲストごとにMMUステージ
ハードウェアサポートの例:
ARM Virtualization Extension
Intel X86 Virtual Machine Control Structure
PowerPC Embedded Hypervisor
![Page 16: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/16.jpg)
16 / 38
Which hypervisor types to exist?
“Type1” Hypervisor
ネイティブ型もしくはベアメタル型
Hypervisorはホストハード上で直接動作
例:Xen
Xen がシステム上で動作するOS
“Dom0”:Linuxが動作する特権ゲスト
“DomU”:ユーザゲスト
その他の例
Wind River Hypervisor
LynxSecure
![Page 17: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/17.jpg)
17 / 38
Which hypervisor types to exist?
“Type 2“ Hypervisor
ホスト型
従来のOS内で動作するHypervisor
例: KVM
KVMはLinuxホスト内のカーネルモジュール
KVMがユーザOSを管理
その他の例
Jailhouse
QEMU
VMWare
VirtualBox
![Page 18: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/18.jpg)
18 / 38
What is virtualized ?メモリ
ハードウェアベースの仮想化では2段階でメモリマネジメント
ゲストは物理メモリを持っていると思っているけれども, 実際には中間的なアドレスにアクセス
Hypervisorが中間アドレスを実際の物理アドレスに変換
Hypervisorによる変換はVMに対し透過
ペリフェラル
I/Oアクセスおよび割り込みはHypervisorによって管理され、VMに送られる
Hypervisorは専用I/Oおよび割り込みにVMが直接アクセスするのを許可する場合もある
![Page 19: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/19.jpg)
19 / 38
Debugger must know how hypervisors work
ハードウェアによるHypervisor
Paravirtualization (準仮想化)
Hypervisors (ハードウェアによる仮想化)
Type 1 (ネイティブ型、ベアメタル型)
Type 2 (ホスト型)
メモリおよびI/Oアクセス
各コアの仮想化技術
![Page 20: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/20.jpg)
20 / 38
ハイパーバイザシステムとデバッグ
ハイパーバイザとは
ハイパーバイザシステムのデバッグ
デモ
アジェンダ
![Page 21: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/21.jpg)
21 / 38
Influence to debugging
ランモードデバッグ (GDB など)時の影響
ストップモードデバッグ (JTAGデバッガ)時の影響
![Page 22: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/22.jpg)
22 / 38
Influence to debugging
ランモードデバッグ (例:GDBなど)
デバッグインタフェース(シリアルやイーサネット通信など)はゲストに繋がっている
デバッグ自体はHypervisor非依存。特別な対応は不要。
見えるのはこのデバッグ対象だけ
![Page 23: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/23.jpg)
23 / 38
Influence to debuggingストップモードデバッグ ---ターゲットを停止
全てのゲストを含むシステム全体が停止
停止させたとき、あるゲストがアクティブ→ カレントゲスト
「カレントビュー」ではカレントゲストのみを表示
ターゲットアドレス
シンボルアドレス = 仮想アドレス = ゲストOSのアドレス
ゲストOSは仮想アドレスを中間アドレスに変換
中間アドレスはゲストにとって物理アドレス、だけれどもHypervisorにとっては仮想アドレス
Hypervisorは中間アドレスを物理アドレスに変換
→仮想、中間、物理の3つの異なるアドレッシングスキーム
→ ゲストOSとHypervisor の2つの完全なMMUステージ
![Page 24: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/24.jpg)
24 / 38
Influence to debuggingメモリアクセス
基本的にデバッガがアクセスできるのは:
物理アドレス領域
カレントゲストの中間アドレス領域
カレントゲスト内のカレントプロセスの仮想アドレス領域
その他のゲストやプロセスにアクセスできるようにするには、デバッガがHypervisorのMMU変換と全てのゲストOSのことを分かっている
→ Hypervisor + OS Awareness
![Page 25: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/25.jpg)
25 / 38
ハイパーバイザシステムとデバッグ
ハイパーバイザとは
ハイパーバイザシステムのデバッグ
デモ
アジェンダ
![Page 26: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/26.jpg)
26 / 38
What means “Hypervisor Awareness” ?
仮想化されたシステム = たくさんのマシン
各マシンは独自のレジスタ, MMU変換, ブレークポイント, シンボル, OS, タスク・・・などもっている
“Hypervisor Awareness”は以下のマシンを識別
ホストマシン (Hypervisorを実行)
全てのゲストマシン
そして同時に全てのマシン
![Page 27: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/27.jpg)
27 / 38
What means “Hypervisor Awareness” ?
![Page 28: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/28.jpg)
28 / 38
Hypervisorデバッグデモ
ターゲットボード
LeMaker Hikey – Cortex-A53 64-bit octa core with up to 1.2GHz
ターゲットOS
Xen
Dom0 (ゲストOS 1)
Linux (ゲストOS 2)
FreeRTOS (ゲストOS 3)
デバッグツール
TRACE32 PowerDebug + ARMv8用デバッグプローブ
ターゲット接続コネクタ:MIPI-10 (ハーフピッチコネクタ)
![Page 29: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/29.jpg)
29 / 38
Hypervisorデバッグデモ
JTAGデバッガを接続した
Live Demo
![Page 30: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/30.jpg)
30 / 38
Hypervisorデバッグデモ
全ての仮想マシンをリスト表示
Live Demo
![Page 31: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/31.jpg)
31 / 38
Hypervisorデバッグデモ
仮想マシン、スペース及びタスクをツリー表示
Live Demo
![Page 32: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/32.jpg)
32 / 38
Hypervisorデバッグデモ
全仮想マシン上の全スペースを一覧表示
Live Demo
![Page 33: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/33.jpg)
33 / 38
Hypervisorデバッグデモ
指定したタスクのスタックフレームを表示
Live Demo
![Page 34: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/34.jpg)
34 / 38
まとめ
組込み分野でも、SoCのマルチコア化およびリソースの有効活用にともないHypervisorの採用が増加
従来通りの組込み開発特有の高度なデバッグ機能を提供するJTAGデバッガは必須
Hypervisor Awareness で、従来のデバッグ機能を継承しつつ、仮想化環境のマルチOSデバッグを実現
![Page 35: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/35.jpg)
35 / 38
LDRA単体テストツールと統合
実機レベルのテスト実行とカバレッジ解析を自動化
![Page 36: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/36.jpg)
36 / 383636
MISRA-C, CERT C コーディング規約
MCDC, 関数コールカバレッジ
ダイナミックデータフローカバレッジ
要件~コード / トレーサビリティ
単体テスト自動化
セキュリティと機能安全の検証を支援
![Page 37: コネクテッド・カーに採用される 仮想化OSのデバッグ手法 · Xen Dom0 (ゲストOS 1) Linux (ゲストOS 2) FreeRTOS (ゲストOS 3) デバッグツール TRACE32](https://reader035.vdocuments.net/reader035/viewer/2022071223/6085432dc2c7053e433a7b73/html5/thumbnails/37.jpg)
THANK YOU!
日本ローターバッハ株式会社
〒222-0033
神奈川県横浜市港北区新横浜3-8-8
日総第16ビル4F
[お問い合わせ]
Mail: [email protected]
Tel: 045-477-4511
www.jp.lauterbach.com