Environnement de développement Docking Pintos pour le cours Kaist CS330
Ce référentiel fournit une image Docker d'un environnement pour le développement des Pintos. L'évaluation devrait être similaire à celle des utilisations du cours Kaist CS330. Avec cet envoi, vous pouvez développer et tester vos Pintos sur votre local.
Le cours Pintos pour Kaist CS330 est émulé dans l'ancienne version des environnements:
Vous pouvez choisir Bochs ou QEMU pour imiter les pintos. Nous fournissons tous les deux émulateurs.
Ce référentiel consiste à suivre les fichiers:
pintos.tar.gz est le code source PintoS initial de ce cours.
Dockerfile pour l'image docker fournit un environnement pour développer des Pintos.
pintos.sh vous permet de gérer votre projet avec des commandes simples.
pintos-travis.yml est le fichier Travis CI Config pour votre projet.
.travis.yml est de créer et de déployer l'image Docker dans ce référentiel.
README.md
LICENSE
Le code source initial de Pintos pour ce cours est compressé sous le nom pintos.tar.gz . Décompressez-le dans votre local.
Ensuite, vous pouvez simplement exécuter l'image Docker en tirant de DockerHub avec les commandes suivantes:
$ 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 ou construire à partir du 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(Cela pourrait prendre beaucoup de temps)
Remarque: assurez-vous que src n'est pas <your-pintos-dir> , mais le répertoire contient directement le répertoire src .
Remarque: Assurez-vous que <your-pintos-dir> est un chemin absolu.
Pour exécuter des Pintos, utilisez la commande suivante:
$ sudo docker exec -i -t < container-name > /bin/bash -c
> " cd <target-dir> && pintos <pintos-cmd> " Si vous souhaitez simplement construire (ou vérifier, noter) vos Pintos, par exemple dans threads , entrée:
$ sudo docker exec -i -t < container-name > /bin/bash -c
> " cd threads && make [check|grade] " Remarque: <target-dir> est un chemin relatif du répertoire src , tel que threads pour pintos/src/threads .
Nous vous proposons d'utiliser le script de shell simple, pintos.sh , dans notre référentiel. Déplacez pintos.sh vers /usr/local/bin ou quelque part ajouté au PATH .
Modifiez PINTOS_CONTAINER à votre <container-name> . Et puis vous pouvez utiliser
sudo pintos start (démarre le conteneur Docker)sudo pintos stop (arrête le conteneur 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>"dans n'importe où sans accéder directement à Docker directement.
Par exemple, si vous souhaitez voir une note pour userprog Project, faites simplement:
$ sudo pintos grade userprog && vim < your-pintos-dir > /src/userprog/build/grade Remarque: pintos help imprimerait le message d'aide.
Remarque: L'ajout de votre compte au groupe docker vous permet de l'utiliser sans sudo .
Vous pouvez également utiliser Travis CI (ici pour des références privées) pour gérer votre projet avec une intégration continue. Il pourrait être utile pour le co-travail avec les membres de votre équipe.
pintos-travis.yml est le fichier de configuration, le déplacer vers le répertoire racine de votre projet. (Si vous utilisez Git, ce serait où se trouve .git .) Renommez-le à .travis.yml .
Avant de l'appliquer, vous devez configurer les paramètres de Travis CI dans le site Web comme vous le souhaitez, en particulier, vous devez ajouter une variable d'environnement TARGET_DIRECTORY comme l'un des threads , userprog , vm ou etc. Vous pouvez le modifier chaque fois que vous commencez un nouveau projet, tels que le passer des threads à userprog lorsque vous commencez à mettre en œuvre les fonctionnalités du programme d'utilisateurs.