Jeg ved, at nogle filsystemer præsenterer sig gennem Fuse, og jeg undrede mig over fordele og ulemper ved denne tilgang.

Svar

Jeg er ikke positiv, hvis du mener rigtige filsystemer på disken eller et hvilket som helst filsystem. Jeg har aldrig set et normalt filsystem bruge FUSE, selvom jeg antager det ” det er muligt; den største fordel ved FUSE er, at det giver dig mulighed for at præsentere noget for applikationer (eller brugeren), der ligner et filsystem, men egentlig bare kalder funktioner i din applikation, når brugeren prøver at gøre ting som at liste filerne i et bibliotek eller opret en ny fil. Plan9 er kendt for at forsøge at gøre alt tilgængeligt gennem filsystemet, og /proc pseudo -filsystem kommer fra dem; FUSE er en måde, hvorpå applikationer let kan følge dette mønster

For eksempel her “et skærmbillede af et (meget funktionsløst) FUSE-filsystem, der giver adgang til SE-webstedsdata:

Skærmbillede af FUSE-filsystem i aktion

Naturligvis findes der faktisk ingen af disse filer; når ls bad om listen over filer i biblioteket FUSE kaldte en funktion i mit program, der gjorde en API-anmodning til dette websted for at indlæse oplysninger om bruger 73 (mig); cat forsøger at læse fra display_name og website_url kaldte flere funktioner, der returnerede de cachelagrede data fra hukommelse uden noget, der faktisk findes på disken

Kommentarer

  • Der er FUSE-implementeringer af FAT , NTFS , iso9660 , ext2 og mere .
  • Du finder tunge filsystemer implementeret i sikring: LessFS, GlusterFS, MooseFS . Google ' s GFS (ikke POSIX) kører også i brugerområdet.
  • Hvor fandt du den app?!?!
  • @George Jeg skrev det, da jeg rodede med SO API. Det bruger ' ikke nogen ruter undtagen / brugere, så du ' ser stort set alle de implementerede funktioner i dette skærmbillede; det var bare for at se, hvor svært det ville være
  • @George Jeg satte det på github

Svar

Unix-filsystemer implementeres traditionelt i kernen. FUSE tillader, at filsystemer implementeres af et brugerprogram.

In-kernel filsystemer er bedre egnet til hovedfilsystemer til programmer og data:

  • De kan bruges på startmedier (programmet, der implementerer et FUSE-filsystem, skal indlæses et sted).
  • De er “mere robuste, fordi de ikke vinder gå væk på grund af en proces, der går ned eller ved at blive dræbt ved en fejltagelse.
  • De “er noget hurtigere.

FUSE-filsystemer har andre fordele, der hovedsagelig drejer sig om deres fleksibilitet:

  • De kan indlæses og monteres af almindelige brugere, så de er praktiske til filsystemer, som brugerne har tendens til at montere alene: til netværksadgang, til at gå gennem arkivfiler, til flytbare medier osv. .
  • Hvis en FUSE-filsystemdriver går ned, vil den ikke få panik til din kerne: du vil ikke se noget værre end I / O-fejl i applikationer, der fik adgang til filsystemet.
  • De kan programmeres meget hurtigt; der er FUSE-bindinger til mange scriptsprog, hvor en nyttig FUSE-filsystemdriver kan skrives i et par hundrede linier kode.
  • De kan implementeres meget hurtigt, både fordi der ikke er behov for administratorintervention for at installere dem, og fordi de let kan porteres mellem understøttede operativsystemer .
  • Der er ingen licensproblemer relateret til at være statisk knyttet til en kerne (dette påvirker zfs ).

Svar

FUSE er ikke egentlig et filsystem i sig selv, men kode, der gør det muligt at implementere filsystemer som processer i stedet for kernemoduler.

En af de mest nyttige fordele ved FUSE er at tillade GPL-kode at “blande” med ikke GPL-en. For eksempel Gnu / Linux og ZFS http://zfs-fuse.net/ eller NTFS-3G på mange operativsystemer som OpenSolaris og * BSD http://www.tuxera.com/community/ntfs-3g-download/

Den største ulempe er præstationseffekten sammenlignet med native (kernel) drivere.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *