QEMU Edit

目次 Edit

QEMUとは Edit

フリーのCPUエミュレータ。
PC(x86,x86_64)のみならず、Mac(PowerPC)などの様々なマシンに対応しています。
OSを制作する上で欠かせません。

インストール Edit

Linux Edit

ソースをコンパイルしてインストールすることも可能ですが、yumやaptなどで容易にインストールできます。
ソースからコンパイルする場合は、

  1. ソースの解凍
    tar zxvf qemu-x.y.z.tar.gz
  2. configureでQEMUのmake環境を作る。configure→googleで参照。
    ./configure
  3. makeし、QEMUをインストールする。
    make install

Windows Edit

通常のインストールでOK。

Mac Edit

・・・

実行 Edit

qemu [options] [disk_image]

disk_imageはIDEのHDD0として使うrawイメージファイルです。

オプション Edit

-M [machine]
どのマシンで実行するか選択します。?にすると選択可能なマシンの一覧が表示されます。
イメージ指定 Edit
-fd(a|b) image
フロッピーディスク0,1のイメージとして、imageを使います。
imageとして、"/dev/fd0"を指定することもできます。
-hd(a|b|c|d) image
ハードディスク(IDEデバイス)0〜4のイメージとして、imageを使います。
-cdrom image
CD-ROMのイメージとして、imageを使います。(-hdcと一緒には使えません。CDがIDEのセカンダリのマスタ=hdcにつながれるから?)
imageとして、"/dev/cdrom"を指定することもできます。
ブート Edit
-boot [a|b|c|d]
ブートするデバイスを選択します。BIOSで最初に決めておく起動順のような感じ?なので、設定しなくても問題はない?
a, b:フロッピーディスクから起動します。
c:ハードディスクから起動します。(デフォルト)
d:CD-ROMから起動します。
その他 Edit
-m ramsize
メモリのサイズを指定します。ramsizeはメビバイト単位です。デフォルトは128MiBです。
オプション説明
-monitor stdioQEMUモニタとして標準入出力を使う
-enable-audio仮想PCのサウンド(オーディオ)デバイスを有効にする
-localtime仮想PCのリアルタイムクロックをローカルタイムにセットする
-snapshotハードディスクをスナップショットモードにして起動する
-user-netユーザモードのネットワークを使う
(TUN/TAPの/etc/qemu-ifupスクリプトがない場合のデフォルト)
-redir tcp:8080::80-user-net使用時,ホストOSのTCP 8080番ポートをゲストOSのTCP 80番ポートにリダイレクトする
-smb /tmp-user-net使用時,ホストOSの/tmpを共有名qemuでSMBで共有する
-no-kqemukqemuアクセラレータを使用しない

キー操作 Edit

Ctrl + Alt
標準入力(キーボード、マウス)をQEMU内とQEMU外で切り替え
Ctrl + Alt + f
フルスクリーン ←→ ウィンドウ 切り替え
Ctrl + Alt + 1
通常の実行画面に切り替え(ゲストOS画面)
Ctrl + Alt + 2
QEMUモニタに切り替え
Ctrl + Alt + 3
シリアルポートに切り替え
Ctrl + Alt + n
他にもあるかも。

QEMUモニタ Edit

レジスタやメモリなどの各種情報が参照できたり、他にもいろいろできます。
Ctrl + Alt + 2でこのモードに切り替えることができます。
Ctrl + (up|down|PageUp|PageDown)でスクロールができます。

コマンド Edit

(help|?) [command]
コマンドの一覧を表示。オプションの'command'を指定すると、そのコマンドについて詳細を表示。
info network
ネットワークの状態を表示
info block
ブロックデバイスを表示
info registers
レジスタの状態を表示
info
info subcommand
他にもあります。
(quit|q)
QEMUを終了します。
stop
エミュレーションを一時停止
(cont|c)
エミュレーションを再開
x/format addr
formatの書式でaddrから仮想メモリをダンプします。ページングに有効?
xp/format addr
formatの書式でaddrから物理メモリをダンプします。

メモリダンプ Edit

コマンドでx/format addrや、xp/format addrと入力することでメモリの内容を参照することができます。

フォーマット Edit

formatは、ダンプする数、表示形式、サイズからなります。

ダンプ数 Edit

表示形式とサイズで指定されたものを表示する数

表示形式 Edit
  • o:8進数で表示
  • d:符号あり10進数で表示
  • u:符号なし10進数で表示
  • x:16進数で表示
  • c:文字で表示
  • i:アセンブラ命令で表示(逆アセンブル)
サイズ Edit
  • b:バイト(8bit)単位で表示
  • h:ハーフワード(16bit)単位で表示
  • w:ワード(32bit)単位で表示
  • g:(64bit)単位で表示
アドレス Edit

メモリダンプする先頭番地を指定する。

その他 Edit

注意事項 Edit

フォーカスを当てると、帰ってこれなくなることがあるので注意。その時は強制終了です。

参考・関連 Edit


Since 2008 July. OS Project Wiki
リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS