Wiem, że niektóre systemy plików prezentują się za pośrednictwem Fuse i zastanawiałem się nad zaletami i wadami tego podejścia.
źródło
Wiem, że niektóre systemy plików prezentują się za pośrednictwem Fuse i zastanawiałem się nad zaletami i wadami tego podejścia.
Nie jestem pewien, czy masz na myśli prawdziwe systemy plików na dysku lub dowolny system plików. Nigdy nie widziałem, aby normalny system plików korzystał z FUSE, chociaż przypuszczam, że jest to możliwe; główną zaletą FUSE jest to, że pozwala prezentować aplikacjom (lub użytkownikowi) coś, co wygląda jak system plików, ale tak naprawdę wywołuje funkcje w aplikacji, gdy użytkownik próbuje wykonać takie czynności, jak lista plików w katalogu lub utworzenie nowego plik. Plan9 jest dobrze znany z tego, że próbuje udostępnić wszystko poprzez system plików, a /proc
pseudo-system pochodzi z nich; BEZPIECZNIK to sposób, w jaki aplikacje mogą łatwo podążać za tym wzorem
Na przykład, oto zrzut ekranu (bardzo pozbawionego funkcji) systemu plików FUSE, który zapewnia dostęp do danych witryny SE:
Oczywiście żaden z tych plików nie istnieje; kiedy ls
poprosił o listę plików w katalogu o nazwie bezpiecznik funkcją w moim programie, który zrobił żądanie API do tej strony do informacji o obciążeniu 73 użytkownik (me); cat
próba odczytu display_name
i website_url
wywołanie większej liczby funkcji, które zwróciły buforowane dane z pamięci, bez niczego faktycznie istniejącego na dysku
Systemy plików Unix są tradycyjnie implementowane w jądrze. FUSE pozwala na implementację systemów plików przez program użytkownika.
Wewnętrzne systemy plików są lepiej dostosowane do głównych systemów plików programów i danych:
Systemy plików FUSE mają inne zalety, głównie związane z ich elastycznością:
źródło
FUSE nie jest tak naprawdę systemem plików jako takim, ale kodem, który pozwala na implementację systemów plików jako procesów zamiast modułów jądra.
Jedną z najbardziej przydatnych zalet FUSE jest umożliwienie „mieszania” kodu GPL z kodem innym niż GPL. Na przykład Gnu / Linux i ZFS http://zfs-fuse.net/ lub NTFS-3G w wielu systemach operacyjnych, takich jak OpenSolaris i * BSD http://www.tuxera.com/community/ntfs-3g-download/
Główną wadą jest wpływ na wydajność w porównaniu do sterowników natywnych (jądra).
źródło