mirror of
https://github.com/theoleuthardt/hwr-notes.git
synced 2026-06-05 23:51:09 +00:00
148 lines
No EOL
9.2 KiB
Markdown
148 lines
No EOL
9.2 KiB
Markdown
# 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). |