J'ai un logiciel qui fonctionne sous Windows. Le logiciel a deux composants: un pilote de minifiltre de système de fichiers qui fonctionne en mode noyau et un composant en mode utilisateur qui communique avec le pilote. Le pilote reçoit des notifications sur les demandes d'interruption d'E/S, telles que IRP_MJ_READ
. Un exemple d'application qui fait cela peut être trouvé sur github. Cela fonctionne pour tous les utilisateurs et la plupart des systèmes de fichiers pris en charge par Windows.Comment puis-je recevoir des notifications sur la lecture d'un fichier sous OS X?
Je dois développer un logiciel similaire pour OS X (bureau et serveur uniquement). Ce que je regardé:
- FSEvent
- Kernel Queues
- API de table d'appel système d'accrochage/détournement d'avion
- kprobe
- fanotify
Mes réservations sont: FSEvents peuvent ne pas être très performant , comme je dois surveiller le dossier racine /
un d tous les appareils montés. J'ai une compréhension très limitée des files d'attente du noyau et des syscalls Le détournement de l'API peut rendre très difficile le portage vers différentes versions d'OS X et peut provoquer des conflits avec la protection AV ou OS (comme le durcissement PaX).
Question: comment puis-je obtenir des notifications qu'un fichier dans un dossier (récursive) dans la racine /
est lu par tout utilisateur sur OS X?
une autre question pour vous: avez-vous l'intention que votre application soit mise en bac à sable ou disponible sur l'App Store Mac? –
Je ne sais pas, ce qui est plus facile et tout ce qui me permettra de le faire. Je pense que les AVs sont disponibles dans le magasin et que le sandbox ne me permettra probablement pas de faire les choses que je dois faire. – oleksii