dnotify es un monitor de eventos del sistema de archivos para el kernel de Linux , una de las subfunciones de la llamada fcntl. Se introdujo en la serie de kernels 2.4. [ 1 ] Ha sido reemplazado por inotify , pero se conservará por razones de compatibilidad.
Su función es esencialmente la de una extensión de los sistemas de archivos para detectar cambios en el sistema y notificarlos a las aplicaciones. En lugar de que la aplicación compruebe manualmente los cambios en el sistema de archivos, puede registrarse para recibir notificaciones del kernel cuando se produzcan dichos cambios. La aplicación puede seleccionar los directorios que desea monitorizar y los tipos de cambios sobre los que desea recibir notificaciones.
Una de sus principales aplicaciones se encuentra 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 cual sería muy ineficiente. Al recibir la notificación de que un archivo ha cambiado directamente del kernel, en lugar de buscarlo activamente, Beagle y utilidades similares pueden lograr tiempos de reindexación de tan solo un segundo, con un impacto mínimo en el rendimiento (por lo tanto, dnotify permite el uso de estos programas de manera sensata; los demonios generalmente no son aceptados por los distribuidores si consumen notablemente el rendimiento del sistema para proporcionar funcionalidades en el espacio de usuario ).
Limitaciones
- dnotify solo puede monitorear directorios.
- dnotify requiere mantener un descriptor de archivo abierto al directorio que el usuario desea monitorear. Primero, el directorio está abierto, lo que impide que el dispositivo en el que reside se desmonte. Segundo, la lista de monitoreo está limitada por el límite de archivos abiertos del proceso. [ 2 ]
Véase también
- API del kernel de Linux
- monitor de alteración de archivos
- inotify , un reemplazo para dnotify.
- El archivo Documentation/filesystems/dnotify.txt en el árbol de código fuente del kernel
Notas a pie de página
- Características del kernel de Linux
- Stubs de Linux