This is an old revision of the document!
Studiați secțiunea de Cunoștințe evaluate și suportul agregat necesar temei.
Daca aveti intrebari sau nelamuriri, folosiți issue-urile pe Git-ul Sd'E
Căutați pe pagina de issue-uri informația pe care doriți să o obțineți, înainte să puneți o întrebare. De cele mai multe ori, cineva a mai întrebat același lucru.
În cazul în care doriți să publicați un screenshot, recomandăm folosirea site-urilor pentru partajarea gratuită a imaginilor, precum imgur sau alternativele sale, publicând in issue-uri doar link către screenshot.
Urmăriți atât issue-urile cât și modificările aduse enunțului/checker-ului, modificări ce sunt publicate și explicate în paragrafele de mai jos.
În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de Sd'E, parcurgeți și lista de întrebări frecvente întâlnite în cadrul temelor. Să țineți cont, va rugăm, și de recomandările de comunicare electronică.
Singurul lucru de care trebuie să aveți grijă este să nu puneți pe issue-uri rezolvările taskurilor. Puteți să sugerați diferite abordări sau să dați idei celorlalți.
În funcţie de sistemul de operare pe care îl aveţi instalat pe calculator descărcaţi maşina virtuală aferentă.
Cum verific dacă sistemul meu e 32-bit sau 64-bit?
Vă rugăm să parcurgeţi următoarele tutoriale în funcţie de sistemul de operare instalat pe calculatorul/laptop-ul vostru:
i386
inseamnă sistem pe 32 biţi, amd64
înseamnă sistem pe 64 biţi.
Instrucțiuni de utilizare a checkerului uso
Testarea temei se va face doar pe mașina virtuală autentificat ca utilizator student
, folosind utilitarul uso
. Acesta poate fi executat în orice moment pentru a verifica dacă au fost rezolvate corect task-urile. Nu lucrați autentificat ca utilizator root
în sistem, la nicio temă. Din acest motiv există posibilitatea să nu vă treacă testele. Pe de altă parte, nu este o metoda de siguranță să lucrați autentificat ca utilizator root din motive de securitate și/sau permisiuni.
Utilitarul uso
implementează testele doar pentru task-urile temei curente. Pentru a folosi utilitarul uso
, primul pas este să porniți Tema 1 folosind comanda sudo uso start 1
. În caz contrar, nu veți avea actualizat checker-ul pentru tema curentă.
Verificați versiunea checker-ului, afișată la rularea comenzii sudo uso version
. Asigurați-vă că aveți ultima versiune înainte de a continua lucrul pentru temă. Versiunea actuală este specificată în secțiunea Informații generale prezentă în enunțul temei. Pentru situațiile în care nu dispuneți de ultima versiune a checker-ului, rulați sudo uso update
.
Finalizarea temei se realizează prin rularea comenzii sudo uso submit
.
Mașina virtuală Sd'E
Primul pas este să rulați mașina virtuală pusă la dispoziție. Informațiile necesare pentru a rula mașina virtuală se găsesc la link-ul de mai jos.
Verificați conexiunea la internet rulând comanda ping
către un site și verificati că site-ul răspunde (Hint: man ping
)
În acest moment mașina virtuală are acces la Internet, și mașina fizică (host) poate comunica cu mașina virtuală (guest). Mașina virtuală poate porni într-un timp destul de mare, de până la 120 de secunde. Mașina virtuală are facută o regulă de port forwarding care permite connectarea ușoara între mașina fizică și mașina virtuală.
SSH
Scopul acestui task este să vă conectați de pe mașina fizică (denumită în continuare host sau mașina gazdă) către mașina virtuală (denumită în continuare guest) folosind protocolul SSH. Din Linux/macOS puteți folosi utilitarul ssh
(man ssh
), iar de pe Windows puteți folosi programul PuTTy, pe care trebuie să-l descărcați de la adresa http://www.putty.org/, secțiunea Download PuTTy. Din lista de programe disponibile la adresa anterior menționată, este suficient să alegeți putty.exe de sub secțiunea For Windows on Intel x86.
Pentru a finaliza acest task, aveți nevoie de următoarele:
student
)student
)localhost
(Hint: este localhost
deoarece am folosit port forwarding)2222
Vă puteți conecta de pe mașina host către mașina guest cu un număr nelimitat de instanțe ale programelor mai sus menționate (ssh
sau PuTTy). Pe Linux/macOS puteți face acest lucru deschizând pe mașina host un nou tab/terminal în care vă veți conecta la mașina guest prin SSH. Rulați comanda man ssh
și căutați după parametrul -l
(L
mic). Pe Windows puteți face acest lucru deschizând o nouă instanță de PuTTy și introducând ca IP localhost
și ca port 2222
.
Checkerul
Tema 1 Sd'E este verificata automat cu ajutorul unui checker, instalat pe mașina virtuală, sub forma executabilului uso
. Checkerul trebuie rulat într-un terminal și are nevoie de drepturi privilegiate (sudo
). Citiți modul în care puteți folosi utilitarul uso
conform instrucțiunile de utilizare.
Pentru această temă trebuie să vă înregistrați username-ul și parola de pe http://fils.curs.pub.ro folosind utilitarul uso
și urmand instructiunile din terminal (care vă vor conduce la http://temeuso.cs.pub.ro).
student@usohomework ~ $ sudo uso
ATENȚIE!!! Toate tastele introduse de la tastatură in mașina virtuală sunt înregistrate. Evitați să introduceți in aceasta orice fel de parole sau date sensibile/personale.
După înregistrare, începeți lucrul la Tema 1.
student@usohomework ~ $ sudo uso start 1
Pentru a verifica dacă tema rulează corect, rulați checkerul.
student@usohomework ~ $ sudo uso check
Verificati dupa ca primele 4 task-uri sunt OK
(ar trebui sa fie).
[5p] Clonați în directorul /home/student
repository-ul disponibil la adresa https://github.com/alexandruradovici/sde
. Directorul creat după clonare trebuie să aibă numele sde
.
[25p] Adaugați în directorul sde
următoarea structură de directoare și fișiere:
Halloween ├── The Nun/ │ ├── Monastery/ │ │ ├── Finit hic Deo │ │ ├── Crosses/ │ │ ├── Cemetery │ ├── Castle of the Dukes │ └── Evil $pirits ├── Anabelle/ │ ├── Motifs/ │ │ ├── Well.c │ │ ├── Scarecrow.c │ │ └── Staircase.c │ ├── Ghosts/ │ │ └── The Doll │ └── Favourite game/ │ └── Hide & Seek └── Hotel Transylvania/ ├── Holiday/ │ ├── Cruise: 'Legacy' │ ├── Island/ │ └── City of Atlantis ├── Instrument of destruction/ │ ├── Note_sheet.c │ └── Kraken └── Monsters/ ├── Skeleton ├── Mummy └── Werewolf
/
(slash).
~/sde/Halloween/
. Acesta trebuie să râmână în această formă pentru verificările ulterioare ale checkerului. Veți pierde punctele obținute pentru acest task dacă faceți modificări și va fi nevoie de refacerea taskului.
[12p] Aflându-vă în directorul sde
, folosiți o singură comandă pentru fiecare dintre cerințele următoare:
Halloween
din folderul sde
care sa se numeasca Copie
si sa se afle tot in folderul sde
(in folderul sde
vor exista acum ambele foldere: Halloween
si Copie
).Copie
: Mutați fisierul Kraken
din Instrument of destruction
în Monsters
.Copie
: Redenumiți Hide & Seek
în Hide and Seek
.Copie
: Redenumiți Evil $pirits
în Evil Spirits
.Copie
: Adaugați fisierul Hunted.c
în directorul Ghosts
.
Cerințele de mai sus trebuie rezolvate în ordine.
~/sde/Copie/
. Acesta trebuie să râmână în această formă pentru verificările ulterioare ale checkerului. Veți pierde punctele obținute pentru acest task dacă faceți modificări și va fi nevoie de refacerea taskului.
boo.c
aflat la adresa:
https://raw.githubusercontent.com/alexandruradovici/sde/master/tema1/boo.c
Hint: man wget
[8p] Creați directorul task4
în directorul sde
, și descărcați în acesta fișierul boo.c
.
light.o
sound.h
si sound.c
, ce pot fi descarcate de la adresele https://github.com/alexandruradovici/sde/raw/master/tema1/light.o
https://raw.githubusercontent.com/alexandruradovici/sde/master/tema1/sound.c
https://raw.githubusercontent.com/alexandruradovici/sde/master/tema1/sound.h
light.o
poate fi descarcat de la adresa https://github.com/alexandruradovici/sde/raw/master/tema1/64/light.o
[10p] Generati in directorul task7
executabilul exec
, folosind atât fișierul obiect light.o
, cât și fisierul obiect sound.o
obținut în urma compilării sursei sound.c
implementată anterior. In final trebuie doar ca in directorul task7
să fie generat fișierul executabil exec
.
[5p] Folositi comenzi de compilare care să creeze toate fisierele intermediare (denumite boo.o
, boo.s
) in urma compilarii fisierului sursa boo.c
. Aceste 2 fisiere trebuie sa se afle in final tot in directorul task7
.
Finalizați tema si asigurați-vă că ați submis tema cu sudo uso submit
.
student@usohomework ~ $ sudo uso submit