Ich weiß, dass sich einige Dateisysteme über Fuse präsentieren, und ich habe mich über die Vor- und Nachteile dieses Ansatzes gewundert.

Antwort

Ich bin nicht positiv, wenn Sie echte Dateisysteme auf der Festplatte oder ein anderes Dateisystem meinen. Ich habe noch nie gesehen, dass ein normales Dateisystem FUSE verwendet, obwohl ich es vermute. “ Der Hauptvorteil von FUSE besteht darin, dass Sie Anwendungen (oder dem Benutzer) etwas präsentieren können, das wie ein Dateisystem aussieht, aber nur Funktionen in Ihrer Anwendung aufruft, wenn der Benutzer versucht, beispielsweise die Dateien in einem Verzeichnis aufzulisten oder Erstellen Sie eine neue Datei. Plan9 ist bekannt dafür, dass versucht wird, alles über das Dateisystem und das Pseudo /proc zugänglich zu machen -filesystem stammt von ihnen; FUSE ist eine Möglichkeit für Anwendungen, diesem Muster leicht zu folgen.

Hier ist beispielsweise ein Screenshot eines (sehr merkwürdigen) FUSE-Dateisystems, das Zugriff auf SE-Site-Daten bietet:

Screenshot des FUSE-Dateisystems in Aktion

Natürlich existiert keine dieser Dateien tatsächlich; als ls nach der Liste der Dateien im Verzeichnis fragte, rief FUSE eine Funktion in meinem Programm auf, die eine API-Anfrage an diese Site richtete, um Informationen über Benutzer 73 (mich) zu laden. cat versucht, aus display_name zu lesen, und website_url hat mehr Funktionen aufgerufen, von denen die zwischengespeicherten Daten zurückgegeben wurden Speicher, ohne dass tatsächlich etwas auf der Festplatte vorhanden ist

Kommentare

  • Es gibt FUSE-Implementierungen von FAT , NTFS , iso9660 , ext2 und more .
  • In Fuse sind Hochleistungsdateisysteme implementiert: LessFS, GlusterFS, MooseFS . Das GFS von Google ' (nicht POSIX) wird auch im Benutzerbereich ausgeführt.
  • Wo haben Sie diese App gefunden?!?!
  • @George Ich habe es geschrieben, als ich mit der SO-API herumgespielt habe. ' verwendet keine Routen außer / users, sodass ' im Grunde alle implementierten Funktionen in diesem Screenshot angezeigt werden. Es war nur zu sehen, wie schwer es sein würde.
  • @George Ich legte es auf github

Antwort

Unix-Dateisysteme werden traditionell im Kernel implementiert. FUSE ermöglicht die Implementierung von Dateisystemen durch ein Benutzerprogramm.

Kernel-Dateisysteme eignen sich besser für Hauptdateisysteme für Programme und Daten:

  • Sie können auf Boot-Medien verwendet werden (das Programm, das ein FUSE-Dateisystem implementiert, muss von irgendwoher geladen werden).
  • Sie sind „robuster, da sie nicht“ Gehen Sie weg, weil ein Prozess abstürzt oder versehentlich getötet wird.
  • Sie sind etwas schneller.

FUSE-Dateisysteme haben andere Vorteile, die sich hauptsächlich auf ihre Flexibilität beziehen:

  • Sie können von normalen Benutzern geladen und bereitgestellt werden, sodass sie für Dateisysteme geeignet sind, die Benutzer normalerweise selbst bereitstellen: für den Netzwerkzugriff, zum Durchsuchen von Archivdateien, für Wechselmedien usw. .
  • Wenn ein FUSE-Dateisystemtreiber abstürzt, gerät Ihr Kernel nicht in Panik: In Anwendungen, die auf das Dateisystem zugegriffen haben, werden nur E / A-Fehler angezeigt.
  • Sie kann sehr schnell programmiert werden; Es gibt FUSE-Bindungen für viele Skriptsprachen, in denen ein nützlicher FUSE-Dateisystemtreiber in einigen hundert Codezeilen geschrieben werden kann.
  • Sie können Sie können sehr schnell bereitgestellt werden, da keine Administratorinterventionen erforderlich sind, um sie zu installieren, und weil sie problemlos zwischen unterstützten Betriebssystemen portiert werden können.
  • Es gibt keine Lizenzprobleme im Zusammenhang mit der statischen Verknüpfung mit einem Kernel (dies betrifft zfs ).

Antwort

FUSE ist nicht wirklich ein Dateisystem an sich, sondern Code, mit dem Dateisysteme als Prozesse anstelle von Kernelmodulen implementiert werden können.

Einer der nützlichsten Vorteile von FUSE besteht darin, dass GPL-Code mit Nicht-GPL-Code „gemischt“ werden kann. Beispielsweise 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 Auswirkung auf die Leistung im Vergleich zu nativen (Kernel-) Treibern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.