标签: 数据结构 - STEMHA's Blog

Linux-VFS中的数据结构

前言

VFS(虚拟文件系统)四大对象:struct super_block 超级块、struct inode 索引节点、struct dentry 目录项、struct file 文件对象
VFS采用的是面向对象的设计思想,使用一簇数据结构来代表通用文件对象。所以内核中的数据结构都使用C结构体实现。

  • 超级块super_block对象,代表一个具体的已安装文件系统。
  • 索引节点inode对象,代表一个具体文件。
  • 目录项dentry对象,代表一个目录项,是路径的一个组成部分。
  • 文件file对象,代表有进程打开的文件。

每个主要对象中都包含一个操作对象,这些操作对象描述了内核针对主要对象可以使用的方法:

  • super_operations对象:包含内核针对特定文件系统所能调用的方法。
  • inode_operations对象:包含内核对特定文件所能调用的方法。
  • dentry_operations对象:包含内核对特定目录所能调用的方法。
  • file_operations对象:包含进程针对已打开文件所能调用的方法。

操作对象作为一个指针结构体被实现,此结构体中包含指向操作其父对象的函数指针。对于其中许多方法来说,可以继承使用VFS提供的通用函数,如果通用函数提供的基本功能无法满足需要,就必须使用实际文件系统的独有方法填充这些函数指针,使其指向文件系统实例。

数据结构总结

(未完待续)

常用数据结构简述

算法处理的数据在内存中的格式是什么?
我们希望数据是结构化的,方便读取,因此计算机科学家发明了数据结构

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×