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で動かすのが一番楽な気がする