This is an old revision of the document!


Tema 1

În urma feedback-ului, vă recomandăm următoarele:

Studiați secțiunea de Cunoștințe evaluate și suportul agregat necesar temei. Aceasta este valabilă la orice temă și se recomandă parcurgea sa.

Folosiți thread-urile de discuții existente în cadrul forumului, fără a crea altele, atât în forumul pentru Discuții Generale cât și în forumul temei. În consecință, thread-urile (subiectele de discuții) nou create vor fi șterse deoarece informația utilă va fi greu de urmărit.

Căutați pe forum 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 fiecare thread al forumului aveți informații despre cum puteți căuta în forum.

Î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 pe forum doar link către screenshot. Dorim să păstrăm o parcurgere ușoară a forumului, din acest motiv, orice poză inserată în răspunsuri, va fi ștearsă.

Urmăriți atât forumul cât și modificările aduse enunțului/checker-ului, modificări ce sunt publicate și explicate în paragrafele de mai jos.

Folosiți cu încredere forumurile de pe fils.curs.pub.ro pentru întrebări și neclarități legate de teme.

Î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ă.

Informații generale

Deoarece exista deja resurse la materia USO (aflata tot aici pe ocw.cs.pub.ro), vom folosi masinile virtuale si resursele existente acolo. Multe link-uri de pe aceasta pagina va vor indrepta acolo pentru nelamuriri, link-uri de download si diverse intrebari frecvente.

Deadline: XX X-ie, ora 23:55
Timp de lucru: X zile
Punctaj: X puncte din nota finală

Actualizări enunț:

  • Nu există actualizări

Actualizări checker:
Versiunea curentă: versiunea 1.0.0

  • Nu există actualizări

Vă încurajăm ca atunci când găsiți soluția la o problemă pe care ați postat-o anterior pe forum să postați și soluția găsită. De asemenea dacă știți răspunsul la întrebările colegilor sunteți încurajați să le răspundeți.

Singurul lucru de care trebuie să aveți grijă este să nu puneți pe forum rezolvările taskurilor. Puteți să sugerați diferite abordări sau să dați idei celorlalți. Mai multe informații găsiți in recomandările de comunicare electronică.

Cunoștințe evaluate

  • Instalarea, configurarea, rularea mașinii virtuale si utilizarea checkerului pentru Tema 1 la Sd'E
  • Navigarea in sistemul de fisiere
  • Folosirea utilitarului git
  • Compilarea programelor

Maşini virtuale Tema 1 Sd'E 2019

Citiţi şi secţiunea despre maşini virtuale a USO 2018 - Mașina virtuală

Username-ul si parola sunt cele de pe fils.curs.pub.ro

În funcţie de sistemul de operare pe care îl aveţi instalat pe calculator descărcaţi maşina virtuală aferentă.

IMPORTANT: dacă ştiţi că aveţi procesoare noi (e.g. AMD Ryzen, Intel CoffeLake, KabyLake etc.) sau pur şi simplu procesorul vostru este pe 64-bit şi aveţi Windows 10 instalat sau Ubuntu >= 16.04 descărcaţi maşina virtuală pe 64-bit.

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:

Testare

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.

Task-uri

Este interzisă publicarea pe forum a comenzilor sau pozelor care fac parte din rezolvarea parțială sau integrală a temei ori a unui task. La prima abatere studentul primește un avertisment, iar punctajul obținut pe temă îi este redus cu valoarea punctajului pe task-ul respectiv. Începând cu a doua abatere, se va anula întregul punctaj pe tema curentă, temele anterioare sau cele viitoare nefiind afectate. Abaterile rămân valabile pe tot parcursul semestrului, acestea nefiind anulate în momentul în care se publică o temă nouă. Ori de câte ori se încalcă această regulă, se va ține cont de istoricul abaterilor. Abaterile vor fi actualizate în catalog.

Task 01 (0p)

Mașina virtuală USO

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)

Pentru rezolvarea temei aveți nevoie în continuare de conexiune la Internet din interiorul mașinii virtuale, insa rezolvarea temelor nu necesita o conexiune permanenta la Internet. Pentru orice problemă, folosiți forumul de pe Moodle. Nu treceti mai departe până nu sunteți siguri că puteți accesa Internetul din interiorul mașinii virtuale!

Task 02 (0p)

Î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ă.

Task 03 (0p)

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:

  • Username-ul mașinii guest (Implicit student)
  • Parola username-ului mașinii guest (Implicit student)
  • IP-ul (adresa) interfeței la care ne conectăm : localhost (Hint: este localhost deoarece am folosit port forwarding)
  • Port-ul interfeței la care ne conectăm : 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.

Task 04 (10p)

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@vm-uso ~ $ 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@vm-uso ~ $ sudo uso start 1

Pentru a verifica dacă tema rulează corect, rulați checkerul.

student@vm-uso ~ $ sudo uso check

Verificati dupa ca primele 4 task-uri sunt OK (ar trebui sa fie).

Task 05 (35p)

[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

Directoarele au după nume caracterul / (slash).

Punctajul se ofera de la folderele radacina catre frunze. Asta inseamna ca s-ar putea sa faceti anumite foldere sau fisiere care sa fie in structura si checkerul sa nu le puncteze decat daca faceti intr-o anumita ordine structura. Nu este nici o problema. Atata timp cat intreaga structura va fi creata, puteti sa faceti fisierele sau folderele in orice ordine doriti si veti primi punctaj maxim.

După rezolvarea cerințelor acestui task, nu ștergeți sau modificați conținutul directorului ~/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.

Task 06 (12p)

[12p] Aflându-vă în directorul sde, folosiți o singură comandă pentru fiecare dintre cerințele următoare:

  1. Faceti o copie a folderului 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).
  2. In folderul Copie: Mutați fisierul Kraken din Instrument of destruction în Monsters.
  3. In folderul Copie: Redenumiți Hide & Seek în Hide and Seek.
  4. In folderul Copie: Redenumiți Evil $pirits în Evil Spirits.
  5. In folderul Copie: Adaugați fisierul Hunted.c în directorul Ghosts.

Cerințele de mai sus trebuie rezolvate în ordine.

După rezolvarea cerințelor acestui task, nu ștergeți sau modificați conținutul directorului ~/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.

Task 07 (28p) (WORK IN PROGRESS - NU E DE TRADUS INCA)

Pentru acest task aveți nevoie de fișierul boo.c aflat la adresa:

https://raw.githubusercontent.com/systems-cs-pub-ro/uso/master/tema1/boo.c

Hint: man wget

[8p] Creați directorul task4 în directorul uso, și descărcați în acesta fișierul boo.c.

Pentru cei cu masini virtuale pe 64 de biti, fisierul light.o poate fi descarcat de la adresa
https://github.com/systems-cs-pub-ro/uso/raw/master/tema1/64/light.o

[10p] Creați un fișier Makefile cu numele Makefile in directorul task4 care generează 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. La primirea oricăreia dintre comenzile make sau make build trebuie să se genereze fișierul executabil exec.

[5p] Adăugați o regulă în acelasi Makefile numită run care recompilează întreg programul, dacă este cazul, iar apoi îl rulează. De asemenea, adăugați și o regulă clean care șterge fișierele obiect create de voi și executabilele create.

[5p] Adăugați de asemenea in acelasi Makefile o regulă numită templates care să creeze toate fisierele intermediare (denumite boo.o, boo.s) in urma compilarii fisierului sursa boo.c.

Programele trebuie sa fie recompilate doar dacă fisierele date sunt modificate!

Pentru a primi punctaj trebuie sa urmati task-urile in ordine!

Task 08 (0p)

Finalizați tema si asigurați-vă că ați submis tema cu sudo uso submit.

student@usohomework ~ $ sudo uso submit

Avertisment

Este interzis studenților să modifice parametrii de rulare ai mașinii virtuale. Orice tentativă malițioasă de modificare a fișierelor și executabilelor care fac mașina virtuală sa ruleze in parametrii optimi (fișierele si folderele ce nu țin de enunțul temei curente), ne conferă dreptul de a oferi 0 puncte pe temele respectivului student.

sde/teme/tema_ro_1.1548867141.txt.gz · Last modified: 2019/01/30 18:52 by razvan.serban
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0