PV004 - UNIX Michal Brandejs ================================================== 21.02.2013 12:05:19 - lesson I. Organisace - ukonceni zkouskou Prubeh semestru - 3x v prubehu semestru odpovedniky, min. 90 bodu (bez kontroly) - 15 otazek, T=+2, F=-1, null=0; - bude se odpovidat tak dlouho, az dosahneme 90 bodu, 14 dnu - za nesplneny odpovednik penale 5b, odecita se z 1. terminu zkousky Zkouska - 40 otazek - vetsina otazek v ISu, 1/4 otazek neznama predem - stejne bodovani jako v odpovednicich - max 80b, kolem 50b aspon E - celkem 5 terminu Literatura - slidy dostupne v stud.mat. - Michal Brandejs - UNIX - Linux Historie - vznik UNIXu 1.1.1970 (dost let pred MS-DOSem) - 2038 - konec 32bit unix systemu (ukladani casu v sekundach od zacatku ery) - 1965-9: projekt Multics - multiuser system - Thompson, Ritchie - vyvinuli svuj system, nejdriv jen pro sebe - uvnitr Unixu jsou vsechny config soubory textove -> human readable, snadno editovatelne 1971 - AT&T chteli system na spravu patentu a T&R navrhli, ze pouziji svuj OS (Unics->Unix) Technologicke zaklady - Unix ma/mel jen jeden korenovy adresar a jakekoliv zarizeni se pripojovalo nekam do stromu - k unixovym pocitacum se vzdy pristupovalo ve vice lidech (na rozdil od PC), takze od pocatku multiuser koncepce - tehdy vsechny programy v Assembleru, pro kazdy pocitac nutno prepsat kvuli technologicke roztristenosti - pochopili, ze pokud se ma system rozsirit, je nutno jej prepsat do vyssiho programovaciho jazyka -> jazyk B -> jazyk C - vyvedeni ovladani mimo pocitacove sitove -> terminaly (nemely CPU, pamet, ...) - pripojeni terminalu vzdy do hvezdy - pozdeji vyvojari Unixu jej poskytli skolam pro dalsi vyvoj ================================================== 28.02.2013 12:44:52 - lesson II. [44 mins missing] - /dev/null - I/O device - pracuje se s nim jako se souborem - /tty - terminal (teletype) ================================================== 07.03.2013 12:06:12 - lesson III. Ochrana uzivatelu - DB uzivatelu je v /etc/passwd - drive v tomto souboru se hesla zobrazovala v sifrovane podobe vsem uzivatelum, umoznovalo "hadat" hesla ze sifrovanych podob Prava uzivatelu - soubory - cteni/zapis/provedeni - adresare - vstup - odlisny od vypisu - mohu pouzit treba nejakou app z toho adresare, ale nesmim si ho vypsat (musim znat jmeno app) - vypis - ls - modifikace - zapis/mazani souboru Login - usrname lower-case - server pred prihlasenim nemusi vedet, jaky typ terminalu pouzivame, proto nemusi fungovat nektere klavesy (Backspace) - zpocatku byly terminaly od ruznych firem a ridici klavesy mely jine kody - po prihlaseni se vypisuji systemove zpravy (e.g. zpravy admina) - spusti se shell (skorapka - obaluje system a vidime ze systemu jen tu "skorapku") - vypise se vyzva shellu $ (if superuser, pak vyzva #) - shallu je vice druhu Shall - obecna pravidla - case-sensitive - historie prikazu - man bash - dokud neni odeslan prikaz, lze posledni znak smazat prikazem a cely prikaz zrusit - zpravidla BACKSPACE, je to ruzne na ruznych terminalech ================================================== 14.03.2013 12:14:14 - lesson IV. Systemy souboru - File Systems - systemy souboru se lisi podle uloh - zda musi resit pristupova prava, bezpecnost, ... Doplnujici FS - doplnujici FS - systemy souboru pripojene k unixovemu FS, napriklad flashdisk - na windows nekolik FS oznacene pisemen (c:\) - v unixu jeden FS (s rootem), dalsi FS se pripojuji az nekam do stromu - neni mozne okamzite odpojit doplnkovy FS, protoze se zapisuje do cache a pak az na dane zarizeni Zapisovani z cache na disk - daemon - obcas se vzbudi, podiva se do cache a zapise to na disk (spousti se ruzne casto) System souboru - struktura - formatovani - low-level obvykle u vyrobce, struktury stop, sektoru - nikdo je nevidi - vytvoreni FS - prostor pro soubory, pro informace o souborech, pro informace o FS - unix: implicitne je schopen rozdelit na 8 oblasti - win: max 4 oblasti, pak partiotiony (c:\, d:\, e:\, ...) - v kazde oblasti se vytvari zavadeci blok - prostor na zacatku sektoru - neni pro ukladani dat - urcen pro bootovani OS, BIOS tam hleda zavadec OS - krok nezavisly na OS - zavadec uz vi, odkud nacitat soubory OS - seznam i-uzlu - umoznuje fragmentaci souboru - i-uzel je file/dir Zakladni unixovy FS - filename - max 255 znaku, zkracovan bez warningu - finename muze obsahovat jakekoliv znaky krome ridich znaku (\,/,:,*,?), ale zpusobuje to problemy s kodovanim apod. - a protoze uzivatele jsou curaci, tak to stejne pouzivaji... - filnemay jsou case sensitivni - filename s teckou na zacatku je implicitne hidden - backslash ma v shellu vyznam: "nasledujici ridici znak ztraci svuj ridici smysl" - absolutni cesta musi obsahovat na zacatku lomitko - relativni cesta nezacina lomitkem a vede od bezneho adresare - pracovni (bezny) adresar - dir, ve kterem uzivatel zrovna je, muze v nem pracovat pouze s nazvy souboru napr. - kazdy adresar ma: ~ . (current dir) ~ .. (parent dir) Obsah souboru - v textovem souboru radky oddelene LF (line feed) (na win CR/LF) - informace o souborech - seznam i-uzlu (i-node) - tabulka - kazdy file/dir ma prave jeden radek = 1 uzel - adresar je soubor, ktery obsahuje informace o tom, jake soubory/adresare obsahuje - pocet i-uzlu pevne dan podle velikosti media - max pocet souboru na systemu souboru / mediu | implicitne reseno - radky ocislovany - na unixu mohou dve jmena souboru odkazovat na 1 i-node a jedna data - tvrdy odkaz - root dir zacina na cisle i-node 2 (. - 2, .. - 2) - subdir - current_dir - cislo adresare, parent_dir ma cislo nadrazeneho adresare - maximalni velikost souboru je omezena velikosti media a tim, zda FS je 32bit/64bit - u 32bit se uklada velikost souboru 32bitove, coz je cca 2 GB (na FAT32 4 GB) ================================================== 21.03.2013 12:07:55 - lesson V Symbolické odkazy - odkazy na slozky - tvrde odkazy na dir nelze, protoze by dir mel vice parent_dir - odkazy mimo FS - pri vytvareni symbolickeho odkazu se alokuje dalsi i-nod, da se mu priznak S (symb. odkaz), da se mu jmeno a v datech je uvedeno, na co odkazuje I-nods (i-uzly) - i-nods, ktere se aktualne pouzivaji, maji kopii v RAM - v RAM jsou navic docasne nfo o i-uzlech ================================================== 28.03.2013 12:03:50 - lesson IV Specialni soubory - FIFO - pojmenovana roura (pipe) ~ mknod jmeno p - prenos dat mezi procesy - pouziva se pokud nejaky proces umi ukladat pouze do souboru, jiny proces je chce treba filtrovat a je jich moc (cela by se nevesla na HDD) - neni vhodne je ukladat, ale poustet do pipy, ktera je vede do dalsiho procesu - nemuze plnit funkci bufferu, pokud data neprijima, odesilatel dat se zastavi Typicky dresarovy strom - 1 root - obvykle obsahuje: ~ /unix, /bsd - v nekterych OS jadro OS ve slozce ~ /bin/ls, cp, sh, ... - zakladni systemove programy ~ /dev - spec. soubory pro I/O devs ~ /etc - predevsim config soubory ~ /lib - knihovny` ~ /mnt - prazdny dir na pripojeni jinych FS ~ /tmp - verejne temporarni soubory ~ /usr/bin, etc, lib, tmp - rozsireni zakladnich slozek z kapacitnich duvodu (root by mel byt co nejmensi) ~ /usr/include - hlavickove soubory pro C prg ~ /usr/local - lokalni instalace programu, aby nebyly v adresarich OS, muze se pouzivat system packagu - prg se instaluji do slozek podle programu, v tom normalni struktura, akorat vsechny soubory patri jenom danemu programu; nutno pak doplnit v globalnich vars ~ /var/spool - temp soubory pro vystup programu na vystupni zarizeni, aby to neblokoval proces po celou dobu behu Pristupova prava - vlastnik souboru - skupina vlastnika - GID skupiny, ve ktere byl user pri vytvoreni filu - pristupova prava - 12 bitu informace : rwx|r-x|r-x --rozdeleni po trojicich, prvni: vlastnik (owner), druha: skupina (usr nemusi byt prihlasen do skupiny, staci clenstvi) (group), treti ostatni uzivatele (others) - urcuji se v poradi UGO - v pripade filu vyznamy: r - can read data w - can write data x - can execute (if binary) - muze byt pravo x, ale ne pravo r - nemuzu si ho zkopirovat, otevrit, ale muzu ho jen spustit - v pripade dir vyznamy: r - can list w - can mk, rm files x - can enter dir (umoznuje i zpristupnit i i-nods, ktere jsou v tom adresari) - problem, ze kdyz muzu zapisovat, tak muzu i mazat, problem hlavne u /tmp - resi se mechanismem "sticky bit" : tmp: drwxrwxrwx -vsichni by mohli mazat, proto: drwxrwxrwxt - soubor muze zlikvidovat pouze vlastnik adresare - Set User ID (SUID) - spusteni souboru pod ID jineho usera - Set Group ID (SGID) - totez pro skupinu - znak plus na konci radku s pravy - novy system prav, seznamy prav uzivately k jednotlivym objektum (velmi flexibilni) - umask - zmena implicitniho nastaveni prav - chmod - zmena prav souboru, pouze pro vlastnika ================================================== 04.04.2013 12:43:30 do dvojice apostrofu se uzaviraji znaky, ktere ztraci svuj ridici vyznam - jakekoliv znaky vyjma apostrofu ================================================== ================================================== Prikazy bc - calc vi - text editor ls - dir listing -l - detailni vypis -a - vypise skryte soubory -i - vypise i cislo i-node -d - vypis udaje o polozce, nikoliv obsah adresare /bin/ls - to samy co ls sleep - psani prikazu do zasoby (cekani v sekundach): # sleep 6 date [ceska 6 sekund] 07.03.2013 13:03:59 # stty -a - nastaveni terminalu kill - slusne ukonceni kill -9 - nasilne ukonceni passwd - zmena hesla touch - nastavovani charakteristik souboru - bez parametru na soubor, ktery neexistuje, vytvori blank file rm - remove file rmdir - remove empty dir mv - move file ln - vytvori tvrdy odkaz ~ ln target link_name mknod - vytvoreni uzlu ~ mknod jmeno p - vytvoreni pipy umask - zmena implicitniho nastaveni prav pri vytvareni, pouze do odhlaseni chmod - zmena prav souboru