92 - 2.1. Beispiel: NTFS: Verzeichnisse [ID:29261]
50 von 89 angezeigt

Ja, eine interessante Fragestellung ist jetzt natürlich in dem Zusammenhang auch, wie Kataloge,

also Direktories implementiert werden. Bei kurzen Katalogen ist es wieder genauso wie mit den

Dateien. Da wird die komplette Information, diese File Referenz, einfach mit im Stream in der

Master File Table gespeichert. Das ist also dann ein Index Stream und der besteht im Endeffekt

immer aus drei Einträgen. Das erste ist die File Referenz, also die Ein- und Nummer quasi oder die

Referenz auf ein Master File Table Eintrag. Dann steht an der Stelle der Dateiname, ist natürlich

ja im Prinzip auch wie bei Unix Directories so, und es steht aber noch die Dateilänge dabei.

Die Dateilänge wird natürlich auch in der Datei selber gespeichert, in dem Verwaltungstream dort,

aber man hält sie noch mal im Index mit, weil das eine Information ist, die man bei der Anzeige von

Directories üblicherweise unmittelbar braucht. Also ein normaler File Browser zeigt das halt mit an.

Und um den zusätzlichen Zugriff sich zu sparen, hat man sich da entschieden, dass man diese

Information lieber redundant speichert. Hat natürlich zur Folge, wenn sich die Länge einer

Datei ändert, dann muss ich es nicht nur im Stream der Datei, sondern eben auch im entsprechenden

Katalog Stream aktualisieren. Das ist gewisser mehr Aufwand, aber dafür tut man sich natürlich beim

Anschauen der Kataloge leichter. Nachdem üblicherweise Kataloge wohl öfters gelesen werden,

als das Datein verändert werden, ist das einfach eine Abwägungsfrage, wo gewinne ich mehr Effizienz an.

Ja gut, und dann gibt es noch eine Belegungstabelle, wo letztlich drinsteht, wie dieser Index belegt ist.

Wenn so eine Datei größer wird, dann passt natürlich dieser Index auch nicht mehr rein,

und dann arbeitet das Ganze auch wieder mit einem Erweiterungskonzept. Das heißt, ich adressiere

hier wieder Extents und habe da auch wieder meine Virtual-Cluster-Nummer, meine Logical-Cluster-Nummer

und die Länge des Extents. Und in so einen Extents passt dann eben wieder eine weitere Zahl von Dateien

rein. Also jetzt in diesem Bild habe ich jetzt pro Cluster nur eine Datei reingespeichert. Also hier

in den Blöcken 89, 90, 91 und 92 sind also jetzt diese vier Logical-Cluster. Da stehen jetzt drei

Dateien drin und in den Blöcken 173, 174, 175, 176, da stehen auch drei Dateien drin. Da ist also

zwischendrin mal ein Eintrag frei, es hat eine Datei gelöscht worden. Und die Dateien werden

da drin sortiert gespeichert. Es ist also ein B-Plus-Baum. Das sind Konzepte aus dem Datenbank-Bereich,

wie man sehr effizient eben solche Datenmengen abspeichern kann. Und da will ich jetzt im Detail

nicht auf die B-Baum-Algorithmen eingehen, aber es ist also eben eine Methode, um eben auch sehr

große Verzeichnisse eben sehr schnell durchsuchbar zu machen. Man muss ja also nicht linear durchsuchen,

sondern man kann in diesem Baum dann durch Baumtraversieren eben sehr schnell zum Ziel kommen. Und

in so einen Cluster passen eben nicht nur wie in dem Beispiel hier jeweils eine Datei rein, sondern

irgendwo zwischen drei und 15 Dateien, je nachdem wie groß ein Eintrag für so eine Datei ist und

auch wie groß die Cluster sind. Schauen wir uns nochmal die Master File Table an. Die wird ja nicht

nur verwendet, um Dateien zu speichern, sondern da drin liegt auch eine ganze Reihe von Metadaten,

die eben zur Verwaltung dieses Dateisystems benötigt werden. Im ersten Eintrag dieser Master

File Table steht die Master File Table selbst. Die Master File Table selbst ist quasi auch eine

Datei und eine Datei besteht ja aus einer Reihe von Chunks, Blöcken. Und im Endeffekt in diesem

ersten Eintrag steht, wo die Master File Table steht. Also im Endeffekt diese ganzen Folgeblöcke,

also diese Chunks, sind eben hier drin eingetragen. Und das interessante ist halt, wenn die Master

File Table jetzt von der Größe her nicht reicht, dann kann ich sie auf die Weise natürlich ganz

leicht ergänzen, indem ich hier oben einfach einen weiteren Chunk eintrage und der verweist dann

eben wieder auf eine Menge von Datenblöcken irgendwo auf der Platte, die eben dann auch zur

Master File Table gehören. Also auf die Weise wird die Master File Table selbst genauso flexibel in

der Verwaltung wie jede normale Datei auch. Also sie verwaltet sich quasi selbst. Nachdem die

Master File Table natürlich wichtig ist, weil da drin natürlich letztendlich alle Informationen

steht, wo was steht, wird sie nochmal kopiert, um im Ernstfall, wenn was kaputt geht, irgendwie

sie eben nochmal zu haben. Dann kommt das Log File. Auf das gehe ich dann nochmal detaillierter ein,

wenn ich auf dieses Konzept der Log Structure File Systeme eingehe. Dann die Volume Information,

die enthält solche Sachen wie Name, Größe und ähnliche Attribute des Volumes. Als nächstes

kommt dann die Attributtabelle, die beschreibt die möglichen Streams, die es in diesem Dateisystem

Teil eines Kapitels:
13 Dateisystem

Zugänglich über

Offener Zugang

Dauer

00:09:08 Min

Aufnahmedatum

2021-02-01

Hochgeladen am

2021-02-01 18:19:19

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen