9.2 Alles ist eine Datei

Das Benutzerhandbuch führte in die Konzepte Dateibesitzer und Dateirechte ein, doch ein wirkliches Verständnis des Unix Dateisystems (und das bezieht sich auch auf GNU/Linux' ext2fs) erfordert von uns eine erneute Definition des Dateikonzepts.

Hier, heißt ,,alles``, wirklich alles. Sowohl eine Festplatte, eine Partition auf einer Festplatte, ein paralleler Anschluss, eine Web-Seite, wie auch eine Ethernet-Karte werden allesamt als Dateien behandelt. Sogar Verzeichnisse stellen Dateien dar. GNU/Linux kennt neben den Standard Dateien und Verzeichnissen etliche weitere Arten von Dateien. An dieser Stelle sei klargestellt, das mit ,,Arten von Dateien`` nicht der Inhalt der Datei gemeint ist. Bei GNU/Linux, wie auch jedem anderen Unix-Betriebssystem, stellt eine Datei lediglich ein Byte-Strom dar, egal ob es sich um ein PNG-Bild, eine Binärdatei oder um sonst irgendeine Datei handelt. Dateien anhand ihrer Inhalte zu unterscheiden wird den Applikationen selbst überlassen.

9.2.1 Die verschiedenen Dateitypen

Wie Sie sich sicherlich erinnern, können Sie mittels dem Kommando ls -l und dem Betrachten des Buchstabens vor den Zugriffsrechten die Art einer Datei bestimmen. Bisher sind uns lediglich zwei Typen bekannt: normale Dateien (,,-``) und Verzeichnisse (,,d``). Sie können aber auch die folgenden Typen beim Durchwandern Ihres Verzeichnisbaumes finden:

Hier nun ein Beispiel für jeden Dateityp:

$ ls -l /dev/null /dev/sda /etc/rmt /proc/554/maps \
  /tmp/xmms_franz.0=
crw-rw-rw-    1 root    root   1,   3 Mai  5  1998 /dev/null
brw-rw----    1 root    disk   8,   0 Mai  5  1998 /dev/sda
lrwxrwxrwx    1 root    root       16 Dez  9 19:12 /etc/rmt 
-> ../sbin/rmt*
pr--r--r--    1 franz   franz       0 Dez 10 20:23 /proc/554/maps|
srwx------    1 franz   franz       0 Dez 10 20:08 /tmp/xmms_franz.0=
$

9.2.2 Inodes

Inodes (inode: engl. für ,,Informations-Knoten``) sind im ,,Alles ist eine Datei``-Paradigma der Unix Dateisysteme die grundlegende Informationsstruktur.

Inodes werden in sogenannten Inode-Tabellen auf der Platte gespeichert. Sie existieren für alle Dateitypen, die im Dateisystem auftreten können, also auch Verzeichnisse, benannte Ein- und Ausgabeumleitungen, Sockets usw. Das führt zu dem berühmten Satz: ,,Der Inode ist die Datei``. Inodes sind auch die Möglichkeit für Unix, eine Datei eindeutig zu identifizieren.

Ja, Sie haben richtig gelesen: Unix Systeme identifizieren Dateien nicht anhand ihrer Namen, sondern anhand ihrer Inode-Nummer. [1] Der Grund hierfür ist, dass eine Datei verschiedene Namen haben kann, oder sogar keinen. Ein Dateiname ist unter Unix nichts weiter als ein Eintrag in einem Verzeichnis-Inode.

Fußnoten

[1]

Wichtig: Es sei angemerkt, dass die Inode-Nummern eindeutig per Dateisystem sind, d.h. dass es in anderen Dateisystemen Inodes mit der selben Nummer geben kann. Daher die Unterschiede zwischen Inodes auf Speichermedien und im Speicher. Obwohl Inodes auf verschiedenen Dateisystemen die selbe Nummer haben können, müssen Inodes im RAM eindeutig sein. Eine Möglichkeit diese Eindeutigkeit zu erhalten ist etwa, die Platten Inode-Nummer gegen die Blockgeräte-ID zu hashen.


[Tux vor dem MandrakeSoft Stern] Linux ist ein eingetragenes Warenzeichen von Linus Torvalds. Alle anderen Warenzeichen und Copyrights sind das Eigentum ihrer Inhaber.
Sofern nichts anderes Angaben ist, unterliegen die Inhalte der Seiten sowie alle Bilder dem Copyright von MandrakeSoft S.A. und MandrakeSoft Inc. 2001.
http://www.mandrakelinux.com/