VFS虚拟文件系统层

Linux IO子系统由上至下,依次由VFS虚拟文件系统层,pagecache,Mapping Layer(具体的文件系统),通用块层,IO调度层,块设备驱动层组成。

VFS说明。

VFS虚拟文件系统

VFS建立了文件系统的统一模型,对文件系统的公共属性做了抽象和定义,封装了文件系统的统一接口,应用程序可以不加修改的,透明的访问操作系统上不同文件系统的文件。

VFS层有几个最重要的概念:file、inode、dentry。

File

文件本质上是单纯的字节流,应用程序告诉内核读取文件偏移和长度,内核返回字节流,应用程序自行解读数据内容。

每当打开一个文件的时候,内核为之分配一个文件对象,VFS用struct file来描述它。

<pre name="code" class="html">struct file {
struct path f_path;
<strong>const struct file_operations *f_op; //文件操作</strong>
spinlock_t f_lock;
int f_sb_list_cpu;
atomic_long_t f_count;
unsigned int f_flags;
fmode_t f_mode;
loff_t f_pos; //文件读写位置
}

 

每一个文件对象都包含打开、关闭、读、写等一系列文件操作的函数指针,不同文件系统注册不同的函数。以ext4文件系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值