05_Dateisysteme Flashcards
Charakteristiken der Dateinutzung
- Dateien sind meist klein (wenige KByte)
- Dateien werden häufig gelesen, selten geschrieben und kaum gelöscht
- Benutzung einer Datei durch mehrere Benutzer geschieht häufig (Zugriffsrechte)
- gleichzeitige Benutzung einer Datei durch mehrere Benutzer ist selten (Synchronisation)
Festplatten
- drehende, magnetisierbare Scheiben, über die Schreib-Lese-Köpfe positioniert werden
- Orientierung der Magnetisierung repräsentiert Speicherwert (links = 0, rechts = 1)
- Datenablage in Spuren (kompletter Kreis) -> unterteilt in Sektoren mit 512 Bytes („Block Device“)
- Sektor nur als Ganzes gelesen o. beschrieben
- enthält Prüfsumme
-
Partition = zusammenhängender Bereich von Zylindern (direkt übereinanderliegenden Spuren)
- max. 4 primäre Partitionen auf einer Festplatte
- Vorteil: nicht flüchtig
Festplatten
Adressierung
- LBA – Logical Block Address -> direkte Adressierung der Blöcke
- Controller sieht fortlaufend nummerierte Anzahl von Blöcken für Gerätetreiber (defekte Sektoren werden von Platte ausgeblendet) -> Umrechnung in Plattengeometrie über Firmware der Platte
Dateisichten
- Anwender sieht Datei als Bytestrom
- Festplattensektoren zu Dateien zusammengefasst und unter Dateinamen zur Verfügung gestellt
- Information darüber (Metadaten wie Zuordnung und Reihenfolge der Blöcke der Datei) auf Festplatte hinterlegt -> nach Abschalten erhalten
- Aufgabe des Gerätetreibers/Festplatte: reale Platte als Folge von intakten Sektoren anbieten = abstrakte Platte
Dateisysteme
Verzeichnisse
- als Baumstrukturen angelegt
- Wurzelknoten -> Verzeichnisse/Dateien -> ggf. Unterverzeichnisse/Dateien
- Dateien absolut über Pfad (Beginn mit „/“) oder relativ referenziert
- Links: Erweiterung der Baumstruktur zu Netzstruktur
-
Soft Links: enthalten Verweis auf andere Datei – keine Kopie -> Löschen: Ursprungsdatei erhalten
- Löschen der Ursprungsdatei: Link ins Leere
-
Hard Links: im Dateisystem weiterer Eintrag mit anderem Namen – selbe Zieldatei
- Löschen: Link-Zähler der Datei heruntergezählt
- Löschen des letzten Hard-Links: Inhalt der Datei gelöscht
Aufbau einer Festplatte
MBR = Master Boot Record - 512 Byte
- erster Sektor
- enthält 440 Byte Boot-Code -> beim Start vom BIOS in Hauptspeicher geladen u. ausgeführt
- 16 Byte lange Einträge für Lage und Typ von Partitionen auf der Festplatte
- mit UEFI: GUID Partition Table -> beliebig viele Partitionen
Partitionen
- nur 4 primäre Partitionen möglich
- extended partition: Schachtelung von sekundären Partitionen in primäre Partitionen
- enthalten jeweils Dateiverwaltungssystem
Dateisystem
Aufbau eines einfachen Dateisystems
Variante 1
- aufeinanderfolgende Blöcke mit Inhalt der Dateien füllen
- Lesezugriff auf fortlaufende Datenblöcke = zeitoptimal
- Problem bei Löschen oder Verlängern der Dateien
- viele kleine, freie Blöcke entstehen -> Speichern großer Dateien irgendwann unmöglich
- Anwendung: Datenträger nur einmal/als Ganzes beschrieben (z.B. CD-ROM)
Dateisystem
Aufbau eines einfachen Dateisystems
Variante 2
- Dateien mit veränderlicher Lage - Linked List
- Dateikopf mit Verweis auf ersten Nutzdatenblock
- Dateiname
- Dateityp
- Erzeugungszeitpunkt
- Datum der letzten Änderung
- Datum des letzten Zugriffs
- Eigentümer
- Gruppenzugehörigkeit
- Dateirechte
- Länge der Datei
- Verweise auf Datenblöcke
- solange Verweis auf nächsten Block, bis letzter zur Datei gehöriger Block erreicht ist
- Nachteil: bei Positionierungsbefehlen äußerst langsam, da sämtliche Blöcke eingelesen werden müssen, um z.B. letzten Block zu identifizieren
Dateisystem
FAT - Aufbau von FAT32-Partitionen
-
1. Sektor = Bootsektor: Bootcode d. Stufe 2 + Informationen über Dateisystem der Partition
- Anzahl Sektoren + Sektorgröße + Clustergröße + Typ, Beginn u. + Länge der FAT
-
FAT: File Allocation Table
- so viele Einträge, wie Partition Cluster hat
- statt Verkettung durch Zeiger in Datenblöcken -> Verkettung innerhalb der FAT
- in RAM geladen -> schnelle Positionierungen innerhalb der Datei
- Eintrag 0: freier Cluster
- Eintrag -1 (0xffff): letzter Cluster einer Datei
- Wurzelverzeichnis: Dateiköpfe aller Dateien und Verzeichnisse mit Verweis auf 1. Datenblock in FAT
Dateisystem
Indexbasiert: Ext2
Aufbau der Partition
- Partition nach Boot-Sektor in Block-Groups mit gleicher Größe aufgeteilt
- Vorteil: Verwaltungsinformationen nahe den Nutzdaten = Performanceverbesserung
- einige Block-Groups enthalten Kopie des Superblocks -> Reparatur des Dateisystems nach Systemabsturz
-
Superblock:
- Name + Typ + Gesamtanzahl der Blöcke und Inodes + Anzahl freier Blöcke und Inodes + Mount-Informationen + Blocknummer des ersten Inodes (verweist auf Dateiblöcke des Root-Verzeichnisses)
- Group-Deskriptor: Adressen der Verwaltungs-Bitmaps + Clusternummer der Inodes-Tabellen + Anzahl der Verzeichnisse, der freien Blöcke u. Inodes
-
Bitmap-Blöcke: je 1 Cluster groß (1kB o. 4 kB)
- Verwaltung von freien und belegten Dateiblöcken und Inodes
Dateisystem
Indexbasiert: Ext2
Inodes
- Elemente fester Länge
- verwalten alle Dateien inkl. Verzeichnisse
- enthalten u.a. Länge der Datei + Eigentümer + Informationen zu Erzeugungszeitpunkt + Typ (Datei, Verzeichnis, Pseudodatei, …)
- gestuftes Verfahren -> geringerer Verwaltungsaufwand
- 12 direkte Verweise in Inode eingetragen (Blockgröße von 4 kB -> 48kB Dateigröße abgedeckt = meiste Dateien)
- 1. Indirektionsstufe: Eintrag indirect_bl1 verweist auf Block, der Verweis auf Datenblöcke enthält
- 2. Indirektionsstufe: im Dateikopf Verweis auf Block, der wieder auf 256 Blöcke verweist, die Blocknummern der Nutzdatenblöcke enthalten
- 3. Indirektionsstufe: dreifache Indizierung
Dateisystem
Indexbasiert: Ext2
Verzeichnisse
Verzeichnis = Datei vom Typ „Directory“ -> enthält alle Einträge in dem Verzeichnis (Dateien und Verzeichnisse)
Inode-Nr. verweist auf Inode, die Datei verwaltet
Dateisystem
Indexbasiert: Ext4
- kompatibel zu Ext2, zusätzliche Erweiterungen
- schneller, da hintereinanderliegende Datenblöcke
- Blocknummern von 48 Bit auf der Festplatte und 32 Bit als logische Blocknummern in der Datei -> Datei kann 232 Blöcke groß werden -> bei 4kB Blockgröße: 232*216 = 248 = 16TB
- Einführung von Extents: Gruppe von Datenblöcken variabler Größe, hintereinander auf der Festplatte
- Zuordnung Extent–Datei: Blocknr. in der Datei + Anzahl Blöcke+ Adresse d. 1. Blocks auf der Festplatte
- Baumstruktur variabler Tiefe für Adressierung der Extents statt bis zu 3-stufige Indizierung der Nutzdatenblöcke
Dateisystem
Indexbasiert: Ext4
Inode
- 15 Felder für Adressierung der Blöcke und Indexblöcke -> jetzt Extent-Header und 4 Extent-Verweise
- > 4 Extents benötigt (große Dateien/stark fragmentierte Festplatte): Baum aus Extents angelegt
Dateisystem
Indexbasiert: Ext4
Beispiel mit 10 Datenblöcken