Les noyaux Linux les plus récents intègrent une nouvelle fonctionnalité de surveillance de fichiers très efficace. Nous faisons connaissance avec elle et nous apprenons à la mettre en oeuvre avec C++.
Pouvoir être notifié d'actions effectuées dans un système de fichiers est très important. Des outils de recherche et d'indexation tels que Beagle (http://beagle-project.org/) ne pourraient fonctionner sans cela autrement qu'en parcourant totalement l'arborescence à intervalles réguliers pour se mettre à jour. Approche peu efficace s'il en est. Pouvoir être informé en cas de modification indésirable d'un fichier est également important pour la sécurité d'un système. Tous les systèmes d'exploitation offrent une solution à ce problème. Jusqu'à récemment, la solution Linux était dnotify, bien connue pour ses défauts. Ceux-ci sont notamment la limitation de la surveillance aux répertoires, la contrainte de gérer un descripteur de fichier par répertoire surveillé et l'impossibilité de démonter le périphérique accueillant le ou les répertoires sous surveillance. Le remède s'appelle INotify.
Cette nouvelle fonctionnalité est intégrée au noyau et a été développée par Robert Love et John McCutchan, deux éminents codeurs de la communauté. Nous allons découvrir ensemble cette nouvelle fonctionnalité tout en écrivant un peu de code C++ que vous trouverez sur le site www.programmez.com. Ce code est l'adaptation et la simplification du code d'une application réelle en cours de développement. Le rôle de cette application est d'accroître la sécurité d'un serveur en s'assurant qu'un hacker ne vient pas modifier des fichiers ou répertoires sensibles. Pour profiter au mieux de cet article, le lecteur doit avoir de bonnes notions de programmation système Linux. Il doit également connaître la librairie C++ Boost. Si ce n'est pas le cas, nous lui suggérons de se reporter à Programmez! 93 et 96 pour se familiariser avec Boost.