Je sais que certains systèmes de fichiers se présentent via Fuse et je me posais des questions sur les avantages et les inconvénients de cette approche.
la source
Je sais que certains systèmes de fichiers se présentent via Fuse et je me posais des questions sur les avantages et les inconvénients de cette approche.
Je ne suis pas sûr si vous voulez dire de vrais systèmes de fichiers sur disque ou tout système de fichiers. Je n'ai jamais vu un système de fichiers normal utiliser FUSE, bien que je suppose que c'est possible; le principal avantage de FUSE est qu'il vous permet de présenter quelque chose à des applications (ou à l'utilisateur) qui ressemble à un système de fichiers, mais appelle simplement des fonctions dans votre application lorsque l'utilisateur essaie de faire des choses comme lister les fichiers dans un répertoire ou créer un nouveau fichier. Plan9 est bien connu pour essayer de rendre tout accessible via le système de fichiers, et le /proc
pseudo-système de fichiers vient d'eux; FUSE est un moyen pour les applications de suivre facilement ce modèle
Par exemple, voici une capture d'écran d'un système de fichiers FUSE (très dépourvu de fonctionnalités) qui donne accès aux données du site SE:
Naturellement, aucun de ces fichiers n'existe réellement; lorsqu'on ls
lui a demandé la liste des fichiers dans le répertoire FUSE a appelé une fonction dans mon programme qui a fait une requête API sur ce site pour charger des informations sur l'utilisateur 73 (moi); cat
essayer de lire display_name
et d' website_url
appeler plus de fonctions qui ont renvoyé les données en cache de la mémoire, sans que rien n'existe réellement sur le disque
Les systèmes de fichiers Unix sont traditionnellement implémentés dans le noyau. FUSE permet aux systèmes de fichiers d'être implémentés par un programme utilisateur.
Les systèmes de fichiers intégrés au noyau sont mieux adaptés aux systèmes de fichiers principaux pour les programmes et les données:
Les systèmes de fichiers FUSE présentent d'autres avantages, principalement liés à leur flexibilité:
la source
FUSE n'est pas vraiment un système de fichiers en soi mais un code qui permet aux systèmes de fichiers d'être implémentés en tant que processus au lieu de modules du noyau.
L'un des avantages les plus utiles de FUSE est de permettre au code GPL de se «mélanger» avec un code non GPL. Par exemple, Gnu / Linux et ZFS http://zfs-fuse.net/ ou NTFS-3G sur de nombreux systèmes d'exploitation comme OpenSolaris et * BSD http://www.tuxera.com/community/ntfs-3g-download/
Le principal inconvénient est l'impact sur les performances par rapport aux pilotes natifs (noyau).
la source