Dockieren von Pintos -Entwicklungsumgebung für den Kaist CS330 -Kurs
Dieses Repository bietet ein Docker -Bild einer Umgebung für die Entwicklung von Pintos. Die Umgebung wird dem einen kaistischen CS330 -Kurs ähnlich sein. Mit dieser Umgebung können Sie Ihre Pintos auf Ihrem Einheimischen entwickeln und testen.
Pintos für den Kaist CS330 -Kurs wird in der alten Version der Umgebungen emuliert:
Sie können Bochs oder QEMU auswählen, um Pintos zu emulieren. Wir liefern alle zwei Emulatoren.
Dieses Repository besteht aus folgenden Dateien:
pintos.tar.gz ist der erste Pintos -Quellcode für diesen Kurs.
Dockerfile für das Docker -Bild bietet Umgebung für die Entwicklung von Pintos.
pintos.sh können Sie Ihr Projekt mit einfachen Befehlen verwalten.
pintos-travis.yml ist die Travis CI-Konfigurationsdatei für Ihr Projekt.
.travis.yml soll das Docker -Bild in diesem Repository erstellen und bereitstellen.
README.md
LICENSE
Der erste Pintos -Quellcode für diesen Kurs wird als pintos.tar.gz komprimiert. Entpacken Sie es in Ihren Einheimischen.
Dann können Sie das Docker -Bild einfach ausführen, indem Sie von DockerHub mit folgenden Befehlen ziehen:
$ 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 oder aus der dockerfile bauen:
$ 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(Es könnte lange dauern)
Hinweis: Stellen Sie sicher, dass src nicht <your-pintos-dir> ist, aber das Verzeichnis enthält src Verzeichnis direkt.
Hinweis: Stellen Sie sicher, dass <your-pintos-dir> ein absoluter Weg ist.
Um Pintos auszuführen, verwenden Sie den folgenden Befehl:
$ sudo docker exec -i -t < container-name > /bin/bash -c
> " cd <target-dir> && pintos <pintos-cmd> " Wenn Sie Ihre Pintos nur in threads erstellen (oder prüfen möchten) möchten:
$ sudo docker exec -i -t < container-name > /bin/bash -c
> " cd threads && make [check|grade] " HINWEIS: <target-dir> ist ein relativer Pfad aus dem src -Verzeichnis, z. B. threads für pintos/src/threads .
Wir bieten Ihnen das einfache Shell -Skript pintos.sh in unserem Repository an. Bewegen Sie pintos.sh in /usr/local/bin oder irgendwo zum PATH hinzugefügt.
Bearbeiten Sie PINTOS_CONTAINER in Ihrem <container-name> . Und dann können Sie verwenden
sudo pintos start (startet den Docker -Container)sudo pintos stop (stoppt den Docker -Container)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>"In irgendwohin ohne Zugang zu Docker direkt zugreifen.
Wenn Sie beispielsweise eine Note für das userprog -Projekt sehen möchten, tun Sie einfach:
$ sudo pintos grade userprog && vim < your-pintos-dir > /src/userprog/build/grade Hinweis: pintos help würde die Hilfebotschaft drucken.
Hinweis: Wenn Sie Ihr Konto zur docker Group hinzufügen, können Sie dies ohne sudo verwenden.
Sie können auch Travis CI (hier für private Repos) verwenden, um Ihr Projekt mit kontinuierlicher Integration zu verwalten. Es könnte nützlich sein, um mit Ihren Teammitgliedern zusammenzuarbeiten.
pintos-travis.yml ist die Konfigurationsdatei und verschieben sie in das Stammverzeichnis Ihres Projekts. (Wenn Sie Git verwenden, wäre es dort, wo sich .git befindet.) Benennen Sie es in .travis.yml um.
Bevor Sie dies anwenden, sollten Sie die Travis CI -Einstellungen in der Website so konfigurieren, wie Sie threads , insbesondere Sie sollten eine Umgebungsvariable TARGET_DIRECTORY als einen von threads , userprog , vm userprog usw. hinzufügen.