Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Filesystem in Userspace

FUSE (Filesystem in Userspace) ist ein Kernel-Modul für Unix-Systeme, das es ermöglicht, Dateisystem-Treiber aus dem Kernel-Mode in den User-Mode zu …

Inhalt5 Abschnitte
  1. 1. Grundidee und Funktionsweise
  2. 2. Zweck und Vorteile
  3. 3. Einsatzbereiche
  4. 4. Entwicklungsgeschichte
  5. 5. Beispiele für Treiber

Grundidee und Funktionsweise

FUSE steht für „Filesystem in Userspace“. Es ist ein Kernel-Modul für Unix-Systeme, mit dem Dateisystem-Treiber aus dem Kernel-Mode in den User-Mode verlagert werden können. Der Kernel-Mode ist der besonders privilegierte Bereich des Betriebssystems; der User-Mode ist der Bereich normaler Anwendungsprogramme.

Bei FUSE gibt es zwar ein Kernel-Modul, aber die eigentliche Programmlogik läuft im Userspace, etwa über libfuse. Ein Programm wie ls greift scheinbar wie auf ein normales Dateisystem zu. Das Kernelmodul leitet den Zugriff dann an die im Userspace laufende Logik weiter. Über das VFS, das virtuelle Dateisystem, wird FUSE in die normale Dateisystem-Schnittstelle eingebunden.

Zweck und Vorteile

FUSE entstand aus der Notwendigkeit, Benutzern mit Standardrechten das Einbinden, also Mounten, von Dateisystemen zu ermöglichen. Früher wurden Dateisysteme meist auf fest eingebauten Festplatten angelegt und vom Administrator oder über ein Administratorenkonto mit passenden Treibern verfügbar gemacht. Mit mobilen Massenspeichern wie USB-Sticks oder externen Datensicherungssystemen wurde es wichtiger, dass auch Nutzer ohne Administratorenrechte Geräte installieren und verwalten können.

FUSE selbst wird mit administrativen Rechten installiert. Danach stellt es nichtprivilegierten Benutzern mit Standardrechten entsprechende Funktionen zur Verfügung. FUSE ist dabei das laufwerksspezifische Modul für die angeschlossene Hardware. Für das darauf enthaltene Dateisystem wird zusätzlich der passende dateisystemspezifische Treiber benötigt.

Ein Vorteil ist, dass FUSE-Dateisysteme wie normale Anwendungsprogramme im Benutzermodus laufen. Entwickler müssen sich dadurch weniger mit den Beschränkungen und Besonderheiten des Kernel-Modes beschäftigen. FUSE-Dateisystemtreiber sind deshalb erheblich einfacher zu entwickeln und zu warten.

Einsatzbereiche

Mit FUSE lassen sich unter GNU/Linux, FreeBSD, OpenSolaris, Mac OS X oder Android viele existierende Dateisysteme einbinden, zum Beispiel NTFS oder UDF für DVDs. Ein besonders bekannter Treiber ist NTFS-3G, der Zugriff auf die weit verbreiteten NTFS-Dateisysteme von Windows ermöglicht.

Durch FUSE entstanden viele Treiber, die nicht nur klassische Speichermedien zugänglich machen. Sie können auch andere Datenstrukturen so darstellen, als wären sie ein navigierbares Dateisystem. Dadurch können zum Beispiel entfernte Dienste, Cloud-Speicher, Datenbanken oder spezielle Geräte über Dateisystemzugriffe nutzbar werden.

Entwicklungsgeschichte

Das FUSE-Projekt wurde am 15. Oktober 2004 auf SourceForge gegründet. Es entstand als Variante aus dem SHFS-Projekt. Seit dem 15. Januar 2005 war FUSE Teil des mm-Kernels. Am 13. September 2005 wurde es in den offiziellen Linux-Kernel 2.6.14 aufgenommen.

Durch eine Re-Implementation unter der ISC-Lizenz, veröffentlicht im März 2013, wurde die Einbettung in OpenBSD erleichtert. Diese Einbettung geschah im Juni 2013.

Seit Linux-Kernel 2.6.31 und NetBSD 5.0 ist CUSE ein integrierter Treiber innerhalb von FUSE. CUSE steht für „Character Devices in Userspace“ und ermöglicht die Arbeit mit zeichenorientierten Geräten im Userspace.

Ein ähnliches Projekt war das Linux Userland Filesystem, kurz LUFS. Es verfolgte ähnliche Ziele, verlor aber mit der Einführung von FUSE an Bedeutung und wurde nicht mehr aktiv weiterentwickelt.

Beispiele für Treiber

Die Liste bekannter FUSE-Dateisysteme und -Treiber zeigt die Breite der Einsatzmöglichkeiten. NTFS-3G ermöglicht Schreib- und Lesezugriff auf NTFS. ntfsmount erlaubt das Mounten von NTFS-Partitionen mit Schreibunterstützung aus dem Linux-ntfs-Projekt. Captive ermöglichte sicheren Schreibzugriff auf NTFS-Partitionen durch Einbindung des originalen Windows-Treibers ntfs.sys über eine Kompatibilitätsschicht; die Entwicklung ist eingestellt.

Für Netzwerk- und Cloud-Dienste gibt es zum Beispiel SSHFS, mit dem ein Laufwerk über SSH gemountet werden kann. s3fs ermöglicht das Mounten von Amazon Web Services Object Storage, also Amazon S3. CloudFusion bindet Dropbox, Sugarsync, Amazon S3, Google Storage und WebDAV-Accounts ein. davfs2, fusedav und wdfs erlauben Zugriff auf WebDAV-Ressourcen; davfs2 kann sich außerdem mit Client-Zertifikaten authentifizieren.

Für Verschlüsselung nennt der Artikel CryFS, ein verschlüsseltes Dateisystem für Dropbox oder andere Cloud-Anbieter, sowie EncFS, ein verschlüsseltes pass-through-Dateisystem ähnlich dem CFS. Weitere Beispiele sind exFAT zum Lesen und Schreiben auf Flash-Medien mit exFAT, curlftpfs zum Einbinden von FTP-Server-Daten, gPhotoFS zum Einbinden der Bilderschnittstelle von Digitalkameras als Massenspeicher und LoggedFS zum Protokollieren von Operationen im Dateisystem.

FUSE kann auch ungewöhnliche Datenquellen als Dateisystem darstellen: GmailFS nutzt Google-Mail-Postfächer als Dateiablage, mysqlfs speichert Daten in einer MySQL-Datenbank, WikipediaFS erlaubt das Arbeiten mit Artikeln einer MediaWiki-Installation wie mit normalen Textdateien. ZFS on FUSE erlaubte Zugriff auf das 128-bit-Dateisystem ZFS von Sun; wegen der Veröffentlichung von ZFS unter der CDDL war keine direkte Integration in den Linux-Kernel möglich. Die Portierung wurde im Rahmen des Google Summer of Code gesponsert; die Entwicklung ist eingestellt.

Weiterlesen

Virtuelles Dateisystem Ein virtuelles Dateisystem (englisch virtual file system und zudem kurz VFS genannt) ist eine Abstraktionsschicht oberhalb konkreter Dateisysteme. Gerätetreiber Dazu kommuniziert der Treiber auf der einen Seite meist direkt mit dem Gerät und tauscht Steuersignale und Daten mit dem Gerät aus, über den Kommunikationsbus ( … Kernel (Betriebssystem) Ein Kernel (englisch [ˈkɝːnəl], übersetzt Kern), auch Betriebssystemkern (oder verkürzt Systemkern), ist der zentrale Bestandteil eines Betriebssystems. Hardware Unterteilung · Ausgabegeräte (Drucker, Bildschirm, Beamer, Lautsprecher …) · Eingabegeräte (Tastatur, Maus, Joystick …) · Einlesegeräte (Mikrofone, … Microsoft Windows Microsoft Windows (englische Aussprache [ˈmaɪ.kɹoʊ.sɒft ˈwɪn.doʊz]) bzw. Windows ist eine Reihe proprietärer grafischer Betriebssystemfamilien von Microsoft … Digitales Zertifikat Ein digitales Zertifikat (auch Sicherheitszertifikat) ist eine Datenstruktur, die die Zuordnung eines öffentlichen Schlüssels zu einer Identität oder … Secure Shell Secure Shell oder SSH bezeichnet ein kryptographisches Netzwerkprotokoll für den sicheren Betrieb von Netzwerkdiensten über ungesicherte Netzwerke. Wikipedia Wikipedia [ˌvɪkiˈpeːdia] () ist ein gemeinnütziges Projekt zur Erstellung einer freien Enzyklopädie auf Basis des sogenannten Wiki-Prinzips und der freien … ZFS (Dateisystem) ZFS ist ein von Sun Microsystems entwickeltes transaktionales Dateisystem, das zahlreiche Erweiterungen für die Verwendung im Server- und …