虚拟文件系统的引入&Linux最初采用Minix的文件系统,其大小限于64MB,文件名长度也限于14个字节αLinux经过一段时间的改进和发展,特别是吸取了Unix文件系统的经验,最后形成了现在的Ext2文件系统心为了支持其他各种不同的文件系统Linux提供了一种统一的框架,就是所谓的虚拟文件系统转换(VirtualFilesystemSwitch),简称虚拟文件系统(VFS)
v Linux最初采用Minix的文件系统,其大小 限于64MB,文件名长度也限于14个字节 v Linux经过一段时间的改进和发展,特别 是吸取了Unix文件系统的经验,最后形成 了现在的Ext2文件系统 v 为了支持其他各种不同的文件系统, Linux提供了一种统一的框架,就是所谓的 虚拟文件系统转换(Virtual Filesystem Switch),简称虚拟文件系统(VFS)。 < > 虚拟文件系统的引入
虚拟文件系统的引入用户程序用户空间文件系统的系统调用接口,包括readO、writeO、openO、closeO等虚拟文件系统VFS系统调用对应的内核函数sys read内核空间)sys_writeO、sys_openO等0支撑VFS的具体文件系统Ext2FAT设备文件Minix图8.4VFS与具体文件系统之间的关系
< > 虚拟文件系统的引入 用户程序 虚拟文件系统VFS Minix Ext2 . FAT . 设备文件 文件系统的系统调用接 口,包括read()、write()、 open()、close()等 系统调用对应的内核函数sys_read () sys_write()、sys_open()等 支撑VFS的具体文件系统 用户空间 内核空间 图8.4 VFS与具体文件系统之间的关系
VFS中的数据结构*超级块(superblock)对象:存放系统中已安装文件系统的有关信息索引节点(inode)对象:存放关于具体r文件的一般信息目录项(dentry)对象:存放目录项与对应文件进行链接的信息文件(file)对象:存放打开文件与进程之间进行交互的有关信息
v超级块(superblock)对象: 存放系统中 已安装文件系统的有关信息 v索引节点(inode)对象: 存放关于具体 文件的一般信息 v目录项(dentry)对象: 存放目录项与对 应文件进行链接的信息 v文件(file)对象: 存放打开文件与进程之 间进行交互的有关信息 < > VFS中的数据结构
VFS超级块数据结构必超级块用来描述整个文件系统的信息。每个具体的文件系统都有各自的超级块&VFS超级块是各种具体文件系统在安装时建立的,并在卸载时被自动删除,其r数据结构是 super block心所有超级块对象以双向环形链表的形式链接在一起必与超级块关联的方法就是超级块操作表。这些操作是由数据结构super operations来描述
v超级块用来描述整个文件系统的信息。 每个具体的文件系统都有各自的超级块 v VFS超级块是各种具体文件系统在安装 时建立的,并在卸载时被自动删除,其 数据结构是 super_block v所有超级块对象以双向环形链表的形式 链接在一起 v与超级块关联的方法就是超级块操作表。 这些操作是由数据结构super_operations 来描述 < > VFS超级块数据结构