stringtranslate.com

inotificar

inotify ( inode notify) es un subsistema del kernel de Linux creado por John McCutchan, que monitorea los cambios en el sistema de archivos e informa esos cambios a las aplicaciones. Se puede usar para actualizar automáticamente las vistas de directorio, recargar archivos de configuración, registrar cambios, realizar copias de seguridad, sincronizar y cargar. Los comandos inotifywait e inotifywatch (mantenidos por Eric Curtin como parte del proyecto inotify-tools) permiten usar el subsistema inotify desde la línea de comandos. [1] Un uso importante es en utilidades de búsqueda de escritorio como Beagle , donde su funcionalidad permite reindexar los archivos modificados sin escanear el sistema de archivos en busca de cambios cada pocos minutos, lo que sería muy ineficiente.

inotify reemplazó a una utilidad anterior, dnotify , que tenía objetivos similares. Inotify se fusionó con la línea principal del núcleo Linux en la versión 2.6.13 del núcleo, lanzada el 29 de agosto de 2005; [2] Las versiones posteriores del núcleo incluyeron mejoras adicionales. Las interfaces de biblioteca requeridas se agregaron a la Biblioteca C de GNU (glibc) en su versión 2.4, lanzada en marzo de 2006, mientras que el soporte para inotify se completó en la versión 2.5 de glibc, lanzada en septiembre de 2006. [3]

Limitaciones

Las limitaciones impuestas por inotify incluyen las siguientes:

Historia

Ventajas sobre dnotify

Existen varias ventajas al usar inotify en comparación con la antigua API dnotify que reemplazó. [7] [8] [9] Con dnotify, un programa tenía que usar un descriptor de archivo para cada directorio que estaba monitoreando. Esto puede convertirse en un cuello de botella ya que se podría alcanzar el límite de descriptores de archivo por proceso. Más tarde, se creó fanotify para superar este problema. El uso de descriptores de archivo junto con dnotify también resultó ser un problema al usar medios extraíbles. Los dispositivos no se podían desmontar ya que los descriptores de archivo mantenían el recurso ocupado.

Otro inconveniente de dnotify es el nivel de granularidad, ya que los programadores solo pueden monitorear los cambios a nivel de directorio. Para acceder a información detallada sobre los cambios ambientales que ocurren cuando se envía un mensaje de notificación, se debe utilizar una estructura de estadísticas; esto se considera un mal necesario ya que se debe mantener un caché de estructuras de estadísticas; para cada nueva estructura de estadísticas generada, se realiza una comparación con la estructura almacenada en caché.

La API de inotify utiliza menos descriptores de archivos, lo que permite a los programadores utilizar la interfaz de selección y sondeo establecida, en lugar del sistema de notificación de señales utilizado por dnotify . Esto también facilita la integración con bibliotecas existentes basadas en selección o sondeo (como GLib ).

Véase también

Referencias

  1. ^ Wiki de herramientas inotify
  2. ^Desde Linux 2.6.13, kernelnewbies.org
  3. ^ página del manual de abc inotify
  4. ^ Robert Love, Programación de sistemas Linux. O'Reilly, pág. 236
  5. ^ página del manual de inotifywait, [1]
  6. ^ "fa.linux.kernel post [RFC][PATCH] inotify 0.8". 2004-07-29 . Consultado el 2013-08-19 .
  7. ^ Michael Kerrisk (14 de julio de 2014). "Notificación del sistema de archivos, parte 2: una investigación más profunda de inotify". LWN.net .
  8. ^ Eli M. Dow (31 de mayo de 2005). "Monitorizar eventos del sistema de archivos de Linux con Inotify; ¿por qué utilizar Inotify?". Archivado desde el original el 16 de enero de 2010.
  9. ^ Archivo README de inotify

Enlaces externos