#linux #filesystems #kernel #inotify
#linux #файловые системы #ядро #inotify
Вопрос:
Я понял, что ядро Linux предоставляет «механизм inotify» для мониторинга файловой системы.
Согласно inotify, inotify_init()
возвращает fd для получения inotify_event
от ядра. (Я понял, что ядро будет писать inotify_event
на нем.)
1) И если я добавлю новое наблюдение с inotify fd
помощью using inotify_add_watch()
, кто будет писать inotify_event
в inotify fd, когда просматриваемый файл получит событие.
2) (если ядро делает,) когда ядро обнаруживает событие для просматриваемого файла, как ядро решает, какой inotify fd(inotify_instance)
должен обновляться с этим inotify_event
?
Ответ №1:
Мое собственное исследование, это ответ:
- Это ядро Linux; в частности, файловая система.
- Когда вы вызываете
inotify_add_watch()
определенный файл,inotify
сохраняет некоторую информацию оinotify
наблюдении вinode
структуре этого файла.
Затем, всякий раз, когда файловая система имеет дело с этим файлом, она проверяет структуру файла inode
— существует ли inotify watches
он или нет. Если inotify
часы найдены из inode
структуры, inotify
отчеты inotify_event
.