Vés al contingut

Inotify

De la Viquipèdia, l'enciclopèdia lliure
Inotify

Més informació
Stack ExchangeEtiqueta Modifica el valor a Wikidata

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]

Avantatges sobre dnotify[modifica]

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.

Referències[modifica]

  1. «Inotify: Efficient, Real-Time Linux File System Event Monitoring» (en anglès). [Consulta: 11 desembre 2023].
  2. «What is the proper way to use inotify?» (en anglès). [Consulta: 11 desembre 2023].
  3. Kerrisk, Michael. «Filesystem notification, part 2: A deeper investigation of inotify» (en anglès). LWN.net, 14-07-2014.
  4. «IBM Developer» (en anglès). [Consulta: 11 desembre 2023].