Mandrake Linux 8.1: Referenz | ||
---|---|---|
Zurück | Kapitel 9. Das GNU/Linux Dateisystem: ext2fs | Nach vorne |
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.
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:
Zeichenorientierte Dateien: Diese Dateien stellen entweder spezielle Systemdateien dar (beispielsweise /dev/null, wie wir schon gesehen haben) oder aber Peripherie-Geräte (mit seriellem oder parallelem Anschluss), die die Eigenschaft verbindet, dass ihre Daten nicht zwischengespeichert werden. Dieser Dateityp wird durch ein ,,c`` gekennzeichnet.
Blockorientierte Dateien: Diese Dateien stellen Peripherie-Geräte dar, deren Daten, im Gegensatz zu oben, zwischengespeichert (buffered) werden. Dies können etwa Festplatten (/dev/hda), Partitionen einer Festplatte (/dev/sda5), Diskettenlaufwerke (/dev/fd0), CD-ROM-Laufwerke (/dev/cdrom) o.Ä. sein. Diese Art von Dateien wird bei einem Aufruf von ls -l mit einem ,,b`` gekennzeichnet.
Symbolische Verweise: Dieser sehr verbreitete Dateityp wird bei einem Start Ihres Mandrake Linux-Systems sehr häufig benutzt (s. Die Startdateien: sysv initialisieren). Wie der Name schon sagt, ist die Aufgabe von Dateien diesen Typs, auf andere Dateien in einer symbolischen Art und Weise zu verweisen. Dies wird an späterer Stelle aber noch genauer erklärt. Üblicherweise werden diese Dateien auch ,,weiche Verweise`` (soft links) genannt und werden durch ein ,,l`` kenntlich gemacht.
Benannte Ein- und Ausgabeumleitungen: Falls Sie sich nun wundern - ja, dieser Dateityp ist sehr ähnlich zu der Ein- und Ausgabeumleitung bei einer Shell, abgesehen davon, dass die in diesem Kapitel betrachteten ihre eigenen Namen aufweisen. Obwohl sie sehr selten sind und Sie sie bei Ihrer Reise durch den Dateibaum wohl nie zu Gesicht bekommen werden, sei hier trotzdem erwähnt, dass sie mit ,,p`` gekennzeichnet werden. Um mehr über diesen Dateityp zu erfahren, lesen Sie bitte ,,Anonyme`` und benannte Ein-/ Ausgabeumleitungen.
Sockets: Obwohl dies den Standard-Dateityp aller Netzwerkverbindungen darstellt, sind dennoch nur sehr wenige davon mit einem eigenen Namen ausgezeichnet. Außerdem existieren auch noch verschiedene Arten von Sockets. Eine Beschreibung aller Arten würde in diesem Buch jedoch zu weit führen. Daher sei hier nur erwähnt, dass sie mit einem ,,s`` kenntlich gemacht werden.
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= $ |
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.
[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. |
Zurück | Zum Anfang | Nach vorne |
Das GNU/Linux Dateisystem: ext2fs | Nach oben | Verweise |