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.