FAT 与 INode 是两种不同的文件系统设计思路,并不能认为它们是一种包含另一种的关系(比如在 Linux 系统中只有 INode 没有 FAT),也不能认为它们仅仅只是两个设计不同的文件系统。
两者的对比如下:
FAT | INode | |
---|---|---|
组织结构 | 链表 | INode 多级表 |
元数据存储位置 | 目录文件条目项 | INode 内 |
权限管理 | 不支持 | 支持 |
跨平台支持 | 大部分平台兼容 | 主要在 UNIX/Linux 系统使用 |
实例 | FAT 系列 | EXT 系列 |
实现难度 | 简单 | 复杂 |
Inode 的设计,采用了类似页表的方式来记录和组织磁盘块,这种方式有利于随机访问;而 FAT 用链表的方式组织磁盘块,有利于顺序访问。同时 Inode 将元数据存放在 Inode 中,支持硬链接,而 FAT 将元数据存放在目录文件的条目中,并不支持硬链接(如果支持的话,不同条目就会产生两份元数据,一致性维护非常困难)。