通常,当使用 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
管道的初始化顺序吗?这是我找不到任何文档的部分。