Dateisysteme

Der Begriff Dateisystem bezeichnet die Gesamtstruktur, auf deren Grundlage Dateien gespeichert, benannt und verwaltet werden. Für unterschiedliche Betriebssysteme und Datenträger existieren spezielle Dateisysteme.

 

Grundlagen

Damit man überhaupt etwas mit den verschiedenen Dateisystemen anfangen kann, muss man die Grundlagen verstanden haben.

Sektor: Als Sektor bezeichnet man die kleinste Speichereinheit einer Festplatte. Diese beträgt üblicherweise 512 Bytes. Die Anzahl der Sektoren je Cluster ist gleich.
Cluster: Ein Cluster besteht aus mehreren Sektoren. Das Betriebssystem greift nicht auf die einzelnen Sektoren zu, sondern auf die Cluster. Die Clustergröße kann beim formatieren eines Datenträgers angegeben werden.
Datei: Eine Datei besteht aus mehreren Clustern.
Partition: Eine Partition ist ein zusammenhängender Teil des Speicherplatzes eines Datenträgers. Jede Partition kann formatiert werden und ist unabhängig von den anderen Partitionen. Das System kann eine Partition als physisches Laufwerk betrachten.

Die maximale Datenträgergröße berechnet sich mit folgender Formel: Bytes je Sektor * Sektoren je Cluster * Anzahl Cluster

Der MBR (Master Boot Record) ist der erster Sektor eines Speichermediums und enthält eine Partitionstabelle und den Bootloader. Der Bootloader wird vom BIOS aufgerufen und ist dafür verantwortlich, dass das System auf der Partition startet.

 

Dateisysteme

FAT16

Das Dateisystem basiert auf der sogenannten Dateizuordnungstabelle, die sich immer direkt hinter dem Bootsektor befindet. Diese dient als eine Art Inhaltsverzeichnis und wird verwendet, um den Speicherplatz des Datenträgers zu verwalten.

FAT16 besitzt 216 Cluster, wovon 12 Cluster reserviert sind.

Selten passt eine Datei komplett in ein Cluster. Die Datei muss sich dann auf mehrere Cluster verteilen. Die Information welche Cluster nun in welcher Reihenfolge die Datei beinhalten, wird in der oben genannten Dateizuordnungstabelle festgehalten.

Vorteil:

  • Dateisystem sehr einfach zu verstehen

Nachteil:

  • Es sind nur relativ wenige Cluster möglich
  • Dateizuordnungstabelle an fester Position auf dem Datenträger, dies führt zu relativ langsamen Schreib- und Lesezugriffen

 

FAT32

Die Daten werden wie bei FAT16 verwaltet, allerdings werden die Cluster mit 32 Bit adressiert. Somit sind 232 Cluster möglich. Davon sind 24 Cluster reserviert.

 

NTFS

Das Dateisystem NTFS wird ab Windows NT verwendet und enthält eine spezielle sogenannte Master File Table (MFT), welche Informationen über alle Dateien auf dem Datenträger enthält. NTFS arbeitet transaktionsorientiert, was bedeutet, dass Änderungen nur am Stück möglich sind und bei Fehlern zurückgesprungen wird.

NFTS besitzt 264 Cluster.

MFT: Die Master File Table (MFT) ist eine Datei, in welcher sich die Einträge, welche Blöcke zu welcher Datei gehören, die Eigenschaften und die Zugriffsberechtigungen befinden.
Record: Als Record wird ein Eintrag in die MFT bezeichnet. Dateien mit einer Größe von bis zu 1,5 KiB werden direkt im Record gespeichert.
B-Tree: Sobald der Inhalt einer Datei zu groß für einen Record ist, wird der Eintrag ausgelagert und als B-Tree organisiert. Als B-Tree bezeichnet man eine Daten- oder Indexstruktur, die den Vorteil hat, dass Daten schnell gefunden werden können. Diese Daten enthalten Zeigereinträge, die auf Cluster verweisen.
Run: Mehrere aufeinanderfolgende Cluster werden durch eine Clusteradresse adressiert und als RUN bezeichnet.

Vorteile:

  • große Dateimengen
  • schnell (B-Tree, kleine Daten im Record)
  • zuverlässig (transaktionsorientiert)
  • fehlerhafte Cluster werden markiert (Abgleich mit Datensatz aus Arbeitsspeicher)
  • Zugriffsrechte

Nachteile:

  • wird nur von wenigen Betriebssystemen unterstützt
  • hoher Verwaltungsaufwand

 

EXT

Das Dateisystem EXT hat bis heute 3 Nachfolger erhalten (EXT2, EXT3, EXT4). EXT4 ist aktuell das Standarddateisystem für Linux mit 248 Clustern.

Die grundlegende Datenstruktur bezeichnet man als Inode, welche der Verwaltung von Dateisystemen dient.

Inode beinhaltet folgende Metadaten:

  • Dateityp
  • Größe der Datei
  • Referenzzähler
  • Zugriffsrechte
  • Datum letzter Änderungen
  • Verweiß auf Cluster

Verweise von Inode auf Cluster: bis 12 → weiter über baumartige Struktur

Vorteile:

  • große Daten
  • unterschiedliche Namen je Datei, da Name nicht im Inode abgelegt wird

 

Vergleich

FAT16 FAT32 NTFS EXT4
Anzahl Cluster 216 232 264 248
Max. Partitionsgröße 4 GiB 8 TiB 256 TiB 1 EiB
Max. Größe einer Datei 2 GiB 4 GiB 16 TiB 1 EiB
Max. Clustergröße 64 KiB 32 KiB 64 KiB 4 KiB

 

Zugriffsrechte

Bei NTFS und EXT sind die Zugriffsrechte bereits im Dateisystem verankert. Diese bieten die Möglichkeit, Verzeichnisse und Dateien gegenüber dem Zugriff von Fremden zu schützen.

EXT bietet 3 verschiedene Zugriffsmöglichkeiten:

  • r für read
  • w für write
  • x für execute

Die Zugriffsmöglichkeiten werden für den Besitzer der Datei, eine Gruppe und die übrigen Benutzer angegeben.

Beispiele

Datei: test.sh ( rwx rw– r–– )

  • Der Besitzer darf lesen, schreiben und ausführen
  • Die Gruppe darf lesen und schreiben
  • Die übrigen Benutzer dürfen lediglich lesen

Ordner: /home/ ( d rwx rw– r–– )

  • Der Besitzer darf das Verzeichnis auslesen, hinein schreiben und hinein wechseln
  • Die Gruppe darf das Verzeichnis auslesen und hinein schreiben.
  • Die übrigen Benutzer dürfen lediglich das Verzeichnis auslesen.