📜  操作系统中的inode

📅  最后修改于: 2022-05-13 01:56:11.636000             🧑  作者: Mango

操作系统中的inode

基于 Unix 的操作系统中,每个文件都由一个Inode索引。 inode 是在创建文件系统时创建的特殊磁盘块。 Inode 的数量限制了文件系统中可以存储的文件/目录的总数。

Inode 包含以下信息:

14 Bytes            2 Bytes
File name 1i-node 1
File name 2i-node 2
Directory name 1i-node 3

  1. 所有者的数字 UID。
  2. 所有者的数字 GUID。
  3. 文件的大小。
  4. 文件类型:常规、目录、设备等...
  5. 上次修改文件数据的日期和时间。
  6. 上次访问文件数据的日期和时间。
  7. 上次更改 I 节点的日期和时间。
  • 管理信息(权限、时间戳等)。
  • 包含文件前 12 个块的多个直接块(通常为 12 个)。
  • 指向磁盘块的单个间接指针,如果文件太大而无法由直接块完全索引,则该磁盘块又用作索引块。
  • 指向磁盘块的双间接指针,磁盘块是指向作为索引块的磁盘块的指针的集合,如果文件太大而无法由直接和单个间接块索引,则使用。
  • 指向索引块的索引块的索引块的三重间接指针。

索引节点总大小:

  • 可以存储在 1 个磁盘块中的磁盘块地址数 =(磁盘块大小 / 磁盘块地址)。
  • 小文件只需要直接块,因此在这些情况下几乎不会浪费空间或额外的磁盘读取。中等大小的文件可能会使用间接块。只有大文件使用双重或三重间接块,这是合理的,因为这些文件无论如何都很大。磁盘现在分为两种不同类型的块: inode 和 Data Blocks
  • 必须有某种方法来确定 Inode 的位置,并跟踪空闲 Inode 和磁盘块。这是由Superblock完成的。超级块位于文件系统中的固定位置。超级块通常在磁盘上复制,以避免在主超级块损坏的情况下发生灾难性故障。
  • 索引分配方案也存在一些相同的性能问题。链接分配也是如此。例如,索引块可以缓存在内存中,但数据块可能分布在整个分区中。