FUSE 파일 시스템 내 프로세스의 모든 open() 시스템 호출을 추적하고 싶습니다.
두 가지 우려사항:
open() 시스템 호출이 FUSE 파일 시스템 작업을 트리거하지 않는 사용 사례가 있습니까? 예를 들어 시스템 호출은 커널에 의해 내부적으로 처리됩니다.
open() 시스템 호출 후에 어떤 FUSE 작업이 트리거될 수 있습니까? 내가 그걸 찾았어libfuse 문서에서:
- 열려 있는()
- mknod() + 생성()
- ... 다른 사람도 있나요?
편집: 일부 컨텍스트를 추가합니다.
- 저는 이미 자체 FUSE 파일 시스템을 보유하고 있으므로 FUSE에서 이를 구현할 때의 위험에 대해 구체적으로 질문합니다.
- 시스템은 지속적으로 실행되어야 하므로(가끔 디버그/프로파일링하지 않음) 성능이 중요합니다(
strace
큰 오버헤드가 있음). - 정적 및 동적 실행 파일 모두에 대해 작동해야 합니다. 따라서 open()의 라이브러리를 재정의하고 LD_PRELOAD로 주입하는 것은 실행 가능한 옵션이 아닙니다.