我知道一些文件系统通过 Fuse 呈现自己,我想知道这种方法的优点和缺点。
答案1
Unix 文件系统传统上是在内核中实现的。保险丝允许用户程序实现文件系统。
内核内文件系统更适合程序和数据的主文件系统:
- 它们可以在启动介质上使用(必须从某个地方加载实现 FUSE 文件系统的程序)。
- 它们更加强大,因为它们不会因为进程崩溃或被错误终止而消失。
- 他们有点快。
FUSE 文件系统还有其他优点,主要围绕其灵活性:
答案2
如果你指的是真正的磁盘文件系统或任何文件系统,我不确定。我从未见过普通的文件系统使用 FUSE,尽管我认为这是可能的; FUSE 的主要好处是它可以让您向应用程序(或用户)呈现一些看起来像文件系统的东西,但实际上只是在用户尝试执行诸如列出目录中的文件或创建新文件之类的操作时调用应用程序中的函数文件。计划9因试图通过文件系统访问所有内容而闻名,/proc
伪文件系统就来自它们; FUSE 是应用程序轻松遵循该模式的一种方法
例如,下面是一个(非常无功能的)FUSE 文件系统的屏幕截图,可以访问 SE 站点数据:
当然,这些文件实际上都不存在;当ls
询问目录中的文件列表时,FUSE 在我的程序中调用了一个函数,该函数向该站点发出 API 请求以加载有关用户 73(我)的信息;cat
尝试读取display_name
并website_url
调用更多从内存返回缓存数据的函数,而磁盘上没有任何实际存在的数据