Lingkungan pengembangan Pintos Dockerisasi untuk kursus KAIST CS330
Repositori ini menyediakan gambar Docker tentang lingkungan untuk pengembangan Pintos. Envrionment diatur untuk mirip dengan One Kaist CS330 Kursus Penggunaan. Dengan lingkungan ini, Anda dapat mengembangkan dan menguji Pintos Anda di lokal Anda.
Pintos for Kaist CS330 Course ditiru dalam versi lama lingkungan:
Anda dapat memilih Bochs atau QEMU untuk meniru Pintos. Kami menyediakan semua dua emulator.
Repositori ini merupakan file berikut:
pintos.tar.gz adalah kode sumber Pintos awal untuk kursus ini.
Dockerfile untuk gambar Docker menyediakan lingkungan untuk mengembangkan Pintos.
pintos.sh memungkinkan Anda mengelola proyek Anda dengan perintah sederhana.
pintos-travis.yml adalah file konfigurasi Travis CI untuk proyek Anda.
.travis.yml adalah untuk membangun dan menggunakan gambar Docker di repositori ini.
README.md
LICENSE
Kode Sumber Pintos Awal untuk kursus ini dikompresi sebagai pintos.tar.gz . Buka ritsleting ke lokal Anda.
Kemudian Anda dapat dengan cukup menjalankan gambar Docker dengan menarik dari Dockerhub dengan perintah berikut:
$ 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 atau membangun dari 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(Mungkin butuh waktu lama)
Catatan: Pastikan src bukan <your-pintos-dir> , tetapi direktori tersebut berisi direktori src secara langsung.
Catatan: Pastikan bahwa <your-pintos-dir> menjadi jalur absolut.
Untuk menjalankan Pintos, gunakan perintah berikut:
$ sudo docker exec -i -t < container-name > /bin/bash -c
> " cd <target-dir> && pintos <pintos-cmd> " Jika Anda hanya ingin membangun (atau memeriksa, menilai) Pintos Anda, misalnya di threads , input:
$ sudo docker exec -i -t < container-name > /bin/bash -c
> " cd threads && make [check|grade] " Catatan: <target-dir> adalah jalur relatif dari direktori src , seperti threads untuk pintos/src/threads .
Kami menawarkan Anda untuk menggunakan skrip shell sederhana, pintos.sh , di repositori kami. Pindahkan pintos.sh ke /usr/local/bin atau di suatu tempat ditambahkan ke PATH .
Edit PINTOS_CONTAINER ke <container-name> Anda. Dan kemudian Anda bisa menggunakan
sudo pintos start (Mulai wadah Docker)sudo pintos stop (hentikan wadah 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>"Di mana saja tanpa mengakses Docker secara langsung.
Misalnya, jika Anda ingin melihat nilai untuk proyek userprog , lakukan saja:
$ sudo pintos grade userprog && vim < your-pintos-dir > /src/userprog/build/grade Catatan: pintos help akan mencetak pesan bantuan.
Catatan: Menambahkan akun Anda ke grup docker membuat Anda dapat menggunakan ini tanpa sudo .
Anda juga dapat menggunakan Travis CI (di sini untuk repo pribadi) untuk mengelola proyek Anda dengan integrasi berkelanjutan. Mungkin berguna untuk bekerja bersama dengan anggota tim Anda.
pintos-travis.yml adalah file konfigurasi, pindahkan ke direktori root proyek Anda. (Jika Anda menggunakan git, di situlah .git berada.) Ganti nama menjadi .travis.yml .
Sebelum menerapkan ini, Anda harus mengonfigurasi pengaturan Travis CI di situs web seperti yang Anda inginkan, terutama Anda harus menambahkan variabel lingkungan TARGET_DIRECTORY sebagai salah satu threads , userprog , vm , atau dll. Anda dapat mengubahnya setiap kali Anda memulai proyek baru, seperti mengubahnya dari threads ke userprog ketika Anda mulai menerapkan fitur program pengguna.