9.2 KiB
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:
- Flüchtig ist: Daten gehen beim Ausschalten verloren.
- 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
- Lokal: Befinden sich auf demselben Rechner (z.B. NTFS auf C:).
- Netzwerk: Befinden sich auf einem anderen Rechner, Kommunikation über OS (z.B. SMB/CIFS).
- Verteilt: Weiterentwicklung von Netzwerk-FS. Der Client weiß nicht, wo physikalisch der Server steht.
- 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.
- Dateierweiterung (für Benutzer): .exe, .txt, .jpg. Dient der Zuordnung zur Anwendung.
- 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:
- FAT: Eine Tabelle, die die Festplatte abbildet. Jeder Eintrag entspricht einem Cluster. Inhalte: "Frei", "Defekt", "Letzter Cluster" oder "Zeiger auf nächsten Cluster".
- Hauptverzeichnis: Tabelle mit Dateinamen, Erweiterung, Attributen und Start-Cluster.
- 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.
8. Sicherheit & Links
Links (Verknüpfungen)
- 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!)
- Voll-Backup (Normal): Sichert alles. Setzt das "Archiv-Bit" zurück (markiert als gesichert)
- Kopie-Sicherung: Sichert alles, fasst das Archiv-Bit aber nicht an.
- 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 ...).
- 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).