提纲 ?虚拟文件系统VFS的作用 VFS的数据结构 冬文件系统类型 大 冬文件系统安装 ·路径名查找 1958 冬文件加锁 ot Science and Techpology of China VFS系统调用的实现 嵌入式系统实验室 2023/7/14 Linux OS analysis 18/84 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 18/84 提纲 ❖虚拟文件系统VFS的作用 ❖VFS的数据结构 ❖文件系统类型 ❖文件系统安装 ❖路径名查找 ❖VFS系统调用的实现 ❖文件加锁
虚拟文件系统VFS的作用 虚拟文件系统 >Virtual Filesystem Virtual Filesystem Switch >VFS是一个软件层,用来处理与Unix标准文件系统相 关的所有系统调用。 ●是用户应用程序与文件系统实现之间的抽象层 >能为各种文件系统提供一个通用的、统一的接口 冬Linux与其他类Uniⅸ系统一样,采用虚拟文件系 统VFS来达到支持多种文件系统格式的目标 嵌入式系统实验室 2023/7/14 Linux OS analysis 19/84 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 19/84 虚拟文件系统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/184 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 20/84 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/84
VFS支持的文件系统类型 VFS支持的文件系统可以划分为三种主要类型 基于磁盘的文件系统:它们管理在本地磁盘分区中可用的存储 空间 ●Linux使用的文件系统:ext2、ext3、ReiserFS ●Uniⅸ家族的文件系统:SYSV文件系统,UFS,MNIX文件系统以 及VERITAS VXFS ●微软公司的文件系统:MS-DOS、VFAT以及NTFS ●ISO9660CD-ROM文件系统和通用磁盘格式的DVD文件系统 ●其他有专利权的文件系统,如HPFS、HFS、AFFS、ADFS ● 起源于非Linux系统的其他日志文件系统,JFS,XFS Science and Techno 嵌入式系统实验室 2023/7/14 Linux OS analysis 22/84 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS analysis 22/84 VFS支持的文件系统类型 ❖ VFS支持的文件系统可以划分为三种主要类型 ➢ 基于磁盘的文件系统:它们管理在本地磁盘分区中可用的存储 空间 ⚫ Linux使用的文件系统:ext2、ext3、ReiserFS ⚫ Unix家族的文件系统:SYSV文件系统,UFS,MINIX文件系统以 及VERITAS VxFS ⚫ 微软公司的文件系统:MS-DOS、VFAT以及NTFS ⚫ ISO9660CD-ROM文件系统和通用磁盘格式的DVD文件系统 ⚫ 其他有专利权的文件系统,如HPFS、HFS、AFFS、ADFS ⚫ 起源于非Linux系统的其他日志文件系统,JFS,XFS