文章目录
虚拟文件系统VFS
简介
什么是虚拟文件系统?
- VFS是一个软件层,用来处理与Unix标准文件系统相关的所有系统调用
- 是用户应用程序与文件系统实现之间的抽象层
- 能为各种文件系统提供一个通用的、统一的接口
Linux与其他类Unix系统一样,采用虚拟文件系统VFS来达到支持多种文件系统格式的目标
VFS的作用
举例说明
假设输入一下shell命令:
cp /floppy/test /temp/test
, 其中floppy是软盘的意思,是MS-DOS的磁盘的一个挂载点,/tmp是Ext2文件系统中的一个目录
也就是说,这个cp命令是跨文件系统工作的,将MS-DOS磁盘的一个文件复制到Ext2文件系统中!
但是cp命令不需要知道/floppy/test和/tmp/test分别是什么文件系统类型,在cp命令中,通过VFS提供的系统调用接口进行文件操作。
示意图如下:
也就是说,判断源文件和目的文件是何种文件系统的工作交给了系统调用来做,cp命令并不需要考虑这一点。
VFS都支持哪些文件系统类型?
1.基于磁盘的文件系统,它们管理在本地磁盘分区中可用的存储空间
包括以下种类:
- Linux使用的文件系统:ext2, ext3, ReiserFS
- Unix家族使用的文件系统:SYSV文件系统,UFS, MINIX文件系统以及VERITAS VxFS
- 微软公司的文件系统:MS-DOS, VFAT以及NTFS
- IOS9660CD-ROM文件系统和通用磁盘格式的DVD文件系统
- 其他有专利权的文件系统:如HPFS, HFS, AFFS, ADFS
- 起源于非Linux系统的其他日志文件系统,JFS, XFS
2.网络文件系统:用于访问属于其他网络计算机的文件系统所包含的文件
比如NFS, Code, AFS, SMB, NCP等
3.特殊文件系统
- 不同于上述两大类
- 不管理具体的磁盘空间
- /proc