Linux 文件IO 的流程
在Linux系统中,一个进程通过系统调用对文件进行操作(比如 read 操作)是经历了以下的层次的流程的:
虚拟文件系统层 VFS
文件系统层 FileSystem Ext2、Ext3、Ext4、YAFFS、UBIFS
页高速缓存层 Page Cache
通用块层 Generic Block
IO调度器 I/O Scheduler 电梯算法、CFQ、Deadline、SmartIO(Mobisys‘15) 、FIOS(FAST‘12)
块设备驱动 Block device driver
物理块设备 Block device
其中 VFS 屏蔽了不同文件系统的实现,给应用程序提供统一的接口;Generic Block 屏蔽了不同块设备的特性,给文件系统提供统一的借口。
Read系统调用剖析 :https://www.ibm.com/developerworks/cn/linux/l-cn-read/
如何实现一个文件系统 : http://wenku.baidu.com/view/45a4e463caaedd3383c4d321.html