Was tun, wenn sich ein Programm nicht so verhält wie gewünscht oder erwartet? Wenn Sie Ihrem Linux-Rechner klarmachen wollen, dass er Port Forwardingzu leisten hat? Oder wenn Sie wissen möchten, ob Ihr Kernel in der Lage ist, NTFS-Partitionen zu mounten? Normalerweise fangen Sie jetzt an, Monitoring-Programme zu bemühen. Sie klicken sich durch die Konfigurations-Interfaces Ihres Distributors und lesen seitenweise Dokumentation. Manchmal lässt sich diese Vorgehensweise jedoch abkürzen, wenn man den effektiven Weg über das /proc-Dateisystem kennt.
Mehr als nur ein Verzeichnis
Der erste Blick in das /proc-Verzeichnis bedeutet meist eine Schrecksekunde für den frischgebackenen Linux-Administrator, findet sich doch nach einem prüfenden ls -l unter anderem folgendes:
-r——– 1 root root 402657280 Okt 13 00:35 kcore
Sollte da wirklich eine Datei mehrere hundert Megabyte Plattenplatz verbrauchen? Des Rätsels Lösung ist einfach: Es handelt sich bei der Datei kcore um ein Abbild des in den Rechner eingebauten Arbeitspeichers. Anders als die ls -l-Ausgabe vermuten lässt, benötigt die Datei keinen Festplattenplatz, da es sich bei dem /proc-Verzeichnis um ein virtuelles Dateisystem handelt, welches für den Benutzer eine einfache Schnittstelle zu Verwaltungsinformationen des Kernels bereitstellt. Die Ausgabe des Befehls mount zeigt, dass es sich bei dem /proc-Verzeichnis um ein Dateisystem handelt, dessen Inhalt allerdings nur zur Laufzeit des Systems vorhanden ist. Viele Programme, wie z. B. top, ps und die Systeminformation im KDE-Kontrollzentrum lesen Informationen aus dem /proc-Dateisystem aus und präsentieren sie in kompakter Form.
Auf den Grund gegangen
Wichtig für administrative Aufgaben ist die genaue Kenntnis der in den Rechner eingebauten Hardware. Wie Sie solche Informationen erlangen und nutzen, können Sie in LinuxUser 02/2001 [1] nachlesen. Mit Hardware-Informationen ist das Potential des /proc-Verzeichnisses jedoch noch lange nicht erschöpft. Die Frage, ob Ihr Kernel das Mounten bestimmter Dateisysteme unterstützt, wird in der Datei /proc/filesystems beantwortet:
[andi@gemini andi]$ cat /proc/filesystems
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev tmpfs
nodev shm
nodev pipefs
ext2
nodev ramfs
nodev devfs
nodev devpts
xfs
vfat
Der verwendete Kernel kann die Dateisysteme ext2, xfs und vfat mounten, jedoch keine NTFS-Partitionen, wie Sie von der Windows-NT-Familie verwendet werden. Bei den Dateisystemen mit vorangestelltem nodev handelt es sich, ebenso wie bei /proc, um virtuelle oder Pseudo-Dateisysteme. In der Dokumentation zu den Kernel-Quellen finden Sie ausführliche Informationen zu diesen geräteunabhängigen Dateisystemen.
Vermuten Sie bei einer Fehlfunktion Ihres Systems ein Kernel-Problem und suchen Hilfe in einer Newsgroup, sollten Sie die Versionsnummer des Kernels wissen und mit welcher Compiler-Version dieser übersetzt wurde. Wie Sie sicher schon vermuten, findet sich auch in diesem Fall die entsprechende Auskunft in /proc:
[andi@gemini andi]$ cat /proc/version Linux version 2.4.18-xfs-1.1 (andi@gemini.localdomain) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release / Mandrake Linux 8.2)) #2 Sun Jun 16 13:13:24 CEST 2002
Verwendet wird in diesem Fall Kernel 2.4.18, welcher mit der Compiler-Version egcs-2.91.66 gebaut wurde. Mit diesen Angaben und einer exakten Problembeschreibung haben Sie gute Chancen, kompetente Antworten zu Kernel-Problemen zu erhalten.



