Vím, že některé souborové systémy se prezentují prostřednictvím Fuse, a přemýšlel jsem o výhodách a nevýhodách tohoto přístupu.

Odpověď

Nejsem pozitivní, pokud máte na mysli skutečné souborové systémy na disku nebo jakýkoli souborový systém. Nikdy jsem neviděl, aby normální souborový systém používal FUSE, i když to předpokládám “ s je to možné; hlavní výhodou FUSE je to, že vám umožňuje představit něco aplikacím (nebo uživateli), které vypadají jako souborový systém, ale ve skutečnosti jen volají funkce v rámci vaší aplikace, když se uživatel pokusí dělat věci, jako je seznam souborů v adresáři nebo vytvořte nový soubor. Plan9 je dobře známý tím, že se snaží zpřístupnit vše prostřednictvím souborového systému, a /proc pseudo -filesystem pochází z nich; FUSE je způsob, jak mohou aplikace tento vzor snadno sledovat.

Například zde je snímek (velmi nevýrazného) souborového systému FUSE, který umožňuje přístup k datům SE stránek:

Screenshot systému souborů FUSE v akci

Přirozeně žádný z těchto souborů ve skutečnosti neexistuje; když ls požádal o seznam souborů v adresáři FUSE volal funkci v mém programu, který na tento web požádal API o načtení informací o uživateli 73 (mě); cat pokus o čtení z display_name a website_url zavolal více funkcí, které vrátily data z mezipaměti paměť, aniž by na disku skutečně něco existovalo

Komentáře

  • Existují FUSE implementace FAT , NTFS , iso9660 , ext2 a další .
  • Výkonné souborové systémy najdete implementované v pojistkách: LessFS, GlusterFS, MooseFS . Google ' s GFS (nikoli POSIX) běží také v uživatelském prostoru.
  • Kde jste tuto aplikaci našli?!?!
  • @George Napsal jsem to, když jsem si hrál s SO API. Nepoužívá ' žádné cesty kromě / users, takže ' v podstatě vidíte všechny implementované funkce na tomto snímku obrazovky; bylo to jen proto, abych viděl, jak těžké to bude
  • @George dal jsem to na github

Odpověď

Souborové systémy Unix jsou tradičně implementovány v jádře. FUSE umožňuje implementaci souborových systémů pomocí uživatelského programu.

Systémy v jádře jsou vhodnější pro hlavní souborové systémy pro programy a data:

  • Mohou být použity na zaváděcím médiu (program implementující souborový systém FUSE musí být načten odkudkoli).
  • Jsou „robustnější, protože nevyhrají“ odejít kvůli havárii procesu nebo omylem zabitému.
  • Jsou o něco rychlejší.

Systémy souborů FUSE mají další výhody, většinou se točí kolem jejich flexibility:

  • Mohou je načíst a připojit běžní uživatelé, takže jsou vhodné pro souborové systémy, které mají uživatelé tendenci připojovat sami: pro přístup k síti, pro procházení archivními soubory, pro vyměnitelná média atd. .
  • Pokud dojde ke zhroucení ovladače souborového systému FUSE, nezkroutí to vaše jádro: neuvidíte nic horšího než chyby I / O v aplikacích, které přistupovaly k souborovému systému.
  • lze naprogramovat velmi rychle; vazby FUSE pro mnoho skriptovacích jazyků, kde lze užitečný ovladač systému souborů FUSE napsat do několika stovek řádků kódu.
  • Mohou být nasazeny velmi rychle, jednak proto, že pro jejich instalaci není nutný zásah administrátora, jednak proto, že je lze snadno přenést mezi podporovanými operačními systémy .
  • Neexistují žádné problémy s licencí související se statickým propojením s jádrem (ovlivňuje to zfs ).

Odpověď

FUSE ve skutečnosti není souborový systém sám o sobě, ale kód, který umožňuje implementaci souborových systémů jako procesů namísto modulů jádra.

Jednou z nejužitečnějších výhod FUSE je umožnit „mixování“ kódu GPL s jiným než GPL. Například Gnu / Linux a ZFS http://zfs-fuse.net/ nebo NTFS-3G v mnoha operačních systémech, jako je OpenSolaris a * BSD http://www.tuxera.com/community/ntfs-3g-download/

Hlavní nevýhodou je dopad na výkon ve srovnání s nativními (jádrovými) ovladači.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *