FUSEファイルシステム内のプロセスのすべてのopen()システムコールを追跡したいと思います。
2つの懸念事項:
open()システムコールがFUSEファイルシステム操作をトリガしないユースケースはありますか?たとえば、システムコールはカーネルによって内部的に処理されます。
open() システムコールの後、どの FUSE 操作をトリガーできますか?私はそれを見つけました。libfuseドキュメントから:
- 開いている()
- mknod() + 生成()
- …他の人もいますか?
編集:いくつかのコンテキストを追加します。
- 私はすでに独自のFUSEファイルシステムを持っているので、FUSEでそれを実装する際のリスクについて具体的に尋ねます。
- システムは継続的に実行する必要があるため(時々デバッグ/プロファイルしない)、パフォーマンスが重要です(
strace
大きなオーバーヘッドがあります)。 - 静的実行可能ファイルと動的実行ファイルの両方で機能する必要があります。したがって、open()のライブラリをオーバーライドしてLD_PRELOADに注入することは実行可能なオプションではありません。