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 |
- ^ a b Cite error: The named reference
fat-ctimewas invoked but never defined (see the help page). - ^ Cite error: The named reference
note-22was invoked but never defined (see the help page). - ^ a b Cite error: The named reference
fat-cstampwas invoked but never defined (see the help page). - ^ a b Cite error: The named reference
parted-resizewas invoked but never defined (see the help page). - ^ 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.
- ^ a b NTFS stores everything, even the file data, as meta-data, so its log is closer to block journaling.
- ^ 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.
- ^ NTFS does not internally support snapshots, but in conjunction with the Volume Shadow Copy Service can maintain persistent block differential volume snapshots.
- ^ http://www.bleepingcomputer.com/tutorials/tutorial133.html
- ^ Linux kernel versions 2.6.12 and newer.
- ^ a b c Offline growing/shrinking as well as online growing: "Linux man page for resize2fs(8) (from e2fsprogs 1.41.9)".
- ^ a b Off by default.
- ^ a b c Cite error: The named reference
note-38was invoked but never defined (see the help page). - ^ Full block journaling for ReiserFS was not added to Linux 2.6.8 for obvious reasons.
- ^ Optionally no on IRIX.
- ^ 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.
- ^ http://www.linux.com/archive/feed/32002
- ^ 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.
- ^ "How to resize ZFS".
- ^ 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
- ^ 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.
- ^ Cite error: The named reference
note-51was invoked but never defined (see the help page). - ^ Only if formatted with 4kB-sized clusters or smaller
- ^ a b c Fragments were planned, but never actually implemented on ext2 and ext3.
- ^ 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.
- ^ "AIX documentation: JFS data compression". IBM.
- ^ Depends on UDF implementation.
- ^ 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.
- 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:
- 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.
- 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.
- 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.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.