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

148 lines
No EOL
9.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.
## 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!)
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).