Timp de lucru: 7 zile + 1 zi
Punctaj: 0.6 puncte din nota finală
Formular de trimitere temă: http://goo.gl/D4TP4v
Tema va fi considerată rezolvată la data trimiterii codului pe site. NU se acceptă întârzieri!
Versiunea curentă: versiunea 6
Matt Smith
și David Tennant
uso
:
Versiunea curentă: v15 - “Divide et impera!”
uso
apt-get
git
uso start
. Atenție, această comandă șterge toate fișierele create și aduce repository-ul în starea inițială!
Clonați în directorul /home/student
repository-ul disponibil la adresa https://github.com/systems-cs-pub-ro/uso
. Directorul creat după clonare trebuie să aibă numele uso
.
Adaugați în directorul uso
urmatoarea structură de directoare și fișiere:
seriale/ ├── dr. who/ │ └── 2005/ │ ├── Cristopher Eccleston │ ├── David Tennant │ └── Matt Smith └── stargate/ ├── atlantis/ │ └── Ronon Dex ├── sg1/ │ └── Jack O'Neil └── universe/ └── Dr. Nicholaus Rush
Directoarele au după nume caracterul /
(slash)
Adaugați toate fișierele în git și efectuați un commit cu mesajul initial commit
(Hint: try.github.io și git-scm.com/doc)
Redenumiți fișierul Jack O'Neil
în Jack O'Neill
și adăugați fișierul Teal'c
în directorul sg1
. Având în vedere că ați făcut modificări, trebuie să mai adaugați un commit în repository care să cuprindă aceste modificări. Fiecare commit trebuie să aibă un mesaj atașat. Pentru acest commit trebuie să folosiți mesajul sg1-season 1
.
Adăugati fișierul John Hurt
în directorul 2005
(din dr. who
). Scrieți în fișierul Matt Smith
textul Geronimo!
. Scrieți în fișierul David Tennant
textul Allons-y!
. Scrieți în fișierul John Hurt
textul Oh, for god's sake!
. Adaugați un commit care să cuprindă aceste modificări și care are mesajul day of the doctor
.
Instalați și folosiți pachetul gitk
pentru a inspecta ușor istoricul modificărilor din repository-ul de Git
Pentru acest task aveți nevoie de fișierul obiect hello.o
aflat la adresa https://github.com/systems-cs-pub-ro/uso/blob/master/tema1/help/hello.o?raw=true
Creați directorul ~/uso/tema1/hello/
și descărcați fișierul obiect hello.o
(Hint: man wget
) în directorul anterior creat.
Fișierul obiect hello.o
conține un apel la funcția world()
de tip void
. Funcția nu a fost implementată în fisierul obiect descarcat.
Fără a modifica fișierul obiect hello.o
, trebuie să implementați funcția void world()
într-un fișier sursă world.c
care să afișeze textul world
. Fișierul world.c
se va compila in fișierul obiect world.o
si apoi sa va genera executabilul hello
.
În plus, se cere să creați un fișier Makefile cu numele Makefile
care generează executabilul hello
folosind atât fișierul obiect hello.o
cât și fisierul obiect world.o
obținut în urma compilării sursei .c
implementată anterior. La primirea oricăreia dintre comenzile make
sau make build
va fi generat fișierul executabil hello
iar în momentul rulării acestuia se va afișa textul Hello world
.
Deschideți directorul ~/uso/tema1/asm
. Scrieți un fișier Makefile cu numele Makefile
astfel încât din fișierul hello.s
să rezulte un executabil cu numele hello
la primirea comenzilor make
sau make build
. Adăugați o regulă numită run
care recompilează întreg programul, dacă e cazul, apoi îl rulează.
Deschideți directorul ~/uso/tema1/year
. Scrieți un fișier Makefile cu numele Makefile
care compilează fișierul sursă year.c
astfel încât anul indicat la output să fie cel curent (2014). Adăugați regulile run
și clean
astfel încât la apelarea make run
să se ruleze programul, iar la apelarea make clean
să șe șteargă eventualele fișiere obiect și executabilul rezultat.
Nu este permisă modificarea fișierului sursă!
Compilând sursele și respectând indicațiile de instalare, instalați în mașina virtuală terminalul de aici: https://github.com/Swordfish90/cool-retro-term
.
Bonusul este luat în considerare doar dacă s-a obținut punctaj maxim la toate taskurile din temă.