- 11
- 0
- 约3.39千字
- 约 26页
- 2017-06-07 发布于湖北
- 举报
文件系统VFS理解剖析
进程与其相关文件之间的关系 多个进程可以同时打开和操作同一个文件 同一个文件在内存中可能存在多个file结构体对象 一个文件 对应inode是唯一的 但其对应的file结构体对象可能不唯一(被多个进程打开“读”) 多个进程同时打开同一个文件 PCB2 PCB1 file dentry inode file dentry 多个进程同时打开同一个文件 PCB2 PCB1 file dentry inode file 多个进程同时打开同一个文件 PCB2 PCB1 file dentry inode 每个文件系统在内存都有: superblock inode dentry file 总结 高级语言编程者可以看到file结构 单击此处编辑母版标题样式 第4节 虚拟文件系统virtual filesystem (VFS) 不同的文件系统的磁盘数据在内存怎么放? Linux支持的文件系统 Linux的VFS 进程与文件 通常一个操作系统会支持使用几个文件子系统 FAT外、内存数据结构 数据块 FAT1 FAT2 目录区 盘卷总信息 外存: 内存: DPB链(驱动器参数块链) SFT(系统文件表) Open()返回这个表的行号 CDS(当前目录结构) DBF(磁盘缓冲区) 文件子系统的安装程序 文件子系统的建立程序 文件子系统拆除程序 打开、读写、关闭文件程序 ……….. ext2的外、内存数据结构 superblock inode dentry file 块组3 块组2 块组1 块组0 引导块 数据块 索引节点表 组描述符 块位图 索引节点位图 超级块 内存: 外存: 虚拟文件系统的引入 sec cyl head 磁盘 驱动 第1层抽象 第2层抽象 第3层抽象 I/O系统 文件系统1 文件系统2 …….. 第4层抽象 虚拟文件系统 虚拟文件系统是在内存的 Linux支持的文件系统 由于Linux自由软件的特点,很多人为Linux添加文件系统,所以。。。。。。。 文件系统分类 支持的文件系统可分为三类 基于磁盘的文件系统 e.g ext2、ext3、VFAT、NTFS、ISO9660 CDROM… 网络文件系统 e.g NFS、Coda… 特殊文件系统 不占磁盘空间,e.g /proc Linux支持的部分文件系统 虚拟文件系统(vfs) 第四层抽象 virtual filesystem (VFS) VFS不直接操作文件,所有对文件的实际操作都要通过实际作用于某个介质的文件系统来完成 引入VFS的目的是为了屏蔽各种文件系统的差异 VFS对实际文件系统进行抽像,采用统一的数据结构在内存中描述所有实际的文件系统,向用户提供一组标准的文件操作函数。 VFS负责将标准文件操作映射到实际文件系统的操作。 正是这种抽像和映射,保证了Linux系统可以支持多种介质的不同文件系统,使所有文件系统都具有基本相同的外部表现 virtual filesystem (VFS) VFS通过一组统一的数据结构和操作函数接口实现抽象 操作函数 操作函数由实际的文件系统实现 VFS依据这些对象提供的信息和操作函数来完成将用户的文件请求映射到实际文件系统的操作 数据结构的建立 结构体的数据由实际文件系统的相应的数据来填充 各个数据结构的对象存在于内存 superblock inode dentry file 只内存有 Superblock 每个文件系统都有自己的superblock结构(卷总结构) superblock结构用来存储文件系统的相关信息 设备标识符、文件系统标志、数据块大小、文件系统的特殊信息、文件系统的使用信息、超级块操作集指针 VFS的superblock和文件系统一一对应,代表一个实际的文件系统 superblock在文件系统挂载时建立,在文件系统卸载后撤销 存在同步更新的问题,所以,VFS也会周期性地将所有发生改变的Superblock写回磁盘 Superblock与介质文件系统 块组3 块组2 块组1 块组0 引导块 数据块 索引节点表 组描述符 块位图 索引节点位图 超级块 数据块 FAT1 FAT2 目录区 盘卷总信息 ext2: FAT: inode inode结构体代表文件系统中的一个文件 仅当文件被打开时,其对应的VFS inode结构体才在内存中创建 inode信息的获取 从磁盘读入文件的FCB inode信息同步 与超级块相同,inode也存在同步更新的问题,所以,VFS也会周期性地将所有发生改变的inode写回磁盘 inode与介质文件系统 块组3 块组2 块组1 块组0 引导块 数据块 索引节点表 组描述符 块位图 索引节点位图 超级块 数据块 FAT1 FAT2 目录区 盘卷总信息 ext2: FA
原创力文档

文档评论(0)