Linux的虚拟文件系统 嵌入式系统实验室 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
Linux的虚拟文件系统
提纲 虚拟文件系统VFS的作用 VFS的数据结构 冬文件系统类型 大 冬文件系统安装 ·路径名查找 1958 冬文件加锁 ot Science and technolooyor china VFS系统调用的实现 嵌入式系统实验室 2023/7/14 Linux OS analysis 18/92 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 18/92 提纲 ❖虚拟文件系统VFS的作用 ❖VFS的数据结构 ❖文件系统类型 ❖文件系统安装 ❖路径名查找 ❖VFS系统调用的实现 ❖文件加锁
虚拟文件系统VFS的作用 虚拟文件系统 >Virtual Filesystem Virtual Filesystem Switch >VFS是一个软件层,用来处理与Unix标准文件系统相 关的所有系统调用。 ●是用户应用程序与文件系统实现之间的抽象层 >能为各种文件系统提供一个通用的、统一的接口 冬Linux与其他类Uniⅸ系统一样,采用虚拟文件系 统VFS来达到支持多种文件系统格式的目标 C 嵌入式系统实验室 2023/7/14 Linux OS analysis 19/92 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 19/92 虚拟文件系统VFS的作用 ❖虚拟文件系统 ➢Virtual Filesystem ➢Virtual Filesystem Switch ➢VFS是一个软件层,用来处理与Unix标准文件系统相 关的所有系统调用。 ⚫是用户应用程序与文件系统实现之间的抽象层 ➢能为各种文件系统提供一个通用的、统一的接口 ❖Linux与其他类Unix系统一样,采用虚拟文件系 统VFS来达到支持多种文件系统格式的目标
VFS在一个简单文件复制操作中的作用 ?假设用户输入以下shell命令 cp /floppy/TEST /tmp/test 必其中 >/floppy是MS-DOS的磁盘的一个挂载点(安装点) >tmp是Ext2文件系统中的一个目录 冬对于cp命令而言,它不需要知道/f1 loppy/.TEST和 tmp/test分别是什么文件系统类型 >在cp命令中,它通过VFS提供的系统调用接口进行文 件操作 嵌入式系统实验室 2023/7/14 Linux OS analysis 20/92 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 20/92 VFS在一个简单文件复制操作中的作用 ❖假设用户输入以下shell命令 $ cp /floppy/TEST /tmp/test ❖其中, ➢/floppy是MS-DOS的磁盘的一个挂载点(安装点) ➢/tmp是Ext2文件系统中的一个目录 ❖对于cp命令而言,它不需要知道/floppy/TEST和 /tmp/test分别是什么文件系统类型 ➢在cp命令中,它通过VFS提供的系统调用接口进行文 件操作
Figure 12-1.VFS role in a simple file copy operation cp inf open("/floppy/TEST",O_RDONLY,0); outf = open("/tmp/test" VFS O WRONLY|O_CREAT]O_TRUNC,0600); do i=read(inf,buf,4096); write(outf,buf,i); while (i); close(outf); close(inf)月 Ext2 MS-DOS /tmp/test /floppy/TEST (a) (6) 室
2023/7/14 Linux OS analysis 21/92