일반적으로 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
? 문서를 찾을 수 없는 부분입니다.