Souborový systém
Výpočetní technika I
(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:
Souborové systémy
operační systém (SW) souborový systém vnější paměť – blokové zařízení (HW) 2
Souborová fragmentace
Disková 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:
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.
Některé FS mají mechanismy proti této fragmentaci. Jinak je třeba jednou za čas provést defragmentaci. 3
Čím se například liší jednotlivé FS
4
Organizace dat na pevném disku
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í.
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.
5
6
1
Pojmy „sektor“ a „cluster“
Ž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).
Sektor 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) 7
8
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
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).
FAT32 – je schopen adresovat max. 2 TB (2048 GB), max. velikost jednoho souboru je 4 GB. 9
10
Soubory s metadaty v NTFS
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). 11
Jméno $MFT
Záznam č. 0
Popis 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 12
2
Záznamy v MFT
exFAT
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.
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ů.
13
FS systémů Unix/Linux
14
FS systémů Unix/Linux Zaváděcí blok
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ů
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ář
15
Obsah i-uzlu
16
Pevné a symbolické odkazy
Každý záznam v i-uzlu obsahuje tyto informace:
Pevný odkaz (hard link):
typ souboru (soubor, adresář, symbolický link, …)
Na jedna data souboru se odkazuje z různých položek v adresářích
Symbolický odkaz (symbolic link, symlink):
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
Speciální soubor, který ve svém těle obsahuje odkaz (přes cestu a jméno) jiného souboru nebo adresáře
datum vytvoření, poslední změny a posledního přístupu adresy datových bloků 17
18
3
Soubory
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)
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)
19
20
Adresářová struktura (strom)
Adresáře (složky) Jsou pojmenované množiny adresářů a souborů
(platí pro Windows) C: \
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)
PROGRAMY TEXTY DOPISY karlovi.txt odkarla.txt SKOLA basne.doc
V jednom adresáři – jedinečná jména
22
21
Adresářová struktura v Unixu/Linuxu
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 /.
23
24
4
Specifikace souboru
Specifikace souboru
(platí pro Windows)
(platí pro Unix/Linux)
Úplná nebo neúplná – určuje cestu a jméno souboru
Úplná nebo neúplná – určuje cestu a jméno souboru
Přístup k 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
úplná specifikace: /cesta/název_souboru, kde cesta = [adresář1[/adresář2[/adresář3]]] např. /usr/bin/cp
neúplná specifikace: vynechání označení jednotky vynechání cesty pouze název souboru
neúplná specifikace: pouze název souboru
25
26
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ář 27
5