【Linux | 文件】目录、目录项、inode索引结点、超级块

目录、目录项、inode索引节点的介绍

目录

每一个在文件系统中创建的文件夹都是目录文件。目录文件是一种文件类型,每一个目录文件中包含的是该目录下所有子文件的目录项dentry

目录文件权限:

  • 读:目录可以被浏览。如ls、tree等
  • 写:创建、删除、修改文件。如mv、touch、mkdir等
  • 执行:可以被打开、进入。如cd

目录黏着位/粘滞(sticky)位:

一般用于权限为777即rwxrwxrwx的目录文件,针对other用户,对普通文件设置黏着位无效。

作用是目录中所有文件的删除、移动和修改只能由该文件的所有者、所在目录的所有者或者root用户进行,防止其他用户进行误操作。目录文件设置黏着位后,other的x位将变成t或T,当other原来有x权限时则变成t,原来没有时变成T

黏着位只对被设置的目录下的文件有效,对子目录中的文件无效。并且只影响用户对文件的写和执行权限,不影响读权限

目录项

目录项dentry:目录项,是一个结构体,主要包含文件名索引节点号即inode号,通过inode号查询inode表找到磁盘上的inode索引节点。在内核后来使用ext文件系统后,目录项存放的内容变成了文件名和一个指向索引节点的指针

对于硬链接来说,创建硬链接就是创建了一个新的dentry,其中的inode索引节点号与原文件指向的索引节点相同

索引节点

索引节点inode:本质是一个结构体strcut inode,其中存储着文件系统处理文件所需要的所有信息,主要是文件属性。inode结构体中的某个成员存储着文件存储在磁盘盘块上的具体位置

每个文件都对应一个inode索引节点,每个索引节点有唯一的inode号

分类:存储在内存中的inode(VFS inode)和存储在磁盘上的inode

超级块

每一个文件系统的第一个块称为超级块,这个块中存放的是文件系统整体的结构信息,如文件系统大小、inode表、可用空闲块数量、块大小等

超级块如果出现错误,那么整个文件系统可能都无法正常运行,所以文件系统一般会备份多个超级块以免超级块出现错误。文件系统将数据区划分为多个子区域,每个子区域都会存放一个超级块的备份

操作系统启动后,内核会将文件系统中的超级块复制到内存中,此时内存和磁盘中的超级块是同步的。此后系统会周期性的利用内存中的超级块更新磁盘中的超级块啊,此时内存中的超级块和磁盘中的超级块是不同步的,可以用sync命令强制将内存中未更新的数据同步到磁盘中,可以使内存中的超级块和磁盘中的超级块一致

所有文件系统的超级块都会链接到一个超级块链表上,通过超级块链表操作系统可以遍历到所有文件系统的inode

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值