Ein Blog über Code, Hardware und Co

Technische Informatik und Betriebssysteme, NAS, Server und Co

Was ist das PROC-Dateisytem?

Zuletzt aktualisiert am 14. Januar 2023.

Das proc-Filesystem ist ein virtuelles Filesystem auf allen unixoiden Betriebssystemen (wie z.B. Linux). Es ist nicht persistent und enthält in Unterverzeichnissen und Files sämtliche Informationen zu aktuell auf dem System laufenden Prozessen.

Was ist das /proc-Verzeichnis bzw. Dateisystem?
Das proc-Filesystem ist ein virtuelles Filesystem, das in Files und Verzeichnissen alle aktuellen Prozesse eines Unix-Systems repräsentiert. Es ist also ein Interface, dass über die Konsole durch die Struktur eines Filesystems Zugriff auf Kerneldaten ermöglicht. In Unterverzeichnissen, die als Namen die jeweilige ProzessID haben, finden sich sämtliche Informationen über den jeweiligen Prozess. Zusätzlich werden Kernelprozesse in Form von Files oder Verzeichnissen mit jeweiligem Namen repräsentiert.
Das Verzeichnis liegt im RAM und ist nicht persistent, es wird bei jedem Systemstart neu erstellt und gemounted.
Die Dateien können über die Konsole gelesen werden, teilweise sogar beschrieben werden.

Was befindet sich im /proc-Verzeichnis?

Im /proc-Verzeichnis befinden sich verschiedene Files und Unterverzeichnisse.

User-Prozesse

User-Prozesse sind am Owner des Verzeichnisses zu erkennen. In der Regel repräsentieren alle Verzeichnisse, die mit einer Prouzess-ID benannt sind, User-Prozesse.

Mittels ls -la im Verzeichnis /proc lassen sich die Owner der Unterverzeichnisse und damit die User, unter denen die Prozesse laufen, anzeigen.

Bild: Auszug aus der Auflistung aktuell unter /proc befindlicher Prozesse mittels “ls -la” und somit mit Anzeige der jeweiligen Owner.

Hinweis: Wie man schön an der 5. Spalte von rechts sieht, haben alle pseudo-directories im /proc-Verzeichnis eine Größe von “0”. Daran kann man erkennen, dass sie keinen Speicherplatz auf dem Datenträger belegen, sondern komplett im Memory (Arbeitsspeicher/RAM) liegen.

Kernel-Prozesse

Dateien/Verzeichnisse, die Namen haben, repräsentieren in der Regel Kernel-Prozesse. Nicht jeder Prozess existiert dabei auf jedem Linux-System, teilweise sind diese auch unterschiedlich benannt.
So findet man im /proc-Verzeichnis u.A. die folgenden Files/Unterverzeichnisse:

Name des Files/VerzeichnissesFile/Verzeichnis?Bedeutung
acpidirectory
buddyinfofile
busdirectory
cgroupsfile
cmdlinefile
consolesfile
cpuinfofile
cryptofile
devicesfile
diskstatsfile
dmafile
driverdirectory
execdomainsfile
fbfile
filesystemsfile
flashcachedirectory
fsdirectory
interruptsfile
iomemfile
ioportsfile
irqdirectory
kallsymsfile
kcorefile
keysfile
key-usersfile
kmsgfile
kpagecgroupfile
kpagecountfile
kpageflagsfile
loadavgfile
locksfile
mdstatfile
meminfofile
miscfile
modulesfile
mtrrfile
pagetypeinfofile
partitionsfile
sched_debugfile
schedstatsfile
scsidirectory
slabinfofile
softirqsfile
statfile
swapsfile
synobiosdirectory
syno_cpu_archfile
syno_loadavgfile
syno_platformfile
sysdirectory
sysrq-triggerfile
sysvipcdirectory
timer_listfile
ttydirectory
uptimefile
versionfile
vmallocinfofile
vmstatfile
workstatdirectory
zoneinfofile
Tabelle 1: Auflistung und Erläuterung der Unterverzeichnisse im /proc-Verzeichnis (Am Beispiel eines Synology-Systems).

Bild 1: So sieht ein beispielhafter Inhalt eines /proc-Verzeichnisses aus (Hier aus einem Synology NAS).

Welche Infos finde ich im Unterverzeichnis zu den einzelnen Prozessen?

Die Verzeichnishierarchie sieht im /proc-Verzeichnis wie folgt aus:

/proc/[PID]/Unterverzeichnisse

[PID] steht für die jeweilige Prozess-id.

Folgende Unterverzeichnisse/Files sind in der Regel vorhanden:

Name des Verzeichnisses/FilesFile/VerzeichnisBedeutung
attrdirectory
auxvfile
cgroupfile
clear_refsfile
cmdlinefile
commfile
coredump_filterfile
cwdlink
environfile
exelink
fddirectoryEnthält die File-Deskriptoren (also die Verweise auf geöffnete Files) des jeweiligen Prozesses.
fdinfodirectory
iofile
limitsfile
map_filesdirectory
mapsfile
memfile
mountinfofile
mountsfile
mountstatsfile
netdirectory
nsdirectory
oom_adjfile
oom_scorefile
oom_score_adjfile
pagemapfile
personalityfile
rootlink
schedfile
schedstatfile
smapsfile
stackfile
statfile
statmfile
statusfile
syscallfile
taskdirectory
wchanfile
Tabelle 2: Auflistung und Bedeutung der Unterverzeichnisse/Files in einem User-Prozess-Verzeichnis.

Weitere Ressourcen

Man-Page

Weitere Erklärungen findest du wie immer auf der entsprechenden man-Page:

man proc

Auf der Man-Page sind auch noch einmal alle Unterverzeichnisse eines Prozesses erklärt.

Das proc-Filesystem im Video erklärt

Quellen

  • https://www.linux-praxis.de/das-proc-dateisystem
  • https://www.linux-praxis.de/das-proc-dateisystem
  • u.a.

Schreibe eine Antwort