メモ帳

やったこととかちまちまと書く 需要のない記事を生成している

dockerでxv6をビルドする

6.828 / Fall 2016
github.com
MacでビルドするのはめんどくさそうだったのでDockerの練習がてら試してみた

環境

qemu 2.8
docker 1.13.1

実行方法

Dockerfile

FROM ubuntu:14.04
RUN sudo apt-get update
RUN sudo apt-get install -y build-essential qemu
WORKDIR xv6
ENTRYPOINT ["make"]
CMD []

Command

コンテナを起動する際にdocker内でqemuを起動するかローカル上で起動するかの2通りのやり方がある(他にもあるかもしれないが)
gdbには対応していないはず、入れたら済む話だけどね

docker build -t xv6 . 
  • docker内で実行するパターン
docker run -v $(pwd)/xv6-public:/xv6 -it xv6 qemu-nox
  • docker外で実行するパターン

実行方法はMakefileを参考にして動かした

docker run -v $(pwd)/xv6-public:/xv6 -it xv6 
qemu-system-i386 -nographic -drive file=fs.img,index=1,media=disk,format=raw -drive file=xv6.img,index=0,media=disk,format=raw -smp 2 -m 512

Dockerのvolumeオプションは絶対パスじゃないと動かないっぽい
昔はqemuってコマンドがあったような気もするけど今はないっぽいので注意、
単に動かしたいだけならDockerで動かすのが一番楽な気がする