VFS 和 NFS 有什么区别?

What's the difference between a VFS and an NFS?

这可能是一个愚蠢的问题,但我正在努力寻找能够清楚地解释 VFS 与 NFS 有何不同的资源。它们可以用于同一目的吗?

奖金问题:你能像看 NFS 一样看带有 inotify 的 VFS 吗?

"VFS" 是内核中位于系统调用和文件系统驱动程序之间的 整个 层的名称;它本身不是一个文件系统。

"NFS" 是一个已经存在了几十年的网络文件系统。 Wikipedia 你在这方面有所了解吗?

"VFS" 是一个更通用的术语,仅表示 "virtual filesystem"。在 Linux 的上下文中,它指的是您的用户 space 程序在与 "files" 交互时实际与之交互的内核部分。然后,VFS 层将请求传递给具体的文件系统驱动程序——例如 NFS,或 ext4,或其他。

阅读更多here and here

虚拟文件系统 (VFS) 是更具体文件之上的抽象层 system.The VFS 的目的是允许客户端应用程序以统一的方式访问不同类型的具体文件系统,网络文件系统 (NFS) 是一种分布式文件系统协议,最初由 Sun Microsystem 于 1984 年开发,允许客户端计算机上的用户通过计算机网络访问文件,更像是访问本地存储

VFS 可用于透明地访问本地和网络存储设备,而客户端应用程序不会注意到其中的区别。它可用于弥合 Windows、Mac 和 Unix 文件系统之间的差异,以便应用程序可以访问这些类型的本地文件系统上的文件,而无需知道它们正在访问的是什么类型的文件系统然而,与许多其他协议一样,NFS 建立在 Open Newtork Computing Remote Procedure Call (ONC RPC) 系统之上。 NFS 是 Request for comments (RFC) 中定义的开放标准,允许任何人实施该协议。