User:Engleman/sandbox

From Wikipedia, the free encyclopedia

General information[edit]

File system Creator Year
introduced
Original operating system
V6FS Bell Labs 1972 Version 6 Unix
FAT12 Microsoft 1977 Microsoft Disk BASIC
V7FS Bell Labs 1979 Version 7 Unix
FFS Kirk McKusick 1983 4.2BSD
HFS Apple Computer 1985 Mac OS
FAT16 Microsoft 1987 MS-DOS 3.31
HPFS IBM & Microsoft 1988 OS/2
ISO 9660:1988 Ecma International, Microsoft 1988 MS-DOS, Mac OS, and AmigaOS
JFS1 IBM 1990 AIX[1]
ext Rémy Card 1992 Linux
WAFL NetApp 1992 Data ONTAP
NTFS Version 1.0 Microsoft, Tom Miller, Gary Kimura 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 IBM 1994 MVS/ESA (now z/OS)
Joliet ("CDFS") Microsoft 1995 Microsoft Windows, Linux, Mac OS, and FreeBSD
UDF ISO/ECMA/OSTA 1995 -
FAT32 Microsoft 1996 Windows 95b[2]
GPFS IBM 1996 AIX, Linux, Windows
HFS Plus Apple Computer 1998 Mac OS 8.1
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
NTFS Version 5.1 Microsoft 2001 Windows XP
ReiserFS Namesys 2001 Linux
FATX Microsoft 2002 Xbox
UFS2 Kirk McKusick 2002 FreeBSD 5.0
Lustre Cluster File Systems (later Oracle Corporation) 2002 Linux
OCFS Oracle Corporation 2002 Linux
VMFS2 VMware 2002 VMware ESX Server 2.0
Fossil Bell Labs 2003 Plan 9 from Bell Labs 4
Google File System Google 2003 Linux
ZFS Sun Microsystems 2004 Solaris, FreeBSD
Reiser4 Namesys 2004 Linux
OCFS2 Oracle Corporation 2005 Linux
NILFS NTT 2005 Linux, NetBSD
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
NTFS Version 6.0 Microsoft 2006 Windows Vista
Btrfs Oracle Corporation 2007 Linux
HAMMER Matthew Dillon 2008 Dragonfly BSD
Oracle ACFS Oracle Corporation 2009 Linux - Red Hat Enterprise Linux 5 and Oracle Enterprise Linux 5 only
LTFS IBM 2010 Linux, Mac OS X, planned Microsoft Windows,
IlesfayFS Ilesfay Technology Group 2011 Microsoft Windows, planned Red Hat Enterprise Linux

Limits[edit]

File system Maximum filename length Allowable characters in directory entries[3] Maximum pathname length Maximum file size Maximum volume size[4]
FFS 255 bytes Any byte except NUL[5] No limit defined[6] 8 ZiB 8 ZiB
UFS1 255 bytes Any byte except NUL[5] No limit defined[6] 226 TiB 226 TiB
UFS2 255 bytes Any byte except NUL[5] No limit defined[6] 32 PiB 1 YiB
ext2 255 bytes Any byte except NUL[5] and / No limit defined[6] 2 TiB[4] 32 TiB
ext3 255 bytes Any byte except NUL[5] and / No limit defined[6] 2 TiB[4] 32 TiB
ext4 256 bytes Any byte except NUL[5] and / No limit defined[6] 16 TiB[4][7] 1 EiB (but user tools limited to 16 TB)
Lustre 255 bytes Any byte except NUL[5] No limit defined[6] 320 TiB (on ext4) 1 YiB (on ext4, 10 PB tested)
GPFS 255 UTF-8 codepoints Any byte except NUL[5] No limit defined[6] 512 YiB 512 YiB (4 PiB tested)
GFS 255 Any byte except NUL[5] No limit defined[6] 8 EiB[8] 8 EiB[8]
ReiserFS 4,032 bytes/226 characters Any byte except NUL[5] No limit defined[6] 8 TiB[9] (v3.6), 2 GB (v3.5) 16 TiB
NILFS 255 bytes Any byte except NUL[5] No limit defined[6] 8 EiB 8 EiB
Reiser4 3,976 bytes Any byte except / and NUL No limit defined[6] 8 TiB on x86 Un­known
OCFS 255 bytes Any byte except NUL[5] No limit defined[6] 8 TiB 8 TiB
OCFS2 255 bytes Any byte except NUL[5] No limit defined[6] 4 PiB 4 PiB
Reliance 260 bytes OS specific 260 B 4 GiB 2 TB
Reliance Nitro 1,024 bytes OS specific 1024 bytes 32 TiB 32 TiB
XFS 255 bytes[10] Any byte except NUL[5] No limit defined[6] 8 EiB[11] 8 EiB[11]
JFS1 255 bytes Any byte except NUL[5] No limit defined[6] 8 EiB 4 PiB
JFS 255 bytes Any Unicode except NUL No limit defined[6] 4 PiB 32 PiB
QFS 255 bytes Any byte except NUL[5] No limit defined[6] 16 EiB[12] 4 PiB[12]
BFS 255 bytes Any byte except NUL[5] No limit defined[6] 260 GiB[13] 2 EiB
AdvFS 226 characters Any byte except NUL[5] No limit defined[6] 16 TiB 16 TiB
ODS-5 236 bytes[14] Un­known 4,096 bytes[15] 1 TiB 1 TiB
UDF 255 bytes Any Unicode except NUL 1,023 bytes[16] 16 EiB Un­known
ZFS 255 bytes Any Unicode except NUL No limit defined[6] 16 EiB 16 EiB
High Sierra Un­known Un­known Un­known Un­known Un­known
HAMMER Un­known Un­known Un­known Un­known 1 EiB
Btrfs 255 bytes Any byte except NUL Un­known 16 EiB 16 EiB
LTFS Un­known Un­known Un­known Un­known Un­known
LEAN 4,068 bytes[17] case sensitive, in UTF-8 (any Unicode codepoint) No limit defined 8 EiB 8 EiB
File system Maximum filename length Allowable characters in directory entries[3] Maximum pathname length Maximum file size Maximum volume size[4]

Metadata[edit]

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
Level-D Yes Yes Yes Yes Un­known Un­known Yes Yes Yes No No No
V6FS Yes Yes No Yes Yes Un­known Yes No No No No No
V7FS Yes Yes No Yes Yes Un­known Yes No No No No No
NTFS Yes Yes[18] Yes Yes Yes No Yes No Yes Yes[19] Yes No
HFS Plus Yes Yes Yes Yes Yes No Yes Yes Yes Yes[20] Yes No
FFS Yes Yes No Yes Yes Un­known Yes No No No No No
UFS1 Yes Yes No Yes Yes Un­known Yes No Yes[21] Yes[21] No[22] No
UFS2 Yes Yes Yes Yes Yes Un­known Yes No Yes[21] Yes[21] Yes No
LFS Yes Yes No Yes Yes Un­known Yes No No No No No
ext2 Yes Yes No Yes Yes Un­known Yes No Yes[23] Yes[23] Yes No
ext3 Yes Yes No Yes Yes No Yes No Yes[23] Yes[23] Yes No
ext4 Yes Yes Yes Yes Yes Un­known Yes No Yes[23] Yes[23] Yes Partial[24]
Lustre Yes Yes Partial[25] Yes Yes No Yes No Yes Yes Yes Partial[26][27]
GPFS Yes Yes Yes Yes Yes Un­known Yes No Yes Yes Yes Yes
GFS Yes Yes No Yes Un­known Un­known Yes No Yes[23] Yes[23] Yes No
NILFS Yes Yes Yes No Un­known Un­known 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 Un­known Yes No No No No No
OCFS2 Yes Yes No Yes Un­known Un­known Yes No Yes No Yes Partial[28]
XFS Yes Yes No Yes Yes Un­known Yes No Yes Yes[23] Yes No
JFS Yes Yes Yes Yes Yes Un­known Yes No Yes Yes Yes No
QFS Yes Yes Yes Yes Un­known Un­known Yes Yes Yes No Yes No
AdvFS Yes Yes No Yes Yes Un­known Yes No Yes No Yes No
ODS-5 Yes Yes Yes Un­known Un­known Un­known Un­known Yes Yes Un­known Yes[29] No
UDF Yes Yes Yes Yes Un­known Un­known Yes Yes Yes No Yes No
ZFS Yes Yes Yes Yes Yes Un­known Yes Yes Yes Yes[30] Yes[31] Yes
Btrfs Yes Yes Yes Yes Yes Un­known Yes Un­known Yes Un­known 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[edit]

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
GFS Yes Yes[32] Yes Yes[33] Yes Yes No No No No Un­known Un­known Un­known Un­known
GPFS Yes Yes Un­known Un­known Yes Yes Yes Yes Yes No Yes Yes No Online
NTFS Yes Yes[34] No[35] Yes[35] Yes[36] Yes Yes Partial[37] Yes Yes Partial Un­known No Online[38]
HFS No Yes[39] No No No Yes No No No No No No No Un­known
HFS Plus Yes[40] Yes No Yes[41] Partial[42] Yes Yes[43] No No No[44] No No No Offline
FFS Yes Yes No No[45] Yes Yes No No No No No No No Offline (cannot be shrunk)[46]
UFS1 Yes Yes No No Yes Yes No No No No No No No Un­known
UFS2 Yes Yes No No[47][48] Yes Yes No Yes Un­known No No No No Offline (cannot be shrunk)[49]
LFS Yes Yes Yes[50] No Yes Yes No Yes No No Un­known Un­known Un­known Un­known
ext2 Yes Yes No No Yes Yes No No Yes[51] No No No No Online[52]
ext3 Yes Yes Yes[53] Yes Yes Yes No No Yes No No No No Online[52]
ext4 Yes Yes Yes[53] Yes Yes Yes No No Yes No No No No Online[52]
Lustre Yes Yes Yes[53] Yes Yes Yes Yes in 2.0 No[27] No No[27] No[27] No[27] No[27] Online[54]
NILFS Yes Yes Yes[50] No Yes Yes Yes Yes No No Yes Un­known Un­known Un­known
ReiserFS Yes Yes No[55] Yes Yes Yes No No No No No No No Offline
Reiser4 Yes Yes Yes No Yes Yes No Un­known No Yes[56] Yes No Un­known Online (can only be shrunk offline)
OCFS No Yes No No Yes Yes No No No No Un­known Un­known Un­known Un­known
OCFS2 Yes Yes Yes Yes Yes Yes No Partial[57] No No Un­known No No Online for version 1.4 and higher
Reliance Nitro Yes Yes No[58] No Depends on OS Yes No No No No Yes No No Un­known
XFS Yes Yes Yes Yes Yes[59] Yes No No No No No No No Online (cannot be shrunk)
JFS Yes Yes No Yes Yes[60] Yes No Yes No No Yes Un­known Un­known Online (cannot be shrunk)[61]
QFS Yes Yes No Yes Yes Yes No No No No Un­known Un­known Un­known Un­known
ODS-2 Yes Yes[62] No Yes No No Yes Yes No No Un­known Un­known Un­known Un­known
ODS-5 Yes Yes[62] No Yes No Yes Yes Yes Un­known No Un­known Un­known Un­known Un­known
ZFS Yes Yes Yes[63] No[63] Yes Yes No Yes No Yes Yes Yes Yes Online (cannot be shrunk)[64]
Btrfs Yes Yes Un­known Yes Yes Yes Un­known Yes No Planned[65] 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[edit]

File system Block suballocation Variable file block size[66] Extents Allocate-on-flush Sparse files Transparent compression
Btrfs Yes 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[67]
FAT16 No No No No No No[67]
FAT32 No No No No No No
exFAT Un­known No No Un­known No No
GFS Partial[68] No No No Yes No
HPFS No No Yes No No No
NTFS Partial No Yes No Yes Yes[69]
HFS Plus No No Yes Yes No Yes
FFS 8:1[70] No No No Yes No
UFS1 8:1[70] No No No Yes No
UFS2 8:1[70] Yes No No Yes No
LFS 8:1[70] No No No Yes No
ext2 No[71] No No No Yes No[72]
ext3 No[71] No No No Yes No
ext4 No[71] 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[73] Yes Yes Yes[56]
OCFS No No Yes No Un­known 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[74]
QFS Yes No No No Un­known No
BFS No No Yes No Un­known No
NSS No No Yes No Un­known Yes
NWFS Yes[75] No No No Un­known Yes
ODS-5 No No Yes No Un­known No
VxFS Un­known No Yes No Yes No
UDF No No Yes Depends[76] No No
Fossil No No No No Un­known Yes
VMFS2 Yes No No No Yes No
VMFS3 Yes No Yes No Yes No
ZFS Partial[77] Yes No Yes Yes Yes
File system Block suballocation Variable file block size[66] Extents Allocate-on-flush Sparse files Transparent compression

Supporting operating systems[edit]

File system Windows 9x Windows NT Linux Mac OS Mac OS X FreeBSD BeOS Solaris
FAT12 Yes Yes Yes Yes Yes Yes Yes Yes
FAT16 Yes Yes Yes Yes Yes Yes Yes Yes
FAT32 Yes since Windows 95 OSR2 Yes since Windows 2000 Yes Yes Yes Yes Yes Yes
NTFS with third-party driver[78] Yes Yes Kernel 2.2 or newer, or with NTFS-3G or ntfsprogs No with NTFS-3G with NTFS-3G with NTFS-3G with NTFS-3G on Opensolaris
HFS with third-party app[79] with third-party app[79] Yes Yes Yes with third-party app[80][81] Un­known Un­known
HFS Plus with third-party app[79] with third-party app[79] 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[82] Un­known Un­known
FFS Un­known Un­known Yes[83] No Yes Yes Un­known Un­known
UFS1 Un­known Un­known Partial - read only No Yes Yes Un­known Un­known
UFS2 Un­known Un­known Partial - read only No No Yes Un­known Un­known
ext2 Un­known with Ext2Fsd (complete)[84] or Ext2 IFS (partial, no large inodes)[85] or Ext2Read (read-only, also on LVM2)[86] Yes No with fuse-ext2[87], ExtFS[88] and ext2fsx[89] Yes Un­known Un­known
ext3 Un­known with Ext2Fsd (complete)[84] or Ext2 IFS (partial, no large inodes)[85] or Ext2Read (read-only, also on LVM2)[86] Yes No with fuse-ext2[87] and ExtFS[88] Yes Un­known Yes
ext4 No with Ext2Fsd (partial, no extents)[84], Ext2 IFS (partial, no large inodes)[85] or Ext2Read (read-only, also on LVM2)[86] Yes since kernel 2.6.28 No with fuse-ext2 (partial)[87] and ExtFS (full read/write)[88] No Un­known Un­known
Lustre No Partial - under development[90] Yes[91] No Partial - via FUSE Partial - via FUSE No Partial - under development[92]
GFS Un­known Un­known Yes No Un­known No Un­known Un­known
NILFS Un­known Un­known Yes since kernel 2.6.30 No Un­known No Un­known Un­known
ReiserFS Un­known Partial with third-party app Yes No No Partial - read only Un­known Un­known
Reiser4 Un­known Un­known with a kernel patch No No No Un­known Un­known
OCFS Un­known Un­known Yes No Un­known No Un­known Un­known
OCFS2 Un­known Un­known Yes No Un­known No Un­known Un­known
XFS Un­known Un­known Yes No Un­known Partial Un­known Un­known
JFS Un­known Un­known Yes No No No Un­known
QFS Un­known Un­known via client software[93] No Un­known No Un­known Yes
UDF Partial read-only support of UDF 1.02 since Win98 and WinME Yes[94] Yes Yes since Mac OS 9 Yes Yes Un­known Yes
ZFS No No with 3rd Party kernel module [95] or FUSE[96] No with free 3rd-party software[97] Yes No Yes
IBM HFS No No No No No No No No
IBM GPFS[98] No Yes Yes No No No No No
LFS Un­known Un­known with logfs[99] and others No Un­known No Un­known Un­known
Btrfs No No Yes No No No No No
LTFS Un­known Un­known Yes No Yes No No No
File system Windows 9x Windows NT Linux Mac OS Mac OS X FreeBSD BeOS Solaris
  1. ^ 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.
  2. ^ 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 with it.
  3. ^ a b These are the restrictions imposed by the on-disk 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. Unix-like systems disallow the characters / and NUL in file and directory names across all filesystems.
  4. ^ a b c d e 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 128 KB for FAT — which is the cluster size range allowed by the on-disk data structures, although some Installable File System drivers and operating systems do not support cluster sizes larger than 32 KB).
  5. ^ a b c d e f g h i j k l m n o p q r Cite error: The named reference note-26 was invoked but never defined (see the help page).
  6. ^ a b c d e f g h i j k l m n o p q r s t u Cite error: The named reference note-12 was invoked but never defined (see the help page).
  7. ^ "Interviews/EricSandeen". FedoraProject. 2008-06-09. Retrieved 2009-10-09.
  8. ^ a b 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.
  9. ^ ReiserFS has a theoretical maximum file size of 1 EB, but "page cache limits this to 8TB on architectures with 32 bit int"[1]
  10. ^ Note that the filename can be much longer XFS#Extended_attributes
  11. ^ a b 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.
  12. ^ a b 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.
  13. ^ Varies wildly according to block size and fragmentation of block allocation groups.
  14. ^ Maximum combined filename/filetype length is 236 bytes; each component has an individual maximum length of 255 bytes.
  15. ^ Maximum pathname length is 4,096 bytes, but quoted limits on individual components add up to 1,664 bytes.
  16. ^ This restriction might be lifted in newer versions.
  17. ^ [2]
  18. ^ 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.
  19. ^ As of Vista, NTFS has support for Mandatory Labels, which are used to enforce Mandatory Integrity Control. See [3]
  20. ^ As of 10.5 Leopard, Mac OS X has support for Mandatory Labels. See
  21. ^ a b c d Access-control lists and MAC labels are layered on top of extended attributes.
  22. ^ Some operating systems implemented extended attributes as a layer over UFS1 with a parallel backing file (e.g., FreeBSD 4.x).
  23. ^ a b c d e f g h i 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.
  24. ^ ext4 has group descriptor and journal checksums only
  25. ^ Creation time is stored in the backing ext4 filesystem, but is not yet sent to clients.
  26. ^ Lustre has checksums for data over the network, but depends on backing filesystem and hardware for checksums of persistent data
  27. ^ a b c d e f Not available with ext3/4, but will be available with ZFS OST/MDT backing filesystems.
  28. ^ 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.
  29. ^ Record Management Services (RMS) attributes include record type and size, among many others.
  30. ^ 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.
  31. ^ 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
  32. ^ 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
  33. ^ Optional journaling of data
  34. ^ 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.
  35. ^ a b NTFS stores everything, even the file data, as meta-data, so its log is closer to block journaling.
  36. ^ 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.
  37. ^ NTFS does not internally support snapshots, but in conjunction with the Volume Shadow Copy Service can maintain persistent block differential volume snapshots.
  38. ^ http://www.bleepingcomputer.com/tutorials/tutorial133.html
  39. ^ Mac OS System 7 introduced the 'alias', analogous to the POSIX symbolic link but with some notable differences. Not only could they cross file systems but they could point to entirely different file servers, and recorded enough information to allow the remote file system to be mounted on demand. It had its own API that application software had to use to gain their benefits-- this is the opposite approach from POSIX which introduced specific APIs to avoid the symbolic link nature of the link. The Finder displayed their file names in an italic font (at least in Roman scripts), but otherwise they behaved identically to their referent.
  40. ^ Hard Links on HFS+
  41. ^ 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.
  42. ^ Although often believed to be case sensitive, HFS Plus normally is not. The typical default installation is case-preserving only. From Mac OS 10.3 on the command newfs_hfs -s will create a case-sensitive new file system. HFS Plus version 5 optionally supports case-sensitivity. However, since case-sensitivity is fundamentally different from case-insensitivity, a new signature was required so existing HFS Plus utilities would not see case-sensitivity as a file 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 an upgraded version of HFS Plus. See Apple's File System Comparisons (which hasn't been updated to discuss HFSX) and Technical Note TN1150: HFS Plus Volume Format (which provides a very technical overview of HFS Plus and HFSX).
  43. ^ 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 the volume format, actually). See fslogger.
  44. ^ HFS+ does not actually encrypt files: to implement FileVault, OS X creates an HFS+ filesystem in a sparse, encrypted disk image that is automatically mounted over the home directory when the user logs in.
  45. ^ "Write Ahead Physical Block Logging" in NetBSD, provides metadata journaling and consistency as an alternative to softdep.
  46. ^ OpenBSD growfs(8) manpage
  47. ^ "Soft dependencies" (softdep) in NetBSD, called "soft updates" in FreeBSD provide meta-data consistency at all times without double writes (journaling).
  48. ^ Block level journals can be added by using gjournal module in FreeBSD.
  49. ^ FreeBSD growfs(8) manpage
  50. ^ a b UDF, LFS, and NILFS are log-structured file systems and behave as if the entire file system were a journal.
  51. ^ Linux kernel versions 2.6.12 and newer.
  52. ^ a b c Offline growing/shrinking as well as online growing: "Linux man page for resize2fs(8) (from e2fsprogs 1.41.9)".
  53. ^ a b c Off by default.
  54. ^ 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
  55. ^ Full block journaling for ReiserFS was not added to Linux 2.6.8 for obvious reasons.
  56. ^ a b Reiser4 supports transparent compression and encryption with the cryptcompress plugin which is the default file handler in version 4.1.
  57. ^ OCFS2 supports creating multiple write-able snapshots of regular files using REFLINK.
  58. ^ Cite error: The named reference reltrans was invoked but never defined (see the help page).
  59. ^ Optionally no on IRIX.
  60. ^ 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.
  61. ^ http://www.linux.com/archive/feed/32002
  62. ^ a b These are referred to as "aliases".
  63. ^ 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.
  64. ^ "How to resize ZFS".
  65. ^ 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
  66. ^ 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.
  67. ^ a b DoubleSpace in DOS 6, and DriveSpace in Windows 95 and Windows 98 were data compression schemes for FAT, but are no longer supported by Microsoft.
  68. ^ Only for "stuffed" inodes
  69. ^ Only if formatted with 4kB-sized clusters or smaller
  70. ^ a b c d Other block:fragment size ratios supported; 8:1 is typical and recommended by most implementations.
  71. ^ a b c Fragments were planned, but never actually implemented on ext2 and ext3.
  72. ^ 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.
  73. ^ In "extents" mode.
  74. ^ "AIX documentation: JFS data compression". IBM.
  75. ^ 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 block size but the process is less efficient if there is not much free disk space.
  76. ^ Depends on UDF implementation.
  77. ^ When enabled, ZFS's logical-block based compression behaves much like tail-packing for the last block of a file.
  78. ^ NTFS for Windows 98
  79. ^ a b c d Sharing Disks - Windows Products
  80. ^ hfsutils at FreshPorts
  81. ^ hfs at FreshPorts
  82. ^ Catacombae HFSExplorer
  83. ^ "How to mount FFS partition under Linux - NetBSD Wiki". Wiki.netbsd.se. Archived from the original on March 19, 2008. Retrieved 2009-10-09.
  84. ^ a b c Ext2Fsd is an open source linux ext2/ext3/ext4 file system driver for Windows systems (NT/2K/XP/VISTA, X86/AMD64). Currently does not support extents, a default feature of ext4. [4]
  85. ^ a b c Ext2 IFS for Windows provides kernel level read/write access to Ext2 and Ext3 volumes in Windows NT4, 2000, XP and Vista. Does not support inodes above 128.[5]
  86. ^ a b c Ext2Read is an explorer-like utility to explore ext2/ext3/ext4 file systems. It supports extents, large inodes, and LVM2 volumes.Ext2Read
  87. ^ a b c Fuse-ext2 is a multi OS FUSE module to mount ext2 and ext3 file system devices and/or images with read and write support.[6]
  88. ^ a b c Paragon ExtFS for Mac is a low-level file system driver specially developed to bridge file system incompatibility between Linux and Mac by providing full read/write access to the Ext2, Ext3 and Ext4 file systems under Mac OS X.[7]
  89. ^ Ext2fsx is the first and old implementation of the Ext2 (Linux) filesystem for Mac OS X.[8]
  90. ^ http://wiki.lustre.org/index.php/Windows_Native_Client
  91. ^ http://wiki.lustre.org/index.php?title=Main_Page
  92. ^ http://wiki.lustre.org/index.php/FAQ_-_OS_Support
  93. ^ Using SAM-QFS on Linux Clients
  94. ^ "Understanding the difference between the Live File System and Mastered disc formats". Which CD or DVD format should I use?. Microsoft. Retrieved 2008-11-22.
  95. ^ Native ZFS for Linux
  96. ^ ZFS on FUSE
  97. ^ Mac ZFS
  98. ^ [9]
  99. ^ logfs