Entorno de desarrollo de Pintos Pintos para el curso KAIST CS330
Este repositorio proporciona una imagen Docker de un entorno para el desarrollo de Pintos. La envidación se establece similar al que utiliza el curso Kaist CS330. Con esta envidación, puede desarrollar y probar sus pintos en su local.
Pintos para el curso Kaist CS330 se emula en la versión anterior de los entornos:
Puede elegir Bochs o QEMU para emular Pintos. Proporcionamos los dos emuladores.
Este repositorio consiste en los siguientes archivos:
pintos.tar.gz es el código fuente inicial de Pintos para este curso.
Dockerfile para la imagen de Docker proporciona un entorno para desarrollar pintos.
pintos.sh le permite administrar su proyecto con comandos simples.
pintos-travis.yml es el archivo de configuración Travis CI para su proyecto.
.travis.yml es construir e implementar una imagen de Docker en este repositorio.
README.md
LICENSE
El código fuente inicial de Pintos para este curso se comprime como pintos.tar.gz . Deséjalo en tu local.
Entonces simplemente puede ejecutar la imagen Docker tirando de Dockerhub con los siguientes comandos:
$ 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 o construir desde 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(Puede llevar mucho tiempo)
Nota: Asegúrese de que src no sea <your-pintos-dir> , pero el directorio contiene directorio src directamente lo es.
NOTA: Asegúrese de que <your-pintos-dir> sea un camino absoluto.
Para ejecutar Pintos, use el siguiente comando:
$ sudo docker exec -i -t < container-name > /bin/bash -c
> " cd <target-dir> && pintos <pintos-cmd> " Si solo desea construir (o verificar, calificar) sus Pintos, por ejemplo, en threads , entrada:
$ sudo docker exec -i -t < container-name > /bin/bash -c
> " cd threads && make [check|grade] " Nota: <target-dir> es una ruta relativa desde el directorio src , como threads para pintos/src/threads .
Le ofrecemos usar el script de shell simple, pintos.sh , en nuestro repositorio. Mueva pintos.sh a /usr/local/bin o en algún lugar agregado a PATH .
Edite PINTOS_CONTAINER en su <container-name> . Y luego puedes usar
sudo pintos start (inicia el contenedor Docker)sudo pintos stop (detiene el contenedor 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>"en cualquier lugar sin acceder a Docker directamente.
Por ejemplo, si desea ver una calificación para el proyecto userprog , simplemente haga:
$ sudo pintos grade userprog && vim < your-pintos-dir > /src/userprog/build/grade Nota: pintos help imprimiría el mensaje de ayuda.
Nota: Agregar su cuenta al grupo docker lo hace que puede usar esto sin sudo .
También puede usar Travis CI (aquí para Repos privado) para administrar su proyecto con integración continua. Puede ser útil para el trabajo conjunto con los miembros de su equipo.
pintos-travis.yml es el archivo de configuración, muévalo al directorio raíz de su proyecto. (Si usa GIT, sería donde se encuentra .git ). Cambíe el nombre a .travis.yml .
Antes de aplicar esto, debe configurar la configuración de Travis CI en el sitio web según lo desee, especialmente, debe agregar una variable de entorno TARGET_DIRECTORY como uno de threads , userprog , vm o, etc., puede cambiarlo cada vez que inicie un nuevo proyecto, como cambiarlo de threads a userprog cuando comienza a implementar características del programa de usuarios.