v6の動く環境が欲しいということで、深夜ラジオを聞きながらほげほげ
xv6なhow toなエントリを参考に
xv6をgdbで動かせるように環境を構築したのでそのログをば
OSはubuntu10.11
xv6のソースを取得
git clone git://pdos.csail.mit.edu/xv6/xv6.git
なにも考えずにmakeでいけました。
gdbでデバッグするためには下記のコマンドを叩く
make qemu-gdb
qemuのウインドウが立ち上がるのがお好きでない方用
make qemu-nox-gdb
gdb起動しても、xv6にアタッチできなくて悩んでいたけれど
makeしたのと同じディレクトリでgdbを起動したら、アタッチできました。
ここまではとくに問題なくいけたけれど、qemuが-gつきでコンパイルされてなかったので
ソースを取ってきて再コンパイル
./configure --prefix=/opt --target-list="i386-softmmu x86_64-softmmu"
xv6のMakefileを再コンパイルしたqemuに書き換える。
QEMU = /opt/bin/qemu-system-x86_64
んでmake-nox-gdbからのgdbで無事ブレイクポイントで止めれました!
(gdb) b *0x7c00
これでLions本を読みながらステップ実行などもいけるのかと楽しみ。
Lions本を読むならピュアなv6の方が良いと思う、simhでシミュレートする方法もあるとのこと
とりあえず、いまのところはこの環境で行こうかと思います。
ANSIなCしか読んだことないので、とっかかりには良いのかなー
読み進めてxv6では物足りなくなったころにsimhに挑戦してみよう。