蜗牛影院看电影,智能优化大师下载,手机网站开发专业,安装wordpress数据库连接时出错上周日实验室例会主要涉及linux文件操作的内核实现。主要讨论了linux下对文件进行操作时#xff0c;系统内部调用了那些函数以及它们是怎么相互配合的。 linux系统是怎样对不同介质和不同的文件系统提供统一的文件操作接口呢#xff1f;答案是#xff1a;VFS。系统中所有文件…上周日实验室例会主要涉及linux文件操作的内核实现。主要讨论了linux下对文件进行操作时系统内部调用了那些函数以及它们是怎么相互配合的。 linux系统是怎样对不同介质和不同的文件系统提供统一的文件操作接口呢答案是VFS。系统中所有文件系统不但依赖VFS虚拟文件系统而且也靠它来协同工作我们来认识一下系统虚拟文件系统中的几个成员吧。在见识它们庐山真面目前先看下用户调用了系统调用write后的过程首先被一个通用的系统调用sys_write处理该函数找到文件描述符所在的文件系统实际给出的写操作然后执行操作。实际文件系统的写方法是文件系统实现的一部分数据最终通过该操作写入介质。如下图: 一超级块 存储一个已经安装的文件系统的控制信息代表一个已经安装的文件系统每次一个实际的文件系统被安装时内核会从磁盘的特定位置读取一些控制信息填充超级块对象。一个安装实例和一个超级块对象一一对应。超级块中的s_type记录文件系统类型。 二索引节点inode 代表一个文件包含了内核在操作文件或目录时需要的全部信息仅当文件被访问时才在内存建立 三目录项对象dentry 代表一个目录项是路径的组成部分可以是文件和目录为了方便查找路径和解析引入的。没有对应的磁盘结构VFS根据字符串路径现场创建它不存在于磁盘上。目录项有被使用、未被使用和负状态。负状态是d_inode指向NULL理论上没有存在必要其实还是可以快速查找的此外目录项有缓存加快查找 四文件对象 文件对象是进程打开的文件进程之间处理的是文件文件对象是已经打开的文件在内存中的表示由open创建由close销毁多个进程可以打开操作同一个文件同一个文件可能存在多个文件对象它仅仅在进程的观点上代表打开的文件文件对象指向目录项对象目录项才和实际的文件一一对应也和索引节点一一对应。 它们之间的关系如下 其中task_struct为进程结构体。转载于:https://www.cnblogs.com/phoenixlaozhu/archive/2011/11/08/2241833.html