Naziv predmeta

Programski alati na UNIX računalima

Detalji
Kod
VSITE125
Skr.
UNIX
ECTS
5
Godina
3
Semester
Ljetni semestar
Vrsta
izborni
Razina HKO 6
Preddiplomski studij
E-Learning
0%
Aktivnosti
IT zg - Zim 19/20
ECTS
Jedinice
Sati
Svega
P
1
15
2
30
A
0.5
15
1
15
L
0.5
7
2
15
S
0
0
0
0
KA
0
0
0
0
KP
0
2
1
0
PR
0
0
0
0
IP
0
0
0
0
IU
0
1
2
0
SU
3
1
90
90
NastavniciNositelji: Valentin Vidić, pred.
Asistenti: Danijel Babić, pred., Ivan Capan, asist. vis. šk., Dinko Mihovilović, asist. vis. šk.
PreduvjetiNema
Sadržaj

Unix - višezadačni i višekorisnički operacijski sustav: Povijesni razvoj Unixa. Verzije Unixa danas u upotrebi. Linux i Open Source. Tipična Unix sjednica. Unix datotečni sustav: Karakteristike, vrste datoteka, imenovanje, dozvole pristupa. Direktoriji Unixa. Hijerarhija datotečnog sustava. Standardna struktura direktorija u Unixu. Upravljanje datotekama i direktorijima. Vrste programskih alata pod Unixom: Osnovna filozofija Unix programskih alata. Alati za manipulaciju datotekama. Uređivači teksta. Alati za administriranje sustava. Awk. Interpreteri (Tcl/Tk). Ljuska (shell): Definicija. Vrste. Rad ljuske. Osnove rada sa ljuskom. Varijable, izrazi. Upravljanje datotekama. Standardne datoteke, preusmjeravanje ulaza i izlaza, povezivanje procesa kanalima (pipe). Osnove upravljanja procesima. Skripte. Uređivane teksta: Pregled uređivača teksta u Unixu. Vi editor. Osnovni rad sa vi i emacs editorima. Regularni izrazi i njihova primjena. Osnove administracije Unixa: Procesi - definicija, vrste, životni ciklus, atributi. Programski alati za praćenje i upravljanje procesa. Programiranje u unixu: Editiranje izvornog koda. C, C++ programski prevoditelji za Unix. gcc. Linker. Debuger. Tipična struktura projekta u programskom jeziku C. Make programski alat i njegovo korištenje. Osnove X-windows programskog sustava: Client - server arhitektura. X - server. Display manager. Window manager. X-terminal. Grafička okruženja.

Ciljevi učenja

OPĆA ZNANJA:
Studenti će se upoznati sa razvojnim ciklusom pisanja aplikacija koji obuhvaća planiranje, pisanje, prevođenje povezivanje, testiranje i ispravljanje pogrešaka.
Studenti će upoznati osnovne uloge koje ima operativni sustav u računalima. Studenti će se upoznati sa nastankom, svojstvima i ulogom TCP/IP-a.
POSEBNA ZNANJA:
Studenti će se upoznati sa svojstvima i ulogama: UNIX datotečnog sustava, korisničkim ljuskama, pisanjem i korištenjem skripti. Saznati će važnost i načine profiliranja programa.
Naučiti će kako da koriste, mijenjaju i skriptno obrađuju tekstualne datoteke kao osnovne jedinice pohrane podataka u UNIX/Linux okolini.
Biti će upoznati sa anatomijom grafičke okoline u UNIX/Linux sustavima , X-windows sustav, grafička okolina, desktop.
Naučiti će kako se pišu startaju i koriste UNIX/Linux sistemski servisi.
Naučiti će kako se uz pomoć make/gmake alata automatizira izrada ( build ) složenih projekata.
Biti će upoznati sa pojmom repozitorija verzija i kako se on koristi razvoju inačica složenih projekata

Ishodi učenja

1. Prijaviti se na UNIX/Linux sustav. Pravilno koristiti datotečni sustav. Produktivno koristiti i administrirati svoj korisnički račun i ljusku.
2. Uspješno sastavljati i koristiti shel i awk skripte.
3. Pomoću gcc-a i gdb-a pisati, prevoditi, testirati i ispravljati programe i programske biblioteke u UNIX/Linux okolini.
4. Produktivno koristiti X windows okolinu, grafička okruženja i desktop okoline.
5. Uspješno koristiti TCP/IP stack u svakodnevnom radu i pisanju programa

Sposobnosti

Kolegij pruža specijalistička znanja s područja programiranja kao nadogradnju jezgre računarstva i osposobljava polaznika za korištenje i razvoj programa za operacijski sustav iz obitelji UNIX sustava

Preporučena literatura

1. Richard Stevens: " Advanced Programming in the UNIX(R) Environment", Addison-Wesley, 1992. 2. Jerry Peek, Tim O'Reilly, Mike Loukides: " UNIX Power Tools, 2nd Edition", O'Reilly & Associates, 1997. 3. Arthur Griffith "GCC: The Complete Reference", McGraw-Hill Osborne Media, 2002.

Dodatna literatura
predavanja (P)
  1. Nastanak i povijest UNIX-a i osnovna UNIX svojstva i filozofija, nastanak C programskog jezika, Linux, koncept alata i sistemske pomoći. GNU licenca. Pregled distribucija Linuxa.
  2. UNIX datotečni sustav, inode i data blokovi, sadržaj inode-a, jedinstveno UNIX stablo direktorija, mode i vlasništvo svojstva datoteka i direktorija. Kako su svi elementi sustava povezani u jedinstveno stablo UNIX datotečnog sustava. Imenovanje datoteka, puna i relativna imena datoteka. Procesi, životni ciklus UNIX procesa, kernel i user space, code i data area, sistemski pozivi, informacije o procesima. Fork sistemski pozivi.
  3. Procesi, prekidi i komunikacija sa sustavom. Upravljanje procesima (zaustavljanje, prekidanje, promjena prioriteta). Shell (naredbeni redak) - korištenje, pokretanje programa. Dozvole nad datotekama.
  4. Administratorske privilegije (sudo). Obični i privilegirani korisnik. Upravljanje korisnicima i grupama. Mrežne postavke na serveru. Instalacija softvera i upravljanje arhivama. Cron - pokretanje procesa u određeno vrijeme.
  5. Preusmjeravanje ulaza i izlaza u shellu. Naredba grep za pretraživanje. Razne sitne Linux naredbe. Shell programiranje; osnovna skripta. Osnove korištenja Nano editora. Provjera uvjeta u skriptama. Kontrola toka; petlje (while, for).
  6. Dodatne naprednije stvari u shell programiranju. Aritmetika u skriptama. Ulančavanje naredbi. Konfiguracija shella, aliasi, varijable okoline. Vi editor, osnovno i napredno korištenje.
  7. Regularni izrazi, opis što su regular expressions, zamjenski znakovi i posebni nizovi. Osnovni i napredni primjeri.
  8. FIND naredba za pretraživanje po stablu direktorija. Naredba tr. AWK i sed, AWK patterni i akcije. Definicija i pisanje patterna, definicija i pisanje akcija, varijable i nizovi u awk-u, kontrola toka, ugrađene funkcije.
  9. SED stream editor. Zamjena teksta u datoteci uz pomoć SED-a. Regularni izrazi u SED-u. Osnovni primjeri.
  10. GCC Gnu C compiler, opis, povijest, svojstva i upotreba. Faze prevođenja izvornog koda.
  11. MAKE i Makefile, upravljanje procesom izrade projekta po vremenskoj bazi, važnost, načini kako se to radi, upotreba make alata u softverskim i drugim projektima. Makefile - sintaksa, varijable, macroi, pravila, uvjeti.
  12. Verzionirani repozitorij kao uređen skup verzija dijelova projekta, verzije dijelova i cijelog projekta, grane ( branches ) u repozitoriju, kako se koristi i održava repozitorij. GIT repozitorij - osnovno i napredno korištenje. Diff i patch naredbe za usporedbu tekstualnih datoteka.
  13. Koraci prevođenja gotovog softverskog paketa - naredba/skripta configure. Izrada configure skripte. Autotools alati za pomoć kod pripreme okoline za prevođenje. Izrada Debian DEB paketa. Osnove nadzora izvođenja nekog gotovog programa naredbom strace.
  14. GDB Gnu debbuger, opis, svojstva i upotreba, važnost traženja i ispravljanja grešaka u programima. Profiling, važnost analize rada programa u runtime-u, skupljanje podataka, analiza podataka, unaprijeđenje programa
  15. Programski jezici koji se interpretiraju i često koriste u UNIX okolini PERL, PHP, Phyton, struktura i upotreba, varijable, kontrole toka, sintaksa.
auditorne vježbe (A)
  1. Nastanak i povijest UNIX-a i osnovna UNIX svojstva i filozofija, nastanak C programskog jezika, Linux, koncept alata i sistemske pomoći. GNU licenca. Pregled distribucija Linuxa.
  2. UNIX datotečni sustav, inode i data blokovi, sadržaj inode-a, jedinstveno UNIX stablo direktorija, mode i vlasništvo svojstva datoteka i direktorija. Kako su svi elementi sustava povezani u jedinstveno stablo UNIX datotečnog sustava. Imenovanje datoteka, puna i relativna imena datoteka. Procesi, životni ciklus UNIX procesa, kernel i user space, code i data area, sistemski pozivi, informacije o procesima. Fork sistemski pozivi.
  3. Procesi, prekidi i komunikacija sa sustavom. Upravljanje procesima (zaustavljanje, prekidanje, promjena prioriteta). Shell (naredbeni redak) - korištenje, pokretanje programa. Dozvole nad datotekama.
  4. Administratorske privilegije (sudo). Obični i privilegirani korisnik. Upravljanje korisnicima i grupama. Mrežne postavke na serveru. Instalacija softvera i upravljanje arhivama. Cron - pokretanje procesa u određeno vrijeme.
  5. Preusmjeravanje ulaza i izlaza u shellu. Naredba grep za pretraživanje. Razne sitne Linux naredbe. Shell programiranje; osnovna skripta. Osnove korištenja Nano editora. Provjera uvjeta u skriptama. Kontrola toka; petlje (while, for).
  6. Dodatne naprednije stvari u shell programiranju. Aritmetika u skriptama. Ulančavanje naredbi. Konfiguracija shella, aliasi, varijable okoline. Vi editor, osnovno i napredno korištenje.
  7. Regularni izrazi, opis što su regular expressions, zamjenski znakovi i posebni nizovi. Osnovni i napredni primjeri.
  8. FIND naredba za pretraživanje po stablu direktorija. Naredba tr. AWK i sed, AWK patterni i akcije. Definicija i pisanje patterna, definicija i pisanje akcija, varijable i nizovi u awk-u, kontrola toka, ugrađene funkcije.
  9. SED stream editor. Zamjena teksta u datoteci uz pomoć SED-a. Regularni izrazi u SED-u. Osnovni primjeri
  10. GCC Gnu C compiler, opis, povijest, svojstva i upotreba. Faze prevođenja izvornog koda.
  11. MAKE i Makefile, upravljanje procesom izrade projekta po vremenskoj bazi, važnost, načini kako se to radi, upotreba make alata u softverskim i drugim projektima. Makefile - sintaksa, varijable, macroi, pravila, uvjeti.
  12. Verzionirani repozitorij kao uređen skup verzija dijelova projekta, verzije dijelova i cijelog projekta, grane ( branches ) u repozitoriju, kako se koristi i održava repozitorij. GIT repozitorij - osnovno i napredno korištenje. Diff i patch naredbe za usporedbu tekstualnih datoteka.
  13. Koraci prevođenja gotovog softverskog paketa - naredba/skripta configure. Izrada configure skripte. Autotools alati za pomoć kod pripreme okoline za prevođenje. Izrada Debian DEB paketa. Osnove nadzora izvođenja nekog gotovog programa naredbom strace.
  14. GDB Gnu debbuger, opis, svojstva i upotreba, važnost traženja i ispravljanja grešaka u programima. Profiling, važnost analize rada programa u runtime-u, skupljanje podataka, analiza podataka, unaprijeđenje programa
  15. Programski jezici koji se interpretiraju i često koriste u UNIX okolini PERL, PHP, Phyton, struktura i upotreba, varijable, kontrole toka, sintaksa.
laboratorijske vježbe (L)
  1. Instalacija Debian (desktop ili server varijante) Linux-a na računalo ( u vlastitu particiju, unutar Windowsa, u virtualnu mašinu )
  2. Rad u komandnoj liniji, rad na udaljenom serveru, osnovne naredbe komandne linije, pravilno adresiranje i pozicioniranje u stablu direktorija, korištenje osnovnih naredbi, chmod i chown, rad s procesima, osnove sudo naredbe
  3. Rad sa kompresiranim arhivama, cron poslovi, log direktoriji, uređivanje teksta nano editorom, mini shell skripta
  4. Naprednije shell skripte, petlje, uvjeti. Osnove uređivanja teksta vi editorom.
  5. Regularni izrazi, osnove i naprednije korištenje. Pronalaženje datoteka naredbom find. Osnove AWK skriptnog jezika.
  6. SED i AWK napredniji primjeri.
  7. GCC - prvi C kompajlirani source, primjer Makefile datoteke za malo kompleksniji C source.
kolokvij - teorija (KP)
  1. Test se polaže pismeno, traje 1 školski sat, 15 pitanja, različite težine i bodovanja (teorijski 5%, praktični 10%). Jedinice predavanja 1-8. Na oba kolokvija studenti moraju postići prosjek od 50% ili veći. U slučaju nezadovoljenja na testu, test se ponavlja u redovitim terminima zimskog ispitnog roka.
  2. Test se polaže pismeno, svako pitanje se vrednuje 5 ili 10 bodova/postotaka. Traje 1 školski sat. Jedinice predavanja 9-15. Na oba kolokvija studenti moraju postići prosjek od 50% ili veći. U slučaju nezadovoljenja na testu, test se ponavlja u redovitim terminima zimskog ispitnog roka.
ispit - teorija (IU)
  1. Zimski i ljetni ispitni rokovi: odvojeno polaganje prvog i drugog dijela gradiva ("ispravak kolokvija"), polaže se kao pismeni ispit, usmeni ispit se provodi po potrebi. Jesenski ispitni rokovi: cijelo gradivo bez obzira na rezultat kolokvija, polaže se pismeni ispit, usmeni ispit se provodi po potrebi. Jedinice predavanja 1-15. Test se polaže pismeno, svako pitanje se vrednuje sa 5 ili 10%, s tim da se pojedino pitanje može vrednovati kao netočno, djelomično točno i potpuno točno. Ocjena se određuje iz ukupnog rezultata dobivenog tako da se rezultat ispita ili kolokvija pomnoži s 0,8, rezultati na laboratorijskim vježbama s 0,13, a rezultati tjednih testova na predavanjima s 0.07. Tako dobiveni rezultat se pretvara u ocjene: 0-50% nedovoljan 50-62,5% dovoljan 62,5-75% dobar 75-87,5% vrlodobar 87,5-100% izvrstan (odličan).
samostalno učenje (SU)
  1. kolokviji, konzultacije, samostalno učenje, samostalno rješavanje numeričkih zadataka, samostalni rad u laboratoriju