Osnova predn asky Souborov e syst emy { koncepty a rozhran PV 06 Organizace soubor u Jan Staudek http://www..muni.cz/usr/staudek/vyuka/ pojem syst emu soubor u adres arov e struktury pripojov an syst em u soubor u sdlen soubor u ochrana prklady Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Verze : jaro 018 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 1 Soubor, syst em soubor u { pojem, imaginace Z akladn sluzby pro generalizovan y prstup k vn ejs pam eti poskytuje operacn syst em funkcn komponentou zvanou syst em soubor u, File System, kter a umoz nuje vytv aret kolekce dat { soubory (files) soubory dlouhodobe uchov avat i po uzavren uzivatelovy relace soubory pojmenov avat a rdit k nim prstup soubory strukturovat tak, aby vyhovovaly konkr etn aplikaci a vztah um mezi soubory Syst em soubor u pro vetsinu uzivatel u nejviditelnejs projev OS tvor jej dve b azov e komponenty { kolekce soubor u, z nich kazd y uchov av a kolekci souvisejcch dat { adres arov a struktura, kter a organizuje a poskytuje informace o souborech ve v ypocetnm syst emu Syst em soubor u { cle { syst em soubor u m a... poskytovat sluzby spr avy dat pozadovan e uzivateli zajist'ovat validitu dat v souborech, minimalizovat, resp. odstra novat, riziko ztr aty ci poskozen dat optimalizovat v ykon z hlediska syst emu (propustnost) i z hlediska uzivatele (doba reakce) poskytovat jednotnou podporu IO pro r uzn e vnejs pameti poskytovat proces um standardizovan e API { standardizovanou sestavu postup u/program u na IO rozhran umoz novat soub eznost operac, poskytovat podporu IO a rzen prstupu vce uzivatel um soub ezn e poskytovat vhodn y syst em pojmenov av an soubor u podporovat podp urn y syst em spr avy (napr. archivaci) Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 3
Minim aln pozadavky uzivatel u na syst em soubor u kazd y uzivatel: m a mt moznost vytv aret, rusit, cst a modikovat soubory m uze mt povolen y prstup k soubor um jin ych uzivatel u m uze rdit rdit prstup jin ych uzivatel u ke sv ym soubor um m a mt moznost restrukturalizovat sv e soubory do formy vyhovujc jeho probl emu m a mt moznost presouvat data mezi soubory m a mt moznost archivovat a obnovovat sv e soubory m a mt moznost identikovat sv e soubory sv ymi symbolick ymi jm eny Syst em soubor u je souc ast OS res spr avu sdlen ych zdroj u na vnejsch pametech premost'uje nzko urov novou organizaci dat na disku (pole blok u dat) na uzivatelsk y pohled (proud/kolekce datov ych z aznam u) nemus b yt plne implementovan y v j adru OS form atovac funkce, defragmentujc programy, archivacn programy,... mohou vystupovat jako syst emov e programy typicky je odpovedn y za vytv aren a rusen soubor u a adres ar u (katalog u) soubor u podporu primitivnch operac pro manipulaci se soubory a s jejich adres ari zobrazov an soubor u do vnejs pameti archivov an soubor u, verzov an soubor u,... Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 4 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 5 Syst em soubor u, architektura Syst em soubor u, rozlozen funkcnosti Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 6 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 7
Vlastnosti (atributy) souboru udrzovan e syst emem soubor u jm eno jedin a informace clene udrzovan a ve forme citeln e clov ekem jm eno vol vytv arejc subjekt (clov ek, proces), mus b yt jedinecn e v dom ene vymezen e adres arem typ { pokud OS podporuje r uzn e typy soubor u; text, binary, load module,... organizace { pokud OS podporuje r uzn e vnitrn organizace soubor u (hasovan a, index-sekvencn,... ) umst en { ukazatel na umst en souboru v zarzen rozmer { velikost souboru (v B, KB, MB, GB), okamzit a, prid elen a Vlastnosti (atributy) souboru udrzovan e syst emem soubor u ochrana { vesm es autorizacn rdic informace id vlastnka, id uzivatel u, kter sm soubor cst, modikovat, pouzt jako program pro rzen procesu, zajist en d uv ernosti a/nebo integrity heslem cas, datum, historie { data poslednho cten/modikace, id poslednho (aktu alnho) uzivatele, data posledn archivace,... Dals vlastnosti k odov an znak u u textov ych soubor u,... Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 8 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 9 Vlastnosti (atributy) souboru udrzovan e syst emem soubor u Kde jsou uchov avan e atributy souboru (informace o souboru)? v zvl astn adres arov e strukture (na disku) { directory, v tzv. z aznamu o souboru (File Control Block ) adres ar (directory) { struktura podporujc spr avu soubor u, katalog Vlastnosti soubor u se uchov avaj v adres arov e c asti syst emu soubor u Vlastnosti souboru maj obv. rozsah cca v kilobytech Adres arov a c ast syst emu soubor u mus b yt ulozena v energeticky nez avisl e pameti { na disku Do vnitrn pameti se obv. zprstup nuje po c astech podle potreby Fyzick y soubor Fyzick y soubor x logick y soubor fyzicky existuje ve vnejs pameti je explicitne pojmenovan y vnejsm jm enem souboru manipuluje s nm OS jeho existence je zaznamenan a v adres ari soubor u Logick y soubor souborov a struktura jak ji vid proces roura, ze / do kter e proces zsk av a / dod av a data pro proces je jedinecne pojmenovan y vnitrnm jm enem souboru logick y soubor svazuje s fyzick ym souborem OS sluzbou otevren souboru (open) Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 10 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 11
Logick e x fyzick e soubory Za asociaci logick eho souboru v procesu s fyzick ym na disku odpovd a OS Pro vytvoren a rusen t eto asociace a pro cten a z apis z / do souboru proces pouzv a sluzby OS (open, close, read, write) Procesy zach azej s periferiemi jako se soubory Na disku b yv a spousta (fyzick ych) soubor u, procesy otevraj jen velmi omezen y pocet (logick ych) soubor u Jm ena fyzick ych soubor u maj vesmes jm eno vyj adren e textov ym ret ezcem Logick y soubor pojmenov av a logick e jm eno odkazujc na soubor v r amci procesu, typicky je obsahuje promenn a uvnitr programu Operace se souborem OPEN a CLOSE, zprstupn en souboru f i = Open (F i ) sv az an logick eho souboru s fyzick ym souborem OS vyhled a z aznamu o souboru F i v adres ari a presune ho do operacn pameti poctace do tabulky otevren ych soubor u F i { vnejs jm eno souboru f i { vnitrn jm eno souboru, file descriptor, file handle s otevrenm souboru lze druzit rzen prstupu v operacch proces u manipulujcch se z aznamy soubor u se pouzv a vnitrn jm eno souboru, procesy pracuj s logick ymi soubory Close (f i ) presunut z aznamu o souboru F i z tabulky otevren ych soubor u do adres arov e struktury na disku zrusen prstupov e vazby (logick eho souboru) na (fyzick y) soubor Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 1 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 13 Pojmenov av an soubor u vnejs jm ena (fyzick ych soubor u) jsou typicky textov a jm ena, jsou platn a trvale po dobu existence souboru pro vnejs pojmenov an se zav ad mnoho omezen zak azan e znaky (napr. / ) horn mez d elky jm ena form aty rozlisov an / nerozlisov an verz alek a minusek omezen dan a konvencemi n astroj u, pro kter e jsou soubory vstupem vnitrn jm ena (logick ych soubor u) jsou typicky numerick a vnitrn jm ena prideluje OS otevren ym soubor um v procesu dynamicky napr. unixovsk y fd, file descriptor nekter a vnitrn jm ena maj standardizovanou s emantiku 0, stdin / cin (C / C++) Standardn logick e soubory Standard Input, implicitne kl avesnice 1, stdout / cout (C / C++) Standard Output, implicitne obrazovka, stderr / cerr (C / C++) Standard Error, implicitne obrazovka Standardn logick e soubory se v procesu neotevraj / nezavraj, v procesu jsou denov any implicitn e, trvale Standardn logick e soubory lze v procesu presm erovat na jin y fyzick y soubor Vetsina OS zprstup nuje periferie jako speci aln fyzick e soubory, logick e soubory lze na na ne presmerovat Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 14 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 15
Prklad z Unixu Presm erov an logick eho souboru prog je program rdic proces presmerov an standardnho vstupu na soubor in.txt prog < in.txt presmerov an standardnho v ystupu na soubor out.txt prog > out.txt presmerov an standardnho vstupu na soubor in.txt a standardnho v ystupu na soubor out.txt prog < in.txt > out.txt Prklad, v C koprov an souboru na standardn v ystup hfile: logick y soubor, account.txt: fyzick y soubor include <stdio.h> int main(){ FILE *hfile=fopen(\account.txt","r"); char c; while (!feof(hfile)){ fread (&c,sizeof(char),1,hfile) ; fwrite(&c,sizeof(char),1,stdout) ; } fclose(hfile) ; return 0; } Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 16 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 17 Prklad, v C++ Funkcn e shodn y program jako predchoz prklad include <fstream> include <iostream> using namespace std ; int main(){ char c; fstream inle ; inle.open("account.txt",ios::in) ; inle.unsetf(ios::skipws) ; inle >> c ; while (! inle.fail()){ cout << c ; inle >> c ; } inle.close() ; return 0; } Vce k operacm se soubory Otevren souboru m uze mt dv e varianty otveren existujcho souboru vytvoren nov eho souboru C: otevren souboru (v rezimu z apisu) FILE *outle; outle = fopen(\account.txt", \w") ; Parametry: jm eno fyzick eho souboru, rezim r - open for reading w - open for writing (le need not exist) a - open for appending (le need not exist) r+ - open for reading and writing, start at beginning w+ - open for reading and writing (overwrite le) a+ - open for reading and writing (append if le exists) Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 18 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 19
V ce k operac m se soubory V ce k operac m se soubory C++: otev ren souboru (v re zimu zapisu) fstream out le; out le.open(\account.txt", ios::out) ; Parametry: jmeno fyzickeho souboru, re zim de novany v t r d e ios ios::in Open for input operations. ios::out Open for output operations. ios::binary Open in binary mode. ios::ate Set the initial position at the end of the le. If this ag is not set, the initial position is the beginning of the le. ios::app All output operations are performed at the end of the le, appending the content to the current content of the le. ios::trunc If the le is opened for output operations and it already existed, its previous content is deleted and replaced by the new one. PV 06, PB 15 { Souborove systemy { rozhran zru sen vazby mezi logickym a fyzickym souborem OS zajist vypsan v sech dosud do souboru nevypsanych dat Implicitn operace p ri ukon cen procesu C: fclose(out le) C++: out le.close() / zapis Cten dat z / do souboru Obvykle parametry: C: adresa bu eru, delka prvku dat, mno zstv prvku dat, logicky soubor C++: out le.write(&c,1) ; % vypis 1 znaku do out le Jan Staudek, FI MU Brno Uzav ren souboru (close) Vystaven v souboru na udane m sto Detekce konce souboru Jan Staudek, FI MU Brno 0 P r klad, program pro kop rovan souboru PV 06, PB 15 { Souborove systemy { rozhran 1 Sprava (otev renych) souboru Sprava otev renych souboru vy zaduje udr zbu jistych dat ukazatel na prav e zp r stupnovan y zaznam { naposled c teny / modi kovany zaznam samostatn e pro ka zdy proces, ktery soubor otev rel c ta c otev ren { kolikrat byl soubor otev ren, ani z by se provedlo komplementarn zav ren odstranit lze soubor, ktery nema otev reny z adn y proces p r stupova prava samostatn e pro ka zdy proces, ktery soubor otev rel Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 3
Z aznam o souboru, tabulky otevren ych soubor u Tabulky otevren ych soubor u...... procesu (1/proces) { co s kazd ym otevren ym souborem del a proces... syst emu (1/syst em) { co plat o kazd em otevren em souboru nez avisle na procesech, kter e ho maj otevren y Z aznam o souboru v tabulce otevren ych soubor u procesu ukazatel na pr ave zprstup novan y z aznam prstupov a pr ava ukazatel na tabulku otevren ych soubor u syst emu Zamyk an soubor u zamyk an podporuj nekter e OS a souborov e syst emy ovliv nov an prstupu k souboru m uze b yt podporovan e jako povinn e nebo poradn povinn e { zamcen y soubor je neprstupn y poradn { proces si m uze zjistit stav z amku a rozhodnout se co bude delat Z aznam o souboru v tabulce otevren ych soubor u syst emu umsten na disku udaje o case zprstupnen rozmer souboru ctac otevren, z amek sdlen eho zprstup nov an,... Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 4 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 5 Zamyk an soubor u, prklad Java API Zamyk an soubor u, prklad Java API, import java.io.*; import java.nio.channels.*; public class LockingExample { public static final boolean ECLUSIVE = false; public static final boolean SHARED = true; public static void main(string arsg[ ]) throws IOException { FileLock sharedlock = null; FileLock exclusivelock = null; try { RandomAccessFile raf = new RandomAccessFile( file.txt, rw ); // získej kanál pro soubor FileChannel ch = raf.getchannel(); // zamyká se první polovina souboru exclusívně exclusivelock = ch.lock(0, raf.length()/, ECLUSIVE); /** Nyní modifikace dat... */ // release the lock exclusivelock.release();... } } // zamyká se druhá polovina souboru - sdíleně sharedlock = ch.lock(raf.length()/+1, raf.length(),shared); /** Nyní čtení dat... */ // uvolnění zámku exclusivelock.release(); } catch (java.io.ioexception ioe) { System.err.println(ioe); } finally { if (exclusivelock!= null) exclusivelock.release(); if (sharedlock!= null) sharedlock.release(); } Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 6 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 7
Katalogizace soubor u je budovan a na b azi adres ar u Adres are Kolekce dat (adres arov ych z aznam u) obsahujc informace o souborech uchov avan ych na disku { adres ar s am je souborem Informace v polozk ach adres arov ych z aznam u (symbolick e, textov e) jm eno souboru typ souboru adresa umsten souboru na disku okamzit a d elka souboru maxim aln d elka souboru datum/cas poslednho prstupu datum/cas posledn korekce ID vlastnka ochrann e informace,... adres arov y z aznam vznik a pri vytvoren souboru, odstra nuje se pri odstran en souboru Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 8 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 9 Operace nad adres ari Adres are Vyhled an souboru Vytvoren souboru Zrusen souboru Poskytnut seznamu soubor u Prejmenov an souboru Proch azen souborov ym syst emem { hled an,... Adres are se (logicky) organizuj tak, aby se dos ahlo efektivnosti { soubor se rychle najde uzivatel um blzk eho, srozumiteln eho pojmenov av an { uzivatel e mohou stejne pojmenovat r uzn e soubory uzivatel e mohou r uzne pojmenovat stejn y, sdlen y soubor snadn e seskupov an { logicky podle nejak e prbuznosti Java programy, hry,... pouzvan e struktury { acyklick e grafy, stromy, B stromy,... Prnos adres ar u Adres are Soubory lze organizovat a jasne separovat na b azi vlastnictv, aplikac a prp. dalsch krit eri. To vylepsuje bezpecnost, integritu, koniktnost jmen apod. Adres ar je (specick y) soubor obsahujc informace o (ostatnch) souborech atributy souboru umsten souboru vlastnictv souboru Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 30 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 31
1-urov nov y adresa r -urov nov y adresa r Jediny adresa r v celem systemu ne re s se problem unikatnosti pojmenovav an souboru ne re s se problem sekupovan souboru (po u zivatel ch, typech,... ) v sou casnosti pouze v telefonech, kamerach, p rehrava c ch,... Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 3 Adresa r se strukturou stromu, hierarchicky adresa r Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran separace adresa ru u zivatelu soubor lze pojmenovat p r stupovou cestu, path name (user3/test) u zivatele mohou stejn e pojmenovat ruzn e soubory efektivn hledan ne re s se problem seskupovan nelze sd let { sd len se dosahuje z r zen m u zivatele system Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 33 Adresa r se strukturou stromu, hierarchicky adresa r 34 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 35
Adres ar se strukturou stromu, hierarchick y adres ar strom { grafov a struktura efektivn hled an hodnoty v uzlu { logaritmicky um ern e poctu soubor u res nez avisl e pojmenov av an i seskupov an pojem pracovn adres ar >cd /spell/mail/prog >lp list dynamicky urcovan y v ychoz bod v adres ari pojem absolutn / relativn prstupov e cesty { prstupov a cesta zacnajc v korenu stomu nebo v pracovnm adres ari... Adres ar se strukturou stromu, hierarchick y adres ar soubor lze vytvorit / zrusit v pracovnm adres ari ud anm new file-name / rm file-name nebo kdekoliv (kde se sm) dopln enm prstupov e cesty pred file-name vytvoren nov eho podadres are v pracovnm adres ari mkdir dir-name je-li pracovn adres ar /mail, pak mkdir count vytvor v podstromu s korenem /mail adres ar count s prstupovou cestou /mail/count zrusen /mail odstran cel y podadres ar /mail/... Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 36 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 37 Acyklick y adres ar umoz nuje sdlet adres are a soubory, nen strom aliasing { jeden objekt m a r uzn a jm ena jestlize se odstran list z dict/all, z ustanou ukazatel e,,do pr azdna\ resen: Adres ar s obecnou strukturou Jak zarucit, ze nedojde k zacyklen pri proch azen adres arem? povol se delat vazby (link) jen na soubory, ne na adres are Kdykoliv se prid a nov a hrana, pouzije se algoritmus detekce cyklu a ten sdel, zda je vse O.K. zpetn e ukazatele, aby bylo mozn e odstranit vsechny ukazatele probl em { z aznamy budou promenn e d elky ctace ukazatel u u objekt u objekt se rus pri vynulov an ctace Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 38 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 39
File System Mounting Pripojov an adres arov ych struktur souborov y syst em (na v ymen em m ediu, dosud nedostupn em disku) se mus,,pripojit\, tak e,,namontovat\, mount souborov y syst em se pripojuje v udan em mste st avajc adres arov e struktury, (mount point) Dobr e praktiky organizov an soubor u dat Organizace/uspor ad an soubor u je d ulezit a pro budouc zprstup nov an a zsk av an ulozen ych dat Srozumiteln a organizace usnadn lokalizaci a prohlzen soubor u dat Srozumiteln a organizace je intuitivn pro cleny pracovnho t ymu Organizace soubor u dat (projektu,...) m a b yt d usledne dokumentovan a Je potreba denovat typy dat a odpovdajc form aty soubor u, pravidlo 5 C Clear, Concise, Consistent, Correct, and Conformant Srozumitelnost, strucnost, d uslednost, spr avnost, prizp usoben Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 40 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 41 Dobr e praktiky organizov an soubor u dat Smyslupln a hierarchie adres ar u a pojmenov avac konvence vc. zahrnut kontextu alnch informac, jm eno souboru je klcov y identik ator, soubory nejsou samy-se-popisujc, nemus vzdy obsahovat metadata adres are organizovat podle predmet u prvn, druh e,... urovne logick e strukturov an pro rychl e prohlzen mnoha soubor u a jejich verz, soubory maj b yt vz ajemne rozpoznateln e v r amci adres are i mezi adres ari jm ena soubor u maj b yt kr atka a pritom v ystizn a, smyslupln a pro poradov e cslov an soubor u pouzvat prisl. pocet uvodnch 0 Pouzit kapit alek m uze ovliv novat razen v nekter ych OS(d uslednost!) Mezery mezi slovy nahrazovat kapit alkami ci podrzenm Pouzvat verzov an? Nepouzvat generick a jm ena soubor u snadno vznik a konikt pri presunu souboru mezi adres ari Sdlen soubor u, ochrana sdlen ych soubor u prirozen y pozadavek univerz alnch multi-uzivatelsk ych OS v distribuovan ych syst emech lze pozadovat sdlen po cel e sti typick a implementace sdlen je vedena pres n astroje ochrany Voliteln e rzen prstupu { Discretionary Access Control, DAC vlastnk (ten kdo soubor vytvoril) m a moznost urcovat co se d a se souborem delat kdo to m uze delat typy prstupu Read, Write, Execute, Append, Delete, List,... v distribuovan ych syst emech (v stch) ex. pozadavek na sdlen v r amci ste nejvce rozsren y n astroj { Network File System (NFS) Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 4 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 43
Sdlen soubor u, ochrana sdlen ych soubor u, Povinn e rzen prstupu { Mandatory Access Control, MAC urcov an co se d a se souborem delat kdo to m uze delat politiku rzen prstupu denuj pravidla implementovan a v syst emu jako souc ast prosazen bezpecnostn politiky subjekty vystupujc v syst emu nemaj moznost pravidla menit DAC implementuj operacn syst emy implicitn e (pokud v ubec rzen prstupu implementuj) MAC se typicky implementuje na urovni aplikace Unix { model voliteln e ochrany rezimy prstupu: read (r), write (w), execute (x) trdy uzivatel u: uzivatel (user, u), skupina (group, g), ostatn (others, o) uzivatele (user ID) a skupinu(-y) (group ID), do kter e(- ych) uzivatel patr, stanovuje spr avce pr ava prstupu k souboru urcuje uzivatel, vlastnk souboru r w x a) prstupov a pr ava vlastnka 7: 1 1 1 b) prstupov a pr ava skupiny 5: 1 0 1 c) prstupov a pr ava ostatnch 1: 0 0 1 napr. chmod 751 game Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 44 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 45 Matice povolen ych prstup u Generick y n astroj implementace (povinn eho) rzen prstupu Access control lists, ACL N astroj rzen prstupu vhodn y pro prpady, kdy je matice rzen prstupu rdk a Vlastnk souboru m uze napr. jako jedin y soubor rusit,... Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 46 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 47
Capability Tickets N astroj pro autorizaci uzivatele k jist emu ukonu Problematika konkr etnch typ u soubor u speci aln znaky v souboru OS se snaz nekdy uzivateli zivot ulehcit zivot vkl ad anm pomocn ych,,oddelovac u\ do soubor u CNTR-Z, MS-DOS, konec souboru CR LF, MS-DOS, oddelovac r adk u nahrazov an CR ctacem znak u na r adku, VMS budov an propracovan ych struktur soubor u to ztezuje skared a, spatn a,... lozoe nen nic podezrelejsho, nez kdyz ti chce nekdo udelat dobre a zd anlive za to nic nechce Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 48 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 49 Prklad syst emu soubor u { Unix, typy soubor u Prklad syst emu soubor u { Unix, typy soubor u r adn y soubor, ordinary file data vytv aren a uzivateli, aplikacemi, pomocn ymi programy,... syst em souboru nevnucuje vnitrn strukturu, jedn a se o proud slabik adres ar, directory seznam jmen soubor u plus ukazatel u na reprezentace soubor u (i-nodes, indexov e uzly) jsou to r adn e soubory, do kter ych sm zapisovat pouze system, cst v nich m uze kdokoliv vazba, link alternativn jm eno existujcho souboru symbolick a vazba, symbolic link datov y soubor obsahujc jm eno nav azan eho souboru speci aln mechanismus pro zobrazov an fyzick ych zarzen na jm ena soubor u pojmenovan e roury, named pipes komunikacn n astroj komunikaci mezi procesy formou toku slabik Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 50 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 51
Prklad syst emu soubor u { Unix, charakteristiky stromov e orientovan a struktura adres ar u koren stromu reprezentuje znak,,/\ kazd y adres ar obsahuje soubory a/nebo dals adres are jm eno v adres ari je jm eno souboru kazd y soubor lze jednoznacn e identikovat jm enem absolutn prstupov e cesty pr ave pouzvan y adres ar je pracovn adres ar soubory lze identikovat relativn e v uci pracovnmu adres ari. { tento adres ar,.. { nadrazen y adres ar Unix pred av a procesu soubor jako posloupnost byt u nestarej se kam byty ukládám a odkud je beru proces v Unixu se m uze dvat na kazdou periferii jako na soubor Prklad syst emu soubor u { Unix, typy n astroj u standardn soubory Stdout, Stdin, Stderr Stdout: v ypis na konzolu, fwrite(&ch, 1, 1, stdout); Stdin: kl avesnice, vstup, fread(&ch, 1, 1, stdin); Stderr: v ypis chyb, konzola presm erov an < f ilename: presmerov an stdin na filename > f ilename: presmerov an stdout na filename roura, trubka, pipe program1 program stdout z procesu program1 je stdin pro proces program napr. list sort Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 5 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 53 Unix System Commands, prklady cat filenames { v ypis obsahu textov eho souboru cp file1 file { koprov an file1 na file. mv file1 file { presu n (prejmenuj) file1 na file. rm filename { odstra n soubor filename chmod mode filename { zme n ochrany souboru filename ls { v ypis obsahu pracovnho adres are mkdir name { vytvoren adres are pojmenovan eho name rmdir name { odstran en adres are pojmenovan eho name... Otevr an / zavr an soubor u vn ejs a vnitrn identikace souboru vnejs identikace (lename){ pojmenov an kolekce byt u na disku, uveden a v adres ari vnitrn identikace (fd, le descriptor) { skryt detail u o umsten souboru a fyzick em form atov an pred procesem za dynamicky vytv aren ym jm enem s vnejs identikac pracuje OS a uzivatel, procesu se odpovdajc soubor zprstupn pod vnitrn identikac otevr an souboru { prprava souboru pro pouzit procesem proveren existence souboru, proveren autorizace zadatele otevren v C a C++ fd = open(filename, flags [, pmode]); flags: O APPEND, O CREAT, O ECL, O RDONLY, O RDWR, O TRUNC, O WRONLY pmode: rwe rwe rwe, (owner, group, world) Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 54 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 55
Otevr an / zavr an soubor u, cten / z apis ze / do souboru zavr an souboru fd zavran eho souboru je po zavren dostupn y pro jin y soubor OS dokonc vsechny dosud plne nerealizovan e operace z apisu z docasn ych vyrovn avacch pamet typicky implicitn (default) operace pri ukoncov an procesu cten ze souboru Read(Source file, Dest addr, Size) Source file = fd, Dest addr = ukazatel clov eho bueru v RAM Size = ctac (in i out) z apis do souboru Write(Dest file, Dest addr, Size) Source file = fd, Dest addr = ukazatel zdrojov eho bueru v RAM Size = ctac (in) Prklad syst emu soubor u { Unix, Inode rdic struktura obsahujc klcov e informace potrebn e pro operacn syst em pri spr av e jist eho, konkr etnho souboru vsechny typy soubor u jsou rzen e operacnm syst emem pomoc inode kazd y soubor je rzen y pr ave jedin ym inode aktivn inode je asociovan y pr ave s jednm inode Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 56 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 57 FreeBSD Inode a struktura souboru Kapacita souboru v FreeBSD Minim aln rozmer bloku dat = 4 KB (lze pouzt i 8 KB, 16 KB (default)) V minim aln variant e plat: { kazd y blok m uze obsahovat az 51 adres blok u (po 8 B) { maxim aln kapacita souboru je 500 GB, 4KB*(10 + **9 + **18 + **7) Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 58 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 59
Kapacita souboru v FreeBSD Ve variante s d elkou bloku 8 KB plat: { maxim aln kapacita souboru je vce nez 8 TB 8KB*(10 + **10 + **0 + **30), V implicitn variant e (d elka bloku 16 KB) plat: { maxim aln kapacita souboru presahuje 140 TB 16KB*(10 + **11 + ** + **33), Adres ar v Unixu adres ar je soubor obsahujc seznam jmen soubor u plus ukazatel u na reprezentace soubor u (i-nodes, indexov e uzly) ukazatel, i-number, je index do tabulky inode Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 60 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 61 Windows, NTFS vznik pro Windows NT, New Technology File System (NTFS) syst em soubor u pro pracovn stanice a servery souborov e servery, DB servery, v ypocetn servery pamet'ove vysoce n arocn e inzen yrsk e a vedeck e aplikace st'ov e aplikace ve velk ych korpor atnch syst emech,... Klcov e rysy obnovitelnost po v ypadku syst emu / chybe disku (vse se res jako transakce, d ulezit a data se dubluj) bezpecnost { rzen y prstup,... aplikovatelnost na velmi velk e disky a soubory (>> F AT ) jeden soubor lze plnit vypisovat vce proudy dat o vsech operacch se vede denk, zurn al cel e adres are i jednotliv e soubory lze komprimovat a sifrovat k jednomu souboru m uze v est vce cest Vce o NTFS viz predn aska Implementace syst emu soubor u Sdlen soubor u { syst em prstupu ke vzd alen ym soubor um Remote File Systems Pro zprstup nov an mezi syst emy pouzv a st'ov e sluzby manu alne { pres programy typu ftp automaticky { bezesv ym distribuovan ym souborov ym syst emem polo-automaticky { pres World Wide Web klienti pri aplikaci modelu klient-server si mohou pripojovat vzd alen e soubory uchov avan e v serverech server m uze obsluhovat vce klient u identikace klienta a uzivatele na klientu nen bezpecn a a b yv a komplikovan a standardnm protokolem sdlen soubor u podle modelu klient-server pro Unix je,,bezesv y"syst em NFS (Network File System) standardnm protokolem t ehoz typu pro Windows je CIFS (Common Internet File Services) Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 6 Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 63
Sdlen soubor u { syst em prstupu ke vzd alen ym soubor um Unikovan y prstup k informacm potrebn y pro vzd alen e poct an (remote computing) implementuj distribuovan e IS pomoc distribuovan e pojmenov avac sluzby typu: { LDAP (Lightweight Directory Access Protocol), { DNS (Domain Name Server/Service), { NIS (Network Information Services), tak e Yellow Pages od Sun Microsystems syst em ovl ad an vzd alen ych soubor u mus osetrovat nov e chybov e stavy porucha ste, porucha serveru obnovovac procedura po poruse m uze pozadovat informaci o stavu kazd eho vzd alen eho pozadavku snadnou obnovu ale m ene bezpecnou poskytuj bezestavov e protokoly typu NFS Jan Staudek, FI MU Brno PV 06, PB 15 { Souborove systemy { rozhran 64