Wprowadzenie do FUSE

Transkrypt

Wprowadzenie do FUSE
Wprowadzenie do FUSE
Zbigniew Jarosik
[email protected]
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
System (OWFS)
SSHFS
EncFS
Bluetooth File
System
RelFS (databases)
CvsFS
Siefs
●
●
●
●
●
●
●
●
●
BloggerFS
ClamFS
Ext2fuse
FatFuse
Gitfs
Mp3fs
CryptoFS
FuseCompress
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

Podobne dokumenty