%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20%ED%98%B8%EC%B6%9C%EC%9D%84%20%EC%B6%94%EC%A0%81%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
FUSE 파일 시스템 내 프로세스의 모든 open() 시스템 호출을 추적하고 싶습니다.
두 가지 우려사항:
open() 시스템 호출이 FUSE 파일 시스템 작업을 트리거하지 않는 사용 사례가 있습니까? 예를 들어 시스템 호출은 커널에 의해 내부적으로 처리됩니다.
open() 시스템 호출 후에 어떤 FUSE 작업이 트리거될 수 있습니까? 내가 그걸 찾았어libfuse 문서에서:
- 열려 있는()
- mknod() + 생성()
- ... 다른 사람도 있나요?
편집: 일부 컨텍스트를 추가합니다.
- 저는 이미 자체 FUSE 파일 시스템을 보유하고 있으므로 FUSE에서 이를 구현할 때의 위험에 대해 구체적으로 질문합니다.
- 시스템은 지속적으로 실행되어야 하므로(가끔 디버그/프로파일링하지 않음) 성능이 중요합니다(
strace
큰 오버헤드가 있음). - 정적 및 동적 실행 파일 모두에 대해 작동해야 합니다. 따라서 open()의 라이브러리를 재정의하고 LD_PRELOAD로 주입하는 것은 실행 가능한 옵션이 아닙니다.