PROC(5)

BEZEICHNUNG
proc - Pseudo-Dateisystem für Prozessinformationen

BESCHREIBUNG
/proc ist ein Pseudo-Dateisystem. Es dient als Schnittstelle zu den Kernel-Datenstrukturen und wird gewöhnlich unter /proc eingehängt. Die meisten Einträge sind nur lesbar, einige Dateien erlauben aber auch das Verändern der Kernel-Variablen.

  Einhängeoptionen
Das Dateisystem proc unterstützt die folgenden Einhängeoptionen:

hidepid=n (seit Linux 3.3)
    Diese Option regelt, wer auf die Informationen in den Verzeichnissen /proc/[PID] zugreifen darf. Das Argument n hat einen der folgenden Werte:

    0   Jeder darf auf alle Verzeichnisse /proc/[PID] zugreifen. Dies ist das traditionelle Verhalten und die Vorgabe, falls diese Einhängeoption nicht angegeben ist.

    1   Benutzer dürfen auf nur ihre eigenen Dateien und Unterverzeichnisse innerhalb von /proc/[PID] zugreifen (die Verzeichnisse /proc/[PID] selbst bleiben sichtbar). Sensitive Dateien wie /proc/[PID]/cmdline und /proc/[PID]/status werden jetzt vor anderen Benutzer geschützt. Dadurch ist es unmöglich, herauszufinden, ob ein andere Benutzer ein bestimmtes Programm ausführt (solange das Programm sich nicht anderweitig durch sein Verhalten zu erkennen gibt).

    2   Wie für Modus 1, aber zusätzlich werden die Verzeichnisse /proc/[PID] anderer Benutzer unsichtbar. Das bedeutet, dass die Einträge /proc/[PID] nicht mehr zur Entdeckung von PIDs auf dem System genutzt werden können. Das versteckt nicht die Tatsache, dass ein bestimmter PID-Wert existiert (dies kann durch andere Methoden, beispielsweise »kill -0 $PID«, herausgefunden werden), aber es versteckt die UID und GID des Prozesses, die ansonsten durch Einsatz von stat(2) auf einem /proc/[PID]-Verzeichnis herausgefunden werden könnte. Dies verkompliziert die Aufgabe eines Angreifers deutlich, Informationen über laufende Prozesse zu sammeln (z.B. zu entdecken, ob ein Daemon mit erhöhten Privilegien läuft, ob ein anderer Benutzer ein bestimmtes sensitives Programm ausführt, ob ein anderer Benutzer ein bestimmtes Programm überhaupt ausführt usw.).

gid=gid (seit Linux 3.3)
    Legt die ID einer Gruppe fest, deren Mitglieder berechtigt sind, Prozessinformationen kennenzulernen, die andernfalls durch hidepid verweigert würden (d.h. für Benutzer in der Gruppe verhält es sich, als ob /proc mit hidepid=0 eingehängt worden wäre). Diese Gruppe sollte statt anderer Ansätze (wie dem Eintrag von Benutzern in die Datei sudoers(5)) verwandt werden.

  Dateien und Verzeichnisse
Die folgende Liste beschreibt viele der Dateien und Verzeichnisse unter der Hierachie /proc:

/proc/[PID]
    Für jeden laufenden Prozess gibt es ein numerisches Unterverzeichnis, dessen Nummer der Prozesskennung (PID) entspricht. Each /proc/[pid] subdirectory contains the pseudo-files and directories described below. These files are normally owned by the effective user and effective group ID of the process. However, as a security measure, the ownership is made root:root if the process's "dumpable" attribute is set to a value other than 1. This attribute may change for the following reasons:

    *   Das Attribut wurde mit der Aktion PR_SET_DUMPABLE von prctl(2) explizit gesetzt.

    *   Das Attribut wurde auf den Wert in der Datei /proc/sys/fs/suid_dumpable (unten beschrieben) zurückgesetzt. Die Gründe sind in prctl(2) beschrieben.

    Resetting the "dumpable" attribute to 1 reverts the ownership of the /proc/[pid]/* files to the process's real UID and real GID.

/proc/[PID]/attr
    Die Dateien in diesem Verzeichnis stellen eine API für Sicherheitsmodule bereit. Die Inhalte dieses Verzeichnisses sind Dateien, die gelesen und geschrieben werden können, um sicherheitsbezogene Attribute zu setzen. Dieses Verzeichnis wurde hinzugefügt, um SELinux zu unterstützen. Der Ansatz des API war aber allgemein genug, um andere Sicherheitsmodule zu unterstützen. Für den Zweck der Erläuterung werden Beispiele, wie SELinux diese Dateien verwendet, weiter unten angegeben. Dieses Verzeichnis ist nur vorhanden, falls der Kernel mit CONFIG_SECURITY konfiguriert wurde.

/proc/[PID]/attr/current (seit Linux 2.6.0)
    Der Inhalt dieser Datei stellt die aktuellen Sicherheitsattribute des Prozesses bereit. In SELinux, this file is used to get the security context of a process. Prior to Linux 2.6.11, this file could not be used to set the security context (a write was always denied), since SELinux limited process security transitions to execve(2) (see the description of /proc/[pid]/attr/exec, below). Since Linux 2.6.11, SELinux lifted this restriction and began supporting "set" operations via writes to this node if authorized by policy, although use of this operation is only suitable for applications that are trusted to maintain any desired separation between the old and new security contexts. Prior to Linux 2.6.28, SELinux did not allow threads within a multi-threaded process to set their security context via this node as it would yield an inconsistency among the security contexts of the threads sharing the same memory space. Since Linux 2.6.28, SELinux lifted this restriction and began supporting "set" operations for threads within a multithreaded process if the new security context is bounded by the old security context, where the bounded relation is defined in policy and guarantees that the new security context has a subset of the permissions of the old security context. Other security modules may choose to support "set" operations via writes to this node.

/proc/[PID]/attr/exec (seit Linux 2.6.0)
    Diese Datei repräsentiert die Attribute, die den Prozessen bei nachfolgenden execve(2) zugewiesen werden sollen. In SELinux, this is needed to support role/domain transitions, and execve(2) is the preferred point to make such transitions because it offers better control over the initialization of the process in the new security label and the inheritance of state. In SELinux, this attribute is reset on execve(2) so that the new program reverts to the default behavior for any execve(2) calls that it may make. In SELinux, a process can set only its own /proc/[pid]/attr/exec attribute.

/proc/[PID]/attr/fscreate (seit Linux 2.6.0)
    Diese Datei repräsentiert die Attribute, die Dateien, die von nachfolgenden Aufrufen von open(2), mkdir(2), symlink(2) und mknod(2) erstellt werden, zugewiesen werden sollen. SELinux verwendet diese Datei, um die Erstellung einer Datei (mit den vorab erwähnten Systemaufrufen) in einem sicheren Zustand zu unterstützen, so dass es kein Risiko gibt, dass ein ungeeigneter Zugriff zwischen dem Zeitpunkt der Erstellung und dem Zeitpunkt des Setzens der Attribute gibt. In SELinux wird dieses Attribut bei execve(2) zurückgesetzt, so dass das neue Programm wieder auf das alte Verhalten für alle seine Dateierstellungsaufrufe zurückfällt. Das Attribut wird aber über mehrere Dateierstellungsaufrufe hinweg innerhalb eines Programms erhalten bleiben, solange es nicht explizit zurückgesetzt wird. Unter SELinux kann ein Prozess nur sein eigenes Attribut /proc/[PID]/attr/fscreate setzen.

/proc/[PID]/attr/keycreate (seit Linux 2.6.18)
    Falls ein Prozess ein Sicherheitskontext in diese Datei schreibt, werden alle nachfolgend erstellten Schlüssel (add_key(2)) mit diesem Kontext gekennzeichnet. Für weitere Informationen siehe die Kernelquelldatei Documentation/keys.txt.

/proc/[PID]/attr/prev (seit Linux 2.6.0)
    Diese Datei enthält den Sicherheitskontext des Prozesses vor dem letzten execve(2); d.h. den vorherigen Wert von /proc/[PID]/attr/current.

/proc/[PID]/attr/socketcreate (seit Linux 2.6.18)
    Falls ein Prozess ein Sicherheitskontext in diese Datei schreibt, werden alle nachfolgend erstellten Sockets mit diesem Kontext gekennzeichnet.

/proc/[PID]/autogroup (seit Linux 2.6.38)
    siehe sched(7)

/proc/[PID]/auxv (seit 2.6.0-test7)
    Dies ist der Inhalt der Informationen für den ELF-Interpreter, die dem Prozess zur Ausführungszeit übergeben wurden. Das Format ist eine unsigned long-ID plus ein unsigned long-Wert für jeden Eintrag. Der letzte Eintrag enthält zwei Nullen. Siehe auch getauxval(3). Die Zugriffsberechtigungen dieser Datei werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS geregelt; siehe ptrace(2).

/proc/[PID]/cgroup (seit Linux 2.6.24)
    siehe cgroups(7)

/proc/[PID]/clear_refs (seit Linux 2.6.22)
    In diese Datei kann nur geschrieben werden und nur durch den Eigentümer des Prozesses. Die folgenden Werte dürfen in die Datei geschrieben werden:

    1 (seit Linux 2.6.22)
        Setzt die Bits PG_Referenced und ACCESSED/YOUNG für alle diesem Prozess zugeordneten Seiten zurück. (Vor Kernel 2.6.32 hatte das Schreiben eines beliebigen von Null verschiedenen Wertes in diese Datei diesen Effekt.)

    2 (seit Linux 2.6.32)
        setzt die Bits PG_Referenced und ACCESSED/YOUNG für alle anonymen Seiten, die dem Prozess zugeordnet sind, zurück.

    3 (seit Linux 2.6.32)
        Reset the PG_Referenced and ACCESSED/YOUNG bits for all file-mapped pages associated with the process.

    Clearing the PG_Referenced and ACCESSED/YOUNG bits provides a method to measure approximately how much memory a process is using. One first inspects the values in the "Referenced" fields for the VMAs shown in /proc/[pid]/smaps to get an idea of the memory footprint of the process. One then clears the PG_Referenced and ACCESSED/YOUNG bits and, after some measured time interval, once again inspects the values in the "Referenced" fields to get an idea of the change in memory footprint of the process during the measured interval. If one is interested only in inspecting the selected mapping types, then the value 2 or 3 can be used instead of 1. Weitere Werte können geschrieben werden, um andere Eigenschaften zu beeinflussen:

    4 (seit Linux 3.11)
        Clear the soft-dirty bit for all the pages associated with the process. This is used (in conjunction with /proc/[pid]/pagemap) by the check-point restore system to discover which pages of a process have been dirtied since the file /proc/[pid]/clear_refs was written to.

    5 (seit Linux 4.0)
        Reset the peak resident set size ("high water mark") to the process's current resident set size value.

    Wird ein anderer als einer der oben aufgeführten Werte in /proc/[PID]/clear_refs geschrieben, so hat dies keinen Effekt. Die Datei /proc/[PID]/clear_refs ist nur vorhanden, wenn die Kernel-Konfigurationsoption CONFIG_PROC_PAGE_MONITOR aktiviert ist.

/proc/[PID]/cmdline
    In dieser nur-lesbaren Datei steht die vollständige Befehlszeile für diesen Prozess, wenn er kein Zombie ist. Im letzteren Fall ist die Datei leer, ein Lesen der Datei wird 0 Zeichen zurückgeben. Die Befehlszeilenargumente sind in dieser Datei als ein Satz von Zeichenketten abgelegt, Trennzeichen sind Null-Bytes ('\0'). Nach der letzten Zeichenkette folgt noch ein Null-Byte.

/proc/[PID]/comm (seit Linux 2.6.33)
    Diese Datei legt den Wert comm des Prozesses offen – das bedeutet, den Befehlsnamen, der diesem Prozess zugeordnet ist. Verschiedene Threads in dem gleichen Prozess können verschiedene Werte von comm haben, auf die mittels /proc/[PID]/task/[TID]/comm zugegriffen werden kann. Ein Thread kann seinen comm-Wert verändern oder den eines anderen Threads in der gleichen Thread-Gruppe (siehe die Diskussion von CLONE_THREAD in clone(2)), indem er in die Datei /proc/self/task/[TID]/comm schreibt. Zeichenketten länger als TASK_COMM_LEN (16) Zeichen werden ohne Rückmeldung abgeschnitten. Diese Datei stellt eine Obermenge der Aktionen prctl(2) PR_SET_NAME und PR_GET_NAME bereit und wird durch pthread_setname_np(3) eingesetzt, wenn vom Aufrufenden verschiedene Threads umbenannt werden.

/proc/[PID]/coredump_filter (seit Linux 2.6.23)
    siehe core(5)

/proc/[PID]/cpuset (seit Linux 2.6.12)
    siehe cpuset(7)

/proc/[PID]/cwd
    Dies ist ein symbolischer Link auf das aktuelle Arbeitsverzeichnis des Prozesses. Um dieses z.B. für den Prozess 20 herauszufinden, geben Sie die folgenden Befehle ein:
    $ cd /proc/20/cwd; /bin/pwd
    Beachten Sie, dass der Befehl pwd häufig in die Shell eingebaut ist (shell built-in) und daher möglicherweise nicht ordnungsgemäß funktioniert. Mit der bash(1) können Sie pwd -P verwenden. In einem Multithread-Prozess ist der Inhalt dieses symbolischen Links nicht mehr verfügbar, wenn der Haupt-Thread schon beendet ist (typischerweise durch einen Aufruf von pthread_exit(3)). Die Rechte, diesen symbolischen Link zu dereferenzieren oder zu lesen (readlink(2)), werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS gesteuert; siehe ptrace(2).

/proc/[PID]/environ
    This file contains the initial environment that was set when the currently executing program was started via execve(2). The entries are separated by null bytes ('\0'), and there may be a null byte at the end. Thus, to print out the environment of process 1, you would do:
    $ strings /proc/1/environ
    If, after an execve(2), the process modifies its environment (e.g., by calling functions such as putenv(3) or modifying the environ(7) variable directly), this file will not reflect those changes. Furthermore, a process may change the memory location that this file refers via prctl(2) operations such as PR_SET_MM_ENV_START. Die Zugriffsberechtigungen dieser Datei werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS geregelt; siehe ptrace(2).

/proc/[PID]/exe
    Unter Linux 2.2 und höher ist diese Datei ein symbolischer Link mit dem eigentlichen Pfad des ausgeführten Befehls. Dieser symbolische Link kann in der Regel dereferenziert werden; der Versuch, ihn zu öffnen, wird die ausführbare Datei öffnen. Sie können sogar /proc/[PID]/exe eingeben, um eine weitere Kopie der gleichen ausführbaren Datei auszuführen, die für den Prozess [PID] läuft. Falls der Pfadname mit unlink gelöscht wurde wird der symbolische Link die Zeichenkette '(deleted)' an den ursprünglichen Dateinamen angehängt haben. In einem Multithread-Prozess ist der Inhalt dieses symbolischen Links nicht mehr verfügbar, wenn der Haupt-Thread schon beendet ist (typischerweise durch einen Aufruf von pthread_exit(3)). Die Rechte, diesen symbolischen Link zu dereferenzieren oder zu lesen (readlink(2)), werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS gesteuert; siehe ptrace(2). Unter Linux 2.0 und früher ist /proc/[PID]/exe ein Zeiger auf das Programm, das ausgeführt wurde und erscheint als symbolischer Link. Ein Aufruf von readlink(2) auf diese Datei unter Linux 2.0 gibt eine Zeichenkette im folgenden Format zurück:
        [Gerät]:Inode Beispielsweise wäre [0301]:1502 also Inode 1502 auf dem Gerät mit der Major-Gerätenummer 03 (IDE-, MFM-Festplatten) und der Minor-Gerätenummer 01 (erste Partition der ersten Platte). find(1) mit der Option -inum zeigt, in welchem Verzeichnis die Datei liegt.

/proc/[PID]/fd/
    In diesem Unterverzeichnis stehen die Dateideskriptoren der von diesem Prozess geöffneten Dateien. Diese Einträge sind symbolische Links zu den eigentlichen Dateien. Also ist 0 die Standardeingabe, 1 ist die Standardausgabe, 2 ist der Standardfehlerkanal usw. Für Dateideskriptoren für Pipes und Sockets werden die Einträge symbolische Links sein, deren Inhalt der Dateityp mit dem Inode ist. Ein Aufruf von readlink(2) mit dieser Datei liefert eine Zeichenkette im folgenden Format zurück:
        Typ:[Inode] Beispielsweise wird socket:[2248868] ein Socket sein, dessen Inode 2248868 ist. Für Sockets kann dieser Inode dazu verwandt werden, weitere Informationen in einem der Dateien unter /proc/net/ zu finden. For file descriptors that have no corresponding inode (e.g., file descriptors produced by bpf(2), epoll_create(2), eventfd(2), inotify_init(2), perf_event_open(2), signalfd(2), timerfd_create(2), and userfaultfd(2)), the entry will be a symbolic link with contents of the form
        anon_inode:<Dateityp> In many cases (but not all), the file-type is surrounded by square brackets. Beispielsweise wird ein Epoll-Dateideskriptor einen symbolischen Link, dessen Inhalt die Zeichenkette anon_inode:[eventpoll] ist, haben. In einem Multithread-Prozess ist der Inhalt dieses Verzeichnisses nicht mehr verfügbar, wenn der Haupt-Thread schon beendet ist (typischerweise durch einen Aufruf von pthread_exit(3)). Programs that take a filename as a command-line argument, but don't take input from standard input if no argument is supplied, and programs that write to a file named as a command-line argument, but don't send their output to standard output if no argument is supplied, can nevertheless be made to use standard input or standard output by using /proc/[pid]/fd files as command-line arguments. For example, assuming that -i is the flag designating an input file and -o is the flag designating an output file:
    $ foobar -i /proc/self/fd/0 -o /proc/self/fd/1 …
    und Sie haben einen funktionierenden Filter. /proc/self/fd/N ist in etwa dasselbe wie /dev/fd/N in einigen UNIX- und UNIX-ähnlichen Systemen. Die meisten MAKEDEV-Skripte legen tatsächlich symbolische Links von /proc/self/fd zu /dev/fd an. Die meisten Systeme stellen die symbolischen Links /dev/stdin, /dev/stdout und /dev/stderr bereit, die entsprechend auf die Dateien 0, 1 und 2 in /proc/self/fd weisen. Das letzte Beispiel könnte also auch alternativ geschrieben werden als:
    $ foobar -i /dev/stdin -o /dev/stdout …

    Die Rechte, die symbolischen Links in diesem Verzeichnis zu dereferenzieren oder zu lesen (readlink(2)), werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS gesteuert; siehe ptrace(2).

/proc/[PID]/fdinfo/ (seit Linux 2.6.22)
    In diesem Unterverzeichnis stehen die Dateideskriptoren aller von diesem Prozess geöffneten Dateien. Die Dateien in diesem Verzeichnis können nur von dem Eigentümer des Prozesses gelesen werden. Der Inhalt jeder Datei kann gelesen werden, um Informationen über den entsprechenden Dateideskriptor zu bekommen. Der Inhalt hängt von der Art der Datei ab, die von dem entsprechenden Dateideskriptor referenziert wird. Für reguläre Dateien und Verzeichnisse ergibt sich etwas der Form:
    $ cat /proc/12015/fdinfo/4
    pos:    1000
    flags:  01002002
    mnt_id: 21
    Die Bedeutung der Felder im Einzelnen:

    pos Dies ist eine Dezimalzahl, die den Dateiversatz zeigt.

    flags
        Dies ist eine oktale Zahl, die den Dateizugriffsmodus und die Dateistatusschalter anzeigt (siehe open(2)). Falls der »close-on-exec«-Dateideskriptorschalter gesetzt ist, wird flags auch den Wert O_CLOEXEC enthalten. Vor Linux 3.1 zeigte dieses Feld inkorrekterweise die Einstellung von O_CLOEXEC zum Zeitpunkt des Öffnens der Datei an, statt den aktuellen Wert des Schalters close-on-exec.

    mnt_id
        Dieses seit Linux 3.15 vorhandene Feld zeigt die Kennung des Einhängepunktes an, der diese Datei enthält. Siehe die Beschreibung von /proc/[PID]/mountinfo.

    Für den Eventfd-Dateideskriptor (siehe eventfd(2)) gibt es (seit Linux 3.8) die folgenden Felder:
    pos:	0
    flags:	02
    mnt_id:	10
    eventfd-count:               40
    eventfd-count ist der aktuelle hexadezimale Wert des Eventfd-Zählers. Für den Epoll-Dateideskriptor (siehe epoll(7)) gibt es (seit Linux 3.8) die folgenden Felder:
    pos:	0
    flags:	02
    mnt_id:	10
    tfd:        9 events:       19 data: 74253d2500000009
    tfd:        7 events:       19 data: 74253d2500000007
    Jede mit tfd beginnende Zeile beschreibt einen Dateideskriptor, der mit dem Epoll-Dateideskriptor überwacht wird (siehe epoll_ctl(2) für weitere Details). Das Feld tfd ist die Nummer des Dateideskriptors. Das Feld events ist eine hexadezimale Maske der für diesen Dateideskriptor überwachten Ereignisse. Das Feld data ist der diesem Dateideskriptor zugeordnete Datenwert. Für den Signalfd-Dateideskriptor (siehe signalfd(2)) gibt es (seit Linux 3.8) die folgenden Felder:
    pos:	0
    flags:	02
    mnt_id:	10
    sigmask:	0000000000000006
    sigmask ist die hexadezimale Maske der Signale, die über diesen Signalfd-Dateideskriptor akzeptiert werden. (In diesem Beispiel sind Bits 2 und 3 gesetzt; dies entspricht den Signalen SIGINT und SIGQUIT; siehe signal(7).) Für Inotify-Dateideskriptoren (siehe inotify(7)) gibt es (seit Linux 3.8) die folgenden Felder:
    pos:	0
    flags:	00
    mnt_id:	11
    inotify wd:2 ino:7ef82a sdev:800001 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:2af87e00220ffd73
    inotify wd:1 ino:192627 sdev:800001 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:27261900802dfd73
    Jeder der mit »inotify« beginnenden Zeilen zeigt Informationen über eine überwachte Datei oder ein überwachtes Verzeichnis an. Die Felder in dieser Zeile sind wie folgt:

    wd  A watch descriptor number (in decimal).

    ino Die Inode-Nummer der Zieldatei (hexadezimal).

    sdev
        Die ID des Gerätes, auf dem sich die Zieldatei befindet (hexadezimal).

    mask
        Die Maske der für die Zieldatei überwachten Ereignisse (hexadezimal).

    Falls der Kernel mit Exportfs-Unterstützung gebaut wurde, ist der Pfad zu der Zieldatei mittels drei hexadezimaler Felder als Datei-Handle offengelegt: fhandle-bytes, fhandle-type und f_handle. Für Fanotify-Dateideskriptoren (siehe fanotify(7)) gibt es (seit Linux 3.8) die folgenden Felder:
    pos:	0
    flags:	02
    mnt_id:	11
    fanotify flags:0 event-flags:88002
    fanotify ino:19264f sdev:800001 mflags:0 mask:1 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:4f261900a82dfd73
    Das vierte Feld zeigt Informationen, die bei der Erstellung der Fanotify-Gruppe mittels fanotify_init(2) definiert wurden:

    flags
        Das an fanotify_init(2) übergebene Argument flags (hexadezimal ausgedrückt).

    event-flags
        Das an fanotify_init(2) übergebene Argument event_f_flags (hexadezimal ausgedrückt).

    Jede zusätzliche in der Datei gezeigte Zeile enthält Informationen über eine der Markierungen in der Fanotify-Gruppe. Die meisten der Felder sind für Inotify, außer:

    mflags
        Die der Markierung zugeordneten Schalter (hexadezimal ausgedrückt).

    mask
        Die Ereignismaske für diese Markierung (hexadezimal ausgedrückt).

    ignored_mask
        Die Maske der für diese Markierung ignorierten Ereignisse (hexadezimal ausgedrückt).

    Für Details über diese Felder lesen Sie fanotify_mark(2).

/proc/[PID]/gid_map (seit Linux 3.5)
    Siehe user_namespaces(7).

/proc/[PID]/io (seit Kernel 2.6.20)
    Diese Datei enthält E/A-Statistiken für den Prozess, beispielsweise:
    # cat /proc/3828/io
    rchar: 323934931
    wchar: 323929600
    syscr: 632687
    syscw: 632675
    read_bytes: 0
    write_bytes: 323932160
    cancelled_write_bytes: 0
    Die Bedeutung der Felder im Einzelnen:

    rchar: characters read (gelesene Zeichen)
        The number of bytes which this task has caused to be read from storage. This is simply the sum of bytes which this process passed to read(2) and similar system calls. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read might have been satisfied from pagecache).

    wchar: characters written (geschriebene Zeichen)
        The number of bytes which this task has caused, or shall cause to be written to disk. Similar caveats apply here as with rchar.

    syscr: Syscalls lesen
        Ein Versuch, die Anzahl der gelesen E/A-Vorgänge zu zählen (d.h. der Systemaufrufe wie read(2) und pread(2)).

    syscw: Syscalls schreiben
        Ein Versuch, die Anzahl der geschriebenen E/A-Vorgänge zu zählen (d.h. der Systemaufrufe wie write(2) und pwrite(2)).

    read_bytes: bytes read (gelesene Bytes)
        Versucht, die Anzahl der Bytes zu zählen, die aufgrund dieses Prozesses wirklich von der Speichereinheit geholt wurden. Für blockbasierte Dateisysteme ist dies genau.

    write_bytes: bytes written (geschriebene Bytes)
        Ein Versuch, die Anzahl der Bytes, die ausgelöst durch diesen Prozess zum Speichermedium gesandt wurden, zu zählen.

    cancelled_write_bytes:
        The big inaccuracy here is truncate. If a process writes 1MB to a file and then deletes the file, it will in fact perform no writeout. But it will have been accounted as having caused 1MB of write. In other words: this field represents the number of bytes which this process caused to not happen, by truncating pagecache. A task can cause "negative" I/O too. If this task truncates some dirty pagecache, some I/O which another task has been accounted for (in its write_bytes) will not be happening.

    Hinweis: In der aktuellen Implementierung gibt es hier auf 32-Bit-Systemen einen kleinen Ressourcenwettlauf: Falls Prozes A /proc/[PID]/io von Prozess B liest, während Prozess B einen der 64-Bit-Zähler aktualisiert, könnte Prozess A ein Zwischenergebnis sehen. Die Zugriffsberechtigungen dieser Datei werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS geregelt; siehe ptrace(2).

/proc/[PID]/limits (seit Linux 2.6.24)
    Diese Datei enthält die weichen und harten Grenzen sowie die Maßeinheiten der für den Prozess geltenden Ressourcenbeschränkungen (siehe getrlimit(2)). Bis einschließlich Linux 2.6.35 darf die Datei nur mit der realen UID des Prozesses gelesen werden. Seit Linux 2.6.36 kann diese Datei von allen Benutzern des Systems gelesen werden.

/proc/[PID]/map_files/ (seit Kernel 3.3)
    This subdirectory contains entries corresponding to memory-mapped files (see mmap(2)). Entries are named by memory region start and end address pair (expressed as hexadecimal numbers), and are symbolic links to the mapped files themselves. Here is an example, with the output wrapped and reformatted to fit on an 80-column display:
    # ls -l /proc/self/map_files/
    lr--------. 1 root root 64 Apr 16 21:31
                3252e00000-3252e20000 -> /usr/lib64/ld-2.15.so
    …
    Although these entries are present for memory regions that were mapped with the MAP_FILE flag, the way anonymous shared memory (regions created with the MAP_ANON | MAP_SHARED flags) is implemented in Linux means that such regions also appear on this directory. Here is an example where the target file is the deleted /dev/zero one:
    lrw-------. 1 root root 64 Apr 16 21:33
                7fc075d2f000-7fc075e6f000 -> /dev/zero (deleted)
    Dieses Verzeichnis erscheint nur, falls die Kernel-Konfigurationsoption CONFIG_CHECKPOINT_RESTORE aktiviert ist. Um den Inhalt dieses Verzeichnisses zu sehen, wird das Privileg CAP_SYS_ADMIN benötigt.

/proc/[PID]/maps
    Eine Datei mit den derzeit eingeblendeten Speicherbereichen und ihren Zugriffsrechten. Lesen Sie mmap(2) für weitere Informationen über Speichereinblendungen. Die Zugriffsberechtigungen dieser Datei werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS geregelt; siehe ptrace(2). Das Format der Datei lautet:
    address           perms offset  dev   inode       pathname
    00400000-00452000 r-xp 00000000 08:02 173521      /usr/bin/dbus-daemon
    00651000-00652000 r--p 00051000 08:02 173521      /usr/bin/dbus-daemon
    00652000-00655000 rw-p 00052000 08:02 173521      /usr/bin/dbus-daemon
    00e03000-00e24000 rw-p 00000000 00:00 0           [heap]
    00e24000-011f7000 rw-p 00000000 00:00 0           [heap]
    ...
    35b1800000-35b1820000 r-xp 00000000 08:02 135522  /usr/lib64/ld-2.15.so
    35b1a1f000-35b1a20000 r--p 0001f000 08:02 135522  /usr/lib64/ld-2.15.so
    35b1a20000-35b1a21000 rw-p 00020000 08:02 135522  /usr/lib64/ld-2.15.so
    35b1a21000-35b1a22000 rw-p 00000000 00:00 0
    35b1c00000-35b1dac000 r-xp 00000000 08:02 135870  /usr/lib64/libc-2.15.so
    35b1dac000-35b1fac000 ---p 001ac000 08:02 135870  /usr/lib64/libc-2.15.so
    35b1fac000-35b1fb0000 r--p 001ac000 08:02 135870  /usr/lib64/libc-2.15.so
    35b1fb0000-35b1fb2000 rw-p 001b0000 08:02 135870  /usr/lib64/libc-2.15.so
    ...
    f2c6ff8c000-7f2c7078c000 rw-p 00000000 00:00 0    [stack:986]
    ...
    7fffb2c0d000-7fffb2c2e000 rw-p 00000000 00:00 0   [stack]
    7fffb2d48000-7fffb2d49000 r-xp 00000000 00:00 0   [vdso]
    The address field is the address space in the process that the mapping occupies. The perms field is a set of permissions:
    r = read (lesen)
    w = write (schreiben)
    x = execute (ausführen)
    s = shared (gemeinsam benutzt)
    p = private (copy on write) (Kopieren bei Schreibzugriffen)
    Das Feld offset ist der Abstand zum Anfang (der Datei oder was auch immer), dev steht für das Gerät (major:minor) und Inode ist der Inode auf diesem Gerät. Ist Inode 0, dann ist keine Datei mit diesem Speicherbereich verbunden, wie z.B. im Falle von BSS (nicht initialisierte Daten). The pathname field will usually be the file that is backing the mapping. For ELF files, you can easily coordinate with the offset field by looking at the Offset field in the ELF program headers (readelf -l). Es gibt zusätzliche, hilfreiche Pseudo-Pfade:

    [stack]
        The initial process's (also known as the main thread's) stack.

    [stack:<tid>] (seit Linux 3.4)
        A thread's stack (where the <tid> is a thread ID). It corresponds to the /proc/[pid]/task/[tid]/ path.

    [vdso]
        The virtual dynamically linked shared object. See vdso(7).

    [heap]
        Der Prozess-Heap.

    If the pathname field is blank, this is an anonymous mapping as obtained via mmap(2). There is no easy way to coordinate this back to a process's source, short of running it through gdb(1), strace(1), or similar. Unter Linux 2.0 gibt es kein Feld, das den Pfadnamen angibt.

/proc/[PID]/mem
    Diese Datei kann genutzt werden, auf die Speicherseiten des Prozesses mittels open(2), read(2) und lseek(2) zuzugreifen. Die Rechte, auf diese Datei zuzugreifen, werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_ATTACH_FSCREDS gesteuert; siehe ptrace(2).

/proc/[PID]/mountinfo (seit Linux 2.6.26)
    This file contains information about mount points in the process's mount namespace (see mount_namespaces(7)). It supplies various information (e.g., propagation state, root of mount for bind mounts, identifier for each mount and its parent) that is missing from the (older) /proc/[pid]/mounts file, and fixes various other problems with that file (e.g., nonextensibility, failure to distinguish per-mount versus per-superblock options). Die Datei enthält Zeilen der folgenden Form:
    36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
    (1)(2)(3)   (4)   (5)      (6)      (7)   (8) (9)   (10)         (11)

    Die Zahlen in Klammern sind Zuordnungen zu den folgenden Beschreibungen:

    (1) Einhänge-ID: eine eindeutige Identifikation für dieses Einhängen (kann nach umount(2) erneut verwendet werden).

    (2) Eltern-ID: die ID der Eltern-Einhängung (oder von selbst für den Beginn des Einhängebaums)

    (3) Major:Minor: der Wert von st_dev für Dateien im Dateisystem (siehe stat(2)).

    (4) Wurzel: der Pfadname des Verzeichnisses in dem Dateisystem, der die Wurzel dieser Einhängung darstellt.

    (5) Einhängepunkt: der Einhängepunkt relativ zum Wurzelverzeichnis des Prozesses.

    (6) Einhängeoptionen: individuelle Einhängeoptionen.

    (7) Optionale Felder: ein oder mehrere Felder der Form »Bezeichnung[:Wert]« (siehe unten).

    (8) Trennzeichen: das Ende der optionalen Felder wird durch einen einzelnen Gedankenstrich markiert.

    (9) Dateisystemtyp: der Typ des Dateisystems im Format »Typ[.Untertyp]«.

    (10)
        Einhänge-Ursprung: dateisystemspezifische Informationen oder »none«.

    (11)
        Super-Optionen: individuelle Superblock-Optionen.

    Currently, the possible optional fields are shared, master, propagate_from, and unbindable. See mount_namespaces(7) for a description of these fields. Parsers should ignore all unrecognized optional fields.

    Weitere Informationen zur Übertragung von Einhängepunkten finden Sie in Documentation/filesystems/sharedsubtree.txt im Linux-Kernel-Quelltext.

/proc/[PID]/mounts (seit Linux 2.4.19)
    Diese Datei listet alle Dateisysteme auf, die derzeit in dem Einhängenamensraum des Prozesses eingehängt sind (siehe mount_namespaces(7)). Das Format dieser Datei wird in fstab(5) dokumentiert. Seit Kernel-Version 2.6.15 kann diese Datei abgefragt werden: nach dem Öffnen der Datei zum Lesen veranlasst eine Änderung in dieser Datei (d.h. ein Dateisystem einhängen oder aushängen) select(2) den Dateideskriptor als besondere Bedingung und poll(2) und epoll_wait(2) die Datei als Prioritätsereignis (POLLPRI) zu markieren. (Vor Linux 2.6.30 führte eine Änderung in dieser Datei dazu, dass der Dateideskriptor als lesbar für select(2) und als Fehlerzustand für poll(2) und epoll_wait(2) markiert wurde.)

/proc/[PID]/mountstats (seit Linux 2.6.17)
    Diese Datei macht Informationen (Statistiken, Konfigurationsinformation) über die Einhängepunkte im »mount«-Namensraum des Prozesses verfügbar (siehe mount_namespaces(7)). Zeilen in dieser Datei haben die folgende Form:
    device /dev/sda7 mounted on /home with fstype ext3 [statistics]
    (       1      )            ( 2 )             (3 )     (4)

    Die Felder in jeder Zeile sind:

    (1) Der Name des eingehängten Geräts (oder »nodevice«, wenn es kein entsprechendes Gerät gibt).

    (2) Der Einhängepunkt innerhalb des Dateisystembaums.

    (3) Der Dateisystemtyp.

    (4) Optionale Statistiken und Konfigurationsinformationen. Derzeit (Stand Linux 2.6.26) stellen nur NFS-Dateisysteme Informationen in diesem Feld bereit.

    Diese Datei kann nur vom Eigentümer des Prozesses gelesen werden.

    /proc/[PID]/net " (seit Linux 2.6.25)" Siehe die Beschreibung von /proc/net.

/proc/[PID]/ns/ (seit Linux 3.0)
    Dieses Unterverzeichnis enthält einen Eintrag für jeden Namensraum, der mittels setns(2) manipuliert werden kann. Für weitere Informationen siehe namespaces(7).

/proc/[PID]/numa_maps (seit Linux 2.6.14)
    Siehe numa(7).

/proc/[PID]/oom_adj (seit Linux 2.6.11)
    Diese Datei kann verwendet werden, um den Wert anzupassen, anhand dessen Prozesse bei Speichermangel (out-of-memory, OOM) abgebrochen werden. Der Kernel verwendet diesen Wert für eine Bit-Shift-Operation des oom_score-Werts des Prozesses: Gültig sind Werte im Bereich von -16 bis +15, sowie der besondere Wert -17, der einen Abbruch des Prozesses wegen Speichermangel deaktiviert. Ein positiver Wert erhöht die Wahrscheinlichkeit, dass der Prozess vom »OOM-Killer« abgebrochen wird, ein negativer Wert senkt die Wahrscheinlichkeit.

    Der Standardwert für diese Datei ist 0. Ein neuer Prozess erbt die Einstellung oom_adj von seinem Elternprozess. Ein Prozess musss privilegiert sein (CAP_SYS_RESOURCE), um diese Datei zu aktualisieren.

    seit Linux 2.6.36 wird die Verwendung dieser Datei gegenüber /proc/[PID]/oom_score_adj missbilligt.

/proc/[PID]/oom_score (seit Linux 2.6.11)
    Diese Datei zeigt die aktuelle Bewertung des Kernels für diesen Prozess als Grundlage für die Auswahl als Opfer des OOM-Killers. Eine höhere Bewertung bedeutet, dass der Prozess eher von dem OOM-Killer ausgewählt werden soll. Die Grundlage dieser Bewertung ist der Speicherverbrauch. Verschiedene andere Faktoren erhöhen (+) oder verringern (-) diesen Wert. Diese Faktoren sind:

    *   ob der Prozess mittels fork(2) viele Kinder erzeugt (+);

    *   ob der Prozess schon lange läuft oder viel CPU-Zeit verbraucht hat (-);

    *   ob der Prozess einen niedrigen Nice-Wert hat (d.h. > 0) (+);

    *   ob der Prozess privilegiert ist (-); und

    *   ob der Prozess direkt auf die Hardware zugreift (-).

    Der oom_score spiegelt auch die Anpassung durch die oom_score_adj- oder oom_adj-Einstellung für den Prozess.

/proc/[PID]/oom_score_adj (seit Linux 2.6.36)
    This file can be used to adjust the badness heuristic used to select which process gets killed in out-of-memory conditions. The badness heuristic assigns a value to each candidate task ranging from 0 (never kill) to 1000 (always kill) to determine which process is targeted. The units are roughly a proportion along that range of allowed memory the process may allocate from, based on an estimation of its current memory and swap use. For example, if a task is using all allowed memory, its badness score will be 1000. If it is using half of its allowed memory, its score will be 500. There is an additional factor included in the badness score: root processes are given 3% extra memory over other tasks. The amount of "allowed" memory depends on the context in which the OOM-killer was called. If it is due to the memory assigned to the allocating task's cpuset being exhausted, the allowed memory represents the set of mems assigned to that cpuset (see cpuset(7)). If it is due to a mempolicy's node(s) being exhausted, the allowed memory represents the set of mempolicy nodes. If it is due to a memory limit (or swap limit) being reached, the allowed memory is that configured limit. Finally, if it is due to the entire system being out of memory, the allowed memory represents all allocatable resources. The value of oom_score_adj is added to the badness score before it is used to determine which task to kill. Acceptable values range from -1000 (OOM_SCORE_ADJ_MIN) to +1000 (OOM_SCORE_ADJ_MAX). This allows user space to control the preference for OOM-killing, ranging from always preferring a certain task or completely disabling it from OOM killing. The lowest possible value, -1000, is equivalent to disabling OOM-killing entirely for that task, since it will always report a badness score of 0. Consequently, it is very simple for user space to define the amount of memory to consider for each task. Setting an oom_score_adj value of +500, for example, is roughly equivalent to allowing the remainder of tasks sharing the same system, cpuset, mempolicy, or memory controller resources to use at least 50% more memory. A value of -500, on the other hand, would be roughly equivalent to discounting 50% of the task's allowed memory from being considered as scoring against the task. For backward compatibility with previous kernels, /proc/[pid]/oom_adj can still be used to tune the badness score. Its value is scaled linearly with oom_score_adj. Schreiben in /proc/[PID]/oom_score_adj oder /proc/[PID]/oom_adj führt zur Änderung des anderen mit dem skalierten Wert.

/proc/[PID]/pagemap (seit Linux 2.6.25)
    This file shows the mapping of each of the process's virtual pages into physical page frames or swap area. It contains one 64-bit value for each virtual page, with the bits set as follows:

    63  Falls gesetzt ist die Seite im RAM

    62  If set, the page is in swap space

    61 (seit Linux 3.5)
        The page is a file-mapped page or a shared anonymous page.

    60-56 (seit Linux 3.11)
        Null

    55 (since Linux 3.11)
        PTE is soft-dirty (see the kernel source file Documentation/vm/soft-dirty.txt).

    54-0
        If the page is present in RAM (bit 63), then these bits provide the page frame number, which can be used to index /proc/kpageflags and /proc/kpagecount. If the page is present in swap (bit 62), then bits 4-0 give the swap type, and bits 54-5 encode the swap offset.

    Vor Linux 3.11 wurden die Bits 60-55 dazu verwandt, den Logarithmus (in der Basis 2) der Seitengröße zu halten.

    To employ /proc/[pid]/pagemap efficiently, use /proc/[pid]/maps to determine which areas of memory are actually mapped and seek to skip over unmapped regions.

    Die Datei /proc/[PID]/pagemap ist nur vorhanden, wenn die Kernel-Konfigurationsoption CONFIG_PROC_PAGE_MONITOR aktiviert ist. Die Zugriffsberechtigungen dieser Datei werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS geregelt; siehe ptrace(2).

/proc/[PID]/personality (seit Linux 2.6.28)
    Diese nur-lesbare Datei legt die Ausführungs-Domain des Prozesses offen, wie sie von personality(2) gesehen wird. Der Wert ist hexadezimal dargestellt. Die Rechte, auf diese Datei zuzugreifen, werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_ATTACH_FSCREDS gesteuert; siehe ptrace(2).

/proc/[PID]/root
    UNIX und Linux unterstützen das Konzept eines prozesseigenen Wurzel-Dateisystems (root), das für jeden Prozess mit dem Systemauf chroot(2) gesetzt wird. Diese Datei ist ein symbolischer Link, der auf das Root-Verzeichnis des Prozesses weist, und verhält sich wie es auch exe und fd/* tun. Beachten Sie, dass diese Datei nicht nur ein einfacher symbolischer Link ist. Sie stellt den gleichen Blick auf das Dateisystem (einschließlich Namensräume und der Gruppe der pro-Prozesse-Einhängungen) wie der Prozess dar. Ein Beispiel erläutert diesen Punkt. In einem Terminal wird eine Shell in einem neuen Benutzer- und Einhängenamensraum gestartet und in dieser Shell werden einige neue Einhängepunkte erstellt:
    $ PS1='sh1# ' unshare -Urnm
    sh1# mount -t tmpfs tmpfs /etc  # Leeres Tmpfs unter /etc einhängen
    sh1# mount --bind /usr /dev     # /usr unter /dev einhängen
    sh1# echo $$
    27123
    In einem zweiten Terminalfenster, in dem ursprünglichen Einhängenamensraum, wird der Inhalt der entsprechenden Einhängungen in dem ursprünglichen und dem neuen Namensraum angeschaut:
    $ PS1='sh2# ' sudo sh
    sh2# ls /etc | wc -l                  # In initial NS
    309
    sh2# ls /proc/27123/root/etc | wc -l  # /etc in other NS
    0                                     # The empty tmpfs dir
    sh2# ls /dev | wc -l                  # In initial NS
    205
    sh2# ls /proc/27123/root/dev | wc -l  # /dev in other NS
    11                                    # Actually bind
                                          # mounted to /usr
    sh2# ls /usr | wc -l                  # /usr in initial NS
    11
    In einem Multithread-Prozess ist der Inhalt des symbolischen Links /proc/[PID]/root nicht mehr verfügbar, wenn der Haupt-Thread schon beendet ist (typischerweise durch einen Aufruf von pthread_exit(3)). Die Rechte, diesen symbolischen Link zu dereferenzieren oder zu lesen (readlink(2)), werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS gesteuert; siehe ptrace(2).

/proc/[PID]/seccomp (Linux 2.6.12 bis 2.6.22)
    This file can be used to read and change the process's secure computing (seccomp) mode setting. It contains the value 0 if the process is not in seccomp mode, and 1 if the process is in strict seccomp mode (see seccomp(2)). Writing 1 to this file places the process irreversibly in strict seccomp mode. (Further attempts to write to the file fail with the EPERM error.) Unter Linux 2.6.23 verschwand diese Datei und wurde durch die Aktionen PR_GET_SECCOMP und PR_SET_SECCOMP von prctl(2) ersetzt (und später durch seccomp(2) und das Feld Seccomp in /proc/[PID]/status).

/proc/[PID]/setgroups (seit Linux 3.19)
    Siehe user_namespaces(7).

/proc/[PID]/smaps (seit Linux 2.6.14)
    Diese Datei zeigt den Speicherverbrauch für jedes der Prozess-Mappings. (Der Befehl pmap(1) zeigt ähnliche Informationen in einer Form, die leichter auswertbar sein können.) Für jedes der Mappings gibt es eine Reihe von Zeilen wie die folgenden:
    00400000-0048a000 r-xp 00000000 fd:03 960637       /bin/bash
    Size:                552 kB
    Rss:                 460 kB
    Pss:                 100 kB
    Shared_Clean:        452 kB
    Shared_Dirty:          0 kB
    Private_Clean:         8 kB
    Private_Dirty:         0 kB
    Referenced:          460 kB
    Anonymous:             0 kB
    AnonHugePages:         0 kB
    ShmemHugePages:        0 kB
    ShmemPmdMapped:        0 kB
    Swap:                  0 kB
    KernelPageSize:        4 kB
    MMUPageSize:           4 kB
    KernelPageSize:        4 kB
    MMUPageSize:           4 kB
    Locked:                0 kB
    ProtectionKey:         0
    VmFlags: rd ex mr mw me dw
    The first of these lines shows the same information as is displayed for the mapping in /proc/[pid]/maps. The following lines show the size of the mapping, the amount of the mapping that is currently resident in RAM ("Rss"), the process's proportional share of this mapping ("Pss"), the number of clean and dirty shared pages in the mapping, and the number of clean and dirty private pages in the mapping. "Referenced" indicates the amount of memory currently marked as referenced or accessed. "Anonymous" shows the amount of memory that does not belong to any file. "Swap" shows how much would-be-anonymous memory is also used, but out on swap. The "KernelPageSize" line (available since Linux 2.6.29) is the page size used by the kernel to back the virtual memory area. This matches the size used by the MMU in the majority of cases. However, one counter-example occurs on PPC64 kernels whereby a kernel using 64kB as a base page size may still use 4kB pages for the MMU on older processors. To distinguish the two attributes, the "MMUPageSize" line (also available since Linux 2.6.29) reports the page size used by the MMU. The "Locked" indicates whether the mapping is locked in memory or not. The "ProtectionKey" line (available since Linux 4.9, on x86 only) contains the memory protection key (see pkeys(7)) associated with the virtual memory area. This entry is present only if the kernel was built with the CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS configuration option. The "VmFlags" line (available since Linux 3.8) represents the kernel flags associated with the virtual memory area, encoded using the following two-letter codes:
        rd - readable
        wr - writable
        ex - executable
        sh - shared
        mr - may read
        mw - may write
        me - may execute
        ms - may share
        gd - stack segment grows down
        pf - pure PFN range
        dw - disabled write to the mapped file
        lo - pages are locked in memory
        io - memory mapped I/O area
        sr - sequential read advise provided
        rr - random read advise provided
        dc - do not copy area on fork
        de - do not expand area on remapping
        ac - area is accountable
        nr - swap space is not reserved for the area
        ht - area uses huge tlb pages
        nl - non-linear mapping
        ar - architecture specific flag
        dd - do not include area into core dump
        sd - soft-dirty flag
        mm - mixed map area
        hg - huge page advise flag
        nh - no-huge page advise flag
        mg - mergeable advise flag "ProtectionKey" field contains the memory protection key (see pkeys(5)) associated with the virtual memory area. Present only if the kernel was built with the CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS configuration option. (since Linux 4.6) Die Datei /proc/[PID]/smaps ist nur vorhanden, wenn die Kernel-Konfigurationsoption CONFIG_PROC_PAGE_MONITOR aktiviert ist.

/proc/[PID]/stack (seit Linux 2.6.29)
    This file provides a symbolic trace of the function calls in this process's kernel stack. This file is provided only if the kernel was built with the CONFIG_STACKTRACE configuration option. Die Rechte, auf diese Datei zuzugreifen, werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_ATTACH_FSCREDS gesteuert; siehe ptrace(2).

/proc/[PID]/stat
    Statusinformationen des Prozesses. Wird von ps(1) benutzt. Sie werden in Kernelquelldatei fs/proc/array.c definiert. Die Felder werden in dieser Reihenfolge mit ihrem passenden scanf(3)-Formatspezifikator unten aufgeführt. Ob bestimmte dieser Felder gültige Informationen anzeigen, wird von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT gesteuert (siehe ptrace(2)). Falls die Prüfung den Zugriff verweigert, wird der Feldwert mit 0 angegeben. Die betroffenen Felder werden mit der Markierung [PT] gekennzeichnet.

    (1) PID  %d
        Die Prozess-Identifikation.

    (2) comm  %s
        Der Name der ausführbaren Datei, in Klammern, sichtbar unabhängig vom Swap-Status des Programms.

    (3) state  %c
        Eines der folgenden Zeichen zur Angabe des Prozesszustandes:

        R   Laufend

        S   Schlafend in einem unterbrechbaren Wartezustand

        D   Wartend in einem nicht unterbrechbaren Plattenschlaf

        Z   Zombie

        T   Stopped (on a signal) or (before Linux 2.6.33) trace stopped

        t   Tracing stop (Linux 2.6.33 onward)

        W   Paging (only before Linux 2.6.0)

        X   Getötet (seit Linux 2.6.0)

        x   Getötet (nur Linux 2.6.33 bis 3.13)

        K   Wakekill (Linux 2.6.33 to 3.13 only)

        W   Aufwachend (nur Linux 2.6.33 bis 3.13)

        P   Geparkt (nur Linux 3.9 bis 3.13)

    (4) ppid  %d
        Die Prozess-ID des Elternprozesses dieses Prozesses.

    (5) pgrp  %d
        Die Prozess-Gruppen-ID des Prozesses.

    (6) session  %d
        Die Sitzungs-ID des Prozesses.

    (7) tty_nr  %d
        Das steuernde Terminal des Prozesses. (Die Minor-Gerätenummer ist in der Kombination der Bits 31 bis 20 und 7 bis 0 enthalten; die Major-Gerätenummer befindet sich in den Bits 15 bis 8.)

    (8) tpgid  %d
        Die ID der Vordergrund-Prozessgruppe des steuernden Terminals des Prozesses.

    (9) flags  %u
        Das Wort mit den Kernel-Schaltern des Prozesses. Die Bedeutung der Bits finden Sie in den PF_*-#define-Anweisungen in der Linux-Quellcodedatei <linux/sched.h>. Die Details hängen von der Kernel-Version ab. Das Format dieses Feldes war %lu vor Linux 2.6.

    (10) minflt  %lu
        The number of minor faults the process has made which have not required loading a memory page from disk.

    (11) cminflt  %lu
        The number of minor faults that the process's waited-for children have made.

    (12) majflt  %lu
        The number of major faults the process has made which have required loading a memory page from disk.

    (13) cmajflt  %lu
        The number of major faults that the process's waited-for children have made.

    (14) utime  %lu
        Amount of time that this process has been scheduled in user mode, measured in clock ticks (divide by sysconf(_SC_CLK_TCK)). This includes guest time, guest_time (time spent running a virtual CPU, see below), so that applications that are not aware of the guest time field do not lose that time from their calculations.

    (15) stime  %lu
        Gesamtzeit, die dieser Prozess im Kernel-Modus verbracht hat, gemessen in »clock ticks« (dividieren Sie durch sysconf(_SC_CLK_TCK)).

    (16) cutime  %ld
        Gesamtzeit, die abgewartete Kindprozesse im User-Modus verbracht haben, gemessen in »clock ticks« (dividieren Sie durch sysconf(_SC_CLK_TCK)) (siehe auch times(2)). Das umfasst Gastzeit, guest_time (Laufzeit in einer virtuellen CPU, siehe unten).

    (17) cstime  %ld
        Gesamtzeit, die abgewartete Kindprozesse im Kernel-Modus verbracht haben, gemessen in »clock ticks« (dividieren Sie durch sysconf(_SC_CLK_TCK)).

    (18) priority  %ld
        (Erklärung für Linux 2.6) Für Prozesse, die im Scheduling eine Echtzeit-Strategie verfolgen (policy weiter unten, siehe sched_setscheduler(2)), ist dies die negierte Scheduling-Priorität minus eins, das heißt, eine Zahl im Bereich von -2 bis - 100, entsprechend den Echtzeitprioritäten 1 bis 99. Für Prozesse, deren Scheduling keine Echtzeit-Strategie verfolgt, ist das ist der rohe Nice-Wert (setpriority(2)), wie er im Kernel dargestellt ist. Der Kernel speichert Nice-Werte als Zahlen im Bereich 0 (hoch) bis 39 (niedrig), entsprechend des für den Benutzer sichtbaren Nice-Bereich von -20 bis 19. Vor Linux 2.6 war dies ein skalierter Wert auf Grundlage des vom Scheduler an den Prozess zugewiesenen Gewichts.

    (19) nice  %ld
        Der Nice-Wert (siehe setpriority(2)), ein Wert im Bereich von 19 (niedrige Priorität) bis -20 (hohe Priorität).

    (20) num_threads  %ld
        Anzahl von Threads in diesem Prozess (seit Linux 2.6). Vor Kernel 2.6 war dieses Feld mit dem Wert 0 als Platzhalter für ein früher entferntes Feld hartkodiert.

    (21) itrealvalue  %ld
        Die Zeit (in Jiffies), bevor dem Prozess aufgrund eines Intervalltimers ein SIGALRM gesendet wird. Seit Kernel 2.6.17 wird dieses Feld nicht mehr gewartet und wird mit 0 hartkodiert.

    (22) starttime  %llu
        Die Zeit, zu der der Prozess nach dem Systemstart gestartet wurde. In Kerneln vor Linux 2.6 wurde dieser Wert in Jiffies ausgegeben. Seit Linux 2.6 wird der Wert in Uhrtakten ausgedrückt (teilen Sie diese durch sysconf(_SC_CLK_TCK)). Das Format dieses Feldes war %lu vor Linux 2.6.

    (23) vsize  %lu
        Größe des virtuellen Speichers in Bytes.

    (24) rss  %ld
        Resident Set Size: Anzahl der Seiten, die der Prozess tatsächlich im Speicher hat. Dabei zählen nur die Seiten von Text, Daten und Stack. Nicht abgerufene oder ausgelagerte Bereiche zählen nicht mit.

    (25) rsslim  %lu
        Aktuelle weiche Grenze für die RSS des Prozesses; siehe die Beschreibung von RLIMIT_RSS in getrlimit(2).

    (26) startcode  %lu  [PT]
        Die Adresse, oberhalb derer Programmtext ausgeführt werden kann.

    (27) endcode  %lu  [PT]
        Die Adresse, unterhalb derer Programmtext ausgeführt werden kann.

    (28) startstack  %lu  [PT]
        Die Startadresse des Stacks (also der »Boden«).

    (29) kstkesp  %lu  [PT]
        Derzeitiger Wert von ESP (Stack Pointer), wie er in der Kernel-Stack-Seite für diesen Prozess steht.

    (30) kstkeip  %lu  [PT]
        Der aktuelle EIP (Instruction Pointer, Anweisungszeiger).

    (31) signal  %lu
        Die Bitmap anstehender Signale, angezeigt als Dezimalzahl. Obsolet, weil sie keine Informationen über Echtzeitsignale gibt; verwenden Sie stattdessen /proc/[PID]/status.

    (32) blocked  %lu
        Die Bitmap blockierter Signale, angezeigt als Dezimalzahl. Obsolet, weil sie keine Informationen über Echtzeitsignale gibt; verwenden Sie stattdessen /proc/[PID]/status.

    (33) sigignore  %lu
        Die Bitmap ignorierter Signale, angezeigt als Dezimalzahl. Obsolet, weil sie keine Informationen über Echtzeitsignale gibt; verwenden Sie stattdessen /proc/[PID]/status.

    (34) sigcatch  %lu
        Die Bitmap abgefangener Signale, angezeigt als Dezimalzahl. Obsolet, weil sie keine Informationen über Echtzeitsignale gibt; verwenden Sie stattdessen /proc/[PID]/status.

    (35) wchan  %lu  [PT]
        Dies ist der »Kanal«, in dem der Prozess wartet. Es ist die Adresse des Orts im Kernel, an dem der Prozess schläft. Der entsprechende symbolische Name kann in /proc/[PID]/wchan gefunden werden.

    (36) nswap  %lu
        Anzahl ausgelagerter Seiten (nicht gewartet).

    (37) cnswap  %lu
        Aufaddiertes nswap der Kindprozesse (nicht gewartet).

    (38) exit_signal  %d  (seit Linux 2.1.22)
        Das an den Elternprozess zu sendende Signal, wenn wir sterben.

    (39) processor  %d  (seit Linux 2.2.8)
        Nummer der CPU, auf der der Prozess zuletzt lief.

    (40) rt_priority  %u  (seit Linux 2.5.19)
        Priorität für das Echtzeit-Scheduling, eine Zahl im Bereich von 1 bis 99 für Prozesse, deren Scheduling einer Echtzeit-Strategie folgt oder 0 für andere Prozesse (siehe sched_setscheduler(2)).

    (41) policy  %u  (seit Linux 2.5.19)
        Scheduling-Strategie (siehe sched_setscheduler(2)). Dekodieren Sie mit den SCHED_*-Konstanten in linux/sched.h. Das Format dieses Feldes war %lu vor Linux 2.6.22.

    (42) delayacct_blkio_ticks  %llu  (seit Linux 2.6.18)
        Kumulierte Block-E/A-Verzögerungen, gemessen in Ticks (Hundertstelsekunden).

    (43) guest_time  %lu  (seit Linux 2.6.24)
        Gastzeit des Prozesses (aufgewendete Zeit für den Betrieb einer virtuellen CPU für ein Gast-Betriebssystem), gemessen in »clock ticks« (dividieren Sie durch sysconf(_SC_CLK_TCK)).

    (44) cguest_time  %ld  (seit Linux 2.6.24)
        Gastzeit der Kindprozesse des Prozesses, gemessen in »clock ticks« (dividieren Sie durch sysconf(_SC_CLK_TCK)).

    (45) start_data  %lu  (seit Linux 3.3)  [PT]
        Adresse, oberhalb derer die initialisierten und nicht-initialisierten Programmdaten (BSS) abgelegt werden.

    (46) end_data  %lu  (seit Linux 3.3)  [PT]
        Adresse, unterhalb derer die initialisierten und nicht-initialisierten Programmdaten (BSS) abgelegt werden.

    (47) start_brk  %lu  (seit Linux 3.3)  [PT]
        Address above which program heap can be expanded with brk(2).

    (48) arg_start  %lu  (seit Linux 3.5)  [PT]
        Adresse, oberhalb derer die Befehlszeilenargumente (argv) abgelegt werden.

    (49) arg_end  %lu  (seit Linux 3.5)  [PT]
        Adresse, unterhalb derer die Befehlszeilenargumente (argv) abgelegt werden.

    (50) env_start  %lu  (seit Linux 3.5)  [PT]
        Adresse, oberhalb derer die Programmumgebung abgelegt wird.

    (51) env_end  %lu  (seit Linux 3.5)  [PT]
        Adresse, unterhalb derer die Programmumgebung abgelegt wird.

    (52) exit_code  %d  (seit Linux 3.5)  [PT]
        Der Exit-Status des Threads in dem durch waitpid(2) berichteten Format.

/proc/[PID]/statm
    Informiert über den Speicherverbrauch, gemessen in Seiten. Die Spalten bedeuten:
    Größe         (1) Gesamtgröße des Programms
                  (dasselbe wie VmSize in /proc/[PID]/status)
    im Speicher   (2) Größe des Resident Set
                  (dasselbe wie VmRSS in /proc/[PID]/status)
    gemeinsam     (3) Anzahl von residenten (d.h. dateigestützten) gemeinsamen
                  Seiten
     (dasselbe wie RssFile+RssShmem in
                  /proc/[PID]/status)
    Text          (4) Text (Code)
    Bibliothek    (5) Bibliothek (seit Linux 2.6 nicht verwendet, immer 0)
    Daten         (6) Daten + Stack
    geändert      (7) geänderte Seiten (dirty) (seit Linux 2.6
                  nicht verwendet, immer 0)

/proc/[PID]/status
    Stellt viele der Informationen in /proc/[PID]/stat und /proc/[PID]/statm in einem Format bereit, das für Menschen einfacher auszuwerten ist. Ein Beispiel:
    $ cat /proc/$$/status
    Name:   bash
    Umask:  0022
    State:  S (sleeping)
    Tgid:   17248
    Ngid:   0
    Pid:    17248
    PPid:   17200
    TracerPid:      0
    Uid:    1000    1000    1000    1000
    Gid:    100     100     100     100
    FDSize: 256
    Groups: 16 33 100
    NStgid: 17248
    NSpid:  17248
    NSpgid: 17248
    NSsid:  17200
    VmPeak:	  131168 kB
    VmSize:	  131168 kB
    VmLck:	       0 kB
    VmPin:	       0 kB
    VmHWM:	   13484 kB
    VmRSS:	   13484 kB
    RssAnon:	   10264 kB
    RssFile:	    3220 kB
    RssShmem:	       0 kB
    VmData:	   10332 kB
    VmStk:	     136 kB
    VmExe:	     992 kB
    VmLib:	    2104 kB
    VmPTE:	      76 kB
    VmPMD:	      12 kB
    VmSwap:	       0 kB
    HugetlbPages:          0 kB		# 4.4
    Threads:        1
    SigQ:   0/3067
    SigPnd: 0000000000000000
    ShdPnd: 0000000000000000
    SigBlk: 0000000000010000
    SigIgn: 0000000000384004
    SigCgt: 000000004b813efb
    CapInh: 0000000000000000
    CapPrm: 0000000000000000
    CapEff: 0000000000000000
    CapBnd: ffffffffffffffff
    CapAmb:	0000000000000000
    NoNewPrivs:     0
    Seccomp:        0
    Cpus_allowed:   00000001
    Cpus_allowed_list:      0
    Mems_allowed:   1
    Mems_allowed_list:      0
    voluntary_ctxt_switches:        150
    nonvoluntary_ctxt_switches:     545

    Die Bedeutung der Felder im Einzelnen:

    *   Name: Der von diesem Prozess ausgeführte Befehl.

    *   Umask: Die Umask des Prozesses, oktal mit führender Null, siehe umask(2). (Seit Linux 4.7.)

    *   State: aktueller Prozesszustand; einer der Werte »R (running)«, »S (sleeping)«, »D (disk sleep)«, »T (stopped)«, »T (tracing stop)«, »Z (zombie)« oder »X (dead)«.

    *   Tgid: Gruppen-ID des Threads (d.h. die Prozess-ID).

    *   Ngid: NUMA-Gruppen-ID (0 falls keine; seit Linux 3.13).

    *   PID: Thread-ID (siehe gettid(2)).

    *   PPid: PID des Elternprozesses.

    *   TracerPid: PID des Prozesses, der diesen Prozess beobachtet (0 ohne Beobachtung).

    *   Uid, Gid: Real, effective, saved set, and filesystem UIDs (GIDs).

    *   FDSize: Anzahl der aktuell bereitgestellten Dateideskriptor-Slots.

    *   Groups: ergänzende Gruppenliste.

    *   NStgid: Thread-Gruppen-ID (d.h. PID) in jedem der PID-Namensräume, in denen [PID] ein Mitglied ist. Der ganz linke Eintrag zeigt den Wert in Bezug auf den PID-Namensraum des lesenden Prozesses, gefolgt von den Werten nachfolgend geschachtelter innerer Namensräume. (Seit Linux 4.1)

    *   NSpid: Thread-ID in jedem der PID-Namensräume, in denen [PID] ein Mitglied ist. Die Felder sind wie bei NStgid sortiert. (Seit Linux 4.1.)

    *   NSpgid: Prozessgruppen-ID in jedem der PID-Namensräume, in denen [PID] ein Mitglied ist. Die Felder sind wie bei NStgid sortiert. (Seit Linux 4.1.)

    *   NSsid: Sitzungs-ID der Nachkommens-Namensraum-Sitzungs-ID-Hierarchie, in jedem der PID-Namensraumen, in denen [PID] ein Mitglied ist. Die Felder sind wie bei NStgid sortiert. (Seit Linux 4.1.)

    *   VmPeak: Maximalwert des genutzten virtuellen Speichers.

    *   VmSize: Größe des virtuellen Speichers.

    *   VmLck: Größe des gesperrten Speichers (siehe mlock(3)).

    *   VmPin: Pinned memory size (since Linux 3.2). These are pages that can't be moved because something needs to directly access physical memory.

    *   VmHWM: Maximalwert der Resident Set Size (»Hochwassermarke«).

    *   VmRSS: Resident set size. Note that the value here is the sum of RssAnon, RssFile, and RssShmem.

    *   RssAnon: Größe des residenten anonymen Speichers. (seit Linux 4.5).

    *   RssFile: Size of resident file mappings. (since Linux 4.5).

    *   RssShmem: Size of resident shared memory (includes System V shared memory, mappings from tmpfs(5), and shared anonymous mappings). (since Linux 4.5).

    *   VmData, VmStk, VmExe: Größe der Daten-, Stack und Text-Segmente.

    *   VmLib: Code-Größe von Laufzeitbibliotheken.

    *   VmPTE: Größe der Einträge in der Page Table (seit Linux 2.6.10).

    *   VmPMD: Size of second-level page tables (since Linux 4.0).

    *   VmSwap: Swapped-out virtual memory size by anonymous private pages; shmem swap usage is not included (since Linux 2.6.34).

    *   HugetlbPages: Größe der Hugetlb-Speicheranteile. (seit Linux 4.4).

    *   Threads: Anzahl der Threads im Prozess, zu dem dieser Thread gehört.

    *   SigQ: Dieses Feld enthält zwei durch Schrägstriche getrennte Zahlen, die sich auf Signale in der Warteschlange für die reale Benutzer-ID des Prozesses beziehen. Die erste davon ist die Anzahl der derzeit in der Warteschlange befindlichen Signale für diese reale Benutzer-ID und die zweite ist die Ressourcenbegrenzung für die Anzahl wartender Signale für diesen Prozess (siehe die Beschreibung von RLIMIT_SIGPENDING in getrlimit(2)).

    *   SigPnd, ShdPnd: Anzahl der insgesamt für Thread und Prozess anstehenden Signale (siehe pthreads(7) und signal(7)).

    *   SigBlk, SigIgn, SigCgt: Masken für die Anzeige blockierter, ignorierter und abgefangener Signale (see signal(7)).

    *   CapInh, CapPrm, CapEff: In den veerbbaren, erlaubten und effektiven Capability-Mengen aktivierte Masken (siehe capabilities(7)).

    *   CapBnd: Capability-Begrenzungsmenge (seit Linux 2.6.26, siehe capabilities(7)).

    *   CapAmb: Umgebungs-Capability-Menge (seit Linux 4.3, siehe capabilities(7)).

    *   NoNewPrivs: Value of the no_new_privs bit (since Linux 4.10, see prctl(2)).

    *   Seccomp: Seccomp-Modus des Prozesses (seit Linux 3.8, siehe seccomp(2)). 0 bedeutet SECCOMP_MODE_DISABLED; 1 bedeutet SECCOMP_MODE_STRICT; 2 bedeutet SECCOMP_MODE_FILTER. Dieses Feld wird nur bereitgestellt, falls der Kernel mit der aktivierten Kernelkonfigurationsoption CONFIG_SECCOMP gebaut wurde.

    *   Cpus_allowed: Maske von CPUs, auf denen der Prozess laufen kann (seit Linux 2.6.24, siehe cpuset(7)).

    *   Cpus_allowed_list: dasselbe wie das vorhergehende, aber in »Listenformat« (seit Linux 2.6.26, siehe cpuset(7)).

    *   Mems_allowed: Maske von für diesen Prozess erlaubten Speicherknoten (seit Linux 2.6.24, siehe cpuset(7)).

    *   Mems_allowed_list: dasselbe wie das Letzte, aber in »Listenformat« (seit Linux 2.6.26, siehe cpuset(7)).

    *   voluntary_ctxt_switches, nonvoluntary_ctxt_switches: Anzahl der freiwilligen und der unfreiwilligen Kontextwechsel (seit Linux 2.6.23).

/proc/[PID]/syscall (seit Linux 2.6.27)
    Diese Datei legt die Systemaufrufnummer und -argumentenregister für den derzeit durch den Prozess ausgeführten Systemaufruf offen. Es folgen die Werte des Stack-Zeigers und der Programmzählerregister. Die Werte aller sechs Argumentenregister werden offengelegt, obwohl die meisten Systemaufrufe weniger Register verwenden. Falls der Prozess blockiert aber nicht in einem Systemaufruf ist, dann zeigt die Datei -1 an der Stelle der Systemaufrufnummer an, gefolgt von nur den Werten des Stack-Zeigers und des Programmzählers. Falls der Prozess nicht blockiert ist, dann enthält die Datei nur die Zeichenkette »running«. Diese Datei ist nur vorhanden, falls der Kernel mit CONFIG_HAVE_ARCH_TRACEHOOK konfiguriert wurde. Die Rechte, auf diese Datei zuzugreifen, werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_ATTACH_FSCREDS gesteuert; siehe ptrace(2).

/proc/[PID]/task (seit Linux 2.6.0-test6)
    Dieses Verzeichnis enthält ein Unterverzeichnis für jeden Thread in dem Prozess. Der Name jedes Unterverzeichnis ist die numerische Thread-ID ([TID]) des Threads (siehe gettid(2)). Innerhalb jedes dieser Unterverzeichnisse gibt es eine Reihe von Dateien mit gleichem Namen und Inhalt wie unter den /proc/[PID]-Verzeichnissen. Für Attribute, die von allen Threads gemeinsam verwendet werden, sind die Inhalte für jede der Dateien unter den /task/[TID]-Unterverzeichnissen die gleichen wie in der entsprechenden Datei im Elternverzeichnis /proc/[PID] (z.B. in einem Multithread-Prozess werden task/[TID]/cwd-Dateien den gleichen Wert wie die Datei task/pid/cwd im Elternverzeichnis haben, da alle Threads in einem Prozess sich ein Arbeitsverzeichnis teilen). Für Attribute, die für jeden Thread verschieden sind, können die entsprechenden Dateien unter task/[TID] unterschiedliche Werte annehmen (z.B. können verschiedene Felder in jeder der task/[TID]/status-Dateien für jeden Thread unterschiedlich sein) oder sie könnten in /proc/[PID] überhaupt nicht existieren. In Multithread-Prozessen sind die Inhalte des Verzeichnisses /proc/[PID]/task überhaupt nicht verfügbar, falls der Haupt-Thread bereits beendet wurde (typischerweise durch den Aufruf von pthread_exit(3)).

/proc/[PID]/task/[TID]/children (seit Linux 3.5)
    A space-separated list of child tasks of this task. Each child task is represented by its TID. This option is intended for use by the checkpoint-restore (CRIU) system, and reliably provides a list of children only if all of the child processes are stopped or frozen. It does not work properly if children of the target task exit while the file is being read! Exiting children may cause non-exiting children to be omitted from the list. This makes this interface even more unreliable than classic PID-based approaches if the inspected task and its children aren't frozen, and most code should probably not use this interface. Bis Linux 4.2 wurde die Existenz dieser Datei durch die Kernelkonfigurationsoption CONFIG_CHECKPOINT_RESTORE gesteuert. Seit Linux 4.2 wird sie durch die Option CONFIG_PROC_CHILDREN gesteuert.

/proc/[PID]/timers (seit Linux 3.10)
    A list of the POSIX timers for this process. Each timer is listed with a line that starts with the string "ID:". For example:
    ID: 1
    signal: 60/00007fff86e452a8
    notify: signal/pid.2634
    ClockID: 0
    ID: 0
    signal: 60/00007fff86e452a8
    notify: signal/pid.2634
    ClockID: 1
    The lines shown for each timer have the following meanings:

    ID  The ID for this timer. This is not the same as the timer ID returned by timer_create(2); rather, it is the same kernel-internal ID that is available via the si_timerid field of the siginfo_t structure (see sigaction(2)).

    signal
        This is the signal number that this timer uses to deliver notifications followed by a slash, and then the sigev_value value supplied to the signal handler. Valid only for timers that notify via a signal.

    notify
        The part before the slash specifies the mechanism that this timer uses to deliver notifications, and is one of "thread", "signal", or "none". Immediately following the slash is either the string "tid" for timers with SIGEV_THREAD_ID notification, or "pid" for timers that notify by other mechanisms. Following the "." is the PID of the process (or the kernel thread ID of the thread) that will be delivered a signal if the timer delivers notifications via a signal.

    ClockID
        This field identifies the clock that the timer uses for measuring time. For most clocks, this is a number that matches one of the user-space CLOCK_* constants exposed via <time.h>. CLOCK_PROCESS_CPUTIME_ID timers display with a value of -6 in this field. CLOCK_THREAD_CPUTIME_ID timers display with a value of -2 in this field.

    Diese Datei ist nur vorhanden, falls der Kernel mit CONFIG_CHECKPOINT_RESTORE konfiguriert wurde.

/proc/[PID]/timerslack_ns (seit Linux 4.6)
    This file exposes the process's "current" timer slack value, expressed in nanoseconds. The file is writable, allowing the process's timer slack value to be changed. Writing 0 to this file resets the "current" timer slack to the "default" timer slack value. For further details, see the discussion of PR_SET_TIMERSLACK in prctl(2). Die Rechte, auf diese Datei zuzugreifen, werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_ATTACH_FSCREDS gesteuert; siehe ptrace(2).

/proc/[PID]/uid_map, /proc/[PID]/gid_map (seit Linux 3.5)
    Siehe user_namespaces(7).

/proc/[PID]/wchan (seit Linux 2.6.0)
    Der symbolische Name, der dem Ort im Kernel entspricht, an dem der Prozess schläft. Die Zugriffsberechtigungen dieser Datei werden von einer Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS geregelt; siehe ptrace(2).

/proc/apm
    Version von »advanced power management« und Informationen zur Batterie, wenn bei der Kompilierung des Kernels CONFIG_APM definiert wird.

/proc/buddyinfo
    This file contains information which is used for diagnosing memory fragmentation issues. Each line starts with the identification of the node and the name of the zone which together identify a memory region This is then followed by the count of available chunks of a certain order in which these zones are split. The size in bytes of a certain order is given by the formula:
        (2^order) * PAGE_SIZE The binary buddy allocator algorithm inside the kernel will split one chunk into two chunks of a smaller order (thus with half the size) or combine two contiguous chunks into one larger chunk of a higher order (thus with double the size) to satisfy allocation requests and to counter memory fragmentation. The order matches the column number, when starting to count at zero. Auf einem x86_64-System zum Beispiel:
    Node 0, zone     DMA     1    1    1    0    2    1    1    0    1    1    3
    Node 0, zone   DMA32    65   47    4   81   52   28   13   10    5    1  404
    Node 0, zone  Normal   216   55  189  101   84   38   37   27    5    3  587
    In this example, there is one node containing three zones and there are 11 different chunk sizes. If the page size is 4 kilobytes, then the first zone called DMA (on x86 the first 16 megabyte of memory) has 1 chunk of 4 kilobytes (order 0) available and has 3 chunks of 4 megabytes (order 10) available. If the memory is heavily fragmented, the counters for higher order chunks will be zero and allocation of large contiguous areas will fail. Weitere Informationen über die Zonen können in /proc/zoneinfo gefunden werden.

/proc/bus
    Enthält Unterverzeichnisse für installierte Busse.

/proc/bus/pccard
    Unterverzeichnis für PCMCIA-Geräte, wenn bei der Kompilierung des Kernels CONFIG_PCMCIA gesetzt wird.

/proc/bus/pccard/drivers

/proc/bus/pci
    Enthält diverse Bus-Unterverzeichnisse und Pseudodateien mit Informationen zu PCI-Bussen, installierten Geräten und Gerätetreibern. Einige dieser Dateien sind nicht in ASCII codiert.

/proc/bus/pci/devices
    Informationen über PCI-Geräte. Auf diese kann mittels lspci(8) und setpci(8) zugegriffen werden.

/proc/cgroups (seit Linux 2.6.24)
    siehe cgroups(7)

/proc/cmdline
    Dem Kernel beim Startvorgang übergebene Argumente. Oft geschieht das über einen Bootmanager wie lilo(8) oder grub(8).

/proc/config.gz (seit Linux 2.6)
    Diese Datei macht die Konfigurationsoptionen verfügbar, die für den Bau des aktuell laufenden Kernels verwendet wurden. Das Format ist das gleiche wie in der Datei .config, die bei der Konfiguration des Kernels (mittels make xconfig, make config oder ähnlichem) erzeugt wird. Der Inhalt der Datei ist komprimiert; er kann mittels zcat(1) und zgrep(1) angezeigt und durchsucht werden. Solange keine Änderungen in der folgenden Datei vorgenommen wurden, sind die Inhalte von /proc/config.gz die gleichen, die wie folgt gewonnen werden können:
    cat /lib/modules/$(uname -r)/build/.config

    /proc/config.gz wird nur bereitgestellt, wenn der Kernel mit CONFIG_IKCONFIG_PROC konfiguriert wird.

/proc/crypto
    Eine Liste der durch das Kernel-Krypto-API bereitgestellten Chiffren. Für Details schauen Sie in die Kernel Dokumentation zum Thema Linux Kernel Crypto API, die unterhalb des Kernelquellbaumverzeichnisses Documentation/DocBook verfügbar ist. (Diese Dokumentation kann mit einem Befehl wie make htmldocs im Wurzelverzeichnis des Kernelquellbaums gebaut werden.)

/proc/cpuinfo
    Dies ist eine Sammlung von Informationen, die von der CPU und der Systemarchitektur abhängen. Die Liste sieht für jede unterstäützte Architektur anders aus. Die einzigen Einträge, die man überall antrifft, sind processor, welcher die Nummer der CPU anzeigt und BogoMIPS, eine Systemkonstante, die während der Kernel-Initialisierung errechnet wird. SMP-Maschinen haben Informationen für jede CPU. Der Befehl lscpu(1) sammelt seine Informationen aus dieser Datei.

/proc/devices
    Eine Textliste der Major-Gerätenummern und Gerätegruppen. Kann von MAKEDEV-Skripten genutzt werden, um mit dem Kernel überein zu stimmen.

/proc/diskstats (seit Linux 2.5.69)
    Diese Datei enthält Platten-E/A-Statistiken für jedes »disk device«. Die Linux-Kernel-Quelldatei Documentation/iostats.txt gibt weitere Informationen.

/proc/dma
    Das ist eine Liste von registrierten ISA-DMA-Kanälen, die zur Zeit benutzt werden (DMA: Direct Memory Access).

/proc/driver
    Leeres Unterverzeichnis.

/proc/execdomains
    List of the execution domains (ABI personalities).

/proc/fb
    Information zum Bildspeicher (frame buffer), wenn bei der Kompilierung des Kernels CONFIG_FB definiert wird.

/proc/filesystems
    Eine Auflistung der Dateisysteme, die vom Kernel unterstützt werden, nämlich Dateisysteme, die in den Kernel kompiliert wurden oder deren Kernel-Module derzeit geladen sind (siehe auch filesystems(5)). Wenn ein Dateisystem mit »nodev« gekennzeichnet ist, bedeutet dies, dass kein Block-Gerät eingehängt werden muss (z.B. virtuelles Dateisystem, Netzwerk-Dateisystem). Im Übrigen kann diese Datei von mount(8) verwendet werden, wenn kein Dateisystem angegeben wurde und es den Typ des Dateisystems nicht bestimmen konnte. Dann werden in dieser Datei enthaltene Dateisysteme ausprobiert (ausgenommen diejenigen, die mit »nodev« gekennzeichnet sind).

/proc/fs
    Enthält Unterverzeichnisse, die wiederum Dateien mit Informationen über (bestimmte) eingehängte Dateisysteme enthalten.

/proc/ide
    Dieses Verzeichnis gibt es auf Systemen mit dem IDE-Bus. Es gibt Verzeichnisse für jeden IDE-Kanal und jedes zugeordnete Gerät. Zu den Dateien gehören:
    cache              Puffergröße in KB
    capacity           Anzahl der Sektoren
    driver             Version des Treibers
    geometry           physikalische und logische Geometrie
    identify           hexadezimal
    media              Medientyp
    model              Modellnummer des Herstellers
    settings           Geräteeinstellungen
    smart_thresholds   hexadezimal
    smart_values       hexadezimal
    Das Werkzeug hdparm(8) ermöglicht einen angenehmen Zugriff auf diese Informationen.

/proc/interrupts
    Diese Datei wurde verwendet, um die Anzahl der Interrupts pro CPU pro E/A-Gerät aufzunehmen. Seit Linux 2.6.24 werden außerdem, zumindest für die Architekturen i386 und x86_64, systeminterne Interrupts (das sind nicht unmittelbar an ein Gerät gebundene) wie beispielsweise NMI (nicht maskierbarer Interrupt), LOC (lokaler Timer-Interrupt), und für SMP-Systeme TLB (TLB Flush Interrupt), RES (Interrupt für Änderungen im Scheduling), CAL (Remote Function Call Interrupt) und möglicherweise andere mit eingetragen. Sie ist in ASCII codiert und sehr leicht zu lesen.

/proc/iomem
    E/A-Speicherbelegung in Linux 2.4

/proc/ioports
    Das ist eine Liste der derzeit registrierten und benutzten Ein-/Ausgabe-Port-Regionen.

/proc/kallsyms (seit Linux 2.5.71)
    Hier stehen die vom Kernel exportierten Symboldefinitionen, die von modules(X)-Tools benutzt werden, um ladbare Module dynamisch zu linken und binden. Bis einschließlich Linux 2.5.47 gab es eine ähnliche Datei ksyms mit leicht abweichender Syntax.

/proc/kcore
    Diese Datei repräsentiert den physikalischen Speicher des Systems und hat das Elf-core-Dateiformat. Mit dieser Pseudodatei und einem Kernel mit Debugsymbolen (/usr/src/linux/vmlinux) kann mit GDB der aktuelle Zustand der Kernel-Datenstrukturen untersucht werden. Die Gesamtgröße dieser Datei ist die Größe des physischen Speichers (RAM) plus 4KB.

/proc/keys (since Linux 2.6.10)
    See keyrings(7).

/proc/key-users (since Linux 2.6.10)
    See keyrings(7).

/proc/kmsg
    Diese Datei kann anstelle des Systemaufrufs syslog(2) benutzt werden, um Meldungen des Kernels zu lesen. Ein Prozess muss Superuser-Privilegien haben, um diese Datei zu lesen und nur ein einziger Prozess sollte dies tun. Die Datei sollte nicht ausgelesen werden, wenn ein Syslog-Prozess läuft, der den Systemaufruf syslog(2) zur Protokollierung benutzt. Die Informationen in dieser Datei können mit dmesg(1) dargestellt werden.

/proc/kpagecount (seit Linux 2.6.25)
    This file contains a 64-bit count of the number of times each physical page frame is mapped, indexed by page frame number (see the discussion of /proc/[pid]/pagemap).

    Die Datei /proc/kpagecount ist nur vorhanden, wenn die Kernel-Konfigurationsoption CONFIG_PROC_PAGE_MONITOR aktiviert ist.

/proc/kpageflags (seit Linux 2.6.25)
    This file contains 64-bit masks corresponding to each physical page frame; it is indexed by page frame number (see the discussion of /proc/[pid]/pagemap). The bits are as follows:
         0 - KPF_LOCKED
         1 - KPF_ERROR
         2 - KPF_REFERENCED
         3 - KPF_UPTODATE
         4 - KPF_DIRTY
         5 - KPF_LRU
         6 - KPF_ACTIVE
         7 - KPF_SLAB
         8 - KPF_WRITEBACK
         9 - KPF_RECLAIM
        10 - KPF_BUDDY
        11 - KPF_MMAP (seit Linux 2.6.31)
        12 - KPF_ANON (seit Linux 2.6.31)
        13 - KPF_SWAPCACHE (seit Linux 2.6.31)
        14 - KPF_SWAPBACKED (seit Linux 2.6.31)
        15 - KPF_COMPOUND_HEAD (seit Linux 2.6.31)
        16 - KPF_COMPOUND_TAIL (seit Linux 2.6.31)
        16 - KPF_HUGE (seit Linux 2.6.31)
        18 - KPF_UNEVICTABLE (seit Linux 2.6.31)
        19 - KPF_HWPOISON (seit Linux 2.6.31)
        20 - KPF_NOPAGE (seit Linux 2.6.31)
        21 - KPF_KSM (seit Linux 2.6.32)
        22 - KPF_THP (seit Linux 3.4) Für weitere Details zur Bedeutung dieser Bits lesen Sie die Kernelquelldatei Documentation/vm/pagemap.txt. Vor Kernel 2.6.29 lieferten KPF_WRITEBACK, KPF_RECLAIM, KPF_BUDDY und KPF_LOCKED nicht die korrekten Werte.

    Die Datei /proc/kpageflags ist nur vorhanden, wenn die Kernel-Konfigurationsoption CONFIG_PROC_PAGE_MONITOR aktiviert ist.

/proc/ksyms (Linux 1.1.23-2.5.47)
    Siehe /proc/kallsyms.

/proc/loadavg
    Die ersten drei Felder in dieser Datei geben die durchschnittliche Anzahl von Jobs an, die in der Run-Warteschlange sind (Status R) oder auf Platten-E/A warten (Status D), gemittelt über 1, 5, und 15 Minuten. Das sind die gleichen Angaben für die durchschnittliche Belastung, wie sei von uptime(1) und anderen Programmen angegeben werden. Das vierte Feld besteht aus zwei durch einen Schrägstrich (/) getrennten Zahlen. Die erste davon ist die Anzahl von derzeit ausführbaren Kernel-Scheduling-Einheiten (Prozesse, Threads). Der Wert nach dem Schrägstrich ist die Anzahl der Kernel-Scheduling-Einheiten, die aktuell auf dem System existieren. Das fünfte Feld ist die PID des Prozesses, der zuletzt auf dem System erzeugt wurde.

/proc/locks
    Diese Datei zeigt aktuell gesperrte (flock(2) und fcntl(2)) sowie freigegebene Dateien an (fcntl(2)). Der Befehl lslocks(8) stellt etwas mehr Informationen über jede Sperre bereit.

/proc/malloc (nur bis zu einschließlich Linux 2.2)
    Diese Datei existiert nur, wenn bei der Kompilierung des Kernels CONFIG_DEBUG_MALLOC definiert war.

/proc/meminfo
    This file reports statistics about memory usage on the system. It is used by free(1) to report the amount of free and used memory (both physical and swap) on the system as well as the shared memory and buffers used by the kernel. Each line of the file consists of a parameter name, followed by a colon, the value of the parameter, and an option unit of measurement (e.g., "kB"). The list below describes the parameter names and the format specifier required to read the field value. Except as noted below, all of the fields have been present since at least Linux 2.6.0. Some fields are displayed only if the kernel was configured with various options; those dependencies are noted in the list.

    MemTotal %lu
        Gesamter verwendbarer Arbeitsspeicher (d.h. physischer Arbeitsspeicher abzüglich ein paar reservierter Bits und dem Binärcode des Kernels).

    MemFree %lu
        Die Summe von LowFree+HighFree.

    MemAvailable %lu (seit Linux 3.14)
        An estimate of how much memory is available for starting new applications, without swapping.

    Buffers %lu
        Relativ temporärer Speicher für rohe Diskblöcke, der nicht besonders groß werden sollte (20 MB oder so).

    Cached %lu
        In-memory cache for files read from the disk (the page cache). Doesn't include SwapCached.

    SwapCached %lu
        Memory that once was swapped out, is swapped back in but still also is in the swap file. (If memory pressure is high, these pages don't need to be swapped out again because they are already in the swap file. This saves I/O.)

    Active %lu
        Memory that has been used more recently and usually not reclaimed unless absolutely necessary.

    Inactive %lu
        Memory which has been less recently used. It is more eligible to be reclaimed for other purposes.

    Active(anon) %lu (seit Linux 2.6.28)
        [Muss noch dokumentiert werden.]

    Inactive(anon) %lu (seit Linux 2.6.28)
        [Muss noch dokumentiert werden.]

    Active(file) %lu (seit Linux 2.6.28)
        [Muss noch dokumentiert werden.]

    Inactive(file) %lu (seit Linux 2.6.28)
        [Muss noch dokumentiert werden.]

    Unevictable %lu (seit Linux 2.6.28)
        (Von Linux 2.6.28 bis 2.6.30: CONFIG_UNEVICTABLE_LRU war notwendig.) [Muss noch dokumentiert werden.]

    Mlocked %lu (seit Linux 2.6.28)
        (Von Linux 2.6.28 bis 2.6.30: CONFIG_UNEVICTABLE_LRU war notwendig.) [Muss noch dokumentiert werden.]

    HighTotal %lu
        (Starting with Linux 2.6.19, CONFIG_HIGHMEM is required.) Total amount of highmem. Highmem is all memory above ~860MB of physical memory. Highmem areas are for use by user-space programs, or for the page cache. The kernel must use tricks to access this memory, making it slower to access than lowmem.

    HighFree %lu
        (Starting with Linux 2.6.19, CONFIG_HIGHMEM is required.) Amount of free highmem.

    LowTotal %lu
        (Starting with Linux 2.6.19, CONFIG_HIGHMEM is required.) Total amount of lowmem. Lowmem is memory which can be used for everything that highmem can be used for, but it is also available for the kernel's use for its own data structures. Among many other things, it is where everything from Slab is allocated. Bad things happen when you're out of lowmem.

    LowFree %lu
        (Starting with Linux 2.6.19, CONFIG_HIGHMEM is required.) Amount of free lowmem.

    MmapCopy %lu (seit Linux 2.6.29)
        (CONFIG_MMU ist notwendig.) [Muss noch dokumentiert werden.]

    SwapTotal %lu
        Total amount of swap space available.

    SwapFree %lu
        Amount of swap space that is currently unused.

    Dirty %lu
        Speicher, der darauf wartet, zurück auf Platte geschrieben zu werden.

    Writeback %lu
        Speicher, der aktiv zurück auf Platte geschrieben wird.

    AnonPages %lu (seit Linux 2.6.18)
        Non-file backed pages mapped into user-space page tables.

    Mapped %lu
        Files which have been mapped into memory (with mmap(2)), such as libraries.

    Shmem %lu (seit Linux 2.6.32)
        Speichermenge, die vom tmpfs(5) belegt wird.

    Slab %lu
        In-kernel data structures cache. (See slabinfo(5).)

    SReclaimable %lu (seit Linux 2.6.19)
        Teil von Slab, der zurückgewonnen werden könnte, wie Zwischenspeicher.

    SUnreclaim %lu (seit Linux 2.6.19)
        Teil von Slab, der bei Speicherknappheit nicht zurückgewonnen werden kann.

    KernelStack %lu (seit Linux 2.6.32)
        Teil des Speichers, der Kernel-Stacks zugewiesen wurde.

    PageTables %lu (seit Linux 2.6.18)
        Amount of memory dedicated to the lowest level of page tables.

    Quicklists %lu (seit Linux 2.6.27)
        (CONFIG_QUICKLIST ist notwendig.) [Muss noch dokumentiert werden.]

    NFS_Unstable %lu (seit Linux 2.6.18)
        NFS-Seiten, die an den Server gesandt, aber noch nicht dem dauerhaften Speicher übergeben wurden.

    Bounce %lu (seit Linux 2.6.18)
        Memory used for block device "bounce buffers".

    WritebackTmp %lu (seit Linux 2.6.26)
        Speicher, das von FUSE für temporäre Rückschreibe-Puffer verwandt wird.

    CommitLimit %lu (seit Linux 2.6.10)
        This is the total amount of memory currently available to be allocated on the system, expressed in kilobytes. This limit is adhered to only if strict overcommit accounting is enabled (mode 2 in /proc/sys/vm/overcommit_memory). The limit is calculated according to the formula described under /proc/sys/vm/overcommit_memory. For further details, see the kernel source file Documentation/vm/overcommit-accounting.

    Committed_AS %lu
        The amount of memory presently allocated on the system. The committed memory is a sum of all of the memory which has been allocated by processes, even if it has not been "used" by them as of yet. A process which allocates 1GB of memory (using malloc(3) or similar), but touches only 300MB of that memory will show up as using only 300MB of memory even if it has the address space allocated for the entire 1GB. This 1GB is memory which has been "committed" to by the VM and can be used at any time by the allocating application. With strict overcommit enabled on the system (mode 2 in /proc/sys/vm/overcommit_memory), allocations which would exceed the CommitLimit will not be permitted. This is useful if one needs to guarantee that processes will not fail due to lack of memory once that memory has been successfully allocated.

    VmallocTotal %lu
        Gesamtgröße des Vmalloc-Speicherbereichs.

    VmallocUsed %lu
        Größe des benutzten Vmalloc-Bereichs.

    VmallocChunk %lu
        Größter freier zusammenhängender Block im Vmalloc-Bereich.

    HardwareCorrupted %lu (seit Linux 2.6.32)
        (CONFIG_MEMORY_FAILURE ist notwendig.) [Muss noch dokumentiert werden.]

    AnonHugePages %lu (seit Linux 2.6.38)
        (CONFIG_TRANSPARENT_HUGEPAGE is required.) Non-file backed huge pages mapped into user-space page tables.

    ShmemHugePages %lu (seit Linux 4.8)
        (CONFIG_TRANSPARENT_HUGEPAGE is required.) Memory used by shared memory (shmem) and tmpfs(5) allocated with huge pages

    ShmemPmdMapped %lu (seit Linux 4.8)
        (CONFIG_TRANSPARENT_HUGEPAGE is required.) Shared memory mapped into user space with huge pages.

    CmaTotal %lu (seit Linux 3.1)
        Total CMA (Contiguous Memory Allocator) pages. (CONFIG_CMA is required.)

    CmaFree %lu (seit Linux 3.1)
        Free CMA (Contiguous Memory Allocator) pages. (CONFIG_CMA is required.)

    HugePages_Total %lu
        (CONFIG_HUGETLB_PAGE is required.) The size of the pool of huge pages.

    HugePages_Free %lu
        (CONFIG_HUGETLB_PAGE is required.) The number of huge pages in the pool that are not yet allocated.

    HugePages_Rsvd %lu (seit Linux 2.6.17)
        (CONFIG_HUGETLB_PAGE is required.) This is the number of huge pages for which a commitment to allocate from the pool has been made, but no allocation has yet been made. These reserved huge pages guarantee that an application will be able to allocate a huge page from the pool of huge pages at fault time.

    HugePages_Surp %lu (seit Linux 2.6.24)
        (CONFIG_HUGETLB_PAGE is required.) This is the number of huge pages in the pool above the value in /proc/sys/vm/nr_hugepages. The maximum number of surplus huge pages is controlled by /proc/sys/vm/nr_overcommit_hugepages.

    Hugepagesize %lu
        (CONFIG_HUGETLB_PAGE is required.) The size of huge pages.

    DirectMap4k %lu (seit Linux 2.6.27)
        Number of bytes of RAM linearly mapped by kernel in 4kB pages. (x86.)

    DirectMap4M %lu (seit Linux 2.6.27)
        Number of bytes of RAM linearly mapped by kernel in 4MB pages. (x86 with CONFIG_X86_64 or CONFIG_X86_PAE enabled.)

    DirectMap2M %lu (seit Linux 2.6.27)
        Number of bytes of RAM linearly mapped by kernel in 2MB pages. (x86 with neither CONFIG_X86_64 nor CONFIG_X86_PAE enabled.)

    DirectMap1G %lu (seit Linux 2.6.27)
        (x86 mit CONFIG_X86_64 und CONFIG_X86_DIRECT_GBPAGES aktiviert.)

/proc/modules
    Eine Textliste der vom System geladenen Module (siehe auch lsmod(8)) .

/proc/mounts
    Vor Kernel 2.4.19 war diese Datei eine Liste aller akuell im System eingehängten Dateisysteme. Mit der Einführung der prozesseigenen Einhängenamensräume in Linux 2.4.19 (siehe mount_namespaces(7)) wurde diese Datei ein Link auf /proc/self/mounts, die die Einhängepunkte des prozesseigenen Einhängenamensraums auflistet. Das Format dieser Datei wird in fstab(5) dokumentiert.

/proc/mtrr
    Die Memory Type Range Register, Details siehe die Linux-Kernel-Quelldatei Documentation/mtrr.txt.

/proc/net
    Dieses Verzeichnis enthält verschiedene Dateien und Unterverzeichnisse, die Informationen über die Netzwerkschicht enthalten. Diese Dateien enthalten ASCII-Strukturen und sind daher mit »cat« lesbar. Allerdings stellt der Standardbefehl netstat(8) einen sehr viel saubereren Zugang zu diesen Dateien dar. Mit dem Aufkommen von Netznamensräumen sind verschiedene Informationen über den Netzwerkstapel virtualisiert (siehe namespaces(7)). Daher ist seit Linux 2.6.25 /proc/net ein symbolischer Link auf das Verzeichnis /proc/self/net, das die gleichen unten aufgeführten Dateien und Verzeichnisse enthält. Allerdings stellen diese Dateien und Verzeichnisse nun die Informationen für den Netznamensraum dar, bei dem der Prozess Mitglied ist.

/proc/net/arp
    Enthält einen in ASCII lesbaren Abzug der ARP-Tabelle des Kernels, die zur Adressauflösung dient. Angezeigt werden sowohl dynamisch gelernte wie auch vorprogrammierte ARP-Einträge in folgendem Format:
    IP address     HW type   Flags     HW address          Mask   Device
    192.168.0.50   0x1       0x2       00:50:BF:25:68:F3   *      eth0
    192.168.0.250  0x1       0xc       00:00:00:00:00:00   *      eth0
    Dabei ist »IP address« die IPv4-Adresse der Maschine, »HW type« ist der Hardware-Typ nach RFC 826. Die Schalter sind die internen Schalter der ARP-Struktur (siehe /usr/include/linux/if_arp.h) und »HW address« zeigt die physische Schicht für diese IP-Adresse, wenn bekannt.

/proc/net/dev
    Die Pseudodatei dev enthält Statusinformationen über die Netzwerkkarte. Darin stehen die Anzahl der empfangenen und gesendeten Pakete, die Anzahl der Übertragungsfehler und Kollisionen und weitere grundlegende Statistik. Das Programm ifconfig(8) benutzt diese Werte für die Anzeige des Gerätestatus. Das Format ist:
    Inter-|   Receive                                                |  Transmit
     face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
        lo: 2776770   11307    0    0    0     0          0         0  2776770   11307    0    0    0     0       0          0
      eth0: 1215645    2751    0    0    0     0          0         0  1782404    4324    0    0    0   427       0          0
      ppp0: 1622270    5552    1    0    0     0          0         0   354130    5669    0    0    0     0       0          0
      tap0:    7714      81    0    0    0     0          0         0     7714      81    0    0    0     0       0          0

/proc/net/dev_mcast
    Definiert in /usr/src/linux/net/core/dev_mcast.c:
    indx interface_name  dmi_u dmi_g dmi_address
    2    eth0            1     0     01005e000001
    3    eth1            1     0     01005e000001
    4    eth2            1     0     01005e000001

/proc/net/igmp
    Internet Group Management Protocol. Definiert in /usr/src/linux/net/core/igmp.c.

/proc/net/rarp
    Diese Datei benutzt das gleiche Format wie die arp-Datei und enthält die aktuelle Datenbank für die »umgekehrte Adressauflösung« (reverse mapping), mit der rarp(8) arbeitet. Wenn RARP nicht in den Kernel hineinkonfiguriert ist, dann ist diese Datei nicht vorhanden.

/proc/net/raw
    Enthält einen Abzug der RAW-Socket-Tabelle. Der Großteil der Informationen dient nur zur Fehlersuche. Der »sl«-Wert ist der »kernel hash slot« für diesen Socket, »local address« enthält das Wertepaar für lokale Adresse und Protokoll. "St" ist der interne Status des Sockets. »tx_queue« und »rx_queue« sind Warteschlangen für ausgehende bzw. eintreffende Daten, angegeben als Kernel-Speichernutzung, »tr«, »tm->when« und »rexmits« werden von RAW nicht benutzt. Das »uid«-Feld enthält die effektive UID des Socket-Erstellers.

/proc/net/snmp
    Diese Datei enthält die ASCII-Daten, die für die Verwaltung von IP, ICMP, TCP und UDP durch einen SNMP-Agenten benötigt werden.

/proc/net/tcp
    Enthält einen Abzug der TCP-Socket-Tabelle. Der Großteil der Informationen dient nur zur Fehlersuche. Der »sl«-Wert ist der »kernel hash slot« für diesen Socket, »local address« ist ein Wertepaar aus lokaler Adresse und Port. Die »remote address« ist (bei einer bestehenden Verbindung) ein Wertepaar aus Adresse der Gegenstation und deren Port. "St" ist der interne Status des Sockets. »tx_queue« und »rx_queue« werden verwendet wie bei RAW (s.w.o.). Die Felder »tr«, »tm->when« und »rexmits« enthalten interne Kernel-Informationen zum Zustand des Sockets und nutzen nur zur Fehlersuche. Das »uid«-Feld enthält die effektive UID des Socket-Erstellers.

/proc/net/udp
    Enthält einen Abzug der UPD-Socket-Tabelle. Der Großteil der Informationen dient nur zur Fehlersuche. Der »sl«-Wert ist der »kernel hash slot« für diesen Socket, »local address« ist ein Wertepaar aus lokaler Adresse und Port. Die »remote address« ist (bei einer bestehenden Verbindung) ein Wertepaar aus Adresse der Gegenstation und deren Port. "St" ist der interne Status des Sockets. »tx_queue« und »rx_queue« werden verwendet wie bei RAW (s.w.o.). Die Felder »tr«, »tm->when« und »rexmits« werden von UDP nicht genutzt. Das »uid«-Feld enthält die effektive UID des Socket-Erstellers. Das Format ist:
    sl  local_address rem_address   st tx_queue rx_queue tr rexmits  tm->when uid
     1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
     1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
     1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0

/proc/net/unix
    Liste der UNIX Domain Sockets im System und ihr Status. Format:

    Num RefCount Protocol Flags    Type St Path
     0: 00000002 00000000 00000000 0001 03
     1: 00000001 00000000 00010000 0001 01 /dev/printer

    Die Bedeutung der Felder im Einzelnen:

    Num:
        the kernel table slot number.

    RefCount:
        Die Anzahl der Benutzer des Sockets.

    Protokoll:
        Derzeit immer 0.

    Flags:
        Die internen Kernel-Schalter, die den Status des Sockets halten.

    Type:
        Der Socket-Typ. Für SOCK_STREAM-Sockets ist dies 0001, für SOCK_DGRAM-Sockets ist dies 0002 und für SOCK_SEQPACKET-Sockets ist dies 0005.

    St: Der interne Zustand des Sockets.

    Path:
        the bound path (if any) of the socket. Sockets in the abstract namespace are included in the list, and are shown with a Path that commences with the character '@'.

/proc/net/netfilter/nfnetlink_queue
    Diese Datei enthält Informationen über den Umgang mit der Netfilter-Benutzerraum-Warteschlange, falls diese benutzt wird. Jede Zeile stellt eine Warteschlange dar. Warteschlangen, die vom Benutzerraum aus nicht abonniert wurden, werden nicht angezeigt.
       1   4207     0  2 65535     0     0        0  1
      (1)   (2)    (3)(4)  (5)    (6)   (7)      (8)

    Die Felder in jeder Zeile sind:

    (1) Die Kennung der Warteschlange. Dies passt auf die Angabe in --queue-num oder der Option --queue-balance im NFQUEUE-Ziel von iptables(8). Siehe iptables-extensions(8) für weitere Informationen.

    (2) Die Netlink-Port-Kennung, die von der Warteschlange abonniert wurde.

    (3) Die Anzahl der derzeit eingereihten und auf Verarbeitung durch die Anwendung wartenden Pakete.

    (4) Der Kopiermodus der Warteschlange. Er ist entweder 1 (nur Metadaten) oder 2 (auch Nutzdaten in Benutzerraum kopieren).

    (5) Kopierbereich. Dies gibt an, wie viele Bytes der Paketnutzdaten maximal in den Benutzerraum kopiert werden sollen.

    (6) queue dropped. Number of packets that had to be dropped by the kernel because too many packets are already waiting for user space to send back the mandatory accept/drop verdicts.

    (7) queue user dropped. Number of packets that were dropped within the netlink subsystem. Such drops usually happen when the corresponding socket buffer is full; that is, user space is not able to read messages fast enough.

    (8) Sequenznummer. Jedes Paket ist einer (32-bit), monoton-ansteigenden Sequenznummer zugeordnet. Dies zeigt die Kennung des neusten eingereihten Pakets.

    Die letzte Zahl existiert nur aus Kompatibilitätsgründen und ist immer 1.

/proc/partitions
    Enthält neben den Major- und Minor-Gerätenummern jeder Partition auch die Anzahl der 1024-Byte-Blöcke und dem Partitionsnamen.

/proc/pci
    Das ist eine Liste aller PCI-Geräte, die während der Initialisierung des Kernels gefunden und konfiguriert wurden. Diese Datei wurde zugunsten einer neuen /proc-Schnittstelle für PCI (/proc/bus/pci) verworfen. Sie wurde in Linux 2.2 optional (verfügbar durch Setzen von CONFIG_PCI_OLD_PROC bei der Kernel-Kompilierung). Sie wurde noch einmal non-optional in Linux 2.4 aktiviert. Als nächstes wurde sie in Linux 2.6 missbilligt (mit gesetztem CON-FIG_PCI_LEGACY_PROC noch verfügbar) und schließlich seit Linux 2.6.17 entfernt.

/proc/profile (seit Linux 2.4)
    Diese Datei ist nur verfügbar, falls der Kernel mit der Befehlszeilenoption profile=1 gestartet wurde. Er legt die Profiling-Informationen des Kernels in einem binären Format für die Verwendung mit readprofile(1) offen. Wird (z.B. eine leere Zeichenkette) in diese Datei geschrieben, werden die Profiling-Zähler zurückgesetzt; auf einigen Architekturen setzt das Schreiben einer binäre Ganzzahl (»Profiling-Vervielfacher«) der Größe sizeof(int) die Profiling-Interrupt-Frequenz.

/proc/scsi
    Ein Verzeichnis mit der scsi-»mid-level«-Pseudodatei und diversen Verzeichnissen für systemnahe SCSI-Treiber, die eine Datei pro SCSI-Host im System enthalten. Alle diese spiegeln den Status eines Teils des SCSI-Subsystems wider. Die Dateien enthalten ASCII-Strukturen, können also mit cat(1) gelesen werden. In einige Dateien kann auch geschrieben werden, um das Teilsystem neu zu konfigurieren oder um bestimmte Eigenschaften ein- oder aus-zuschalten.

/proc/scsi/scsi
    Dies ist eine Liste aller SCSI-Geräte, die dem Kernel bekannt sind. Sie ähnelt der, die man beim Hochfahren des Rechners sieht. scsi unterstützt derzeit nur den Befehl singledevice, der root ermöglicht, im laufenden Betrieb der Liste ein zusätzliches Gerät hinzuzufügen. Der Befehl
    echo 'scsi add-single-device 1 0 5 0' > /proc/scsi/scsi
    veranlasst Host scsi1 nachzusehen, ob auf SCSI-Kanal 0 ein Gerät mit ID 5 LUN 0 existiert. Wenn an dieser Adresse schon ein Gerät ist, oder die Adresse ungültig ist, wird ein Fehler zurückgeliefert.

/proc/scsi/[Treibername]
    Treibername kann derzeit sein: NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx, buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug, seagate, t128, u15-24f, ultrastore oder wd7000. Diese Verzeichnisse werden für jeden Treiber angezeigt, der zumindest ein SCSI-HBA registriert hat. Jedes Verzeichnis enthält eine Datei pro registriertem Host, die als Namen die Nummer haben, die dem Host bei der Initialisierung zugewiesen wurde. Das Lesen der Dateien zeigt normalerweise Treiber- und Host-Konfiguration, Statistik usw. Schreiben in diese Dateien hat Host-abhängige Auswirkungen. Mit den Befehlen latency und nolatency kann root den Code zur Latenzmessung im eata_dma-Treiber ein-/ausschalten. Mit lockup und unlock können Bus-Sperren (bus lockups) kontrolliert werden, wie sie vom scsi_debug-Treiber simuliert werden.

/proc/self
    Dieses Verzeichnis bezieht sich auf den Prozess, der auf das /proc-Dateisystem zugreift und ist mit dem /proc-Verzeichnis identisch, das als Namen die Prozessnummer dieses Prozesses hat.

/proc/slabinfo
    Information about kernel caches. See slabinfo(5) for details.

/proc/stat
    Von der Architektur abhängige Kernel- und Systemstatistiken. Gebräuchliche Einträge sind:

    cpu 3357 0 4313 1362393
        Die Zeitdauer (gemessen in USER_HZ, auf den meisten Architekturen Hundertstelsekunden, ermitteln Sie den richtigen Wert mit sysconf(_SC_CLK_TCK)), die das System in verschiedenen Stati verbracht hat:

        user
            (1) Zeit, die im Benutzerraummodus verbracht wurde.

        nice
            (2) Zeit, die im Benutzerraum mit niedriger Priorität (nice) verbracht wurde.

        system
            (3) Zeit, die im Systemmodus verbracht wurde.

        idle
            (4) Time spent in the idle task. This value should be USER_HZ times the second entry in the /proc/uptime pseudo-file.

        iowait (seit Linux 2.5.41)
            (5) Zeit, die mit Warten auf das Abschließen von E/A verbracht wurde.

        irq (seit Linux 2.6.0-test4)
            (6) Time servicing interrupts.

        softirq (seit Linux 2.6.0-test4)
            (7) Time servicing softirqs.

        steal (seit Linux 2.6.11)
            (8) Gestohlene Zeit, die in anderen Betriebssystemen verbracht wurde, wenn der Prozess in einer virtualisierten Umgebung läuft.

        guest (seit Linux 2.6.24)
            (9) Zeit, die für den Betrieb einer virtuellen CPU für Gastbetriebssysteme unter der Steuerung des Linux-Kernels verbracht wurde.

        guest_nice (seit Linux 2.6.33)
            (10) Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel).

    page 5741 1808
        Die Anzahl Speicherseiten, die das System von der Platte geladen hat sowie die Anzahl der dorthin ausgelagerten Speicherseiten.

    swap 1 0
        Die Anzahl an Auslagerungs-Seiten, die hereingeholt und herausgebracht wurden.

    intr 1462898
        Diese Zeile zeigt Zählungen der seit dem Systemstart bearbeiteten Interrupts für jeden der möglichen System-Interrupts. Die erste Spalte ist die Summe aller bearbeiteten Interrupts (einschließlich architekturspezifischer Interrupts ohne Nummer); jede weitere Spalte ist die Summe für diesen bestimmten Interrupt mit Nummer. Interrupts ohne Nummer werden nicht angezeigt, nur in der Gesamtsumme berücksichtigt.

    disk_io: (2,0):(31,30,5764,1,2) (3,0):…
        (major,disk_idx):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written)
        (nur Linux 2.4)

    ctxt 115315
        Anzahl Kontextwechsel, die das System durchlaufen hat.

    btime 769041601
        Zeitpunkt des Systemstart, in Sekunden seit dem 1. Januar 1970 0 Uhr UTC (Epoch).

    processes 86031
        Anzahl der seit dem Systemstart erzeugten Prozesse.

    procs_running 6
        Anzahl der lauffähigen Prozesse (von Linux 2.5.45 aufwärts).

    procs_blocked 2
        Anzahl von Prozessen, die durch das Warten auf den Abschluss von E/A blockiert sind (2.5.45 aufwärts).

/proc/swaps
    Genutzte Swap-Bereiche; siehe auch swapon(8).

/proc/sys
    Dieses Verzeichnis (vorhanden seit 1.3.57) enthält einige Dateien und Unterverzeichnisse, die Kernel-Variablen entsprechen. Diese Variablen können gelesen und manchmal auch mittels des /proc-Dateisystems oder des (missbilligten) Systemaufrufs sysctl(2) geändert werden. Zeichenkettenwerte dürfen entweder von »\0« oder »\n« eingeschlossen werden. Integer and long values may be written either in decimal or in hexadecimal notation (e.g. 0x3FFF). When writing multiple integer or long values, these may be separated by any of the following whitespace characters: ' ', '\t', or '\n'. Using other separators leads to the error EINVAL.

/proc/sys/abi (seit Linux 2.4.10)
    Dieses Verzeichnis enthält möglicherweise binäre Anwendungsinformationen; siehe die Linux-Kernel-Quelldatei Documentation/sysctl/abi.txt für weitere Informationen.

/proc/sys/debug
    Dieses Verzeichnis kann leer sein.

/proc/sys/dev
    Dieses Verzeichnis enthält gerätespezifische Informationen (z.B. /dev/cdrom/info). Auf einigen Systemen kann es leer sein.

/proc/sys/fs
    Dieses Verzeichnis enthält die Dateien und Unterverzeichnisse für Kernel-Variablen in Zusammenhang mit Dateisystemen.

/proc/sys/fs/binfmt_misc
    Dokumentation für Dateien in diesem Verzeichnis kann in den Linux-Kernelquellen in Documentation/binfmt_misc.txt gefunden werden.

/proc/sys/fs/dentry-state (seit Linux 2.2)
    Diese Datei enthält Informationen über den Zustand des Verzeichnis-Zwischenspeichers (directory cache,dcache). Die Datei enthält sechs Zahlen: nr_dentry, nr_unused, age_limit (Alter in Sekunden), want_pages (vom System angeforderte Seiten) und zwei Dummy-Werte.

    *   nr_dentry ist die Anzahl der zugewiesenen Dentries (dcache entries). Dieses Feld wird in Linux 2.2 nicht genutzt.

    *   nr_unused ist die Anzahl ungenutzter Dentries.

    *   age_limit ist das Alter in Sekunden, nach dem Dcache-Einträge bei Speicherknappheit zurückgefordert werden können.

    *   want_pages ist ungleich null der Kernel shrink_dcache_pages() aufgerufen hat und der Dcache noch nicht bereinigt ist.

/proc/sys/fs/dir-notify-enable
    Diese Datei kann genutzt werden, um die in fcntl(2) beschriebene dnotify-Schnittstelle auf systemweiter Basis zu aktivieren oder zu deaktivieren. Ein Wert von 0 in dieser Datei deaktiviert die Schnittstelle, ein Wert von 1 aktiviert sie.

/proc/sys/fs/dquot-max
    Diese Datei zeigt die maximale Anzahl von zwischengespeicherten Quota-Einträgen für die Festplatte. Auf einigen (2.4)-Systemen ist sie nicht vorhanden. Wenn die Anzahl der freien Festplatten-Quota-Einträge im Cache sehr klein ist und Sie haben eine außergewöhnliche Anzahl gleichzeitiger Systembenutzer, möchten Sie vielleicht diesen Grenzwert erhöhen.

/proc/sys/fs/dquot-nr
    Diese Datei zeigt die Anzahl zugewiesener und die Anzahl freier Disk-Quota-Einträge.

/proc/sys/fs/epoll (seit Linux 2.6.28)
    Dieses Verzeichnis enthält die Datei max_user_watches, mit der der insgesamt von der epoll-Schnittstelle beanspruchte Kernel-Speicher begrenzt werden kann. Weitere Einzelheiten finden Sie in epoll(7).

/proc/sys/fs/file-max
    Diese Datei legt eine systemweite Grenze für Anzahl offener Dateien für alle Prozesse fest. Systemaufrufe, die beim Erreichen dieser Grenze fehlschlagen, schlagen mit dem Fehler ENFILE fehl. (Siehe auch setrlimit(2), mit der ein Prozess seine prozess-spezifische Begrenzung, RLIMIT_NOFILE, für die Anzahl zu öffnender Dateien festlegen kann.) Wenn Sie viele Fehlermeldungen im Kernelprotkoll über nicht ausreichende Datei-Handles bekommen (suchen Sie nach »VFS: file-max limit <number> reached«), versuchen Sie es mit einer Vergrößerung des Wertes:
        echo 100000 > /proc/sys/fs/file-max
    Ein privilegierter Prozess (CAP_SYS_ADMIN) kann die Begrenzung file-max außer Kraft setzen.

/proc/sys/fs/file-nr
    This (read-only) file contains three numbers: the number of allocated file handles (i.e., the number of files presently opened); the number of free file handles; and the maximum number of file handles (i.e., the same value as /proc/sys/fs/file-max). If the number of allocated file handles is close to the maximum, you should consider increasing the maximum. Before Linux 2.6, the kernel allocated file handles dynamically, but it didn't free them again. Instead the free file handles were kept in a list for reallocation; the "free file handles" value indicates the size of that list. A large number of free file handles indicates that there was a past peak in the usage of open file handles. Since Linux 2.6, the kernel does deallocate freed file handles, and the "free file handles" value is always zero.

/proc/sys/fs/inode-max (nur vorhanden bis Linux 2.2)
    Diese Datei enthält die maximale Anzahl von im Speicher befindlichen Inodes. Dieser Wert sollte drei- bis viermal größer sein als der Wert von file-max, weil auch die Bearbeitung von stdin, stdout und Netzwerk-Sockets einen Inode erfordert. Wenn Ihnen regelmäßig die Inodes knapp werden, müssen Sie diesen Wert erhöhen. Beginnend mit Linux 2.4 gibt es keine statische Begrenzung der Anzahl der Inodes mehr und diese Datei wurde entfernt.

/proc/sys/fs/inode-nr
    Diese Datei enthält die ersten zwei Werte von inode-state.

/proc/sys/fs/inode-state
    Diese Datei enthält sieben Nummern: nr_inodes, nr_free_inodes, preshrink und vier Dummy-Werte (immer Null). nr_inodes ist die Anzahl der Inodes, die das System zugeteilt hat. nr_free_inodes stellt die Anzahl der freien Inodes dar. preshrink is nonzero when the nr_inodes > inode-max and the system needs to prune the inode list instead of allocating more; since Linux 2.4, this field is a dummy value (always zero).

/proc/sys/fs/inotify (seit Linux 2.6.13)
    Dieses Verzeichnis enthält die Dateien max_queued_events, max_user_instances, und max_user_watches, mit denen der Verbrauch von Kernel-Speicher durch die inotify-Schnittstelle begrenzt werden kann. Weitere Einzelheiten finden Sie in inotify(7).

/proc/sys/fs/lease-break-time
    Diese Datei legt die Gnadenfrist fest, die der Kernel einem Prozess gewährt, der über einen »file lease« (fcntl(2)) verfügt, nachdem der Kernel dem Prozess signalisiert hat, das ein anderer Prozess die Datei öffnen will. Wenn der Prozess innerhalb dieser Frist den Lease nicht entfernt oder herabstuft, wird der Kernel das Lease zwangsweise zurückziehen.

/proc/sys/fs/leases-enable
    Mit dieser Datei können »file leases« (fcntl(2)) systemweit aktiviert oder deaktiviert werden. Wenn diese Datei den Wert 0 enthällt, werden Leases deaktiviert. Ein Wert ungleich null aktiviert leases.

/proc/sys/fs/mount-max (since Linux 4.9)
    The value in this file specifies the maximum number of mounts that may exist in a mount namespace. The default value in this file is 100,000.

/proc/sys/fs/mqueue (seit Linux 2.6.6)
    Dieses Verzeichnis enthält die Dateien msg_max, msgsize_max und queues_max, die den Ressourcenverbrauch von POSIX-Meldungswarteschlangen steuern. mq_overview(7) gibt weitere Informationen.

/proc/sys/fs/nr_open (seit Linux 2.6.25)
    Diese Datei erzwingt eine obere Grenze für den Wert, auf den die Ressourcenbeschränkung RLIMIT_NOFILE erhöht werden kann (siehe getrlimit(2)). Diese obere Grenze wird sowohl für unprivilegierte als auch für privilegierte Prozesse durchgesetzt. Der Vorgabewert in dieser Datei ist 1048576. (Vor Linux 2.6.25 war die obere Grenze für RLIMIT_NOFILE hart auf den gleichen Wert einkodiert.)

/proc/sys/fs/overflowgid und /proc/sys/fs/overflowuid
    Diese Dateien ermöglichen Ihnen, die festen Maximalwerte für UID und GID zu ändern. Der Vorgabewert ist 65534. Einige Dateisysteme unterstützen nur 16-Bit-UIDs und -GIDs, obwohl in Linux UIDs und GIDs 32 Bit lang sind. Wenn eines dieser Dateisysteme schreibbar eingehängt wird, würden alle UIDs oder GIDs, die 65535 überschreiten würden, vor dem Schreiben auf die Platte in ihren Überlaufwert übersetzt werden.

/proc/sys/fs/pipe-max-size (seit Linux 2.6.35)
    siehe pipe(7).

/proc/sys/fs/pipe-user-pages-hard (seit Linux 4.5)
    siehe pipe(7).

/proc/sys/fs/pipe-user-pages-soft (seit Linux 4.5)
    siehe pipe(7).

/proc/sys/fs/protected_hardlinks (seit Linux 3.6)
    Wenn der Wert in dieser Datei 0 ist, werden keine Einschränkungen bezüglich der Erstellung von harten Links gesetzt (d.h. dies ist das historische Verhalten vor Linux 3.6). Wenn der Wert in dieser Datei 1 ist, kann ein harter Link auf ein Ziel nur erstellt werden, falls einer der folgenden Bedingungen zutrifft:

    *   The calling process has the CAP_FOWNER capability in its user namespace and the file UID has a mapping in the namespace.

    *   Die Dateisystem-UID des Prozesses, der den Link erstellt, passt auf den Eigentümer (UID) der Zieldatei (wie in credentials(7) beschrieben, ist die Dateisystem-UID eines Prozesses normalerweise zu seiner effektiven UID identisch).

    *   Alle der folgenden Bedingungen sind wahr:

        •   das Ziel ist eine reguläre Datei;

        •   die Zieldatei hat nicht sein Modus-Bit »set-user-ID« aktiviert;

        •   die Zieldatei hat nicht sowohl sein Modus-Bit »set-user-ID« als auch »group-executable« aktiviert; und

        •   der Aufrufende hat Rechte, die Zieldatei zu lesen und zu schreiben (entweder über die Dateiberechtigungsmaske oder weil er über die geeigneten Capabilities verfügt).

    The default value in this file is 0. Setting the value to 1 prevents a longstanding class of security issues caused by hard-link-based time-of-check, time-of-use races, most commonly seen in world-writable directories such as /tmp. The common method of exploiting this flaw is to cross privilege boundaries when following a given hard link (i.e., a root process follows a hard link created by another user). Additionally, on systems without separated partitions, this stops unauthorized users from "pinning" vulnerable set-user-ID and set-group-ID files against being upgraded by the administrator, or linking to special files.

/proc/sys/fs/protected_symlinks (seit Linux 3.6)
    Wenn der Wert in dieser Datei 0 ist, werden keine Einschränkungen auf die folgenden symbolischen Links gesetzt (d.h. das historische Verhalten vor Linux 3.6). Wenn der Wert in dieser Datei 1 ist, werden symbolische Links nur unter den folgenden Umständen gefolgt:

    *   Die Dateisystem-UID des Prozesses, der dem symbolischen Link folgt, passt auf den Eigentümer (UID) des symbolischen Links (wie in credentials(7) beschrieben, ist die Dateisystem-UID eines Prozesses normalerweise identisch zu seiner effektiven UID);

    *   the link is not in a sticky world-writable directory; or

    *   der symbolische Link und sein Elternverzeichnis haben den gleichen Eigentümer (UID).

    Ein Systemaufruf, der beim Folgen eines symbolischen Links wegen der obigen Einschränkungen fehlschlägt liefert den Fehler EACCES in errno zurück.

    Der Vorgabewert in dieser Datei ist 0. Wird der Wert auf 1 gesetzt, wird eine bereits lang existierende Klasse von Sicherheitsproblemen, die auf Ressourcenwettläufen zwischen dem Zeitpunkt der Überprüfung und dem Zeitpunkt der Verwendung beim Zugriff auf symbolische Links basieren, vermieden.

/proc/sys/fs/suid_dumpable (seit Linux 2.6.13)
    The value in this file is assigned to a process's "dumpable" flag in the circumstances described in prctl(2). In effect, the value in this file determines whether core dump files are produced for set-user-ID or otherwise protected/tainted binaries. The "dumpable" setting also affects the ownership of files in a process's /proc/[pid] directory, as described above. Es können drei verschiedene Ganzzahlwerte festgelegt werden:

    0 (Standard)
        0 (Standard) Das bewirkt das traditionelle Verhalten (vor Linux 2.6.13). Ein Core-Dump wird nicht erzeugt für Prozesse, die ihre Identität änderten (durch Aufruf von seteuid(2), setgid(2) oder ähnliches oder durch das Ausführen eines set-user-ID oder set-group-ID-Programms) oder deren Binärprogramm nicht die Leseberechtigung aktiviert hat.

    1 (»debug«)
        Alle Prozesse geben einen Core-Dump aus, wenn möglich. (Gründe, warum ein Prozess dennoch keinen Core-Dump ausgibt, sind in core(5) beschrieben.) Der Core-Dump trägt die Benutzer-Kennung (UID) des erzeugenden Prozesses, es gibt keine Sicherheitsprüfungen. Dies ist nur für die Fehlersuche im System gedacht: Dieser Modus ist unsicher, da er es unprivilegierten Benutzern erlaubt, die Speicherinhalte von privilegierten Prozessen zu untersuchen.

    2 (»suidsafe«)
        2 (»suidsafe«) Für alle Programme, für die normalerweise kein Dump erzeugt würde (siehe »0« oben), wird ein nur für root lesbarer Dump erzeugt. Dadurch kann der Benutzer die Core-Dump-Datei entfernen, sie aber nicht lesen. Aus Sicherheitsgründen überschreiben Core-Dumps in diesem Modus keine anderen Dumps oder Dateien. Dieser Modus eignet sich, wenn Administratoeren Probleme in einer normalen Umgebung untersuchen.

        Zusätzlich muss wie in core(5) ausführlich beschrieben seit Linux 3.6 /proc/sys/kernel/core_pattern entweder ein absoluter Pfadname oder ein Pipe-Befehl sein. Falls core_pattern diesen Regeln nicht folgt, werden in das Kernelprotokoll Warnungen ausgegeben und kein Core-Dump erstellt.

    For details of the effect of a process's "dumpable" setting on ptrace access mode checking, see ptrace(2).

/proc/sys/fs/super-max
    Diese Datei steuert die maximale Anzahl der Superblocks und damit die maximale Anzahl von Dateisystemen, die der Kernel einhängen kann. Sie müssen nur super-max erhöhen, wenn Sie mehr Dateisysteme einhängen müssen, als der aktuelle Wert in super-max zulässt.

/proc/sys/fs/super-nr
    Diese Datei enthält die Anzahl aktuell eingehängter Dateisysteme.

/proc/sys/kernel
    Diese Date enthält Dateien, die eine Reihe von Kernel-Parametern steuern, wie es im Folgenden beschrieben wird.

/proc/sys/kernel/acct
    Diese Datei enthält drei Zahlen: highwater, lowwater und frequency. Wenn BSD-Prozessabrechnung (accounting) aktiviert ist, steuern diese Werte ihr Verhalten. Wenn der freie Platz auf dem Dateisystem mit der Protokolldatei unter lowwater Percent sinkt, wird die Abrechnung ausgesetzt. Wenn der freie Platz über highwater steigt, wird die Abrechnung fortgesetzt. frequency (Wert in Sekunden) legt fest, wie oft der Kernel die Größe des freien Speichers prüft. Standardwerte sind 4, 2 und 30: Die Abrechnung wird unter 2% freiem Speicher ausgesetzt, über 4% fortgesetzt und alle 30 Sekunden der freie Speicher überprüft.

/proc/sys/kernel/auto_msgmni (Linux 2.6.27 bis 3.18)
    Von Linux 2.6.27 bis 3.18 wurde diese Datei dazu verwandt, die Neuberechnung des Werts in /proc/sys/kernel/msgmni, basierend auf der Hinzufügung oder der Entfernung von Speicher oder der Erstellung/Entfernung von IPC-Namensräumen, zu steuern. Wurde der Wert »1« per Echo in diese Datei geschrieben, wurde die automatische Neuberechnung von msgmni aktiviert (und eine Neuberechnung von msgmni basierend auf der aktuellen Menge von verfügbaren Speicher und der Anzahl von IPC-Namensräumen ausgelöst). Wurde »0« per Echo geschrieben, wurde die automatische Neuberechnung deaktiviert. (Die automatische Neuberechnung war auch deaktiviert, falls explizit ein Wert /proc/sys/kernel/msgmni zugewiesen worden war.) Der Vorgabewert in auto_msgmni war 1. Seit Linux 3.19 hat der Inhalt dieser Datei keinen Effekt (da msgmni standardmäßig fast den maximalen Wert enthält) und beim Lesen aus dieser Datei wird immer der Wert »0« zurückgeliefert.

/proc/sys/kernel/cap_last_cap (seit Linux 3.2)
    siehe capabilities(7).

/proc/sys/kernel/cap-bound (von Linux 2.2 bis 2.6.24)
    Diese Datei enthält den Wert der Kernel-Capability-Begrenzungsmenge (ausgedrückt als vorzeichenbehaftete Dezimalzahl). Dieser Satz wird logisch UND-verknüpft mit den Capabilities, die während execve(2) bestanden. Beginnend mit Linux 2.6.25 verschwand dieser Wert und wurde durch seine prozess-spezifische Variante ersetzt; siehe capabilities(7).

/proc/sys/kernel/core_pattern
    siehe core(5)

/proc/sys/kernel/core_pipe_limit
    siehe core(5)

/proc/sys/kernel/core_uses_pid
    siehe core(5)

/proc/sys/kernel/ctrl-alt-del
    Diese Datei steuert den Umgang mit Strg-Alt-Entf von der Tastatur. Wenn der Wert in dieser Datei 0 ist, wird Strg-Alt-Entf abgefangen und an das init(1)-Programm weitergeleitet, um einen ordnungsgemäßen Neustart auszulösen. Wenn der Wert größer als Null ist, wird Linux' Reaktion auf einen vulkanischen Nervengriff™ ein sofortiger Neustart sein, ohne auch nur seine schmutzige Puffer zu synchronisieren. Anmerkung: wenn ein Programm (wie dosemu) die Tastatur im »raw«-Modus betreibt, wird das Strg-Alt-Entf durch das Programm abgefangen, bevor es die Kernel-TTY-Schicht erreicht. Das Programm muss entscheiden, wie es damit umgeht.

/proc/sys/kernel/dmesg_restrict (seit Linux 2.6.37)
    Der Wert in dieser Datei bestimmt, wer den Inhalt des Syslog des Kernels sehen kann. Ein Wert von 0 in dieser Datei führt zu keinen Einschränkungen. Falls der Wert 1 ist, können nur privilegierte Benutzer den Syslog des Kernels lesen. (Siehe syslog(2) für weitere Details). Seit Linux 3.4 können nur Benutzer, die über das Capability CAP_SYS_ADMIN verfügen, den Wert dieser Datei ändern.

/proc/sys/kernel/domainname und /proc/sys/kernel/hostname
    können benutzt werden, um den NIS/YP-Domainnamen und den Namen Ihres Systems auf genau dieselbe Weise wie mit den Befehlen domainname(1) und hostname(1) zu setzen. Also hat
    # echo 'darkstar' > /proc/sys/kernel/hostname
    # echo 'meineDomain' > /proc/sys/kernel/domainname
    den gleichen Effekt wie
    # hostname 'darkstar'
    # domainname 'meineDomain'
    Beachten Sie jedoch, dass der klassische darkstar.frop.org hat den Rechnernamen »darkstar« und den DNS-Domainnamen (Internet Domain Name Server) »frop.org«, der nicht mit den Domainnamen von NIS (Network Information Service) oder YP (Gelbe Seiten) verwechselt werden dürfen.. Diese beiden Domainnamen sind in der Regel anders aus. Für eine ausführliche Diskussion siehe die Handbuchseite hostname(1).

/proc/sys/kernel/hotplug
    Diese Datei enthält den Pfad für das Programm zur Umsetzung der »Hotplug«-Richtlinie. Der Standardwert in dieser Datei ist /sbin/hotplug.

/proc/sys/kernel/htab-reclaim
    (nur PowerPC) Wenn diese Datei auf einen Wert ungleich Null gesetzt ist, wird die »PowerPC htab« (siehe Kernel-Datei Documentation/powerpc/ppc_htab.txt) jedesmal »zurückgeschnitten«, wenn das System in den Leerlauf geht.

/proc/sys/kernel/keys/*
    This directory contains various files that define parameters and limits for the key-management facility. These files are described in keyrings(7).

/proc/sys/kernel/kptr_restrict (seit Linux 2.6.38)
    Der Wert in dieser Datei bestimmt, ob die Kerneladressen mittels Dateien in /proc und anderen Schnittstellen offengelegt werden. Ein Wert von 0 in dieser Datei führt zu keinen Einschränkungen. Falls der Wert 1 ist, werden alle Kernelzeiger, die mittels der Formatspezifikation %pK ausgegeben werden, durch Nullen ersetzt, es sei denn, der Benutzer verfügt über die Capability CAP_SYSLOG. Falls der Wert 2 ist, werden Kernelzeiger, die mittels der Formatspezifikation %pK ausgegeben werden, durch Nullen ersetzt, unabhängig von den Capabilitys der Benutzer. Der ursprüngliche Vorgabewert dieser Datei war 1, aber die Vorgabe wurde in Linux 2.6.39 auf 0 geändert. Seit Linux 3.4 können nur Benutzer mit der Capability CAP_SYS_ADMIN den Wert in dieser Datei ändern.

/proc/sys/kernel/l2cr
    (nur PowerPC) Diese Datei enthält einen Schalter für die Steuerung des L2-Caches von Platinen mit dem G3-Prozessor. Der Wert 0 deaktiviert den Cache, ein Wert ungleich null aktiviert ihn.

/proc/sys/kernel/modprobe
    Diese Datei enthält den Pfad zum Programm, dass die Kernel-Module lädt, standardmäßig /sbin/modprobe. Diese Datei existiert nur, falls die Kernel-Option CONFIG_MODULES (CONFIG_KMOD in Linux 2.6.26 und älter) aktiviert ist. Diese wird in der Linux-Kernel-Quelldatei Documentation/kmod.txt beschrieben (nur in Kernel 2.4 und älter).

/proc/sys/kernel/modules_disabled (seit Linux 2.6.31)
    Ein Umschaltwert, der angibt, ob Module in einen andernfalls modularen Kernel geladen werden dürfen. Dieser Umschaltwert ist standardmäßig aus (0), kann aber auf wahr (true, 1) gesetzt werden. Sobald er wahr ist, können Module weder geladen noch entladen werden und der Umschaltwert kann nicht zurück auf falsch gesetzt werden. Diese Datei ist nur vorhanden, falls der Kernel mit der aktivierten Option CONFIG_MODULES gebaut wurde.

/proc/sys/kernel/msgmax (seit Linux 2.2)
    Diese Datei enthält eine systemweite Begrenzung der Maximalzahl von Bytes, die eine einzelne Nachricht in einer System-V-Nachrichtenschlange enthalten darf.

/proc/sys/kernel/msgmni (seit Linux 2.4)
    Diese Datei legt die systemweite Grenze für die Anzahl der Nachrichtenschlangen-Bezeichner fest. Siehe auch /proc/sys/kernel/auto_msgmni.

/proc/sys/kernel/msgmnb (seit Linux 2.2)
    Diese Datei definiert einen systemweiten Parameter für die Initialisierung der Einstellung msg_qbytes für nachfolgend erstellte Nachrichtenschlangen. msg_qbytes legt fest, wie viele Bytes maximal in eine Nachrichtenschlange geschrieben werden dürfen.

/proc/sys/kernel/ngroups_max (seit Linux 2.6.4)
    Dies ist eine nur lesbare Datei, die die obere Grenze für die Anzahl der Gruppenmitgliedschaften eines Prozesses anzeigt.

/proc/sys/kernel/ostype und /proc/sys/kernel/osrelease
    Diese Dateien enthalten Teilzeichenketten von /proc/version.

/proc/sys/kernel/overflowgid und /proc/sys/kernel/overflowuid
    Diese Dateien duplizieren die Dateien /proc/sys/fs/overflowgid und /proc/sys/fs/overflowuid.

/proc/sys/kernel/panic
    Diese Datei ermöglicht Lese- und Schreib-Zugriff auf die Kernel-Variable panic_timeout. Steht hier eine 0, dann bleibt der Kernel in einer Panic-Schleife; ungleich 0 bedeutet, dass der Kernel nach dieser Anzahl Sekunden automatisch das System wieder hochfahren soll. Wenn Sie die Laufzeitüberwachungs-Gerätetreiber (software watchdog device driver) nutzen, ist der empfohlene Wert 60.

/proc/sys/kernel/panic_on_oops (seit Linux 2.5.68)
    Diese Datei steuert das Verhalten des Kernels, wenn ein Problem (oops) oder ein Fehler aufgetreten ist. Falls diese Datei den Wert 0 enthält, versucht das System eine Fortsetzung des Betriebs. Falls sie 1 enthält, gibt das System klogd ein paar Sekunden Zeit für die Protokollierung des Problems und verfällt dann in die »kernel panic«. Wenn in der Datei/proc/sys/kernel/panic ein Wert ungleich Null steht, wird der Rechner neu gestartet.

/proc/sys/kernel/pid_max (seit Linux 2.5.34)
    Diese Datei gibt den Wert an, an dem PIDs überlaufen (d.h. der Wert in dieser Datei ist um eins größer als die maximal zulässige PID). PIDs größer als dieser Wert werden nicht zugewiesen; daher fungiert der Wert in dieser Datei auch als systemweite Grenze der Gesamtanzahl an Prozessen und Threads. Der Standardwert für diese Datei ist 32768 bewirkt den gleichen PID-Bereich wie auf älteren Kerneln. Auf 32-Bit-Plattformen ist 32768 der Maximalwert. Auf 64-Bit-Systemen kann pid_max auf einen beliebigen Wert bis zu 2^22 (PID_MAX_LIMIT, ungefähr 4 Millionen) gesetzt werden.

/proc/sys/kernel/powersave-nap (nur PowerPC)
    Diese Datei enthält einen Schalter zur Steuerung von Linux-PPC. Ist er betätigt, wird Linux-PPC den »nap«-Energiesparmodus verwenden, ansonsten wird es der »doze«-Modus sein.

/proc/sys/kernel/printk
    siehe syslog(2)

/proc/sys/kernel/pty (seit Linux 2.6.4)
    Dieses Verzeichnis enthält zwei Dateien mit Bezug zu den Unix-98-Pseudoterminals (siehe pts(4)) des Systems.

/proc/sys/kernel/pty/max
    Diese Datei definiert die Maximalzahl von Pseudoterminals.

/proc/sys/kernel/pty/nr
    Diese (nur lesbare) Datei gibt die Anzahl der derzeit im System genutzten Pseudoterminals an

/proc/sys/kernel/random
    Dieses Verzeichnis enthält verschiedene Parameter, um das Verhalten der Datei /dev/random zu steuern. random(4) gibt weitere Informationen.

/proc/sys/kernel/random/uuid (seit Linux 2.4)
    Jeder Lesevorgang aus dieser nur-lesbaren Datei liefert eine zufällig generierte 128-Bit UID als Zeichenkette, die im Standard-UID-Format ist, zurück.

/proc/sys/kernel/randomize_va_space (seit Linux 2.6.12)
    Wählt die Adressraumlayoutverwürfelungsregelungen (ASLR) für das System aus (auf Architekturen, die ASLR unterstützen). Für diese Datei werden drei Werte unterstützt:

    0   Schaltet ASLR aus. Dies ist die Vorgabe für Architekturen, die ASLR nicht unterstützen und wenn der Kernel mit dem Parameter norandmaps gestartet wird.

    1   Macht die Zuweisung von Adressen durch mmap(2), den Stack und die VDSO-Seite zufällig. Unter anderem bedeutet dies, dass Laufzeitbibliotheken an zufälligen Adressen geladen werden. Das Textsegment von PIE-gelinkten Programmen wird auch an zufälligen Adressen geladen. Dieser Wert ist die Vorgabe, falls der Kernel mit CONFIG_COMPAT_BRK konfiguriert wurde.

    2   (Since Linux 2.6.25) Also support heap randomization. This value is the default if the kernel was not configured with CONFIG_COMPAT_BRK.

/proc/sys/kernel/real-root-dev
    Diese Datei wird in der Linux-Kernel-Quelldatei Documentation/initrd.txt beschrieben.

/proc/sys/kernel/reboot-cmd (nur Sparc)
    Diese Datei scheint ein eine Möglichkeit zu sein, ein Argument an den SPARC-ROM/Flash-Bootloader zu übergeben. Vielleicht kann man ihm Anweisungen für die Zeit nach dem Neustart geben?

/proc/sys/kernel/rtsig-max
    (Nur in Kerneln bis einschließlich 2.6.7; siehe setrlimit(2)). Mit dieser Datei kann die maximale Anzahl (anstehender) von POSIX-Echtzeit-Signalen eingestellt werden, die im System anstehen dürfen.

/proc/sys/kernel/rtsig-nr
    (Nur in Kerneln bis einschließlich 2.6.7). Diese Datei gibt die Anzahl derzeit anstehender POSIX-Echtzeitsignale an.

/proc/[pid]/sched_autogroup_enabled (seit Linux 2.6.38)
    siehe sched(7)

/proc/sys/kernel/sched_child_runs_first (since Linux 2.6.23)
    If this file contains the value zero, then, after a fork(2), the parent is first scheduled on the CPU. If the file contains a nonzero value, then the child is scheduled first on the CPU. (Of course, on a multiprocessor system, the parent and the child might both immediately be scheduled on a CPU.)

/proc/sys/kernel/sched_rr_timeslice_ms (seit Linux 3.9)
    Siehe sched_rr_get_interval(2).

/proc/sys/kernel/sched_rt_period_us (since Linux 2.6.25)
    siehe sched(7)

/proc/sys/kernel/sched_rt_runtime_us (since Linux 2.6.25)
    siehe sched(7)

/proc/sys/kernel/sem (since Linux 2.4)
    Diese Datei enthält vier Zahlen, die Grenzen für System-V-IPC-Semaphore definieren. Der Reihe nach sind das:

    SEMMSL
        die maximale Anzahl von Semaphoren pro Satz von Semaphoren

    SEMMNS
        eine systemweite Begrenzung für die Anzahl in allen Semaphoren-Sätzen

    SEMOPM
        die maximale Anzahl von Operationen, die in einem Aufruf von semop(2) festgelegt werden dürfen

    SEMMNI
        eine systemweite Grenze für die maximale Anzahl von Bezeichnern für Semaphore.

/proc/sys/kernel/sg-big-buff
    Diese Datei gibt die Größe der generischen Puffer für SCSI-Geräte an. Sie können den Wert derzeit nicht optimieren, aber bei der Kompilierung optimieren, indem Sie include/scsi/sg.h bearbeiten und den Wert SG_BIG_BUFF anpassen. Es sollte aber keinen Grund geben, diesen Wert zu ändern.

/proc/sys/kernel/shm_rmid_forced (seit Linux 3.1)
    If this file is set to 1, all System V shared memory segments will be marked for destruction as soon as the number of attached processes falls to zero; in other words, it is no longer possible to create shared memory segments that exist independently of any attached process.

    Der Effekt ist, als ob shmctl(2) IPC_RMID auf alle bestehenden und alle zukünftig erstellten Segmente angewandt würde (bis diese Datei auf 0 zurückgesetzt wird). Beachten Sie, dass bestehende Segmente, die an keinen Prozess angehängt sind, sofort beim Setzen der Datei auf 1 zerstört werden. Setzen dieser Option wird auch Segmente zerstören, die zwar erstellt, aber niemals angehängt wurden, sobald der Prozess, der das Segment mit shmget(2) erstellte, beendet wird.

    Setting this file to 1 provides a way of ensuring that all System V shared memory segments are counted against the resource usage and resource limits (see the description of RLIMIT_AS in getrlimit(2)) of at least one process.

    Because setting this file to 1 produces behavior that is nonstandard and could also break existing applications, the default value in this file is 0. Set this file to 1 only if you have a good understanding of the semantics of the applications using System V shared memory on your system.

/proc/sys/kernel/shmall (seit Linux 2.2)
    Diese Datei enthält die systemweite Grenze für die Gesamtzahl der Seiten im »System V shared memory«.

/proc/sys/kernel/shmmax (seit Linux 2.2)
    Diese Datei kann genutzt werden, um die Laufzeitbeschränkung für die maximale Größe (System V IPC) für gemeinsame Speichersegmente festzulegen. Jetzt werden im Kernel gemeinsame Speichersegmente bis zu 1GB unterstützt. Dieser Wert ist per Vorgabe SHMMAX.

/proc/sys/kernel/shmmni (seit Linux 2.4)
    Diese Datei spezifiert die systemweite maximale Anzahl von gemeinsam genutzten System-V-Speichersegmenten, die erzeugt werden können.

/proc/sys/kernel/sysctl_writes_strict (seit Linux 3.16)
    Der Wert in dieser Datei bestimmt, wie der Dateiversatz das Verhalten der Aktualisierung von Einträgen in Dateien unter /proc/sys beeinflusst. Die Datei hat drei mögliche Werte:

    -1  Dies stellt das veraltete Verhalten bereit, ohne Printk-Warnungen. Jeder write(2) muss den kompletten zu schreibenden Wert enthalten und mehrere Schreibvorgänge auf den gleichen Dateideskriptor werden unabhängig von der Dateiposition den gesamten Wert überschreiben.

    0   (Vorgabe) Dies stellt das gleiche Verhalten wie bei -1 bereit, aber Printk-Warnungen werden für Prozesse geschrieben, die Schreibezugriffe ausführen, wenn der Dateiversatz nicht 0 ist.

    1   Respektiert den Dateiversatz beim Schreiben von Zeichenketten in Dateien in /proc/sys. Mehrere Schreibvorgänge werden an den Wertepuffer anhängen. Alles, was hinter die maximale Länge des Puffers geschrieben wird, wird ignoriert. Schreibvorgänge an numerische Einträge in /proc/sys müssen immer bei Dateiversatz 0 erfolgen und der Wert muss komplett in dem an write(2) bereitgestellten Puffer enthalten sein.

/proc/sys/kernel/sysrq
    Diese Datei steuert, welche Funktionen von dem SysRq-Schlüssel aufgerufen werden. Standardmäßig enthält die Datei den Wert 1. Das bedeutet, dass jede mögliche SysRq-Anfrage möglich ist. (In älteren Kernel-Versionen wurde SysRq standardmäßig deaktiviert und Sie mussten SysRq gesondert zur Laufzeit aktivieren, aber das ist nicht mehr der notwendig). Mögliche Werte in dieser Datei sind:

    0   deaktiviert Sysrq komplett

    1   aktiviert alle Funktionen von Sysrq

    > 1 Bitmaske, die Sysrq-Funktione erlaubt, wie folgt:
        2   aktiviert die Steuerung der Konsolenprotokollierungsstufe
        4   aktiviert die Steuerung der Tastatur (SAK, unraw)
        8   Enable debugging dumps of processes etc.
        16  aktiviert den Befehl »sync«
        32  aktiviert das nur lesende erneute Einhängen
        64  Enable signaling of processes (term, kill, oom-kill)
        128 erlaubt neustarten/ausschalten
        256 Allow nicing of all real-time tasks

    Diese Datei ist nur vorhanden, wenn die Kernel-Konfigurationsoption CONFIG_MAGIC_SYSRQ aktiviert wird. Für weitere Einzelheiten lesen Sie die Linux-Kernel-Quelltextdatei Documentation/sysrq.txt.

/proc/sys/kernel/version
    Diese Datei enthält eine Zeichenkette wie beispielsweise:
        #5 Wed Feb 25 21:49:24 MET 1998 Die »#5« besagt, das dies der fünfte aus diesem Quelltext erstellte Kernel ist. Das anschließende Datum gibt an, wann der Kernel erstellt wurde.

/proc/sys/kernel/threads-max (seit Linux 2.3.11)
    Diese Datei legt die systemweite Begrenzung für die Gesamtzahl der Threads (Tasks) fest, die erstellt werden dürfen. Seit Linux 4.1 ist der Wert, den nach threads-max geschrieben werden kann, begrenzt. Der Minimalwert ist 20, der Maximalwert wird durch die Konstante FUTEX_TID_MASK (0x3fffffff) gegeben. Falls ein Wert außerhalb dieses Bereichs nach threads-max geschrieben wird, tritt der Fehler EINVAL auf. Der geschriebene Wert wird gegenüber den verfügbaren RAM-Seiten geprüft. Falls die Thread-Struktur zu viel (mehr als 1/8) der verfügbaren RAM-Seiten belegen würde, wird threads-max entsprechend reduziert.

/proc/sys/kernel/yama/ptrace_scope (seit Linux 3.5)
    siehe ptrace(2).

/proc/sys/kernel/zero-paged (nur PowerPC)
    Die Datei enthält einen Schalter. Ist er aktiviert (ungleich 0), wird Linux-PPC vorbeugend Seiten im Leerlauf auf Null setzen und beschleunigt möglicherweise get_free_pages.

/proc/sys/net
    Dieses Verzeichnis enthält Netzwerkkrams. Erkärungen für einige der Dateien in diesem Verzeichnis finden Sie in tcp(7) and ip(7).

/proc/sys/net/core/bpf_jit_enable
    siehe bpf(2).

/proc/sys/net/core/somaxconn
    Diese Datei enthält eine obere Grenze für das backlog-Argument von listen(2); siehe die Handbuchseite von listen(2) für Einzelheiten.

/proc/sys/proc
    Dieses Verzeichnis kann leer sein.

/proc/sys/sunrpc
    Dieses Verzeichnis unterstützt Suns »remote procedure call« (rpc(3)) für das Netzwerkdateisystem (NFS). Auf manchen Systemen fehlt es.

/proc/sys/user (since Linux 4.9)
    See namespaces(7).

/proc/sys/vm
    Dieses Verzeichnis enthält Dateien für die Optimierung der Speicherverwaltung und die Verwaltung der Puffer und Caches (Zwischenspeicher).

/proc/sys/vm/admin_reserve_kbytes (since Linux 3.10)
    This file defines the amount of free memory (in KiB) on the system that that should be reserved for users with the capability CAP_SYS_ADMIN. The default value in this file is the minimum of [3% of free pages, 8MiB] expressed as KiB. The default is intended to provide enough for the superuser to log in and kill a process, if necessary, under the default overcommit 'guess' mode (i.e., 0 in /proc/sys/vm/overcommit_memory). Systems running in "overcommit never" mode (i.e., 2 in /proc/sys/vm/overcommit_memory) should increase the value in this file to account for the full virtual memory size of the programs used to recover (e.g., login(1) ssh(1), and top(1)) Otherwise, the superuser may not be able to log in to recover the system. For example, on x86_64 a suitable value is 131072 (128MiB reserved). Changing the value in this file takes effect whenever an application requests memory.

/proc/sys/vm/compact_memory (seit Linux 2.6.35)
    Wenn 1 in diese Datei geschrieben wird, werden alle Zonen zusammengefasst, so dass der freie Speicher wo möglich in durchlaufenden Blöcken verfügbar ist. Der Effekt dieser Aktion kann durch Einsicht in /proc/buddyinfo geprüft werden.

    Nur vorhanden, falls der Kernel mit CONFIG_COMPACTION konfiguriert wurde.

/proc/sys/vm/drop_caches (seit Linux 2.6.16)
    Writing to this file causes the kernel to drop clean caches, dentries, and inodes from memory, causing that memory to become free. This can be useful for memory management testing and performing reproducible filesystem benchmarks. Because writing to this file causes the benefits of caching to be lost, it can degrade overall system performance. To free pagecache, use:
        echo 1 > /proc/sys/vm/drop_caches To free dentries and inodes, use:
        echo 2 > /proc/sys/vm/drop_caches To free pagecache, dentries and inodes, use:
        echo 3 > /proc/sys/vm/drop_caches Because writing to this file is a nondestructive operation and dirty objects are not freeable, the user should run sync(1) first.

/proc/sys/vm/legacy_va_layout (seit Linux 2.6.9)
    Wenn ungleich Null, deaktiviert dies das neue 32-Bit-Layout für das »Memory Mapping«, der Kernel wird das alte (2.4) Layout für alle Prozesse anwenden.

/proc/sys/vm/memory_failure_early_kill (seit Linux 2.6.32)
    Steuert, wie Prozesse beendet werden, wenn ein nicht korrigierter Speicherfehler (in der Regel ein 2-Bit-Fehler in einem Speichermodul), den der Kernel nicht bearbeiten kann, im Hintergrund durch die Hardware erkannt wird. In einigen Fällen (wenn es von der Seite noch eine gültige Kopie auf der Festplatte gibt), wird der Kernel den Fehler behandeln, ohne alle Anwendungen zu beeinträchtigen. Aber wenn es keine weitere aktuelle Kopie der Daten gibt, wird er Prozesse abbrechen, um die Verbreitung korrumpierter Daten zu unterbinden. Die Datei hat einen der folgenden Werte:

    1:  Bricht alle Prozesse ab, in deren Speicher die beschädigte und nicht erneut ladbare Seite eingeblendet ist, sobald der Fehler erkannt wird. Beachten Sie, dass dies nicht für ein einige spezielle Seiten wie Kernel-intern zugewiesene Daten oder der Swap-Zwischenspeicher unterstützt wird, es funktioniert aber für die Mehrheit der Anwenderseiten.

    0:  Die beschädigte Seite aus allen Prozesse ausblenden und einen Prozess nurtöten, falls er versucht, auf die Seite zuzugreifen.

    Der Abbruch wird mittels eines SIGBUS-Signals erledigt, bei dem der si_code auf BUS_MCEERR_AO gesetzt wird. Prozesse können darauf reagieren, wenn sie wollen; siehesigaction(2) für weitere Einzelheiten. Diese Möglichkeit ist nur auf Archtitekturen/Plattformen aktiv, die über eine ausgefeilte Handhabung von »machine checks« verfügen und hängt von den Fähigkeiten der Hardware ab. Anwendungen können die Einstellung memory_failure_early_kill individuell mit der prctl(2)-Operation PR_MCE_KILL außer Kraft setzen.

    Nur vorhanden, falls der Kernel mit CONFIG_MEMORY_FAILURE konfiguriert wurde.

/proc/sys/vm/memory_failure_recovery (seit Linux 2.6.32)
    Aktiviert die Behebung von Speicherfehlern (wenn das von der Plattform unterstützt wird).

    1:  Fehlerbehebung versuchen.

    0:  Bei Speicherfehlern immer eine Kernel Panic auslösen.

    Nur vorhanden, falls der Kernel mit CONFIG_MEMORY_FAILURE konfiguriert wurde.

/proc/sys/vm/oom_dump_tasks (seit Linux 2.6.25)
    Ermöglicht eine systemweiten Dump der Tasks (ohne Kernel-Threads), wenn der Kernel bei Speicherknappheit Prozesse abbricht (OOM-killing). Der Dump enthält die folgenden Informationen für jede Task (Thread, Prozess): Thread-ID, reale Benutzer-ID, Thread-Gruppen-ID (Prozess-ID), Größe des virtuellen Speichers, Größe des Resident Set, die CPU, auf der die Task laufen soll, die oom_adj-Bewertung (siehe die Beschreibung von /proc/[PID]/oom_adj) und der Name des Befehls. Dies ist hilfreich, um festzustellen, warum der OOM-Killer ausgeschickt wurde und um die schurkische Task zu identifizieren. Ist der Wert in der Datei Null, wird diese Information unterdrückt. Auf sehr großen Systemen mit Tausenden von Tasks wird es kaum praktikabel sein, für alle Tasks den Speicherstatus auszugeben. Solche Systeme sollten nicht gezwungen werden, bei Speicherknappheit Leistungseinbußen zu erleiden, wenn die Informationen nicht gewünscht werden. Ist der Wert von Null verschieden, werden diese Informationen jedesmal ausgegeben, wenn der OOM-Killer ein speichergierige Task ins Jenseits schickt. Der Standardwert ist 0.

/proc/sys/vm/oom_kill_allocating_task (seit Linux 2.6.24)
    Dies aktiviert oder deaktiviert bei Speicherknappheit die OOM-auslösende Task. Ist der Wert null, wertet der OOM-Killer die gesamte Taskliste aus und wählt heuristisch eine Task als Opfer aus. Normalerweise wählt er einen speichergierigen Schurken aus, dessen Tod sehr viel Speicher freigibt. Ist der Wert ungleich Null, beseitigt der OOM-Killer die Task, die die Speicherknappheit auslöste. Dadurch wird eine möglicherweise aufwändige Analyse der Taskliste vermieden. Falls /proc/sys/vm/panic_on_oom von null verschieden ist, hat das Vorrang vor dem Wert in /proc/sys/vm/oom_kill_allocating_task, was auch immer darin steht. Der Standardwert ist 0.

/proc/sys/vm/overcommit_kbytes (seit Linux 3.14)
    This writable file provides an alternative to /proc/sys/vm/overcommit_ratio for controlling the CommitLimit when /proc/sys/vm/overcommit_memory has the value 2. It allows the amount of memory overcommitting to be specified as an absolute value (in kB), rather than as a percentage, as is done with overcommit_ratio. This allows for finer-grained control of CommitLimit on systems with extremely large memory sizes. Only one of overcommit_kbytes or overcommit_ratio can have an effect: if overcommit_kbytes has a nonzero value, then it is used to calculate CommitLimit, otherwise overcommit_ratio is used. Writing a value to either of these files causes the value in the other file to be set to zero.

/proc/sys/vm/overcommit_memory
    Diese Datei legt den Abrechnungsmodus des Kernels für virtuellen Speicher fest. Die Werte sind:

        0: heuristic overcommit (this is the default)
        1: immer Overcommit, niemals prüfen
        2: immer prüfen, niemals overcommit

    In mode 0, calls of mmap(2) with MAP_NORESERVE are not checked, and the default check is very weak, leading to the risk of getting a process "OOM-killed". In mode 1, the kernel pretends there is always enough memory, until memory actually runs out. One use case for this mode is scientific computing applications that employ large sparse arrays. In Linux kernel versions before 2.6.0, any nonzero value implies mode 1. In Modus 2 (verfügbar seit Linux 2.6) wid der allozierbare gesamte virtuelle Adressraum (CommitLimit in /proc/meminfo) wie folgt berechnet:
        CommitLimit = (total_RAM - total_huge_TLB) *
                      overcommit_ratio / 100 + total_swap wobei:

    *   total_RAM ist der gesamte RAM des Systems

    *   total_huge_TLB is the amount of memory set aside for huge pages;

    *   overcommit_ratio ist der Wert aus /proc/sys/vm/overcommit_ratio

    *   total_swap is the amount of swap space.

    For example, on a system with 16GB of physical RAM, 16GB of swap, no space dedicated to huge pages, and an overcommit_ratio of 50, this formula yields a CommitLimit of 24GB. Falls der Wert in /proc/sys/vm/overcommit_kbytes von Null verschieden ist, wird CommitLimit stattdessen seit Linux 3.14 wie folgt berechnet:
        CommitLimit = overcommit_kbytes + total_swap See also the description of /proc/sys/vm/admiin_reserve_kbytes and /proc/sys/vm/user_reserve_kbytes.

/proc/sys/vm/overcommit_ratio (seit Linux 2.6.0)
    This writable file defines a percentage by which memory can be overcommitted. The default value in the file is 50. See the description of /proc/sys/vm/overcommit_memory.

/proc/sys/vm/panic_on_oom (seit Linux 2.6.18)
    Dies aktiviert oder deaktiviert eine Kernel Panic bei Speicherknappheit Wenn diese Datei auf den Wert 0 gesetzt wird, wird der OOM-Killer des Kernels sich einen Schurken schnappen und liquidieren. Normalerweise findet er ein geeignetes Opfer und das System überlebt. Wenn diese Datei auf den Wert 1 gesetzt ist, verfällt der Kernel in Panik, wenn Speicherknappheit eintritt. Wenn allerdings ein Prozess die Zuweisungen an bestimmte Knoten mit Speicherstrategien (mbind(2) MPOL_BIND) oder Cpusets (cpuset(7)) begrenzt und die Knoten erreichen einen Speichererschöpfungs-Zustand, kann ein Prozess vom OOM-Killer getötet werden. In diesem Fall tritt keine Panik ein: weil der Speicher anderer Knoten noch frei sein kann, muss das System noch nicht als ganzes unter Speichermangel leiden. Wenn diese Datei schon auf den Wert 2 gesetzt ist, wird bei Speicherknappheit immer eine Kernel Panic ausgelöst. Der Standardwert ist 0. 1 und 2 sind für die Ausfallsicherung in Clustern bestimmt. Wählen Sie den Wert entsprechend ihrer Strategie oder im Sinn der Ausfallsicherung.

/proc/sys/vm/swappiness
    Der Wert in dieser Datei legt fest, wie aggressiv der Kernel Speicherseiten auslagert. Hohe Werte machen ihn aggressiver, kleinere Werte sanftmütiger. Der Standardwert ist 60.

/proc/sys/vm/user_reserve_kbytes (since Linux 3.10)
    Specifies an amount of memory (in KiB) to reserve for user processes, This is intended to prevent a user from starting a single memory hogging process, such that they cannot recover (kill the hog). The value in this file has an effect only when /proc/sys/vm/overcommit_memory is set to 2 ("overcommit never" mode). In this case, the system reserves an amount of memory that is the minimum of [3% of current process size, user_reserve_kbytes]. The default value in this file is the minimum of [3% of free pages, 128MiB] expressed as KiB. If the value in this file is set to zero, then a user will be allowed to allocate all free memory with a single process (minus the amount reserved by /proc/sys/vm/admin_reserve_kbytes). Any subsequent attempts to execute a command will result in "fork: Cannot allocate memory". Changing the value in this file takes effect whenever an application requests memory.

/proc/sysrq-trigger (seit Linux 2.4.21)
    Wird ein Zeichen in diese Datei geschrieben, löst das die gleiche SysRq-Funktion aus wie die Eingabe von ALT-SysRq-<Zeichen> (siehe die Beschreibung von /proc/sys/kernel/sysrq). Normalerweise kann nur root in diese Datei schreiben. Weitere Informationen gibt die Linux-Kernel-Quelltextdatei Documentation/sysrq.txt.

/proc/sysvipc
    Dieses Unterverzeichnis enthält die Pseudodateien msg, sem und shm. Diese Dateien listen die aktuell im System befindlichen System-V-IPC-Objekte (IPC: Interprozess-Kommunikation), also Nachrichtenschlangen, Semaphore und gemeinsam genutzter Speicher. auf. Sie enthalten ähnliche Informationen wie die, die mit ipcs(1) erhalten werden können. Diese Zeilen haben Kopfzeilen und sind zwecks besserer Verständlichkeit formatiert (ein IPC-Objekt pro Zeile). svipc(7) bietet weiteren Hintergrund zu den von diesen Dateien bereitgestellten Informationen.

/proc/thread-self (seit Linux 3.17)
    Dieses Verzeichnis bezieht sich auf den Thread, der auf das /proc-Dateisystem zugreift und ist mit dem /proc/self/task/[TID]-Verzeichnis identisch, das als Namen die Prozess-Thread-Nummer dieses Threads hat.

/proc/timer_list (seit Linux 2.6.21)
    This read-only file exposes a list of all currently pending (high-resolution) timers, all clock-event sources, and their parameters in a human-readable form.

/proc/timer_stats (seit Linux 2.6.21)
    This is a debugging facility to make timer (ab)use in a Linux system visible to kernel and user-space developers. It can be used by kernel and user-space developers to verify that their code does not make undue use of timers. The goal is to avoid unnecessary wakeups, thereby optimizing power consumption. If enabled in the kernel (CONFIG_TIMER_STATS), but not used, it has almost zero runtime overhead and a relatively small data-structure overhead. Even if collection is enabled at runtime, overhead is low: all the locking is per-CPU and lookup is hashed. The /proc/timer_stats file is used both to control sampling facility and to read out the sampled information. The timer_stats functionality is inactive on bootup. A sampling period can be started using the following command:
        # echo 1 > /proc/timer_stats The following command stops a sampling period:
        # echo 0 > /proc/timer_stats Die Statistiken können wie folgt ermittelt werden:
        $ cat /proc/timer_stats While sampling is enabled, each readout from /proc/timer_stats will see newly updated statistics. Once sampling is disabled, the sampled information is kept until a new sample period is started. This allows multiple readouts. Beispielausgabe aus /proc/timer_stats:
    $ cat /proc/timer_stats
    Timer Stats Version: v0.3
    Sample period: 1.764 s
    Collection: active
      255,     0 swapper/3        hrtimer_start_range_ns (tick_sched_timer)
       71,     0 swapper/1        hrtimer_start_range_ns (tick_sched_timer)
       58,     0 swapper/0        hrtimer_start_range_ns (tick_sched_timer)
        4,  1694 gnome-shell      mod_delayed_work_on (delayed_work_timer_fn)
       17,     7 rcu_sched        rcu_gp_kthread (process_timeout)
    ...
        1,  4911 kworker/u16:0    mod_delayed_work_on (delayed_work_timer_fn)
       1D,  2522 kworker/0:0      queue_delayed_work_on (delayed_work_timer_fn)
    1029 total events, 583.333 events/sec

    Die Ausgabespalten sind wie folgt:

    *   a count of the number of events, optionally (since Linux 2.6.23) followed by the letter 'D' if this is a deferrable timer;

    *   the PID of the process that initialized the timer;

    *   the name of the process that initialized the timer;

    *   the function where the timer was initialized; and

    *   (in parentheses) the callback function that is associated with the timer.

/proc/tty
    Unterverzeichnis mit Pseudodateien und -Unterverzeichnissen für tty-Treiber und »line disciplines«.

/proc/uptime
    This file contains two numbers: the uptime of the system (seconds), and the amount of time spent in idle process (seconds).

/proc/version
    Diese Zeichenkette identifiziert den gerade laufenden Kernel. Er fasst die Inhalte von /proc/sys/kernel/ostype, /proc/sys/kernel/osrelease und /proc/sys/kernel/version zusammen. Beispielsweise:
    Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994

/proc/vmstat (seit Linux 2.6.0)
    This file displays various virtual memory statistics. Each line of this file contains a single name-value pair, delimited by white space. Some files are present only if the kernel was configured with suitable options. (In some cases, the options required for particular files have changed across kernel versions, so they are not listed here. Details can be found by consulting the kernel source code.) The following fields may be present:

    nr_free_pages (seit Linux 2.6.31)

    nr_alloc_batch (seit Linux 3.12)

    nr_inactive_anon (seit Linux 2.6.28)

    nr_active_anon (seit Linux 2.6.28)

    nr_inactive_file (seit Linux 2.6.28)

    nr_active_file (seit Linux 2.6.28)

    nr_unevictable (seit Linux 2.6.28)

    nr_mlock (seit Linux 2.6.28)

    nr_anon_pages (seit Linux 2.6.18)

    nr_mapped (seit Linux 2.6.0)

    nr_file_pages (seit Linux 2.6.18)

    nr_dirty (seit Linux 2.6.0)

    nr_writeback (seit Linux 2.6.0)

    nr_slab_reclaimable (seit Linux 2.6.19)

    nr_slab_unreclaimable (seit Linux 2.6.19)

    nr_page_table_pages (seit Linux 2.6.0)

    nr_kernel_stack (seit Linux 2.6.32)
        Teil des Speichers, der Kernel-Stacks zugewiesen wurde.

    nr_unstable (seit Linux 2.6.0)

    nr_bounce (seit Linux 2.6.12)

    nr_vmscan_write (seit Linux 2.6.19)

    nr_vmscan_immediate_reclaim (seit Linux 3.2)

    nr_writeback_temp (seit Linux 2.6.26)

    nr_isolated_anon (seit Linux 2.6.32)

    nr_isolated_file (seit Linux 2.6.32)

    nr_shmem (seit Linux 2.6.32)
        Pages used by shmem and tmpfs(5).

    nr_dirtied (seit Linux 2.6.37)

    nr_written (seit Linux 2.6.37)

    nr_pages_scanned (seit Linux 3.17)

    numa_hit (seit Linux 2.6.18)

    numa_miss (seit Linux 2.6.18)

    numa_foreign (seit Linux 2.6.18)

    numa_interleave (seit Linux 2.6.18)

    numa_local (seit Linux 2.6.18)

    numa_other (seit Linux 2.6.18)

    workingset_refault (seit Linux 3.15)

    workingset_activate (seit Linux 3.15)

    workingset_nodereclaim (seit Linux 3.15)

    nr_anon_transparent_hugepages (seit Linux 2.6.38)

    nr_free_cma (seit Linux 3.7)
        Number of free CMA (Contiguous Memory Allocator) pages.

    nr_dirty_threshold (seit Linux 2.6.37)

    nr_dirty_background_threshold (seit Linux 2.6.37)

    pgpgin (seit Linux 2.6.0)

    pgpgout (seit Linux 2.6.0)

    pswpin (seit Linux 2.6.0)

    pswpout (seit Linux 2.6.0)

    pgalloc_dma (seit Linux 2.6.5)

    pgalloc_dma32 (seit Linux 2.6.16)

    pgalloc_normal (seit Linux 2.6.5)

    pgalloc_high (seit Linux 2.6.5)

    pgalloc_movable (seit Linux 2.6.23)

    pgfree (seit Linux 2.6.0)

    pgactivate (seit Linux 2.6.0)

    pgdeactivate (seit Linux 2.6.0)

    pgfault (seit Linux 2.6.0)

    pgmajfault (seit Linux 2.6.0)

    pgrefill_dma (seit Linux 2.6.5)

    pgrefill_dma32 (seit Linux 2.6.16)

    pgrefill_normal (seit Linux 2.6.5)

    pgrefill_high (seit Linux 2.6.5)

    pgrefill_movable (seit Linux 2.6.23)

    pgsteal_kswapd_dma (seit Linux 3.4)

    pgsteal_kswapd_dma32 (seit Linux 3.4)

    pgsteal_kswapd_normal (seit Linux 3.4)

    pgsteal_kswapd_high (seit Linux 3.4)

    pgsteal_kswapd_movable (seit Linux 3.4)

    pgsteal_direct_dma

    pgsteal_direct_dma32 (seit Linux 3.4)

    pgsteal_direct_normal (seit Linux 3.4)

    pgsteal_direct_high (seit Linux 3.4)

    pgsteal_direct_movable (seit Linux 2.6.23)

    pgscan_kswapd_dma

    pgscan_kswapd_dma32 (seit Linux 2.6.16)

    pgscan_kswapd_normal (seit Linux 2.6.5)

    pgscan_kswapd_high

    pgscan_kswapd_movable (seit Linux 2.6.23)

    pgscan_direct_dma

    pgscan_direct_dma32 (seit Linux 2.6.16)

    pgscan_direct_normal

    pgscan_direct_high

    pgscan_direct_movable (seit Linux 2.6.23)

    pgscan_direct_throttle (seit Linux 3.6)

    zone_reclaim_failed (seit Linux 2.6.31)

    pginodesteal (seit Linux 2.6.0)

    slabs_scanned (seit Linux 2.6.5)

    kswapd_inodesteal (seit Linux 2.6.0)

    kswapd_low_wmark_hit_quickly (seit 2.6.33)

    kswapd_high_wmark_hit_quickly (seit 2.6.33)

    pageoutrun (seit Linux 2.6.0)

    allocstall (seit Linux 2.6.0)

    pgrotated (seit Linux 2.6.0)

    drop_pagecache (seit Linux 3.15)

    drop_slab (seit Linux 3.15)

    numa_pte_updates (seit Linux 3.8)

    numa_huge_pte_updates (seit Linux 3.13)

    numa_hint_faults (seit Linux 3.8)

    numa_hint_faults_local (seit Linux 3.8)

    numa_pages_migrated (seit Linux 3.8)

    pgmigrate_success (seit Linux 3.8)

    pgmigrate_fail (seit Linux 3.8)

    compact_migrate_scanned (seit Linux 3.8)

    compact_free_scanned (seit Linux 3.8)

    compact_isolated (seit Linux 3.8)

    compact_stall (seit Linux 2.6.35)
        Siehe die Kernel-Quelldatei Documentation/vm/transhuge.txt.

    compact_fail (seit Linux 2.6.35)
        Siehe die Kernel-Quelldatei Documentation/vm/transhuge.txt.

    compact_success (seit Linux 2.6.35)
        Siehe die Kernel-Quelldatei Documentation/vm/transhuge.txt.

    htlb_buddy_alloc_success (seit Linux 2.6.26)

    htlb_buddy_alloc_fail (seit Linux 2.6.26)

    unevictable_pgs_culled (seit Linux 2.6.28)

    unevictable_pgs_scanned (seit Linux 2.6.28)

    unevictable_pgs_rescued (seit Linux 2.6.28)

    unevictable_pgs_mlocked (seit Linux 2.6.28)

    unevictable_pgs_munlocked (seit Linux 2.6.28)

    unevictable_pgs_cleared (seit Linux 2.6.28)

    unevictable_pgs_stranded (seit Linux 2.6.28)

    thp_fault_alloc (seit Linux 2.6.39)
        Siehe die Kernel-Quelldatei Documentation/vm/transhuge.txt.

    thp_fault_fallback (seit Linux 2.6.39)
        Siehe die Kernel-Quelldatei Documentation/vm/transhuge.txt.

    thp_collapse_alloc (seit Linux 2.6.39)
        Siehe die Kernel-Quelldatei Documentation/vm/transhuge.txt.

    thp_collapse_alloc_failed (seit Linux 2.6.39)
        Siehe die Kernel-Quelldatei Documentation/vm/transhuge.txt.

    thp_split (seit Linux 2.6.39)
        Siehe die Kernel-Quelldatei Documentation/vm/transhuge.txt.

    thp_zero_page_alloc (seit Linux 3.8)
        Siehe die Kernel-Quelldatei Documentation/vm/transhuge.txt.

    thp_zero_page_alloc_failed (seit Linux 3.8)
        Siehe die Kernel-Quelldatei Documentation/vm/transhuge.txt.

    balloon_inflate (seit Linux 3.18)

    balloon_deflate (seit Linux 3.18)

    balloon_migrate (seit Linux 3.18)

    nr_tlb_remote_flush (seit Linux 3.12)

    nr_tlb_remote_flush_received (seit Linux 3.12)

    nr_tlb_local_flush_all (seit Linux 3.12)

    nr_tlb_local_flush_one (seit Linux 3.12)

    vmacache_find_calls (seit Linux 3.16)

    vmacache_find_hits (seit Linux 3.16)

    vmacache_full_flushes (seit Linux 3.19)

/proc/zoneinfo (since Linux 2.6.13)
    Diese Datei enthält Informationen über Speicherbereiche. Sie ist nützlich für die Analyse des Verhaltens des virtuellen Speichers.

ANMERKUNGEN
Viele Zeichenketten (z. B. die Umgebung und die Befehlszeile) sind im internen Format dargestellt, Unterfelder werden mit Null-Bytes ('\0') begrenzt. Sie werden diese vielleicht besser lesbar finden, wenn Sie od -c oder tr "\000" "\n" benutzen. Alternativ erhalten Sie mit echo `cat <file>` gute Ergebnisse. Diese Handbuchseite ist unvollständig, möglicherweise stellenweise ungenau und ein Beispiel für etwas, das ständig überarbeitet werden muss.

SIEHE AUCH
cat(1), dmesg(1), find(1), free(1), init(1), ps(1), tr(1), uptime(1), chroot(2), mmap(2), readlink(2), syslog(2), slabinfo(5), hier(7), namespaces(7), time(7), arp(8), hdparm(8), ifconfig(8), lsmod(8), lspci(8), mount(8), netstat(8), procinfo(8), route(8), sysctl(8) Die Linux-Kernelquelldateien: Documentation/filesystems/proc.txt Documentation/sysctl/fs.txt, Documentation/sysctl/kernel.txt, Documentation/sysctl/net.txt und Documentation/sysctl/vm.txt.

KOLOPHON
This page is part of release 4.11 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Dr. Tobias Quathamer <toddy@debian.org> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.