Jag vet att vissa filsystem presenterar sig genom Fuse och jag undrade om fördelar och nackdelar med detta tillvägagångssätt.

Svar

Jag är inte positiv om du menar riktiga filsystem på disken eller något filsystem. Jag har aldrig sett ett normalt filsystem använda FUSE, även om jag antar att det ” det är möjligt; den största fördelen med FUSE är att du kan presentera något för applikationer (eller användaren) som ser ut som ett filsystem, men egentligen bara anropar funktioner i din applikation när användaren försöker göra saker som att lista filerna i en katalog eller skapa en ny fil. Plan9 är känd för att försöka göra allt tillgängligt genom filsystemet och /proc pseudo -filsystem kommer från dem; FUSE är ett sätt för applikationer att enkelt följa det mönstret

Till exempel, här är en skärmdump av ett (mycket saklöst) FUSE-filsystem som ger åtkomst till SE-webbplatsdata:

Skärmdump av FUSE-filsystem i aktion

Naturligtvis finns det ingen av dessa filer; när ls frågade efter en lista över filer i katalogen FUSE kallade en funktion i mitt program som gjorde en API-begäran till denna webbplats för att ladda information om användare 73 (mig); cat försöker läsa från display_name och website_url anropade fler funktioner som returnerade cachade data från minne, utan att någonting existerar på disken

Kommentarer

  • Det finns FUSE-implementeringar av FAT , NTFS , iso9660 , ext2 och mer .
  • Du hittar tunga filsystem implementerade i säkring: LessFS, GlusterFS, MooseFS . Google ' s GFS (inte POSIX) körs också i användarutrymmet.
  • Var hittade du den appen?!?!
  • @ George Jag skrev det när jag rörde mig med SO API. Den ' använder inga rutter utom / användare, så du ' ser i princip alla implementerade funktioner i den skärmdumpen; det var bara för att se hur svårt det skulle vara
  • @George Jag lade det på github

Svar

Unix-filsystem implementeras traditionellt i kärnan. FUSE tillåter att filsystem implementeras av ett användarprogram.

In-kernel-filsystem är bättre lämpade för huvudfilsystem för program och data:

  • De kan användas på startmedia (programmet som implementerar ett FUSE-filsystem måste laddas från någonstans).
  • De är mer robusta, eftersom de inte vinner gå bort på grund av att en process kraschar eller dödas av misstag.
  • De är något snabbare.

FUSE-filsystem har andra fördelar, mestadels kring deras flexibilitet:

  • De kan laddas och monteras av vanliga användare, så de är lämpliga för filsystem som användare tenderar att montera själva: för nätverksåtkomst, för att gå igenom arkivfiler, för flyttbara media, etc. .
  • Om en FUSE-filsystemdrivrutin kraschar, kommer den inte att få panik för din kärna: du kommer inte se något värre än I / O-fel i applikationer som har åtkomst till filsystemet.
  • De kan programmeras mycket snabbt; det finns FUSE-bindningar för många skriptspråk där en användbar FUSE-filsystemdrivrutin kan skrivas i några hundra rader kod.
  • De kan distribueras mycket snabbt, både för att det inte finns något behov av administratörsintervention för att installera dem och för att de enkelt kan överföras mellan OS som stöds .
  • Det finns inga licensproblem relaterade till att vara statiskt kopplade till en kärna (detta påverkar zfs ).

Svar

FUSE är egentligen inte ett filsystem i sig utan kod som gör att filsystem kan implementeras som processer istället för kärnmoduler.

En av de mest användbara fördelarna med FUSE är att låta GPL-koden ”mixas” med icke GPL-en. Till exempel Gnu / Linux och ZFS http://zfs-fuse.net/ eller NTFS-3G på många operativsystem som OpenSolaris och * BSD http://www.tuxera.com/community/ntfs-3g-download/

Den största nackdelen är prestandapåverkan jämfört med inbyggda (kärn) drivrutiner.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *