通常、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
?文書が見つからない部分です。