打打地基,学点基本概念——inode
inode
单说inode,可以有以下含义
- 某些Linux系统原生的文件系统的概念
例如ext4文件系统,其文件系统规范本身就有inode概念 - Linux虚拟文件系统(VFS,Virtual File System)的数据结构,即内核代码中的一个结构体
struct inode是学习Linux文件系统绕不开的概念,今天就来说说它。
VFS的inode
每个文件对应一个inode结构体,这个结构体也很复杂,所以就先挑一些容易理解的部分了解一下。
kernel/include/linux/fs.h
struct inode {
//...
const struct inode_operations *i_op;
struct super_block *i_sb;
//...
/* Stat data, not accessed from path walking */
unsigned long i_ino;
//...
};
-
i_op
这就是上一篇留下的问题里dir->i_op的那个,这个dir就是一个inode结构体指针,问题就是这个i_op什么时候指向了vfat_dir_inode_operations,以后再说。 -
i_sb
指向superblock的指针 -
i_ino
一个整数,可以理解为文件的身份证号码。每个文件对应一个inode。在一个超级块管辖下,每个inode的这个整数不同。