既然两者都用于映射磁盘空间的使用情况,那么它们之间有何不同?
答案1
为了进一步突出实际差异,请查看每个系统如何表示整个文件以及它们的基本结构如何工作。FAT 或基于 inode 的系统中单个条目可能有些相似,但支持系统的整体结构却不相似。
由于已经过去了几十年,这些系统也存在一些略有不同的变体。较新的技术也可能影响这些变体,例如 HDD 和 SSD 支持不同的访问模式。
从设计上来说,基于 FAT 的系统应该为文件系统中的每个簇都留有一个条目。通过解析它,您应该能够知道系统中每个簇包含的内容。它的数据结构是一个单一的、可靠的列表,可能保存在多个位置以进行备份。所有主要信息都保存在该列表中。特别是哪些簇属于某个文件,都保存在该表中。如果没有这些信息,就很难确定哪些块属于某个文件或存在哪些目录。
看FAT 文件系统的设计 - 技术概述和FAT 文件系统 TechNET 文章。
另一方面,基于 inode 的系统通常遵循不同的模式。其中一个主要区别是,inode 可能指向指向实际块的指针列表(与 inode 非常相似)。因此,您只需要 (最大) 文件数量的索引,而不是磁盘上每个单个簇的索引。另一个主要区别是如何处理目录。
谈论 inode 系统需要更广阔的视野,查看 Kernel.org 文章你会发现 inode 表在块组中的位置并不固定,每个 FS 可以有多个块组。每个块组都有自己的 inode 表。这样,虽然你有一个连续的文件系统,但你可能有多个 inode 表,允许你引用文件。
看:
- David A. Rusling - EXT2 目录
- David A. Rusling - EXT2 Inode
- inode 指针结构
- 那么:inode 存储在哪里?
- SE Unix:什么是超级块、Inode、Dentry 和文件?
- SE Unix:i-node 表存储在哪里?
- Kernel.org ext4 数据结构和算法 » 2. 高级设计
- Kernel.org ext4 数据结构和算法 » 3. 全局结构
- Kernel.org ext4 数据结构和算法 » 4. 动态结构
- PC-Freak.net:什么是 inode,如何找出哪个目录占用了 Linux 上的所有文件系统 inode,增加 ext3 ext4 和 ufs 文件系统上的 inode 数量
- inode(扩展)的位置?