Linux 虚拟文件系统(VFS)在文件系统中的作用

声明:所有文章只作为学习笔记用,转载非原创

linux 文件读写流程 dentry(目录项)

https://blog.csdn.net/frecon/article/details/80153535

https://www.jianshu.com/p/63d21fa53516


file->dentry->inode->iops->address_space->disk

通过struct找到磁盘inode节点对象:

一个进程打开的文件用struct file结构表示,这是VFS可访问的(file中的file_operations)。在file结构中可找到这个文件对应的dentry对象,如果两个进程打开同一个文件,那它们的file就指向同一个dentry。通过dentry就可以找到这个文件对应的inode对象,到了inode就与特定文件系统(如ext3/ext4)相关了,这个inode有读写文件的file_operations。那么,如果一个dentry是另一个dentry的硬链接,那这两个dentry就指向同一个inode对象。

VFS中的通用read/write调用实际文件系统的read/write:

在程序open()一个文件时,inode的file_operations就会被填到供VFS使用的file结构的file_operations,这样实际文件和VFS就建立了联系,就可以开始实际操作这个文件了。

通过address_space接触磁盘:

在open文件之后进行read/write时,读写操作(file_operations)并不是直接跟硬盘交互,而是会经过address_space。每个inode有自己的一个address_space(inode的i_mapping字段),address_space中的address_space_operations(如readpage/writepage/readpages/writepages等)才会跟磁盘打交道进行读写。


https://baijiahao.baidu.com/s?id=1621555464151870974&wfr=spider&for=pc

https://www.cnblogs.com/cz-blog/p/4644568.html

LINUX 系统结构图和内核文件系统概述 https://www.cnblogs.com/guguli/p/4556445.html


Vfs 与系统之间的关系 https://www.cnblogs.com/cz-blog/p/4644568.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容