Tudom, hogy egyes fájlrendszerek a Fuse révén mutatják be magukat, és kíváncsi voltam ennek a megközelítésnek az előnyeire és hátrányaira.
Válasz
Nem vagyok pozitív, ha valódi, lemezen lévő fájlrendszerre vagy bármilyen fájlrendszerre gondolsz. Soha nem láttam, hogy egy normál fájlrendszer FUSE-t használna, bár feltételezem, hogy ” lehetséges; a FUSE legfőbb előnye, hogy lehetővé teszi, hogy valamit bemutasson az alkalmazásoknak (vagy a felhasználónak), ami fájlrendszerre hasonlít, de valójában csak az alkalmazáson belüli funkciókat hívja meg, amikor a felhasználó megpróbál olyan dolgokat végrehajtani, mint a fájlok felsorolása egy könyvtárba vagy hozzon létre egy új fájlt. A Plan9 ismert arról, hogy mindent megpróbál a fájlrendszeren keresztül hozzáférhetővé tenni, és a /proc
ál -fájlrendszer tőlük származik; A FUSE segítségével az alkalmazások könnyen követhetik ezt a mintát.
Például itt látható egy (nagyon jellegtelen) FUSE fájlrendszer képernyőképe, amely hozzáférést biztosít az SE webhely adataihoz:
Természetesen egyik fájl sem létezik; amikor ls
a FUSE könyvtár fájljainak listáját kérte, a programomban meghívott egy függvényt, amely API-t kért erre a webhelyre, hogy információkat töltsön be a 73 (me) felhasználóról; cat
olvasni próbál a display_name
és website_url
fájlokból, amelyek további funkciókat hívtak meg, amelyek a memória, bármi tényleges létezés nélkül a lemezen.
Megjegyzések
- A FAT FUSE megvalósításai léteznek , NTFS , iso9660 , ext2 , és további .
- Megtalálja a biztosítékban megvalósított nagy teljesítményű fájlrendszereket: LessFS, GlusterFS, MooseFS . A Google ' s GFS (nem POSIX) szintén a felhasználói térben fut.
- Hol találta meg azt az alkalmazást?!?!
- @George Akkor írtam, amikor a SO API-val kavarogtam. ' nem használ semmilyen útvonalat, kivéve a / felhasználókat, tehát ' alapvetően az összes megvalósított funkciót látja az adott képernyőképen; csak látni kellett, milyen nehéz lesz
- @George feltettem github
Válasz
A kernelben hagyományosan a Unix fájlrendszereket valósítják meg. A FUSE lehetővé teszi a fájlrendszerek felhasználói program általi megvalósítását.
A rendszermag fájlrendszerei jobban megfelelnek a programok és adatok fő fájlrendszereinek:
- Indító adathordozókon használhatók (a FUSE fájlrendszert megvalósító programot valahonnan be kell tölteni).
- Robusztusabbak, mivel nem nyertek t elmúlik egy folyamat összeomlása vagy tévedés útján történő megölése miatt.
- Ezek valamivel gyorsabbak.
A FUSE fájlrendszereknek más előnyei is vannak, főleg a rugalmasságuk körül forogva:
- Közönséges felhasználók betölthetik és felcsatolhatják őket, így kényelmesek azoknak a fájlrendszereknek a számára, amelyeket a felhasználók általában maguk telepítenek: hálózati hozzáféréshez, archív fájlok áttekintéséhez, cserélhető adathordozókhoz stb. .
- Ha egy FUSE fájlrendszer-illesztőprogram összeomlik, az nem fogja pánikba tenni a kernelt: semmi rosszabbat nem fog látni, mint az I / O hibákat azokban az alkalmazásokban, amelyek hozzáfértek a fájlrendszerhez.
- Ők nagyon gyorsan beprogramozható; sok szkriptnyelvhez vannak FUSE összerendelések , ahol egy hasznos FUSE fájlrendszer-illesztőprogram néhány száz kódsorban írható.
- Tudnak nagyon gyorsan telepíthetők, mind azért, mert nincs szükség rendszergazdai beavatkozásra a telepítésükhöz, másrészt azért, mert könnyen át lehet őket hordozni támogatott operációs rendszerek között .
- A kernellel való statikus összekapcsoláshoz nincsenek licencelési problémák (ez a zfs fájlt érinti).
Válasz
A FUSE nem önmagában fájlrendszer, hanem olyan kód, amely lehetővé teszi a fájlrendszerek kernelmodulok helyett folyamatként történő megvalósítását.
A FUSE egyik leghasznosabb előnye, hogy lehetővé teszi a GPL kód keverését a nem GPL kóddal. Például Gnu / Linux és ZFS http://zfs-fuse.net/ vagy NTFS-3G számos operációs rendszeren, például az OpenSolaris és a * BSD http://www.tuxera.com/community/ntfs-3g-download/
A fő hátrány a teljesítmény hatása a natív (kernel) meghajtókhoz képest.