Lade Inhalt...

Dateisysteme unter Linux

Ausarbeitung 2002 17 Seiten

Informatik - Angewandte Informatik

Leseprobe

Inhaltverzeichnis

Vorwort

VFS – Virtual File System
interessantere Dateisysteme

Das EXT2 Dateisystem
Das Blocksystem – die grundlegende Struktur eins UNIX Dateisystems
Der Bootblock
I-Nodes
Optimierungen im Linux-Dateisystem EXT
Warum Gruppen?

EXT2 – Umgang mit dem Dateisystem
Dateinamen
Zugriffsdatum
Eigentümer
Gruppenzugehörigkeit
Anzahl der Dateinamen
Zugriffsmodus und Dateiart
Das Mounten von Dateisystemen
Die Überprüfung beim Systemstart

Dateiarten unter Unix
Reguläre Dateien
Symbolische Links
Verzeichnisse
Blockorientierte Geräte
Zeichenorientierte Geräte

Schlusswort

Quellen:

Vorwort

Ein Dateisystem eignet sich dafür, die Aufnahme von Dateien auf Speichern (zum Beispiel Festplatten, Disketten oder CD-ROMs) zu ermöglichen. Das System stellt ein gemeinsames Interface für alle Dateisystemtypen bereit, mit denen es arbeiten kann. Unter Linux gehören das Second Extended Filesystem (oderext2fs) dazu, unter dem man Linux-Dateien ablegen kann. Die Anforderungen der Einfachheit, der Sicherheit und der Erweiterbarkeit stehen im Vordergrund und dadurch eignet sich nicht jedes Dateisystem zum Standard. Das Extended Filesystem 2 hat sich in den letzten Jahren dank der Unterstützung dieser Eigenschaften zum Standard durchgesetzt. Der Aufbau, die Funktionsweise und die Schnittstelle zum Betriebssystem (VFS) werden in dieser Ausarbeitung dargestellt.

VFS – Virtual File System

Ein großer Vorteil des Linux-Dateisystems, gegenüber anderen Betriebssystemen, ist es, dass viele verschiedene Dateisysteme unterstützt werden. Der Linux Kernel ist so modular aufgebaut, dass es, ab der Version 1.1.8, möglich ist, neue Dateisysteme zur Laufzeit einzubinden.

Die Dateisysteme, wie das EXT2, werden von dem Virtual Filesystem Switch (VFS) verwaltet.

Das VFS dient als Schnittstelle zwischen den speziellen Dateisystemen und den zugreifenden Prozessen. Innerhalb des virtuellen Dateisystems werden die Systemaufrufe der Applikationen an das eigentliche Dateisystem weitergeleitet.

Die Idee, die demvirtual file system(VFS) zugrunde liegt, besteht darin, dateisystemunabhängige Datenstrukturen zur Repräsentation von Dateisystemtypen, Superblöcken, Inodes und Dateien zu schaffen.

Jede der Datenstrukturen der VFS-Schicht enthält einen Zeiger auf eine Struktur, die nur aus Funktionszeigern besteht. Diese Funktionszeiger definieren den dateisystemspezifischen Satz von Operationen, die auf der betreffenden Datenstruktur anwendbar sind. Das VFS enthält den allgemeinen Code, der mit Superblöcken, Inodes und Dateien umgeht. Wann immer in diesem Kontext dateisystemspezifische Operationen notwendig sind, wird über die mit der Datenstruktur assoziierten Funktionszeiger die zugehörige spezialisierte Funktion aufgerufen.

Wenn dem Kernel ein Dateisystemtyp bekannt ist, kann ein Dateisystem dieses Typs aktiviert werden, indem sein Superblock mit Hilfe der durch den Funktionszeiger read_super bezeichneten Funktion eingelesen wird. Das Ergebnis dieses Funktionsaufrufes ist ein initialisierter Superblock, der neben typunabhängigen Informationen auch die für diesen Dateisystemtyp spezifischen Informationen enthält. Linux verwaltet die Superblöcke aller angemeldeten Dateisysteme unabhängig von ihrem Typ in einem Feld super_block. Der Dateisystemtyp eines Superblocks ist über den in ihm enthaltenen Rückwärtsverweis s_type leicht feststellbar. Ein Dateisystem kann deaktiviert werden, indem man über den Zeiger put_super die spezifische Deaktivierungsfunktion aufruft.

Durch diese Schicht zwischen den Anwendungen und Dateisystem ist es also möglich, mit einem Befehlssatz alle vorhandenen Systeme universell anzusprechen und mit ihnen individuell zu arbeiten

Beispiel: rm, cp, mkdir und andere Befehle sind immer einsetzbar und werden in die typabhängigen Funktionen übersetzt.

Um ein neues Dateisystem dem VFS bekannt zu machen, muss dieses mit der Funktionregister_filesystem() hinzugefügt werden. Diese Funktion muss mit den entsprechenden Parametern, von der Initialisierungsroutine des neuen Filesystems aufgerufen werden.

Die Strukturen des neuen FS werden in einer einfach verketteten Liste abgelegt.

Einigederinteressanteren Dateisysteme fasst die folgende Tabelle zusammen:

- bfsUnixWare Boot Filesystem
- extDer Vorgänger des ext2, kaum mehr in Gebrauch
- ext2Das Standarddateisystem von Linux
- ext3Weiterentwicklung von ext2 mit zusätzlichen Funktionen eines Journaling File Systems, allerdings ist die Entwicklung noch nicht abgeschlossen
- iso9660Alle CD-ROMs speichern ihre Daten unter diesem Format
- hpfsOS-2 (nur lesend) loopback Mounten einer einzelnen Datei als Dateisystem
- minixMinix ist der eigentliche Vorgänger von Linux, sein Dateisystem wird gern noch für (Installations-) Disketten eingesetzt
- msdosDOS, wichtig für den Zugriff auf DOS-formatierte Disketten
- ncpfsNovell Netware
- nfsNetwork File System
- ntfsWindowsNT, schreiben ist auf dieses Dateisystem zwar möglich, jedoch kann dies leicht zu irreparablen Schäden führen
- ramdiskMounten eines Bereichs des Hauptspeichers als Dateisystem
- SMB(Server Message Block) NT, Windows für Workgroups; zum Zugriff auf von einem Windows-Rechner freigegebene Verzeichnisse
- swapSwap-Partitionen oder -Dateien
- SystemVVerschiedene Unixe
- procProzessverwaltung
- reiserfsEines der ersten Journaling File Systeme für Linux
- umsdosDOS-Dateisystem unter Linux verwenden, hier wird vor allem ein Mapping der unterschiedlichen Dateinamensformate und -rechte vorgenommen
- vfatWindows95, sowohl in der 16 bit als auch 32 bit Variante

Das EXT2 Dateisystem

Das Extended Filesystem gilt als der Standard in der Linuxwelt. Durch seine Stabilität und Anpassungsfähigkeit eignet es sich für kleine Heimcomputer wie auch für große Serversysteme. Zum heutigen Zeitpunkt mit dem verfügbaren Kernel 2.4.x kann man im ext2, so die Abkürzung des Extended Filesystem 2, eine maximale Dateigröße von 4Gigabyte erreichen. Wie sich diese Größe zusammensetzt, lässt sich später in Verbindung mit der Struktur das Dateisystem einfach erklären. Weitere Möglichkeiten, das System unanfällig gegen Ausfälle zu machen, ist z.B. die Reservierung von Speicherplatz zur Vermeindung eines „Overflow“. D.h. es wird eine festgelegte Größe von Speicherplatz nicht zur Verfügung gestellt, damit im Fall, dass sehr viele Daten geschrieben werden und das Speichermedium ausgelastet ist, kein Systemausfall passieren kann.

Das Blocksystem – die grundlegende Struktur eins UNIX Dateisystems

Bootblock Superblock Inodeblock Datenblock

Der Superblock

Ein Unix-Dateisystem besitzt einen so genannten Superblock, einen Block, der die grundlegenden Informationen zum Dateisystem selbst enthält. Einige wichtige Daten des Superblocks sind:

- Die Größe des Dateisystems in Blöcken
- Die Größe der Blöcke in Bytes
- Zeiger auf den ersten freien Datenblock
- Zeiger auf erste freie I-Node
- Verschiedene Statusbits (Flags)

Auch hier unterscheiden sich die verschiedenen Unix-Dateisysteme voneinander, was an zusätzlichen Informationen im Superblock gespeichert ist. Das wesentliche an dieser Struktur ist, dass der Superblock beim Mounten eines Dateisystems in den Speicher gelesen wird und alle Veränderungen dort vorgenommen werden. Es werden dann die Daten sporadisch gechached und beim Unmounten des Dateisystems werden diese Veränderungen physikalisch auf der Platte gespeichert. Das erklärt auch, dass es nach einem Systemabsturz zu Inkonsistenzen in einem Dateisystem kommen kann.

Details

Seiten
17
Jahr
2002
Dateigröße
528 KB
Sprache
Deutsch
Katalognummer
v106960
Institution / Hochschule
Universität Ulm
Note
Schlagworte
linux ext2 extended filesystem dateisystem vfs

Autor

Teilen

Zurück

Titel: Dateisysteme unter Linux