Výpočetní technika I Souborové systémy
Souborový systém (File System – FS) Způsob organizace informací (souborů) ukládaných na bloková zařízení – paměťová média (disky, pásky, CD, DVD, BD, ...) počítače. Souborový systém definuje způsob vytváření, ukládání a přístupu k souborům a adresářům, hlídá volné místo apod. Různé operační systémy podporují (= jsou schopny používat) různé FS. (OS = program, FS = struktura) Různé FS mají různé možnosti a omezení (klady/zápory). FS se na blokovém zařízení vytváří formátováním. FS tvoří jakési rozhraní mezi vnější pamětí a OS: operační systém (SW) souborový systém vnější paměť – blokové zařízení (HW)
Souborová fragmentace Jev, kdy nejsou data uložena na nějakém médiu souvisle (např. na pevném disku). Nesouvislé uložení pak může způsobit zpomalení práce s daty: Některé FS mají mechanismy proti této fragmentaci. Jinak je třeba jednou za čas provést defragmentaci.
Disková fragmentace Mezi jednotlivými uloženými soubory jsou volné oblasti, tzn. soubory jsou roztroušeny po celém disku a volné místo není kompaktní. Opět pomůže defragmentace.
Čím se například liší jednotlivé FS Rozlišování velkých a malých písmen v názvech souborů/adresářů. Maximální délka názvu souboru/adresáře, povolené znaky názvu. Maximální velikost souboru. Možnost omezení přístupu k datům pomocí přístupových práv. Možnost nastavit diskové kvóty uživatelům (přidělený prostor). Možnost automatické komprese ukládaných souborů. Možnost automatického šifrování ukládaných souborů. Atributy (vlastnosti), které lze u souborů nastavovat. Schopnost žurnálování transakcí.
Organizace dat na pevném disku Pevné disky jsou obvykle logicky rozděleny na oddíly (partition), takže souborový systém se rozkládá jen na konkrétním oddílu a ne na celém disku. To umožňuje mít na pevném disku více nezávislých souborových systémů, které mohou být různého typu. Infomace uložené v systému souborů dělíme na metadata a data. Metadata popisují strukturu systému souborů a nesou další služební a doplňující informace, jako je velikost souboru, čas poslední změny souboru, čas posledního přístupu k souboru, vlastník souboru, přístupová práva k souboru, seznam paměťových bloků, které nesou data vlastního souboru apod. Pojmem data pak míníme vlastní obsah souboru, který můžeme přečíst, když soubor otevřeme.
Pojmy „sektor“ a „cluster“ oblast vnější paměti (především diskové) vytvořená při fyzickém formátování nejmenší teoreticky adresovatelný blok IBM formát pro sektor má velikost 512 B Cluster [čti klastr] nejmenší skutečně adresovaný blok velikost – dle použitého FS a kapacity disku – cluster zabírá nejméně 1 sektor, v praxi 2n sektorů (např. 8 sektorů, tedy 4 kB)
Žurnálové souborové systémy Žurnálový filesystém si uchovává informace o operacích, které provedl, a je pak v případě výpadku schopen rychle se dostat zpět do konzistentního stavu. Principem techniky je uchovávání chronologického záznamu prováděných operací, do kterého se zapisují všechny prováděné činnosti. Pokud dojde např. k výpadku napájení, je po restartu nekonzistence opravena návratem do předchozího zaznamenaného stavu za pomoci záznamů z žurnálu. Mezi tyto souborové systémy patří např. NTFS (Windows), HFS+ (Mac OS X) a ext3, ReiserFS, XFS a JFS (Linux).
Souborové systémy FAT16 a FAT32 FS pevných disků, který používaly systémy Windows 9x FAT = File Allocation Table FS používá clustery o velikosti 4–32 kB (tedy 8–64 sektorů). Každý cluster má svou jedinečnou adresu, menší blok dat nelze adresovat. U FAT16 je adresa clusteru 16bitová, u FAT32 32bitová. Čím větší je disk, tím větší musí být clustery, protože počet adres je omezený (216, resp 232). FAT16 – max. 216 clusterů, při max. velikosti clusteru 32 kB je schopen adresovat max. 2 GB FAT32 – je schopen adresovat max. 2 TB (2048 GB), max. velikost jednoho souboru je 4 GB.
NTFS Souborový systém pro Windows NT, 2000, XP, Vista, 7 vývoj od roku 1993, od verze 1.0 po verzi 3.1 (viz Wikipedia), pro adresaci clusterů používá 64 bitů, clustery 0,5 až 64 KiB (nejčastěji 4 KiB), max. délka názvu souboru: 255 znaků (UTF-16), v názvech lze používat malá velká písmena, ale systém je „case insensitive“, max. velikost oddílu: teoreticky až 264–1 clusterů (záleží na OS), max. velikost souboru: teoreticky až 264–210 B (záleží na OS).
NTFS Podpora disků až do 256 TB a souborů až do 2 TB, max. počet souborů: 232 – 1 (přes 4 miliardy), základem je jediný soubor MFT (Master File Table), který uchovává informace o všech souborech a adresářích (jméno, typ, omezení přístupu a další), možnost komprese nebo šifrování souborů, podpora uživatelských kvót (přidělený prostor), ACL (Access Control List) – podpora pro přidělování práv k souborům a složkám, oproti FAT a FAT32 je systém bezpečnější, spolehlivější a méně náchylný k chybám (žurnálový FS transakční zpracování požadavků), používá několik souborů s metadaty (viz Wikipedia).
Soubory s metadaty v NTFS Jméno Záznam č. Popis $MFT Master File Table $MFTMirr 1 Kopie prvních 16 záznamů MFT (bezpečnost) $LogFile 2 Transakční logovací soubor (žurnálování) $Volume 3 Obsahuje sériové číslo svazku, čas vytvoření $AttrDef 4 Definice atributů . 5 Kořenový adresář disku $Bitmap 6 Obsahuje mapu použití clusterů (použité vs. volné) $Boot 7 Bootovací záznam jednotky $BadClus 8 Seznam špatných clusterů na disku $Secure 9 Nastavení přístupových práv k souborům $UpCase 10 Přidělení velkých znaků k malým
Záznamy v MFT V jednom nebo více MFT záznamech NTFS ukládá metadata, která popisují vlastnosti souboru nebo adresáře (bezpečnostní nastavení, atributy, …) a jeho umístění na disku. Data malého souboru (max. stovky B) se ukládají přímo do MFT záznamu, jinak záznam obsahuje adresy clusterů. Adresář je specifický soubor nesoucí odkazy na ostatní soubory a adresáře, které obsahuje.
exFAT Extended File Allocation Table, proprietární souborový systém od firmy Microsoft určený především pro přenosné flash disky jako náhrada za již nevyhovující FAT32, nativně ve Windows 7, Vista SP1 a po instalaci aktualizace KB955704 funguje i ve Windows XP SP2 a SP3, oproti FAT32 jsou navýšeny limity (podpora disků až do velikosti 128 EiB a souborů až do 16 EiB, zvýšen max. počet souborů v jedné složce), podpora pro ACL (přidělování přístupových práv) – v současné době pouze u Windows CE 6.0, podpora pro žurnálování transakcí (volitelná funkcionalita, její implementace závisí na výrobci zařízení; transakce v exFAT dostaly název TFAT), CHYBÍ možnost komprese a šifrování souborů.
FS systémů Unix/Linux Různé systémy souborů: Linux: Ext2, Ext3, ReiserFS, XFS, JFS, … Většinou „vyspělé“ FS s vhodnými vlastnostmi (transakční zprac., ochrana dat, kvóty, mechanismy proti fragmentaci) Většinou však nepodporují kompresi a šifrování Struktura systému souborů: Zaváděcí blok – může obsahovat zaváděcí program Superblok – popisuje systém souborů Seznam i-uzlů Seznam datových bloků
FS systémů Unix/Linux Zaváděcí blok Superblok Seznam i-uzlů obsahuje kratičký program k zavedení jádra OS do paměti Superblok popisuje parametry a stav FS (velikost, počet volných bloků, čas poslední kontroly na chyby a další) Seznam i-uzlů seznam indexových uzlů (i-node); jeden soubor je popsán právě jedním i-uzlem; každý i-uzel má unikátní číslo, ale neobsahuje název souboru Seznam datových bloků zde jsou uloženy soubory Jména souborů s čísly i-uzlů spojuje až adresář
Obsah i-uzlu Každý záznam v i-uzlu obsahuje tyto informace: typ souboru (soubor, adresář, symbolický link, …) přístupová práva pro tři různé úrovně uživatelů počet odkazů na soubor (na týž i-uzel) vlastník souboru a skupina, do níž vlastník patří velikost souboru v bytech datum vytvoření, poslední změny a posledního přístupu adresy datových bloků
Pevné a symbolické odkazy Pevný odkaz (hard link): Na jedna data souboru se odkazuje z různých položek v adresářích Symbolický odkaz (symbolic link, symlink): Speciální soubor, který ve svém těle obsahuje odkaz (přes cestu a jméno) jiného souboru nebo adresáře
HFS+ Hierarchical File System Plus Filesystém používaný na počítačích s Mac OS X (iMac, MacBook) i v přehrávači iPod Žurnálový systém (transakční zpracování) Určitá ochrana proti fragmentaci Podpora disků a souborů až do 8 EB Max. 4,3 mld souborů na 1 disku Možnost šifrování domovské složky Možnost komprese souborů na pozadí Skupiny uživatelů a přístupová práva – jako v Unixu (User / Group / Everyone; Read / Write / Execute)
Soubory Pojmenovaná konečná posloupnost bytů s definovaným umístěním ve vnější paměti Jde o základní blok dat určitého typu Název souboru: obvykle maximálně 255 znaků za tečkou přípona – určuje typ souboru (např. .PDF) Mají atributy (různé v různých souborových systémech)
Adresáře (složky) Jsou pojmenované množiny adresářů a souborů Tvoří hierarchickou strukturu Mají jména jako soubory Na každém zařízení – kořenový adresář (platí pro Windows) Kořenový adresář značíme \ (Windows), resp. / (Unix/Linux) V jednom adresáři – jedinečná jména
Adresářová struktura (strom) (platí pro Windows) C: \ PROGRAMY TEXTY DOPISY karlovi.txt odkarla.txt SKOLA basne.doc
Adresářová struktura v Unixu/Linuxu Je jen jedna velká stromová struktura začínající v kořenovém adresáři. Další jednotky vnějších pamětí se připojují k adresářům (když chceme např. přistupovat k souborům na disketě, tak ji připojíme do adresáře /mnt/floppy). Linux/Unix rozlišuje velká a malá písmena (standardně se u názvů souborů i adresářů používají malá písmena), jména souborů jsou dlouhá max. 255 znaků (ext2 fs) a k oddělování názvů adresářů a souborů používá normální lomítko /.
Adresářová struktura v Unixu/Linuxu
Specifikace souboru (platí pro Windows) Úplná nebo neúplná – určuje cestu a jméno souboru Přístup k souboru úplná specifikace: jednotka:\cesta\název_souboru, kde cesta = [adresář1[\adresář2[\adresář3]]] např. C:\Program Files\Mozilla Firefox\firefox.exe neúplná specifikace: vynechání označení jednotky vynechání cesty pouze název souboru
Specifikace souboru (platí pro Unix/Linux) Úplná nebo neúplná – určuje cestu a jméno souboru Přístup k souboru úplná specifikace: /cesta/název_souboru, kde cesta = [adresář1[/adresář2[/adresář3]]] např. /usr/bin/cp neúplná specifikace: pouze název souboru
Cesta (platí pro Windows i Unix/Linux) Cesta určuje konkrétní adresář v hierarchické struktuře Jednotlivé podadresáře oddělujeme \ (Windows), resp. / (Unix/Linux) Cesta může být úplná (od kořenového adresáře) relativní (od aktuálního adresáře) Speciální adresáře .. označuje rodičovský adresář . označuje běžný adresář