User:Pi3832/Relevent File Systems

Comparison of relevant file systems

The Comparison of file systems page is bloody useless because it lumps all file systems in the known universe together.

So, I've copied it here, and trimmed things that don't come up much in my narrow little view of the world.


Limits

File system Maximum filename length Allowable characters in directory entries Maximum pathname length Maximum file size Maximum volume size
FAT16 8.3 (255 UTF-16 code units with LFN) Any byte except for values 0-31, 127 (DEL) and: " * / : < > ? \ | + , . ; = [] (lowcase a-z are stored as A-Z).
With VFAT LFN any Unicode except NUL
No limit defined 2 GB (4 GB) 2 GB or 4 GB
FAT32 8.3 (255 UTF-16 code units with LFN) Any byte except for values 0-31, 127 (DEL) and: " * / : < > ? \ | + , . ; = [] (lowcase a-z are stored as A-Z).
With VFAT LFN any Unicode except NULL
No limit defined 4 GB 2 TB (16 TB)
NTFS 255 characters Any Unicode except NUL and \ / : * ? " < > | 32,767 Unicode characters with each path component (directory or filename) commonly up to 255 characters long 16 EB 16 EB
ext2 255 bytes Any byte except NUL and / No limit defined 2 TB 32 TB
ext3 255 bytes Any byte except NUL and / No limit defined 2 TB 32 TB
ext4 256 bytes Any byte except NUL and / No limit defined 16 TB 1 EB
ReiserFS 4,032 bytes/226 characters Any byte except NUL No limit defined 8 TB (v3.6), 2 GB (v3.5) 16 TB
NILFS 255 bytes Any byte except NUL No limit defined 8 EB 8 EB
XFS 255 bytes Any byte except NUL No limit defined 8 EB 8 EB
JFS 255 bytes Any Unicode except NUL No limit defined 4 PB 32 PB
UDF 255 bytes Any Unicode except NUL 1,023 bytes 16 EB Unknown
ZFS 255 bytes Any Unicode except NUL No limit defined 16 EB 16 EB
Btrfs 255 bytes Any byte except NUL Unknown 16 EB 16 EB
File system Maximum filename length Allowable characters in directory entries Maximum pathname length Maximum file size Maximum volume size

Metadata

File system Stores file owner POSIX file permissions Creation timestamps Last access/ read timestamps Last content modification timestamps Disk copy created Last metadata change timestamps Last archive timestamps Access control lists Security/ MAC labels Extended attributes/ Alternate data streams/ forks Checksum/ ECC
FAT16 No No Partial Partial Yes Yes No[1] No No No No[2] No
FAT32 No No Partial[3] Partial[3] Yes Yes No[1] No No No No No
NTFS Yes Yes Yes Yes Yes No Yes No Yes Yes Yes No
ext2 Yes Yes No Yes Yes Unknown Yes No Yes Yes Yes No
ext3 Yes Yes No Yes Yes No Yes No Yes Yes Yes No
ext4 Yes Yes Yes Yes Yes Unknown Yes No Yes Yes Yes Partial
NILFS Yes Yes Yes No Unknown Unknown Yes No No No No Yes
ReiserFS Yes Yes No Yes Yes No No No No No No No
Reiser4 Yes Yes No Yes Yes Unknown Yes No No No No No
XFS Yes Yes No Yes Yes Unknown Yes No Yes Yes Yes No
JFS Yes Yes Yes Yes Yes Unknown Yes No Yes Yes Yes No
UDF Yes Yes Yes Yes Unknown Unknown Yes Yes Yes No Yes No
ZFS Yes Yes Yes Yes Yes Unknown Yes Yes Yes Yes Yes Yes
Btrfs Yes Yes Yes Yes Yes Unknown Yes Unknown Yes Yes Yes Yes
File system Stores file owner POSIX file permissions Creation timestamps Last access/read timestamps Last content modification timestamps Disk copy created Last metadata change timestamps Last archive timestamps Access control lists Security/ MAC labels Extended attributes/ Alternate data streams/ forks Checksum/ ECC

Features

File system Hard links Symbolic links Block journaling Metadata-only journaling Case-sensitive Case-preserving File Change Log Snapshot XIP Encryption COW integrated LVM Data deduplication Volumes are resizeable
FAT16 No No No No No Partial No No No No No No No Offline[4]
FAT32 No No No No No Partial No No No No No No No Offline[4]
NTFS Yes Yes[5] No[6] Yes[6] Yes[7] Yes Yes Partial[8] Yes Yes Partial Unknown No Online[9]
ext2 Yes Yes No No Yes Yes No No Yes[10] No No No No Online[11]
ext3 Yes Yes Yes[12] Yes Yes Yes No No Yes No No No No Online[11]
ext4 Yes Yes Yes[12] Yes Yes Yes No No Yes No No No No Online[11]
NILFS Yes Yes Yes[13] No Yes Yes Yes Yes No No Yes Unknown Unknown Unknown
ReiserFS Yes Yes No[14] Yes Yes Yes No No No No No No No Offline
XFS Yes Yes Yes Yes Yes[15] Yes No No No No No No No Online (cannot be shrunk)
JFS Yes Yes No Yes Yes[16] Yes No Yes No No No Unknown Unknown Online (cannot be shrunk)[17]
UDF Yes Yes Yes[13] Yes[13] Yes Yes No No Yes No No No No Unknown
ZFS Yes Yes Yes[18] No[18] Yes Yes No Yes No Yes Yes Yes Yes Online (cannot be shrunk)[19]
Btrfs Yes Yes Unknown Yes Yes Yes Unknown Yes No Planned[20] Yes Yes Work-in-Progress Online
File system Hard links Symbolic links Block journaling Metadata-only journaling Case-sensitive Case-preserving File Change Log Snapshotting XIP Encryption COW integrated LVM Data deduplication Volumes are resizeable

Allocation and layout policies

File system Block suballocation Variable file block size[21] Extents Allocate-on-flush Sparse files Transparent compression
Btrfs Yes No Yes Yes Yes Yes
FAT16 No No No No No No[22]
FAT32 No No No No No No
NTFS Partial No Yes No Yes Partial[23]
ext2 No[24] No No No Yes No[25]
ext3 No[24] No No No Yes No
ext4 No[24] No Yes Yes Yes No
NILFS No No No Yes Yes No
ReiserFS Yes No No No Yes No
XFS No No Yes Yes Yes No
JFS Yes No Yes No Yes only in JFS1 on AIX[26]
UDF No No Yes Depends[27] No No
ZFS Partial[28] Yes No Yes Yes Yes
File system Block suballocation Variable file block size[21] Extents Allocate-on-flush Sparse files Transparent compression

Supporting operating systems

File system DOS Windows 9x Windows NT Linux Mac OS Mac OS X FreeBSD BeOS Solaris AIX z/OS OS/2 Windows CE Windows Mobile VxWorks HP-UX
FAT16 Yes Yes Yes Yes Yes Yes Yes Yes Yes Partial Unknown Yes Yes Yes Yes Unknown
FAT32 Yes Yes Yes Yes Yes Yes Yes Yes Yes Partial Unknown Yes Yes Yes Unknown
NTFS Yes Yes No Unknown Unknown Partial No Unknown Unknown
ext2 Unknown Unknown Yes No Yes Unknown Unknown Unknown Unknown Unknown Unknown
ext3 Unknown Unknown Yes No Yes Unknown Yes Unknown Unknown Unknown Unknown Unknown
ext4 No No Yes No No Unknown Unknown Unknown Unknown Unknown No Unknown Unknown Unknown
NILFS No Unknown Unknown Yes No Unknown No Unknown Unknown Unknown Unknown Unknown No No Unknown Unknown
ReiserFS No Unknown Partial Yes No No Partial Unknown Unknown Unknown Unknown Unknown Unknown Unknown
XFS No Unknown Unknown Yes No Unknown Partial Unknown Unknown Unknown Unknown Unknown No No Unknown Unknown
JFS No Unknown Unknown Yes No No No Unknown Unknown Yes Unknown Yes No No Unknown
UDF Unknown Partial Yes Yes Yes Yes Yes Unknown Yes Unknown Unknown Unknown Yes Unknown Unknown Unknown
ZFS No No No No Yes No Yes No No No Unknown Unknown Unknown Unknown
Btrfs No No No Yes No No No No No No No No No No Unknown Unknown
File system DOS Windows 9x Windows NT Linux Mac OS Mac OS X FreeBSD BeOS Solaris AIX z/OS OS/2 Windows CE Windows Mobile VxWorks HP-UX
  1. ^ a b Cite error: The named reference fat-ctime was invoked but never defined (see the help page).
  2. ^ Cite error: The named reference note-22 was invoked but never defined (see the help page).
  3. ^ a b Cite error: The named reference fat-cstamp was invoked but never defined (see the help page).
  4. ^ a b Cite error: The named reference parted-resize was invoked but never defined (see the help page).
  5. ^ As of Windows Vista, NTFS fully supports soft links. See this Microsoft article on Vista kernel improvements. NTFS 5.0 (Windows 2000) and higher can create junctions, which allow any valid local directory (but not individual files) ("target" of junction) to be mapped to an NTFS version thereof ("source" = location of junction). The source directory must lie on an NTFS 5+ partition, but the target directory can lie on any valid local partition and needn't be NTFS. Junctions are implemented through reparse points, which allow the normal process of filename resolution to be extended in a flexible manner.
  6. ^ a b NTFS stores everything, even the file data, as meta-data, so its log is closer to block journaling.
  7. ^ While NTFS itself supports case sensitivity, the Win32 environment subsystem cannot create files whose names differ only by case for compatibility reasons. When a file is opened for writing, if there is any existing file whose name is a case-insensitive match for the new file, the existing file is truncated and opened for writing instead of a new file with a different name being created. Other subsystems like e. g. Services for Unix, that operate directly above the kernel and not on top of Win32 can have case-sensitivity.
  8. ^ NTFS does not internally support snapshots, but in conjunction with the Volume Shadow Copy Service can maintain persistent block differential volume snapshots.
  9. ^ http://www.bleepingcomputer.com/tutorials/tutorial133.html
  10. ^ Linux kernel versions 2.6.12 and newer.
  11. ^ a b c Offline growing/shrinking as well as online growing: "Linux man page for resize2fs(8) (from e2fsprogs 1.41.9)".
  12. ^ a b Off by default.
  13. ^ a b c Cite error: The named reference note-38 was invoked but never defined (see the help page).
  14. ^ Full block journaling for ReiserFS was not added to Linux 2.6.8 for obvious reasons.
  15. ^ Optionally no on IRIX.
  16. ^ 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.
  17. ^ http://www.linux.com/archive/feed/32002
  18. ^ a b ZFS is a transactional filesystem using copy-on-write semantics, guaranteeing an always-consistent on-disk state without the use of a traditional journal. However, it does also implement an intent log to provide better performance when synchronous writes are requested.
  19. ^ "How to resize ZFS".
  20. ^ McPherson, Amanda (2009-06-22), A Conversation with Chris Mason on BTRfs: the next generation file system for Linux, Linux Foundation, retrieved 2009-09-01
  21. ^ a b 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.
  22. ^ Cite error: The named reference note-51 was invoked but never defined (see the help page).
  23. ^ Only if formatted with 4kB-sized clusters or smaller
  24. ^ a b c Fragments were planned, but never actually implemented on ext2 and ext3.
  25. ^ e2compr, a set of patches providing block-based compression for ext2, has been available since 1997, but has never been merged into the mainline Linux kernel.
  26. ^ "AIX documentation: JFS data compression". IBM.
  27. ^ Depends on UDF implementation.
  28. ^ When enabled, ZFS's logical-block based compression behaves much like tail-packing for the last block of a file.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.