仮想化ソフトといえば、1つのコンピュータ上で複数のコンピュータを動作させるものである。サーバーなどでコンピュータの資源を効率良く利用したり、複数のOSを動作させたりしたい場合に使われている。しかし、使い方はそれだけではない。

 筆者が担当する日経Linuxの連載「PT2での開発手法が分かる、ハード解析によるLinuxドライバの作り方」では、仮想化ソフトの意外な使い方が紹介されている。仮想化ソフトの1つである「QEMU」を“ハードウエアドライバを移植するためのソフトウエアのモニタリング”として利用する方法である。この連載を執筆している石川智明氏は、PT1(後述)のLinuxドライバの開発者である。

仮想化ソフトでアプリ入出力を確認

 仮想化ソフトをソフトウエア開発に利用する例はいろいろある。例えば、複数のOS、複数のWebブラウザ、バージョンの違うOSで、開発中のアプリケーションの動作を確認する場合だ。また、クライアントソフトとサーバーソフトの連携を1台のマシン上で確認したいときに用いられることもある。

 これらは、複数台のパソコンを使う目的で利用されている。連載で紹介しているドライバ移植では、使い方が全く異なる。

 PT2は、アースソフトが開発する地デジ/BSチューナーカードである(写真1)。パソコンのPCIバスに挿して利用する。PT1の後継製品である。

写真1●地デジ/BSチューナーカード「PT2」
写真1●地デジ/BSチューナーカード「PT2」

 PT1にもPT2にも、アースソフトからWindows用のドライバは提供されているものの、Linuxドライバは提供されていない。そこでPT1時代に、石川氏はPT1のハードウエアとWindows用のドライバ、アースソフトが提供する開発キット、制御用のサンプルプログラムを使って、ドライバ開発を始める。

 ところが、開発キットにはドライバのソースコードの一部しか含まれていない。チューナー制御に関するコードのほとんどが公開されていないのだ。石川氏は、公開されているコードを解析し、分からない個所は、PT1への入力に対して何らかの応答を返す擬似PT1デバイスをQEMUに実装することで解決を試みた。