KAIST CS330 과정을위한 Pintos 개발 환경
이 저장소는 Pintos 개발을위한 환경의 도커 이미지를 제공합니다. 환경은 하나의 Kaist CS330 과정과 유사하게 설정됩니다. 이 환경을 사용하면 현지에서 Pintos를 개발하고 테스트 할 수 있습니다.
Kaist CS330 과정의 Pintos는 이전 버전의 환경에서 모방됩니다.
Pintos를 모방하기 위해 Bochs 또는 QEMU 선택할 수 있습니다. 우리는 두 개의 에뮬레이터를 모두 제공합니다.
이 저장소는 다음 파일을 고려합니다.
pintos.tar.gz 이 과정의 초기 Pintos 소스 코드입니다.
Docker Image의 Dockerfile Pintos를 개발할 수있는 환경을 제공합니다.
pintos.sh 사용하면 간단한 명령으로 프로젝트를 관리 할 수 있습니다.
pintos-travis.yml 은 프로젝트의 Travis CI 구성 파일입니다.
.travis.yml 은이 저장소에서 Docker Image를 빌드하고 배포하는 것입니다.
README.md
LICENSE
이 과정의 초기 Pintos 소스 코드는 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> 절대적인 경로인지 확인하십시오.
Pintos를 실행하려면 다음 명령을 사용하십시오.
$ 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 디렉토리의 상대 경로입니다.
저장소에서 간단한 쉘 스크립트 인 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 설정을 구성해야합니다. 특히 Environment Variable TARGET_DIRECTORY threads , userprog , vm 등으로 추가해야합니다. 사용자 프로그램 기능을 구현하기 위해 threads 에서 userprog 변경과 같은 새 프로젝트를 시작할 때마다 변경할 수 있습니다.