オープンソースの仮想化環境を用いた
TOPPERSハイブリッドシステム
邑中 雅樹(合資会社もなみソフトウェア)

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

NDAの縛りがありまして…

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

Agenda• 背景 - 組込みシステムの動向• Xenハイパーバイザの概要説明• Xenを用いたシステムの実例
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

オーバビュー編「ハイブリッドシステムにおけるTOPPERS」
邑中雅樹(TOPPERSプロジェクト/合資会社もなみソフトウェア)

TOPPERSカンファレンス2008の続編
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

世間の動向• TOPPERS採用のメリット• (オープンソースでタダだから)• 高信頼への継続的な取り組み• 確かなリアルタイム性能• 省リソース
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

世間の動向• 大規模化

出典：2006年度 組込みシステムにおけるリアルタイムカーネルの利用動向に関するアンケート調査報告書(トロン協会)

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

世間の動向• (相変わらず)多種多様なOS

出典：2006年度 組込みシステムにおけるリアルタイムカーネルの利用動向に関するア
ンケート調査報告書(トロン協会)

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

世間の動向• TOPPERS導入に踏み切れない理由• (オープンソースでタダだから)• デバドラ，ミドルウェアの不足• 大規模アプリケーションの実績不足
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

TOPPERSだけではもったいない?
LCD, タッチパネル
専用システムなら，TOPPERS/FMP
AC97, USB, …
もったいない…．
でも，デバイスドライバどうするの？とはいえ…
過去の資産が…

リアルタイム性が…

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

ハイブリッドOSへの期待Core1TOPPERS

Core2Core3Core4

Rich (but not realtime) OS

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

世間の動向• マルチコアと仮想化• 組込みシステムへのマルチコアの光と影 (SWEST7 - 2005/08/26)
基礎技術的には• マルチタスク/マルチコア時代の並列処理技術 (Interface誌 2007/11)• そろそろ雑誌も扱わない成熟期？
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

Xenハイパーバイザ

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

Xenとは？
• ハイパーバイザ• 一つのハードウェアで複数のOSを！
• 準仮想化と完全仮想化の2つを提供• 準仮想化 - カーネルの変更必要• 完全仮想化 - カーネルの変更不要
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

Xenの開発とライセンス• ケンブリッジ大学の研究プロジェクト→ XenSource, Inc → Citrix Systems• オープンソースソフトウェア• GPLによる公開
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

GPL？
• 高田教授はGPLは組込みでは使いづらいと言ったではないの？

• Xen自身はGPL• でも，その配下で動作するカーネル
はGPLの影響を受けない．

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

Xenの技術的な特徴• 各OSはドメインと呼ばれる箱の中で動作．

Domain-U

完全仮想化
ドメイン
Intel VT
AMD-V

準仮想化
ドメイン

Domain-0Linux,
BSD, …

Xenハイパーバイザ

ハードウェア層
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

Xenの技術的な特徴• Xen自身はデバイスドライバを持たない• ドメイン0を担うOSに回送するだけ• …とはいっても，例外はある．
(完全仮想化時の割込みやタイマ)

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境ET2008 TOPPERS Session便利な点，問題点
実環境との互換性•実機と同じバイナリが動く•ハードウェアの力で，(ほぼ)等速実行•計算資源の調停は(ほぼ)ハイパーバイザ任せにできる技術の未成熟• CPU仮想化は，まだIntelとAMDが凌ぎを削っている状態• ハイパーバイザのスケジューリングも研究の余地あり?

• 世間の目がまだサーバ側に向オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

いている

ET2008 TOPPERS Session便利な点，問題点• Xenはサーバ用• 組込みで使えるかどうかは未知数

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

未知なものは既知にする … 人柱

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

TOPPERSを載せてみる• sample1の動作• 無変更でJSPカーネルが動作• IIMPやHRPも動作• ただし…
• IA32依存部は公式リリースに無い．
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

TRON夢の共演
TOPPERSとT-Engine(の先祖)

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

構成イメージアプリ
Linux(Dom0)

JSPカーネルGUI OSWindowsXen
VT対応IA32プロセッサ／PC
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

デバイスアクセス• 何の改変もしないカーネルでは全てのデバイスアクセスはソフトウェアエミュレーションになる• (RTOSの視点では)
遅くて使い物にならない

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

qemu-dm経由
Linux(Dom0)
qemu-dmアプリ
JSPカーネルGUI OS
Windows/dev

Xen
VT対応IA32プロセッサ／PC
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

準仮想化ドライバ• Xenには，ファイルシステムとネットワークの抽象化層がある(準仮想化用)• Xenの完全仮想化環境でも，準仮想化用の機能が使える．

• 仮想化された環境からはPCIデバイスに見える
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

準仮想化対応
qemu-dmを経由しない
Linuxアプリ(Dom0)
qemu-dm JSPカーネル

GUI OS
Windows/dev

Xen
VT対応IA32プロセッサ／PC
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

課題:more devices• Xenを修正せずに実現は不可能• 特定のUSBデバイスだけ繋ぎたい• I/Oポートをダイレクトに叩きたい• Xenやqemu-dmがサポートしないデバイスに繋ぎたい

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session

まとめ• サーバ用と思われているXenでTOPPERSを動かしてみました．

• カーネル単体は問題なく使えます．
• デバイス周りが課題です．
• ただし解決不可能ではありません．
オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境ET2008 TOPPERS Session

商売のネタを大盤振る舞いしてしまいました

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Sessionは，この先なにやる？
• Xenの組込み向け最適化• JSPカーネル自身のハイパーバイザ化• BitVisor (http://www.securevm.org)が参考になる?

オープンソースの仮想化環境を用いた，TOPPERSハイブリッド環境

ET2008 TOPPERS Session