The following tables compare general and technical information for a number of file systems.
Note that in addition to the below table, block capabilities can be implemented below the file system layer in Linux (LVM, integritysetup, cryptsetup) or Windows (Volume Shadow Copy Service, SECURITY), etc.
"Online" and "offline" are synonymous with "mounted" and "not mounted".
Experimental port available to 2.6.32 and later [75][76]
While storage devices usually have their size expressed in powers of 10 (for instance a 1 TB Solid State Drive will contain at least 1,000,000,000,000 (1012, 10004) bytes), filesystem limits are invariably powers of 2, so usually expressed with IEC prefixes. For instance, a 1 TiB limit means 240, 10244 bytes. Approximations (rounding down) using power of 10 are also given below to clarify.
:
/\:*"?<>|
In POSIX namespace: any UTF-16 code unit (case-sensitive) except / as well as NUL[115]
/
In POSIX namespace: any UTF-16 code unit (case-sensitive) except / as well as NUL[117][118]
'/'
PATH_MAX
To keep track of hard links, HFS+ creates a separate file for each hard link inside a hidden directory at the root level of the volume.
newfs_hfs(8)
This file, when small, can be embedded in the [Information Control Block] that describes it.
The cloned file dst shares its data blocks with the src file [..]
Usually all data for one cluster are stored in contiguous sectors, but if the filesystem is too fragmented there may not be a 'free hole' that is large enough for the data. […] Drivespace 3 and Stacker know a hack for that situation: they allow storing the data of one cluster in several fragments on the disk.
By default, mkfs.xfs [..] will enable the reflink [=deduplication] feature.
ntfsresize(8)
resize2fs(8)
nilfs-resize(8)
we can allow filenames up to 1023 bytes long
If there was not a fsck(8) memory limit the maximum filesystem size would be 2 ^ 64 (blocks) * 32 KiB (32.76 KB) => 16 Exa * 32 KiB (32.76 KB) => 512 ZettaBytes.