Kaist CS330コースのピント開発環境をドッケージ化します
このリポジトリは、ピントス開発のための環境のDocker画像を提供します。環境は、Kaist CS330コースが使用する1つのものに似ているように設定されています。この環境を使用すると、地元でピントを開発してテストできます。
Kaist CS330コースのピントは、環境の古いバージョンでエミュレートされています。
ピントをエミュレートするには、 BochsまたはQEMUを選択できます。 2つのエミュレータをすべて提供します。
このリポジトリは、次のファイルで構成されています。
pintos.tar.gz 、このコースの最初のピントソースコードです。
Dockerfile for the docker Imageは、ピントを開発するための環境を提供します。
pintos.sh使用すると、簡単なコマンドでプロジェクトを管理できます。
pintos-travis.ymlは、プロジェクトのTravis CI構成ファイルです。
.travis.yml 、このリポジトリにDockerイメージを構築および展開することです。
README.md
LICENSE
このコースの最初のピントソースコードは、 pintos.tar.gzとして圧縮されています。それをあなたの地元に解凍します。
次に、次のコマンドを使用してDockerHubから引っ張るだけでDocker画像を実行できます。
$ sudo docker pull hangpark/pintos-dev-env-kaist
$ sudo docker run -t -d -v < your-pintos-dir > :/pintos --name < container-name > hangpark/pintos-dev-env-kaistまたはdockerfileからビルド:
$ git clone https://github.com/hangpark/pintos-dev-env-kaist.git
$ sudo docker build --tag hangpark/pintos-dev-env-kaist pintos-dev-env-kaist
$ sudo docker run -t -d -v < your-pintos-dir > :/pintos --name < container-name > hangpark/pintos-dev-env-kaist(長い時間がかかるかもしれません)
注: srcが<your-pintos-dir>ではないことを確認しますが、ディレクトリにはsrcディレクトリが直接含まれていることを確認してください。
注: <your-pintos-dir>が絶対的なパスであることを確認してください。
ピントを実行するには、次のコマンドを使用します。
$ sudo docker exec -i -t < container-name > /bin/bash -c
> " cd <target-dir> && pintos <pintos-cmd> "たとえば、 threadsでピントを構築(または勾配)したい場合は、入力:
$ sudo docker exec -i -t < container-name > /bin/bash -c
> " cd threads && make [check|grade] "注: <target-dir>はpintos/src/threadsのthreadsなど、 srcディレクトリからの相対パスです。
リポジトリでSimple Shell Scriptのpintos.shを使用することをお勧めします。 pintos.shを/usr/local/binに移動するか、どこかにPATHに追加されます。
PINTOS_CONTAINER <container-name>に編集します。そして、あなたは使用することができます
sudo pintos start (Dockerコンテナを起動)sudo pintos stop (dockerコンテナを停止)sudo pintos build <target-dir>sudo pintos check <target-dir>sudo pintos grade <target-dir>sudo pintos clean <target-dir>sudo pintos run <target-dir> "<pintos-cmd>"Dockerに直接アクセスすることなくどこにでも。
たとえば、 userprogプロジェクトのグレードをご覧になりたい場合は、次のことを行います。
$ sudo pintos grade userprog && vim < your-pintos-dir > /src/userprog/build/grade注: pintos helpがヘルプメッセージを印刷します。
注:アカウントをdocker Groupに追加すると、 sudoなしでこれを使用できます。
また、Travis CI(ここではプライベートリポジトリの場合)を使用して、継続的な統合でプロジェクトを管理することもできます。チームメンバーと共同作業するのに役立つかもしれません。
pintos-travis.ymlは構成ファイルであり、プロジェクトのルートディレクトリに移動します。 (GITを使用する場合、 .gitの配置場所になります。) .travis.ymlに変更します。
これを適用する前に、必要に応じてWebサイトでTravis CI設定を構成する必要があります。特に、 threads 、 userprog 、 vmなどのいずれかとして環境変数TARGET_DIRECTORYを追加する必要があります。ユーザープログラム機能の実装を開始するときにthreadsからuserprogに変更するなど、新しいプロジェクトを開始するときはいつでも変更できます。