Programmieren lernen mit Eas — das Tutorial von Molaskes

Wie der Computer funktioniert:12. Das Dateisystem

Die Daten jedes Speichergeräts beginnen bei der Adresse "0" mit einem Inhaltsverzeichnis, das alle Dateien und Ordner/Verzeichnisse auflistet, die auf ihm gespeichert sind. Das Inhaltsverzeichnis gibt für jedes Element an: - die ID seines übergeordneten Verzeichnisses ("0" = "Stammverzeichnis") - die Verzeichnis-ID (beginnend bei "1"), wenn es keine Datei ist - seinen Namen (mit optionaler Typ-Erweiterung) - die Startadresse der eigentlichen Datei-Daten - die Länge (Größe) der Datei in Bytes sowie, je nach Betriebssystem: - ein Nur-lesen-Schreibschutz-Flag - Zugriffs-Flags nach Nutzergruppen (oder "System", "versteckt" usw.) - Daturm/Uhrzeit-Einträge für "letzte Änderung", eventuell auch "angelegt", "zuletzt geöffnet" usw. Um für physische Laufwerke die Zugriffszeiten, den Energieverbrauch und den mechanischen Verschleiß zu minimieren, kann das Inhaltsverzeichnis je nach Betriebssystem auch segmentiert werden und Extra-Einträge zur Suchbeschleunigung enthalten. Es erfasst zudem die Summe aller von Dateien belegten Bytes, so dass immer bekannt ist, wieviel freier Speicherplatz noch zur Verfügung steht. Um den Inhalt des Stammverzeichnisses aufzulisten, durchsucht dein Computer das Inhaltsverzeichnis nach allen Einträgen, deren ID des übergeordneten Verzeichnisses auf "0" gesetzt ist. Um den Inhalt eines anderen Verzeichnisses‌ aufzulisten, durchsucht er das Inhaltsverzeichnis nach allen Einträgen, die dessen Verzeichnis-ID als die ID ihres übergeordneten Verzeichnisses haben. Wenn du eine Datei löschst, entfernt das Betriebssysem typischerweise nur einfach seinen Eintrag im Inhaltsverzeichnis, die eigentlichen Datei-Daten verbleiben hingegen auf dem Speichergerät, bis sie irgendwann von einer neuen Datei überschrieben werden. Deswegen können verlorengegangene Dateien manchmal wiederhergestellt werden, wenn ein spezielles Programm nach Datei-Daten sucht, die keinen Inhaltsverzeichnis-Eintrag haben. Wenn du eine Datei innerhalb der Verzeichnisstruktur desselben Speichergeräts verschiebst, wird einzig die ID seines übergeordneten Verzeichnisses im Inhaltsverzeichnis geändert, weswegen in diesem Fall das Verschieben ohne Zeitverzögerung erfolgt. Wenn du hingegen eine Datei kopierst, müssen all ihre Datenbytes gelesen und kopiert werden, was bei großen Dateien etwas dauern kann. Wenn du eine Datei von einem Speichergerät auf ein anderes verschiebst, wird die Datei zuerst kopiert‌ (dauert etwas) und dann am Originalort gelöscht‌ (dies geht ruckzuck, siehe oben). Manche Betriebssysteme können Speichergeräte in mehrere kleinere "virtuelle" Speichergeräte aufteilen. Dabei erhält jede solche "Partition" auf dem Speichergerät ihr eigenes Inhaltsverzeichnis. Dateien von einer Partition auf eine andere zu verschieben dauert dann ebenso lange wie zwischen physischen Geräten, denn nun muss auch hier erst kopiert und dann gelöscht werden. Wenn Dateien gelöscht werden, entstehen ungenutzte "Löcher" im Speicher. Ein kleineres Loch entsteht, wenn eine Datei verkleinert aktualisiert (gespeichert) wird. Und wenn sie größer geworden ist, muss das Betriebssystem sie mitunter in einem noch unbenutzten Bereich des Speichers ganz neu erstellen und seine Startadresse darauf setzen, wobei der Ort der alten Datei-Daten dann wiederum als Loch verbleibt. Der Nutzer kann ein Systemprogramm ausführen, um das Dateisystem zu defragmentieren, was die Datenblöcke sämtlicher Dateien so verschiebt, dass keine Löcher mehr übrigbleiben — was durch das viele Umherkopieren von Daten und das häufige Aktualisieren des Inhaltsverzeichnisses natürlich sehr lange dauert. Das Dateisystem mag zudem sogar einzelne Dateien fragmentieren, indem sie auf Teilblöcke verteilt kreuz und quer auf dem Speichergerät verteilt abgelegt werden (wozu weiterre Strukturdaten zusätzlich zum Inhaltsverzeichnis notwendig sind), was beim Defragmentieren ebenfalls entwirrt wird.
12. Das Dateisystem
D Du brauchst zwei Dinge
K Kontakt
Esc Suchen / Inhaltsverzeichnis
Tab