Im Benutzerhandbuch wurde bereits auf die Konzepte der Besitz-, sowie der Zugriffsrechte auf Dateien eingegangen. Um allerdings das Linux-Dateisystem ext2fs (EXTended 2 FileSystem engl. für ,,Zweite erweiterte Version des Dateisystems``) wirklich verstehen zu können, muss zunächst das Datei-Konzept selbst definiert werden. Einer der Gründe ist:
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. 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 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 Linux-Mandrake-Systems sehr häufig benutzt (s. Kapitel 9). 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 Abschnitt 5.3.
Sockets: Obwohl dies den Standard-Dateityp aller Netzwerkverbindungen darstellt, sind dennoch nur sehr wenige davon mit einem eigenen Namen ausgezeichnet. Ausserdem 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/kfm_600_819localhost 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/kfm_600_819 localhost= $ |
Es sollte noch erwähnt werden, dass ext2fs, genau wie alle anderen Unix Dateisysteme, alle Dateien, egal welchen Typs, in einer Inode-Tabelle (inode: engl. für ,,Informations-Knoten``) abspeichert. Jede Datei wird also nicht anhand ihres Namens, sondern anhand einer Inode-Nummer identifiziert. Daher muss eine Datei sogar nicht unbedingt einen Namen haben. Sie sind lediglich eine Vereinfachung für den Anwender, da dieser sich beispielsweise ,,Liesmich`` und ,,.login`` leichter merken kann als ,,17325`` oder ,,4829``.