hwr-notes/Betriebssysteme/Zusammenfassung_Dateisysteme.md
2026-04-09 11:24:56 +02:00

9.2 KiB
Raw Blame History

Zusammenfassung: Dateisysteme

1. Einführung: Warum externe Speicher?

Ein Prozessor kann Informationen nicht dauerhaft in Registern speichern, da diese sich ständig ändern. Auch der Arbeitsspeicher (RAM) ist keine Lösung für langfristige Speicherung, da er:

  1. Flüchtig ist: Daten gehen beim Ausschalten verloren.
  2. Teuer und begrenzt ist: Man kann nicht unendlich viel RAM verbauen.

Gründe für Festplatten/externe Datenträger

  • Speicherung sehr großer Datenmengen.
  • Dauerhafte Verfügbarkeit (Persistenz) nach dem Herunterfahren.
  • Gleichzeitige Nutzung der Daten durch viele Prozesse.

2. Definitionen & Grundkonzepte

Dateisystem vs. Datenbank

Es gibt zwei Hauptarten der Datenspeicherung:

  • Dateisystem: Das Betriebssystem verwaltet die Daten als Dateien. Es organisiert Speichern, Löschen, Suchen und Umbenennen.
  • Datenbank (DBMS): Eine separate Software verwaltet strukturierte Daten. (Ausnahme: OS/400 nutzt eine DB als Dateisystem)

Definition Dateisystem

Es stellt die Regeln dar, wie Daten gespeichert werden. Es sorgt für Transparenz: Der Benutzer muss nicht wissen, wie die Bits physikalisch auf der Platte liegen, er arbeitet nur mit logischen Dateien.

Klassifizierung von Dateisystemen

  1. Lokal: Befinden sich auf demselben Rechner (z.B. NTFS auf C:).
  2. Netzwerk: Befinden sich auf einem anderen Rechner, Kommunikation über OS (z.B. SMB/CIFS).
  3. Verteilt: Weiterentwicklung von Netzwerk-FS. Der Client weiß nicht, wo physikalisch der Server steht.
  4. Virtuell: Eine große Datei (Container), die intern wie ein Dateisystem strukturiert ist (z.B. .vhd, .vdi).

3. Dateien & Verzeichnisse

Dateinamen & Konventionen

  • Goldene Regel (Kompatibilität): Nur lateinische Buchstaben, Ziffern, Unterstrich. Maximal 8 Zeichen. Erstes Zeichen ein Buchstabe.
  • Nicht empfohlene Zeichen: > < | ? ! * + \ / & ;

Erkennung von Dateitypen

Das OS muss wissen, ob eine Datei ausführbar ist oder Daten enthält.

  1. Dateierweiterung (für Benutzer): .exe, .txt, .jpg. Dient der Zuordnung zur Anwendung.
  2. Magische Zahl (für Programme): Eine Byte-Sequenz am Anfang der Datei:
    • MZ: Ausführbare MS-DOS/Windows Datei.
    • %PDF: Adobe PDF Dokument.
    • FFD8 (Start) / FFD9 (Ende): JPEG Bild.

Zugriffsarten

  • Sequentiell: Lesen von Anfang bis Ende (z.B. Magnetbänder).
  • Direkt: Sprung an eine beliebige Position (Festplatten).
  • Indexsequenziell: Nutzung eines Index-Blocks, um den richtigen Datenblock schnell zu finden.

Metadaten (Attribute)

Jede Datei besitzt neben dem Inhalt auch Verwaltungsdaten:

  • Eigentümer (User ID).
  • Rechte (Read/Write/Execute).
  • Zeitstempel (Erstellt, Geändert, Zugriff).
  • Flags (Hidden, System, Read-only, Archive).

4. Physische Struktur & Partitionierung

Bevor ein Dateisystem erstellt werden kann, muss der Datenträger partitioniert werden.

Sektoren & Cluster

  • Sektor: Kleinste physische Einheit der Festplatte (meist 512 Byte).
  • Cluster (Block): Kleinste logische Einheit des Dateisystems. Besteht aus mehreren Sektoren (z.B. 4 KiB). Eine Datei belegt immer mindestens einen ganzen Cluster (interne Fragmentierung bei kleinen Dateien).

MBR (Master Boot Record)

Der allererste Sektor der Festplatte.

  • Enthält den IPL (Initial Program Loader) zum Booten.
  • Enthält die Partitionstabelle (max. 4 primäre Partitionen).
  • Adressierung: Zylinder-Kopf-Sektor (CHS). Begrenzt auf 2 TiB.

GPT (GUID Partition Table)

Der moderne Nachfolger des MBR.

  • Teil des UEFI-Standards.
  • Adressierung: LBA (Logical Block Addressing) Sektoren werden einfach durchnummeriert.
  • Unterstützt Festplatten bis 8 ZiB und (mindestens) 128 Partitionen.
  • Enthält einen "Schutz-MBR" für Kompatibilität.

Boot-Prozess

  • BIOS: Startet IPL aus MBR. Sehr starr/eingeschränkt.
  • UEFI: Modernes "Mini-OS" auf dem Mainboard-Chip. Kann Filesysteme lesen, bietet Grafikmenü, Secure Boot.

5. Speicherzuweisung (Implementierung)

Wie werden die Blöcke einer Datei auf der Platte organisiert?

1. Kontinuierliche Zuweisung

  • Datei liegt am Stück (Block 1, 2, 3 hintereinander).
  • Vorteil: Einfach, sehr schnelles Lesen.
  • Nachteil: Externe Fragmentierung (Löcher beim Löschen), Datei kann nicht wachsen, wenn kein Platz dahinter ist.

2. Verknüpfte Liste (Linked List)

  • Jeder Block enthält Daten + Zeiger auf den nächsten Block.
  • Vorteil: Keine Fragmentierung, Datei kann wachsen.
  • Nachteil: Zugriff auf Block 500 erfordert Lesen von 1 bis 499 (langsam).

3. Informationsknoten (Index / FAT)

  • Die Zeiger werden aus den Blöcken herausgenommen und in einer zentralen Tabelle gespeichert.

6. Konkrete Dateisysteme

A. FAT (File Allocation Table)

Das älteste und einfachste System (FAT12/16/32/exFAT). Struktur:

  1. FAT: Eine Tabelle, die die Festplatte abbildet. Jeder Eintrag entspricht einem Cluster. Inhalte: "Frei", "Defekt", "Letzter Cluster" oder "Zeiger auf nächsten Cluster".
  2. Hauptverzeichnis: Tabelle mit Dateinamen, Erweiterung, Attributen und Start-Cluster.
  3. Datenzone: Der eigentliche Inhalt. Eigenschaften: Keine Rechteverwaltung (Sicherheit), kein Besitzer-Konzept, kein Journaling. Dateiidentifikation nur über Name. Attribute (8 Bit): Read-only, Hidden, System, Volume-Label, Directory, Archive.

B. NTFS (New Technology File System)

Standard seit Windows NT/XP. Proprietär von Microsoft.

  • Struktur: Zentral ist die MFT (Master File Table). Jede Datei (und das Verzeichnis) ist ein Eintrag in der MFT.
  • Identifikation: Über FRN (File Reference Number), nicht Name. Features:
  • ACL (Access Control List): Sehr feine Rechteverwaltung.
  • Journaling: Protokolliert Änderungen, verhindert Inkonsistenz bei Absturz.
  • EFS: Verschlüsselung.
  • Quotas: Speicherplatzbegrenzung pro User.
  • Hard Links: Ein Inhalt, mehrere Dateinamen (FRNs).

C. ext (Extended Filesystem - Linux)

Standard unter Linux (ext2/3/4). Verwendet Inodes.

  • Identifikation: Über Inode-Nummer. Dateinamen existieren nur im Verzeichnis. Aufbau:
  • Superblock: Infos über FS-Größe und Typ.
  • Bitmaps: I-Bitmap (belegte Inodes) und D-Bitmap (belegte Datenblöcke).
  • Inode-Liste: Tabelle aller Inodes. Inode-Struktur (Wichtig!): Enthält Metadaten (UID, GID, Rechte rwxrwxrwx, Zeitstempel) und Zeiger:
  • 12 Direkte Verweise (auf Datenblöcke).
  • 1 Indirekter Verweis 1. Grades (zeigt auf Block mit weiteren Zeigern).
  • 1 Indirekter Verweis 2. Grades.
  • 1 Indirekter Verweis 3. Grades.
  • Resultat: Sehr kleine und extrem große Dateien (bis Peta-Bytes) effizient speicherbar. Verzeichnis: Ist bei ext einfach eine Datei, die eine Liste von "Name ↔ Inode-Nummer" enthält.

7. Fragmentierung & Optimierung

Interne Fragmentierung

Entsteht, wenn die Dateigröße kein Vielfaches der Blockgröße ist. Der letzte Block ist nur halb voll.

  • Optimierung: Große Dateien → große Blöcke. Viele kleine Dateien → kleine Blöcke.

Externe Fragmentierung

Dateien sind physikalisch auf der Platte verstreut (nicht am Stück).

  • FAT: Stark betroffen.
  • ext: Bildet Block-Gruppen und lässt Platz für Wachstum → kaum Fragmentierung.
  • xfs: Puffert im RAM, um Größe zu berechnen, bevor geschrieben wird.

Bad Blocks

Fehlerhafte Sektoren werden vom Dateisystem markiert und in einen Reserve-Bereich ("Hot Fix") umgeleitet. Das OS bekommt davon nichts mit.

  • Hard Link: Ein zweiter Name für denselben Inode/FRN. Löscht man einen, bleibt die Datei erhalten, solange der "Link-Counter" > 0 ist. (Nur im selben FS möglich).
  • Soft Link (Symbolic): Eine kleine Datei, die nur den Pfad zur Zieldatei enthält. (Funktioniert auch partitionsübergreifend).

Journaling

Schutz gegen Abstürze während Schreibvorgängen (Stromausfall).

  • Problem: Metadaten (Bitmap, Inode, Verzeichnis) müssen konsistent sein.
  • Lösung: Änderungen erst in ein Log (Journal) schreiben, dann ausführen.
  • Full-Journaling: Auch Nutzdaten werden protokolliert (sehr sicher, aber langsam).

9. Backup & Datensicherung

Wichtig: Ein RAID-System (Redundant Array of Independent Disks) ist KEIN Backup! RAID schützt vor Hardwareausfall (Verfügbarkeit), Backup schützt vor Datenverlust (Löschen, Virus, Feuer).

Sicherungsarten (Klausurrelevant!)

  1. Voll-Backup (Normal): Sichert alles. Setzt das "Archiv-Bit" zurück (markiert als gesichert)
  2. Kopie-Sicherung: Sichert alles, fasst das Archiv-Bit aber nicht an.
  3. Inkrementell:
    • Sichert nur Änderungen seit dem letzten Backup (egal ob voll oder inkrementell).
    • Markiert Dateien als gesichert.
    • Vorteil: Schnell, klein.
    • Nachteil: Restore aufwändig (Voll + Ink1 + Ink2 + Ink3 ...).
  4. Differenziell:
    • Sichert Änderungen seit dem letzten Voll-Backup.
    • Markiert Dateien nicht als gesichert. Die Sicherung wächst jeden Tag.
    • Vorteil: Schnellerer Restore (Voll + letzte Diff).
    • Nachteil: Braucht mehr Platz als inkrementell

Strategie: Großvater-Vater-Sohn

Rotationsprinzip mit mehreren Medien (z.B. Monat, Woche, Tag). Ermöglicht Rückgriff auf verschiedene Zeitpunkte in der Vergangenheit.

Betriebsarten

  • Hot Backup: Im laufenden Betrieb (Gefahr von Inkonsistenz).
  • Cold Backup: System wird heruntergefahren (Sicher, konsistent).