7

Linux では、ファイル システム イベントを読み取るために、私たちのほとんどが Inotify を使用しています。これは本当に優れた機能です。しかし、それには限界があります。監視する必要があるすべてのディレクトリを追跡し、すべてのディレクトリの inotify 記述子を取得する必要があります。システム全体を監視したいとしましょう。システムには約 1,000 万のディレクトリがあります。inotify API 自体のためにそれらをリストしてキューに入れるには、何時間もかかります。また、多くのメモリを消費します。そして、 /etc/syscntl.conf または /proc/sys/fs/inotify/max_user_watches の max_user_watches で指定された以上のディレクトリを監視することはできません。

しかし、すべてのファイル システム イベントがカーネルによって監視されていることがわかっており、inotify API を使用して特定のディレクトリの変更を登録しています。しかし、API を使用せずにカーネルから直接 fs イベントを読み取るにはどうすればよいでしょうか? [Mac OS X では、 /dev/fsevents から読み取ることができます。同様に、/proc などから読み取ることができれば、それは素晴らしいことです]。私もカーネルモジュールを書く準備ができていますが、これについていくつかの光を共有してください.

4

1 に答える 1