小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
7.2 微软(Microsoft)的文件系统
- FAT16:一种有一定年代的文件系统,可以管理不大于 4 GB 的分区。FAT16 在 DOS 操作系统至 Windows XP 中都有使用。很多中文资料中都说 FAT16 只能管理不大于 2 GB 的分区,那是因为它们是基于 DOS、Win 95、Win 98 和 Win ME 操作系统来讲的。在这些操作系统上,确实 FAT16 只能管理不大于 2 GB 的分区。但是英文的资料(微软 Microsoft 官方的资料)显示的是 4 GB,是说的 Windows XP 系统上最多管理不大于 4 GB 的分区。
为什么是 4GB 呢?因为 FAT16 中的 16 表示 16 位的簇(cluster,之前说过 cluster 是多个扇区的意思,通常每个扇区为 512 个字节),在 Windows XP 系统里 FAT16 文件系统中簇的大小最大可以达到 65536 个字节。2 的 16 次方是 65536。所以 65536 * 65536 = 4294967296 = 4 * 1024 * 1024 * 1024 ,所以是 4 GB(1 GB = 1024 MB = 1024 * 1024 KB = 1024 * 1024 * 1024 B。这里的 B 是 Byte 的缩写,1024 是 2 的 10 次方)。而 DOS、Win 95、Win 98 和Win ME 操作系统中,簇最大是 32768个 字节,所以 FAT16 在这些操作系统里确实只能管理 2 GB 大小的分区。 - FAT32:从 Win 98 开始流行,是 FAT16 的增强版本。可以管理不大于 2 TB 的分区(1 TB = 1024 GB,所以 2 TB = 2048 GB)。
- NTFS:在 Win NT 操作系统中首次被使用,后来我们也知道 Win NT 演进为 Win 2000、Win XP、Win7、Win 8,一直到现在的 Win 10。所以 NTFS 是 New Technology File System,也就是 NT(New Technology,“新技术”)的文件系统。NTFS 可以管理 16 Eo 的分区(也就是近似 16000000000 GB),当然这只是理论值。
NTFS 也是以簇为单位来存储数据文件,但 NTFS 中簇的大小并不依赖于磁盘或分区的大小。比起 FAT 文件系统,NTFS 在系统故障或突然断电时,可以更容易地恢复数据,因为它是日志型文件系统。NTFS 还可以对文件进行加密,压缩等。
当然更早期的文件系统还有 FAT12、FAT8 等。
一般人看到上面的簇、扇区、字节、1024、4 GB、16 Eo 等等,是不是都头大了,没事,接触久了也就熟悉了。
那么我们如何选择文件系统呢?目前来说,不少 Windows 操作系统还是使用着 NTFS 文件系统,不少 Linux 操作系统还是使用着 ext3 文件系统。目前主流的是选择 ext4 作为 Linux 的文件系统,毕竟 ext4 比 ext3 性能更好。