inode和super_block 初步理解 学习笔记

参考资料:https://zhuanlan.zhihu.com/p/79727391
Inode,super_block 再探:Inode整体上被分为两种,存在于内存中的inode和存在于磁盘中的inode 内存中的inode 通常是vfs inode VFS inode包含文件访问权限、属主、组、大小、生成时间、访问时间、最后修改时间等信息。

它是linux管理文件系统的最基本单位,也是文件系统连接任何子目录、文件的桥梁。inode结构中的静态信息取自物理设备上的文件系统,由文件系统指定的函数填写,它只存在于内存中,可以通过inode缓存访问。虽然每个文件都有相应的inode结点,但是只有在需要的时候系统才会在内存中为其建立相应的inode数据结构,建立的inode结构将形成一个链表,我们可以通过遍历这个链表去得到我们需要的文件结点,VFS也为已分配的inode构造缓存和hash table,以提高系统性能。inode结构中的struct inode_operations *iop为我们提供了一个inode操作列表,通过这个列表提供的函数我们可以对VFS inode结点进行各种操作。每个inode结构都有一个i结点号i_ino,在同一个文件系统中每个i结点号是唯一的。

硬盘中的inode 一般指文件系统自身定义的inode 文件系统通过使用inode来定义文件系统的结构以及描述系统中每个文件的管理信息,每个文件都有一个inode且只有一个,即使文件中没有数据,其索引结点也是存在的。每个文件用一个单独的文件系统inode结构来描述,而且每一个inode都有唯一的标志号。文件系统 inode为内存中的inode结构提供了文件的基本信息,随着内存中inode结构的变化,系统也将更新文件系统 inode中相应的内容。

比如Ext2 inode对应的是Ext2_inode结构。生存期:VFS inode在需要时才会被建立,如果系统断电,此结构也随之消失。而Ext2_inode的存在与系统是否上电无关,而且无论文件是否包含数据,Ext2_inode都是存在的。

唯一性:两者在自己的作用域中都是唯一的。

关系:VFS inode是Ext2 inode的抽象、映射与扩充,而后者是前者的静态信息部分,也是对前者的具体化、实例化和持久化。
操作:对VFS inode的操作具有通用性,对文件系统inode的操作则是文件系统相关的,依赖于特定的实现。
组织管理:系统通过VFS inode链表来对其进行组织,并且为了提高访问效率相应地构造了inode构造缓存和hash table。
Ext2 inode的信息位于EXT2文件系统的划分的块组中,在每个块组中包含相应的inode位图、inode表指定具体的inode信息,每个inode对应Ext2_inode结构。 同理 vfs层的super_block只存在于内存中,它在文件系统mount时建立,在文件系统umount时删除。这里得分清楚vfs层的super_block和各实际文件系统的superblock,对于每个具体的文件系统来说,都有各自的super_block(如ext4文件系统的super_block结构是struct ext4_super_block),它们是存于磁盘中的。Vfs的super_block 里面又指向具体文件系统的super_block的指针。

你可能感兴趣的:(栩的菜鸡笔记,linux,学习笔记)