在虚拟文件系统中抽象了4个对象:超级块、索引节点、目录项和文件对象。

超级块:存放描述文件系统的有关信息。每个文件系统都有自己的超级块,不同文件系统的超级块不同。文件系统的超级块在文件系统安装时建立,在卸载时自动删除。

索引节点对象:存放具体文件的信息,代表实际一个文件。

目录项对象:文件目录树的路径的一个组成部分。方便查找文件设立的,一个路径的各个组成部分不管是文件还是目录都是一个目录项对象。

目录项对象没有对应的磁盘数据结构。

文件对象:描述进程打开的文件。文件对象和物理文件是对应的,表示进程和文件的对应。

多个进程可以打开同一个文件,所以同一个文件可以对应多个文件对象。

linux内核:文件系统的组织(超级块,索引节点,目录项,文件对象)_虚拟文件系统

linux内核:文件系统的组织(超级块,索引节点,目录项,文件对象)_linux_02

拓展:为一个文件建立硬链接的就是为这个文件对应的inode节点建立一个新的目录项指向这个inode。

ln 创建硬链接

ln 文件1 文件2

文件1和文件2指向同一个inode,使用ls -i  可以为一个文件建立硬链接后,inode号相同,内容也是相同的,操作的是同一个文件。

linux内核:文件系统的组织(超级块,索引节点,目录项,文件对象)_文件系统_03

linux内核:文件系统的组织(超级块,索引节点,目录项,文件对象)_硬链接_04