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.
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/upb-fils/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/upb-fils/sde/master/devoir/devoir1/boo.c
Hint: man wget
[8p] Creați directorul task7
î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/upb-fils/sde/raw/master/devoir/devoir1/light.o
https://raw.githubusercontent.com/upb-fils/sde/master/devoir/devoir1/sound.c
https://raw.githubusercontent.com/upb-fils/sde/master/devoir/devoir1/sound.h
light.o
poate fi descarcat de la adresa https://github.com/upb-fils/sde/raw/master/devoir/devoir1/64/light.o
[15p] 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
Mașina virtuală pusă la dispoziție oferă toate setările necesare pentru efectuarea temei precum și setări necesare pentru colectarea de statistici privind dificultatea temei (pentru echilibrarea dinamică a acestora).
Orice folosire a utilitarului uso
se va face doar prin intermediul utilizatorului student
, însă cu drepturi privilegiate (folosind sudo
în fața comenzii). Singura excepție este valabilă pentru comanda uso version
, care nu necesită folosirea drepturilor privilegiate.
Executabilul uso
va fi folosit pentru a obține checkerul fiecărei teme, pentru a verifica temele și pentru a submite codul final în momentul terminării acestora.
Sintaxa folosită de checker este uso [OPTION]…
, unde [OPTION]…
reprezintă o listă de parametri opţionali şi poate avea una dintre valorile de mai jos. În cazul în care nu s-a specificat niciun parametru OPTION
, acțiunea implicită este de a rula parametrul check
.
version
: Afișează versiunea curentă a executabilului uso
.check
: Verifică tema curentă în întregime și afișează punctajele aferente fiecărui taskcheck N
: Unde N
reprezintă numărul task-ului din enunțul update
: Actualizează atât checkerul temei curente cât și executabilul uso
. Recomandarea este să efectuați update
de fiecare dată când se anunță pe forum faptul că a fost actualizat checker-ul.start N
: Descarcă executabilele necesare funcționării unei noi teme. Poate restaura o temă la configurația inițială, doar dacă este specificat în cerința temei.uso start
înaintea fiecărui task.uso start
în prealabil.submit
: Finalizează tema.
Exceptând parametrii version
și check
, toate celelalte necesită prezența unei conexiuni de Internet.
uso submit
este obligatorie!
Chiar și după ce ați încărcat codul, NU modificați fișierele corespunzătoare temei! Dacă vor exista probleme în corectarea temei, iar fișierele au fost modificate după submiterea codului, contestațiile NU vor mai fi luate în considerare. Puteți în schimb să lucrați pe mașina virtuală fără nicio problemă, atâta timp cât nu sunt alterate fișierele ori condițiile de funcționare a oricărui task din tema precedentă.
Rețineți că orice folosire a utilitarului uso
se va face doar prin intermediul utilizatorului student
, însă cu drepturi privilegiate (folosind sudo
în fața comenzii). Singura excepție este valabilă pentru comanda uso version
, care nu necesită folosirea drepturilor privilegiate.
În acest moment considerăm că mașina virtuală este înregistrată corespunzător cu contul de utilizator corespunzător fiecărui student. Dacă această condiție este îndeplinită cu succes, pașii uzuali de lucru pentru o temă se regăsesc mai jos.
uso start N
unde N este tema curentauso check
uso check N
, unde N
reprezinta numărul task-uluiuso check 4
uso submit
.uso update
.