docs: add obsidian hwr docs

This commit is contained in:
theoleuthardt 2026-04-09 11:24:56 +02:00
parent b2636f4b92
commit 850aa3455d
245 changed files with 30757 additions and 0 deletions

View file

@ -0,0 +1,148 @@
# 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).