Filesystem/de

Ein “Dateisystem” ist ein Mittel zum Organisieren von Daten, von denen man erwartet, dass sie nach dem Beenden eines Programms beibehalten werden, durch die Bereitstellung von Verfahren sowohl zum Speichern, Laden und Aktualisieren von Daten, als auch durch das Verwalten des verfügbaren Speicherplatzes auf dem Gerät, das diese enthält.

Linux unterstützt ein paar dutzend Dateisysteme, jedes mit seinen eigenen Vor- und Nachteilen je nach Anwendungsfall.

Flash-Speicher-Dateisysteme
Die folgenden Flash-Speicher-Dateisysteme sind für eingebetteten Flash-Speicher, bekannt als MTDs, konzipiert; sie sind nicht für USB-basierte Flash-Laufwerke, SD-Karten oder andere Arten von entfernbaren Flash-Block-Geräten gedacht.


 * JFFS2 - Journalling Flash File System version 2.
 * YAFFS - Yet Another Flash File System.

Dateisysteme für Festplatten

 * bcachefs - Ein robustes, High-Performance-Dateisystem der nächsten Generation, das CoW (Copy-on-Write), Komprimierung und Verschlüsselung unterstützt.
 * Cramfs - Ein speicher- und platzsparendes komprimiertes Dateisystem, das zufälliges Lesen unterstützt. Es vermeidet die Block-Device-Schicht und ist nützlich für winzige eingebettete Systeme mit sehr engen Speicherbeschränkungen.
 * eCryptfs - Das kryptographische „Enterprise”-Dateisystem für Linux.
 * efivarfs - Ein (U)EFI-Variablen-Dateisystem
 * ext4 - Das Standard-, GPL-lizensierte Journaling-Dateisystem für viele Linuxdistributionen.
 * FAT - Das „Dateizuordnungstabellen“-Dateisystem. Ursprünglich zur Benutzung mit Microsoft Windows entwickelt.
 * exFAT - Extensible File Allocation Table (exFAT) Dateisystem von Microsoft, nativ unterstützt seit Linux 5.7
 * HFS - Hierarchical Filesystem (HFS). Ursprünglich für die Verwendung mit der Macintosh System Software entwickelt, später umbenannt in Mac OS (Classic).
 * HFS+ - Der Nachfolger von HFS, eingeführt in Mac OS 8.1 und Standard-Dateisystem für Mac OS X bis macOS 10.12 Sierra.
 * JFS - Ein GPL-lizensiertes, 64-Bit Journaled File System entwickelt von IBM.
 * Btrfs - Ein Copy-on-Write B⁺-Baum Dateisystem mit erweiterten Eigenschaften (eine komplett Open-Source-lizensierte ZFS-Alternative).
 * NILFS - Eine log-strukturierte Dateisystem-Implementierung für den Linux-Kernel.
 * NTFS - Microsoft Windows' New Technology File System, Windows' Standard-Dateisystem.
 * Aufs - Erweitertes mehrlagiges Vereinigungs-Dateisystem, ehemals bekannt als Another union file system.
 * OverlayFS - Das einzige in den Linux-Kernel eingebaute vereinigungsähnliche Dateisystem.
 * ReiserFS - Version 3 des ReiserFS-Dateisystems.
 * Reiser4 - Version 4 des ReiserFS-Dateisystems. Momentan nicht im Mainline-Linux-Kernel implementiert.
 * SquashFS - Ein komprimiertes, nur lesbares Dateisystem für Linux.
 * UDF Universal Disk Format - z.B. zum Mounten von speziellen .iso-Dateien benötigt.
 * GFS2 - Global File System 2: Ein gemeinsam genutztes Festplattendateisystem. Wird typischerweise in Rechenclustern verwendet.
 * UFS - Das Unix File System-Dateisystem, auch als Berkeley Fast File System bekannt.
 * XFS - Ein GPL-lizensiertes 64-Bit Journaled File System, entwickelt von Silicon Graphics.
 * ZFS - Ein CDDL- (nicht GPL-kompatibel) lizensiertes Copy-on-Write Dateisystem, entwickelt von Sun Microsystems.
 * F2FS - Ein Flash-freundliches Dateisystem von Samsung für den Linux-Kernel entwickelt.

Virtuelle Dateisysteme
Virtuelle Dateisysteme, auch Pseudodateisysteme genannt, dienen der Speicherung temporärer Daten im Speicher, während das System läuft.


 * debugfs - Für Debuggingzwecke benutzt ; primär Linux Kernel-Development.
 * - Zur Ausgabe und zum Ändern von System- und Prozess-Informationen.
 * - Vom TPM BIOS-Treiber und IMA benutzt, einem Integritätsprovider.
 * - Zur Ausgabe von Informationen über und zur Konfiguration von Geräten und Treibern.
 * - Zum Speichern von Dateien im Speicher (RAM).
 * - benötigt  (Pflegen eines devtmpfs-Dateisystems zum Einhängen unter ) im Kernel.

Netzwerkdateisysteme

 * Ceph - Ein verteilter Objektspeicher und Dateisystem für exzellente Performance, Zuverlässigkeit und Skalierbarkeit optimiert.
 * NFS - Ein gebräuchliches Linux Netzwerk-Dateisystem-Protokoll.
 * SSHFS - Implementiert FUSE um Dateisysteme im User-Space zu mounten.
 * Tahoe-LAFS - Ein Dateisystem der minimalen Privilegien (Least-Authority File Store).
 * GlusterFS - Ein mächtiges Netzwerk-/Cluster-Dateisystem.

FUSE-basierte Dateisysteme

 * CurlFtpFS - Ein Dateisystem zum Zugriff auf FTP-Hosts basierend auf FUSE.
 * exFAT - Ein FUSE-Dateisystem für das erweiterte FAT-Dateisystem. Vor Linux 5.7
 * FuseISO - Ein FUSE-Modul zum Mounten von ISO-Dateisystemabbildern.
 * MTPfs - Ein FUSE-Dateisystem zum Zugriff auf Media Transfer Protocol (MTP)-Geräte.
 * smbnetfs - Ein FUSE-Dateisystem für SMB-Shares.
 * squashfuse - SquashFS-Archive mittels FUSE mounten.

Einhängen
Dateisysteme können auf verschiedene Wege gemountet werden :


 * - Der Befehl zum Einhängen von Dateisystemen. Benötigt administrative Privilegien oder Einträge in.
 * /etc/fstab - Enthält beschreibende Information über die Dateisysteme welche das System einhängen kann.
 * Removable media - Bei Dateiabfrage einhängen.
 * Udevil - Ein kleines Auto-Einhänge-Dienstprogramm mit wenigen Abhängigkeiten.
 * AutoFS - Automatisches Einhängen bei Dateizugriff.

Externe Ressourcen

 * Linux Sea, von Sven Vermeulen, Kapitel über Dateisysteme
 * Dateisysteme (Arch Wiki)
 * Bitrot und atomare COWs: Die Dateisysteme der nächsten Generation (Ars Technica)
 * Eine Studie über die Entwicklung der Linux Dateisysteme (PDF Dokument von USENIX)