Dieses Handbuch wird mit freundlicher Genehmigung von Sebastian Hetze auf den Servern der Linux Information Systems AG gehosted.

next up previous contents index
Next: Die Linux-Console Up: Dateisysteme Previous: Bewertung

Subsections


Spezialdateisysteme

Das Prozeßdateisystem

   Das Prozeßdateisystem von Linux stellt zur Laufzeit des Betriebssystems Daten aus dem Kernel in der Form eines normalen Dateisystems dar. Es belegt dabei keinen Platz auf der Festplatte, die Verzeichnisse und Dateien existieren allein im Arbeitsspeicher des Kernels.

Wie jedes andere Dateisystem kann/muß auch das Prozeßdateisystem mit dem Systemprogramm mount auf ein existierendes Verzeichnis im Dateisystembaum aufgesetzt werden. Auch wenn im Prinzip jedes beliebige Verzeichnis als Aufsetzpunkt erlaubt ist, wird in der Regel das Verzeichnis /proc verwendet.

# mount -t proc proc /proc
# ls -F /proc
1/           31328/       95/          dma          modules
10215/       42/          96/          filesystems  net/
11809/       4383/        9787/        interrupts   self/
18226/       4384/        9788/        kcore        stat
29911/       44/          9791/        kmsg         uptime
29916/       46/          9792/        ksyms        version
30/          48/          9793/        loadavg
31/          52/          devices      meminfo
# _
Normalerweise wird das Prozeßdateisystem zusammen mit den anderen Dateisystemen in der Datei /etc/fstab eingetragen und beim Systemstart automatisch gemountet. Sie können aber selbstverständlich auch das Prozeßdateisystem manuell aufsetzen, wie im Beispiel oben gezeigt. In jedem Fall finden Sie dann im Verzeichnis /proc eine Menge Unterverzeichnisse und ein paar Dateien.

Mit Hilfe des Prozeßdateisystems stellt Linux eine universelle Schnittstelle zu allen relevanten Kerneldaten zur Verfügung. Auf diesem Weg können alle Programme auf diese Daten zugreifen, ohne direkt im Kernelspeicher zu lesen. Das hat einerseits Vorteile im Hinblick auf die Datensicherheit, andererseits erspart es auch die sonst notwendige Verwaltung einer Symboltabelle, in der die Speicheradressen der gesuchten Kerneldaten verzeichnet sind.

Neben den Daten über den Status des laufenden Systems besitzt der Kernel eine Menge Information über die Hardware des Rechners. In einigen Dateien des Prozeßdateisystems finden Sie deshalb eine komplette Hardwareanalyse.

cmdline
Diese Datei enthält die Kommandozeile, mit der der Kernel von LILO gestartet wurde. Aus dieser Datei können alle Bootparameter gelesen werden, die auf dem Bootprompt  eingegeben wurden.
cpuinfo
In dieser Datei sind alle Informationen über den Typ und die Leistung der CPU enthalten.
devices
Diese Datei enthält die Hauptgerätenummern und die Namen der aktiven Gerätetreiber im Kernel. Wenn Sie nicht sicher sind, welche Geräte von dem gerade laufenden Kernel unterstützt werden, finden Sie in dieser Datei die eine vollständige Liste. Das Programm MAKEDEV wertet die Information in dieser Datei aus, um beim Update die Gerätedateien für alle unterstützten Devices zu erzeugen.
dma
gibt eine Liste der belegten DMA-Kanäle mit den sie belegenden Geräten an.

filesystems
In dieser Datei steht eine Liste aller vom Kernel unterstützten Dateisystemtypen. Zukünftige Versionen von make werden diese Information nutzen, um ein unbestimmtes Dateisystem selbständig zu mounten.

interrupts
gibt eine Liste aller belegten Hardwareinterrupts aus. Nach der Interruptnummer wird die Anzahl der ausgelösten Unterbrechungen und die Bezeichnung des auslösenden Gerätes ausgegeben. Ein + vor dem Gerätenamen zeigt an, daß es sich um einen ``schnellen'' Interrupt handelt.

ioports
In dieser Datei finden Sie eine Liste aller belegten Adressen des IO-Bereichs. Hinter den Adressbereichen, die in Hexadezimalzahlen angegeben sind, steht jeweils die Bezeichnung des Gerätetreibers, der sich für diesen Bereich registriert hat.

kcore
ist der Zugang zum gesamten Arbeitsspeicher des Rechners. Diese Datei kann nur mit Root-Privilegien gelesen werden.

kmsg
enthält die Kernelmeldungen, wenn sie nicht durch den Protokollschreiber syslogd in eine andere Datei umgelenkt werden.

ksyms
zeigt die exportierten Kernelsymbole für die Modulschnittstelle.

loadavg
gibt drei Zahlen aus, die anzeigen, wieviele Prozesse durchschnittlich innerhalb der letzten 1, 5 und 15 Minuten gelaufen sind. Diese Zahlen werden normalerweise vom Programm uptime ausgegeben.

locks
Diese Datei enthält die Liste aller aktiven File-Locks.

meminfo
wird normalerweise vom free-Kommando ausgewertet und zeigt die Auslastung des Arbeitsspeichers und des Swap-Space an.

modules
  enthält eine Liste der zur Laufzeit in den Kernelspeicher geladenen und noch darin befindlichen Kernelmodule. In jeder Zeile der Datei stehen der Modulname, die Anzahl der vom Modul belegten Speicherseiten (4 Kilobyte je Seite), gegebenenfalls die Namen der Module, die mit Symbolen dieses Moduls gelinkt sind und die Anzahl der Prozesse, die das Modul benutzen. Der Inhalt dieser Datei wird normalerweise mit dem lsmod-Kommando ausgegeben.

mounts
Diese Datei enthält eine Liste aller aktuell gemounteten Dateisysteme. Der Inhalt ist identisch mit /etc/mtab.

pci
Bei Rechnern mit PCI-Bus enthält diese Datei Hardwareinformationen zu allen Geräten, die an diesem Bus betrieben werden.

rtc
Wenn die Kernelunterstützung für die ``Real Time Clock'' (CMOS-Uhr) aktiviert wurde, gibt diese Datei alle Daten dieses Gerätes aus.

scsi
Dieses Verzeichnis ein Unterverzeichnis für den SCSI-Hostadapter und eine Datei mit dem Namen scsi, in der alle erkannten Geräte aufgelistet sind.
stat
enthält die aktuelle Statusinformation des Kernels.

sys
Die Unterverzeichnisse dieses Verzeichnisses enthalten verschiedene Informationen über das Laufzeitsystem.
uptime
zeigt zwei Zahlen, die erste sagt Ihnen, wie viele Sekunden das System läuft, die zweite Zahl zeigt die Anzahl der Sekunden, die der Rechner im Idle-Prozeß gelaufen ist.

version
enthält den Linux-Banner mit der Versionsnummer und dem Übersetzungsdatum des laufenden Kernels.

Die Prozeßverzeichnisse

Die meisten Unterverzeichnisse sind mit bloßen Nummern benannt. Diese Nummern entsprechen den Prozeß-IDs der aktuell in der Prozeßtabelle eingetragenen Prozesse, in den Verzeichnissen finden Sie alle relevanten Daten zu dem jeweiligen Prozeß.

Das Verzeichnis self ist ein Link auf das Prozeßverzeichnis des aktuellen Prozesses. Hier kann also jedes Programm auf seine eigenen Daten zugreifen, ohne seine eigene Prozeßnummer zu kennen.

$ ls -F /proc/self/
cmdline  environ  fd/      mem      stat
cwd@     exe@     maps     root@    statm
$ _

cmdline
enthält die komplette Kommandozeile für den Prozeß, wenn der Prozeß nicht vollständig in den Swapbereich ausgelagert ist.

cwd
ist ein Link auf das aktuelle Arbeitsverzeichnis des Prozesses.

environ
enthält die Daten aus der Prozeßumgebung.

exe
ist ein Link auf die ausführbare Programmdatei des Prozesses.

fd
enthält Links auf alle offenen Dateien des Prozesses.

maps
zeigt den Adreßbereich, die Attribute und gegebenenfalls den Offset, die Gerätenummern und I-Node der mit mmap eingeblendeten virtuellen Speicherbereiche.

mem
ist ein Zugang zum Speicherbereich des Prozesses.

root
ist ein Link auf das Root-Verzeichnis des Prozesses.

stat und statm
enthalten Statusinformationen zum Prozeß aus der Prozeßtabelle. Diese Daten werden normalerweise mit dem ps-Kommando angezeigt.

 

Das ISO-9660-Dateisystem

 

Im ISO-9660-Standard ist das systemunabhängige Dateisystem für CD-ROMs beschrieben.

Wegen ihrer großen Kapazität (ca. 600 Megabyte) sind CD-ROMs als Medium für die Verbreitung von Daten sehr interessant. Unter anderem wird auch ein großer Teil der Freien Software auf CD-ROM angeboten, nicht zuletzt auch Linux und die Linux-Distributionen.

Damit es von allen Betriebssystemen verstanden wird, ist die Spezifikation der allgemeinsten Stufe des ISO-9660 Dateisystems so etwas wie der kleinste gemeinsame Nenner aller relevanten Betriebssysteme. Wie bei DOS dürfen die Dateinamen maximal 8 Zeichen lang sein. Eine Erweiterung von drei Zeichen ist für normale Dateien erlaubt, es dürfen nur Großbuchstaben verwendet werden.

Um die weit über die Beschränkungen von DOS hinausgehenden Fähigkeiten der UNIX-Dateisysteme auch mit CDs nutzen zu können, gibt es eine mit dem Standard konforme Erweiterung von ISO-9660, die sogenannte Rock-Ridge-Erweiterung,  mit denen außer den längeren Dateinamen auch Eigentümer, Zugriffsrechte, Links und anderes mehr im CD-Dateisystem verwaltet werden können.

Linux kann sowohl mit CDs der allgemeinen ersten Stufe des ISO-Standards als auch mit den Rock-Ridge-Erweiterungen umgehen, vorausgesetzt, Sie verwenden einen der vielen von Linux unterstützten CD-Spieler.

Übrigens sind auch die Foto-CDs im ISO-Standard formatiert, Sie können also auch die Bilddaten unter Linux verwenden.  

umsdos

  

Das umsdos-Dateisystem ermöglicht die Benutzung von normalen DOS-Dateisystemen mit den speziellen Features eines Unix-Dateisystems. Insbesondere können in einem umsdos-System die Dateien Eigentümer und Gruppen mit allen dazugehörenden Rechten haben, es können Links angelegt werden, und es sind Dateinamen mit einer Länge bis zu 255 Zeichen erlaubt.

Diese Erweiterung zum DOS-Dateisystem ermöglicht es, Linux allein von einer DOS-Partition zu starten.

Weil die für die funktionale Erweiterung notwendigen Daten nicht in der Struktur des DOS-Dateisystems vorgesehen sind, müssen sie von umsdos im normalen Datenbereich verwaltet werden. Dazu dient die spezielle Datei -linux-.--, die für jedes umsdos-Verzeichnis existieren muß. Nur wenn es diese Datei gibt, werden die entsprechenden Erweiterungen für dieses Verzeichnis wirksam. Ohne die spezielle Datei werden alle Dateizugriffe unverändert an das DOS-Dateisystem weitergereicht.

Um die Datei -linux-.-- zu erzeugen, müssen Sie unter Linux das umssync-Kommando benutzen. Jede Veränderung des Verzeichnisses wird dann automatisch vom umsdos-Treiber in der Datei vermerkt. Wenn Sie unter Linux ein Unterverzeichnis in einem umsdos-Verzeichnis anlegen, wird dieses Unterverzeichnis automatisch auch von umsdos verwaltet. Wenn Sie unter DOS Veränderungen an Verzeichnissen vornehmen, die unter Linux mit umsdos verwaltet werden, müssen Sie beim nächsten Start von Linux wieder das umssync-Kommando aufrufen, damit die Datei -linux-.-- aktualisiert wird. Sollten Sie Teile Ihrer Festplatte regelmäßig sowohl unter DOS als auch unter Linux mit umsdos benutzen, ist es sinnvoll, das umssync-Kommando beim Systemstart automatisch aus einer rc-Datei ($\to$ Seite [*]) auszuführen.

 

 


next up previous contents index
Next: Die Linux-Console Up: Dateisysteme Previous: Bewertung

Das Linux Anwenderhandbuch
(C) 1997 LunetIX