Linux在哪里保存免费inode的记录?

Linux在哪里保存免费inode的记录?,linux,filesystems,inode,Linux,Filesystems,Inode,我很好奇Linux(以及任何将Inode用于其文件系统的操作系统)如何以及在哪里跟踪可以使用的免费Inode?当一个新文件被装箱时,操作系统将它分配给哪个inode?随着文件的不断创建和删除,事情变得更加复杂。操作系统通常如何管理哪些inode是免费的,哪些是使用的 我猜inode的结构类似于一个空闲列表,类似于内存分配器。但是当查看inode结构上的所有描述时,我没有找到“下一个可用inode”的指针字段。我认为这是一个重要的问题,但奇怪的是,我找不到一个有明确答案的文献;inode是ext3

我很好奇Linux(以及任何将Inode用于其文件系统的操作系统)如何以及在哪里跟踪可以使用的免费Inode?当一个新文件被装箱时,操作系统将它分配给哪个inode?随着文件的不断创建和删除,事情变得更加复杂。操作系统通常如何管理哪些inode是免费的,哪些是使用的


我猜inode的结构类似于一个空闲列表,类似于内存分配器。但是当查看inode结构上的所有描述时,我没有找到“下一个可用inode”的指针字段。我认为这是一个重要的问题,但奇怪的是,我找不到一个有明确答案的文献;inode是ext3、ext4和UFS文件系统相对于操作系统的一个特性。那么inode信息存储在哪里呢?下面的链接应该可以回答这个问题


关于“自由”索引节点,在创建新文件或目录之前不会创建索引节点;没有所谓的“免费”inode。

首先,让我们把inode的概念从Linux中分离出来;inode是ext3、ext4和UFS文件系统相对于操作系统的一个特性。那么inode信息存储在哪里呢?下面的链接应该可以回答这个问题


关于“自由”索引节点,在创建新文件或目录之前不会创建索引节点;没有“免费”inode。inode的确切存储位置取决于文件系统,就像inode是否相关一样

大多数传统的Unix/Linux文件系统(例如ufs、ext2、ext3、ext4、gfs2、ocfs2等)都会创建一个存储在磁盘上的固定大小的inode表。此表缓存在RAM中

例外情况是reiserfs、jfs、xfs、btrfs和zfs,它们能够动态分配新的索引节点

对于后者,免费的inode没有多大意义,但是对于前者,如果在文件系统创建时进行的大小调整不合适,那么肯定会耗尽inode。除了完整的inode表之外,文件系统中通常还存储有一个空闲inode列表


NTFS与封面上的inode类似,最后,一些文件系统根本不使用inode,如fat32和iso9660

索引节点的确切存储位置取决于文件系统,就像索引节点是否相关一样

大多数传统的Unix/Linux文件系统(例如ufs、ext2、ext3、ext4、gfs2、ocfs2等)都会创建一个存储在磁盘上的固定大小的inode表。此表缓存在RAM中

例外情况是reiserfs、jfs、xfs、btrfs和zfs,它们能够动态分配新的索引节点

对于后者,免费的inode没有多大意义,但是对于前者,如果在文件系统创建时进行的大小调整不合适,那么肯定会耗尽inode。除了完整的inode表之外,文件系统中通常还存储有一个空闲inode列表


NTFS与封面上的inode类似,最后,一些文件系统根本不使用inode,如fat32和iso9660

此问题与编程无关,应移至unix.stackexchange.com。此问题与编程无关,应移至unix.stackexchange.com。