90 - 1.3. Beispiel: UNIX Dateisysteme [ID:28817]
50 von 76 angezeigt

So in dem Abschnitt will ich jetzt einfach mal Beispiele von in der Realität existierenden

oder früher existierenden Dateisystemen geben und will mich jetzt erstmal so auf ein paar sehr

simple Dateisystemen beschränken. Gut, FAT-Dateisystem hatte ich ja im Prinzip schon skizziert, wie das

läuft. Ein anderes wären die Unix-Dateisysteme, so das erste ab den 1970er Jahren eigentlich in

den ersten Unix-Systemen bereits entworfen worden und bis zur Unix System 5 in den 80er Jahren

durchaus verbreitet gewesen. Also das System 5.5 System ist so organisiert, dass man am Anfang in

den ersten Blöcken ein Bootblock hat. Da ist also die Information, um das Betriebssystem zu laden

drin und wenn ein Rechner hochgefahren wird, dann liest die Firmware des BIOS eben aus diesem

Block erstmal die Informationen und startet den Code, der da drin steht. Danach kommt der Superblock,

der enthält die Metainformationen oder die Verwaltungsinformationen für das Dateisystem.

Da steht also zum Beispiel drin, wie viele Blöcke das Dateisystem hat, wie viel Einnutz es in dem

Dateisystem gibt. Die Anzahl und auch eine Liste freier Blöcke und freier Einnutz ist da drin und

einige Attribute noch, zum Beispiel ein Modified Flag, das eben anzeigt, ob dieser Superblock

verändert worden ist. Also der wird in Hauptspeicher dann reingeladen und ob er verändert worden ist

oder nicht. Das ist einfach eine Frage, zum Beispiel wenn der Rechner abstürzt und der Superblock ist

unmodifiziert, ist das ein Indikator dafür, dass das Dateisystem unmodifiziert ist und dass man

eben die Konsistenz nicht prüfen muss. Beziehungsweise wenn er modifiziert wurde, dann muss sichergestellt

sein, dass eben auch alle Informationen des Dateisystems wirklich auf der Platte sind,

damit es konsistent ist. Im Anschluss daran kommen die Einnutz und am Ende, was heißt am Ende,

nach den Einnotblöcken kommen dann die eigentlichen Datenblöcke. Das große Problem bei dieser Art von

Dateisystem ist vor allem, dass die Einnutz nun ganz innen oder ganz außen, je nachdem wie man das

anordnet, typischerweise ganz innen auf den inneren Spuren der Platte liegen. Und wenn ich jetzt auf

der Datei zugreifen möchte, dann brauche ich jetzt erst mal den Einnutz, um die Nummern der

Datenblöcke zu finden. Das heißt, ich muss mit dem Plattenarm erstmal ganz nach innen gehen, muss

mir den Einnot lesen und dann mir die Datenblöcke zusammensuchen. Das heißt, ich habe alleine auf

grund dieser Verteilung Einnutz vorne, Datenblöcke danach, schon mal unvermeidbare Plattenarmbewegungen

und unter Umständen auch sehr große Plattenarmbewegungen, weil ich muss ja immer nach ganz

innen für die Einnutz und dann möglicherweise sehr weit nach außen für die Datenblöcke. Und

die Datenblöcke wurden damals tatsächlich in solchen verketteten Listen abgespeichert. Das

heißt, ich habe da in der Praxis wirklich auch so eine Fragmentierung bekommen, was durchaus

ungünstig war. Das war also seit den 1970er Jahren so in den ersten Unix-Systemen eben durchaus

weit verbreitet. Und man hatte 1980, um 1980, um an der Universität Berkeley ein Projekt, wo man sich

mit diesem Unix-System genauer beschäftigt hat, unter anderem auch mit dem Dateisystem und hat

da auch mal analysiert, wo sind da so die Probleme beim Dateisystem. Und das Ergebnis davon war

letztlich eine neue Dateisystemarchitektur, das Berkeley Fast File System mit der Unix-Version

BSD 4.2 erstmalig eingeführt. Und da hat man sich eben so ein paar Dinge überlegt, wie man das

Ganze optimieren kann. Man hat auf jeden Fall mal die Platte in Zylindergruppen unterteilt,

also jeweils so 10 bis 30 Zylinder werden zusammen verwaltet. Und pro Zylindergruppe gibt es dann

als erstes mal eine Kopie des Superblocks in jeder Zylindergruppe. Das ist letztendlich aus

Redundanzgründen, weil wenn der Superblock verloren geht, ist das immer besonders ungünstig,

weil dann hat man überhaupt keine Informationen mehr über die Plattengeometrie oder die

Dateisystemgeometrie. Und dann gibt es in jeder Zylindergruppe so ein Zylindergruppe Block,

der beschreibt letztendlich, wie viele Spuren das sind, wie viele Blöcke das sind und so weiter,

wie viel Einutz es da drin gibt. Und dann kommt pro Zylindergruppe erst mal eine Menge von Einutz

und dann eine Menge von Datenblöcken. Und das Dateisystem verwaltet also die freien Einutz und

auch die freien Datenblöcke einer jeder Zylindergruppe in diesem Zylindergrupp Block. Man kann also mit

wenig Plattenarmbewegung feststellen, wo habe ich freie Datenblöcke. Die freien Datenblöcke werden

als Bitterray verwaltet und dann wird vor allem versucht, eine Datei möglichst innerhalb einer

Zylindergruppe zu speichern. Das heißt, der Einut einer Datei und auch alle Datenblöcke einer Datei

werden innerhalb einer Zylindergruppe gehalten, sodass ich also auch beim Zugriff auf eine Datei

Teil eines Kapitels:
13 Dateisystem

Zugänglich über

Offener Zugang

Dauer

00:07:25 Min

Aufnahmedatum

2021-01-26

Hochgeladen am

2021-01-26 22:48:58

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen