Interjú Szeredi Miklóssal, a FUSE szerzőjével

Címkék

FUSE: Filerendszer a felhasználói térben

Andrew Morton tegnap kiadta a 2.6.11-rc1-es kernel első -mm patchét. Az patch egyik újdonsága a FUSE. Ami miatt megakadt rajta a szemem elsősorban az, hogy meglehetősen magyaros volt a szerző neve. Korábban is láttam már a FUSE-t különböző fórumokon, de most, hogy esély van arra, hogy a mainline kernel része legyen jobban felkeltette az érdeklődésemet.

A FUSE szerzője Miklos Szeredi, aki tulajdonképpen Szeredi Miklós és hazánkfia. Mivel keveset tudtam a FUSE-ről úgy gondoltam, hogy a legegyszerűbb az lesz, ha közvetlenül a szerzőt kérdezem vele kapcsolatban. Ma délután írtam egy levelet, és Miklós pár órán belül válaszolt is.

Nézzük mi az a FUSE:``Láttam, hogy a FUSE beolvasztásra került a 2.6.11-rc1-mm1 kernelbe. Pár kérdésem lenne a FUSE-val kapcsolatban, de nem igazán találtam választ rájuk sem a http://www.szeredi.hu-n, sem a http://fuse.sourceforge.net/-en. Remélem, Tőled választ kapok a kérdéseimre :-)

Amennyit én tudok a FUSE-ről, az a következő:

A FUSE (Filesystem in USErspace) segítségével képesek vagyunk felhasználói térben filerendszert megvalósítani. A FUSE kommunikációs felülete egyszerű, hatékony, biztonságos és emellett támogatja a szokásos filerendszer szemantikákat.

Eredetileg az AVFS projekthez készült, de önálló projektté nőtte ki magát. A megszületése óta számos felhasználói térben megvalósított filerendszer használja a már FUSE-t.

Szóval a kérdések:''

trey: A klasszikus filerendszerek általában kernel térben vannak megvalósítva. Mi célból implementál valaki filerendszert a felhasználói térbe (user space)?

Szeredi Miklós: A kernel programozás több szempontból nehezebb, mint a közönséges (user space) programok írása. Például egy hiba a filerendszerünkben akár az egész rendszer stabilitására kihathat. Nehezebb nyomonkövetni a kernel futását, és a C nyelven kívül más nem használható. Ezek a
hátrányok mind nincsenek, ha userspace-ben valósítjuk meg a filerendszerünket.

Persze vannak hátulütői is a userspace megoldásnak: például
valamelyest lassul a file műveletek sebessége.

trey: Milyen lehetőségek vannak a FUSE-ban a felhasználók szemszögéből? Magyarul mire lehet felhasználni?

Szeredi Miklós: Van mindenféle: titkosított filerendszerek, a GMail-t mint tárhelyet kihasználó filerendszer, van amelyik Siemens telefonok adatait teszi elérhetővé, stb...

trey: Milyen korlátai vannak a FUSE-nak? Mi az amire a FUSE nem használható, és amire a kernel space filrendszereket kell használni?

Szeredi Miklós: Jelenleg a FUSE nem támogatja a memória meppelés (mmap) egy fajtáját (konkrétan shared writable mapping-et). Ezt azonban csak nagyon kevés, speciális program használja. Előbb utóbb majd felmerül az igény, hogy ez is működjön, de egyelőre nélkülözni kell.

Amúgy a határvonal nem ilyen éles. Vannak filerendszerek amik sokkal hatékonyabban megvalósíthatók kernelben (ilyenek a hagyományos, diszk alapú filerendszerek), és vannak amiket sokkal könnyebb userspace-ben megírni (pl. egy zip file-okat kezelő filerendszer)

trey: Mennyire stabil a FUSE? Használható már akár éles környezetben is?

Szeredi Miklós: Attól függ mennyire éles. Atomreaktorok vezérlésére például nem ajánlanám. Amúgy viszonylag stabil. Persze hibák mindig vannak és lesznek is. Jelenleg a legstabilabb verzió az 1.4-es, de ez már elég régi és sok minden hiányzik belőle. A legújabb a 2.2-pre3, ebben
azért még találunk problémákat.

trey: Miben más a FUSE, mit például a LUFS, amelynek első ránézésre hasonló a szerepe?

Szeredi Miklós: Valóban nagyon hasonló a két rendszer. A "lufis" névre hallgató kis programocska (FUSE honlapjáról letölthető) segítségével akár egy LUFS filerendszert is lehet FUSE kernellel futtatni.

A legfőbb különbség a filerendszerek futtatási környezetében rejlik. A LUFS filerendszerek dinamikus könyvtár (shared object) formájúak, miket egy keretprogram tölt be és hív meg minden egyes műveletre.

A FUSE esetén a filerendszer maga egy futtatható program, ami azonban használ egy könyvtárat (libfuse) a kernellel való kommunikáció megkönnyítésére.

trey: Olvastam a filerendszerek közt egy SMB for FUSE névre hallgató FS-ről. A leírása azt mondja, hogy hogy az SMB for FUSE-val probléma nélkül böngészhetem a (windows) hálózatot úgy, mintha az a saját filerendszeremen lenne. Körülbelül ezt tudom megvalósítani a kernel-beli smbfs és smbmount felhasználásával is. Miért jobb nekem, ha ezt a FUSE segítségével valósítom meg?

Szeredi Miklós: Pontosan nem tudom, mivel még nem probáltam (szerencsére nagyon keveset kell Windows környezettel érintkeznem). De valahogy úgy képzelem, hogy az SMB for FUSE a hálózaton található gépek feltérképezését könnyíti meg.

trey: Hiányoltam a filerendszerek közül az SSH-n vagy FTP-n keresztüli távoli filerendszerek mount-olásának lehetőségét (mint például a LUFS SSHFS vagy FTPFS). Ilyen létezik a FUSE-hoz is?

Szeredi Miklós: Egyrészt lehet a fent említett "lufis" megoldást alkalmazni. Ez azonban kicsit nehézkes, és már van natív SSHFS (FUSE honlapjáról letölthető, és 2.2-es FUSE verziót igényel).

trey: Miért pont FUSE a neve? Ha jól tudom, ezen a néven fut már másik projekt is?

Szeredi Miklós: Nagyon okos kis rövidítés: Filesystem in USErspace. De a névválasztás nem az erősségem, és ez a név már sok fejfájást okozott.

Köszönöm szépen Szeredi Miklósnak a gyors válaszokat. Mint Miklós írta, ez volt az első interjúja, így külön örömmel tölt el, hogy a HUP kérdezhette először...

A FUSE-val egyébként a napokban foglakozott a KernelTrap is itt.

Hozzászólások

Frey stílusban:

Csak önöknek a világ nagyobb magyar hekkere - csak itt, csak most - a világ szeme láttára csak önöknek leggyorsabban feltöri a legnagyobb világcégek, FBI, NASA és az Amerikai Hadsereg - jól értették az AMERIKAI HADSEREG - által is használt internetet.

:-)

ő az a Szeredi Miki, aki anno leprogramozta a spectemut??? vki?

Mivel --remélem-- Miklós is olvassa a commenteket, ezúton is gratula és további kitartó munkát kívánok! Megéljük vajon, hogy egyszer lesz egy ,,Magyar hackerek a nagyvilágban'' alcímű Frey Tamás műsor is?! :-)

Jah, es azzal fog kezdodni, hogy:

"Kedves XYZ, mint az kozismert, On Magyarorszag egyik legismertedd backere. Mivel szerezte e hirnevet, mi mindent kellett feltornie, hogy eljusson idaig, es hogyhogy vallalni meri a nevet ezek utan? Es miert nincs meg racs mogott ilyen hirhedt bunozo??"

:P

Nekem a GmailFS nagyon tetszik ( screenshot [richard.jones.name])

Kivancsi vagyok, hogy a Google mit fog szolni, ha egy ido utan azt veszi eszre, hogy ugyan nem sokan leveleznek, de a tarteruletek mindenhol 100%-on vannak (persze pr0n-nal, meg egyeb ``privat'' stuffokkal) :-)