OS Project Wiki の保存版 ヒデさん・アリスさんほか、OS部のみなさんが書いたものです。
2019年にサイトが消滅しました。当時あった211ページのうち、本文が残っていたのは86ページです。すべては復旧できていません。Common Crawl と Internet Archive に 残っていたものを組み直しています(最終取得 2019-05-24)。
編集・検索・添付などの機能は動きません。表示のみです。

検索

まずは、検索!

Index

人気の20件
最新の20件
2018-12-022018-01-092017-05-072017-04-252016-05-012015-02-242014-01-032013-06-252012-12-302012-12-292012-07-272012-07-162012-02-052012-01-292011-10-01
  • QEMU
2011-09-18

QEMU

目次

QEMUとは

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

インストール

Linux

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

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

Windows

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

Mac

・・・

実行

qemu [options] [disk_image]

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

オプション

-M [machine]
どのマシンで実行するか選択します。?にすると選択可能なマシンの一覧が表示されます。
イメージ指定
-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"を指定することもできます。
ブート
-boot [a|b|c|d]
ブートするデバイスを選択します。BIOSで最初に決めておく起動順のような感じ?なので、設定しなくても問題はない?
a, b:フロッピーディスクから起動します。
c:ハードディスクから起動します。(デフォルト)
d:CD-ROMから起動します。
その他
-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アクセラレータを使用しない

キー操作

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

QEMUモニタ

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

コマンド

(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から物理メモリをダンプします。

メモリダンプ

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

フォーマット

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

ダンプ数

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

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

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

その他

注意事項

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

参考・関連


Since 2008 July. OS Project Wiki
保存 2019-04-21 ・ ページ一覧