如何使用独立于 Linux 内核的 FUSE 服务器?

如何使用独立于 Linux 内核的 FUSE 服务器?

通常,当使用 FUSE 服务器(又名 FUSE 模块或 FUSE 文件系统)时,Linux 内核充当 FUSE 客户端。他们谈论的是半文档化的协议,但大多数情况下只有内核作者或 libfuse 作者看过。我想尝试直接在我自己的应用程序中与 FUSE 服务器交互,独立于内核,作为我自己程序的子进程。换句话说,我想写一个FUSE客户端。

我发现libfuse wiki 中的此协议文档我可以开始尝试这个,但首先我必须弄清楚如何启动 FUSE 服务器。

当我挂载 sshfs 时,进程列表显示我

sshfs $HOST:$PATH $MOUNTPATH

根据 /proc 的文件描述符是

0 -> /dev/null
1 -> /dev/null
2 -> /dev/null
3 -> /dev/fuse
4 -> 'socket:[7464782]'

我假设套接字是 SSH 连接。 /dev/fuse 是我现在想弄清楚的。内核是否打开该文件句柄并将其作为描述符 3 传递给熔断器程序?或者 sshfs 本身打开 /dev/fuse 吗?如果 FUSE 服务器正在连接到内核,我怎样才能让它连接到我提供的管道?

更一般地说,有人可以描述内核和用户空间之间通向client <-> server管道的初始化顺序吗?这是我找不到任何文档的部分。

相关内容