Més informació | |
---|---|
Stack Exchange | Etiqueta |
| |
inotify (inode notify) és un subsistema del nucli de Linux creat per John McCutchan, que supervisa els canvis al sistema de fitxers i informa d'aquests canvis a les aplicacions. Es pot utilitzar per actualitzar automàticament les vistes de directoris, tornar a carregar fitxers de configuració, registrar canvis, fer còpies de seguretat, sincronitzar i carregar. Les ordres inotifywait i inotifywatch (mantinguts per Eric Curtin com a part del projecte inotify-tools) permeten utilitzar el subsistema inotify des de la línia d'ordres. Un ús important és en utilitats de cerca d'escriptori com Beagle, on la seva funcionalitat permet reindexar els fitxers modificats sense escanejar el sistema de fitxers per buscar canvis cada pocs minuts, cosa que seria molt ineficient.[1]
inotify va substituir una instal·lació anterior, dnotify, que tenia objectius similars. Inotify es va fusionar a la línia principal del nucli Linux a la versió del nucli 2.6.13, publicada el 29 d'agost de 2005; les versions posteriors del nucli van incloure millores addicionals. Les interfícies de biblioteca necessàries es van afegir a la GNU C Library (glibc) en la seva versió 2.4, publicada el març de 2006, mentre que el suport per a inotify es va completar a la versió 2.5 de glibc, publicada el setembre de 2006.[2]
Hi ha una sèrie d'avantatges quan s'utilitza inotify en comparació amb l'API dnotify més antiga que va substituir.[3] Amb dnotify, un programa havia d'utilitzar un descriptor de fitxer per a cada directori que supervisava. Això pot convertir-se en un coll d'ampolla ja que es podria assolir el límit de descriptors de fitxers per procés. Més tard, es va crear fanotify per solucionar aquest problema. L'ús de descriptors de fitxers juntament amb dnotify també va resultar ser un problema quan s'utilitzaven mitjans extraïbles. Els dispositius no s'han pogut desmuntar perquè els descriptors de fitxers mantenien el recurs ocupat.[4]
Un altre inconvenient de dnotify és el nivell de granularitat, ja que els programadors només poden controlar els canvis a nivell de directori. Per accedir a informació detallada sobre els canvis ambientals que es produeixen quan s'envia un missatge de notificació, s'ha d'utilitzar una estructura estadística; això es considera un mal necessari perquè s'ha de mantenir una memòria cau d'estructures d'estadístiques, per a cada nova estructura d'estadístiques generada s'executa una comparació amb la de la memòria cau.