読者です 読者をやめる 読者になる 読者になる

わどぅー

記事については、中間出力の場合も多いので間違ってたらごめんなさい。twitter は waddlaw です。どうぞよろしく。

xv6 をコンパイルして Ubuntu 12.04 で実行しよう![Linux]

最近、「はじめてのOSコードリーディング UNIX V6で学ぶカーネルのしくみ」という本を買いました。
はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus)


まずは環境を整えようと思ったのですが、意外と面倒だったんで手順をまとめておきます。ちなみに、v6 のコードではなく、xv6 で行いました。

インストール手順は[1]を参考にしました。非常にわかりやすいです。

環境

  • OS:Ubuntu 12.04 (x86)
  • QEMU: pre-patched 0.12.5
  • xv6: 公式サイトから取得できず、github から取得したため不明[2]

QEMU のインストール[3]

エミュレータらしい。デフォルトのインストール先は /usr/local です。

$ wget http://web.mit.edu/6.828/src/qemu.2010/qemu-0.12.5-6828.2010-08-31.tar.gz
$ tar xvf qemu-0.12.5-6828.2010-08-31.tar.gz
$ cd qemu-0.12.5-6828
$ sudo aptitude install libsdl1.2-dev
$ ./configure --target-list="i386-softmmu"
$ make
$ sudo make install
$ cd ../

ソースコードの取得&コンパイル

本来なら

 $ git clone git://pdos.csail.mit.edu/xv6/xv6.git

で取得できるはずなんですけど[4]、無理だったので違うところから落としてきました。

 $ wget https://github.com/run/xv6/archive/master.zip
 $ unzip master.zip
 $ cd xv6-master

ここで、Makefile を編集する。54行目のコメントを外し

 QEMU = /usr/local/bin/qemu

とする。 (インストール先を変更した人は適切に設定)

 $ make qemu-nox

これでめでたく実行できます!
qemu の終了方法は Ctrl+a x です[5]。