|
Verzeichnisse (Kataloge, Ordner, Directories, Folder)
Bei frühen BS bestand das Dateisystem lediglich aus einem Verzeichnis, das
alle oben aufgeführten Informationen zu jeder der Dateien in einer Liste zusammengefasst hat. Über dieses Verzeichnis kann dann gezielt auf eine bestimmte Datei zugegriffen werden.Ein erster Schritt der Verbesserung war die Unterteilung in Benutzerbereiche auf der Platte (z. B. bei CP/M) oder ein Verzeichnis für jeden Benutzer. Für Benutzer mit vielen Dateien war diese Lösung jedoch immer noch unbefriedigend, da eine logische Strukturierung der Dateien unmöglich war. Erst eine allgemeine Hierarchie von Katalogen (z. B. als Baum) bot die gewünschte Strukturierungsmöglichkeit (UNIX, MS-DOS).
Ist ein Dateisystem als Baum organisiert, benötigt man eine Methode, den Dateinamen
zu spezifizieren:
- absoluter Pfadname:
Ausgehend vom Wurzelverzeichnis wird ein Pfadname vergeben, in dem alle Verzeichnisse
aufgeführt sind, die zur Datei führen. Der absolute Pfadname ist immer
eindeutig.
- relativer Pfadname:
Er wird in Verbindung mit dem Konzept des Arbeitsverzeichnis (working directory)
oder aktuellen Verzeichnisses verwendet. Der Benutzer kann jederzeit ein beliebiges
Verzeichnis zum aktuellen Verzeichnis erklären. In diesem Fall werden alle
nicht absolut angegebenen Pfadangaben relativ zu diesem Verzeichnis angegeben.
Zum Beispiel:
absoluter Pfadname: | /meier/projekt/daten/dat1 |
working directory: | /meier/projet |
relativer Pfadname: | daten/dat1 |
System mit nur einem Verzeichnis: z. B. CP/M
Das Verzeichnis besteht aus einer Tabelle mit Einträgen fester Länge:
Die Datei ist in Blöcken auf der Platte gespeichert, wobei der letzte Block
nicht vollständig gefüllt sein muß. Das Feld "Extend" wird
benötigt, wenn die Länge der Datei 16 Blöcke überschreitet. In
diesem Fall wird ein zweiter Eintrag angelegt, und "Extend" hochgezählt.
Das Verzeichnis hat eine feste Größe.
Hierarchisches System: z. B. MS-DOS
Hier enthält das Verzeichnis nur die erste Blocknummer der Datei, die als
Index für die FAT (File Allocation Table) dient und so die Bestimmung der
weiteren Blocknummern gestattet. Das Root-Verzeichnis hat eine feste Größe;
die Unterverzeichnisse sind Dateien, die beliebige viele Einträge aufnehmen
können.
Bevor man die Festplatte benutzen kann, muß man die Festplatte partitionieren und
ein Dateisystem einrichten, damit das Betriebssystem darauf Daten ablegen kann.
Das FAT-Dateisystem besteht im wesentlichen aus zwei Teilen:
- Dem Inhaltsverzeichnis: Hier werden die Namen der gespeicherten Dateien sowie
deren Position auf der Festplatte mit dem eigentlichen physischen Bereich auf der
Festplatte verknüpft.
- Der Datenbereich: Hier sind unsortiert und durcheinander die Datenblöcke
aller Dateien gespeichert, die auf der Festplatte abgelegt wurden.
Die FAT führt Buch über die freien und belegten Plattenblöcke.
Mit der Entwicklung von Windows 95 sah sich auch Microsoft genötigt,
das betagte FAT-Dateisystem durch einen leistungsfähigeren Nachfolger
zu ersetzen. Das Ergebnis heißt VFAT oder FAT32 (Virtual-FAT).VFAT
unterstützt bis zu 255 Zeichen lange Dateinamen. Sogar unter DOS
behalten diese ihre Gültigkeit in Form einer Ersatzdarstellung mit
8+3 Zeichen. Ferner besitzt die VFAT eine Pseudo-Unterscheidung zwischen
Gross- und Kleinschreibung, konvertiert aber alle im 8+3-Format vorliegenden
Dateinamen in große Buchstaben um.
Hierarchisches System: z. B. UNIX
Bei UNIX ist die Verzeichnisstruktur sehr einfach. Jeder Eintrag besteht nur aus
dem Dateinamen und einer Nummer. Der Dateiname war anfangs auf 14 Zeichen begrenzt,
kann aber heute bei den meisten Systemen sehr viel länger sein. Die Nummer
verweist auf den sogenannten i-node, der alle weiteren Informationen zur Datei
enthält. Die Verzeichnisse sind Dateien. Alle i-nodes haben einen festen Platz
auf der Platte.
Zusätzlich zu den Dateiverweisen muß bei den hierarchischen Dateisystemen
in Unterverzeichnissen (außer Root) noch mindestens ein Verweis auf das übergeordnete
Verzeichnis enthalten sein, da sonst ein "Navigieren" in den Verzeichnissen
nicht möglich ist (in der Regel ".."). In der Regel existiert noch
ein weiterer Verweis auf das Verzeichnis selbst (in der Regel".").
Im Gegensatz zu CP/M oder MS-DOS, bei dem die einzelnen Plattenlaufwerke durch
einen Buchstaben, gefolgt von einem Doppelpunkt, gekennzeichnet werden, sind bei
UNIX die Platten in das Dateisystem eingebunden und können an ein beliebiges
Unterverzeichnis gekoppelt werden.
Hierarchisches System: z. B. NTFS
"NTFS" ist eine Abkürzung für "New Technology File System". Es handelt sich um ein
Dateisystem mit neuerer Technologie, das mit WINDOWS NT eingeführt wurde. Dieses
Dateisystem unterstützt lange Dateinamen, erweiterte Dateiattribute und sehr große
Speicherkapazitäten (bis zu 2 hoch 64 Bit, also ca. 17 Milliarden GByte).
Dateinamen werden im Unicode, einem 16 Bit-Zeichensatz, gespeichert das heisst
gute Austauschbarkeit zwischen Systemen. NTFS löst Probleme, die mit dem FAT-Dateisystem
(DOS/Windows) bestanden Dateinamen können wie bei VFAT bis zu 255 Zeichen lang
sein und es gibt raktisch keine Beschränkung im Hinblick auf die Größe einer
Datei, eines Verzeichnisses oder einer Festplatte. Außerdem ist die
Clustergröße auf großen Platten frei wählbar und es entfällt der FAT-typische
Verschnitt bei großen Festplatten. Alle Dateien und Verzeichnisse sind in den
Zugriffskontrollmechanismus von Windows NT eingebunden. Die Zugriffsoperationen
(Lesen, Schreiben, Löschen ) können separat für beliebige Benutzer oder Gruppen
erlaubt bzw. verboten werden. Damit haben nur bestimmte Personen Zugriff auf
vorher vom Systemadministrator festgelegte Dateien. Bei der Entwicklung von
Windows NT und NTFS wurde besonders auf die Sicherheit gegen Datenverlust
geachtet. NTFS arbeitet bei Metadaten (z. B. Verzeichnisse)
transaktionsorientiert. So werden unvollständige Änderungen nach einem
Systemausfall entweder vervollständigt oder rückgängig gemacht.
Die wichtigste Komponente von NTFS ist die MFT (Master File Tabelle). Jede Datei
wird durch einen Eintrag in der MFT repräsentiert, denn auch die MFT ist eine
Datei. Die ersten 16 Einträge dieser Tabelle sind reserviert.
- Der erste Eintrag beschreibt MFT selbst,
- der zweite Eintrag ist ein MFT-Spiegeleintrag,
- der dritte Eintrag verweist auf eine Logdatei, die für die Wiederherstellung von
Dateien benötigt wird.
Ab dem 17. Eintrag beziehen sich alle Einträge auf die einzelnen Dateien und
Verzeichnisse des Datenträgers. Jedem Dateieintrag wird eine bestimmte Menge an
Speicherplatz zur Verfügung gestellt, in den die Attribute der Datei geschrieben
werden. Kleine Dateien bzw. Verzeichniseinträge können vollständig vom
MFT-Eintrag aufgenommen werden.
Größere Verzeichniseinträge werden in Form von B-Trees organisiert, deren Einträge
Zeiger auf externe Cluster enthalten, welche die Verzeichniseinträge aufnehmen.
Jeder Datei bzw. jedem Verzeichnis ist ein Satz von Attributen (Dateiname, Daten,
Sicherheits-ID) zugeordnet.
Einige Typen von NTFS Dateiattributen
Standardinformation | Zeitpunkt der letzten Speicherung usw. |
Attributliste | Liste aller weiteren Attribute (nur für grosse Datei) |
Dateiname | langer Dateiname bis zu 255 Unicode-Zeichen, kurzer Dateiname 8+3 Zeichen
(MS-DOS), zusätzliche Namen als weitere Dateinamensattribute möglich (Hard Links von POSIX gefordert) |
Sicherheitsdeskriptor | Informationen über Eigentümer der Datei, über Benutzer die auf diese Datei Zugriff haben usw. |
Daten | eigentlichen Daten der Datei |
Index-Wurzel | bei der Implementierung von Verzeichnissen notwendig |
Index-Zuordnung | bei der Implementierung von Verzeichnissen notwendig |
Datenträgerinfo | wird nur bei der Systemdatei des Datenträgers verwendet und enthält u.a. die Version und den Namen des Datenträgers |
Bitmuster | eine Karte der in der MFT oder im Verzeichnis belegten Einträge |
Aufbau eines MFT Eintrages
| FAT | NTFS |
Dateiname | 8+3 ASCII-Zeichen, durch einen Punkt getrennt | 255 Unicode-Zeichen;mehrere Punkte sind alsTrennzeichen zulässig |
Dateigrösse | 232 Bytes | 264 Bytes |
Partition | 232 Bytes | 264 Bytes |
max. Länge des Suchweges | 64 | Unbegrenzt |
Attribute | einige Bitflags | Alles, inklusive der Daten, wird als Dateiattribut behandelt |
Verzeichnisse | unsortiert | B-Tree |
Konzept | einfach | Schnell, mit Datenwiederherstellung / Sicherheit |
eingebaute Sicherheit | Nein | Ja |
NTFS unterstützt Hot-Fixing: Bei fehlerhaften Sektoren werden die Daten in einen
anderen Sektor verschoben und der defekte Sektor wird in die Karte der
fehlerhaften Sektoren eingetragen die allen Anwendungen mit Schreib- und
Leserechten zugänglich ist.
Jede E/A-Operation, die eine Datei auf einem NTFS-Datenträger verändert, wird als
Transaktion betrachtet und kann als geschlossene Einheit verwaltet werden. In
der Protokolldatei werden alle Infos zum Wiederholen bzw. Rückgängigmachen der
Transaktion gespeichert --> hoher Aufwand für die Protokollierung.
|
|
|