Ich weiß, dass sich einige Dateisysteme über Fuse präsentieren, und ich habe mich über die Vor- und Nachteile dieses Ansatzes Gedanken gemacht.
quelle
Ich weiß, dass sich einige Dateisysteme über Fuse präsentieren, und ich habe mich über die Vor- und Nachteile dieses Ansatzes Gedanken gemacht.
Ich bin nicht sicher, ob Sie echte Dateisysteme auf der Festplatte oder ein anderes Dateisystem meinen. Ich habe noch nie gesehen, dass ein normales Dateisystem FUSE verwendet, obwohl ich annehme, dass dies möglich ist. Der Hauptvorteil von FUSE besteht darin, dass Sie Anwendungen (oder dem Benutzer) etwas präsentieren können, das wie ein Dateisystem aussieht, aber tatsächlich nur Funktionen in Ihrer Anwendung aufruft, wenn der Benutzer versucht, die Dateien in einem Verzeichnis aufzulisten oder ein neues zu erstellen Datei. Plan9 ist bekannt dafür, dass versucht wird, alles über das Dateisystem zugänglich zu machen, und das /proc
Pseudodateisystem stammt von ihnen. Mit FUSE können Anwendungen diesem Muster auf einfache Weise folgen
Beispiel: Hier ist ein Screenshot eines (sehr übersichtlichen) FUSE-Dateisystems, das den Zugriff auf SE-Site-Daten ermöglicht:
Natürlich existiert keine dieser Dateien tatsächlich; Wenn Sie ls
nach der Liste der Dateien im Verzeichnis gefragt werden, ruft FUSE in meinem Programm eine Funktion auf, die eine API-Anfrage an diese Site gestellt hat, um Informationen über Benutzer 73 (ich) zu laden. cat
Es wurde versucht, weitere Funktionen zu lesen display_name
und website_url
aufzurufen, die die zwischengespeicherten Daten aus dem Speicher zurückgaben, ohne dass tatsächlich etwas auf der Festplatte vorhanden war
Unix-Dateisysteme werden traditionell im Kernel implementiert. Mit FUSE können Dateisysteme von einem Anwenderprogramm implementiert werden.
Kernelinterne Dateisysteme eignen sich besser für Hauptdateisysteme für Programme und Daten:
FUSE-Dateisysteme haben andere Vorteile, die sich hauptsächlich auf ihre Flexibilität beziehen:
quelle
FUSE ist an sich kein Dateisystem, sondern Code, mit dem Dateisysteme als Prozesse anstelle von Kernelmodulen implementiert werden können.
Einer der nützlichsten Vorteile von FUSE besteht darin, dass sich GPL-Code mit nicht-GPL-Code "mischen" kann. Zum Beispiel Gnu / Linux und ZFS http://zfs-fuse.net/ oder NTFS-3G unter vielen Betriebssystemen wie OpenSolaris und * BSD http://www.tuxera.com/community/ntfs-3g-download/
Der Hauptnachteil ist die Beeinträchtigung der Leistung im Vergleich zu nativen (Kernel-) Treibern.
quelle