You are on page 1of 10

Wprowadzenie do FUSE

Zbigniew Jarosik
zibi@nora.pl
http://zibi.nora.pl/
Filesystem in Linux Space
● Kod bezpośrednio w jądrze
● Kod ładowany w postaci modułu
● Pracują w trybie jądra
● Coś się sypnie – sprowadzają na manowce
cały system – ukochane Kernel panic.
● Duża szybkość działania
● Trudny rozwój
● Trudne zarządzanie generowanym
obciążeniem
● Dobre dla dojrzałych systemów
● Trudno wprowadzalne do systemu
Fajnie Używany System
Embedowania?
● Przydałoby się coś, co pozwoli na kolanie
napisać interfejs np do podmontowania
komórki, nietypowego aparatu, zdalnego fs
np poprzez ssh (bo nie ma nfs, samby,
tunelu...)
● Fajnie byłoby, żeby było proste, łatwe i
wydajne
● Fajnie, aby każdy mógł to sam sobie
uruchomić nawet na Debianie
Juzerspejs, de fajnal frontjer
● FUSE – Filesystem in UserSpacE –
remedium na zło tego świata?

● Prosty, łatwy i przyjemny?

● Stabliny, wydajny?
Tally ho!
● UserSpacE – w przestrzeni użytkownika –
pracuje jako normalna aplikacja
● Można ograniczyć przydzielone zasoby
● Jak się wysypie – unmount albo kill
● Edycja, kompilacja, test – bez rebootu
● Proste API
● Bindings dla C, Pythona, Javy, Ruby...
Co się da!
● Mountowanie
– Nietypowo sformatowanych kart z aparatów
– Swojego home z uczelni dostępnego tylko po
ssh
– NFS nie zabijający systemu po padzie serwera
– Komórki podłączane przez RS232C
– Mirroring w realtime
– Archiwizacja w locie
– Szyfrowanie
– Monitoring
– Baza danych jako pliki...
– A co potrzebne? ;D
Co boli?
● UserSpacE:
– Wydajność? Jaka wydajność?!
– Bezpieczeństwo? Owszem, ale w 2.4 przy
łatanym jądrze
– Uciążliwe zarządzanie uprawnieniami
– Nie ma bindingów dla php ;/
– Nie działa pod coLinuxem
– Więcej grzechów nie pamiętam...
Jak to działa?
Przykłady?
● One Wire File ● BloggerFS
System (OWFS) ● ClamFS
● SSHFS ● Ext2fuse
● EncFS ● FatFuse
● Bluetooth File ● Gitfs
System ● Mp3fs
● RelFS (databases) ● CryptoFS
● CvsFS ● FuseCompress
● Siefs ● ZFS ;D
http://fuse.sourceforge.net/
/wiki/index.php/FileSystems
Przykłady!
● Hello – 2kb kodu w C

● HistFS – 8kb kodu w C

● DistFS – 8kb kodu w Pythonie

You might also like