Einführung in die Betriebssysteme Fallstudien zu Dateisystemen Seite 1 Unix-Dateisystem Der Adreßraum einer Datei wird in gleichlange Blöcke aufgeteilt. Ein Block hat die Länge von 1 oder mehreren Sektoren (z.b. 1K). Die Blöcke werden gestreut abgespeichert. Die Adressen der Blöcke werden in Indextabellen gehalten. Jeder Datenträger besitzt einen I-Node-Array. Jede Datei auf dem Datenträger hat einen I-Node-Eintrag. Aufteilung des Datenträgers 0 1 2... n n+1... M Bootstrap- Inode-Blöcke Datenblöcke block Superblock
Einführung in die Betriebssysteme Fallstudien zu Dateisystemen Seite 2 Inode: Dateiknoten Zahl der Links auf die Datei UID des Besitzers GID des Besitzers Dateilänge Erstellungszeit Zeit des letzten Bezugs Zeit der letzten Änderung 10 Blockadressen (Adressen der ersten 10 Datenblöcke) einfach indirekte Blockadessen doppelt indirekte Blockadressen dreifach indirekte Blockadressen Mit den Inodes wird eine flache Dateistruktur definiert. Eine Datei wird eindeutig durch ihre Knotennummer beschrieben. Über diesem flachen Dateisystem ist über eine Verzeichnisstruktur ein baumstrukturiertes Dateisystem definiert. Verzeichnis Inode Datei-/Verz.-Name 26. 6.. 64 quellen 92 bin 67 readme.txt Dem Root-Verzeichnis ist der erste Inode zugeordnet.
Einführung in die Betriebssysteme Fallstudien zu Dateisystemen Seite 3 FAT-Dateisystem FAT-Festplattenpartition BIOS-Daten FAT 1 FAT 2 Hauptverzeichn. Datenbereich (Kopie) Der Adreßraum der Dateien wird in gleichlange Blöcke aufgeteilt (Länge 1 oder mehrere Sektoren). Die Blöcke werden gestreut abgespeichert. Die Zuordnung geschieht über die FAT-Tabelle (File Allocation Table). Die Blöcke auf dem Datenträger bezeichnet man als Zuordnungseinheiten. Dateizuordnungstabelle DATEI1.txt 002 DATEI2.txt 005 BIN 007 0 1 2 3 4 5 6 7 8 9 10 11 12... 003 004 FFF 006 008 FFF FFF DATEI1.txt belegt die Zuordnungseinheiten 2,3 und 4; DATEI2.txt die Zuordnungseinheiten 5, 6 und 8 (jeweils in dieser Reihenfolge). Verzeichniseinträge Dateiname (8+3 Zeichen) Attribut-Byte Zeit der letzten Bearbeitung Datum der letzten Bearbeitung Erste Zuordnungseinheit Dateilänge Das Dateisystem hat eine Baumstruktur. Für jede Datei enthält die Dateizuordnungstabelle eine lineare, gezeigerte Liste, mit der die Blöcke der Datei bzw. des Unterverzeichnisses bestimmt werden können. Der Index der Tabelleneinträge stellt die Blocknummer dar. Beurteilung: Das FAT-Dateisystem ist einfach, bei kleinen Datenträgern schnell und nicht sicher.
Einführung in die Betriebssysteme Fallstudien zu Dateisystemen Seite 4 NTFS (Windows NT File System) Im NTFS kennt man nur Dateien. Analog zu den Inodes im UNIX- Dateisystem gibt es eine Datei mit dem Namen Master File Table (MFT). Jede Datei des Datenträgers besitzt einen Eintrag in der MFT. Die Speicherung ist gestreut, jedoch wird ähnlich wie im HPFS versucht, möglichst große zusammenhängende Bereiche (Extents) einzurichten. Diese Extents werden wieder über eine B-Baumstruktur verwaltet. Master File Table Extents MFT Log-Datei... kleine Datei große Datei kleines Verzeichnis großes Verzeichnis... MFT-Eintrag für kleine Dateien bzw. kleine Verzeichnisse Standard- Name Sicherheits- Daten oder Index information beschreibung Ein Datenträger (Volume) enthält ausschließlich Dateien. Was ist eine Datei? NTFS betrachtet jede Datei (bzw. jedes Verzeichnis) als einen Satz von Attributen. Sämtliche Elemente, wie zb der Dateiname, die SicherheitsID,
Einführung in die Betriebssysteme Fallstudien zu Dateisystemen Seite 5 die Daten sind Dateiattribute. Jedes Attribut wird durch den Code für den Attributtyp bzw. durch den Attributnamen identifiziert: 1. Standardinformationen (zb Zeitpunkt der letzten Speicherung, Link-Zähler) 2. Dateiname (wiederholbares Attribut, mehrere Namen möglich) 3. Sicherheitsdeskriptor 4. Daten: Das sind die eigentlichen Daten der Datei. Eine Datei kann mehrere Datenattribute enthalten. Üblich ist ein unbenanntes Datenattribut. 5. Index-Wurzel: Wird für die Implementierung von Verzeichnissen benötigt 6. Index-Zuordnung: dito 7. u.a. MFT-Einträge Bei kleinen Dateien bzw. Verzeichnissen werden alle Attribute (incl. der Daten) innerhalb des MFT-Eintrages abgespeichert (bis zu 1 bis 4 KB). Ein Eintrag in der MFT benötigt einen oder mehrere Sätze der MFT(Satzlänge ist konfigurierbar). Bei großen Dateien enthält der MFT-Eintrag den Wurzelknoten eines B- Baums, dessen Blätter die Verweise auf die zusammenhängenden Dateibereiche (Extent oder Lauf) enthält. Adressierung: Der Datenträger wird analog zum FAT-System als Folge von Clustern (Zuordnungseinheiten, Vielfaches eines Sektors) definiert. Die Cluster sind durchnummeriert. Adressiert wird mit dieser LCN (logical cluster number). Identifikation der Dateien: Jede Datei wird eindeutig über eine ID-Nummer (file reference) indentifiziert. (Warum nicht über den Namen?) Diese ID ist die Satznummer ihres Eintrages in der MasterFileTable (48 Bit). Zusätzlich wird eine Folgenummer (16 Bit) angehängt, die bei jedem Bezug auf den MFT-Eintrag (zb beim Öffnen der Datei) um 1 erhöht wird (Konsistenzüberprüfung, technisches Detail). Verzeichnisse: Ein Verzeichniseintrag besteht aus dem Dateiname, die ID- Nummer der Datei bzw. des Unterverzeichnisses, eine Kopie der Update- Zeit und der Dateilänge aus dem MFT-Eintrag. Organisation nicht als lineare Liste (wie zb beim FAT-System), sondern als B-Baum.
Einführung in die Betriebssysteme Fallstudien zu Dateisystemen Seite 6 B-Baum: eine Baumstruktur, die so realisiert werden kann, dass man mit möglichst wenigen Plattenzugriffen zu der gewünschten Verzeichnisinformation kommen kann. Bemerkung Ähnlich wie die Inode-Tabelle beim UNIX-System stellt die MFT ein flaches Dateisystem dar. Über die Verzeichnisse wird darauf die bekannte Baumstruktur definiert. Spezialdateien auf dem Datenträger MasterFileTable (MFT) MFT2: enthält die ersten 16 Einträge der MFT als Backup. Logdatei: Enthält Daten über Transaktionen, sie dienen der Wiederherstellung der Daten- bzw. der Dateisystemkonsistenz bei Systemabstürzen oder unvollständigen Dateimanipulationen. Datenträgerdatei: Name des Datenträgers, Versionsnummer des Dateisystems, Verdacht auf Inkonsistenz Wurzelverzeichnis Cluster-Bitmap-Datei: Belegte und freie Cluster des Datenträgers Bootdatei: Startcode für NT BadClusterDatei: enthält Verweise auf defekte Cluster Datenschutz und Datensicherheit Die Konsistenz ist bei NTFS in Gefahr, da die Daten des Datenträgers in einem Hauptspeichercache zum Teil zwischengespeichert werden, als lazy write (verzögertes Zurückschreiben) ausgeführt. Über die Logdatei wird über Veränderungen Buch geführt. Mit den Einträgen kann nachträglich bei Bedarf die Konsistenz des Dateisystems oder der Daten einer Datei wiederhergestellt werden. Vorrang hat die Konsistenz des Dateisystems, Dateidaten könne u.u. verloren gehen. Jede Datei enthält ein Sicherheitsattribut. Dort ist der Besitzer der Datei vermerkt und eine Zugriffsliste, die Zugriffsprivilegien der anderen Nutzer regelt.
Einführung in die Betriebssysteme Fallstudien zu Dateisystemen Seite 7 Vergleich von FAT, HPFS und NTFS FAT HPFS NTFS Dateiname 8+3 Zeichen durch Punkt getrennt 254 Bytes Mehrere Punkte zulässig 255 Unicode- Zeichen Punkte sind Trennzeichen Dateigröße 2 32 Bytes 2 32 Bytes 2 64 Bytes Partition 2 32 Bytes 2 41 Bytes 2 64 Bytes Max. Länge des Suchweges (Pfadlänge) 64 unbegrenzt unbegrenzt Attribute einige Bitflags Bitflags und bis zu 64k an erweiterten Attrib. Alles, einschl. der Daten wird als Dateiattribut behandelt. Verzeichnisse unsortiert B-Baum B-Baum Konzept einfach schnell schnell, mit Datenwiederhers t./ Sicherheit eingebaute Sicherheit nein nein ja