分类: LINUX
2009-04-13 19:37:21
Linux文件系统与设备驱动
下图为Linux系统中虚拟文件系统、磁盘文件(存放于RamDisk、Flash、ROM、SD卡、U盘等文件系统中的文件也属于磁盘文件)及一般的设备文件与设备驱动程序之间的关系。
应用程序和VFS之间的接口是系统调用,而VFS与磁盘文件系统以及普通设备之间的接口是file_opersations结构体成员函数,这个结构体包含对文件进行打开、关闭、读写、控制的一系列成员函数。
由于字符设备的上层没有磁盘文件系统,所以字符设备的file_opersation成员函数就直接由设备驱动提供了,file_opersation正是字符设备驱动的核心。
而对于块存储设备而言,ext2,fat,jffs2等文件系统中会实现针对VFS的file_opersation成员函数,设备驱动层将看不到file_opersation的存在,磁盘文件系统和设备驱动会将对磁盘上文件的访问最终转换呈对磁盘上柱面和扇区访问。