Invia.cz
Last minute
Tunisko
Dovolená v Chorvatsku
Pojeďte do Egypta
Bulharsko
Vydělávejte peníze s INVIA.CZ
Souborový systém (anglicky filesystem) je označení pro způsob organizace informací (ve formě souborů) tak, aby bylo možné je snadno najít a přistupovat k nim. Souborové systémy mohou používat paměťová média jako pevný disk nebo CD, mohou poskytovat přístup k datům uloženým na serveru (síťové souborové systémy, např. NFS, SMB nebo 9P) nebo mohou poskytovat přístup k čistě virtuálním datům (např. procfs v Linuxu). Souborový systém umožňuje ukládat data do souborů, které jsou označeny názvy. Obvykle také umožňuje vytvářet adresáře, pomocí kterých lze soubory organizovat do stromové struktury.
Obsah |
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.
Informace 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, oprávnění v systému souborů, seznam bloků dat, které tvoří vlastní soubor atd. Pojmem data pak míníme vlastní obsah souboru, který můžeme přečíst, když soubor otevřeme.
Software, který realizuje souborový systém, bývá obvykle součástí operačního systému. Většina operačních systémů podporuje několik různých souborových systémů. V Microsoft Windows nalezneme podporu pro souborové systémy FAT a NTFS a ISO 9660 pro ukládání souborů na CD a DVD. V Linuxu nalezneme kromě již zmíněných také ext2, ext3, ReiserFS, JFS, XFS a mnoho dalších. DOS podporuje systémy FAT, po instalaci CD/DVD driveru také ISO 9660. Solaris podporuje především UFS a ZFS, ale i mnoho dalších.
Zápis dat a metadat do systému souborů probíhá v několika krocích. Proto nejsou data a metadata v každém okamžiku konzistentní. Dojde-li v takové chvíli k havárii počítače (např. výpadek elektrického proudu, chyba hardware, software a podobně), zůstane systém souborů v nekonzistentním stavu. Z tohoto důvodu je při dalším startu operačního systému vhodné, aby byla provedena kontrola a nekonzistentní data byla opravena. K tomu může dojít automaticky (např. v Linuxu nebo ve Windows 95 a novějších systémech) nebo je nutné spustit kontrolu ručně (systémy DOS).
Celková kontrola systému souborů a všech vazeb mezi daty a metadaty je časově velmi náročná operace, při které navíc může dojít ke zbytečné ztrátě již částečně zapsaných informací. Proto jsou moderní systémy souborů rozšířeny o žurnálování, které umožňuje po havárii rychlou opravu eventuálních nekonzistencí. 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 žurnálovací souborové systémy patří např. NTFS, HFS+, ext3, XFS nebo ReiserFS.
Kvóty (anglicky quota) jsou limity nastavené správcem systému, které určitým způsobem omezují použití souborového systému.
Nejčastěji se kvóty používají na omezení následujících věcí:
Dále může administrátor systému nastavit varování, tzv. soft quota, které uživatele informuje v případě, že se blíží ke svému limitu (který je pak nazýván hard quota). Často se také nastavuje tzv. grace interval, který v případě potřeby umožňuje krátkodobé mírné překročení kvóty.
Síťové souborové systémy (network filesystem) je označení pro systémy souborů, které jsou dostupné prostřednictvím počítačové sítě. Ve skutečnosti leží soubory a adresáře na jiném počítači a přistupujeme k nim pomocí speciálních síťových volání služeb (např. SMB, NFS, CODA apod.). Na vzdáleném počítači jsou pak soubory a adresáře fyzicky uloženy v podobě klasického systému souborů. Speciálními síťovými systémy souborů jsou distribuované souborové systémy (např. GFS v Linuxu), které se mohou rozkládat na několika počítačích, které jsou navzájem propojeny pomocí počítačové sítě.
V poslední době se začínají objevovat souborové systémy, které se odklánějí od klasické hierarchické struktury souborů a přiklánějí se více k databázovému pojetí reprezentace dat založené na jejich charakteristikách, tj. například na typu souboru, datu vytvoření, autoru a jiných metadat.
| Souborový systém | Maximální délka názvu souboru | Použitelné znaky v názvech adresářů25 | Maximální délka cesty | Maximální velikost souboru | Maximální velikost diskového oddílu 4 | Vyvinul | Používáno od r. | Původní operační systém |
|---|---|---|---|---|---|---|---|---|
| V6FS | 14b26 | libovolný bajt kromě NULL a / 26 | Bez omezení12 | 8MB | 2TB | Bell Labs | 1972 | Version 6 Unix |
| V7FS | 14b26 | libovolný bajt kromě NULL a / 26 | Bez omezení12 | 1GB | 2TB | Bell Labs | 1979 | Version 7 Unix |
| FAT12 | 255b | Unicode kromě NULL24 26 | Bez omezení12 | 32MiB | 32MiB až (??) 512MiB | Microsoft | 1980 | QDOS |
| FAT16 | 8b (původně) / 255b (pouze LFN / VFAT) | Unicode kromě NULL24 26 | Bez omezení12 | 2 Gib / 4GiB | 16MiB až 4GiB | Microsoft | 1983 | MS-DOS verze 2 |
| FAT32 | 8b (DOS bez LFN) / 255b (pouze LFN / VFAT) | Unicode kromě NULL24 26 | Bez omezení12 | 2 Gib / 4GiB | 2 TiB7 | Microsoft | 1997 | Windows 95c |
| FATplus | 255b | Unicode kromě NULL24 26 | Bez omezení12 | 256GiB | 2TiB | Udo Kuhnt a další | 2006 | Enhanced DR-DOS |
| MFS | 30b | libovolný bajt kromě NULL 26 | Bez omezení12 | ? | ? | Apple | 1983 | Mac OS |
| HFS | 30b24 | libovolný bajt kromě NULL 26 | Bez omezení12 | ? | ? | Apple | 1985 | Mac OS |
| OFS54 | ? | ? | ? | ? | ? | Metacomco pro Commodore | 1985 | Amiga OS |
| HPFS | 255b | Všechny bajty kromě NULL27 | Bez omezení12 | 4GB | 8GB až 2TB13 | IBM & Microsoft | 1988 | OS/2 |
| NTFS | 255b | Unicode kromě NULL | Bez omezení12 | 16EB | 16EB | Microsoft, Gary Kimura, Tom Miller | 1995 | Windows NT |
| HFS+ | 255 znaků1 | Unicode kromě NULL 2 26 | ? | 8EB | 8EB | Apple | 1998 | Mac OS |
| FFS | 255b | Libovolný bajt kromě NULL26 | Bez omezení12 | 4GB | 256TB | Kirk McKusick | 1983 | 4.2BSD |
| Amiga FFS (Amiga) | 255b | Libovolný bajt kromě NULL26 | Bez omezení12 | 4GB | 256TB | Commodore | 1987 | Amiga OS verze 1.3 |
| UFS1 | 255b | Libovolný bajt kromě NULL26 | Bez omezení12 | 4GB až 256TB | 256TB | Kirk McKusick | 1994 | 4.4BSD |
| UFS2 | 255b | Libovolný bajt kromě NULL26 | Bez omezení12 | 512GB až 32PB | 1YB | Kirk McKusick | 2002 | FreeBSD 5.0 |
| NILFS | ? | ? | ? | ? | ? | NTT | 2005 | Linux |
| ext2 | 255b | libovolný bajt kromě NULL a / 26 | Bez omezení12 | 16GB až 2TB4 | 2TB až 32TB | Rémy Card | 1993 | Linux |
| ext3 | 255b | libovolný bajt kromě NULL a / 26 | Bez omezení12 | 16GB až 2TB4 | 2TB až 32TB | Stephen Tweedie | 1999 | Linux |
| ReiserFS V3 | 4032b/255znaků | Libovolný bajt kromě NULL26 | Bez omezení12 | 8TB8 | 16TB | Namesys | 2001 | Linux |
| Reiser4 | ? | ? | Bez omezení12 | 8TB na x86 | ? | Namesys | 2004 | Linux |
| XFS | 255b | Libovolný bajt kromě NULL26 | Bez omezení12 | 9EB12 | 9EB12 | SGI | 1994 | IRIX |
| JFS | 255b | Libovolný bajt kromě NULL26 | Bez omezení12 | 8EB | 512TB až 4PB | IBM | 1990 | AIX11 |
| JFS2 | 255b | Libovolný Unicode znak kromě NULL | Bez omezení12 | 4PiB | 32PiB | IBM | 1999 | OS/2 WSeB |
| Be File System | 255b | Libovolný bajt kromě NULL26 | Bez omezení12 | 12288b až 260GB3 | 256PB až 2EB | Be Inc., D. Giampaolo, C. Meurillon | 1996(?) | BeOS |
| NSS | ? | Závisí na použitém jmenném prostoru28 | Omezení limitované klientem | 8TB | 8TB | Novell | 1998 | Netware 5 |
| NWFS | 80b | Závisí na použitém jmenném prostoru28 | Bez omezení12 | 4GB | 1TB | Novell | 1985 | Netware 286 |
| ODS-2 | ? | ? | ? | ? | ? | DEC | 1979 | OpenVMS |
| ODS-5 | 236b15 | ? | 4096b16 | 1TB | 1TB | DEC | 2003 | OpenVMS verze 8 |
| UDF | 255b | Libovolný Unicode znak kromě NULL | 1023b43 | 16EB | ? | ISO/ECMA/OSTA | 1995 | - |
| UFS | 255b | Libovolný bajt kromě NULL | Bez omezení12 | 4 GiB až 256 TiB | 256 TiB | Kirk McKusick | 1994 | 4.4BSD |
| UFS2 | 255b | Libovolný bajt kromě NULL | Bez omezení12 | 512 GiB až 32 PiB | 1 YiB | Kirk McKusick | 2002 | FreeBSD 5.0 |
| QNX 4.x | 255b | libovolný bajt kromě NULL | 255b | 4GB | 8GB až 2TB (?) | QNX Software Systems QNX | 1990 | QNX |
| VxFS | 255b | Libovolný bajt kromě NULL26 | Bez omezení12 | 16EB | ? | VERITAS | 1991 | SVR4.0 |
| Plan9 Fosil+Venti | ? | ? | ? | ? | ? | Bell Labs | 2003 | Plan9 verze 4 |
| ZFS | 255b | Libovolný Unicode znak kromě NULL | Bez omezení12 | 16EB | 16EB | Sun Microsystems | 2004 | Solaris 10 |
| LFFS | ? | ? Unicode znak kromě NULL | ?12 | ? | ? | Symbian OS | 2003 | Symbian OS S60 6.1 |
| Souborový systém | Typ souboru metadata | Vlastník uložených souborů | Přístupová práva k souborům podle POSIX | Čas vytvoření | Čas poslední změny | Čas posledního přístupu | Last entry change timestamps | Čas poslední archivace | Seznam přístupových práv | Zabezpečení/MAC labels | Pevné odkazy | Symbolické odkazy | Alternate data stream / resource fork |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FAT12 | ? | N | N | A | A | A | N | N | N | N | N | N | N |
| FAT16 | ? | N | N | A | A | A | N | N | N | N | N | N | N |
| FAT32 | ? | N | N | A | A | A | N | N | N | N | N | N | N |
| FATplus | ? | N | N | A | A | A | N | N | N | N | N | N | N |
| HPFS | ? | A14 | N | A | A | A | N | N | N | ? | N | N | N |
| NTFS | ? | A | N5 | A | A | A | A | N | A | ? | A | A34 | A |
| HFS+ | ? | A | A | A | A | ? | ? | ? | ? | ? | A | A | A |
| Souborový systém | Žurnálovací systém | Meta-data only journaling | Citlivost na velikost znaků | Case-preserving | Logování změn souborů | Delayed allocation | Rozšíření | Proměnlivá velikost datového bloku42 |
|---|---|---|---|---|---|---|---|---|
| FAT12 | N | N | N | N | N | N | N | N |
| FAT16 | N | N | N | N | N | N | N | N |
| FAT32 | N | N | N | N | N | N | N | N |
| FATplus | N | N | N | N | N | N | N | N |
| HPFS | N | N | N | A | N | N | A | ? |
| NTFS | Obnova37 | A | A | A | A | N | ? | ? |
| HFS+ | N | ? | A | A | N | N | N | ? |
| FFS | N | N | A | A | N | N | N | N |
| UFS1 | N | N | A | A | N | N | N | N |
| UFS2 | N | A | A | A | N | N | N | A |
| Mac OS X UFS | N | N | A | A | N | N | N | N |
| ext2 | N | N | A | A | N | N | N | N |
| ext3 | A | A | A | A | N | N | N | ? |
| ReiserFS V3 | A | A | A | A | N | N | N | ? |
| Reiser4 | A | A | A | A | N | N | A | ? |
| XFS | A | A | A | A | A | A | A | ? |
| JFS | A | A | A | A | N | N | ? | ? |
| Be File System | N | A | A | A | ? | N | N | ? |
| NSS | ? | A | A | A | A | N | N | ? |
| NWFS | N | N | A | A | A | N | N | ? |
| ODS-5 | N | A | N | A | A | N | N | ? |
| VxFS | A | N | A | A | A | N | N | ? |
| ZFS | N | ? | A | A | N | N | ? | ? |
Pozn. 1: Starší verze HFS podporovala pouze 31 znakové názvy souborů. Kvůli tomu některé starší aplikace nepracovaly dobře se soubory, které měly názvy delší.
Pozn. 2: HFS+ podporuje escape sekvence, která umožňuje použití libovolných Unicode znaků. Uživatelé předchozí verze uvidí escape sekvence místo požadovaných znaků.
Pozn. 3: Velmi se liší v závislosti na velikosti bloku a fragmentaci block allocation groups.
Pozn. 4: Pro souborové systémy, které mají proměnlivé velikosti alokačních jednotek (bloků/clusterů) je uvedeno rozmezí velikostí, ukazující maximální velikost volume pro minimalní a maximální možnou velikost alokační jednotky souborového systému (např. 512 bytů a 128KiB pro FAT - což jsou velikosti clusterů povoleny pro datovou strukturu na disku, ačkoliv některé ovladače a operační systémy nepodporují velikost clusteru větší než 32KiB).
Pozn. 5: NTFS access control list může vyjádřit každou přístupovou politiku zadatelnou přístupovými právy standardu POSIX, ale rozhranní POSIXového typu není podporováno bez přídavných programů jako Services for UNIX nebo Cygwin.
Pozn. 6: Logy změn souborů, časová razítka poslední změny a ostatní metadata souborového systému jsou součástí rozsáhlé sady auditovacích schopností vestavěných do NDS/eDirectory zvaných NSure Audit. (Filesystem Events tracked by NSure)
Pozn. 7: I když FAT32 oddíly takové velikosti fungují po vytvoření bez problému, některé programy neumožňují vytvořit FAT32 oddíl větší než 32GB. Mezi tyto programy patří instalační program Windows XP, což svádí k chybné domněnce že se jedná o limit souborového systému.
Pozn. 8: ReiserFS má teoretické maximum pro velikost souboru 1EB, ale „stránkovací keš to omezuje na 8TB na každé architektuře s 32 bitovým integerem“[1]
Pozn. 9: XFS pod 2.4 řadou linuxových jadermá omezenu velikost souboru na 64TB a velikost souborového systému na 2TB. Toto omezení se nevztahuje na operační systém IRIX.
Pozn. 10: Microsoft nejprve zavedl FAT32 ve Windows 95 OSR2 (OEM Service Release 2) a teprve později ve Windows 98.
Pozn. 11: JFS vychází z AIX a byl kompletně přepsán pro OS/2. Linuxový souborový systém byl založen na verzi z OS/2.
Pozn. 12: Struktura na disku nemá žádné vlastní omezení. Některé ovladače souborového systému a operační systémy ale mohou mít vlastní limity. MS-DOS nepodporuje cesty delší než 260 bytů pro FAT12 a FAT16. Windows NT nepodporují cesty delší než 32767 bytů pro NTFS.
Pozn. 13: To je omezení struktury na disku. Ovladač souborového systému HPFS pro OS/2 používá vrchních 5 bitů čísla sektoru oddílu pro vlastní účely, omezujíc velikost diskového oddílu který dokáže spravovat na 64GiB.
Pozn. 14: Struktura f-node obsahuje položku pro identifikátor uživatele. Nicméně s výjimkou operačního systému OS/2 Warp Server tato položka nebývá použita.
Pozn. 15: Maximální délka názvu souboru včetně přípony může být jen 236 bajtů; přestože každá jméno i přípona samostatně mohou být teoreticky až 255 bajtů dlouhé.
Pozn. 16: Maximální délka cesty může být teoreticky 4096 bajtů, ale limity délek jednotlivých komponent jí omezují na 1664 bajtů.
Pozn. 17: Attributy Record Management Services (RMS) obsahují mimo jiné typ a velikost záznamu.
Pozn. 18: Ty jsou označovány jako 'aliasy'.
Pozn. 19: Novell nazývá tuto vlastnost „vícenásobné datové proudy“. Publikované specifikace říkají, že NWFS podporuje 16 atributů a 10 datových proudů a NSS podporuje neomezené množství obou.
Pozn. 20: Zachování a citlivost na velikost písmen závisí na klientovy. Windows, DOS, and OS/2 nevidí ani neudržují rozdíl ve velikosti písmen, zatímco klienti přistupující přes NFS nebo AFP mohou.
Pozn. 21: Publikované specifikace říkají, že 128bitový souborový systém podporuje až 264 bytů pro popis souborového systému, velikosti souboru, záznamy direktorářů atd. s teoretickým limitem až 2128 dohromady pro popis veškerého úložného prostoru na takovém počítači.
Pozn. 22: Konkrétní ovladače souborového systému nebo operační systémy nemusí podporovat rozšířené atributy na FAT12, FAT16, a FAT32. Ovladače těchto souborových systémů v OS/2 a Windows NT podporují rozšířené atributy (používající pseudo-soubor „EA DATA. SF“ pro rezervování clusterů pro ně alokovaných). Ostatní ovladače souborových systémů ostatních operačních systémů ne.
Pozn. 23: Konkrétní ovladače souborového systému nebo operační systémy nemusí podporovat rozšířené atributy na těchto typech souborových systémů. Jádra Linuxu před 2.6.x buď potřebovali patch pro podporu rozšířených atributů nebo je vůbec nepodporovali.
Pozn. 24: Soubor ve FAT12, FAT16 a FAT32 má krátký název a může mít navíc dlouhý název. Pro dlouhé názvy platí uvedená omezení. Krátké názvy jsou přesně 11 bajtů dlouhé (8 bajtů název, 3 bajty přípona; doplněné mezerami, pokud jsou kratší); nesmí obsahovat znaky NUL (0x00) a 229 (0xE5), které mají zvláštní význam (označení konce adresáře, respektive smazané položky); a při normálním použití neobsahují malá písmena (lowercase). Některé ovladače souborových systémů nebo operační systémy nemusí podporovat dlouhé názvy. Například MS-DOS bez ovladače třetí strany (také Windows 95 a Windows 98 nabootované v režimu MS-DOS) umožńují přístup pouze ke krátkým názvům. Také v OS/2 ovladače k souborovým systémům FAT12 a FAT16 umožńují přístup pouze ke krátkým názvům.
Pozn. 25: Jedná se o omezení vyplývající ze struktury vlastních adresářových záznamů. Některé ovladače souborových systémů mohou zavést svá vlastní omezení názvů souborů a adresářů; stejně tak i některé operační systémy mohou mít vlastní omezení bez ohledu na použitý souborý systém. MS-DOS, Microsoft Windows a OS/2 nedovolují použití znaků \ / : ? * „ > < | NUL v názvech souborů a adresářů ve všech souborových systémech. Unixy a Linux nedovolují použití znaků / NUL v názvech souborů a adresářů ve všech souborových systémech.
Pozn. 26: V těchto souborových systémech mají adresářové položky „.“ a „..“ zvláštní význam. Adresářové položky s těmito jmény nejsou zakázané a skutečně existují jako běžné položky adresářů ve struktuře dat na disku. Nicméně jsou povinné, s povinnými hodnotami, jsou automaticky vytvořeny v každém adresáři při jeho vytvoření; a adresáře bez nich jsou považovány za poškozené.
Pozn. 27: Adresářové položky „.“ a „..“ v HPFS, které je možné vidět v uživatelských programech, jsem víceméně fikce vytvořená ovladači souborových systémů. Ve skutečnosti adresářové datové struktury na disku neobsahují záznamy s takovými názvy, ale místo toho obsahují zvláštní záznam „start“. Přestože adresáře s těmito názvy mohou na disku fyzicky existovat, nemohou být vytvořeny běžnými funkcemi a adresář obsahující takové záznamy je považován za poškozený.
Pozn. 28: NSS umožňuje, aby soubory měli různá jména v různých jmenných prostorech.
Pozn. 29: Some file and directory metadata is stored on the Netware server irrespective of whether Directory Services is installed or not, like date/time of creation, file size, purge status, etc; and some file and directory metadata is stored in NDS/eDirectory, like file/object permissions, ownership, etc.
Pozn. 30: Particular Installable File System drivers and operating systems may not support case sensitivity for JFS. OS/2 does not, and Linux has a mount option for disabling case sensitivity.
Pozn. 31: Místní čas, časová zóna/rozdíl do Koordinovaného světového času (UTC) a datum je odvozeno od nastavení referenčního zdroje stromu NDS.
Pozn. 32: Některé operační systémy implementují rozšířené atributy jako vrstvu nad UFS1 s paralelním ukládacím souborem (např. FreeBSD 4.x).
Pozn. 33: ACL a MAC nálepky jsou dostupné jako vlastnost operačního systému postavená na rozšířených atributech.
Pozn. 34: NTFS 5.0 a vyšší umožňuje vytvářet tzv. junctions („křížení“), které dovoluje jednotlivým adresářům (ale nikoliv jednotlivým souborům) namapování kamkoliv do adresářové struktury lokálně spravovaného disku. Lze tak učinit skrze tzv. reparse points, které umožňují flexibilní rozšíření běžného procesu rozlišování jmen.
Pozn. 35: Defaultně vypnuto.
Pozn. 36: I když NTFS jako takové podporuje rozlišování mezi velkými a malými písmeny, standardní ovladače souborového systému Windows kvůli kompatibilitě neumí vytvořit soubory jejihž jména se liší jen ve velikosti písmen.
Pozn. 37: NTFS ukládá vše, dokonce i souborová data, jako meta-data, takže jeho log připomíná spíš blokové žurnálování.
Pozn. 38: Žurnálování dat je možné.
Pozn. 39: In „extents“ mode.
Pozn. 40: Only in the realtime chunk of the XFS file system.
Pozn. 41: Na IRIXu nastavitelné.
Pozn. 42: Proměnlivá velikost datového bloku odkazuje na systémy, které podporují různou velikost bloku pro každý soubor. (To je podobné extentům, ale trochu odlišný výběr implementace.) Současná podpora v UFS2 je pouze pro čtení.