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