Linux IO 学习笔记(初步):文件系统架构
发布时间
阅读量:
阅读量
LInux任督二脉IO课程笔记,微信公众号:Linuxer。
VFS的磁盘文件系统的联系
Linux世界中一切皆为files,并与C++中的abstract base classes有着相似之处。虚拟 filesystems(VFS)则提供了统一的操作视角,在这种视角下进程无需过分关注各种不同的os细节。具体而言,在vfs设计中规定了每个目录都会被分配一个包含特定操作属性的数据块——其中必然包含一个名为f_op并具有类型struct file_operations的数据字段。每当系统尝试打开一个新的file时,默认情况下会根据具体的os类型来初始化这个f_op字段值(对于熟悉字符设备开发的人来说)。
对于块设备而言,在物理层上可采用的方式有两种:一种是直接访问分区进行操作;另一种则是通过存储文件系统(如ext3和ext4)来实现。其中一种方式即为直接通过裸设备与存储介质交互完成对块设备的操作;另一种方式则通常采用的是基于ext3和ext4文件系统的相应的操作指令。(其中涉及的具体操作包括针对裸设备地址空间的操作def_blk_aops)。
其中f_op是在file结构中实现将不同类型的文件系统操作嵌入到VFS中的一种机制, 从而在VFS中提供了一个统一的视图.
那么,请问文件中的f_op是如何具体执行特定设备的操作呢?在设备上管理文件及目录的具体流程又是如
全部评论 (0)
还没有任何评论哟~
