Ik weet dat sommige bestandssystemen zichzelf presenteren via Fuse en ik vroeg me af wat de voor- en nadelen van deze benadering waren.

Antwoord

Ik “ben niet positief als je echt bedoelt, op schijf bestandssystemen of welk bestandssysteem dan ook. Ik” heb nog nooit een normaal bestandssysteem FUSE zien gebruiken, hoewel ik het veronderstel ” is mogelijk; het belangrijkste voordeel van FUSE is dat je iets aan applicaties (of de gebruiker) kunt presenteren dat eruitziet als een bestandssysteem, maar eigenlijk alleen functies binnen je applicatie aanroept als de gebruiker dingen probeert te doen, zoals de bestanden in een map weergeven of maak een nieuw bestand. Plan9 staat erom bekend alles toegankelijk te maken via het bestandssysteem, en de /proc pseudo -filesystem komt van hen; FUSE is een manier voor applicaties om dat patroon gemakkelijk te volgen

Hier is bijvoorbeeld een screenshot van een (zeer karakterloos) FUSE-bestandssysteem dat toegang geeft tot SE-sitegegevens:

Screenshot van het FUSE-bestandssysteem in actie

Natuurlijk bestaat geen van deze bestanden echt; toen ls vroeg om de lijst met bestanden in de directory FUSE riep een functie in mijn programma op die een API-verzoek deed aan deze site om informatie over gebruiker 73 (ik) te laden; cat probeerde te lezen van display_name en website_url riep meer functies op die de gegevens in het cachegeheugen teruggaven van geheugen, zonder dat er daadwerkelijk iets op de schijf staat

Opmerkingen

  • Er zijn FUSE-implementaties van FAT , NTFS , iso9660 , ext2 , en meer .
  • Je vindt zware bestandssystemen geïmplementeerd in fuse: LessFS, GlusterFS, MooseFS . Google ' s GFS (niet POSIX) werkt ook in gebruikersruimte.
  • Waar heb je die app gevonden?!?!
  • @George Ik schreef het toen ik met de SO API aan het rommelen was. Het ' gebruikt geen routes behalve / users, dus je ' ziet in feite alle geïmplementeerde functies in dat screenshot; het was gewoon om te zien hoe moeilijk het zou zijn.
  • @George Ik heb het op github

Answer

Unix-bestandssystemen worden traditioneel geïmplementeerd in de kernel. FUSE staat toe dat bestandssystemen worden geïmplementeerd door een gebruikersprogramma.

In-kernel bestandssystemen zijn beter geschikt voor hoofdbestandssystemen voor programmas en gegevens:

  • Ze kunnen worden gebruikt op opstartmedia (het programma dat een FUSE-bestandssysteem implementeert, moet ergens vandaan worden geladen).
  • Ze zijn robuuster, in die zin dat ze niet verdwijnen als gevolg van een proces dat crasht of per ongeluk wordt gedood.
  • Ze “zijn iets sneller.

FUSE-bestandssystemen hebben andere voordelen, die meestal draaien om hun flexibiliteit:

  • Ze kunnen worden geladen en aangekoppeld door gewone gebruikers, dus zijn ze handig voor bestandssystemen die gebruikers zelf meestal aankoppelen: voor netwerktoegang, om door archiefbestanden te gaan, voor verwijderbare media, enz. .
  • Als een FUSE-bestandssysteemstuurprogramma crasht, zal het “je kernel niet in paniek raken: je” zult niets ergers zien dan I / O-fouten in applicaties die toegang hadden tot het bestandssysteem.
  • Ze zeer snel programmeerbaar; er zijn FUSE-bindingen voor veel scripttalen waar een bruikbare FUSE-bestandssysteemdriver kan worden geschreven in een paar honderd regels code.
  • Ze kunnen zeer snel worden geïmplementeerd, zowel omdat er geen tussenkomst van de beheerder nodig is om ze te installeren als omdat ze gemakkelijk kunnen worden overgedragen tussen ondersteunde besturingssystemen .
  • Er zijn geen licentieproblemen gerelateerd aan statisch gekoppeld zijn aan een kernel (dit heeft invloed op zfs ).

Answer

FUSE is niet echt een bestandssysteem per se, maar code waarmee bestandssystemen kunnen worden geïmplementeerd als processen in plaats van als kernelmodules.

Een van de handigste voordelen van FUSE is dat GPL-code kan “mixen” met niet-GPL-code. Bijvoorbeeld Gnu / Linux en ZFS http://zfs-fuse.net/ of NTFS-3G op veel besturingssystemen zoals OpenSolaris en * BSD http://www.tuxera.com/community/ntfs-3g-download/

Het belangrijkste nadeel is de invloed op de prestaties in vergelijking met native (kernel) stuurprogrammas.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *