Dockerizing Pintos Development Environment для курса KAIST CS330
Этот репозиторий обеспечивает изображение Docker среды для разработки Pintos. Освещение настроено на то, что используется курс KAIST CS330. С помощью этого вывода вы можете разработать и проверить свои пинтос на местном уровне.
Пинтос для курса KAIST CS330 эмулируется в старой версии среды:
Вы можете выбрать Bochs или QEMU для эмуляции пинто. Мы предоставляем все два эмулятора.
Этот репозиторий состоит из следующих файлов:
pintos.tar.gz является начальным исходным кодом Pintos для этого курса.
Dockerfile для Docker Image предоставляет среду для разработки Pintos.
pintos.sh позволяет вам управлять своим проектом с помощью простых команд.
pintos-travis.yml -это файл конфигурации Travis CI для вашего проекта.
.travis.yml предназначен для создания и развертывания изображения Docker в этом репозитории.
README.md
LICENSE
Первоначальный исходный код Pintos для этого курса сжат как pintos.tar.gz . Разанизируйте его в свой местный житель.
Затем вы можете просто запустить изображение Docker, вытащив из Dockerhub с следующими командами:
$ 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> , но каталог содержит Directory src напрямую.
Примечание. Убедитесь, что <your-pintos-dir> является абсолютным путем.
Чтобы запустить Pinto, используйте следующую команду:
$ 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> src threads pintos/src/threads
Мы предлагаем вам использовать 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 .
Перед тем, как применять это, вы должны настроить настройки Travis CI на веб -сайте, как вы хотите, особенно вы должны добавить переменную среды TARGET_DIRECTORY в качестве одного из threads , userprog , vm или и т. Д. Вы можете изменить его всякий раз, когда запускаете новый проект, например, изменить его с threads на userprog , когда вы начинаете реализовать функции пользовательской программы.