上一篇介绍了分区格式,相比于主流的分区格式 MBR 和 GPT,文件系统的格式要多很多。
在完成磁盘分区后,每个空白的分区就是给操作系统保存文件的仓库,操作系统为了管理文件需要以特定的格式保存文件,这个格式需要支持文件的读写,检索,权限,日志记录等功能,也就是为操作系统提供管理磁盘空间以及其中的文件的机制。
下表列举了常用操作系统使用的文件系统。
文件系统 | 开发者 | 发布年份 | 原操作系统 |
FAT32 | Microsoft | 1996 | Windows 95 |
exFAT | Microsoft | 2006 | Windows CE 6.0 / XP SP3 / Vista SP1 |
NTFS | Microsoft | 1993 | Windows NT 3.1 |
ext4 | 开源 | 2006 | Linux |
HFS+ | Apple | 1998 | Mac OS 8.1 |
常见文件系统的特性
分区格式 | 最大单个文件 | 最大支持分区 |
FAT32 | 4G | 2TB |
exFAT | 127 PB | 64 ZB |
NTFS | 16 EB | 16 EB |
ext4 | 16 TB | 1 EB |
HFS+ | 8 EB | 8 EB |
1ZB = 1024EB,1EB = 1024PB,1PB = 1024TB,1TB = 1024GB
FAT (File Allocation Table)
FAT文件系统系列包括 FAT、FAT16、FAT32 和 exFAT ,目前仍旧常见的是FAT32 和 exFAT,源于它良好的兼容性目前在U盘上用的比较多。其中exFAT 就是一种适用于闪存的文件系统。2019年8月,微软公开了exFAT 的技术文档,并支持将 exFAT 功能集成到 Linux内核中。Linux内核于版本5.4中提供初步支持。
NTFS (New Technology File System)
NTFS 包含多个版本,最早为 1993 年发布的 1.0 版本,以及最新的于 Window XP 发布的 3.1 版本,对应系统中 NTFS.sys 文件的版本号 5.1,需要注意区别。
在 linux 系统上,完整并安全的对 NTFS 的读写功能由 NTFS-3G 驱动程序提供。这是一个由 Tuxera 公司开发并维护的自由软件项目,采用GNU通用公共许可证发布,旨在为非微软Windows NT 系的操作系统提供安全快速、具备读写功能的NTFS文件系统驱动程序。
ext (extended filesystem)
ext 系列文件系统包括 ext、ext2、ext3 和 ext 4。其中的 ext或ext1 发表于1992年4月,它是第一个利用虚拟文件系统实现出的文件系统,在linux核心0.96c版中首次加入支持,最大可支持2GB的文件系统。后续版本特性如下表,
名称 | 开发者 | 发布时间 | 最大文件 | 最大分区 | |
ext2 | Rémy Card | 1993 | 2TB | 32TB | |
ext3 | Stephen Tweedie | 1999 | 2TB | 32TB | |
ext4 | 多人[1] | 2006 | 16 TB | 1 EB |
其中 ext4 于 2008年12月25日在 Linux 2.6.29 版公开发布之后成为 Linux 官方建议的默认文件系统。
参考资料:
文件系统的对比 – 维基百科,自由的百科全书 (wikipedia.org)
NTFS – 维基百科,自由的百科全书 (wikipedia.org)
exFAT – 维基百科,自由的百科全书 (wikipedia.org)
ext4 – 维基百科,自由的百科全书 (wikipedia.org)