您的位置:首页 > 运维架构 > Linux

linux文件系统中的超级块结构和 inode

2009-03-23 10:41 162 查看
作者:北亚数据恢复中心
超级块
超级块结构表示一个文件系统。它包含管理文件系统所需的信息,包括文件系统名称(比如 ext2)、文件系统的大小和状态、块设备的引用和元数据信息(比如空闲列表等等)。超级块通常存储在存储媒体上,但是如果超级块不存在,也可以实时创建它。可以在 ./linux/include/linux/fs.h 中找到超级块结构(见图 4)。
超级块结构和 inode 操作


500)this.style.width=500;" bbimg(this)>

超级块中的一个重要元素是超级块操作的定义。这个结构定义一组用来管理这个文件系统中的 inode 的函数。例如,可以用
alloc_inode
分配 inode,用
destroy_inode
删除 inode。可以用
read_inode
write_inode
读写 inode,用
sync_fs
执行文件系统同步。可以在 ./linux/include/linux/fs.h 中找到
super_operations
结构。每个文件系统提供自己的 inode 方法,这些方法实现操作并向 VFS 层提供通用的抽象。
inode 和 dentry
inode 表示文件系统中的一个对象,它具有惟一标识符。各个文件系统提供将文件名映射为惟一 inode 标识符和 inode 引用的方法。图 5 显示 inode 结构的一部分以及两个相关结构。请特别注意
inode_operations
file_operations
。这些结构表示可以在这个 inode 上执行的操作。
inode_operations
定义直接在 inode 上执行的操作,而
file_operations
定义与文件和目录相关的方法(标准系统调用)。
inode 结构和相关联的操作


500)this.style.width=500;" bbimg(this)>

inode 和目录缓存分别保存最近使用的 inode 和 dentry。注意,对于 inode 缓存中的每个 inode,在目录缓存中都有一个对应的 dentry。可以在 ./linux/include/linux/fs.h 中找到
inode
dentry
结构。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 职场 休闲