stringtranslate.com

inotificar

inotify ( notificación de inodo ) 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 utilizar 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 archivos modificados sin escanear el sistema de archivos en busca de cambios cada pocos minutos, lo que sería muy ineficiente.

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

Limitaciones

Las limitaciones impuestas por inotify incluyen las siguientes:

Historia

Ventajas sobre dnotify

Hay una serie de ventajas al usar inotify en comparación con la API dnotify anterior 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 archivos por proceso. Posteriormente, se creó fanotify para superar este problema. El uso de descriptores de archivos junto con dnotify también resultó ser un problema al utilizar medios extraíbles. Los dispositivos no se podían desmontar porque los descriptores de archivos mantenían el recurso ocupado.

Otro inconveniente de dnotify es el nivel de granularidad, ya que los programadores sólo 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 en el sentido de que se debe mantener un caché de estructuras de estadísticas, por cada nueva estructura de estadísticas generada se ejecuta una comparación con la 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 encuestas (como GLib ).

Ver también

Referencias

  1. ^ wiki de herramientas de inotify
  2. ^ ab Linux 2.6.13, kernelnewbies.org
  3. ^ página de manual de abc inotify
  4. ^ Robert Love, programación del sistema Linux. O'Reilly, pág. 236
  5. ^ página de manual inotifywait, [1]
  6. ^ "publicación de fa.linux.kernel [RFC] [PATCH] inotify 0.8". 29 de julio de 2004 . Consultado el 19 de agosto de 2013 .
  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). "Supervise los eventos del sistema de archivos de Linux con Inotify; ¿Por qué inotify?". Archivado desde el original el 16 de enero de 2010.
  9. ^ notificar el archivo README

Enlaces externos