Souborový systém
Z Wikipedie, otevřené encyklopedie
Souborový systém (anglicky filesystem) je označení pro způsob organizace informací (počítačových souborů) ukládaných na paměťová média (disky, pásky, CD, DVD, …) počítače. Souborový systém rozděluje oblast disku na jednotlivé adresáře a soubory, hlídá volné místo atd.
Software, který realizuje souborový systém, bývá obvykle součástí operačního systému.
Příklady souborových systémů: FAT, NTFS, ext2, ext3, ReiserFS, JFS, XFS, ISO 9660.
Obsah |
[editovat] Tabulka omezení a doplňující informace
| 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 | 4GB | 1MB až 512MB | Microsoft | 1980 | QDOS |
| FAT16 | 255b | Unicode kromě NULL24 26 | Bez omezení12 | 4GB | 16MB až 2(4)GB | Microsoft | 1983 | MS-DOS verze 2 |
| 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 |
| FAT32 | 255b | Unicode kromě NULL24 26 | Bez omezení12 | 4GB | 8GB až 2TB | Microsoft | 1996 | Windows 9510 |
| HPFS | 255b | Všechny bajty kromě NULL27 | Bez omezení12 | 4GB | 8GB až 2TB7 | 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ě NULL26 | Bez omezení12 | 16GB až 2TB4 | 2TB až 32TB | Rémy Card | 1993 | Linux |
| ext3 | 255b | Libovolný bajt kromě NULL26 | 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 | - |
| 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 | 2003 | Symbian S60 6.1 |
[editovat] Vlastnosti souborového systému
| 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 |
| 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 |
[editovat] Žurnálování
| 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 |
| 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 | N | A | A | A | N | N | N | ? |
| Reiser4 | ? | A | A | A | N | N | A | ? |
| XFS | N | A | A | A | A | A | A | ? |
| JFS | ? | 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 | ? | ? |
[editovat] Poznámky
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+ mandates support for an escape sequence to allow arbitrary Unicode. Users of older software might see the escape sequences instead of the desired characters.
Pozn. 3: Varies wildly according to block size and fragmentation of block allocation groups.
Pozn. 4: For filesystems that have variable allocation unit (block/cluster) sizes, a range of size are given, indicating the maximum volume sizes for the minimum and the maximum possible allocation unit sizes of the filesystem (e.g. 512 bytes and 128KiB for FAT — which is the cluster size range allowed by the on-disc data structures, although some Installable File System drivers and operating systems do not support cluster sizes larger than 32KiB).
Pozn. 5: NTFS access control lists can express essentially any access policy possible using simple POSIX file permissions, but use of a POSIX-like interface is not supported without an add-on such as Services for UNIX or Cygwin.
Pozn. 6: The file change logs, last entry change timestamps, and other filesystem metadata, are all part of the extensive suite of auditing capabilities built into NDS/eDirectory called NSure Audit. (Filesystem Events tracked by NSure)
Pozn. 7: While FAT32 partitions this large work fine once created, some software won't allow creation of FAT32 partitions larger than 32GB. This includes, notoriously, the Windows XP installation program.
Pozn. 8: ReiserFS má teoretické maximum pro velikost souboru 1EB, ale „stránkovací keší je omezena na 32 bitové architektuře na 8TB“[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 originated on AIX and was completely rewritten for OS/2. The Linux filesystem was based on the OS/2 version.
Pozn. 12: The on-disc structures have no inherent limit. Particular Installable File System drivers and operating systems may impose limits of their own, however. MS-DOS does not support full pathnames longer than 260 bytes for FAT12 and FAT16. Windows NT does not support full pathnames longer than 32767 bytes for NTFS.
Pozn. 13: This is the limit of the on-disc structures. The HPFS Installable File System driver for OS/2 uses the top 5 bits of the volume sector number for its own use, limiting the volume size that it can handle to 64GiB.
Pozn. 14: The f-node contains a field for a user identifier. This is not used except by OS/2 Warp Server, however.
Pozn. 15: Maximum combined filename / filetype length is 236 bytes; each component has an individual maximum length of 255 byes.
Pozn. 16: Maximum pathname length is 4096 bytes, but quoted limits on individual components add up to 1664 bytes.
Pozn. 17: Record Management Services (RMS) attributes include record type and size, among many others.
Pozn. 18: These are referred to as 'aliases'.
Pozn. 19: Novell calls this feature „multiple data streams“. Published specifications say that NWFS allows for 16 attributes and 10 data streams, and NSS allows for unlimited quantities of both.
Pozn. 20: Case-sensitivity/Preservation depends on client. Windows, DOS, and OS/2 clients don't see/keep case differences, whereas clients accessing via NFS or AFP may.
Pozn. 21: Published specs say that the 128-bit file system provides for up to 264 bytes to describe the file system, file size, directory entries, etc, with a theoretical max of 2128 bytes total to describe all storage on such a machine.
Pozn. 22: Particular Installable File System drivers and operating systems may not support extended attributes on FAT12, FAT16, and FAT32. The OS/2 and Windows NT filesystem drivers for FAT12, FAT16, and FAT32 support extended attributes (using a „EA DATA. SF“ pseudo-file to reserve the clusters allocated to them). Other filesystem drivers for other operating systems do not.
Pozn. 23: Particular Installable File System drivers and operating systems may not support extended attributes on these filesystem types. Linux kernels prior to 2.6.x either require patching to support extended attributes or do not support extended attributes at all.
Pozn. 24: On FAT12, FAT16, and FAT32 files have both long and short names. These are the restrictions upon long names. Short names are exactly 11 8-bit characters long (being space padded, in both the basename and extension parts); may not contain either NUL or character 229, both of which have special meaning (marking the end of the directory or a deleted entry, respectively); and in normal operation do not contain lowercase letters. Particular Installable File System drivers and operating systems may not support long names. Without a third-party driver, MS-DOS (including Windows 95 and Windows 98 booted into DOS-only mode) only provides access to short names. The OS/2 filesystem drivers for FAT12 and FAT16 only provide access to short names.
Pozn. 25: These are the restrictions imposed by the on-disc directory entry structures themselves. Particular Installable File System drivers may place restrictions of their own on file and directory names; and particular and operating systems may also place restrictions of their own, across all filesystems. MS-DOS, Microsoft Windows, and OS/2 disallow the characters \ / : ? * „ > < | and NUL in file and directory names across all filesystems. Unices and Linux disallow the characters / and NUL in file and directory names across all filesystems.
Pozn. 26: In these filesystems the directory entries named “." and „.“ have special status. Directory entries with these names are not prohibited, and indeed exist as normal directory entries in the on-disc data structures. However, they are mandatory directory entries, with mandatory values, that are automatically created in each directory when it is created; and directories without them are considered corrupt.
Pozn. 27: The „.“ and „.“ directory entries in HPFS that are seen by applications programs are a partial fiction created by the Installable File System drivers. The on-disc data structure for a directory does not contain entries by those names, but instead contains a special „start“ entry. Whilst on-disc directory entries by those names are not physically prohibited, they cannot be created in normal operation, and a directory containing such entries is corrupt.
Pozn. 28: NSS allows files to have multiple names, in separate namespaces.
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: The local time, timezone/UTC offset, and date are derived from the time settings of the reference/single timesync source in the NDS tree.
Pozn. 32: Some operating systems implemented extended attributes as a layer over UFS1 with a parallel backing file (e.g., FreeBSD 4.x).
Pozn. 33: Access-control lists and MAC labels available as an operating-system feature layered on top of extended attributes.
Pozn. 34: NTFS 5.0 and higher can create junctions, which allow entire directories (but not individual files) to be mapped to elsewhere in the directory tree of a locally managed drive. These are implemented through reparse points, which allow the normal process of filename resolution to be extended in a flexible manner.
Pozn. 35: Turned off by default.
Pozn. 36: While NTFS itself supports case sensitivity, the Windows standard file system drivers cannot create files whose names differ only by case, for compatibility reasons.
Pozn. 37: NTFS stores everything, even the file data, as meta-data, so its log is closer to block journaling.
Pozn. 38: Data journaling is possible.
Pozn. 39: In „extents“ mode.
Pozn. 40: Only in the realtime chunk of the XFS file system.
Pozn. 41: Optionally no on IRIX.
Pozn. 42: Variable block size refers to systems which support different block sizes on a per-file basis. (This is similar to extents but a slightly different implementational choice.) The current implementation in UFS2 is read-only.

