QEMU este un emulator care permite rularea unui sistem de operare complet ca un simplu program în cadrul unui alt sistem. A fost dezvoltat inițial de Fabrice Bellard și este disponibil gratuit, sub o licență open source. QEMU poate rula atât pe Linux, cât și pe Windows. Este un emulator deoarece poate rula sisteme de operare și programe compilate pentru o platformă (ex: o placă cu procesor ARM, similară cu ce găsim într-un smartphone) pe o altă platformă (ex: un PC arhitectură x86 așa cum sunt sistemele din EG306 sau EG106). Acest lucru este făcut prin translatarea dinamică a intrucțiunilor architecturii guest în instrucțiuni pentru arhitectura host.
[1a] Rularea unei imagini de Raspbian (arhitectura ARM)
Pentru acest exercițiu sunt necesare:
unzip 2012-10-28-wheezy-raspbian.zip
student@uso~:$ sudo apt-get install qemu qemu-kvm qemu-system-arm
sudo apt-get update
după care să rulați din nou comanda de instalare, care va rula acum fără probleme.
[1b] Rulati o distribuție de Linux pentru platforma Raspberry Pi, folosind cele 2 fisiere downladate mai sus.
După bootare vă apare un ecran de configurare. În ecranul apărut mergeți până la butonul Finish
(folosind Tab
).
pi
raspberry
După ce a bootat sistemul de operare din emulatorul QEMU (adică mașina virtuală Raspabian) rulați, în cadrul acestei mașini virtuale, comenzile:
$ lscpu $ uname -a
lscpu
s-ar putea să nu vă meargă pentru că nu este montat sistemul de fișiere proc
necesar comenzii lscpu
. Pentru a monta acest sistem de fișiere rulați comanda
$ sudo mount -t proc proc /proc
Observați că în loc de arhitectura x86
în output (așa cum vedeam la primul exercițiu) avem ca arhitectură arm
. Mai multe detalii despre ARM pe site-ul oficial.
df
), una pentru demontarea partiției care repzintă cardul SD și una pentru scrierea imaginii de Raspbian pe cardul SD, folosind dd
. Urmăriți indicațiile de aici dacă nu sunteți siguri ce comenzi trebuie să dați.
Docker este un program folosit pentru virtualizare la nivelul sistemului de operare, cunoscut și sub numele de “containerization”. Docker este folosit pentru a rula pachete software numite containere
. Containerele sunt izolate între ele, dar pot comunica prin diverse canale bine definite. Toate containerele sunt rulate de un singur sistem de operare, fapt ce face Docker mai “lightweight”
decât mașinile virtuale clasice.
[2a] Instalați Docker pe mașina fizică folosind ghidul oficial, varianta de instalare printr-un script.
[2b] Clonați repo-ul simple-web. Deschideți-l și inspectați fișierele Dockerfile și index.py. Încercați să înțelegi fiecare linie din Dockerfile (întrebați asistentul dacă aveți nelămuriri).
[2c] Folosind proiectul clonat mai devreme, creați un container folosind Docker. Pentru a vă verifica, accesați http://localhost/.
Până acum am folosit VirtualBox pentru a importa mașini virtuale. Am făcut acest lucru din interfața grafică, dar este important de știut că putem folosi și linia de comandă, și anume comanda VBoxManage. Urmăriți tutorialul de aici.
[4a] Descărcați de aici VM arhivă zip.
[4b] Dezarhivați arhiva și montați fișierul .vdi, fără a vă folosi de o mașină virtuală.