Linux

Das Dateisystem


Wie bereits erwähnt ist die Linux-Verzeichnisstruktur wesentlich straffer und ordentlicher aufgebaut*. Doch wie wird dies auf der Platte verwaltet. Linux nutzt hier die Dateisysteme Extended Fielesystem (ext fs), Xia Filesystem (xiafs) und Extended File System Version 2 (ext2 fs).

Grundlagen

Die hierarchische Baumstruktur von Linux wird über ein Dateisystem angesprochen und verwaltet, so das es für den User als eine schöne logische Struktur aussieht. Linux kann sogar andere Dateisystem wie MS-DOS oder Windows 95 (vfat) einbinden ohne diese Struktur zu zerstören.

Dateisysteme werden in Blöcken verwaltet. Blöcke sind bei Festplatten 512 Byte groß, was vom Controller vorgegeben wird. Blöcke sind die Positionsbeschreibungen der Platte. Jedes File System verwaltet diese Blöcke anders.

Ein Auszug der vom Kernel (Version 2.0) unterstützen Datei-Systeme:

Typ

Kurzbeschreibung

affs

Amiga Fast File System

ext fs

Extended File System

ext2 fs

Extended File System Version 2

hpfs

High Performance- File System (Lesen v. O/2 FS)

vfat

FS mit Virtual File-Allocation-Table, wie z. B. bei Win 95


Die Bestandteile des Extended File System Version 2 (ext2)

Auch wenn sich alle Dateisystem unterscheiden so gleichen sich die Komponenten

Bei ext2 existieren mehrere Superblöcke, um bei Hardwarefehler Ausfälle zu reduzieren. ext2 faßt Superblocks, Indode-Listen und Datenblöcke zu sog. Groups zusammen, damit ein effektiverer Datenzugriff erreicht werden kann. Jede Group enthält einen Superblock und eine Liste, welche Groups insgesamt vorhanden sind und wo sie auf der Platte "stehen". Außerdem enthält die Group noch zwei Bitmaps die belegte/freie Indoes/Blöcke anzeigen. Danach folgen die Inode-Liste und die Datenblöcke.

In Inodes werden unter Linux alle Verwaltunginformationen zu einem Objekt (z. B. Datei) im Dateisystem gespeichert. Beispiele: Besitzer, Größe, Zugriffsrechte

Bootblock

Er liegt im ersten Block (Block 0) in jedem Dateisystem. Im Bootblock oder Bootsektor ist ein Programm zu Starten und Initialisieren des Systems vorhanden. Normalerweise können Anwendungen oder andere Benutzerprogramme diesen Block nicht ansprechen. Es gibt allerdings einige Viren-Programme, die hier gerne Schaden anrichten. Oft ist nur der erste Bootblock der Festplatte mit dem Start/Init-Programm versehen. Bei ext2 ist er 1.024 Zeichen groß.

Groups

Eine Group wird aus 6 Komponenten gebildet:

Superblock

Über Superblocks werden alle Informationen eines Dateisystems verwaltet.

Einige dieser Information sind

Bitmaps

In den Bitmaps wird für jeden zu verwaltenden Block/Indode ein Bit gesetzt (0 = frei, 1 = belegt).

Inode-Liste

Sie besteht aus einer Vielzahl von hintereinalderliegenden gleich großen Indoes. Die Anzahl wird im Superblock der Group festgelegt.

Grundsätzlich können Indoes in 2 verschieden Formen auftreten:

Ein großer Teil der Arbeit von Linux ist das Umsetzten von Dateinamen in Indoes.


Tabelle mit Blockadressen

Sie hat 15 Einträge. Jeder dieser Einträge verweist auf einen Datenblock, der dann alle Infos zu einer Datei enthält. Hierbei gilt:

Datenblöcke

Hinter der Inode-Liste beanspruchen die Datenblöcken den restlichen Platz im Dateisystem. Jeder Datenblock hat genau die Größe eines logischen Blocks. ext2 verwaltet die Datenblöcke innerhalb von Groups. Dies ist aber nicht bei jedem anderen Dateisystem der Fall.

Ein- / Ausgabepuffer

Die Inodes und die Datenblöcke liegen im Dateisystem auf der Platte. Damit sie verarbeitet werden können müssen in den Hauptspeicher gelesen bzw. aus diesem geschrieben werden können. Unten stehende Grafik verdeutlicht das Prinzip in Linux.

VFS - Virtual Filesystem

Wie schon erläuter kann Linux eine große Anzahl von Dateisystemen verwalten. Allerdings ist nicht jedes Filesystem gleich. Deshalb wurde für Linux ein virtuelles Dateisystem (VFS) entwickelt.

Wichtig

Jedes Dateisystem sollte vor dem ausschalten heruntergefahren werden. Dies kann mit dem Befehl umount /dev/Festplatte erreicht werden. Es empfiehlt sich allerdings das System mit dem Skript shutdown herunterzufahren.




[Zurück]