BitVisor

BitVisor の vmmstaus の CLI 版クライアントを作ってみた

More than 1 year has passed since last update.

はじめに

BitVisor には vmmstatus という機能があります.
その機能を使うための CLI 版クライアントアプリを作ったという話です.

vmmstatus とは?

BitVisor には,vmmstatus という機能があります.
これを使うと,VMExit の数などの情報をゲスト OS から簡単に取得することができるます.

BitVisor Summit 3 で株式会社イーゲルの榮樂様の発表中で少し説明がありました.
https://www.bitvisor.org/summit3/slides/bitvisor-summit-3-02-eiraku.pdf

しかし現在,情報を取得して表示するためのクライアントが GUI 版 (Windows 版と GTK 版) しかないようです.
BitVisor 体験をするためには,GUI 版の方が見栄えがして良さそうなのですが,CLI 環境が大好きな僕としては CLI 版が欲しいなと思いました.
また,CLI に出力できると,テキストファイルに落としたり,出力をパイプで加工したりなどいろいろできて便利かなと思います.

そういった理由をつけて,とりあえず CLI 版を作ってみました.

CLI 版

とは言っても,GUI 版よりも圧倒的に簡単です.
GUI 版の要らない部分を削って printf にして終わりです.

tools/ ディレクトリ以下に適当なディレクトリを作って,以下のページにある Makefile とvmmstatus-cui.c をおいてビルドしてすればよいはずです.

https://bitbucket.org/snippets/ftakaaki/ze4yXM/vmmstatus-cuic

BitVisor 側の設定

CLI 版に限りませんが,vmmstatus を使う場合ときに注意する点があります.
BitVisor のビルド時の設定を変えないといけないのですが,make config で有効にする以外に,defconfig 内の vmm.status = 1 を追加しないとしないといけません.
(デフォルトの defconfig に vmm.status というフィールドがないですね...)

具体的は変更は,上記のページに diff がありますので,それを参考にしてください.

あとは,BitVisor 本体をビルド&インストールして,先ほどの CLI 版を起動してみましょう.

実際に使ってみる

こんな感じ

image.png

ちなみに

GUI 版を使ったことないんですよね...
なんかビルド面倒そうなので,バイナリが配布されたりすると BitVisor 体験が簡単にできていいかもしれませんね.

おわりに

vmmstatus の CLI 版を作った話でした.
時間があれば,vmmstatus の中身の話もそのうち書けるといいですね.