Comparison-of-file-systems
https://en.wikipedia.org/wiki/Comparison_of_file_systemshttps://zh.wikipedia.org/wiki/文件系统的对比
更多信息在以上维基百科页面,有超过100种文件系统。这里只摘录20种备查。
sn | File system | Creator | Year of introduction | Original operating system | 许可 | Maximum filename length 文件名长度 | Allowable characters in directory entries 目录条目中 允许的字符 | Maximum Pathname length 路径名长度 | Maximum File size 文件大小 | Maximum volume size 卷大小 | Max number Of files 文件数 | Stores File owner 存储文件 所有者 | POSIX file Permissions 文件权限 | Creation Timestamps 创建时间戳 | Last access/ Read timestamps 上次访问/ 读取时间戳 | Last metadata Change timestamps 上次元数据 更改时间戳 | Last archive Timestamps 上次存档 时间戳 | Access Control lists 访问控制 列表 | Security/ MAC labels 安全/MAC 标签 | Extended attributes/ Alternate data streams/ Forks 扩展属性/ 备用数据流/分叉 | Metadata Checksum/ ECC 元数据 校验和 /ECC | Hard links 硬链接 | Symbolic links 符号链接 | Block journaling 块日志 | Metadata-only journaling 仅元数据日志 | Case-sensitive 区分大小写 | Case-preserving 保案 | File Change Log 文件更改日志 | XIP | Internal snapshotting / branching 内部快照/分支 | encryption 加密 | deduplication 重复数据删除 | Data checksum/ ECC 数据校验和/ECC | Persistent Cache 持久缓存 | Multiple Devices 多个设备 | compression 压缩 | Host OS 主机操作系统 | Offline grow 线下成长 | Online grow 线上成长 | Offline shrink 离线收缩 | Online shrink 在线收缩 | add and remove physical volumes 添加和删除物理卷 | Sparse files 稀疏文件 | Block suballocation 块再分配 | Tail packing 尾部包装 | Extents 范围 | Variable file block size 可变文件块大小 | Allocate-on-flush 分配时刷新 | Copy on write 写入时复制 | Trim support 修整支撑 | DOS | Linux | macOS | Windows 9x | Windows NT | classic Mac OS | FreeBSD | OS/2 | BeOS | Minix | Solaris | z/OS | Yes M:BK | os AZ:BK | sn2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | APFS | Apple | 2016 | macOS High Sierra, iOS 10.3 | 255 UTF-8 characters | Unicode 9.0 encoded in UTF-8 | ? | 8 EB | ? | 263 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | ? | Partial | Yes | ? | ? | Yes | Yes | Yes | No | No | No | Yes | macOS | ? | ? | ? | ? | ? | Yes | ? | ? | Yes | ? | Yes | Yes | Yes | No | Partial (read-only with apfs-fuse or linux-apfs) | Yes (Since macOS Sierra) |
No | No | No | No | No | No | No | No | No | 21 | 0 | 1 | |
2 | BlueStore/Cephfs | Red Hat, University of California, Santa Cruz | 2017 | Linux | ? | any byte, except null, | No limit defined | Max. 264 bytes, 1TB by default | Not limited | Not limited, default is 100,000 files per directory | Yes | Yes | Yes | Yes | ? | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | No | Yes | Yes | Yes | Yes | Linux | No | Yes | No | Yes | Yes | Yes | ? | ? | ? | ? | No | Yes | Yes | No | Yes | No | No | No | No | No | No | No | No | No | No | 26 | 1 | 2 | |
3 | Btrfs | Oracle Corporation | 2007 | Linux | GPL | 255 bytes | Any byte except '/' and NUL | No limit defined | 16 EB | 16 EB | 264 | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | ? | ? | Yes | No | Yes | Yes | No | Yes | Yes | Linux | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | ? | No | Yes with WinBtrfs | ? | No | ? | ? | ? | ? | ? | 33 | 1 | 3 |
4 | exFAT | Microsoft | 2006 | Windows CE 6.0 | proprietary | 255 UTF-16 characters | ? | 32,760 Unicode characters with each path component no more than 255 characters | 16 EB | 64 ZB (276 bytes) | ? | No | No | Yes | Yes | No | No | No | No | No | No | No | No | No | Partial (with TexFAT only) | No | Yes | No | No | No | No | No | No | No | No | No | misc. | No | No | No | No | No | No | No | No | Partial (only if the file fits into one contiguous block range) | No | No | No | Yes (Linux) | No | Yes (since 5.4, available as a kernel module or FUSE driver for earlier versions) | Yes | No | Yes (installable drivers for Windows XP, 2003. Included with Windows Vista SP1 and newer.) | No | Yes (available as a FUSE driver) | No | No | No | Yes (available as a FUSE driver) | No | 4 | 1 | 4 |
5 | ext2 | Rémy Card | 1993 | Linux, Hurd | 255 bytes | Any byte except NUL, / | No limit defined | 16 GB to 2 TB | 2 TB to 32 TB | ? | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | No | Yes | No | No | No | No | No | No | No | Linux | Yes | No | Yes | No | No | Yes | No | No | No | No | No | No | Yes | No | Yes | Yes with Paragon ExtFS or ext2fsx | Partial (read-only, with explore2fs) | Yes with Paragon ExtFS or partial with Ext2 IFS or ext2fsd | No | Yes | No | Yes | ? | ? | ? | 19 | 3 | 5 | |
6 | ext3 | Stephen Tweedie | 1999 | Linux | 255 bytes | Any byte except NUL, / | No limit defined | 16 GB to 2 TB | 2 TB to 32 TB | ? | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes (2001) | Yes (2001) | Yes | Yes | No | Yes | No | No | No | No | No | No | No | Linux | Yes | Yes | Yes | No | No | Yes | No | No | No | No | No | No | Yes | No | Yes | Yes with Paragon ExtFS or partial with ext2fsx (journal not updated on writing) | Partial (read-only, with explore2fs) | Yes with Paragon ExtFS or partial with Ext2 IFS or ext2fsd | Partial (read only)[citation needed] | Yes | No | with addon | ? | Yes | ? | 20 | 3 | 6 | |
7 | ext4 | various | 2006 | Linux | 255 bytes | Any byte except NUL, / | No limit defined | 16 GB to 16 TB | 1 EB | 232 (static inode limit specified at creation) | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Partial | Yes | Yes | Yes | Yes | Yes, optional | Yes | No | Yes | No | Yes, experimental | No | No | No | No | No | Linux | Yes | Yes | Yes | No | No | Yes | No | No | Yes | No | Yes | No | Yes | No | Yes | Yes with Paragon ExtFS | No | Yes with Paragon ExtFS or partial with Ext2 IFS or ext2fsd | ? | Yes since FreeBSD 12.0 | No | with addon | ? | ? | ? | 22 | 1 | 7 | |
8 | F2FS | Samsung Electronics | 2012 | Linux | GPLv2 | 255 bytes | Any byte except NUL, / | No limit defined | 3.94 TB | 16 TB | ? | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | No | No | No | Yes, experimental | No | No | No | No | Yes | Linux | Yes | No | No | No | No | Yes | No | No | Partial | No | Yes | Yes | Yes | No | Yes | No | No | No | No | No | No | No | No | No | No | 20 | 1 | 8 |
9 | FAT32, FAT32X | Microsoft | 1996 | MS-DOS 7.10 / Windows 95 OSR2 | 0 | 0 | 9 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | JFS | IBM | 1999 | OS/2 Warp Server for e-business | 255 bytes | Any Unicode except NUL | No limit defined | 4 PB | 32 PB | ? | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes (1990) | Yes | Yes | No | ? | ? | No | ? | No | No | No | only in JFS1 on AIX | Linux | Yes | No | No | No | No | Yes | Yes | No | Yes | No | No | ? | Yes (Linux) | No | Yes | ? | No | No | ? | No | Yes | ? | ? | ? | ? | 19 | 2 | 10 | |
11 | Lustre | Cluster File Systems | 2002 | Linux | 255 bytes | Any byte except NUL | No limit defined | 16 EB on ZFS | 16 EB | ? | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes | No | Linux | ? | Yes | No | No | Yes | Yes | No | No | Yes | No | Yes | ? | ? | No | Yes | ? | No | No | ? | No | ? | ? | ? | Yes | ? | 23 | 2 | 11 | |
12 | NOVA | UC, San Diego | 2017 | Linux | 255 bytes | Any byte except NUL, / | No limit defined | 16 EB | 16 EB | ? | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | No | No | No | Linux | No | No | No | No | No | Yes | No | No | Yes | No | No | Yes | ? | No | Yes | No | No | No | No | No | No | No | No | No | No | 18 | 1 | 12 | |
13 | NTFS | Microsoft (Gary Kimura, Tom Miller) | 1993 | Windows NT 3.1 | proprietary | 255 characters | In Win32 namespace: any UTF-16 code unit (case-insensitive) except /\:*"?<>| as well as NUL In POSIX namespace: any UTF-16 code unit (case-sensitive) except / as well as NUL |
32,767 Unicode characters with each path component (directory or filename) up to 255 characters long | 16TB Default (4KB Cluster Size), 2MB Cluster Size 8 PB | 16TB Default (4KB Cluster Size), 2MB Cluster Size 8 PB | 232 | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | No | Yes (2000) | Yes | Yes | Yes | ? | No | Yes | Yes | No | No | No | Yes | Windows | Yes | Yes | Yes | Yes | No | Yes | Partial | No | Yes | No | No | ? | Yes (NT 6.1+; Linux) | Partial (with third-party drivers) | Yes with the Paragon NTFS kernel driver or ntfs-3g | Yes natively read only, write support with Paragon NTFS or ntfs-3g | Yes (with 3rd-party drivers like Paragon NTFS for Win98, DiskInternals NTFS Reader) | Yes | No | Yes with ntfs-3g | ? | Yes with ntfs-3g | No | Yes with ntfs-3g | ? | 23 | 1 | 13 |
14 | ReFS | Microsoft | 2012 | Windows Server 2012 | proprietary | 255 UTF-16 characters | In Win32 namespace: any UTF-16 code unit (case-insensitive) except /\:*"?<>| as well as NUL In POSIX namespace: any UTF-16 code unit (case-sensitive) except / as well as NUL |
32,767 Unicode characters with each path component (directory or filename) up to 255 characters long | 16 EB | 1 YB | ? | Yes | Yes | Yes | Yes | Yes | No | Yes | ? | Yes | Yes | Yes | Yes | ? | ? | Yes | Yes | ? | ? | ? | No | Yes | Yes | No | No | No | Windows | ? | Yes | ? | No | No | Yes | ? | ? | ? | No | ? | Yes | Yes (NT 6.1+) | No | Partial - with Paragon ReFS for Linux | ? | No | Yes (from Windows Server 2012 and from Windows 8.1) | ? | ? | ? | ? | ? | ? | ? | 17 | 0 | 14 |
15 | ReiserFS | Namesys | 2001 | Linux | 4,032 bytes/255 characters | Any byte except NUL or '/' | No limit defined | 8 TB (v3.6), 4 GB (v3.5) | 16 TB | ? | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | ? | No | No | No | No | No | No | No | Linux | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | No | No | ? | ? | No | Yes | ? | No | No | ? | Partial - Read Only from 6.0 to 10.x and dropped in 11.0 | ? | with addon | ? | ? | ? | 20 | 1 | 15 | |
16 | SquashFS | Phillip Lougher, Robert Lougher | 2002 | Linux | 256 bytes | ? | No limit defined | 16 EB | 16 EB | ? | Yes | Yes | No | No | Yes | No | No | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | No | No | No | No | Yes | Yes | No | No | Yes | Linux | No | No | No | No | No | Yes | No | Yes | No | No | No | No | No | No | Yes | Partial (There are ports of unsquashfs and mksquashfs.) | No | Partial (There are ports of unsquashfs and mksquashfs.) | No | Partial (There are ports of unsquashfs and mksquashfs and fusefs-port.) | No | No | No | No | No | 15 | 1 | 16 | |
17 | UFS2 | Kirk McKusick | 2002 | FreeBSD 5.0 | 255 bytes | Any byte except NUL | No limit defined | 512 GB to 32 PB | 512 ZB (279 bytes) | Subdirectory per directory is 32,767 | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Partial | Yes | Yes | No | Yes | Yes | Yes | No | ? | Yes | No | No | No | No | No | No | FreeBSD | Yes | Yes (FreeBSD 10.0-RELEASE or later) | No | No | No | Yes | No | No | Yes | No | ? | Yes | No | Yes | Yes | No | Partial (with ufs2tools, read only) | ? | Yes | No | ? | ? | ? | ? | 20 | 3 | 17 | ||
18 | XFS | SGI | 1994 | IRIX | 255 bytes | Any byte except NUL | No limit defined | 8 EB | 8 EB | ? | Yes | Yes | Partial | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | No | No | Yes | No | No | No | No | Linux | No | Yes | No | No | No | Yes | No | No | Yes | No | Yes | Yes, on request | Yes (Linux) | No | Yes | ? | No | No | ? | Partial | ? | with addon (read only) | ? | ? | ? | 21 | 1 | 18 | |
19 | ZFS | Sun Microsystems | 2004 | Solaris | CDDL | 255 bytes | Any Unicode except NUL | No limit defined | 16 EB | 256x2^50 ZB (2128 bytes) | 2128 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | misc. | No | Yes | No | Partial | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | No | Yes with FUSE or as an external kernel module | Yes with Read/Write Developer Preview | No | Yes | No | Yes | No | No | No | Yes | No | 33 | 3 | 19 |
20 | zFS | IBM | 2001 | z/OS (backported to OS/390) | 255 bytes | Any Unicode except NUL | No limit defined | 16 EB | 256x2^50 ZB (2128 bytes) | 2128 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | misc. | No | Yes | No | Partial | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | No | Yes with FUSE or as an external kernel module | Yes with Read/Write Developer Preview | No | Yes | No | Yes | No | No | No | Yes | No | 33 | 3 | 20 |