使用虚拟文件系统有什么意义?

问题描述 投票:0回答:3

所以我正在制作这个软件来加密计算机上的文件。我的一个朋友(我们都是学生,所以不要对我们太严厉)建议我使用虚拟文件系统。我问为什么,甚至那是什么,他们给了我一些半途而废的答案,但没有帮助

[我不知道这是否重要,但我在linux环境下]

所以不用担心,我在谷歌上进行了搜索。但我还是不明白。这些解释,尤其是维基百科上的解释对我来说没有意义。什么是VFS?使用虚拟文件系统的实际需求或优势是什么?相对于只是,不是? 我问这个问题是因为我真的很好奇,如果它真的那么有用,我想将它应用到我正在制作的东西中。

谢谢你

(任何我可以阅读的链接、书籍或其他可以扩展我的知识的内容也会有帮助)

linux filesystems low-level virtualfilesystem
3个回答
3
投票
VFS

是一个抽象层。将 VFS 想象成一个抽象基类,当您想要实现文件系统的具体类(如

NTFS
Ext3
NFS
或其他)时必须使用它。它提供了具体文件系统可以使用的基本功能,同时也是具体类必须实现的接口。

不知道这是否是您正在寻找的。如果不是,请告诉我,我可以添加更多详细信息。


2
投票

VFS 包括:

文件 IO / 文件映射 / 文件元数据 / 目录遍历 API,无论文件系统是什么,都会调用挂载到卷的底层文件系统。
  • 文件系统驱动程序的 API,用于在卷到达时收到通知,以便他们可以识别其文件系统是否位于卷上
  • 文件系统使用其文件系统对卷执行读/写操作的API,无需了解底层总线/控制器/存储传输标准,或网络存储(块、文件)/传输/网络/数据链路/物理协议,或存储介质上卷的物理分区或扇区(仅其中的逻辑簇),或存储介质的操作(除了知道外部碎片是否重要之外)。
  • 重新解析点功能,例如挂载点、目录连接和符号链接——它重新解析文件路径(与硬链接不同)以生成供底层文件系统访问的文件路径
  • 缓存文件页面,以便可以从 RAM 中获取它们,而无需调用文件系统,并且只需在文件缓存页面丢失时调用文件系统(请参阅注释)。
  • 在缺页时预取文件的部分内容(请求分页)或预取关联的文件或动态库,即在 Windows 上预取,甚至是
  • Superfetch
  • 然后,文件浏览器 GUI 应用程序可以使用 API 与卷的虚拟文件系统表示进行交互,VFS 调用底层文件系统,然后底层文件系统通过 VFS 读取/写入其卷。然后,文件资源管理器可以在通用界面上直观地表示卷的虚拟文件系统表示

我假设我们都知道“真正的”文件系统(只是保存文件方法的分类(实际操作将在下面提到):

0
投票

NTFS、FAT、FAT32、...)

所以首先我们需要了解什么是“虚拟”???

实际上,我们无法在 2 个不同的“真实”文件系统“类型”之间连接、复制、移动文件(例如 NTFS 无法连接到 FAT)

  • -> 所以我们需要一些介于两者之间的东西来完成所有这些事情(这样我们就可以拥有一个同步的文件树)
-> Linux 再次为我们做到这一点并返回可视化文件树(现在它不再是真正的文件系统)

总结:

许多真实的文件系统 -> Linux 收集所有信息并以自己的方式为我们重写 -> 为我们带来一个新的文件树(这里虚拟是因为当我们进行任何更改时,Linux 会收集该操作并将其转换为真实的文件系统)纠正文件系统类型的操作)

这只是类型,在Linux中我们也有类似

ls /proc
在文件树中返回正在运行的进程,但磁盘上没有任何文件 - >这些文件也是虚拟的,它们并不真正存在于物理磁盘上

	

© www.soinside.com 2019 - 2024. All rights reserved.