В Linux для чтения событий файловой системы большинство из нас использует Inotify, который действительно является хорошим. Но у него есть свои ограничения.
Я должен отслеживать все каталоги, которые я должен наблюдать, и получить дескриптор inotify для каждого каталога. Допустим, я хочу отслеживать всю систему в целом, и в ней около 10 миллионов каталогов. Перечисление и постановка их в очередь для самого API inotify займет несколько часов. Это также съело бы много памяти.
И я, конечно, не могу смотреть каталоги больше, чем указано в max_user_watches в /etc/syscntl.conf или / proc / sys / fs / inotify / max_user_watches.
Но мы знаем, что каждое событие файловой системы отслеживается ядром, и мы используем API inotify для регистрации определенных изменений каталога. Но как я могу читать события FS непосредственно из ядра без API ..? [В Mac OS X я могу читать из / dev / fsevents, также если бы я мог читать из / proc или что-то в этом роде, это было бы здорово]. Я тоже готов написать модуль ядра, но, пожалуйста, поделитесь с нами некоторыми соображениями.
Вы смотрели на антивирусный сканер материал? То есть, Fanotify, также fsnotify и подключен к dnotify а также Inotify. Это зависит от версия ядра; присутствует в той или иной форме примерно с 2.6.36 (начало 2011 года).
Некоторые файлы ядра,
Ссылки Lwn.net,
Других решений пока нет …