Dateisystem (File System)
Was ist ein File System (Dateisystem)?
In der Informatik ist ein Dateisystem – aus dem Englischen: File System – ein logisches und physisches System zum Organisieren, Verwalten und Zugreifen auf die Dateien und Verzeichnisse auf einem Solid-State-Laufwerk (SSD), einer Festplatte (HDD) oder anderen Speichermedien eines Geräts. Ohne ein Dateisystem würde das Betriebssystem (OS) nur große Datenblöcke sehen, ohne eine Möglichkeit, eine Datei von der nächsten zu unterscheiden. Mit zunehmender Datenkapazität wird die effiziente Organisation und Zugänglichkeit einzelner Dateien bei der Datenspeicherung immer wichtiger.
Digitale Dateisysteme sind nach den papierbasierten Ablagesystemen benannt, die zum Speichern und Abrufen von Dokumenten verwendet werden, und sind diesen nachempfunden. Trotz ihrer gemeinsamen Wurzeln können sich Dateisysteme zwischen Betriebssystemen wie Microsoft Windows, macOS oder Linux jedoch erheblich unterscheiden. Andererseits kann ein Betriebssystem trotz seiner Unterschiede mehrere Dateisysteme unterstützen. In einigen Fällen kann ein Dateisystem auch plattformübergreifend verwendet werden. Einige Dateisysteme sind für bestimmte Anwendungen konzipiert, darunter verteilte Dateisysteme, plattenbasierte Dateisysteme und spezielle Dateisysteme.
Wie Dateisysteme funktionieren
Ein Dateisystem speichert und organisiert Daten. Man kann es sich als eine Art Index für alle auf einem Speichergerät enthaltenen Daten vorstellen. Neben SSDs und HDDs werden Dateisysteme auch für optische Festplatten, Flash-Laufwerke und Magnetbänder verwendet.
Dateisysteme legen Konventionen für die Benennung von Dateien fest, einschließlich der maximalen Anzahl von Zeichen in einem Namen, welche Zeichen verwendet werden können und – in einigen Systemen – wie lang die Dateinamenerweiterung sein darf. In vielen Dateisystemen wird bei Dateinamen nicht zwischen Groß- und Kleinschreibung unterschieden.
Neben den Inhaltsdaten einer Datei werden in einem Dateisystem auch Metadaten über die Dateien und andere Informationen gespeichert. Die Metadaten können Details wie die Dateigröße, das Erstellungsdatum oder den Speicherort im Verzeichnis enthalten.
Die meisten Dateisysteme organisieren Dateien in einer Verzeichnishierarchie, wobei der Speicherort einer Datei durch ihren Pfad innerhalb der Verzeichnisstruktur beschrieben wird. Die Verzeichnisse – in Windows Ordner – sind in einer umgekehrten hierarchischen Baumstruktur organisiert, mit dem Stammverzeichnis an der Spitze. Jede Datei wird in einem Verzeichnis oder Unterverzeichnis an der gewünschten Stelle innerhalb der Baumstruktur abgelegt.
Bevor Dateien und Verzeichnisse auf einem Speichermedium definiert werden können, müssen zunächst eine oder mehrere Partitionen erstellt werden. Eine Partition ist ein Speicherbereich, den das Betriebssystem getrennt von anderen Partitionen verwaltet, ähnlich wie bei der Verwaltung einzelner Laufwerke. Jede Partition kann mit einem anderen Dateisystem formatiert werden, um mehr Flexibilität zu bieten.
Getrennte Partitionen helfen dabei, Dateien und Vorgänge voneinander zu isolieren, was sich positiv auf Leistung, Sicherheit und Wartung auswirken kann. Die SSD eines Computers kann zum Beispiel drei Partitionen enthalten: eine für die Betriebssystemdateien, eine für die Benutzerdateien und eine für die Wiederherstellungsdateien des Systems. Wenn das Dateisystem auf einer Partition beschädigt wird, sollten die Daten auf einer anderen Partition sicher sein.
Architektur des Dateisystems
Dateisysteme handhaben sowohl die physischen als auch die logischen Vorgänge im Zusammenhang mit der Verwaltung von Dateien. Obwohl sie unterschiedliche Ansätze zur Speicherung von Dateidaten verfolgen, trennen sie in der Regel Metadaten von den Inhaltsdaten der Datei. Sie speichern auch eine kleine Menge anderer Datentypen, die zur Verwaltung des Dateisystems und zur Erleichterung des Dateizugriffs verwendet werden.
Ein Dateisystem unterteilt eine Partition in Blöcke, deren Größe vom Dateisystem abhängt. Der größte Teil der Blöcke wird für die Inhaltsdaten der Dateien verwendet. Die restlichen Blöcke werden zwischen den Metadaten der Dateien und den Verwaltungsdaten des Dateisystems aufgeteilt. Abbildung 2 gibt einen konzeptionellen Überblick darüber, wie ein Dateisystem in einer Unix-ähnlichen Umgebung die Daten auf die einzelnen Blöcke verteilen könnte. In diesem Fall werden die Metadaten in Indexknoten (Inodes) gespeichert. Ein Inode ist eine indizierbare Datenstruktur, die Details über eine Datei oder ein Verzeichnis enthält.
Die Verwaltungsdaten belegen die ersten Blöcke, gefolgt von den Inode-Metadaten und dann den Inhaltsdatenblöcken, die den größten Teil des Speichers beanspruchen. Hier ist eine Aufschlüsselung der verschiedenen Blocktypen:
- Superblock. Dieser Block enthält Informationen über das Dateisystem selbst und fungiert als eigenes Metadaten-Repository. Der Superblock kann zum Beispiel Details über den Dateisystemtyp, die Gesamtzahl der Blöcke, die Anzahl der Inodes oder andere Komponenten enthalten.
- Data Block Bitmap. Dieser Block enthält eine einfache Bitmap, die angibt, welche Datenblöcke verwendet werden und welche nicht. Ein Wert von 1 bedeutet, dass der Block verwendet wird, und ein Wert von 0, dass er nicht verwendet wird.
- Inode-Bitmap. Der Block enthält eine einfache Bitmap, die anzeigt, welche Inodes verwendet oder nicht verwendet werden. Ein Wert von 1 bedeutet, dass der Inode verwendet wird, und ein Wert von 0, dass er nicht verwendet wird.
- Inodes. Das Dateisystem verwaltet einen Inode für jede Datei und jedes Verzeichnis. Der Inode wird durch eine eindeutige Nummer identifiziert und enthält die Metadaten für die zugehörige Datei oder das Verzeichnis. Er enthält auch die Adresse der Datenblöcke, die den Inhalt der Datei enthalten. Auf diese Weise kann der Inode verwendet werden, um die Datei schnell aufzufinden.
- Content Data Blocks. Der gesamte Dateiinhalt wird in den Datenblöcken gespeichert. Diese Blöcke stellen den größten Teil der belegten Blöcke der Datei dar. Die Abbildung 2 zeigt nur einen Teil der Inhaltsdatenblöcke.
Dateisysteme verwenden Metadaten, um Dateien zu speichern und abzurufen und um den Benutzern Informationen über ihre Dateien zur Verfügung zu stellen. Dateisysteme zeichnen nicht unbedingt dieselben Arten von Metadaten auf, aber in der Regel speichern sie die folgenden Informationen:
- Datum und Uhrzeit der Erstellung.
- Datum und Uhrzeit der Änderung.
- Daten und Uhrzeit des letzten Zugriffs.
- Eigentümer der Datei.
- Zugriffsberechtigungen.
- Dateigröße, einschließlich Größe auf der Festplatte.
- Attribute wie schreibgeschützt oder versteckt.
- Position in der Verzeichnishierarchie.
Benutzer können in der Regel über die Benutzeroberfläche ihres Systems auf die Metadaten einer Datei zugreifen. In Windows können sie zum Beispiel mit der rechten Maustaste auf eine Datei klicken und im Kontextmenü auf Eigenschaften klicken. Das Gleiche gilt für macOS, nur dass die Benutzer stattdessen auf Info abrufen klicken.
Zugriff auf das Dateisystem
Dateisysteme können den Lese- und Schreibzugriff auf einen bestimmten Benutzer oder eine Gruppe von Benutzern beschränken. Neben der Kontrolle, wer Dateien ändern oder lesen darf, wird durch die Einschränkung des Zugriffs auch die Änderung von Daten kontrolliert und begrenzt.
Mit Hilfe von Datei- und Verzeichnisberechtigungen kann gesteuert werden, wer auf bestimmte Ressourcen zugreifen darf und welche Zugriffsstufe der Nutzer hat. Dieser Ansatz ist nützlich, um den Zugriff durch interne Benutzer zu verhindern, ist aber nicht so effektiv gegen Eindringlinge von außen.
Die Verschlüsselung von Dateien kann ebenfalls den Benutzerzugriff verhindern, ist aber eher auf den Schutz von Systemen vor Angriffen von außen ausgerichtet. Ein Verschlüsselungsschlüssel wird auf unverschlüsselten Text angewendet, um ihn zu verschlüsseln. Der Schlüssel kann zum Entschlüsseln des verschlüsselten Textes verwendet werden. Nur Benutzer, die den Schlüssel besitzen, können die Datei entschlüsseln. Bei der Verschlüsselung muss das Dateisystem den Verschlüsselungscode nicht kennen, um die Daten effektiv zu verwalten.
Arten von Dateisystemen
Die meisten Betriebssysteme unterstützen mehrere Arten von Dateisystemen, die jeweils unterschiedliche physische und logische Strukturen sowie Funktionen aufweisen. Einige Dateisysteme können plattformübergreifend verwendet werden. Die drei gängigsten PC-Betriebssysteme sind Microsoft Windows, Apple macOS und Linux. Zu den beliebtesten mobilen Betriebssystemen gehören Apple iOS und Google Android. Zu den wichtigsten Dateisystemen, die auf diesen Plattformen verwendet werden, gehören die folgenden.
File Allocation Table (FAT)
FAT ist ein einfaches und zuverlässiges Dateisystem, das in früheren Versionen von Windows-Betriebssystemen häufig verwendet wurde. Das 1977 für Disketten entwickelte Dateisystem wurde später für Festplatten angepasst. Ursprünglich war FAT ein 8-Bit-System, wurde aber später zu FAT12 (12-Bit), dann zu FAT16 (16-Bit) und schließlich zu FAT32 (32-Bit) weiterentwickelt, der primären Version, die immer noch in Gebrauch ist. Obwohl FAT effizient und mit den meisten aktuellen Betriebssystemen kompatibel ist, kann es nicht mit der Leistung und Skalierbarkeit modernerer Dateisysteme mithalten.
Extended File Allocation Table (exFAT)
Das exFAT-Dateisystem ist ein Nachfolger von FAT32. Es hat viel von der Einfachheit von FAT beibehalten und ist auch leicht zu implementieren. Allerdings ist exFAT ein 64-Bit-Dateisystem, so dass es sowohl Speichergeräte mit größerer Kapazität als auch Anwendungen, die auf große Dateien angewiesen sind, unterstützen kann. Das Dateisystem ist außerdem erweiterbar, so dass es sich leichter an Änderungen des Speichers und seiner Nutzung anpassen lässt.
New Technology File System (NTFS)
NTFS, auch bekannt als NT-Dateisystem, ist seit Windows NT 3.1 das Standarddateisystem von Windows. NTFS bietet mehrere Verbesserungen gegenüber FAT-Dateisystemen, einschließlich besserer Leistung, Metadatenunterstützung und Ressourcennutzung. NTFS wird auch im Linux-Betriebssystem durch einen kostenlosen, quelloffenen NTFS-Treiber unterstützt. Darüber hinaus bietet macOS eine Nur-Lese-Unterstützung (read-only) für NTFS.
Resilient File System (ReFS)
ReFS ist ein Dateisystem von Microsoft, das seit 2012 auf Windows Server verfügbar ist. Das Dateisystem ist auch in Windows 10 Pro für Workstations verfügbar, obwohl es in keiner Nicht-Entwicklungsversion von Windows 11 verfügbar ist. ReFS wurde entwickelt, um einige der Einschränkungen von NTFS zu beheben, insbesondere in Bezug auf Skalierbarkeit und Leistung. ReFS unterstützt jedoch weder mehrere NTFS-Funktionen noch kann Windows von einem ReFS-Volume booten. Außerdem verbraucht es mehr Systemressourcen als NTFS.
Extended filesystem (ext)
Dieses 1992 eingeführte Dateisystem wurde speziell für Linux entwickelt und wird immer noch häufig auf Linux-Systemen verwendet. Die aktuelle Version, ext4, baut auf ext3 auf, das Journaling-Fähigkeiten hinzugefügt hat, um Datenbeschädigung zu reduzieren. Die ext4-Version bietet eine bessere Leistung und Zuverlässigkeit und unterstützt eine größere Skalierbarkeit. Es ist das Standard-Dateisystem für mehrere Linux-Distributionen, einschließlich Ubuntu und Debian, und es ist das primäre Dateisystem, das auf Android-Geräten verwendet wird.
B-tree filesystem (Btrfs)
Btrfs, auch als Butter FS oder Better FS bezeichnet, kombiniert ein Dateisystem und einen Dateimanager in einer einzigen Lösung für Linux-Systeme. Die Lösung bietet fortschrittliche Fehlertoleranz und Selbstheilungsfunktionen, was zu einer höheren Zuverlässigkeit führt. Sie ist auch für ihre Effizienz und einfache Verwaltung bekannt. Btrfs hat sich in der Linux-Umgebung immer weiter durchgesetzt und ist jetzt das Standard-Dateisystem in Fedora Workstation.
Global File System (GFS)
GFS ist sowohl ein Linux-Dateisystem als auch ein gemeinsam genutztes Plattendateisystem (Shared Disk File System). GFS bietet direkten Zugriff auf gemeinsam genutzten Blockspeicher und kann als lokales Dateisystem verwendet werden. GFS2 ist eine aktualisierte Version mit Funktionen, die im ursprünglichen GFS nicht enthalten waren, wie zum Beispiel ein aktualisiertes Metadatensystem. Unter den Bedingungen der GNU General Public License sind sowohl das GFS- als auch das GFS2-Dateisystem als freie Software erhältlich.
Hierarchisches File System (HFS)
Das auch als Mac OS Standard bezeichnete HFS wurde für die Verwendung mit Mac-Betriebssystemen entwickelt. HFS wurde ursprünglich 1985 für Disketten und Festplatten eingeführt und ersetzte das erste Macintosh-Dateisystem. Es kann auch auf CD-ROMs verwendet werden. HFS wurde schließlich von Mac OS Extended abgelöst, das inzwischen dem Apple File System (APFS) Platz gemacht hat.
Apple File System (APFS)
APFS ist seit macOS 10.13 das Standard-Dateisystem auf Mac-Computern. Es wird auch auf iOS-, iPadOS-, tvOS- und watchOS-Geräten verwendet. APFS brachte viele wichtige Funktionen mit sich, darunter Snapshots, starke Verschlüsselung, gemeinsame Nutzung von Speicherplatz und schnelle Verzeichnisgrößenanpassung (Fast Directory Sizing). Das Dateisystem wurde auch für die in Mac Computern verwendeten Flash-SSDs optimiert, obwohl es nach wie vor herkömmliche Festplatten sowie externe, direkt angeschlossene Speicher (DAS) unterstützt. Ab macOS 10.13 kann APFS sowohl für bootfähige Volumes als auch für Daten-Volumes verwendet werden. Das Dateisystem unterstützt auch einen Modus, der Groß- und Kleinschreibung berücksichtigt.
Universal Disk Format (UDF)
UDF ist ein herstellerneutrales Dateisystem, das für optische Datenträger verwendet wird. UDF ersetzt das Dateisystem ISO 9660 und ist das offizielle Dateisystem für DVD-Video und -Audio, das vom DVD-Forum ausgewählt wurde. Das Dateisystem wird auch für Blu-ray-Discs verwendet.
Dateisystem vs. Datenbankmanagementsystem (DBMS)
Wie ein Dateisystem speichert auch ein DBMS effizient Daten, die aktualisiert und abgerufen werden können. Die beiden Systeme sind jedoch nicht austauschbar. Während ein Dateisystem unstrukturierte, oft nicht zusammenhängende Dateien speichert, wird ein DBMS zur Speicherung und Verwaltung strukturierter Daten verwendet, die in der Regel zusammenhängen.
Ein DBMS erstellt und definiert die Beschränkungen für eine Datenbank. Ein Dateisystem erlaubt den Zugriff auf einzelne Dateien und geht auf jede Datei einzeln ein. Aus diesem Grund werden Funktionen wie Redundanz auf individueller Ebene und nicht vom Dateisystem selbst ausgeführt. Dies macht ein Dateisystem zu einer weit weniger konsistenten Form der Datenspeicherung als ein DBMS, das ein einziges, streng kontrolliertes Daten-Repositoryunterhält.
Die zentralisierte Struktur eines DBMS ermöglicht eine einfachere gemeinsame Nutzung von Daten als ein Dateisystem und verhindert Anomalien, die auftreten können, wenn Änderungen an verschiedenen Dateien in einem Dateisystem vorgenommen werden.
Obwohl Dateisysteme Schutzmaßnahmen auf Dateiebene enthalten, bietet ein DBMS eine robustere Sicherheit. Die Sicherheit in einem Dateisystem wird durch das Betriebssystem bestimmt und kann im Laufe der Zeit schwer aufrechtzuerhalten sein, wenn auf Dateien zugegriffen wird und Benutzern Berechtigungen erteilt werden.
Ein DBMS hält die Sicherheitsanforderungen hoch und verlässt sich auf Passwortschutz, Verschlüsselung und begrenzte Autorisierung. Mehr Sicherheit bedeutet jedoch auch mehr Hindernisse beim Abrufen von Daten. Wenn es um einfaches Speichern und Abrufen von Dateien geht, wird oft ein Dateisystem bevorzugt.
Die Definition von Dateisystemen entwickelt sich weiter
Während sich der Begriff Dateisystem früher auf physische Dateien bezog, wurde er seit Anfang 1961 für digitale Dateien verwendet. Ab 1964 wurde er allgemein für computergestützte Dateisysteme verwendet.
Der Begriff Dateisystem kann sich auch auf den Teil eines Betriebssystems oder Zusatzprogramms beziehen, der ein Dateisystem unterstützt. Beispiele für solche zusätzlichen Dateisysteme sind das Network File System (NFS) und das Andrew File System.
Darüber hinaus hat sich der Begriff weiterentwickelt und bezieht sich auf die Hardware, die für die nichtflüchtige Speicherung (non-volatile Storage) verwendet wird, auf die Softwareanwendung, die die Hardware steuert, und auf die Architektur sowohl der Hardware als auch der Software.