1

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

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

所以不用担心我去谷歌搜索。但我还是不明白。解释,尤其是维基百科上的解释对我来说没有意义。什么是 VFS?使用虚拟文件系统的实际需求或优势是什么?与公正相反,不是吗?

我问是因为我真的很好奇,如果它有用,我想将它实现到我正在制作的东西中。

谢谢

(还有任何链接或书籍或我可以阅读的可以扩展我的知识的东西也会有所帮助)

4

2 回答 2

2

VFS 是内核的一部分,是文件系统和用户应用程序使用的统一抽象层,它以通用的可访问格式呈现多个本地或网络文件系统,而不管文件所在卷的文件系统、文件的位置。文件所在的卷(本地或网络)、总线/控制器/存储标准或网络协议,或者文件系统是否安装在卷上或文件系统+卷是否安装在安装点,使其可访问任何地方。

VFS 包括:

  • 文件 IO / 文件映射 / 文件元数据 / 目录遍历 API,它们调用挂载到卷的底层文件系统,无论文件系统是什么。
  • 用于通知文件系统驱动程序卷到达的 API,以便它们可以识别其文件系统是否在卷上
  • 用于文件系统的 API,用于在不了解底层总线/控制器/存储传输标准或网络存储(块、文件)/传输/网络/数据链路/物理协议的情况下对其文件系统执行卷上的读/写操作,或存储介质上卷的物理分区或扇区(仅其中的逻辑集群),或存储介质的操作(除了知道外部碎片是否重要)。
  • 重新解析点功能,例如挂载点、目录连接和符号链接——它重新解析文件路径(与硬链接不同)以生成供底层文件系统访问的文件路径
  • 缓存文件页面,以便可以从 RAM 中获取它们而无需调用文件系统,并且只需在文件缓存页面未命中时调用文件系统(请参阅注释)。
  • 在页面未命中(请求分页)周围预取文件的一部分或预取相关文件或动态库,即 Windows 上的预取甚至Superfetch

然后,文件浏览器 GUI 应用程序可以使用 API 与卷的虚拟文件系统表示进行交互,并且 VFS 调用底层文件系统,然后通过 VFS 读取/写入其卷。然后,文件资源管理器可以在通用界面上直观地表示卷的虚拟文件系统表示

于 2021-03-11T06:33:22.427 回答
2

非常笼统地说,VFS是一个抽象层。将 VFS 想象成一个抽象基类,当您想要实现文件系统的具体类(如 、 或其他)时必须NTFS使用它Ext3NFS它提供了具体文件系统可以使用的基本功能,但也是具体类必须实现的接口。

不知道那是不是你要找的。如果不是,请告诉我,我可以添加更多细节。

于 2017-02-11T14:33:28.473 回答