Dateisystem: Einführung Hauptaufgabe des Dateisystems ist der schnelle und zuverlässige Zugriff auf Dateien Problem: Entweder schneller Zugriff oder viel Redunanz beim speichern! Zusätzlich müssen Unterverzeichnisse verwaltet werden Eine Datei wird durch einen Namen ausgewählt DOS: 8 Zeichen für Datei und 3 Zeichen Erweiterung Unix: Keine Erweiterung, 256 Zeichen für Dateinamen Dateinamen müssen (inkl. Pfad) eindeutig sein
Dateisystem: Einführung Jede Datei kann mehrere Attribute zugeordnet bekommen: Read Only, Hidden, System, Archive Zugriffserlaubnis, Besitzerangaben, Zugriffszeiten Art der Datei (Programm, Library, Datendatei, ) Folgende Strukturen müssen zusätzlich festgelegt werden, gehören aber nicht mehr zum Dateisystem Wo steht der Boot Lader für das Betriebssystem Wie ist die Festplatte in Partitionen unterteilt
Dateisystem: Einführung Im Prinzip würde ein genormtes Dateisystem für alle Computer ausreichen Vorteil: Jeder Datenträger kann mit jedem Betriebsystem gelesen werden Oft hat jedes Betriebssystem ein eigenes Dateisystem Windows PC: Fat16/Fat32/NTFS Linux PC: EXT2 Sun: UFS Amiga: FastFileSystem Jedes Dateisystem hat seine Stärken und Schwächen
Dateisystem: Einführung Die Festplatte wird vom Dateisystem in mehrere Bereiche aufgeteilt: Beispiel: Festplatte mit zwei Partitionen: MBR Partition 1: Bootsektor Partition 1: FAT Partition 1: Datenbereich Partition 2: Bootsektor Partition 2: FAT Partition2: Datenbereich
Dateisystem: MBR Jede PC Festplatte hat unabhängig vom Betriebssystem den MBR (Master Boot Record): Erster Sektor der Festplatte Enthält ca. 450 Byte Boot Programm (z.b. Lilo) Enthält die Partitionsdaten der vier möglichen Partitionen Ab 0x1BEh stehen 16 Byte für Partition 0 Ab 0x1CEh stehen 16 Byte für Partition 1 Die letzten zwei Bytes sind 0xAAh und 0x55h, sind diese vorhanden, so ist der MBR gültig. Binär ist 0xAAh 10101010 und 0x55h 01010101, so daß diese Muster kaum zufällig entstehen
Dateisystem: MBR Die 4*16 Bytes der Partitionstabelle enthalten: Byte 0: 0 oder 128, je nachdem ob die Partition aktiv ist Die aktive Partition wird zum booten verwendet Byte 1-3: Start der Partition in Sektor/Cylinder/Kopf Format Byte 4: Partition ID 0x06h=FAT16, 0xBh=FAT32, 0x0C=Extended Partition FAT32 0x83h=Linux EXT2, 0x82h=Linux Swap Partition Byte 5-7: Ende der Partion in Sektor/Cylinder/Kopf Format Byte 8-11: Partitionsanfang in LBA Byte 12-15: Partitionslänge in Sektoren
Dateisystem: Die extended Partition Wenn mehr als vier Partitionen benötigt werden, dann kann eine extended Partition angelegt werden: Verbraucht einen Eintrag im MBR In der extended Partition existiert ein weiterer Bereich (MBR ähnlich), der die extended Partition in weitere Partitionen aufteilt Beispiel DOS: FDISK Ermöglicht genau eine normale Partition (Primäre Partition) Werden weitere Partitionen benötigt, so muß zuerst eine extended Partition angelegt werden Diese kann anschließend in mehrere logische Laufwerke unterteilt werden. Es werden maximal zwei Einträge im MBR verwendet
Dateisystem: Boot Sektor Abhängig von der Partition ID (aus dem MBR) ist die eigentliche Partition völlig unterschiedlich aufgebaut Fat12/Fat16/Fat32 Partitionen enthalten zuerst (1. Sektor der Partition) einen Bootsektor Enthält zusätzlichen Boot Code Enthält alle Parameter die für das verwendete Dateisystem notwendig sind Fat12/16 sind gleich aufgebaut Fat32 unterscheidet sich an mehreren Stellen, da es flexibler ist als Fat16
Dateisystem: Fat 16 Boot Sektor Auszug aus dem Fat16 Boot Sektor Byte 3-10: Betriebssystem Name Byte 11/12: Bytes pro Sektor (eigentlich immer 512) Byte 13: Sektoren pro Cluster (in 2er Potenzen) Byte 14/15: Reservierte Sektoren vor der ersten FAT Byte 16: Anzahl FATs (siehe Folie FAT) Byte 17/18: Anzahl Directory Einträge im Hauptverzeichnis Byte 21: Media Deskriptor Byte (veraltet) Byte 22/23: Sektoren pro FAT Byte 27-31: Anzahl Sektoren vor Bootsektor Byte 32-35: Anzahl Sektoren für große Partitionen Byte 39-42: Serial Number (nur FAT16) Byte 43-53: Volume Label (nur FAT16)
Dateisystem: Fat 32 Boot Sektor Zusätzlich zu den Fat16 Daten: Byte 36-39: Sektoren pro FAT Byte 40/41: Bitkodiert, welche FAT aktuell ist Bit 0-3: aktuelle FAT, Bit 7=0: Alle FAT aktuell Byte 44-47: Hauptverzeichnis Start Cluster Byte 67-70: Serial Number (wird beim DIR Befehl angezeigt) Byte 71-81: Volume Label (wird beim DIR Befehl angezeigt)