日本ソフトウェア科学会第 33 回大会 (2016 年度) 講演論文集

ハイパバイザによる災害警報通知システムの実装方式
大山 恵弘

災害警報をサーバから受信してコンピュータの画面に警報を表示する機能を提供するハイパバイザである DisasVisorを開発している．本稿ではその実装方式，実装の現状，予備実験の結果について述べる．

We are developing DisasVisor, a hypervisor that provides a function to receive disaster warnings from aserver and display notification on the computer screen. In this paper, we describe an implementation schemeof DisasVisor, the current status of the implementation, and the result of a preliminary experiment.

肢はいくつか存在する．まず，災害警報を LAN 経

1 はじめに由で PC やスマートフォンに伝えるシステムが存在

2016 年の熊本地震でも確認されたように，ICT デする [3, 4, 7, 10]．また，災害速報を表示する Web サ

バイスを通じて地震などの災害の警報を緊急に伝達

イトや災害速報を通知する SNS アカウントが存在すすることの重要性はますます高まっている．2016 年

る [12, 17–19]．携帯電話の電波の届かない環境では，

4 月 16 日の熊本地震本震においては，気象庁は最初

有線 LAN や無線 LAN を整備して，インターネットの地震波の検知から 3.9 秒後の 1 時 25 分 14.0 秒にへの reachability だけは最低限確保するようにするこ

緊急地震速報（警報）を発表し，当該地区の人々が地とも多いと思われる．携帯電話の電波が届かない場合震に迅速に対処する活動を助けている [13]．緊急地震には，これらのシステムを利用することが有効であ

速報 [11] は，気象庁が地震計による情報から生成し，る．しかし，これらにも，システムが OS に依存する地方公共団体や携帯電話会社に配信するものである．

問題，ユーザがブラウザを立ち上げておく必要があ

緊急地震速報は，テレビ，ラジオ，防災行政無線，専るという問題，組織内の意識の低いユーザに利用を用の受信端末などによって受信できる．また，携帯電技術的に強制することができないという問題などが話キャリアのサービスにより，携帯電話でも緊急地震あった．

速報を受信できる．

著者は，その問題を解決するために，コンピュー

携帯電話による災害警報の受信に関する一つの問タの画面に災害警報を表示するハイパバイザである

題は，携帯電話が電波圏外となる可能性があることでDisasVisor を提案し，開発を続けてきた [15]．Dis-

ある．地下や壁の厚い建物の奥など，携帯電話の電波

asVisor は OS の種類やバージョンへの依存性が極めの届かない環境で毎日長時間過ごす人々の数も少なくて小さい形で，画面に警報を表示する機能を提供すない．

る．そして，OS の処理からはほぼ独立して動作する

一般の人々が災害警報を受け取るための他の選択ので，ユーザがどんなアプリケーションを利用していAn Implementation Scheme of a Disaster Warning Notification System Based on a Hypervisor.
(This is an unrefereed paper. Copyrights belong tothe Author.)
Yoshihiro Oyama, 筑波大学, University of Tsukuba.

る時でも，警報を表示することができる．DisasVisorはハイパバイザ上で動作する仮想マシンの VRAM 領域（画面のビットマップ情報を格納した領域）を書き換えることによって災害警報を表示する．災害警報

図1

地震警報が表示された画面は DisasVisor が直接サーバとネットワーク通信をし

図2

OS の起動中にロゴの画像を表示した画面描画したら，警報画像は消える．て受け取り，そこに OS が介在することはない．つま図 2 は DisasVisor が元にした ADvisor により，り，DisasVisor は警報情報の受信から警報の画面表

Windows 8.1 の起動途中にロゴの画像を表示した画示までを OS の助けを借りずに実行する．DisasVisor

面を撮影した写真である．OS が起動途中であるにもは BitVisor [6] を拡張して作られたハイパバイザでかかわらず画像が表示されている．ハイパバイザを用ある ADvisor [5, 9, 16] をさらに拡張して作られていいることにより，このように，OS の起動途中やシャッる．著者は文献 [15] で DisasVisor の設計の概要を提トダウン途中の間にも画像を表示することができる．

示したが，本稿では主に DisasVisor の実装方式，実ADvisor のこの特徴は，警報が表示されない時間を装状況，予備実験の結果について述べる．

最小化するのに役立つ．

2 システムの概要

3 実装

ユーザはまずハイパバイザである DisasVisor を起

3. 1 BitVisor

動し，その上で（ゲスト）OS を起動する．典型的にDisasVisor は BitVisor 1.4 を拡張して実装されては会社などの組織のシステム管理者が各ユーザの PCいる．BitVisor はハードウェア上で直接動作し，一つにインストールされた DisasVisor を管理し，各ユーのゲスト OS だけを動かすハイパバイザである．Dis-ザが，その上で動く OS を管理する．すなわち，シasVisor が元にしている BitVisor 上では，Windows，ステム管理者が DisasVisor の管理者権限を持ち，OSMac OS，Linux，FreeBSD などの様々な OS が動作の管理者権限を各ユーザが持つ．

することが確認されている．BitVisor の運用においシステム管理者は災害警報の情報を受信するためては，ホスト OS は存在しない．物理ハードウェアはの中間サーバを運用する．中間サーバは公的組織など

基本的にはゲスト OS のデバイスドライバによって操のサーバから災害警報の一次情報を受け取る．各ユー作される．一部の I/O 操作は BitVisor が捕捉し，流ザの PC で動いている DisasVisor は中間サーバと通れるデータの検査や改変などの処理を適用する．これ

信して，DisasVisor 用に加工された災害警報を受けにより BitVisor はストレージ暗号化，VPN，OS の取り，PC の画面に警報を表示する．

ネットワークブートなどのサービスを実現する．

DisasVisor が地震警報を表示した画面のスクリーンショットを図 1 に示す．警報の画像はその時点での3. 2 画像描画機構

画面に上書きされるので，どのウィンドウよりも上に

BitVisor にはバージョン 1.3 以降から，VRAM 領表示される．OS が警報画像の上にウィンドウを再び域の書き換えによる画面更新機能（ADvisor 機能）が内包されている．DisasVisor もこの機能を利用している．の捕捉と検査を実現し，それによって警報情報の受ADvisor 機能は，描きたい画像の個々のピクセル情信を実現することとした．UDP の所定のポートを報（RGB 値）をグラフィクスハードウェアの VRAMDisasVisor 専用とし，そのポートに送信された通信領域内の適切な場所に書き込むことによって，画面をパケットはすべて DisasVisor が中身を検査するよう更新する．VRAM 領域は通常，メモリマップト I/Oにしている．

により仮想アドレス空間に対応付けられるので，ピク具体的には，BitVisor のソースコードツリーのセル情報の書き込み処理は，単にメモリに値を書き込

vpn/kernel.c の中の vpn premap PhysicalNicRecv

む処理で実装される．解像度情報は ADvisor 機能が関数を修正している．物理ネットワークハードウェア

グラフィクスハードウェアから取得する．

が通信パケットを受信すると，まず VPN のモジュー

DisasVisor の画像描画機構に関連する BitVisor のルによって VPN 処理が行われ，処理後のデータがこビルド時の設定としては，ADvisor 機能を利用するの関数に渡される．この関数の変数に，受信したパために，Intel VGA のドライバを有効にしている．

ケットの数や受信したパケットのデータへのポインタ

現在，ADvisor 機能は Intel のオンボードグラフィが入っているため，DisasVisor はそれらを利用してクスハードウェアのみに対応している．したがって，いる．まずパケットの IP ヘッダを検査して UDP パ

DisasVisor も同ハードウェアのみへの対応となってケットかどうかを検査し，その後，パケットの UDPいる．独立した GPU を備えたマシンには対応していヘッダを検査して，パケット長，ポート番号，ペイない．

ロードデータなどを得ている．
パケットの受信部分にコードを挿入しており，パ3. 3 通信機構

ケットを受信や捕捉するデーモンを新たに動かしてDisasVisor はゲスト OS に依存しない形で中間サーいるわけではない．よって，デーモンを動かすオーバ

バから警報情報を受信する必要がある．これを実現ヘッドは加わらない．ただし，受信したパケットをハするためには複数の選択肢がある．当初は，TwitVi-イパバイザが捕捉してプロトコルやポートを検査す

sor [14] のコードを元にハイパバイザ独自の通信機能るオーバヘッドは加わる．

を開発し，利用することを検討した．TwitVisor は現在の実装では，パケットの捕捉と検査の後，そのBitVisor が OS とは独立に Twitter のサーバと通信

パケットは従来と同じくゲスト OS に渡される．すしてツイートを送信するシステムである．DisasVisor

なわち，DisasVisor はネットワーク処理に関しては，の開発にあたっては，互換性や維持の容易さを向上さオーバヘッドを考えなければ，透明な存在である．しせるために，BitVisor に追加するコードを最小限にかし，DisasVisor 向けのパケットをゲスト OS が受したいと考えている．しかし，TwitVisor のコードを信するようになっていると，実害はほとんどないと予利用すると，最小限の追加で済ませるための作業に手想されるものの混乱の元となる可能性はある．自分間と時間がかかることが予測されたため，この方法はに向けられたものであると DisasVisor が判断したパ断念した．

ケットについては，ゲスト OS に渡さずに破棄するこ

TwitVisor のコードの代わりに，lwIP [2] などのコとも検討している．

ンパクトな通信ライブラリを BitVisor に組み込む方

現在は DisasVisor は独自のポート番号を使うので，法も検討した．しかし，コンパクトとはいえある程度ファイアウォールの設定を変更してそのポートは開けの分量のコードが含まれており，BitVisor との統合ておく必要がある．

は単純な作業ではないと判断したため，この方法も断念した．

DisasVisor の通信機構に関連する BitVisor のビルド時の設定としては，VPN 機能を利用するために，最終的には，BitVisor の VPN 機能の処理部分にVirtual Ethernet ドライバを有効にしている．また，若干のコードを挿入することにより，受信パケットVPN のモードとしては L3Trans を指定し，暗号化無しの L3-VPN を用いている．のいくつかの災害について，警報のテンプレート画像の情報を，DisasVisor のバイナリイメージの中に配3. 4 DisasVisor 通信プロトコル列データとして埋め込んでいる．また，警報の中に表DisasVisor は現状では単純な通信プロトコルを用示される文字列については，表示可能 ASCII 文字のいる．今後，実装の進展に合わせて拡張することを計画像の情報を，やはり配列データとして埋め込んでい画している．DisasVisor に対して中間サーバが送信る．警報画像を表示する際には，指示された災害の警する警報情報のデータの例を以下に示す（見やすくす

報のテンプレート画像の上に，活版印刷のように文字るために，適宜，改行を追加挿入している）．の画像を 1 文字 1 文字配置していき，全体として意DISASVISOR 1.0
1

図通りの画像が表示されるようにしている．
現在 DisasVisor が持っているのは表示可能 ASCII

200 120

文字の画像だけであり，日本語の文字などの他の文字

Magnitude 5.5を表示することはできない．DisasVisor に送られた

Tsukuba, Ibaraki: intensity 5 lower

そのような文字に対しては，何も表示されないか，文Kashiwa, Chiba: intensity 4字化けした文字が表示される．

Chiyoda, Tokyo: intensity 3
先頭の DISASVISOR 1.0 は DisasVisor 向けの通信で

3. 6 災害警報を提供するサーバあることを示すヘッダであり，1.0 はプロトコルの中間サーバは，災害警報の一次情報を提供するサーバージョンである．次の 1 は災害の種類を示す番号

バから情報を受け取り，加工した情報を DisasVisorである．1 は地震，2 は洪水，... などのように番号に送信する．現状では，中間サーバは実装中である．

が決められているので，それに合わせて番号を入れ一次情報の提供元としては，当初は EqCare Type-る．その次の 200 と 120 は災害警報の画像を表示すG [1] を検討していた．これは緊急地震速報を元にしる画面上の場所である．画面の左上隅から右に 200た地震情報を WebSocket API で提供するサービスでピクセル，下に 120 ピクセルの場所を指定している．

ある．しかし，経済的コストの理由から，他のサービ

Magnitude 以降は災害警報の画像の中に表示する文スを利用することを現在は検討している．

章である．

まずは実装を単純化および低コスト化してシステ

実装の単純化と処理の高速化のため，現在のプロムをいち早く稼働させるために，万人が利用できる災トコルでは，警報情報のデータの長さを 1 つの UDP

害警報関連 Web サービスのどれかを利用することをパケットに収まる範囲に制限している．今後，複数パ検討している．例えば，防災科学技術研究所が提供すケットにまたがるデータも扱えるようにすることも考る Web サービスである強震モニタ [19] は，全国の強えていく．

震観測網（強い揺れを記録するための地震計のネットワーク）の地震計で観測されたほぼ現在の揺れの情報

3. 5 警報の画像の生成を配信している Web サービスである．最大加速度やDisasVisor はハードウェア上で直接動いているた

リアルタイム震度といったデータを地図上に表示し 2め，他のハイパバイザが用いているような，ホスト秒毎に更新している．ただし，このような Web サー

OS が提供するサービスを一切使うことができない．

ビスを利用する際には，データの再配布に関するライ

DisasVisor には災害警報の画像を保存しておくためセンスに注意する必要があり，その詳細について調査のファイルシステムも，DisasVisor に送信された警を進めている．

報の文章の文字列を表示するためのフォント情報もない．
そこで，災害警報画像については，地震や洪水など

表1

実験に用いた PC の仕様

CPUMemory
ChipsetGraphics hardware
Network hardware
OSDesktop environment
Screen resolution

Intel Core i5-3470
8 GB
Q77 Express
Intel HD 2500
Intel 82579LM
CentOS 6.6
2.6.32-504.el6.x86 64
GNOME
1920 × 1200

災害警報をメールで送信するシステム [8] や，災害警報をブラウザ内に表示する Web システム [18] が多く存在する．これらは極めて有用であるが，ユーザがメールを読んだり，その Web システムをブラウザ内で表示していたりしないと，警報が伝わらないという欠点を持つ．また，メールベースのシステムには，伝達の速度の低さや伝達の信頼性の低さの問題がある．
提案システムでは，ユーザが PC の画面を見ている限り，どんなアプリケーションを利用していても，警報

3. 7 ハードウェアへの依存をユーザに伝えることができる．また，中間サーバのDisasVisor の OS への依存性はかなり小さくなっ実装方式にもよるが，基本的にはメールベースのシスているが，グラフィクスハードウェアやネットワークテムよりも伝達が迅速である．

ハードウェアには強く依存している．また，チップセットや CPU にも，対応しているものとしていない

6 まとめと今後の課題ものが存在する．

災害警報をサーバから受信してコンピュータの画面に警報画像を表示する機能を提供するハイパバイ

4 予備実験

ザである DisasVisor の実装方式，実装状況，予備実

DisasVisor が通信パケットを検査し，DisasVisor

験の結果について報告した．今後の課題は，中間サー通信プロトコルに沿ったデータを解釈して災害警報

バの実装を完了させ，実際の災害情報を高い即時性を正しく表示できるかどうかを確認する実験を行っで DisasVisor が受信，通知できるようにすることでた．DisasVisor を動作させるのに用いた PC の仕様ある．そして，実際の災害の発生時におけるシステムを表 1 に示す．の挙動や反応時間などを観測して，システムの有効性LAN 内にある別の PC からこの PC に対して，を評価していきたい．

DisasVisor 通信プロトコルに沿ったデータを所定の謝辞

UDP ポートに送信した．その結果，意図通りの画像

本研究は JSPS 科研費 26330080 の助成を受けてを DisasVisor が画面に表示したことを確認した．先いる．に示した図 1 は，この実験の結果のスクリーンショッ
トであり，図 2 は，同じ PC でマルチブートを用いて

参 考 文 献ADvisor 上で Windows 8.1 を起動して撮影した写真[ 1 ] IIJ エンジニアリング: EqCare Type-G, https://doc01.pf.iij-engineering.co.jp/pub/sdkdoc/.
[ 2 ] lwIP, http://savannah.nongnu.org/projects/lwip/.
[ 3 ] NTT コ ミュニ ケ ー ション ズ: 緊 急 地 震 速
報 配 信 サ ー ビ ス, http://www.ntt.com/business/services/application/risk_management/jishinsokuho.
html.
[ 4 ] NTT レ ゾ ナ ン ト: 防 災 ソ リュー ション, https://www.nttr.co.jp/showcase/case5.html.
[ 5 ] Oyama, Y., Ogawa, N., Kawasaki, Y., and Yamamoto, K.: ADvisor: A Hypervisor for Displaying Images on a Desktop, Proceedings of the 2ndInternational Workshop on Computer Systems andArchitectures (CSA ’14), 2014, pp. 412–418.
[ 6 ] Shinagawa, T., Eiraku, H., Tanimoto, K.,
Omote, K., Hasegawa, S., Horie, T., Hirano, M.,である．なお，DisasVisor による処理によってゲスト OS がクラッシュするなどの障害は生じなかった．

5 関連システム
The Last 10-Second [10] や SignalNow [7] は，地震の発生をポップアップや音で PC のユーザに通知するアプリケーションであり，震源を地図上で示す機能や，ユーザの位置に地震が到達するまでカウントダウンを行う機能を有している．これらのシステムはWindows にしか対応しておらず，Mac OS や Linuxでは利用できない．

Kourai, K., Oyama, Y., Kawai, E., Kono, K., Chiba,S., Shinjo, Y., and Kato, K.: BitVisor: A Thin Hypervisor for Enforcing I/O Device Security, Proceedings of the 2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE 2009), 2009, pp. 121–130.
[ 7 ] SignalNow, http://www.kobayashiyoko-com.jp/sn/.
[ 8 ] つくば市: 災害・防災メールサービス, http://www1.
city.tsukuba.ibaraki.jp/MailSys/disaster/mail.
[ 9 ] 小川夏樹, 大山恵弘: ADvisor:ゲスト OS の操作に連動した広告を表示するハイパバイザ, 情報処理学会研究報告, Vol. 2011-OS-118, 2011.
[10] 株 式 会 社 ウェザ ー ニュー ズ:
The Last
10-Second, http://weathernews.jp/quake/html/
urgentquake.html.
[11] 気象庁: 緊急地震速報, http://www.data.jma.go.
jp/svd/eew/data/nc/.
[12] 気象庁: 緊急地震速報（警報）発表状況, http://

www.data.jma.go.jp/svd/eew/data/nc/pub_hist/.
[13] 気象庁: 「平成２８年（２０１６年）熊本地震」について（第１５報）−平成２８年４月１８日２０時４２分頃の熊本県阿蘇地方の地震−, http://www.jma.go.
jp/jma/press/1604/18c/201604182215.html, 2016.
[14] 島田恭平, 芹川大地: TwitVisor, BitVisor Summit,
2012.
[15] 大山恵弘: ハイパバイザによる災害警報通知, 第 14回情報科学技術フォーラム講演論文集, 2015, pp. 213–216.
[16] 山本航洋: ネットワークによる ADvisor 機能の拡張, BitVisor Summit 2, 2013.
[17] 地 震 速 報, https://twitter.com/earthquake_jp/.
[18] 防 災 科 学 技 術 研 究 所: J-RiSQ 地 震 速 報, http://www.j-risq.bosai.go.jp/report/.
[19] 防災科学技術研究所: 強震モニタ, http://www.
kyoshin.bosai.go.jp/kyoshin/.