Subject name | Unix Programming Tools |
Details | Code VSITE125 Abbrev. UNIX ECTS 5 Year 3 Semester Summer semester Type elective NQF Level 6 Bachelor study E-Learning 0% |
Activities | IT zg - Win 24/25 ECTS Units Hours Total T 1 15 2 30
N 0.5 15 1 15
L 0.5 7 2 15
S 0 0 0 0
PN 0 0 0 0
PT 0 2 1 0
PR 0 0 0 0
EN 0 0 0 0
ET 0 1 2 0
AL 3 1 90 90
|
Teachers | Leaders: Ivan Capan, pred., Tomislav Soldo, pred. |
Prerequisits | None |
Content | 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.
|
Learning objectives | 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
|
Learning outcomes | 1. Log in to a UNIX/Linux system. Properly use a file system. Productively use and administrate his/her user account and shell. 2. To assemble and successfully use shell and awk scripts. 3. To write, translate, test and correct programs and program libraries in a UNIX/Linux environment with the help of gcc and gdb. 4. To productively use X-windows environment, graphical environments and desktop environments. 5. To successfully use TCP/IP stack in everyday work and in writing programs.
|
Competencies | 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
|
Recommended Literature | 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.
|
Additional Literature | |
lectures (T) | - 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.
- 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.
- Procesi, prekidi i komunikacija sa sustavom. Upravljanje procesima (zaustavljanje, prekidanje, promjena prioriteta).
Shell (naredbeni redak) - korištenje, pokretanje programa. Dozvole nad datotekama.
- 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.
- 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).
- Dodatne naprednije stvari u shell programiranju. Aritmetika u skriptama. Ulančavanje naredbi. Konfiguracija shella, aliasi, varijable okoline. Vi editor, osnovno i napredno korištenje.
- Regularni izrazi, opis što su regular expressions, zamjenski znakovi i posebni nizovi. Osnovni i napredni primjeri.
- 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.
- SED stream editor. Zamjena teksta u datoteci uz pomoć SED-a. Regularni izrazi u SED-u. Osnovni primjeri.
- GCC Gnu C compiler, opis, povijest, svojstva i upotreba. Faze prevođenja izvornog koda.
- 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.
- 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.
- 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.
- 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
- Programski jezici koji se interpretiraju i često koriste u UNIX okolini PERL, PHP, Phyton, struktura i upotreba, varijable, kontrole toka, sintaksa.
|
numeric exercises (N) | - 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.
- 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.
- Procesi, prekidi i komunikacija sa sustavom. Upravljanje procesima (zaustavljanje, prekidanje, promjena prioriteta).
Shell (naredbeni redak) - korištenje, pokretanje programa. Dozvole nad datotekama.
- 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.
- 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).
- Dodatne naprednije stvari u shell programiranju. Aritmetika u skriptama. Ulančavanje naredbi. Konfiguracija shella, aliasi, varijable okoline. Vi editor, osnovno i napredno korištenje.
- Regularni izrazi, opis što su regular expressions, zamjenski znakovi i posebni nizovi. Osnovni i napredni primjeri.
- 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.
- SED stream editor. Zamjena teksta u datoteci uz pomoć SED-a. Regularni izrazi u SED-u. Osnovni primjeri
- GCC Gnu C compiler, opis, povijest, svojstva i upotreba. Faze prevođenja izvornog koda.
- 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.
- 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.
- 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.
- 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
- Programski jezici koji se interpretiraju i često koriste u UNIX okolini PERL, PHP, Phyton, struktura i upotreba, varijable, kontrole toka, sintaksa.
|
laboratory exercises (L) | - Instalacija Debian (desktop ili server varijante) Linux-a na računalo ( u vlastitu particiju, unutar Windowsa, u virtualnu mašinu )
- 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
- Rad sa kompresiranim arhivama, cron poslovi, log direktoriji, uređivanje teksta nano editorom, mini shell skripta
- Naprednije shell skripte, petlje, uvjeti. Osnove uređivanja teksta vi editorom.
- Regularni izrazi, osnove i naprednije korištenje. Pronalaženje datoteka naredbom find. Osnove AWK skriptnog jezika.
- SED i AWK napredniji primjeri.
- GCC - prvi C kompajlirani source, primjer Makefile datoteke za malo kompleksniji C source.
|
preliminary exam - theory (PT) | - 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.
- 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.
|
exam - theory (ET) | - 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).
|
autonomus learning (AL) | - kolokviji, konzultacije, samostalno učenje, samostalno rješavanje numeričkih zadataka, samostalni rad u laboratoriju
|