Comparison of File Systems
description
Transcript of Comparison of File Systems
Comparison of file systems 1
Comparison of file systemsThe following tables compare general and technical information for a number of file systems.
General information
File system Creator Yearintroduced
Original operating system
DECtape DEC 1964 PDP-6 Monitor
Level-D DEC 1968 TOPS-10
George 2 ICT (later ICL) 1968 George 2
V6FS Bell Labs 1972 Version 6 Unix
ODS-1 DEC 1972 RSX-11
RT-11 file system DEC 1973 RT-11
DOS (GEC) GEC 1973 Core Operating System
CP/M file system Gary Kildall 1974 CP/M
OS4000 GEC 1977 OS4000
FAT (8-bit) Marc McDonald, Microsoft 1977 Microsoft Disk BASIC
DOS 3.x Apple Computer 1978 Apple DOS
Pascal Apple Computer 1978 Apple Pascal
CBM DOS Commodore 1978 Microsoft BASIC (for CBM PET)
V7FS Bell Labs 1979 Version 7 Unix
ODS-2 DEC 1979 OpenVMS
FAT12 Tim Paterson 1980 QDOS, 86-DOS
AFS Carnegie Mellon University 1982 Multiplatform MultoOS
DFS Acorn Computers Ltd 1982 Acorn BBC Micro MOS
ADFS Acorn Computers Ltd 1983 Acorn Electron (later Arthur RISC OS)
FFS Kirk McKusick 1983 4.2BSD
ProDOS Apple Computer 1983 ProDOS 8
MFS Apple Computer 1984 Mac OS
FAT16 Microsoft 1984 MS-DOS 3.0
Elektronika BK tapeformat
NPO "Scientific centre" (nowSitronics)
1985 Vilnius Basic, BK monitor program
HFS Apple Computer 1985 Mac OS
Amiga OFS[1] Metacomco for Commodore 1985 Amiga OS
High Sierra Ecma International 1985 MS-DOS, Mac OS
NWFS Novell 1985 NetWare 286
FAT16B Compaq 1987 Compaq MS-DOS 3.31, DR DOS 3.31
MINIX V1 FS Andrew S. Tanenbaum 1987 MINIX 1.0
Amiga FFS Commodore 1988 Amiga OS 1.3
Comparison of file systems 2
HPFS IBM & Microsoft 1988 OS/2
ISO 9660:1988 Ecma International, Microsoft 1988 MS-DOS, Mac OS, and AmigaOS
JFS1 IBM 1990 AIX[2]
VxFS VERITAS, (now Symantec) 1991 AIX, HP-UX, Solaris, Linux
ext Rémy Card 1992 Linux
WAFL NetApp 1992 Data ONTAP
MINIX V2 FS Andrew S. Tanenbaum 1992 MINIX 1.6 and 2.0
AdvFS DEC 1993[3] Digital Unix
NTFS Version 1.0 Microsoft, Tom Miller, GaryKimura
1993 Windows NT 3.1
LFS Margo Seltzer 1993 Berkeley Sprite
ext2 Rémy Card 1993 Linux, Hurd
UFS1 Kirk McKusick 1994 4.4BSD
XFS SGI 1994 IRIX, Linux, FreeBSD
HFS (Hierarchical FileSystem)
IBM 1994 MVS/ESA (now z/OS)
Rock Ridge Young Minds Inc. 1994 Linux, Mac OS, Amiga OS, and FreeBSD
Joliet ("CDFS") Microsoft 1995 Microsoft Windows, Linux, Mac OS, andFreeBSD
PFS Michiel Pelt 1996 AmigaOS
Romeo Adaptec 1996 Microsoft Windows
UDF ISO/ECMA/OSTA 1995 -
FAT32 Microsoft 1996 Windows 95b[4]
QFS LSC Inc, Sun Microsystems 1996 Solaris
GPFS IBM 1996 AIX, Linux, Windows
Be File System Be Inc., D. Giampaolo, C.Meurillon
1996 BeOS
HFS Plus Apple Computer 1998 Mac OS 8.1
NSS Novell 1998 NetWare 5
PolyServe File System(PSFS)
PolyServe 1998 Windows, Linux
ODS-5 DEC 1998 OpenVMS 7.2
SFS John Hendrikx 1998 AmigaOS, AROS, MorphOS
ext3 Stephen Tweedie 1999 Linux
ISO 9660:1999 Ecma International, Microsoft 1999 Microsoft Windows, Linux, Mac OS X,FreeBSD, and AmigaOS
JFS IBM 1999 OS/2 Warp Server for e-business
GFS Sistina (Red Hat) 2000 Linux
Melio FS Sanbolic 2001 Windows
NTFS Version 3.1 Microsoft 2001 Windows XP
ReiserFS Namesys 2001 Linux
Comparison of file systems 3
zFS IBM 2001 z/OS (backported to OS/390)
FATX Microsoft 2002 Xbox
UFS2 Kirk McKusick 2002 FreeBSD 5.0
Lustre Cluster File Systems (later OracleCorporation)
2002 Linux
OCFS Oracle Corporation 2002 Linux
VMFS2 VMware 2002 VMware ESX Server 2.0
ext3cow Zachary Peterson 2003 Linux
Fossil Bell Labs 2003 Plan 9 from Bell Labs 4
Google File System Google 2003 Linux
PramFS MontaVista 2003 Linux
Reliance[5] Datalight 2003 Windows CE, VxWorks, custom ports
VxCFS VERITAS, (now Symantec) 2004 AIX, HP-UX, Solaris, Linux
ZFS Sun Microsystems 2004 Solaris, FreeBSD, PC-BSD, FreeNAS
Reiser4 Namesys 2004 Linux
Non-Volatile FileSystem
Palm, Inc. 2004 Palm OS Garnet
MINIX V3 FS Andrew S. Tanenbaum 2005 MINIX 3
OCFS2 Oracle Corporation 2005 Linux
NILFS NTT 2005 Linux, (ReadOnly for NetBSD)
VMFS3 VMware 2005 VMware ESX Server 3.0
GFS2 Red Hat 2006 Linux
ext4 Various 2006 Linux
exFAT Microsoft 2006, 2009 Windows CE 6.0, Windows XP SP3,Windows Vista SP1
TexFAT/TFAT Microsoft 2006 Windows CE 6.0
Btrfs Oracle Corporation 2007 Linux
HAMMER Matthew Dillon 2008 Dragonfly BSD
Tux3 Various 2008 Linux
UBIFS Nokia with help of University ofSzeged
2008 Linux
Oracle ACFS Oracle Corporation 2009 Linux - Red Hat Enterprise Linux 5 andOracle Enterprise Linux 5 only
Reliance Nitro[5] Datalight 2009 Windows CE, Windows Mobile, VxWorks,Linux, custom ports
LTFS IBM 2010 Linux, Mac OS X, planned MicrosoftWindows,
IlesfayFS Ilesfay Technology Group 2011 Microsoft Windows, planned Red HatEnterprise Linux
VMFS5 VMware 2011 VMware ESXi 5.0tux 3 stats
ReFS Microsoft 2012, 2013 Windows 2012 Server
Lanyard Filesystem Dan Luedtke 2012 Linux
Comparison of file systems 4
F2FS Samsung 2012 Linux
File system Creator Yearintroduced
Original operating system
Limits
File system Maximumfilename length
Allowablecharacters in
directory entries[6]
Maximum pathname length Maximum filesize
Maximumvolume size
[7]
AcornADFS
10 bytes Any ISO 8859-1character except:
SPACE $ & % @ \ ^: . # * " ¦
No limit defined 512 MB or4 GB[8]
512 MB or4 GB[9]
Apple DOS3.x
30 bytes Any byte exceptNUL
30 B, no subdirectories (105 files per disk)
Unknown
113.75 kB DOS3.1, 3.2
140 kB DOS 3.3(assuming
standard 35tracks)
AppleProDOS
15 bytes A-Z, a-z, 0-9, andperiod
Unknown16 MB 32 MB
CP/M filesystem
8.3 any byte except:SPACE < > . , ; : = ?
* [ ] % | ( ) / \[10]
16 "user areas", no subdirectories 8 MB[] 8 MB to512 MB[]
IBM SFS 8.8 Unknown Non-hierarchical[11] Unknown Unknown
DECtape 6.3 A–Z, 0–9 DTxN:FILNAM.EXT = 15 369,280 B (577 *640)
369,920 B (578 *640)
ElektronikaBK tapeformat
16 bytes
Unknown
Non-hierarchical 64 kB Not limited.Approx. 800 kB(one side) for 90
min cassette
MicroDOSfile system
14 bytesUnknown Unknown
16 MB 32 MB
Level-D 6.3 A–Z, 0–9 DEVICE:FILNAM.EXT[PROJCT,PROGRM]= 7 + 10 + 15 = 32; + 5*7 for SFDs = 67
24 GB(34,359,738,368words (235-1);
206,158,430,208SIXBIT bytes)
12 GB (approx;64 * 178 MB)
RT-11 6.3 A–Z, 0–9, $ Non-hierarchical 32 MB (65536 *512)
32 MB
V6FS 14 bytes[12] Any byte exceptNUL and /[13]
No limit defined[14] 16 MB[15] 2 TB
DOS (GEC) 8 bytes A–Z, 0–9 Non-hierarchical 64 MB 64 MB
OS4000 8 bytes A–Z, 0–9Period is directory
separator
No limit defined[14] 2 GB 1 GB (at least)
CBM DOS 16 bytes Any byte exceptNUL
Non-hierarchical 16 MB 16 MB
Comparison of file systems 5
V7FS 14 bytes[12] Any byte exceptNUL and /[13]
No limit defined[14] 1 GB[16] 2 TB
exFAT 255 characters[17] Any Unicode exceptNUL
No limit defined 127 PB 64 ZB, 512 TBrecommended[]
TexFAT 247 characters Any Unicode exceptNUL
No limit defined 2 GB 500 GB Tested[]
FAT12 8.3 (255 UTF-16code units with
LFN)[12]
Any byte except forvalues 0-31, 127
(DEL) and: " * / : <> ? \ | + , . ; = [](lowcase a-z are
stored as A-Z). WithVFAT LFN anyUnicode exceptNUL[12][13]
No limit defined[14] 32 MB (256 MB) 32 MB (256 MB)
FAT16 8.3 (255 UTF-16code units with
LFN)[12]
Any byte except forvalues 0-31, 127
(DEL) and: " * / : <> ? \ | + , . ; = [](lowcase a-z are
stored as A-Z). WithVFAT LFN anyUnicode exceptNUL[12][13]
No limit defined[14] 2 GB (4 GB) 2 GB or 4 GB
FAT32 8.3 (255 UTF-16code units with
LFN)[12]
Any byte except forvalues 0-31, 127
(DEL) and: " * / : <> ? \ | + , . ; = [](lowcase a-z are
stored as A-Z). WithVFAT LFN anyUnicode exceptNUL[12][13]
No limit defined[14] 4 GB(256 GB[18])
2 TB[19]
(16 TB)
FATX 42 bytes[12] ASCII. Unicode notpermitted.
No limit defined[14] 2 GB 2 GB
Fossil Unknown Unknown Unknown Unknown Unknown
MFS 255 bytes Any byte except : No path (flat filesystem) 226 MB 226 MB
HFS 31 bytes Any byte except:[20]
Unlimited 2 GB 2 TB
HPFS 255 bytes Any byte exceptNUL[21]
No limit defined[14] 2 GB 2 TB[22]
NTFS 255characters[23][][24]
Depends onnamespace
used[23][][24][25]
32,767 Unicode characters with each pathcomponent (directory or filename) commonly
up to 255 characters long[14]
16 EB[26] 16 EB[26]
Comparison of file systems 6
ReFS 255 unicodecharacters [27]
Unknown
32 kB 16 EB Format supports256ZB with
16kB cluster size(2^64 * 16 *
2^10). Windowsstack addressing
allows 16EB
HFS Plus 255 UTF-16 codeunits[28]
Any validUnicode[13][29]
Unlimited 8 EB 8 EB[][30]
FFS 255 bytes Any byte exceptNUL[13]
No limit defined[14] 8 ZB 8 ZB
UFS1 255 bytes Any byte exceptNUL[13]
No limit defined[14] 226 TB 226 TB
UFS2 255 bytes Any byte exceptNUL[13]
No limit defined[14] 32 PB 1 YB
ext2 255 bytes Any byte exceptNUL[13] and /
No limit defined[14] 2 TB[7] 32 TB
ext3 255 bytes Any byte exceptNUL[13] and /
No limit defined[14] 2 TB[7] 32 TB
ext3cow 255 bytes Any byte exceptNUL,[13] / and @
No limit defined[14] 2 TB[7] 32 TB
ext4 255 bytes Any byte exceptNUL[13] and /
No limit defined[14] 16 TB[7][] 1 EB[31]
Lustre 255 bytes Any byte exceptNUL[13] and /
No limit defined[14] 32 PB (on ext4) 1 YB (on ext4,20 PB tested)
GPFS 255 UTF-8codepoints
Any byte exceptNUL[13]
No limit defined[14] 512 YB 512 YB (4 PBtested)
GFS 255 Any byte exceptNUL[13]
No limit defined[14] 8 EB[32] 8 EB[32]
ReiserFS 4,032 bytes/226characters
Any byte exceptNUL[13]
No limit defined[14] 8 TB[33] (v3.6),2 GB (v3.5)
16 TB
NILFS 255 bytes Any byte exceptNUL[13]
No limit defined[14] 8 EB 8 EB
Reiser4 3,976 bytes Any byte except /and NUL
No limit defined[14] 8 TB on x86Unknown
OCFS 255 bytes Any byte exceptNUL[13]
No limit defined[14] 8 TB 8 TB
OCFS2 255 bytes Any byte exceptNUL[13]
No limit defined[14] 4 PB 4 PB
Reliance 260 bytes OS specific 260 B 4 GB 2 TB
RelianceNitro
1,024 bytes OS specific 1024 bytes 32 TB 32 TB
JFS1 255 bytes Any byte exceptNUL[13]
No limit defined[14] 8 EB 4 PB
Comparison of file systems 7
JFS 255 bytes Any Unicode exceptNUL
No limit defined[14] 4 PB 32 PB
QFS 255 bytes Any byte exceptNUL[13]
No limit defined[14] 16 EB[34] 4 PB[34]
BFS 255 bytes Any byte exceptNUL[13]
No limit defined[14] 260 GB[35] 2 EB
AdvFS 226 characters Any byte exceptNUL[13]
No limit defined[14] 16 TB 16 TB
NSS 226 characters Depends onnamespace used[36]
Only limited by client 8 TB 8 TB
NWFS 80 bytes[37] Depends onnamespace used[36]
No limit defined[14] 4 GB 1 TB
ODS-5 236 bytes[38] Unknown 4,096 bytes[39] 2 TB 2 TB
VxFS 255 bytes Any byte exceptNUL[13]
No limit defined[14] 256 TB 256 TB
UDF 255 bytes Any Unicode exceptNUL
1,023 bytes[40] 16 EB 2 TB (hard disk),8 TB (optical
disc)[41]
MINIX V1FS
14 or 30 bytes, setat filesystemcreation time
Any byte exceptNUL[13]
No limit defined[14] 64 MB[] 64 MB[]
MINIX V2FS
14 or 30 bytes, setat filesystemcreation time
Any byte exceptNUL[13]
No limit defined[14] 4 GB[] 1 GB, then 2TB[]
MINIX V3FS
60 bytes Any byte exceptNUL[13]
No limit defined[14] 4 GB 16 TB[]
VMFS2 128 Any byte exceptNUL and /[13]
2,048 4 TB[42] 64 TB
VMFS3 128 Any byte exceptNUL and /[13]
2,048 2 TB[42] 64 TB
ISO9660:1988
Level 1: 8.3,Level 2 & 3: ~ 180
Depends onLevel[43]
~ 180 bytes? 4 GB (Level 1 &2) to 8 TB (Level
3)[44]
8 TB[45]
Joliet("CDFS")
64 Unicodecharacters
All UCS-2 codeexcept * / \ : ; and
?[46]Unknown
4 GB (same asISO 9660:1988)
8 TB (same asISO 9660:1988)
ISO9660:1999
Unknown (207?) Unknown Unknown Unknown Unknown
High Sierra Unknown Unknown Unknown Unknown Unknown
HAMMER Unknown Unknown Unknown Unknown 1 EB
LTFS Unknown Unknown Unknown Unknown Unknown
PramFS 31 bytes Any byte exceptNUL
Unknown1 GB 8 EB
Comparison of file systems 8
LanyardFilesystem
255 bytes Any byte exceptNUL and /[13]
No limit defined 64 ZB 128 kB to64 ZB[47]
LEAN 4,068 bytes[48] case sensitive, inUTF-8 (any Unicode
codepoint)
No limit defined 8 EB 8 EB
XFS 255 bytes[49] Any byte exceptNUL[13]
No limit defined[14] 8 EB[50] 8 EB[50]
ZFS 255 bytes Any Unicode exceptNUL
No limit defined[14] 16 EB 16 EB
Btrfs 255 bytes Any byte exceptNUL
Unknown16 EB 16 EB
File system Maximumfilename length
Allowablecharacters in
directory entries[6]
Maximum pathname length Maximum filesize
Maximumvolume size
[7]
Metadata
File system Storesfile
owner
POSIX filepermissions
Creationtimestamps
Lastaccess/read
timestamps
Last contentmodificationtimestamps
Diskcopy
created
Lastmetadatachange
timestamps
Lastarchive
timestamps
Accesscontrol
lists
Security/MAClabels
Extendedattributes/Alternate
datastreams/
forks
Checksum/ECC
MaxTimestampGranularity
CBM DOS No No No No No No No No No No No No Unknown
CP/M filesystem
No No Yes[51] No Unknown Unknown No No No No No No Unknown
DECtape No No Yes No Unknown Unknown No No No No No No Unknown
ElektronikaBK tapeformat
No No No No Unknown Unknown No No No No No Yes Unknown
Level-D Yes Yes Yes Yes Unknown Unknown Yes Yes Yes No No No Unknown
RT-11 No No Yes No No No No No No No No No Unknown
DOS(GEC)
Yes No Yes Yes Yes Unknown No No No No No No Unknown
OS4000 Yes No Yes Yes Yes Unknown No No No No No No Unknown
V6FS Yes Yes No Yes Yes Unknown Yes No No No No No Unknown
V7FS Yes Yes No Yes Yes Unknown Yes No No No No No Unknown
FAT12No[52] No[53] Partial[54] Partial[54] Yes Yes No[55] No No No No[56] No
10milliseconds
FAT16No[52] No[53] Partial[54] Partial[54] Yes Yes No[55] No No No No[56] No
10milliseconds
FAT32No No Partial[54] Partial[54] Yes Yes No[55] No No No No No
10milliseconds
exFATNo No Yes Yes Yes No Unknown No No Unknown Unknown Partial
10milliseconds
HPFS Yes[57] No Yes Yes Yes Unknown No No No Unknown Yes No Unknown
Comparison of file systems 9
NTFSYes Yes[58] Yes Yes Yes No Yes No Yes Yes[59] Yes No
100nanoseconds
HFS No No Yes No Yes No No Yes No No Yes No Unknown
HFS Plus Yes Yes Yes Yes Yes No Yes Yes Yes Yes[60] Yes No 1 second
FFS Yes Yes No Yes Yes Unknown Yes No No No No No Unknown
UFS1 Yes Yes No Yes Yes Unknown Yes No Yes[61] Yes[61] No[62] No Unknown
UFS2 Yes Yes Yes Yes Yes Unknown Yes No Yes[61] Yes[61] Yes No Unknown
LFS Yes Yes No Yes Yes Unknown Yes No No No No No Unknown
ext2 Yes Yes No Yes Yes Unknown Yes No Yes[63] Yes[63] Yes No 1 second
ext3 Yes Yes No Yes Yes No Yes No Yes[63] Yes[63] Yes No 1 second
ext3cow Yes Yes No Yes Yes No Yes No Yes[63] Yes[63] Yes No 1 second
ext4Yes Yes Yes Yes Yes Unknown Yes No Yes[63] Yes[63] Yes Partial[64] 1
nanosecond
Lustre Yes Yes Partial[65] Yes Yes No Yes No Yes Yes Yes Partial[66][67] Unknown
GPFS Yes Yes Yes Yes Yes Unknown Yes No Yes Yes Yes Yes Unknown
GFS Yes Yes No Yes Unknown Unknown Yes No Yes[63] Yes[63] Yes No Unknown
NILFS Yes Yes Yes No Unknown Unknown Yes No Planned No Planned Yes Unknown
ReiserFS Yes Yes No Yes Yes No No No No No No No Unknown
Reiser4 Yes Yes No Yes Yes Unknown Yes No No No No No Unknown
OCFS No Yes No No Unknown Unknown Yes Yes No No No No Unknown
OCFS2 Yes Yes No Yes Unknown Unknown Yes No Yes No Yes Partial[68] Unknown
Reliance No No Yes No Yes No No No No No No Partial[69] Unknown
RelianceNitro
Linuxport
Linux port Yes Yes Yes No No NoLinuxport
No Yes Partial[69] Unknown
XFSYes Yes No Yes Yes Unknown Yes No Yes Yes[63] Yes No
1nanosecond
JFS Yes Yes Yes Yes Yes Unknown Yes No Yes Yes Yes No Unknown
QFS Yes Yes Yes Yes Unknown Unknown Yes Yes Yes No Yes No Unknown
BFS Yes Yes Yes No Unknown Unknown No No No No Yes No Unknown
AdvFS Yes Yes No Yes Yes Unknown Yes No Yes No Yes No Unknown
NSS Yes Yes Yes[70] Yes[70] Unknown Unknown Yes Yes[70] Yes Unknown Yes[71][72] No Unknown
NWFS Yes Unknown Yes[70] Yes[70] Unknown Unknown Yes Yes[70] Yes Unknown Yes[71][72] No Unknown
ODS-5 Yes Yes Yes Unknown Unknown Unknown Unknown Yes Yes Unknown Yes[73] No Unknown
VxFS Yes Yes Yes Yes Yes Unknown Yes No Yes Unknown Yes[63] No Unknown
UDF Yes Yes Yes Yes Unknown Unknown Yes Yes Yes No Yes No Unknown
Fossil Yes Yes[74] No Yes Unknown Unknown Yes No No No No No Unknown
ZFS Yes Yes Yes Yes Yes Unknown Yes Yes Yes Yes[75] Yes[76] Yes Unknown
Comparison of file systems 10
VMFS2 Yes Yes No Yes Unknown Unknown Yes No No No No No Unknown
VMFS3 Yes Yes No Yes Unknown Unknown Yes No No No No No Unknown
ISO9660:1988
No No Yes[77] No[78] Yes[79] Unknown No No No No No No Unknown
Joliet("CDFS")
No No Yes[77] No[78] Yes[79] Unknown No No No No No No Unknown
ISO9660:1999
No No Yes No Unknown Unknown No No No No No No Unknown
High Sierra No No Yes No Unknown Unknown No No No No No No Unknown
BtrfsYes Yes Yes Yes Yes Unknown Yes Unknown Yes Yes Yes Yes
1nanosecond
LanyardFilesystem
No No Yes No Yes No Yes No No No No No1
nanosecond
PramFS Yes Yes No Yes Yes Unknown Yes No Yes Yes Yes Yes 1 second
File system Storesfile
owner
POSIX filepermissions
Creationtimestamps
Lastaccess/readtimestamps
Last contentmodificationtimestamps
Diskcopy
created
Lastmetadatachange
timestamps
Lastarchive
timestamps
Accesscontrol
lists
Security/MAClabels
Extendedattributes/Alternate
datastreams/
forks
Checksum/ECC
MaxTimestampGranularity
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
Lanyard
Filesystem No No No No Yes Yes No No No No No No NoOffline
(cannot beshrunk)
CBM DOS No No No No Yes Yes No No No No No No No No
CP/M file
systemNo No No No No No No No No No No No No Unknown
DECtape No No No No No No No No No No No No No Unknown
Level-D No No No No No No No No No No Unknown Unknown Unknown Unknown
RT-11 No No No No No No No No No No No No No Unknown
DOS
(GEC)No No No No No No No No No No No No No Unknown
OS4000 No Yes[80] No No No No No No No No No No No Unknown
V6FS Yes No No No Yes Yes No No No No No No No Unknown
V7FS Yes No[81] No No Yes Yes No No No No No No No Unknown
FAT12 No No No No No Partial No No No No No No No Offline[]
FAT16 No No No No No Partial No No No No No No No Offline[]
FAT32 No No No No No Partial No No No No No No No Offline[]
exFAT No No Unknown No No Yes No Unknown Unknown No Unknown Unknown Unknown Unknown
Comparison of file systems 11
GFS Yes Yes[82] Yes Yes[83] Yes Yes No No No No Unknown Unknown Unknown Online
GPFS Yes Yes Unknown Unknown Yes Yes Yes Yes Yes No Yes Yes No Online
HAMMER Yes Yes Unknown Unknown Yes Yes Unknown Yes Unknown Unknown Unknown Unknown On demand Unknown
HPFS No No No No No Yes No Unknown No No Unknown Unknown No Unknown
NTFSYes Yes[84] No[85] Yes[85] Yes[86] Yes Yes Partial[87] Yes Yes Partial Unknown Yes (Windows
Server 2012)[] Online[]
HFS No Yes[88] No No No Yes No No No No No No No Unknown
HFS Plus Yes[89] Yes No Yes[90] Partial[91] Yes Yes[92] No No Yes[93] No No No Yes[94]
FFS
Yes Yes No No[95] Yes Yes No No No No No No NoOffline
(cannot beshrunk)[96]
UFS1 Yes Yes No No Yes Yes No No No No No No No Unknown
UFS2
Yes Yes No No[97][98] Yes Yes No Yes Unknown No No No NoOffline
(cannot beshrunk)[99]
LFS Yes Yes Yes[100] No Yes Yes No No No No Unknown Unknown Unknown Unknown
ext2 Yes Yes No No Yes Yes No No Yes[101] No No No No Online[102]
ext3 Yes Yes Yes[103] Yes Yes Yes No No Yes Yes No No No Online[102]
ext3cow Yes Yes Yes[103] Yes Yes Yes Unknown Yes Unknown Yes Yes No No Unknown
ext4 Yes Yes Yes[103] Yes Yes Yes No No Yes Yes No No No Online[102]
Lustre
Yes Yes Yes[103] Yes Yes YesYes in2.0 and
laterNo[67] No No No[67] No[67] No[67] Online[104]
NILFS
Yes Yes Yes[100] No Yes Yes Yes Yes No No Yes Unknown Unknown
Online (sinceLinux-3.x
andnilfs-utils
2.1)
ReiserFS Yes Yes No[105] Yes Yes Yes No No No No No No No Online
Reiser4
Yes Yes Yes No Yes Yes No Unknown No Yes[106] Yes No Unknown
Online (canonly beshrunkoffline)
OCFS No Yes No No Yes Yes No No No No Unknown Unknown Unknown Unknown
OCFS2
Yes Yes Yes Yes Yes Yes No Partial[107] No No Unknown No NoOnline forversion 1.4and higher
Reliance No No No[108] No No Yes No No No No Yes No No Unknown
Reliance
NitroYes Yes No[108] No
Depends onOS
Yes No No No No Yes No No Unknown
XFS
Yes Yes Yes Yes Yes[109] Yes No No No No No No NoOnline
(cannot beshrunk)
Comparison of file systems 12
JFS
Yes Yes No Yes Yes[110] Yes No Yes No No No Unknown UnknownOnline
(cannot beshrunk)[111]
QFS Yes Yes No Yes Yes Yes No No No No Unknown Unknown Unknown Unknown
Be File
SystemYes Yes No Yes Yes Yes Unknown No No No No No No Unknown
NSS Yes Yes Unknown Yes Yes[112] Yes[112] Yes[113] Yes No Yes Unknown Unknown Unknown Unknown
NWFS Yes[114] Yes[114] No No Yes[112] Yes[112] Yes[113] Unknown No No No Yes[115] Unknown Unknown
ODS-2 Yes Yes[116] No Yes No No Yes Yes No No Unknown Unknown Unknown Unknown
ODS-5 Yes Yes[116] No Yes No Yes Yes Yes Unknown No Unknown Unknown Unknown Unknown
UDF Yes Yes Yes[100] Yes[100] Yes Yes No No Yes No No No No Unknown
VxFS Yes Yes Yes No Yes Yes Yes Yes[117] Unknown No Unknown Unknown Yes Unknown
Fossil No No No No Yes Yes Yes Yes No No Unknown No Yes[118] Unknown
ZFS
Yes Yes Yes[119] No[119] Yes Yes No Yes No Yes Yes Yes YesOnline
(cannot beshrunk)[120]
VMFS2 Yes Yes No Yes Yes Yes No No No No Unknown Unknown Unknown Unknown
VMFS3 Yes Yes No Yes Yes Yes No No No No Unknown Unknown Unknown Unknown
Btrfs Yes Yes No No Yes Yes Yes Yes No Planned[] Yes Yes Work-in-Progress Online
PramFS No Yes No No Yes Yes No No Yes No No No No No
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[121] Extents Allocate-on-flush Sparse files Transparent compression
CBM DOS No Partial[122] No No No No
CP/M filesystem No No Yes No Yes No
Btrfs Partial[123] No Yes Yes Yes Yes
DECtape No No No No No No
Level-D Yes No Yes No No No
DOS (GEC) No Yes Yes No No No
OS4000 No Yes Yes No No No
V6FS No No No No Yes No
V7FS No No No No Yes No
FAT12 No No No No No No[124]
FAT16 No No No No No No[124]
Comparison of file systems 13
FAT32 No No No No No No
exFAT Unknown No No Unknown No No
GFS Partial[125] No No No Yes No
HPFS No No Yes No No No
NTFS Partial No Yes No Yes Partial[126]
HFS Plus No No Yes Yes No Yes
FFS 8:1[127] No No No Yes No
UFS1 8:1[127] No No No Yes No
UFS2 8:1[127] Yes No No Yes No
LFS 8:1[127] No No No Yes No
ext2 No[128] No No No Yes No[129]
ext3 No[128] No No No Yes No
ext3cow No[128] No No No Yes No
ext4 No[128] No Yes Yes Yes No
Lustre No No Yes Yes Yes No
NILFS No No No Yes Yes No
ReiserFS Yes No No No Yes No
Reiser4 Yes No Yes[130] Yes Yes Yes[106]
OCFS No No Yes No Unknown No
OCFS2 No No Yes No Yes No
Reliance No No No No No No
Reliance Nitro No No Yes No Yes No
XFS No No Yes Yes Yes No
JFS Yes No Yes No Yes only in JFS1 on AIX[131]
QFS Yes No No No Unknown No
BFS No No Yes No Unknown No
NSS No No Yes No Unknown Yes
NWFS Yes[132] No No No Unknown Yes
ODS-5 No No Yes No Unknown No
VxFS Unknown No Yes No Yes No
UDF No No Yes Depends[133] No No
Fossil No No No No Unknown Yes
VMFS2 Yes No No No Yes No
VMFS3 Yes No Yes No Yes No
ZFS Partial[134] Yes No Yes Yes Yes
PramFS No No No No Yes No
Comparison of file systems 14
File system Block suballocation Variable file block size[121] 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
FAT12
Yes Yes Yes Yes Yes Yes Yes Yes No
Partial on
diskettes
only,
through
dos*
commands
Unknown Yes Yes[135] Unknown Yes
[136] Unknown
FAT16Yes since
DOS 3.0,
FAT16B
since
DOS 3.31
Yes Yes Yes Yes Yes Yes Yes Yes
Partial on
diskettes
only,
through
dos*
commands
Unknown Yes Yes[135] Yes Yes
[136] Unknown
FAT32
Yes since
DOS
7.1[137]
Yes since
Windows
95 OSR2
Yes since
Windows 2000Yes Yes Yes Yes Yes Yes
Partial on
diskettes
only,
through
dos*
commands
Unknownwith
third-party
app[] Yes
[135] Yes Yes[136] Unknown
exFAT
No
Partial
read-only
with third
party
driver
Yes : Win7, Vista
SP1, can be added
to XP SP2
with third party
driverNo Yes 10.6.5+ No No Yes No No No Yes No Unknown Unknown
NTFSwith
third-party
driver
with
third-party
driver[]
Yes
Yes Kernel 2.2
or newer, or with
NTFS-3G or
ntfsprogs
with
NTFS-3G
or
MacFUSE
Partial: read-only
(read-write with
NTFS-3G)
with NTFS-3Gwith
NTFS-3G
with NTFS-3G on
OpensolarisUnknown Unknown
Partial
read-only
third-party
driver[]
with
3rd-party
driver[138]
No Unknown Unknown
HFS
Nowith
third-party
app[]
with third-party
app[] Yes Yes
Partial: read-only
since OSX
10.6[]
with third-party
app[][] Unknown Unknown Unknown No
with
third-party
app[]
No No No Unknown
HFS Plus
Nowith
third-party
app[]
with third-party
app[]
Partial - write
support occurs if
journal is empty,
but requires a
force mount.
Yes since
Mac OS
8.1
Yes Partial read-only
third-party app[] Unknown Unknown Unknown No
with
third-party
app
No No No Unknown
HPFSwith
third-party
driver
Partial
read-only
third-party
driver[]
included until
v3.51, third-party
driver until
4.0[139]
Yes No Unknown Yes Unknown Unknown Unknown Unknown Yes No Unknown Unknown Unknown
FFS No Unknown Unknown Yes[] No Yes Yes Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
UFS1No Unknown Unknown
Partial - read
onlyNo Yes Yes Unknown Unknown Unknown Unknown Unknown Unknown Unknown No Unknown
UFS2No Unknown Unknown
Partial - read
onlyNo No Yes Unknown Unknown Unknown Unknown Unknown Unknown Unknown No Unknown
Comparison of file systems 15
ext2
Unknown Unknown
with Ext2Fsd
(complete)[140]
or Ext2 IFS
(partial, no large
inodes)[141]
or
Ext2Read
(read-only, also on
LVM2)[142]
Yes No
with
fuse-ext2,[143]
ExtFS[144]
and
ext2fsx[145]
Yes Unknown Unknown Unknown Unknown third-party
app[146]
with
3rd-party
app[147]
with
3rd-party
app[147]
Unknown Unknown
ext3
Unknown Unknown
with Ext2Fsd
(complete)[140]
or Ext2 IFS
(partial, no large
inodes)[141]
or
Ext2Read
(read-only, also on
LVM2)[142]
Yes Nowith
fuse-ext2[143]
and ExtFS[144]
Yes Unknown Yes Unknown Unknown Unknownwith
3rd-party
app[147]
with
3rd-party
app[147]
Unknown Unknown
ext3cowUnknown Unknown Unknown
Yes Kernel
2.6.20Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
ext4
No No
with Ext2Fsd
(partial, extents
limited)[140]
or
Ext2Read
(read-only, also on
LVM2)[142]
Yes since kernel
2.6.28No
with fuse-ext2
(partial)[143]
and ExtFS (full
read/write)[144]
No Unknown Unknown Unknown Unknown Unknown No Unknown Unknown Unknown
Btrfs No No No Yes No No No No No No No No No No Unknown Unknown
ZFS
No No No
with 3rd Party
kernel
module[148]
or
FUSE[149]
Nowith free
3rd-party
software[150]
Yes No Yes No No No Unknown Unknown Unknown Unknown
LustreNo No Partial - under
development[151] Yes
[152] NoPartial - via
FUSE
Partial - via
FUSENo Partial - under
development[153] No No No No No Unknown Unknown
GFS No Unknown Unknown Yes No Unknown No Unknown Unknown Unknown Unknown Unknown No No Unknown Unknown
NILFSNo Unknown Unknown
Yes since kernel
2.6.30No Unknown No Unknown Unknown Unknown Unknown Unknown No No Unknown Unknown
ReiserFS
No UnknownPartial with
third-party appYes No No
Partial - read
onlyUnknown Unknown Unknown Unknown Unknown
with
3rd-party
app[147]
with
3rd-party
app[147]
Unknown Unknown
Reiser4No Unknown Unknown
with a kernel
patchNo No No Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
OCFS No Unknown Unknown Yes No Unknown No Unknown Unknown Unknown Unknown Unknown No No Unknown Unknown
OCFS2 No Unknown Unknown Yes No Unknown No Unknown Unknown Unknown Unknown Unknown No No Unknown Unknown
Reliance No No No No No No No No No No No No Yes No Yes Unknown
Reliance
NitroNo No No Yes No No No No No No No No Yes Yes Yes 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
QFSNo Unknown Unknown via client
software[154] No Unknown No Unknown Yes Unknown Unknown Unknown No No Unknown Unknown
Comparison of file systems 16
BFSNo Unknown Unknown
Partial -
read-onlyNo Unknown No Yes Unknown Unknown Unknown Unknown No No Unknown Unknown
NSSUnknown Unknown Unknown with Novell
OES2[citation needed]No Unknown No Unknown Unknown Unknown Unknown Unknown No No Unknown Unknown
NWFSUnknown Unknown Unknown via ncpfs client
software[155] No Unknown Yes Unknown Unknown Unknown Unknown Unknown No No Unknown Unknown
UDF
Unknown
Partial
read-only
support of
UDF 1.02
since
Win98
and
WinME
Yes[156] Yes
Yes since
Mac OS 9Yes Yes Unknown Yes Unknown Unknown Unknown Yes Unknown Unknown Unknown
VxFS No Unknown Unknown Yes No Unknown No Unknown Yes Yes Unknown Unknown No No Unknown Yes
Fossil No No No No No No No No No No No No No No No Unknown
IBM HFS No No No No No No No No No No Yes No Unknown Unknown Unknown Unknown
IBM zFS No No No No No No No No No No Yes No Unknown Unknown Unknown Unknown
IBM
GPFS[157] No No Yes Yes No No No No No Yes No No Unknown Unknown Unknown Unknown
VMFS2 Unknown Unknown Unknown Unknown No Unknown No Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
VMFS3No Unknown Unknown Partial read-only
with vmfs[158] Unknown Unknown No Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
DECtapeNo Unknown Unknown with
AncientFS[159] No with
AncientFS[159]
with
AncientFS[159] Unknown Unknown Unknown Unknown Unknown No No Unknown Unknown
Level-D No Unknown Unknown Unknown No Unknown No Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
RT-11 No Unknown Unknown Unknown No Unknown No Unknown Unknown Unknown Unknown Unknown No No Yes Unknown
ODS-2
No Unknown Unknown
Partial read-only
with tool or
kernel
module[160]
No Unknown No Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
ODS-5
No Unknown UnknownPartial read-only
with kernel
module[160]
No Unknown No Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
LFSNo Unknown Unknown with logfs
[161]
and othersNo Unknown No Unknown Unknown Unknown Unknown Unknown No No Unknown Unknown
LTFS No Unknown Unknown Yes No Yes No No No No No No No No Unknown Unknown
PramFS No No No Yes No No No No No No No No No No No No
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
Comparison of file systems 17
Notes[1] http:/ / en. wikipedia. org/ wiki/ Comparison_of_file_systems#endnote_54[2] IBM introduced JFS with the initial release of AIX Version 3.1 in 1990. This file system now called JFS1. The new JFS, ported from OS/2 to
AIX and Linux, was first shipped in OS/2 Warp Server for e-Business in 1999. It was released as JFS2 on AIX 5L.[4] Microsoft first introduced FAT32 in Windows 95 OSR2 (OEM Service Release 2) and then later in Windows 98. NT-based Windows did not
have any support for FAT32 up to Windows NT4; Windows 2000 was the first NT-based Windows OS that received the ability to work withit.
[5] Specifications for the Reliance file systems are available here (http:/ / www. datalight. com/ products/ filesystems/reliance-family-specifications).
[6] These are the restrictions imposed by the on-disk directory entry structures themselves. Particular Installable File System drivers may placerestrictions of their own on file and directory names; and particular and operating systems may also place restrictions of their own, across allfilesystems. MS-DOS, Microsoft Windows, and OS/2 disallow the characters UNIQ-nowiki-0-a3de2c3c417b2102-QINU in file and directorynames across all filesystems. Unix-like systems disallow the characters UNIQ-nowiki-1-a3de2c3c417b2102-QINU in file and directory namesacross all filesystems.
[7] For filesystems that have variable allocation unit (block/cluster) sizes, a range of size are given, indicating the maximum volume sizes for theminimum and the maximum possible allocation unit sizes of the filesystem (e.g. 512 bytes and 128 kB for FAT — which is the cluster sizerange allowed by the on-disk data structures, although some Installable File System drivers and operating systems do not support cluster sizeslarger than 32 kB).
[8][8] While the on-disk filesystem structure uses a 4-byte file length, which allows files up to 4G, the usual disk access APIs use the top three bitsof the sector number to specify the drive number, effectively limiting the maximum file size to 512M.
[9][9] While the on-disk filesystem structure uses a 3-byte sector number, which allows access to 4G of disk space, the usual disk access APIs usethe top three bits of the sector number to specify the drive number, effectively limiting the maximum disk size to 512M.
[10][10] The CP/M filesystem itself does have limitations in regard to the allowed filename characters to be used, but officially the followingcharacters are not allowed: UNIQ-nowiki-2-a3de2c3c417b2102-QINU . CCP reserves the following characters for special purposes:UNIQ-nowiki-3-a3de2c3c417b2102-QINU , PIP additionally reserves: UNIQ-nowiki-4-a3de2c3c417b2102-QINU .
[12] Depends on whether the FAT12, FAT16, and FAT32 implementation has support for long filenames (LFNs). Where it does not, as in OS/2,MS-DOS, Windows 95, Windows 98 in DOS-only mode and the Linux "msdos" driver, file names are limited to 8.3 format of 8-bit characters(space padded in both the basename and extension parts) and may not contain NUL (end-of-directory marker) or character 5 (replacement forcharacter 229 which itself is used as deleted-file marker). Short names also do not normally contain lowercase letters. Also note that a fewspecial names (CON, NUL, LPT1) should be avoided, as some operating systems (notably DOS and windows) effectively reserve them.
[13][13] In these filesystems the directory entries named "." and ".." have special status. Directory entries with these names are not prohibited, andindeed exist as normal directory entries in the on-disk 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.
[14] The on-disk structures have no inherent limit. Particular Installable File System drivers and operating systems may impose limits of theirown, however. MS-DOS/PC DOS do not support full pathnames longer than 66 bytes for FAT12, FAT16 and FAT32 volumes. This limitexists because these operating systems were designed around a fixed-length internal data structure named Current Directory Structure, whichholds the absolute paths of the current working directories of all volumes. The FAT12/FAT16 file system implementation under ConcurrentDOS and DR DOS 3.31 to 6.0 (prior to 1992 updates) did not impose any such limits on the directory depth due to their internal representationof current working directories as dynamically updated chain of double-linked relative directories. The introduction of a DOS-like CDS(instead of only an emulation thereof) for compatibility purposes with BDOS 7.0 in 1992 imposed the same length limits on PalmDOS, DRDOS 6.0 (since 1992 update), Novell DOS, OpenDOS, etc. as known from MS-DOS/PC DOS. Windows NT does not support full pathnameslonger than 32,767 bytes for NTFS. Most Windows programs will fail when full path exceeds 255 characters (including Explorer andCMD.EXE). Linux has a pathname limit of 4,096.
[15] See manual http:/ / wwwlehre. dhbw-stuttgart. de/ ~helbig/ os/ v6/ doc/ V/ fs. html[16] The actual maximum was 1,082,201,088 bytes, with 10 direct blocks, 1 singly indirect block, 1 doubly indirect block, and 1 triply indirect
block. The 4.0BSD and 4.1BSD versions, and the System V version, used 1,024-byte blocks rather than 512-byte blocks, making themaximum 4,311,812,608 bytes or approximately 4 GB.
[17] Table "Limits" states a maximum of 255 Unicode characters for the filename (http:/ / msdn. microsoft. com/ en-us/ library/ ee681827(VS.85). aspx)
[18] Udo Kuhnt, Luchezar Georgiev, Jeremy Davis (2007). FAT+. FATPLUS.TXT, draft revision 2 ( (http:/ / www. unet. univie. ac. at/~a0503736/ php/ drdoswiki/ index. php?n=Main. FATplus), (http:/ / www. fdos. org/ kernel/ fatplus. txt)).
[19] While FAT32 partitions this large work fine once created, some software won't allow creation of FAT32 partitions larger than 32 GB. Thisincludes, notoriously, the Windows XP installation program and the Disk Management console in Windows 2000, XP, 2003 and Vista. UseFDISK from a Windows ME Emergency Boot Disk to avoid. (http:/ / support. microsoft. com/ kb/ 314463)
[20] As Mac OS X is a Unix-like system, which supports UNIQ-nowiki-5-a3de2c3c417b2102-QINU in file names, and which usesUNIQ-nowiki-6-a3de2c3c417b2102-QINU as a pathname component separator, SPACE $ & % @ \ ^ : . # * " ¦ in file names is represented ondisk in HFS and HFS+ as UNIQ-nowiki-8-a3de2c3c417b2102-QINU .
Comparison of file systems 18
[21] The "." and ".." directory entries in HPFS that are seen by applications programs are a partial fiction created by the Installable File Systemdrivers. The on-disk data structure for a directory does not contain entries by those names, but instead contains a special "start" entry. Whilston-disk directory entries by those names are not physically prohibited, they cannot be created in normal operation, and a directory containingsuch entries is corrupt.
[22] This is the limit of the on-disk structures. The HPFS Installable File System driver for OS/2 uses the top 5 bits of the volume sector numberfor its own use, limiting the volume size that it can handle to 64 GB.
[23] NTFS allows files to have multiple names, in separate namespaces: Win32, DOS, Win32&DOS, and Posix. Windows APIs create files withWin32 "long" names (1–255 characters), sometimes with an additional "short"/"alias" DOS name in the "8.3" format (12 characters).
[24] NB: This article includes discussion of the NT & Win32 namespaces used by Windows APIs; these are distinct from the NTFS filenamenamespaces.
[25] In the Win32 namespace, any UTF-16 code unit (case insensitive) except NUL and UNIQ-nowiki-9-a3de2c3c417b2102-QINU is allowed;in the Posix namespace, any UTF-16 code unit (case sensitive) except NUL and / is allowed; in the DOS namespace, any character in theU+0021–U+007E range except SPACE < > . , ; : = ? * [ ] % | ( ) / \ is allowed. Windows APIs require Win32 namespace compatibility, whichprevents access to folders & files having only Posix names containing Win32-incompatible characters.
[26] This is the limit of the on-disk structures. The NTFS driver for Windows NT limits the volume size that it can handle to 256 TB and the filesize to 16 TB respectively.
[28][28] The Mac OS provides two sets of functions to retrieve file names from an HFS Plus volume, one of them returning the full Unicode names,the other shortened names fitting in the older 31 byte limit to accommodate older applications.
[29] HFS Plus mandates support for an escape sequence to allow arbitrary Unicode. Users of older software might see the escape sequencesinstead of the desired characters.
[31] ext4 1.42 (http:/ / e2fsprogs. sourceforge. net/ e2fsprogs-release. html#1. 42) "This release of e2fsprogs has support for file systems > 16TB"
[32][32] Depends on kernel version and arch. For 2.4 kernels the max is 2 TB. For 32-bit 2.6 kernels it is 16 TB. For 64-bit 2.6 kernels it is 8 EB.[33] ReiserFS has a theoretical maximum file size of 1 EB, but "page cache limits this to 8TB on architectures with 32 bit int" (http:/ / www.
namesys. com/ faq. html#reiserfsspecs)[34][34] QFS allows files to exceed the size of disk when used with its integrated HSM, as only part of the file need reside on disk at any one time.[35][35] Varies wildly according to block size and fragmentation of block allocation groups.[36][36] NSS allows files to have multiple names, in separate namespaces.[37] Some namespaces had lower name length limits. "LONG" had an 80-byte limit, "NWFS" 80 bytes, "NFS" 40 bytes and "DOS" imposed 8.3
filename.[38][38] Maximum combined filename/filetype length is 236 bytes; each component has an individual maximum length of 255 bytes.[39][39] Maximum pathname length is 4,096 bytes, but quoted limits on individual components add up to 1,664 bytes.[40][40] This restriction might be lifted in newer versions.[41] 232 × block size[42][42] Maximum file size on a VMFS volume depends on the block size for that VMFS volume. The figures here are obtained by using the
maximum block size.[43][43] ISO 9660#Restrictions[44] Through the use of multi-extents, a file can consist of multiple segments, each up to 4 GB in size. See ISO 9660#The 2/4 GB file size limit[45][45] Assuming the typical 2048 Byte sector size. The volume size is specified as a 32-bit value identifying the number of sectors on the volume.[46] Joliet Specification (http:/ / bmrc. berkeley. edu/ people/ chaffee/ jolspec. html)[47] https:/ / raw. github. com/ danrl/ lanyfs-docs/ master/ lanyfs-1. 4. txt[49] Note that the filename can be much longer XFS#Extended_attributes[50] XFS has a limitation under Linux 2.4 of 64 TB file size, but Linux 2.4 only supports a maximum block size of 2 TB. This limitation is not
present under IRIX.[51][51] Implemented in later versions as an extension[52] Concurrent DOS, FlexOS, Multiuser DOS, REAL/32, PalmDOS, Novell DOS, OpenDOS, and DR-DOS can store file owner information in
reserved fields of directory entries on FAT12 and FAT16 volumes, if the optional multi-user security module is loaded. If loaded, mostexternal commands invoke support for special /U:owner/group command line options to deal with this extra information.
[53] Concurrent DOS, FlexOS, Multiuser DOS, REAL/32, DR DOS, PalmDOS, Novell DOS, OpenDOS, and DR-DOS can storeread/write/delete/execute access permissions and file/directory passwords in reserved fields of directory entries on FAT12 and FAT16volumes. This is an integral part of the design, therefore passwords can be appended to file or directory names with semicolon (for example:dirname;dirpwd\filename;filepwd), the PASSWORD command can be used to control permissions and some commands support a special/P:pwd option to deal with this feature.
[54][54] File creation and file access timestamps are supported only by DOS 7.0 and higher, and typically only when explicitly enabled.[55][55] Some FAT implementations, such as in Linux, show file modification timestamp (mtime) in the metadata change timestamp (ctime) field.
This timestamp is however, not updated on file metadata change.[56] Particular Installable File System drivers and operating systems may not support extended attributes on FAT12 and FAT16. The OS/2 and
Windows NT filesystem drivers for FAT12 and FAT16 support extended attributes (using a "EA DATA. SF" pseudo-file to reserve theclusters allocated to them). Other filesystem drivers for other operating systems do not.
Comparison of file systems 19
[57] The f-node contains a field for a user identifier. This is not used except by OS/2 Warp Server, however.[58] NTFS access control lists can express any access policy possible using simple POSIX file permissions (and far more), but use of a
POSIX-like interface is not supported without an add-on such as Services for UNIX or Cygwin.[59] As of Vista, NTFS has support for Mandatory Labels, which are used to enforce Mandatory Integrity Control. See (http:/ / msdn2. microsoft.
com/ en-us/ library/ bb648648. aspx)[61][61] Access-control lists and MAC labels are layered on top of extended attributes.[62][62] Some operating systems implemented extended attributes as a layer over UFS1 with a parallel backing file (e.g., FreeBSD 4.x).[63] Some Installable File System drivers and operating systems may not support extended attributes, access control lists or security labels on
these filesystems. Linux kernels prior to 2.6.x may either be missing support for these altogether or require a patch.[64] ext4 has group descriptor, journal and, starting from Linux kernel 3.5, metadata checksumming[65][65] Creation time is stored in the backing ext4 filesystem, but is not yet sent to clients.[66][66] Lustre has checksums for data over the network, but depends on backing filesystem and hardware for checksums of persistent data[67][67] Not available with ext3/4, but will be available with ZFS OST/MDT backing filesystems.[68][68] ocfs2 computes and validates checksums of metadata objects like inodes and directories. It also stores an error correction code capable to
fixing single-bite errors.[69][69] CRCs are employed for certain types of metadata.[70] The local time, timezone/UTC offset, and date are derived from the time settings of the reference/single timesync source in the NDS tree.[71][71] 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.[72] 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/objectpermissions, ownership, etc.
[73][73] Record Management Services (RMS) attributes include record type and size, among many others.[74] File permission in 9P are a variation of the traditional Unix permissions with some minor changes, e.g. the suid bit is replaced by a new
'exclusive access' bit.[75][75] MAC/Sensitivity labels are per filesystem. A label per file are not out of the question as a future compatible change but aren't part of any
available version of ZFS.[76][76] Solaris "extended attributes" are really full-blown alternate data streams, in both the Solaris UFS and ZFS. ZFS also has "system attributes"
used for storing MS-DOS/NTFS compatible attributes for use by CIFS; as well as some attributes ported from FreeBSD[77][77] Time the file was recorded on the volume always available; "File Creation Date and Time" available only if the file has an Extended
Attribute block.[78][78] Not applicable to file systems on a read-only medium.[79][79] Available only if the file has an Extended Attribute block.[80][80] Symlinks only visible to NFS clients. References and Off-Disk Pointers (ODPs) provide local equivalent.[81] System V Release 4, and some other Unix systems, retrofitted symbolic links to their versions of the Version 7 Unix file system, although
the original version didn't support them.[82][82] Context based symlinks were supported in GFS, GFS2 only supports standard symlinks since the bind mount feature of the Linux VFS has
made context based symlinks obsolete[83][83] Optional journaling of data[84] As of Windows Vista, NTFS fully supports soft links. See this Microsoft article on Vista kernel improvements (http:/ / www. microsoft.
com/ technet/ technetmag/ issues/ 2007/ 02/ VistaKernel/ default. aspx). NTFS 5.0 (Windows 2000) and higher can create junctions (http:/ /support. microsoft. com/ kb/ 205524), which allow any valid local directory (but not individual files) ("target" of junction) to be mapped to anNTFS version thereof ("source" = location of junction). The source directory must lie on an NTFS 5+ partition, but the target directory can lieon any valid local partition and needn't be NTFS. Junctions are implemented through reparse points, which allow the normal process offilename resolution to be extended in a flexible manner.
[85][85] NTFS stores everything, even the file data, as meta-data, so its log is closer to block journaling.[86] 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.
[87] NTFS does not internally support snapshots, but in conjunction with the Volume Shadow Copy Service can maintain persistent blockdifferential volume snapshots.
[88][88] Mac OS System 7 introduced the 'alias', analogous to the POSIX symbolic link but with some notable differences. Not only could they crossfile systems but they could point to entirely different file servers, and recorded enough information to allow the remote file system to bemounted on demand. It had its own API that application software had to use to gain their benefits-- this is the opposite approach from POSIXwhich introduced specific APIs to avoid the symbolic link nature of the link. The Finder displayed their file names in an italic font (at least inRoman scripts), but otherwise they behaved identically to their referent.
[90][90] Metadata-only journaling was introduced in the Mac OS 10.2.2 HFS Plus driver; journaling is enabled by default on Mac OS 10.3 and later.
Comparison of file systems 20
[91] Although often believed to be case sensitive, HFS Plus normally is not. The typical default installation is case-preserving only. From MacOS 10.3 on the command newfs_hfs -s (http:/ / developer. apple. com/ documentation/ Darwin/ Reference/ ManPages/ man8/ newfs_hfs. 8.html) will create a case-sensitive new file system. HFS Plus version 5 optionally supports case-sensitivity. However, since case-sensitivity isfundamentally different from case-insensitivity, a new signature was required so existing HFS Plus utilities would not see case-sensitivity as afile system error that needed to be corrected. Since the new signature is 'HX', it is often believed this is a new filesystem instead of a simply anupgraded version of HFS Plus. See Apple's File System Comparisons (http:/ / developer. apple. com/ documentation/ MacOSX/ Conceptual/BPFileSystem/ Articles/ Comparisons. html) (which hasn't been updated to discuss HFSX) and Technical Note TN1150: HFS Plus VolumeFormat (http:/ / developer. apple. com/ technotes/ tn/ tn1150. html) (which provides a very technical overview of HFS Plus and HFSX).
[92] Mac OS Tiger (10.4) and late versions of Panther (10.3) provide file change logging (it's a feature of the file system software, not of thevolume format, actually). See fslogger (http:/ / www. kernelthread. com/ software/ fslogger/ ).
[93][93] As of OS X 10.7, HFS+ supports full volume file encryption known as Filevault 2.[94] Since Mac OS X Snow Leopard, online resizing is supported.[95] "Write Ahead Physical Block Logging" in NetBSD, provides metadata journaling and consistency as an alternative to softdep.[97] "Soft dependencies" (softdep) in NetBSD, called "soft updates" in FreeBSD provide meta-data consistency at all times without double writes
(journaling).[98][98] Block level journals can be added by using gjournal module in FreeBSD.[100] UDF, LFS, and NILFS are log-structured file systems and behave as if the entire file system were a journal.[101][101] Linux kernel versions 2.6.12 and newer.[102][102] Offline growing/shrinking as well as online growing:[103][103] Off by default.[104][104] Can be shrunk online by migrating files off an OST and removing the OST, or offline with ext3/4 backing filesystems by shrinking the
OST filesystem[105][105] Full block journaling for ReiserFS was not added to Linux 2.6.8 for obvious reasons.[106] Reiser4 supports transparent compression and encryption with the cryptcompress plugin which is the default file handler in version 4.1.[107][107] OCFS2 supports creating multiple write-able snapshots of regular files using REFLINK.[108][108] File system implements reliability via atomic transactions.[109][109] Optionally no on IRIX.[110] 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.[111] (http:/ / www. linux. com/ archive/ feed/ 32002)[112][112] 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.[113] 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 (http:/ / www. novell. com/ documentation/ nsureaudit/html/ netware_event_data. htm))
[114][114] Available only in the "NFS" namespace.[115] Limited capability. Volumes can span physical disks (volume segment)[116][116] These are referred to as "aliases".[117][117] VxFS provides an optional feature called "Storage Checkpoints" which allows for advanced file system snapshots.[118] When used with venti.[119][119] 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.[121] 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.[122][122] only for .REL (record structured) files, up to 254 bytes/record[123][123] Btrfs can only inline files smaller than 3916B with its metadata[124] SuperStor in DR DOS 6.0 and PC DOS 6.1, DoubleSpace in MS-DOS 6.0, DriveSpace in MS-DOS 6.22, Windows 95 and Windows 98,
and Stacker in Novell DOS 7, OpenDOS 7.01, DR-DOS 7.02/7.03 and PC DOS 7.0/2000 were data compression schemes for FAT.[125][125] Only for "stuffed" inodes[126][126] Only if formatted with 4kB-sized clusters or smaller[127][127] Other block:fragment size ratios supported; 8:1 is typical and recommended by most implementations.[128][128] Fragments were planned, but never actually implemented on ext2 and ext3.[129] 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.[130][130] In "extents" mode.[132][132] Each possible size (in sectors) of file tail has a corresponding suballocation block chain in which all the tails of that size are stored. The
overhead of managing suballocation block chains is usually less than the amount of block overhead saved by being able to increase the blocksize but the process is less efficient if there is not much free disk space.
[133][133] Depends on UDF implementation.
Comparison of file systems 21
[134][134] When enabled, ZFS's logical-block based compression behaves much like tail-packing for the last block of a file.[135] Files, Databases, and Persistent Storage (http:/ / msdn. microsoft. com/ en-us/ library/ ms899821. aspx). MSDN.[136][136] Via dosFs.[137][137] Native FAT32 support with MS-DOS 7.10 and 8.0. Loadable FAT32 support for any DOS since 3.31 with DRFAT32 redirector driver.
Native FAT32 support since OEM DR-DOS 7.04, bootable FAT32 support since OEM DR-DOS 7.06. Native FAT32 support with OEM PCDOS 7.10.
[138] Tuxera NTFS for Windows CE. See article (http:/ / www. windowsfordevices. com/ c/ a/ News/ Tuxera-NTFS-for-Windows-CE/ ) andannouncement (http:/ / www. tuxera. com/ about-us/ news/ 1915/ ).
[139] Win NT 4.0 HPFS Driver (http:/ / hobbes. nmsu. edu/ h-viewer. php?dir=/ pub/ windows& file=hpfsnt. zip)[140] Ext2Fsd is an open source ext2/ext3/ext4 kernel-level file system driver for Windows systems (NT/2K/XP/VISTA/7, X86/AMD64) that
provides both read/write access to the file system. Currently, does not fully support extents (no size truncating/extending, no file deletion), adefault feature of ext4. (http:/ / www. ext2fsd. com/ )
[141] Ext2 IFS for Windows provides kernel-level read/write access to ext2 and ext3 volumes in Windows NT4, 2000, XP, Vista and Windows2008. Does not support inodes size above 128 bytes and does not support ext4. (http:/ / www. fs-driver. org/ faq. html)
[142] Ext2Read is an explorer-like utility to explore ext2/ext3/ext4 file systems that provides read-only access to the file system. It supportsextents, large inodes, and LVM2 volumes. Ext2Read (http:/ / sourceforge. net/ projects/ ext2read/ )
[143] Fuse-ext2 is a multi OS FUSE module to mount ext2 and ext3 file system devices and/or images with read and write support. (http:/ /fuse-ext2. sourceforge. net/ )
[144] Paragon ExtFS for Mac is a low-level file system driver specially developed to bridge file system incompatibility between Linux and Macby providing full read/write access to the Ext2, Ext3 and Ext4 file systems under Mac OS X. (http:/ / www. paragon-software. com/ home/extfs-mac/ )
[145] Ext2fsx is the first and old implementation of the Ext2 (Linux) filesystem for Mac OS X. (http:/ / sourceforge. net/ projects/ ext2fsx/ )[146] OS/2 ext2 Driver (http:/ / hobbes. nmsu. edu/ h-viewer. php?dir=/ pub/ os2/ system/ drivers/ filesys& file=ext2_240. zip)[147] See Total Commander, which supports accessing ext2, ext3, and ReiserFS from Windows, Windows CE, and Windows Mobile.[148] Native ZFS for Linux (http:/ / zfsonlinux. org/ )[149] ZFS on FUSE (http:/ / www. wizy. org/ wiki/ ZFS_on_FUSE)[150] Mac ZFS (http:/ / code. google. com/ p/ maczfs/ )[151] http:/ / wiki. lustre. org/ index. php/ Windows_Native_Client[152] http:/ / wiki. lustre. org/ index. php?title=Main_Page[153] http:/ / wiki. lustre. org/ index. php/ FAQ_-_OS_Support[154] Using SAM-QFS on Linux Clients (http:/ / wikis. sun. com/ display/ SAMQFSDocs/ Using+ SAM-QFS+ on+ Linux+ Clients)[155] ncpfs (http:/ / freshmeat. net/ projects/ ncpfs/ )[157] (http:/ / www-03. ibm. com/ systems/ software/ gpfs/ )[158] vmfs (http:/ / code. google. com/ p/ vmfs/ )[159] AncientFS (http:/ / osxbook. com/ software/ ancientfs/ )[160] VMS2Linux (http:/ / www. vms2linux. de/ )[161] logfs (http:/ / logfs. sourceforge. net/ )
External links• Linux kernel file systems (http:/ / howto. wikia. com/ wiki/ Howto_configure_the_Linux_kernel/ fs) via
Wikia:en.howto:Wikihowto• A speed comparison of filesystems on Linux 2.4.5 (http:/ / web. archive. org/ web/ 20040407211142/ aurora.
zemris. fer. hr/ filesystems/ ) (archived)
Article Sources and Contributors 22
Article Sources and ContributorsComparison of file systems Source: http://en.wikipedia.org/w/index.php?oldid=548464351 Contributors: 121a0012, 2001:4DD0:FFA8:10:3E97:EFF:FE03:459E,2001:620:1B0:2:21C:C4FF:FE3A:317E, APS (Full Auto), Aaaaa0, Abhishekrai, Acalamari, AdultSwim, Afalbrig, Alan J Shea, Alexius08, Alextm, AlistairMcMillan, AltiusBimm,Amberkilloran, Andareed, Angrymuth, AnthonySorace, Antoinel, Areriff, Arifsaha, Artir, Az29, BBCWatcher, Baboyer, Beawolf, Beefster09, Beej, Bennie Noakes, Bewmies, Bienengasse,Blaxthos, Bobo192, Bodnotbod, BrentRockwood, Brianski, Brownsteve, Bthetford, BuSchu, Cainamarques, Canweriotnow, Ccalvin, Cclloyd9785, CesarB, Chikinsawsage, Chowbok, Chris thespeller, Chriswiki, Cjcox, Czarkoff, D235j, DStoykov, Dajoker, Danudey, Darolew, Darrenmoffat, David Gerard, Davidgumberg, Derekgillespie, Dflam, Dicdoc, Doc aberdeen, Dojarca,DotCOMmie, Doublehp, DrSeehas, Dubhe.sk, Dwedit, Dzlk, EagleOne, Edgepedia, Edward, Einharder cave, Ekscrypto, Electricmuffin11, Electron9, Eptin, Erdema, ErkinBatu, EvanED,Explorer09, FCartegnie, Fanf, Fieldday-sunday, Firefox82, Frankk74, Frederik.Questier, Gadget850, Gerritdewitt, Ghakko, Glenn, Gohan71, GoldKanga, GordonKlimm, Gregzeng, Greywolf82,Guy Harris, Guy M, Guzenkov, Gzpguest, Hachre, Hanty, Hawke666, Heksterb, Hideki.adam, HumphreyW, Husond, Imroy, Intgr, Invisible Idiot, Iridescent, Isaac Dupree, J.delanoy, JLaTondre,JaGa, JamesEG, JasonDClinton, Jdm64, Jeberle, Jeffq, Jengelh, Jerome Charles Potts, JesseBrandeburg, Jgharston, Jim.Callahan,Orlando, Jmmuguerza, Joaopaulo1511, Joe.krisch, Joecr,Joeinwap, John of Reading, JonHarder, Jonabbey, Jumper4677, Kaishi.axon, Kawazoe Masahiro, Kenyon, Kermit2, Ketiltrout, KeyJ, Kinema, Kiteinthewind, L29Ah, Lawrence Mayer,Leandrod, Lefton4ya, LenzGr, Lguzenda, Liangent, Lifeweaver, LittleOldMe, LjL, Loadmaster, Lokanathbagh, Lostinlodos, Lotu, Louisgag, Ltwizard, LukeSw, LustreOne, Marbud, MarcKupper, MarkJaroski, Marz2, MathFacts, Matthiaspaul, Maxal, Med, Melancholie, Melter, MetalGearLiquid, Mgrant0, MicahDCochran, Michael Drüing, Michael.Pohoreski, Mihhkel,Mike92591, Mikko Hirvonen, Mimosinnet, Mindmatrix, Minikola, Mjb, Mjsteiner, Moniker117, Morlix, Muro de Aguas, Mwtoews, Nabber00, NapoliRoma, Narendra Sisodiya, NemethE,Nevyn, Nil0lab, NuShrike, NuclearWizard, Ogai, Ohnoitsjamie, Olytibar, Omegatron, Ook, P2k1, Pak1standby, Panarchy, Paul Koning, PaulMEdwards, PedroCarvalho, PeterEasthope,Phatom87, Phcoder, Piccolo696, Piscue, Plushpuffin, Postglock, Pot, PowerPatrick, PutzfetzenORG, QEDquid, R'n'B, RandomChu, Randomdestructn, Ravenpi, Raysonho, Rbeef, Rbirkby,Reedy, Reinoud, Reisio, Rfc1394, Rgruian, Rhinux, RingtailedFox, RobertMfromLI, Rpandiri, Rror, Russoedu, Ruud Koot, Rwalker, Rwessel, Ryulong, Rōnin, S KTT, SLi, Santurwoman,SchuminWeb, Scientes.bonum.et.malum, Scientus, Sean.richardson, Segin, Semitones, Shamilj, Shelnutt2, Silly rabbit, Skib0o0o, Sks939, Skybon, Slinsley, SmackEater, Snek01, Snrjefe,Sound-Mind, SquidInc, Ssd, StAnselm, StaticGull, Steppres, StevenWhitehouse, Storkk, Technokemono, Tehslack, Tempel, The Anome, The Monster, TheGiantHogweed, Thue, Thunderbird2,Thunderpenguin, TimSmall, Toad king, Todd Lyons, Towel401, Trasz, Trlkly, Tyler.szabo, Tytso, Universalcosmos, Unixguy, Unknownzero, Vadmium, Vanessaezekowitz, Vanyi, Vkgfx,Vossman, Wai Wai, Warren, WereSpielChequers, Wew036, Widdma, Widefox, WikiDegausser, Wikianon, Xiloynaha, Xtradi, Yamla, Ychao, Yms, Ysangkok, Zabby1982, Zploskey, Zr40,ZyMOS, 541 anonymous edits
LicenseCreative Commons Attribution-Share Alike 3.0 Unported//creativecommons.org/licenses/by-sa/3.0/