Ich habe jetzt schon öfters von FUSE gelesen und weiss, das damit Dateisysteme nicht im Kernelspace sondern im Userspace ablaufen. So. Hier endet mein Horizont.
Ich wäre euch sehr dankbar wenn mir irgendwer, auf einfach, sagen könnte was ich mir darunter vorstellen muss.
Ist der Treiber nicht mehr im Kernel sebst? Macht FUSE eine Schnittstelle zwischen Kernel und Treiber? Wenn ja, funktioniert diese Schnittstelle nur für Dateisysteme? Kann man FUSE auch für das Dateisystems des root directorys verwenden? Was sind die Nachteile von FUSE? Bekomme ich als Heimanwender davon überhaupt was zu sehen?
Ich glaub jetzt hab ich alle Fragen gestellt die mir momentan dazu einfallen und ich würde mich freuen, wenn mir irgendjemand ein wenig auf die Sprünge helfen könnte.
Fuse besteht aus einem Kernelmodul einer Bibliothek und ein paar Progrämmchen.
Das Kernelmodul stellt alle nötigen funktionen zur verfügung, um Programmen es zu ermöglichen wie Dateisysteme zu eragieren. Wenn man ein programm startet, welches Fuse verwendet, so werden alle anfragen die auf dem mountpoint erfolchen (lesen schrigen, stat, mkdir, touch, etc.) an das Programm weitergeleitet, welches passend reagieren muß.
Die Voreile: - auch einfache User können Dateisysteme, ohne irgendwelche subit/sudo/rechte, mounten (sofern das dateisystem als als Fuseimplementation vorliegt.) - Es können Programmierstrukturen verwendet werden, die im Kernel selber nicht erlaubt sind (Rekusionen, Rückgriff auf andere Biblitheken usw.) - man kann zweckbezogene Dateisysteme programmieren (z.B. ein Dateisystem, welches die aktuellen Zustand einer Datenbank repräsentiert) - Der Kernel ist sicher wenn das Fuse-Dateisystem abstürzt. (vorausgesetzt, das Problem liegt nicht am Kernelmodul) - man ist nicht auf C angewiesen um ein Dateisystem zu Programmieren (man kann auch C#, Java, Ruby, Python, Perl, C++ verwenden)
die Nachteile: - Es ist langsamer als ein Kernelmodul - Es funktioniert nur wenn Fuse im Kernel ist. - Aus Sicherheit sind gewisse Aktionen nicht erlaubt. - die Anzahl der zu nutzenden Dateisysteme ist beschränkt (ich galube Kernelbedingt sind es 24) - Man braucht das Dateisystemprogramm um auf daten zurückgreifen zu können. Ein mit fuse erstelletes Dateisystem ist nur bedingt inerportabel,
Das Modul ist nur dazu gedacht Dateisysteme zu Programmieren, zu nichts anderem.
Ich habe jetzt schon öfters von FUSE gelesen und weiss, das damit Dateisysteme nicht im Kernelspace sondern im Userspace ablaufen. So. Hier endet mein Horizont.
Ich wäre euch sehr dankbar wenn mir irgendwer, auf einfach, sagen könnte was ich mir darunter vorstellen muss.
Ist der Treiber nicht mehr im Kernel sebst?
Macht FUSE eine Schnittstelle zwischen Kernel und Treiber?
Wenn ja, funktioniert diese Schnittstelle nur für Dateisysteme?
Kann man FUSE auch für das Dateisystems des root directorys verwenden?
Was sind die Nachteile von FUSE?
Bekomme ich als Heimanwender davon überhaupt was zu sehen?
Ich glaub jetzt hab ich alle Fragen gestellt die mir momentan dazu einfallen und ich würde mich freuen, wenn mir irgendjemand ein wenig auf die Sprünge helfen könnte.
Vielen Dank
Das Kernelmodul stellt alle nötigen funktionen zur verfügung, um Programmen es zu ermöglichen wie Dateisysteme zu eragieren. Wenn man ein programm startet, welches Fuse verwendet, so werden alle anfragen die auf dem mountpoint erfolchen (lesen schrigen, stat, mkdir, touch, etc.) an das Programm weitergeleitet, welches passend reagieren muß.
Die Voreile:
- auch einfache User können Dateisysteme, ohne irgendwelche subit/sudo/rechte, mounten (sofern das dateisystem als als Fuseimplementation vorliegt.)
- Es können Programmierstrukturen verwendet werden, die im Kernel selber nicht erlaubt sind (Rekusionen, Rückgriff auf andere Biblitheken usw.)
- man kann zweckbezogene Dateisysteme programmieren (z.B. ein Dateisystem, welches die aktuellen Zustand einer Datenbank repräsentiert)
- Der Kernel ist sicher wenn das Fuse-Dateisystem abstürzt. (vorausgesetzt, das Problem liegt nicht am Kernelmodul)
- man ist nicht auf C angewiesen um ein Dateisystem zu Programmieren (man kann auch C#, Java, Ruby, Python, Perl, C++ verwenden)
die Nachteile:
- Es ist langsamer als ein Kernelmodul
- Es funktioniert nur wenn Fuse im Kernel ist.
- Aus Sicherheit sind gewisse Aktionen nicht erlaubt.
- die Anzahl der zu nutzenden Dateisysteme ist beschränkt (ich galube Kernelbedingt sind es 24)
- Man braucht das Dateisystemprogramm um auf daten zurückgreifen zu können. Ein mit fuse erstelletes Dateisystem ist nur bedingt inerportabel,
Das Modul ist nur dazu gedacht Dateisysteme zu Programmieren, zu nichts anderem.