Minix-Dateisystem
# Minix-Dateisystem

Das Minix file system ist das Dateisystem des ehemaligen Lehr-Betriebssystems Minix.

## Geschichte

Minix wird seit den 1980ern als Unix-ähnliches Betriebssystem vollständig von Andrew S. Tanenbaum als Lehrsystem programmiert (die aktuelle Version ist Minix 3.3 aus dem Jahr 2014).

Das Minix-Dateisystem wurde für Minix konzipiert. Es basiert auf den grundlegenden Strukturen des Unix File System unter Auslassung komplexer Funktionen, um den Quellcode im Sinne des Lehreinsatzes von Minix möglichst klar strukturiert und einfach gestalten zu können. Es weist daher eine Reihe von Begrenzungen auf:

* Eine Partition kann nicht größer als 64 MiB sein (Cluster-Adressen werden als 16-Bit-Integer-Zahlen dargestellt).
* Dateinamen können nicht länger als 14 bzw. 30 Zeichen sein.
* Dateiverknüpfungen ("Symbolic links", auch "symlinks") sind nicht verwendbar.

Dieses Dateisystem wurde von Linux bis zur Einführung des extended filesystem im April 1992 als Standard benutzt und wurde auch lange danach noch häufig bei (bootfähigen) Disketten, teilweise für RAM-Disks und auf anderen Anwendungsgebieten wegen des geringen für die Verwaltung benötigten Speicherplatzes verwendet.

## Aufbau

Ein Minix-Dateisystem besteht aus sechs Bestandteilen:

* Der Bootsektor, der immer im ersten Block untergebracht ist. Er enthält den Bootloader, der beim Starten des Computers das Betriebssystem lädt und startet.
* Der Superblock, der Daten über das Dateisystem enthält. Diese Daten erlauben es dem jeweiligen Betriebssystem, weitere Strukturen des Dateisystems zu lokalisieren und zu verarbeiten. Beispiele für die Daten des Superblocks sind die Anzahl der Inodes und Cluster.
* Die Inode-Bitmap ist eine einfache Darstellung des Status aller Inodes. Es wird lediglich dargestellt, ob ein Inode belegt ("1") oder frei ("0") ist.
* Die Cluster-Bitmap ist ebenso aufgebaut wie die Inode-Bitmap, stellt jedoch den Status der Cluster im Daten-Bereich dar.
* Der Inodes-Bereich. Jede Datei und jedes Verzeichnis wird von mindestens einem Inode repräsentiert, der wiederum folgende Metadaten enthält:

   * Typ (Datei, Verzeichnis, Gerätedatei oder Pipe)

   * Benutzer- und Gruppen-ID

   * Zeitstempel der letzten Änderung

   * Zugriffsberechtigungen

   * Größe

   * Anzahl der Links

   * Liste von Adressen, die auf die Cluster im Daten-Bereich verweisen, in denen die zum Inode gehörigen inhaltlichen Daten gespeichert sind.
* Der Daten-Bereich ist der Bestandteil des Dateisystems, der naturgemäß den größten Platz einnimmt. Hier wird der tatsächliche Inhalt der Dateien und Verzeichnisse gespeichert.

(Hinweis: In englischsprachigen Texten wird der Cluster in Bezug auf Minix meist als "zone" bezeichnet.)

