Provided by: manpages-de_2.16-1_all bug

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. Typischerweise wird es vom System  automatisch
       eingehängt. Es kann aber auch mit einem Befehl manuell eingehängt werden:

           mount -t proc proc /proc

       Die  meisten  Einträge  im Dateisystem proc sind nur lesbar, aber einige Dateien sind auch
       schreibbar, wodurch das Verändern von Kernel-Variablen erlaubt wird.

   Einhänge-Optionen
       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  /proc/[PID]-Verzeichnisse  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
                  Aufdeckung  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 erweiterten
                  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  Kennung  einer  Gruppe   fest,   deren   Mitglieder   berechtigt   sind,
              Prozessinformationen  herauszufinden,  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 anderen Ansätzen (wie dem Eintrag von
              Benutzern in die Datei sudoers(5)) vorgezogen werden.

   Überblick
       Unterhalb  von  /proc  gibt  es  die  folgenden  allgemeinen  Gruppen  von   Dateien   und
       Unterverzeichnissen:

       Unterverzeichnisse von /proc/[PID]
              Jedes   dieser  Unterverzeichnisse  enthält  Dateien  und  Unterverzeichnisse,  die
              Informationen über die Prozesse mit der entsprechenden Prozesskennung offenlegen.

              Unterhalb jedes der  /proc/[PID]-Verzeichnisse  enthält  ein  Task-Unterverzeichnis
              entsprechende Unterverzeichnisse der Form Task/[TID]. Diese enthalten entsprechende
              Informationen  über  jeden  der   Threads   in   dem   Prozess,   wobei   TID   die
              Kernel-Thread-Kennung des Threads ist.

              Die  Unterverzeichnisse /proc/[PID] sind beim Durchlauf durch /proc mit getdents(2)
              sichtbar (und daher sichtbar, wenn ls(1) zur Anzeige der Inhalte von /proc verwandt
              wird).

       Unterverzeichnisse von /proc/[TID]
              Jedes   dieser  Unterverzeichnisse  enthält  Dateien  und  Unterverzeichnisse,  die
              Informationen über den Thread mit der entsprechenden Thread-Kennung offenlegen. Der
              Inhalt   dieser   Verzeichnisse   ist   der  gleiche  wie  bei  den  entsprechenden
              /proc/[PID]/task/[TID]-Verzeichnissen.

              Die Verzeichnisse /proc/[TID] sind beim Durchlauf von /proc mit  getdents(2)  nicht
              sichtbar  (und  daher  nicht sichtbar, wenn ls(1) zur Anzeige der Inhalte von /proc
              verwandt wird).

       /proc/self
              Wenn ein Prozess auf diesen magischen symbolischen Link zugreift, wird  dieser  auf
              das Verzeichnis /proc/[PID] des Prozesses selbst aufgelöst.

       /proc/thread-self
              Wenn  ein  Thread  auf diesen magischen symbolischen Link zugreift, wird dieser auf
              das Verzeichnis /proc/self/task/[TID] des Prozesses selbst aufgelöst.

       /proc/[a-z]*
              Verschiedene andere Dateien und Unterverzeichnisse unter  /proc  legen  systemweite
              Informationen offen.

       Alles Dargestellte wird weiter unten mit mehr Details beschrieben.

   Dateien und Verzeichnisse
       Die  folgende  Liste  gibt  Details  über  viele  der  Dateien und Verzeichnisse unter der
       Hierarchie /proc wieder:

       /proc/[PID]
              Für jeden laufenden Prozess gibt es ein numerisches Unterverzeichnis, dessen Nummer
              der Prozesskennung (PID) entspricht. Jedes Unterverzeichnis /proc/[PID] enthält die
              nachfolgend beschriebenen Pseudo-Dateien und -Verzeichnisse.

              Als Besitzer der Datei innerhalb jedes /proc/[PID]-Verzeichnisses ist normalerweise
              die  effektiven  Benutzer- und Gruppenkennung des Prozesses eingetragen, allerdings
              wird  als  Sicherheitsmaßnahme  der  Besitzer  auf  root:root  gesetzt,  wenn   das
              »dumpable«-Attribut des Prozesses auf einen anderen Wert als 1 gesetzt ist.

              Vor Linux 4.11.1 bedeutete root:root die »globale« Benutzer- und Gruppenkennung von
              Root (d.h. UID 0 und GID 0 im anfänglichen  Benutzernamensraum).  Seit  Linux  4.11
              wird die Benutzer- (Gruppen-)Eigentümerschaft von Dateien unterhalb von /proc/[PID]
              stattdessen auf den gleichen Wert wie der Wurzelbenutzer  (-gruppe)  innerhalb  des
              Namensraums    gelegt,    falls    der    Prozess    in   einem   nichtanfänglichen
              Benutzernamenesraum ist, der eine gültige Abbildung für Benutzer- (Gruppen-)Kennung
              0 innerhalb des Namensraums hat. Das bedeutet, dass innerhalb eines Containers alle
              Dinge für den Benutzer »root« wie erwartet im Container ablaufen.

              Das Attribut »dumpable« mag sich aus folgenden Gründen ändern:

              *  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.

              Das  »dumpable«-Attribut  auf 1 zurückzusetzen ändert auch den Besitzer der Dateien
              /proc/[PID]/* auf die effektive UID und GID des Prozesses zurück.

       /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 wird diese Datei zur Ermittlung des Sicherheitskontextes eines Prozesses
              verwandt.  Vor  Linux  2.6.11   konnte   diese   Datei   nicht   zum   Setzen   des
              Sicherheitskontextes  verwandt  werden (ein Schreibzugriff wurde immer verweigert),
              da SELinux die  Prozesssicherheitsübergänge  auf  execve(2)  begrenzte  (siehe  die
              Beschreibung von /proc/[PID]/attr/exec weiter unten). Seit Linux 2.6.11 hat SELinux
              diese  Einschränkung  aufgehoben  und  begonnen,  »set«  (Setzen-)Aktionen  mittels
              Schreibzugriffen  auf  diesen  Knoten zu unterstützen, falls dies durch Richtlinien
              erlaubt wurde. Allerdings ist die Verwendung  dieser  Aktion  nur  für  Anwendungen
              geeignet,  denen  vertraut  wird, die gewünschte Separierung zwischen dem alten und
              dem neuen Sicherheitskontext aufrechtzuerhalten.

              Vor Linux 2.6.28 erlaubte es SELinux Threads innerhalb von Multi-Threaded-Prozessen
              nicht,  ihren  Sicherheitskontext  mittels dieses Knotens zu setzen, da es zu einer
              Inkonsistenz innerhalb  der  Sicherheitskontexte  der  Threads,  die  den  gleichen
              Speicher   gemeinsam   benutzen,  führen  würde.  Seit  2.6.28  hat  SELinux  diese
              Einschränkung aufgehoben und begonnen, »set«-Aktionen  für  Threads  innerhalb  von
              Multi-Threaded-Prozessen   zu   unterstützen,  falls  der  neue  Sicherheitskontext
              innerhalb der Grenzen des alten Sicherheitskontextes liegt, wobei  die  begrenzende
              Beziehung   in  den  Richtlinien  definiert  ist  und  garantiert,  dass  der  neue
              Sicherheitskontext über eine Teilmenge der Rechte  des  alten  Sicherheitskontextes
              verfügt.

              Andere    Sicherheitsmodule    können   sich   entscheiden,   »set«-Aktionen   über
              Schreibzugriffe auf diesen Knoten zu unterstützen.

       /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  wird  dies  benötigt,  um Rollen-/Domänenübergänge zu unterstützen und
              execve(2) ist die bevorzugte Stelle, um solche Übergänge vorzunehmen, da es bessere
              Steuermöglichkeiten    über    die   Initialisierung   des   Prozesses   im   neuen
              Sicherheits-Label und die Vererbung von Zustand erlaubt.  In  SELinux  wird  dieses
              Attribut   bei   execve(2)  zurückgesetzt,  so  dass  das  neue  Programm  auf  das
              Vorgabeverhalten für alle execve(2),  die  es  ausführen  könnte,  zurückfällt.  In
              SELinux kann ein Prozess nur sein eigenes Attribut /proc/[PID]/attr/exec setzen.

       /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  mit  Labeln
              gekennzeichnet.    Für    weitere    Informationen   siehe   die   Kernelquelldatei
              Documentation/security/keys/core.rst  (oder  Datei  Documentation/security/keys.txt
              unter Linux zwischen 3.0 und 4.13 oder Documentation/keys.txt vor Linux 3.0).

       /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 mit Labeln gekennzeichnet.

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

       /proc/[PID]/auxv (seit 2.6.0)
              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-Kennung  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)
                     setzt die Resident Set Size (»Hochwassermarke«) auf den derzeitigen Wert der
                     resident set size des aktuellen Prozesses zurück.

              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
              Diese  Datei  enthält  die anfängliche Prozess-Umgebung, die gesetzt wurde, als das
              aktuell ausgeführte Programm mit einem  execve(2)  gestartet  wurde.  Die  Einträge
              werden  durch  Null-Bytes  ('\0')  getrennt,  am  Ende der Liste kann ebenfalls ein
              Null-Byte stehen. Die Umgebung von Prozess 1 geben Sie wie folgt aus:

                  $ cat /proc/1/environ | tr '\000' '\n'

              Falls ein Prozess nach einem execve(2) seine Umgebung verändert (z.B. durch  Aufruf
              von    Funktionen    wie   putenv(3)   oder   durch   direkte   Veränderungen   der
              environ(7)-Variablen) wird diese Datei solche Änderungen nicht berücksichtigen.

              Ein Prozess kann desweiteren den Speicherort, auf den diese Datei verweist, mittels
              der prctl(2)-Aktionen wie PR_SET_MM_ENV_START verändern.

              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.

              Für Dateideskriptoren,  die  keinen  korrespondierenden  Inode  haben  (d.h.  durch
              bpf(2),    epoll_create(2),    eventfd(2),   inotify_init(2),   perf_event_open(2),
              signalfd(2), timerfd_create(2)  und  userfaultfd(2)  erstellte  Dateideskriptoren),
              wird der Eintrag ein symbolischer Link sein mit Inhalten der Form

                  anon_inode:<Dateityp>

              In   vielen   (aber  nicht  allen)  Fällen  wird  Dateityp  durch  eckige  Klammern
              eingeschlossen.

              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)).

              Programme,  die  einen Dateinamen als Befehlszeilen-Argument verarbeiten, aber ohne
              Argument keine Eingaben aus der Standardeingabe annehmen oder  die  in  eine  Datei
              schreiben, deren Name als Befehlszeilen-Argument übergeben wird, aber bei fehlendem
              Argument nicht in die Standardausgabe  ausgeben,  können  dennoch  mittels  Dateien
              /proc/[PID]/fd  als Befehlszeilenargument dazu gebracht werden, die Standardeingabe
              oder die Standardausgabe zu verwenden. Angenommen, der Schalter -i  bezeichnet  die
              Eingabedatei und -o die Ausgabedatei:

                  $ 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).

              Beachten  Sie,  dass für Dateideskriptoren, die sich auf Inodes beziehen (Pipes und
              Sockets, siehe oben), diese Inodes immer noch die von den Einträgen  /proc/[PID]/fd
              verschiedenen Berechtigungsbits und Eigentümerinformationen haben und dass sich der
              Eigentümer von den Benutzer- und Gruppenkennungen des Prozesses unterscheiden kann.
              Einem  nicht  privilegierten  Prozess  könnten die Rechte zum Öffnen fehlen, wie in
              diesem Beispiel:

                  $ echo test | sudo -u nobody cat
                  test
                  $ echo test | sudo -u nobody cat /proc/self/fd/0
                  cat: /proc/self/fd/0: Permission denied

              Dateideskriptor 0 bezieht sich auf die durch die  Shell  erzeugte  und  von  diesem
              Shell-Benutzer  (dies  ist  nobody)  besessene  Pipe,  so  dass  cat nicht über die
              Berechtigungen verfügt, um einen neuen Dateideskriptor zu erstellen, um von  dieser
              Inode  zu  lesen,  obwohl  es  immer noch vom existierenden Dateideskriptor 0 lesen
              kann.

       /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 die 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

              Jede 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     Eine Watch-Deskriptornummer (deziaml)

              ino    Die Inode-Nummer der Zieldatei (hexadezimal).

              sdev   Die Kennung 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).

              Für den Timerfd-Dateideskriptor (siehe timerfd(2)) gibt es (seit  Linux  3.17)  die
              folgenden Felder:

                  pos:    0
                  flags:  02004002
                  mnt_id: 13
                  clockid: 0
                  ticks: 0
                  settime flags: 03
                  it_value: (7695568592, 640020877)
                  it_interval: (0, 0)

              clockid
                     Dies  ist der numerische Wert der Uhrkennung (entsprechend einer der mittels
                     <time.h> definierten Konstanten), der zur Markierung  des  Fortschritts  des
                     Timers verwandt wird (in diesem Beispiel ist 0 CLOCK_REALTIME).

              ticks  Dies ist die Anzahl der aufgetretenen Abläufe des Timers (d.h. dem Wert, den
                     read(2) darauf zurückliefern würde).

              settime flags
                     Dieses Feld führt in  oktaler  Schreibweise  die  Schalter  auf,  mit  denen
                     Timerfd  letztmalig  beladen  wurde  (siehe  timerfd_settime(2))  (in diesem
                     Beispiel sind  sowohl  TFD_TIMER_ABSTIME  als  auch  TFD_TIMER_CANCEL_ON_SET
                     gesetzt).

              it_value
                     Dieses  Feld  hält die Zeitdauer in Sekunden und Nanosekunden, bis der Timer
                     das nächste Mal ablaufen wird. Der  Wert  wird  immer  relativ  ausgedrückt,
                     unabhängig  davon,  ob  der  Timer  mittels  des Schalters TFD_TIMER_ABSTIME
                     erstellt wurde.

              it_interval
                     Dieses Feld enthält das Intervall des Timers in Sekunden  und  Nanosekunden.
                     (Die   Felder   it_value   und   it_interval   enthalten   die   Werte,  die
                     timerfd_gettime(2) auf diesem Dateideskriptor zurückliefern würde.)

       /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)
                     Die Anzahl an Bytes, die aufgrund  dieses  Prozesses  vom  Speicher  gelesen
                     wurden.  Dies ist einfach die Summe der Bytes, die dieser Prozess an read(2)
                     und ähnliche Systemaufrufe übergeben hat. Sie enthält Dinge wie Terminal-E/A
                     und  ist  unabhängig davon, ob wirklich physische Platten-E/A benötigt wurde
                     (die Leseanforderung kann aus dem Seitenzwischenspeicher  befriedigt  worden
                     sein).

              wchar: characters written (geschriebene Zeichen)
                     Die  Anzahl  an  Bytes, die aufgrund dieses Prozesses auf Platte geschrieben
                     wurden oder werden. Es gelten ähnliche Warnungen wie bei 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  blockunterstützte
                     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:
                     Die  große Ungenauigkeit hier ist das Abschneiden. Falls ein Prozess 1 MB in
                     eine  Datei  schreibt  und  diese  dann  löscht,  wird  tatsächlich   nichts
                     rausgeschrieben.  Allerdings  wird  dies  als  1  MB Schreiben in eine Datei
                     verbucht. Mit anderen Worten: Dieses Feld stellt die Anzahl  an  Bytes  dar,
                     die    durch    diesen    Prozess    nicht    passiert   sind,   indem   der
                     Seitenzwischenspeicher abgeschnitten wurde. Ein Prozess kann auch »negative«
                     E/A     hervorrufen.    Falls    dieser    Prozess    benutzten    (»dirty«)
                     Seitenzwischenspeicher abschneidet, wird ein Teil des  E/A,  der  für  einen
                     anderen Prozess (in seinem write_bytes) verbucht wurde, nicht passieren.

              Hinweis: In der aktuellen Implementierung gibt es auf 32-Bit-Systemen einen kleinen
              Ressourcenwettlauf: Falls Prozess 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
              A file containing the currently mapped memory regions and their access permissions.
              See mmap(2)  for some further information about memory mappings.

              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]
                          Der initiale Stack des Prozesses (auch als Haupt-Thread bekannt).

                   [stack:<tid>] (von Linux 3.4 bis 4.4)
                          Der Stack eines Prozesses (wobei die <TID> eine Thread-Kennung ist). Er
                          entspricht dem Pfad /proc/[PID]/task/[TID]/. Dieses Feld wurde in Linux
                          4.5  entfernt,  da  die  Bereitstellung  dieser Informationen für einen
                          Prozess mit einer großen Anzahl an Threads kostspielig ist.

                   [vdso] Das virtuelle dynamisch-gelinkte Laufzeitobjekt. Siehe 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.

              pathname wird desmaskiert angezeigt,  außer  für  Zeilenumbrüche,  die  durch  eine
              oktale  Maskiersequenz  ersetzt  werden.  Daher ist es im Ergebnis nicht möglich zu
              bestimmen,  ob  der  ursprüngliche  Dateiname  ein  Zeilenumbruchzeichen  oder  die
              tatsächliche Zeichensequenz \e012 enthielt.

              If  the  mapping  is  file-backed  and  the  file  has  been  deleted, the string "
              (deleted)" is appended to the pathname. Note that this is ambiguous too.

              Unter Linux 2.0 gibt es kein Feld, das den Pfadnamen angibt.

       /proc/[PID]/mem
              Diese Datei kann genutzt werden, um 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)
              Diese Datei enthält Informationen über  Einhängepunkte  im  Einhängenamensraum  des
              Prozesses  (siehe mount_namespaces(7)). Sie stellt verschiedene Informationen (z.B.
              Ausbreitungszustand, Wurzel von Einhängungen  für  Bind-Einhängungen,  Kennzeichner
              für  jede Einhängung und seine Elterneinhängung) bereit, die in der (älteren) Datei
              /proc/[PID]/mounts fehlen und korrigiert verschiedene andere  Probleme  mit  dieser
              Datei  (z.B. Nichterweiterbarkeit, keine Unterscheidbarkeit von pro-Einhängung- vs.
              pro-Superblock-Optionen).

              Die Datei enthält Zeilen der folgenden Form:
(1)(2)(3)   (4)   (5)      (6)      (7)   (8) (9)   (10)         (11)

              Die Zahlen in Klammern sind Zuordnungen zu den folgenden Beschreibungen:

              (1)  Einhängekennung: eine eindeutige  Kennung  für  dieses  Einhängen  (kann  nach
                   umount(2) erneut verwendet werden).

              (2)  Elternkennung:  die  Kennung  der  Eltern-Einhängung  (oder von selbst für die
                   Wurzel des Einhängebaums dieses Einhängenamensraums)

                   Falls eine neue Einhängung oben auf eine bisherige bestehende Einhängung  beim
                   Pfadnamen  P  gestapelt wird (so dass es die bestehende Einhängung versteckt),
                   dann ist die Elterneinhängung der neuen Einhängung die vorherige Einhängung an
                   diesem   Ort.  Beim  Blick  auf  alle  an  einem  bestimmten  Ort  gestapelten
                   Einhängungen ist daher die oberste Einhängung jene, die keine Elterneinhängung
                   irgendeiner  anderen Einhängung am gleichen Ort ist. (Beachten Sie allerdings,
                   dass diese oberste Einhängung nur zugreifbar  sein  wird,  falls  das  längste
                   Pfadpräfix  von  P,  das  der  Einhängepunkt  ist,  nicht  selbst  durch  eine
                   gestapelte Einhängung versteckt ist.)

                   Falls der Elterneinhängepunkt außerhalb des Wurzelverzeichnisses des Prozesses
                   liegt    (siehe   chroot(2))   wird   die   hier   gezeigte   Kennung   keinen
                   korrespondierenden Datensatz in mountinfo haben, dessen Einhängekennung  (Feld
                   1)  auf  die Einhängekennung des Elternprozesses passt (da Einhängepunkte, die
                   außerhalb des Wurzelverzeichnisses des Prozesses liegen,  nicht  in  mountinfo
                   angezeigt    werden).    Als    Sonderfall   bei   diesem   Punkt   kann   der
                   Wurzeleinhängungspunkt  dieses  Prozesses  eine  Elterneinhängung   (für   das
                   Initramfs-Dateisystem)  haben,  der  außerhalb  des  Wurzelverzeichnisses  des
                   Prozesses liegt, und ein Eintrag für diesen Einhängepunkt  wird  in  mountinfo
                   nicht auftauchen.

              (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 (siehe mount(2)).

              (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 (siehe mount(2)).

              Derzeit sind shared,  master,  propagate_from  und  unbindable  mögliche  optionale
              Felder.   Siehe   mount_namespaces(7)   für   eine   Beschreibung   dieser  Felder.
              Auswertprogramme sollten alle nicht erkannten optionalen Felder ignorieren.

              Weitere  Informationen  zur  Ausbreitung  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-Verschiebeoperation  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   muss   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 privilegiert ist (-).

              Vor  Kernel  2.6.36  wurden  die  folgenden  Faktoren  auch  bei der Berechnung von
              oom_score benutzt:

              * 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) (+); 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)
              Diese  Datei  kann  zur Anpassung der Schlechtigkeitsheuristik verwandt werden, die
              eingesetzt wird, um in  Speichererschöpfungssituationen  den  zu  tötenden  Prozess
              auszuwählen.

              Die  Schlechtigkeits-Heuristik  weist  jedem  möglichen  Prozess  einen  Wert von 0
              (niemals töten) bis 1000 (immer töten) zu, um zu bestimmen, welcher Prozess infrage
              kommt.  Der  Wert  beschreibt  im  Wesentlichen  den  kontinuierlichen  Anteil  des
              erlaubten Speichers, aus dem sich der Prozess Speicher zuweisen darf. Als Grundlage
              dient  dazu  der  aktuelle  verwendete  Speicher und Auslagerungsspeicher. Wenn ein
              Prozess  beispielsweise   sämtlichen   erlaubten   Speicher   nutzt,   ist   dessen
              Schlechtigkeitsbewertung  bei  1000.  Nutzt  er die Hälfte des erlaubten Speichers,
              beträgt die Bewertung 500.

              Es gibt einen weiteren Faktor in der Schlechtigkeitsbewertung: Root-Prozessen  wird
              3% zusätzlicher Speicher gegenüber anderen Prozessen gegeben.

              Die Menge des »erlaubten« Speichers hängt von dem Kontext ab, in dem der OOM-Killer
              aufgerufen wurde. Falls der Kontext ist, dass der oder die Prozessoren  ausgelastet
              sind,  entspricht  der erlaubte Speicher dem Speicher, der diesem Cpuset zugewiesen
              ist (siehe cpuset(7)). Falls der  oder  die  Mempolicy-Knoten  erschöpft  ist/sind,
              repräsentiert    der   erlaubte   Speicher   die   Mempolicy-Knoten.   Falls   eine
              Arbeitsspeicher- (oder Auslagerungsspeicher-) Grenze erreicht wurde, entspricht der
              erlaubte  Speicher  dieser  Grenze.  Sollte das gesamte System keinen Speicher mehr
              übrig haben, steht der erlaubte Speicher für alle verfügbaren Ressoucen.

              Die Wert aus oom_score_adj wird zum Schlechtigkeitswert hinzugefügt,  bevor  dieser
              zur  Ermittlung  des  zu  tötenden Prozesses verwendet wird. Zulässige Werte liegen
              zwischen -1000 (OOM_SCORE_ADJ_MIN) und  +1000  (OOM_SCORE_ADJ_MAX),  einschließlich
              dieser.  Dies ermöglicht auf Anwendungsebene die Einstellungen für das OOM-Töten zu
              steuern; dies reicht von der permanentes Bevorzugen eines bestimmten Prozesses oder
              deren  vollständige  Deaktivierung  des OOM-Tötens für ihn. Der niedrigste mögliche
              Wert  von  -1000  ist  gleichbedeutend  mit  der  vollständigen  Deaktivierung  des
              OOM-Tötens  für  diesen  Prozess,  da  dieser stets einen Schlechtigkeitswert von 0
              meldet.

              Infolgedessen ist es für die Anwendungsebene sehr  einfach,  die  Speichermenge  zu
              definieren,  die  für  jeden Prozess in Betracht gezogen wird. Die Festlegung eines
              Wertes von +500 für oom_score_adj ist beispielsweise  etwa  gleichbedeutend  damit,
              dass  die  übrigen  Prozesse,  die  das  gleiche  System,  Cpuset,  Mempolicy  oder
              Speicher-Controller-Ressourcen  mit  verwenden,  mindestens   50%   mehr   Speicher
              verwenden.  Andererseits  wäre  ein  Wert  von -500 etwa gleichbedeutend damit, den
              erlaubten Speicher eines Prozesses bei der Bewertung des  erlaubten  Speichers  des
              Prozesses um 50% zu reduzieren.

              Zur  Rückwärtskompatibilität  mit  früheren  Kerneln kann /proc/[PID]/oom_adj immer
              noch zur Feineinstellung der Schlechtigkeitsbewertung verwendet werden. Dieser Wert
              skaliert linear mit 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.

              Das Programm choom(1) stellt eine Befehlszeilenschnittstelle für die Anpassung  des
              Wertes  oom_score_adj  eines  laufenden  Prozesses oder frisch ausgeführten Befehls
              bereit.

       /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     Falls gesetzt, befindet sich die Seite im Auslagerungsbereich (Swap)

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

                   60-57 (seit Linux 3.11)
                          Null

                   56 (seit Linux 4.2)
                          The page is exclusively mapped.

                   55 (seit Linux 3.11)
                          PTE    is    soft-dirty     (see     the     kernel     source     file
                          Documentation/admin-guide/mm/soft-dirty.rst).

                   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-Prozess-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                  # Im anfänglichen NR
                  309
                  sh2# ls /proc/27123/root/etc | wc -l  # /etc in anderem NR
                  0                                     # Das leere Verz tmpfs
                  sh2# ls /dev | wc -l                  # Im anfänglichen NR
                  205
                  sh2# ls /proc/27123/root/dev | wc -l  # /dev in anderem NR
                  11                                    # Tatsächlich bind-
                                                        # eingehängt in /usr
                  sh2# ls /usr | wc -l                  # /usr im anfänglichen NR
                  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)
              Diese  Datei  kann  zum  Lesen  und  Ändern  der  Moduseinstellungen  der  sicheren
              Berechnung  (Seccomp)  des Prozesses verwandt werden. Sie enthält den Wert 0, falls
              der Prozess sich nicht im Seccomp-Modus befindet und 1, falls der Prozess  sich  im
              strikten   Seccomp-Modus  befindet  (siehe  seccomp(2)).  Wird  1  in  diese  Datei
              geschrieben,  wird  der  Prozess  unwiderruflich  in  den  strikten   Seccomp-Modus
              gebracht.  (Weitere  Versuche,  in  diese Datei zu schreiben, werden mit dem Fehler
              EPERM fehlschlagen.)

              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)
              This file shows memory consumption for each of the process's mappings. (The pmap(1)
              command  displays  similar  information, in a form that may be easier for parsing.)
              For each mapping there is a series of lines such as the following:

                  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.

              Die Zeile »KernelPageSize«  (verfügbar  seit  Linux  2.6.29)  ist  die  vom  Kernel
              verwandte Seitengröße, um den virtuellen Speicherbereich zu hinterlegen. Dies passt
              in den meisten Fällen auf die Größe, die von  der  MMU  verwandt  wird.  Allerdings
              tritt ein Gegenbeispiel auf PPC64-Kerneln auf, auf denen 64 kB als Basisseitengröße
              verwandt wird, aber auf älteren Prozessoren 4 kB für die  MMU  verwendet  wird.  Um
              zwischen den zwei Attributen zu unterscheiden, meldet die Zeile »MMUPageSize« (auch
              seit Linux 2.6.29 verfügbar) die von der MMU verwandte Seitengröße.

              The "Locked" indicates whether the mapping is locked in memory or not.

              Die  Zeile  »ProtectionKey«  (verfügbar  seit  Linux  4.9,  nur  x86)  enthält  den
              Speicherschutzschlüssel   (siehe  pkeys(7)),  der  dem  virtuellen  Speicherbereich
              zugeordnet ist. Dieser  Eintrag  ist  nur  vorhanden,  falls  der  Kernel  mit  der
              Konfigurationsoption CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS gebaut wurde.

              Die   Zeile  »VmFlags«  (verfügbar  seit  Linux  3.8)  stellt  die  dem  virtuellen
              Speicherbereich zugeordneten Kernelschalter  dar,  kodiert  mittels  der  folgenden
              zwei-Buchstaben-Codes:

                  rd  - lesbar
                  wr  - schreibbar
                  ex  - ausführbar
                  sh  - shared
                  mr  - könnte lesen
                  mw  - könne schreiben
                  me  - könnte ausführen
                  ms  - may share
                  gd  - stack segment grows down
                  pf  - reiner PFN-Bereich
                  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  - Auslagerungsbereich ist für den Bereich nicht reserviert
                  ht  - area uses huge tlb pages
                  nl  - non-linear mapping
                  ar  - architecture specific flag
                  dd  - Bereich nicht in den Kernspeicherabzug einschließen
                  sd  - soft-dirty flag
                  mm  - mixed map area
                  hg  - huge page advise flag
                  nh  - no-huge page advise flag
                  mg  - mergeable advise flag

              Die  Feld »ProtectionKey« enthält den Speicherschutzschlüssel (siehe pkeys(5)), der
              dem virtuellen Speicherbereich zugeordnet ist. Dieser Eintrag  ist  nur  vorhanden,
              falls         der         Kernel         mit        der        Konfigurationsoption
              CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS gebaut wurde (seit 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)
              Diese  Datei  stellt  eine  symbolische  Verfolgung  der  Funktionsaufrufe  in  dem
              Kernel-Stack dieses Prozesses bereit. Diese Datei wird  nur  bereitgestellt,  falls
              der Kernel mit der Konfigurationsoption CONFIG_STACKTRACE gebaut wurde.

              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  der
              Kernelquelldatei fs/proc/array.c definiert.

              Die    Felder    werden    in    dieser    Reihenfolge    mit    ihrem    passenden
              scanf(3)-Formatkennzeichnern 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 Prozesskennung.

              (2) comm  %s
                        Der Name der  ausführbaren  Datei,  in  Klammern.  Dies  wird  angezeigt,
                        unabhängig davon, ob das Programm ausgelagert ist oder nicht.

              (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  Gestoppt  (aufgrund  eines Signals) oder (vor Linux 2.6.33) Verfolgung
                           gestoppt

                        t  Verfolgung gestoppt (seit Linux 2.6.33)

                        W  Paging (nur vor 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 Prozesskennung (PID) des Elternprozesses dieses Prozesses.

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

              (6) session  %d
                        Die Sitzungskennung 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 Kennung 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
                        Die  Anzahl  geringfügiger  Ausnahmebehandlungen  des Prozesses, die kein
                        Nachladen einer Speicherseite von Platte erforderlich gemacht haben.

              (11) cminflt  %lu
                        Die  Anzahl  geringfügiger  Ausnahmebehandlungen  der  Kindprozesse   des
                        Prozesses, auf die der Prozess wartete.

              (12) majflt  %lu
                        Die  Anzahl  wesentlicher  Ausnahmebehandlungen  des  Prozesses,  die das
                        Nachladen einer Speicherseite von der Platte erforderten.

              (13) cmajflt  %lu
                        Die  Anzahl  wesentlicher  Ausnahmebehandlungen  der   Kindprozesse   des
                        Prozesses, auf die der Prozess wartete.

              (14) utime  %lu
                        Gesamtzeit,  die  dieser Prozess im Benutzermodus verbracht hat, gemessen
                        in Uhren-Ticks (dividieren Sie durch sysconf(_SC_CLK_TCK)).  Das  umfasst
                        Gastzeit,  guest_time (aufgewendete Zeit für den Betrieb einer virtuellen
                        CPU, siehe unten), so  dass  Anwendungen,  die  das  Gastzeit-Feld  nicht
                        kennen, diese Zeit in ihren Berechnungen nicht außer acht lassen.

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

              (16) cutime  %ld
                        Gesamtzeit,  die  abgewartete  Kindprozesse  im  Benutzermodus  verbracht
                        haben,     gemessen     in     Uhren-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 Uhren-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-Bereichs 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  Intervall-Timers
                        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 Uhren-Ticks  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     Uhren-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  Uhren-Ticks
                        (dividieren Sie durch sysconf(_SC_CLK_TCK)).

              (44) cguest_time  %ld  (seit Linux 2.6.24)
                        Gastzeit   der   Kindprozesse  des  Prozesses,  gemessen  in  Uhren-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]
                        Adresse, oberhalb derer der Heap von  Programmen  mit  brk(2)  ausgedehnt
                        werden kann.

              (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
                  CoreDumping:   0                       # 4.15
                  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
                  Speculation_Store_Bypass:       vulnerable
                  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: Gruppenkennung des Threads (d.h. die Prozesskennung).

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

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

              * PPid: PID des Elternprozesses.

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

              * Uid, Gid: reale, effektive, gespeicherte sowie Dateisystem-UIDs (GIDs).

              * FDSize: Anzahl der aktuell bereitgestellten Dateideskriptor-Slots.

              * Groups: ergänzende Gruppenliste.

              * NStgid:  Thread-Gruppenkennung  (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  Prozesses,  der  dieses  Procfs  eingehängt  hat  (oder  des
                Wurzelnamensraums,  falls  vom  Kernel  eingehängt),  gefolgt  von   den   Werten
                nachfolgend geschachtelter innerer Namensräume. (Seit Linux 4.1)

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

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

              * NSsid:  Sitzungskennung  der Nachkommens-Namensraum-Sitzungs-Kennungs-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(2)).

              * VmPin:  Größe  des  befestigten  Speichers  (seit Linux 3.2). Diese Seiten können
                nicht verschoben werden, da etwas den direkten Zugriff  auf  physischen  Speicher
                benötigt.

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

              * VmRSS:  Resident  set size. Beachten Sie, dass dieser Wert die Summe aus RssAnon,
                RssFile und RssShmem ist.

              * 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: Größe der Page Tables zweiter Stufe (in Linux 4.0 hinzugefügt, entfernt in
                Linux 4.15).

              * VmSwap:  ausgelagerte  virtuelle  Speichergröße  durch  anonyme  private   Pages;
                Shmem-Auslagerungsverwendung ist nicht enthalten (seit Linux 2.6.34).

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

              * CoreDumping:  Enthält  den Wert 1, falls der Prozess derzeit einen Speicherauszug
                durchführt und 0, falls nicht (seit Linux 4.15). Diese Information kann von einem
                Überwachungsprozess  verwandt  werden, um das Töten eines Prozesses zu vermeiden,
                der  derzeit  einen   Speicherauszug   durchführt,   wodurch   eine   beschädigte
                Speicherauszugsdatei (»core dump«) vermieden wird.

              * 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  Benutzerkennung  des  Prozesses
                beziehen.  Die  erste  davon  ist  die  Anzahl  der  derzeit in der Warteschlange
                befindlichen Signale für diese reale  Benutzerkennung  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: Maske (hexadezimal ausgedrückt)  der  insgesamt  für  Thread  und
                Prozess anstehenden Signale (siehe pthreads(7) und signal(7)).

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

              * CapInh,  CapPrm,  CapEff:  in   den   vererbbaren,   erlaubten   und   effektiven
                Capability-Mengen    aktivierte    Masken    (hexadezimal   ausgedrückt)   (siehe
                capabilities(7)).

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

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

              * NoNewPrivs: Wert des Bits no_new_privs (seit Linux 4.10, siehe 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.

              * Speculation_Store_Bypass:  Zustand der Abschwächung des Spekulationsdefekts (seit
                Linux 4.17, siehe prctl(2)).

              * Cpus_allowed: Hexadezimale 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 vorhergehende, 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)
              Dieses Verzeichnis enthält ein Unterverzeichnis für jeden Thread  in  dem  Prozess.
              Der  Name  jedes  Unterverzeichnisses ist die numerische Thread-Kennung ([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)
              Eine  durch  Leerzeichen  getrennte Liste von Kindprozessen dieses Prozesses. Jeder
              Kindprozess wird durch seine TID dargestellt.

              Diese Option ist für die  Verwendung  durch  das  Prüfpunktwiederherstellungssystem
              (Checkpoint/Restore  In  Userspace/CRIU)  gedacht  und  stellt nur verlässlich eine
              Liste von Kindprozessen bereit, falls alle Kindprozesse gestoppt  oder  eingefroren
              sind. Sie funktioniert nicht richtig, falls Kindprozesse des Ziel-Tasks während des
              Lesens der Datei beendet werden. Kindprozesse, die enden, können dazu führen,  dass
              nicht  endende  Kindprozesse  in  der  Liste  weggelassen  werden. Dies macht diese
              Schnittstelle   sogar   noch   unzuverlässiger   als   herkömmliche    PID-basierte
              Herangehensweisen,   wenn   der  untersuchte  Task  und  seine  Kindprozesse  nicht
              eingefroren sind und der meiste  Code  sollte  wahrscheinlich  diese  Schnittstelle
              nicht benutzen.

              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)
              Eine  Liste  der  POSIX-Timer  für diesen Prozess. Jeder Timer wird mit einer Zeile
              aufgeführt, die mit der Zeichenkette »ID:« beginnt, beispielsweise:

                  ID: 1
                  signal: 60/00007fff86e452a8
                  notify: signal/pid.2634
                  ClockID: 0
                  ID: 0
                  signal: 60/00007fff86e452a8
                  notify: signal/pid.2634
                  ClockID: 1

              Die gezeigten Zeilen für jeden Timer haben die folgenden Bedeutungen:

              ID     Die Kennung für diesen Timer. Dies ist nicht  mit  der  von  timer_create(2)
                     zurückgelieferten  Timer-Kennung  identisch.  Stattdessen ist es die gleiche
                     Kernel-interne Kennung, die  mittels  des  Feldes  si_timerid  der  Struktur
                     siginfo_t verfügbar ist (siehe sigaction(2)).

              signal Dies   ist   die   Signalnummer,  die  dieser  Timer  zur  Auslieferung  von
                     Benachrichtigungen verwendet. Ihr folgt ein Schrägstrich und  dann  der  dem
                     Signal-Handler  übergebene  Wert  sigev_value.  Gültig  nur  für  Timer, die
                     mittels Signal benachrichtigen.

              notify Der Teil vor dem Schrägstrich legt den Mechanismus fest,  den  dieser  Timer
                     zur  Auslieferung  von  Nachrichten  verwendet.  Er  ist  entweder »thread«,
                     »signal«  oder  »none«.  Direkt  nach  dem  Schrägstrich  ist  entweder  die
                     Zeichenkette  »tid«  für  Timer  mit SIGEV_THREAD_ID-Benachrichtigungen oder
                     »pid« für Timer, die mittels andere Mechanismen  benachrichtigen.  Nach  dem
                     ».«  folgt  die  PID  des  Prozesses  (oder  der  Kernel-Thread-Kennung  des
                     Threads),   der   ein   Signal   geliefert   bekommt,   falls   der    Timer
                     Benachrichtigungen über ein Signal ausliefert.

              ClockID
                     Dieses  Feld  identifiziert  die  Uhr,  die  der  Timer  für die Zeitmessung
                     verwendet. Für die meisten Uhren ist dies  eine  Zahl,  die  auf  einen  der
                     Konstanten   der   Anwendungsebene   CLOCK_*  passt,  die  mittels  <time.h>
                     offengelegt werden. CLOCK_PROCESS_CPUTIME_ID-Timer zeigen mit einem Wert  -6
                     in  diesem  Feld.  CLOCK_THREAD_CPUTIME_ID-Timer zeigen mit einem Wert -2 in
                     diesem Feld.

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

       /proc/[PID]/timerslack_ns (seit Linux 4.6)
              Diese Datei legt den »derzeitigen« Spielraum des Timers ausgedrückt in Nanosekunden
              offen. Diese Datei ist schreibbar, wodurch das Ändern  des  Spielraums  des  Timers
              möglich  ist.  Wird  0  in  diese  Datei  geschrieben,  wird  der Spielraum auf den
              »Standard«-Spielraum des Timers zurückgesetzt. Weitere Einzelheiten finden  Sie  in
              der Besprechung von PR_SET_TIMERSLACK in prctl(2).

              Ursprünglich   wurde   die   Zugriffsberechtigung   für   diese   Datei  über  eine
              Ptrace-Zugriffsmodusprüfung PTRACE_MODE_ATTACH_FSCREDS geregelt (siehe  ptrace(2)).
              Allerdings wurde dies nachfolgend als zu strenge Anforderung erachtet (und es hatte
              den  Seiteneffekt,  dass  die  Notwendigkeit  für  einen  Prozess,  die  Capability
              CAP_SYS_PTRACE  zu  haben,  auch  dazu führte, dass er den Speicher jedes Prozesses
              lesen und verändern konnte).  Daher  wird  seit  Linux  4.9  nur  die  (schwächere)
              Capability CAP_SYS_NICE für den Zugriff auf diese Datei benötigt.

       /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/[TID]
              Dies ist ein numerisches Unterverzeichnis für  jeden  der  laufenden  Threads,  der
              nicht  Thread-Gruppenleiter  ist (d.h. einem Thread, dessen Thread-Kennung nicht zu
              der Prozesskennung identisch ist). Das Unterverzeichnis ist nach der Thread-Kennung
              benannt.  Jedes  dieser  Unterverzeichnisse enthält Dateien und Unterverzeichnisse,
              die Informationen über den  Thread  mit  der  Thread-Kennung  tid  offenlegen.  Die
              Inhalte  dieser  Verzeichnisse  sind  identisch  zu den Inhalten der entsprechenden
              /proc/[pid]/task/[TID]-Verzeichnisse.

              Die Unterverzeichnisse /proc/[TID] sind beim Durchlauf durch /proc mit  getdents(2)
              nicht  sichtbar  (und  daher nicht sichtbar, wenn ls(1) zur Anzeige der Inhalte von
              /proc verwandt wird). Allerdings sind die Pfadnamen dieser  Verzeichnisse  sichtbar
              (d.h als Argumente benutzbar in) Systemaufrufen, die auf diesen Pfadnamen arbeiten.

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

       /proc/buddyinfo
              Diese     Datei     enthält     Informationen,     die     zur     Diagnose     von
              Speicherfragmentierungsproblemen  verwandt  werden.  Jede  Zeile  beginnt  mit  der
              Kennzeichnung des Knotens und dem Name der Zone, die zusammen einen Speicherbereich
              identifizieren.  Dies  wird  von  der  Anzahl der verfügbaren Stücke (Chunks) einer
              bestimmten Ordnung, in die diese Zonen geteilt sind, gefolgt. Die  Größe  in  Bytes
              einer bestimmten Ordnung wird von der folgenden Formel bestimmt:

                  (2^Ordnung) * PAGE_SIZE

              Der  binäre  Buddy-Speicherverwaltungsalgorithmus  innerhalb  des  Kernels wird ein
              Stück in zwei  Stücke  einer  geringeren  Ordnung  (daher  mit  der  halben  Größe)
              unterteilen  oder  zwei  angrenzende  Stück  in  ein größeres Stück höherer Ordnung
              (daher mit der doppelten Größe) kombinieren, um Reservierungsanfragen  zu  erfüllen
              und  um  Speicherfragmentierung  etwas entgegenzusetzen. Die Ordnung entspricht der
              Spaltennummer, wenn mit dem Zählen bei Null begonnen wird.

              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 diesem Beispiel gibt es einen Knoten, der drei Zonen  enthält  und  es  gibt  11
              verschiedene  Stückgrößen.  Falls  die Seitengröße 4 Kilobyte beträgt, dann hat die
              erste Zone, genannt DMA, (auf X86 die ersten 16 Megabyte an Speicher) ein Stück von
              4  Kilobyte  (Ordnung  0)  verfügbar  und  hat 3 Stücke von 4 Megabyte (Ordnung 10)
              verfügbar.

              Falls der Speicher stark fragmentiert ist, werden die  Zähler  für  Stücke  höherer
              Ordnung   Null   sein  und  Zuweisungen  von  großen,  zusammenhängenden  Bereichen
              fehlschlagen.

              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  Kerneldokumentation  zum  Thema Linux Kernel Crypto API, die
              unterhalb    des    Kernelquellbaumverzeichnisses    Documentation/crypto/    (oder
              Documentation/DocBook  vor  4.10)  verfügbar ist. (Die 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   Plattengerät.   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
              Liste der Ausführungsdomänen (ABI-Personalitäten).

       /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           Laufwerkeinstellungen
                  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  zu
              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 Debug-Symbolen
              (/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
              4 KiB.

       /proc/keys (seit Linux 2.6.10)
              Siehe keyrings(7).

       /proc/key-users (seit Linux 2.6.10)
              Siehe 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/kpagecgroup (seit Linux 4.3)
              Diese Datei enthält 64-Bit-Inode-Nummern der Speicher-Cgroup, auf  die  jede  Seite
              berechnet   wird.  Sie  ist  durch  die  Seitenrahmennummer  indiziert  (siehe  die
              Erörterung von /proc/[PID]/pagemap).

              Die    Datei    /proc//proc/kpagecgroup    ist    nur    vorhanden,    wenn     die
              Kernel-Konfigurationsoption CONFIG_MEMCG aktiviert ist.

       /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)
              Diese Datei enthält 64-Bit-Masken, die jedem physischen Seitenrahmen  (page  frame)
              entsprechen.  Sie  ist durch die Seitenrahmennummer indiziert (siehe die Erörterung
              von /proc/[PID]/pagemap). Die Bits sind wie folgt:

                   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)
                  17 - 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)
                  23 - KPF_BALLOON        (seit Linux 3.18)
                  24 - KPF_ZERO_PAGE      (seit Linux 4.0)
                  25 - KPF_IDLE           (seit Linux 4.3)

              Für weitere Details zur  Bedeutung  dieser  Bits  lesen  Sie  die  Kernelquelldatei
              Documentation/admin-guide/mm/pagemap.rst.     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  sie  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 aktuelle Datei-Sperren (flock(2)  und  fcntl(2))  und  -Ausleihen
              (fcntl(2)) an.

              Ein Beispiel für den Inhalt in dieser Datei wird nachfolgend gezeigt:

                  1: POSIX  ADVISORY  READ  5433 08:01:7864448 128 128
                  2: FLOCK  ADVISORY  WRITE 2001 08:01:7864554 0 EOF
                  3: FLOCK  ADVISORY  WRITE 1568 00:2f:32388 0 EOF
                  4: POSIX  ADVISORY  WRITE 699 00:16:28457 0 EOF
                  5: POSIX  ADVISORY  WRITE 764 00:16:21448 0 0
                  6: POSIX  ADVISORY  READ  3548 08:01:7867240 1 1
                  7: POSIX  ADVISORY  READ  3548 08:01:7865567 1826 2335
                  8: OFDLCK ADVISORY  WRITE -1 08:01:8713209 128 191

              Die gezeigten Felder in jeder Zeile sind wie folgt:

              (1) Die ordinale Position der Sperre in der Liste.

              (2) Der Sperrtyp. Folgende Werte können hier u.A. erscheinen:

                  FLOCK  Dies ist eine mittels flock(2) erstellte BSD-Sperrdatei.

                  OFDLCK Dies  ist  eine  mittels fcntl(2) erstellte offene Dateideskriptorsperre
                         (OFD).

                  POSIX  Dies ist eine mittels fcntl(2) erstellte POSIX-Byte-Bereichssperre.

              (3) Unter den hier auftretenden Zeichenketten sind auch die folgenden:

                  ADVISORY
                         Dies ist eine empfohlene Sperre.

                  MANDATORY
                         Dies ist eine Pflichtsperre.

              (4) Die Art der Sperre. Folgende Werte können hier auftauchen:

                  READ   Dies  ist  eine  POSIX-  oder  OFD-Lesesperre   oder   eine   gemeinsame
                         BSD-Sperre.

                  WRITE  Dies   ist  eine  POSIX-  oder  OFD-Schreibsperre  oder  eine  exklusive
                         BSD-Sperre.

              (5) die PID des Prozesses, der die Sperre besitzt,

                  Da OFD-Sperren nicht einem einzelnen Prozess gehören (da mehrere Prozesse  über
                  Dateideskriptoren   verfügen   können,   die   sich   auf  die  gleiche  offene
                  Dateideskription beziehen), wird in diesem Feld der  Wert  -1  für  OFD-Sperren
                  angezeigt. (Vor Kernel 4.14 wurde durch einen Fehler die PID des Prozesses, der
                  ursprünglich die Sperre erwarb, statt des Wertes -1 angezeigt.)

              (6) Drei Doppelpunkt-getrennte Unterlisten, die die Major- und  Minor-Gerätekennung
                  des  Geräts,  das  das  Dateisystem  enthält,  auf dem sich die gesperrte Datei
                  befindet, gefolgt von der Inode-Nummer der gesperrten Datei.

              (7) Der Byte-Versatz des ersten Bytes der Sperre. Für BSD-Sperren ist  dieser  Wert
                  immer 0.

              (8) Der  Byteversatz  des letzten Bytes der Sperre. EOF im Feld bedeutet, dass sich
                  die Sperre bis zum Ende der Datei ausdehnt. Für BSD-Sperren ist der  angezeigte
                  Wert immer EOF.

              Seit  Linux  4.9  wird die Liste der in /proc/locks gezeigten Sperren gefiltert, um
              nur die Sperren für die Prozesse in dem PID-Namensraum  (siehe  pid_namespaces(7)),
              für den das Dateisystem /proc eingehängt worden war, anzuzeigen. (Im ursprünglichen
              PID-Namensraum gibt es keine Filterung der in dieser Datei angezeigten Datensätze.)

              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
              Diese  Datei  berichtet Statistiken über die Speicherverwendung auf dem System. Sie
              wird von free(1) benutzt, um den freien und benutzen (sowohl  physischen  als  auch
              Auslagerungs-)Speicher  auf  dem System zu berichten, sowie den gemeinsam benutzten
              Speicher und die vom Kernel benutzten Puffer. Jede  Zeile  der  Datei  besteht  aus
              einem  Parameternamen,  gefolgt  von einem Doppelpunkt, dem Wert des Parameters und
              einer Maßeinheit der Option (z.B. »kB«).  Die  nachfolgende  Liste  beschreibt  die
              Parameternamen  und  die  Formatkennzeichner, die zum Lesen des Feldwertes benötigt
              wird. Außer falls unten angegeben sind alle  Felder  seit  mindestens  Linux  2.6.0
              vorhanden.  Einige  Felder  werden  nur  angezeigt, falls der Kernel mit bestimmten
              Optionen konfiguriert wurde, diese Abhängigkeiten sind in der Liste vermerkt.

              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)
                     Eine  Abschätzung,  wieviel Speicher zum Starten neuer Anwendungen verfügbar
                     ist, ohne auszulagern.

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

              Cached %lu
                     Speicherinterner  Zwischenspeicher  für  von  Platte  gelesene  Dateien (der
                     Seiten-Zwischenspeicher). Enthält SwapCached nicht.

              SwapCached %lu
                     Speicher, der schon ausgelagert war, und wieder hereingelagert  wurde,  aber
                     noch in der Auslagerungsdatei ist. (Falls der Speicherdruck hoch ist, müssen
                     diese Seiten  nicht  wieder  ausgelagert  werden,  da  sie  bereits  in  der
                     Auslagerungsdatei sind. Dies spart E/A).

              Active %lu
                     Speicher,   der   kürzlich  verwandt  wurde  und  normalerweise  noch  nicht
                     zurückgefordert wurde, falls nicht absolut notwendig.

              Inactive %lu
                     Speicher, der nicht kürzlich verwandt wurde. Er ist für Rückforderungen  für
                     andere Zwecke geeigneter.

              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
                     (Beginnend  mit  Linux 2.6.19 wird CONFIG_HIGHMEM benötigt). Gesamtmenge von
                     Highmem. Highmem ist aller Speicher oberhalb ~860 MB  physischen  Speichers.
                     Highmem-Bereiche    können    von    Anwendungsprogrammen   oder   für   den
                     Seiten-Zwischenspeicher verwandt werden. Der Kernel muss Tricks zum  Zugriff
                     auf  diesen Speicher verwenden, wodurch der Zugriff langsamer als bei Lowmem
                     ist.

              HighFree %lu
                     (Beginnend mit Linux 2.6.19 wird CONFIG_HIGHMEM benötigt) Menge  des  freien
                     Highmems.

              LowTotal %lu
                     (Beginnend  mit  Linux  2.6.19  wird CONFIG_HIGHMEM benötigt) Gesamtmenge an
                     Lowmem. Lowmem ist Speicher, der  für  alles  verwandt  werden  kann,  wofür
                     Highmem  verwandt werden kann, er ist aber auch für die Verwendung durch den
                     Kernel für seine eigenen Datenstrukturen verfügbar. Unter anderem wird  hier
                     heraus  Slab  zugewiesen.  Schlimme  Dinge passieren, falls kein Lowmem mehr
                     verfügbar ist.

              LowFree %lu
                     (Beginnend mit Linux 2.6.19 wird CONFIG_HIGHMEM benötigt) Menge  des  freien
                     Lowmems.

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

              SwapTotal %lu
                     Gesamtmenge des verfügbaren Auslagerungsbereichs.

              SwapFree %lu
                     Größe des derzeit ungenutzten Auslagerungsbereichs.

              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.

              KReclaimable %lu (seit Linux 4.20)
                     Kernelzuweisungen,   die   der   Kernel   versuchen   wird,   im  Falle  von
                     Speicherknappheit   zurückzuverlangen.    Schließt    SReclaimable    (siehe
                     nachfolgend) und andere direkte Zuweisungen mit einem Verkleinerer ein.

              Slab %lu
                     Zwischenspeicher für In-Kernel-Datenstrukturen. (siehe 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)
                     Menge des Speichers, der der niedrigsten Stufe der Seitentabellen zugeordnet
                     ist.

              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)
                     Speicher, der für Blockgerät-»bounce buffer« verwendet wird.

              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.rst.

              Committed_AS %lu
                     Die derzeit im System  belegte  Speichermenge.  Der  gebundene  (»commited«)
                     Speicher  ist  die  Summe des Speichers, der vom Prozess belegt wird, selbst
                     wenn der noch nicht durch ihn  »verwandt«  wurde.  Ein  Prozess,  der  1  GB
                     Speicher  (mittels  malloc(3)  oder ähnlichem) belegt, aber nur 300 MB davon
                     anrührt, wird mit 300  MB  an  Speicher  angezeigt,  selbst  wenn  er  einen
                     Adressraum für das gesamte 1 GB belegt hat.

                     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. Seit Linux 4.4 wird dieses Feld  nicht
                     mehr berechnet und ist auf 0 hartkodiert. Siehe /proc/vmallocinfo.

              VmallocChunk %lu
                     Größter  zusammenhängender freier Vmalloc-Bereichsblock. Seit Linux 4.4 wird
                     dieses  Feld  nicht  mehr  berechnet  und  ist  auf  0  hartkodiert.   Siehe
                     /proc/vmallocinfo.

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

              LazyFree %lu (seit Linux 4.12)
                     Zeigt die Menge des durch madvise(2) als MADV_FREE markierten Speichers.

              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  wird  benötigt.)   Von   gemeinsam   benutztem
                     Speicher   (shem)   benutzter   Speicher   und   mit  großen  Speicherseiten
                     reserviertes tmpfs(5).

              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)
                     Gesamte   CMA-   (Contiguous  Memory  Allocator)  Seiten.  (CONFIG_CMA  wird
                     benötigt.)

              CmaFree %lu (seit Linux 3.1)
                     Freie CMA- (Contiguous Memory Allocator) Seiten. (CONFIG_CMA wird benötigt.)

              HugePages_Total %lu
                     (CONFIG_HUGETLB_PAGE wird benötigt.)  Die  Größe  der  Sammlung  der  großen
                     Speicherseiten.

              HugePages_Free %lu
                     (CONFIG_HUGETLB_PAGE wird benötigt.) Die Anzahl der großen Speicherseiten in
                     der Sammlung, die noch nicht reserviert worden sind.

              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  wird  benötigt.)  Dies  ist  die  Anzahl   an   großen
                     Speicherseiten     in     der    Sammlung    oberhalb    des    Wertes    in
                     /proc/sys/vm/nr_hugepages.  Die  maximale  Anzahl  an  zusätzlichen   großen
                     Speicherseiten wird durch /proc/sys/vm/nr_overcommit_hugepages gesteuert.

              Hugepagesize %lu
                     (CONFIG_HUGETLB_PAGE wird benötigt.) Die Größe der großen Speicherseiten.

              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 aktuell 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/x86/mtrr.txt (oder Documentation/mtrr.txt vor Linux 2.6.28).

       /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

              Here "IP address" is the IPv4 address of the machine  and  the  "HW  type"  is  the
              hardware  type of the address from RFC 826. The flags are the internal flags of the
              ARP structure (as defined in /usr/include/linux/if_arp.h) and the "HW  address"  is
              the data link layer mapping for that IP address if it is known.

       /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«  sind  aus-  und  eingehenden  Datenwarteschlangen  bezüglich  der
              Kernelspeicherverwendung. 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 UDP-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«  sind  aus-  und  eingehenden  Datenwarteschlangen  bezüglich  der
              Kernelspeicherverwendung. 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 Inode Path
  0: 00000002 00000000 00000000 0001 03    42
  1: 00000001 00000000 00010000 0001 01  1948 /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.

              Inode:    Die Inode-Nummer des Sockets.

              Path:     Der gebundene Pfadname (falls vorhanden)  des  Sockets.  Sockets  in  dem
                        abstrakten  Namensraum  sind  Teil  der  Liste  und werden mit einem Path
                        angezeigt, der mit dem Zeichen »@« beginnt.

       /proc/net/netfilter/nfnetlink_queue
              Diese    Datei    enthält    Informationen    über    den    Umgang     mit     der
              Netfilter-Anwendungsebene-Warteschlange,  falls  diese  benutzt  wird.  Jede  Zeile
              stellt eine Warteschlange dar. Warteschlangen,  die  von  der  Anwendungsebene  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 die Anwendungsebene kopieren).

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

              (6)  in  Warteschlange  weggelassen.  Die  Anzahl  der  Pakete,  die   vom   Kernel
                   weggelassen werden mussten, da bereits zu viele Pakete darauf warten, dass ein
                   Anwendungsprogramm   die   verpflichtenden    Akzeptier-/Verwerfentscheidungen
                   zurückliefert.

              (7)  in  Warteschlange  durch  Benutzer  weggelassen.  Die  Anzahl  der Pakete, die
                   innerhalb des Netlink-Untersystems weggelassen werden mussten. Diese entfallen
                   normalerweise,   wenn   der   entsprechende   Socket-Puffer   voll  ist,  d.h.
                   Benutzeranwendungen nicht schnell genug sind, die Meldungen zu lesen.

              (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 auszuschalten.

       /proc/scsi/scsi
              Dies ist eine Liste aller SCSI-Geräte, die dem Kernel bekannt sind. Sie ähnelt der,
              die  beim  Hochfahren  des  Rechners zu sehen ist. 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 kann Root Bus-Verklemmungen (bus lockups)
              steuern, 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
              Informationen über Kernel-Zwischenspeicher. Siehe slabinfo(5) für Details.

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

              cpu 10132153 290696 3084719 46828483 16683 0 25195 0 175628 0
              cpu0 1393280 32966 572056 13343292 6130 0 17875 0 23933 0
                     Die   Zeitdauer   (gemessen   in  USER_HZ,  auf  den  meisten  Architekturen
                     Hundertstelsekunden,    ermitteln    Sie    den    richtigen    Wert     mit
                     sysconf(_SC_CLK_TCK)),  die  das System (»cpu«-Zeile) oder die spezielle CPU
                     (»cpuN«-Zeile) in verschiedenen Status verbracht hat:

                     user   (1) Zeit, die auf der Anwendungsebene verbracht wurde.

                     nice   (2) Zeit, die auf der Anwendungsebene mit niedriger Priorität  (nice)
                            verbracht wurde.

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

                     idle   (4)  Im  Leerlaufprozess  verbrachte Zeit. Dieser Wert sollte USER_HZ
                            mal den zweiten Eintrag in der Pseudo-Datei /proc/uptime sein.

                     iowait (seit Linux 2.5.41)
                            (5) Zeit, die für den  Abschluss  der  E/A  wartend  verbracht  wird.
                            Dieser Wert ist aus den folgenden Gründen nicht zuverlässig:

                            1. Die  CPU wartet nicht, dass E/A abgeschlossen wird; Iowait ist die
                               Zeit, die ein Prozess auf den Abschluss von E/A wartet. Wenn  eine
                               CPU  aufgrund  ausstehender Prozess-E/A in den Leerlauf geht, wird
                               ein anderer Prozess auf der CPU eingeplant.

                            2. Auf einer  Mehrkern-CPU  läuft  der  auf  den  Abschluss  von  E/A
                               wartende Prozess auf keiner CPU, so dass die Berechnung von Iowait
                               für jede CPU schwierig ist.

                            3. Der Wert in diesem Feld kann unter gewissen Umständen abnehmen.

                     irq (seit Linux 2.6.0)
                            (6) Zeit, die zum Ausliefern von Interrupts verbracht wurde.

                     softirq (seit Linux 2.6.0
                            (7) Zeit, die zum Ausliefern von Softirqs verbracht wurde.

                     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  Auslagerungsseiten,  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 Systemstarts, 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).

              softirq 229245889 94 60001584 13619 5175704 2471304 28 51212741 59130143 0 51240672
                     Diese Zeile zeigt die Anzahl von Softirqs für alle CPUs.  Die  erste  Spalte
                     ist  die  Gesamtsumme  aller  Softirqs  und jede nachfolgende Spalte ist die
                     Gesamtsumme für einen bestimmten Softirq (2.6.31 aufwärts).

       /proc/swaps
              Genutzte Auslagerungsbereiche; 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.

              Werte  vom Typ Integer oder Long können entweder in dezimaler oder in hexadezimaler
              Schreibweise (z.B. 0x3FFF) geschrieben werden. Beim Schreiben von  mehreren  Werten
              vom  Typ  Integer  oder Long können diese durch eines der folgenden Leerraumzeichen
              getrennt werden: » «, »\t« oder »\n«. Die Verwendung anderer Trennzeichen führt zum
              Fehler 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
              der       Datei       Documentation/admin-guide/binfmt-misc.rst       (oder      in
              Documentation/binfmt_misc.txt auf älteren Kerneln) 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, wenn 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 die 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
              Diese   (nur   lesbare)   Datei  enthält  drei  Zahlen:  die  Anzahl  der  belegten
              Datei-Handles (d.h. die Anzahl der derzeit offenen Dateien); die Anzahl der  freien
              Datei-Handles  und  die maximale Anzahl an Datei-Handles (d.h. der gleiche Wert wie
              /proc/sys/fs/file-max).  Falls  die  Anzahl  an  belegten  Datei-Handles  nahe  dem
              Maximalwert  ist, sollten Sie in Betracht ziehen, das Maximum zu erhöhen. Vor Linux
              2.6 belegte der Kernel Datei-Handles dynamisch, aber gab  sie  nicht  wieder  frei.
              Stattdessen  wurden  die  freien  Datei-Handles  in  einer  Liste  zur  Neubelegung
              verwaltet, der Wert »free file handles« zeigt die Größe dieser Liste an. Ein  große
              Anzahl  an  freien  Datei-Handles  zeigt  an,  dass  es  in  der Vergangenheit eine
              Benutzungsspitze für offene Datei-Handles gab.  Seit  Linux  2.6  gibt  der  Kernel
              freigegebene  Datei-Handles  wieder frei und der Wert »free file handles« ist immer
              Null.

       /proc/sys/fs/inode-max (nur bis Linux 2.2 vorhanden)
              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 Zahlen: 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 ist von Null verschieden, wenn nr_inodes > inode-max und das  System  die
              Inode-Liste  abschneiden  muss,  statt mehr zu belegen; seit Linux 2.4 ist das Feld
              ein Blindwert (immer Null).

       /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  Dateiausleihe  (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 die Ausleihe nicht entfernt oder herabstuft, wird der Kernel
              die Ausleihe zwangsweise zurückziehen.

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

       /proc/sys/fs/mount-max (seit Linux 4.9)
              Der  Wert  in  dieser  Datei legt die maximale Anzahl an Einhängungen, die in einem
              Einhängenamensraum existieren dürfen, fest. Der Vorgabewert ist 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 ihr Modus-Bit »set-user-ID« aktiviert;

                  •  die  Zieldatei  hat  nicht  sowohl  ihr  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).

              Der  Vorgabewert  in  dieser  Datei  ist 0. Durch Setzen des Wertes auf 1 wird eine
              lange  existierende  Klasse   von   Sicherheitsproblemen   durch   hardlinkbasierte
              Prüfungszeitpunkt-Nutzungszeitpunkt-Ressourcenwettläufe verhindert, die meistens in
              weltschreibbaren  Verzeichnissen  wie   /tmp   beobachtet   wird.   Die   häufigste
              Ausnutzungsmethode  dieses  Problems  besteht darin, Privilegiengrenzen beim Folgen
              eines gegebenen harten Links zu überschreiten (d.h. ein  Root-Prozess  folgt  einem
              harten  Link,  den  ein  anderer Benutzer erstellt hat). Zusätzlich verhindert dies
              unberechtigte Benutzer auf Systemen ohne separierte Partitionen  vom  »Festklemmen«
              verwundbarer   set-user-ID-  und  set-group-ID-Dateien  gegen  Upgrades  durch  den
              Administrator oder dem Linken auf besondere Dateien.

       /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,  wird  symbolischen  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);

              *  der Link ist nicht in einem weltschreibbaren Verzeichnis mit Sticky-Bit; oder

              *  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)
              Der  Wert  in  dieser  Datei  wird  dem  Schalter  »dumpable« unter den in prctl(2)
              beschriebenen Umständen zugewiesen. Der Wert dieser Datei bestimmt schließlich,  ob
              Speicherabbilder  (Core-Dump-Dateien)  für  Set-User-ID-Programme  oder anderweitig
              geschützte/unsaubere Binärprogramme  erzeugt  werden.  Die  Einstellung  »dumpable«
              betrifft  auch  die  Eigentümerschaft  von Dateien im Verzeichnis /proc/[PID] eines
              Prozesses, wie oben beschrieben.

              Es können drei verschiedene Ganzzahlwerte festgelegt werden:

              0 (Standard)
                     0 (Standard) Das bewirkt das traditionelle Verhalten (vor Linux 2.6.13). Ein
                     Kernspeicherabzug  wird  nicht  für  Prozesse  erzeugt,  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  Kernspeicherabzug  aus,  wenn  möglich.  (Gründe,
                     warum  ein Prozess dennoch keinen Kernspeicherabzug ausgibt, sind in core(5)
                     beschrieben.) Der Kernspeicherabzug 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 Abzug  erzeugt
                     würde  (siehe  »0«  oben),  wird  ein  nur  für Root lesbarer Abzug erzeugt.
                     Dadurch kann der Benutzer die Kernspeicherabzugsdatei  entfernen,  sie  aber
                     nicht  lesen.  Aus  Sicherheitsgründen  überschreiben  Kernspeicherabzüge in
                     diesem Modus keine anderen Abzüge oder Dateien. Dieser  Modus  eignet  sich,
                     wenn Administratoren 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   Kernspeicherabzug
                     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
              Dieses  Verzeichnis  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  Prozent  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  Nackengriff™ ein
              sofortiger  Neustart  sein,   ohne   auch   nur   seine   schmutzigen   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  Syslogs  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  den  Rechnernamen
              »darkstar«  und  den  DNS-Domainnamen (Internet Domain Name Server) »frop.org« hat,
              der nicht mit den Domainnamen von NIS (Network Information Service) oder YP  (Gelbe
              Seiten) verwechselt werden darf. Diese beiden Domainnamen sind in der Regel anders.
              Für eine ausführliche Diskussion siehe die Handbuchseite hostname(1).

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

       /proc/sys/kernel/htab-reclaim (vor Linux 2.4.9.2)
              (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/*
              Dieses Verzeichnis enthält verschiedene Dateien, die Parameter und Begrenzungen für
              die Schlüsselverwaltungseinrichtung definieren. Diese Dateien werden in keyrings(7)
              beschrieben.

       /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 des Formatkennzeichners %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 des  Formatkennzeichners  %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  Pfadnamen  zum  Programm,  das  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 vorhanden).

       /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/ns_last_pid (seit Linux 3.3)
              Siehe pid_namespaces(7).

       /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;  dieser  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  (Seit  Linux 2.6.25) Speicherverwürfelung wird auch unterstützt. Dieser Wert ist
                 die Vorgabe, falls der Kernel nicht mit CONFIG_COMPAT_BRK konfiguriert wurde.

       /proc/sys/kernel/real-root-dev
              Diese        Datei        wird        in        der         Linux-Kernel-Quelldatei
              Documentation/admin-guide/initrd.rst (oder Documentation/initrd.txt vor Linux 4.10)
              beschrieben.

       /proc/sys/kernel/reboot-cmd (nur Sparc)
              Diese  Datei  scheint   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 (seit Linux 2.6.23)
              Falls  diese  Datei  den Wert Null enthält, dann wird der Elternprozess zuerst nach
              einem fork(2) auf der CPU eingeplant. Andernfalls wird das Kind zuerst auf der  CPU
              eingeplant.   (Auf   einem   Mehrprozessorsystem   können   natürlich   sowohl  der
              Elternprozess als auch das Kind sofort auf einer CPU eingeplant werden.)

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

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

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

       /proc/sys/kernel/seccomp (seit Linux 4.14)
              Dieses Verzeichnis stellt zusätzliche  Seccomp-Informationen  und  -konfigurationen
              bereit. Siehe seccomp(2) für weitere Details.

       /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 ändern, 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)
              Falls   diese   Datei   auf   1  gesetzt  wird,  werden  alle  gemeinsam  benutzten
              System-V-Speichersegmente für die Zerstörung, sobald  die  Anzahl  der  angehängten
              Prozesse  auf  Null fällt, markiert. Mit anderen Worten, es ist nicht mehr möglich,
              dass gemeinsam  benutzte  Speichersegmente  unabhängig  von  angehängten  Prozessen
              existieren.

              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.

              Wird diese Datei  auf  1  gesetzt,  ist  es  möglich,  sicherzustellen,  dass  alle
              gemeinsam  benutzten  System-V-Speichersegmente  beim  Ressourcenverbrauch  und den
              Ressourcenbegrenzungen bei mindestens einem Prozess  berücksichtigt  werden  (siehe
              die Beschreibung von RLIMIT_AS in getrlimit(2)).

              Da  durch Setzen der Datei auf 1 ein nicht standardisiertes Verhalten hervorgerufen
              wird und auch bestehende Anwendungen dadurch beschädigt  werden  könnten,  ist  der
              Vorgabewert in dieser Datei 0. Setzen Sie diese Datei nur auf 1, wenn Sie ein gutes
              Verständnis   der   Semantik    der    Anwendungen,    die    gemeinsam    benutzte
              System-V-Speichersegmente auf Ihrem System benutzen, haben.

       /proc/sys/kernel/shmall (seit Linux 2.2)
              Diese  Datei  enthält  die  systemweite  Grenze  für  die  Gesamtzahl der Seiten im
              gemeinsam benutzten System-V-Speicher.

       /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 1 GB unterstützt. Dieser Wert  ist  per  Vorgabe
              SHMMAX.

       /proc/sys/kernel/shmmni (seit Linux 2.4)
              Diese  Datei  spezifiziert  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   Schreibzugriffe
                  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 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  aktiviert Speicherauszüge von Prozessen zur Fehlersuche usw.
                    16  aktiviert den Befehl »sync«
                    32  aktiviert das nur lesende erneute Einhängen
                    64  aktiviert das Signalisieren von Prozessen (term, kill, oom-kill)
                   128  erlaubt Neustarten/Ausschalten
                   256  Erlaubt die Veränderungen des Nice-Werts von Echtzeitprozessen

              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/admin-guide/sysrq.rst        (oder
              Documentation/sysrq.txt vor Linux 4.10).

       /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
              (Prozesse) 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 Netzwerkkram. Erklärungen  für  einige  der  Dateien  in
              diesem Verzeichnis finden Sie in tcp(7) und 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 (seit Linux 4.9)
              Siehe 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 (seit Linux 3.10)
              Diese Datei definiert die Menge an freiem Speicher (in KiB) auf dem System, der für
              Benutzer mit der Capability CAP_SYS_ADMIN reserviert werden sollte.

              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).

              Die Änderung des Wertes in dieser Datei tritt in Kraft, wann immer  eine  Anwendung
              Speicher anfordert.

       /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)
              Das  Schreiben  in  diese  Datei  veranlasst  den Kernel, saubere Zwischenspeicher,
              Dentries und Inodes aus dem Speicher zu verwerfen, was dazu  führt,  dass  Speicher
              frei  wird.  Dies  kann  für das Testen der Speicherverwaltung und der Durchführung
              reproduzierbarer Dateisystembewertungen nützlich sein. Da das  Schreiben  in  diese
              Datei dazu führt, dass die Vorteile der Zwischenspeicherung verloren gehen, kann es
              die Leistung des gesamten Systems vermindern.

              Zur Freigabe des Seitenzwischenspeichers, verwenden Sie:

                  echo 1 > /proc/sys/vm/drop_caches

              Zur Freigabe der Dentries und Inodes, verwenden Sie:

                  echo 2 > /proc/sys/vm/drop_caches

              Zur Freigabe des Seitenzwischenspeichers, der Dentries und Inodes, verwenden Sie:

                  echo 3 > /proc/sys/vm/drop_caches

              Da das Schreiben in diese Datei unschädlich ist und geänderte (schmutzige)  Objekte
              nicht freigegeben werden können, sollte der Benutzer vorher sync(8) aufrufen.

       /proc/sys/vm/legacy_va_layout (seit Linux 2.6.9)
              If nonzero, this disables the new 32-bit memory-mapping layout; the kernel will use
              the legacy (2.4) layout for all processes.

       /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:  Kill all processes that have the corrupted-and-not-reloadable  page  mapped  as
                  soon  as  the corruption is detected. Note that this is not supported for a few
                  types of pages, such as kernel internally allocated data or the swap cache, but
                  works for the majority of user pages.

              0:  Unmap the corrupted page from all processes and kill a process only if it tries
                  to access the page.

              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;
              siehe sigaction(2) für weitere Einzelheiten.

              Diese Funktionalität ist nur auf Architekturen/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 einen systemweiten Speicherauszug der  Prozesse  (ohne  Kernel-Threads),
              wenn   der  Kernel  bei  Speicherknappheit  Prozesse  abbricht  (OOM-killing).  Der
              Speicherauszug enthält die  folgenden  Informationen  für  jeden  Prozess  (Thread,
              Prozess):     Thread-Kennung,    reale    Benutzerkennung,    Thread-Gruppenkennung
              (Prozesskennung), Größe des virtuellen Speichers, Größe des Resident Set, die  CPU,
              auf  der der Prozess 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 schurkischen
              Prozesse zu identifizieren.

              Ist der Wert in der Datei Null, wird diese Information unterdrückt. Auf sehr großen
              Systemen  mit  Tausenden  von  Prozessen  wird  es  kaum praktikabel sein, für alle
              Prozesse 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 einen speicherhungrigen Prozess ins Jenseits schickt.

              Der Standardwert ist 0.

       /proc/sys/vm/oom_kill_allocating_task (seit Linux 2.6.24)
              This   enables  or  disables  killing  the  OOM-triggering  task  in  out-of-memory
              situations.

              Ist der Wert null, wertet der  OOM-Killer  die  gesamte  Taskliste  aus  und  wählt
              heuristisch   einen   Prozess   als   Opfer   aus.  Normalerweise  wählt  er  einen
              speicherhungrigen Schurken aus, dessen Tod sehr viel Speicher freigibt.

              Ist der  Wert  ungleich  Null,  beseitigt  der  OOM-Killer  den  Prozess,  der  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.

              Nur entweder overcommit_kbytes oder overcommit_ratio kann einen Effekt haben. Falls
              overcommit_kbytes einen von Null verschiedenen Wert enthält, dann wird  dieser  zur
              Berechnung  von  CommitLimit  verwandt, andernfalls wird overcommit_ratio verwandt.
              Wird in eine der beiden Dateien geschrieben, dann wird der Wert in der anderen  auf
              Null gesetzt.

       /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: always overcommit, never check
                     2: always check, never overcommit

              In Modus 0 werden Aufrufe von mmap(2) mit MAP_NORESERVE nicht überprüft. Damit  ist
              die  Standardprüfung  sehr  schwach und setzt den Prozess dem Risiko aus, zum Opfer
              des OOM-Killers zu werden.

              In Modus 1 gibt der Kernel immer vor, noch  über  Speicher  zu  verfügen,  bis  der
              Speicher   schließlich   wirklich   erschöpft  ist.  Ein  Einsatzzweck  stellt  das
              wissenschaftliche Rechnen dar, bei denen große,  kaum  besetzte  Felder  eingesetzt
              werden.  In  Linux-Kernelversionen vor 2.6.0 impliziert jeder von Null verschiedene
              Wert den Modus 1.

              In Modus 2 (verfügbar seit Linux 2.6)  wird  der  reservierbare  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   ist   die  für  große  Speicherseiten  beiseite  gestellte
                      Speichermenge

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

                   *  total_swap ist die Menge des Auslagerungsbereichs.

              Beispielsweise ergibt diese Formel auf einem System mit 16 GB an physischem RAM, 16
              GB  an Auslagerungsspeicher, keinen für große Speicherseiten gewidmeten Bereich und
              einem overcommit_ratio von 50 ein CommitLimit von 24 GB.

              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

              Siehe    auch    die   Beschreibung   von   /proc/sys/vm/admin_reserve_kbytes   und
              /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 einen Speichererschöpfungs-Zustand erreichen,
              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 (seit 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].

              Der  Vorgabewert  in  dieser Datei ist der kleinere Wert aus [3% der freien Seiten,
              128 MiB], ausgedrückt in KiB.

              Falls der Wert in dieser Datei auf Null gesetzt wird, darf ein Benutzer  sämtlichen
              Speicher   durch   einen   einzelnen   Prozess   belegen   (abzüglich   der   durch
              /proc/sys/vm/admin_reserve_kbytes reservierten Menge). Alle nachfolgenden Versuche,
              einen Befehl auszuführen, führen dann zu »fork: Cannot allocate memory«.

              Die  Änderung  des Wertes in dieser Datei tritt in Kraft, wann immer eine Anwendung
              Speicher anfordert.

       /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       enthält      die      Linux-Kernel-Quelltextdatei
              Documentation/admin-guide/sysrq.rst (oder Documentation/sysrq.txt vor Linux 4.10).

       /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). sysvipc(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)
              Diese nur lesbare Datei enthält in einer Menschen-lesbaren Form  eine  Liste  aller
              derzeit  anhängenden  (hochauflösenden)  Timer, aller Uhrereignis-Quellen und ihrer
              Parameter.

       /proc/timer_stats (von Linux 2.6.21 bis Linux 4.10)
              Dies ist eine Fehlersucheinrichtung, um Timer-(Miss)brauch  in  einem  Linux-System
              für  Kernel-  und Anwendungsentwickler sichtbar zu machen. Sie kann von Kernel- und
              Anwendungsentwicklern verwandt werden, um  zu  überprüfen,  dass  ihr  Code  keinen
              ungebührlichen  Gebrauch  von  Timern  macht.  Das  Ziel  besteht  darin,  unnötige
              Aufwachaktionen zu vermeiden und damit die Leistungsaufnahme zu optimieren.

              Falls im Kernel (CONFIG_TIMER_STATS) aktiviert aber nicht  verwandt,  hat  es  fast
              keinen       Laufzeit-Zusatzaufwand       und       einen      relativ      kleinen
              Datenstruktur-Zusatzaufwand. Selbst falls die Datensammlung zur Laufzeit  aktiviert
              wird,  ist  der  Zusatzaufwand  klein:  Alle  Sperren  erfolgen  pro  CPU  und  das
              Nachschlagen erfolgt über einen Hash.

              Die Datei  /proc/timer_stats  wird  zum  Steuern  der  Abtast-Einrichtung  und  zum
              Auslesen der abgetasteten Informationen verwandt.

              Die  Funktionalität  rtimer_stats  ist beim Systemstart inaktiv. Eine Abtastperiode
              kann mittels des folgenden Befehls gestartet werden:

                  # echo 1 > /proc/timer_stats

              Der folgende Befehl beendet eine Abtastperiode:

                  # echo 0 > /proc/timer_stats

              Die Statistiken können wie folgt ermittelt werden:

                  $ cat /proc/timer_stats

              Während das Abtasten aktiviert ist, wird bei jedem Lesen aus /proc/timer_stats eine
              neu  aktualisierte Statistik gesehen. Sobald das Abtasten deaktiviert ist, wird die
              abgetastete Information beibehalten, bis eine  neue  Abtastperiode  begonnen  wird.
              Dies erlaubt mehrfaches Auslesen.

              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:

              *  eine  Anzahl  der  Ereignisse,  optional  (seit  Linux  2.6.23)  gefolgt von dem
                 Buchstaben »D«, falls dies ein aufschiebbarer Timer ist;

              *  die PID des Prozesses, die den Timer initialisierte,

              *  der Namen des Prozesses, der den Timer initialisierte,

              *  die Funktion, in der der Timer initalisiert wurde, und

              *  (in Klammern) die Callback-Funktion, die diesem Timer zugeordnet ist.

              Während  des  Linux-4.11-Entwicklungszyklus  wurde   diese   Datei   aufgrund   von
              Sicherheitsbedenken   entfernt,   da  sie  Informationen  über  Namensräume  hinweg
              offenlegt.  Desweiteren  ist  es   möglich,   die   gleichen   Informationen   über
              kernelinterne Nachverfolgungseinrichtungen wie Ftrace zu ermitteln.

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

       /proc/uptime
              Diese Datei enthält zwei Zahlen (Werte  in  Sekunden):  die  Laufzeit  des  Systems
              (einschließlich  der  in  Suspendierung  verbrachten  Zeit)  und  die Dauer, die im
              Leerlaufprozess verbracht wurde.

       /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)
              Die Datei zeigt verschiedene  Statistiken  des  virtuellen  Speichers.  Jede  Zeile
              dieser  Datei  enthält  ein  einzelnes  Name-Wert-Paar, getrennt durch Leerzeichen.
              Einige Zeilen  sind  nur  vorhanden,  falls  der  Kernel  mit  geeigneten  Optionen
              konfiguriert  wurde.  (In  einigen  Fällen  haben  sich  die Optionen für bestimmte
              Dateien über Kernelversionen hinweg geändert, so dass  sie  hier  nicht  aufgeführt
              sind.  Details  können  durch Einsicht in den Kernelquellcode gefunden werden.) Die
              folgenden Felder können vorhanden sein:

              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)
                     Durch Shmem und tmpfs(5) verwandte Seiten

              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/admin-guide/mm/transhuge.rst.

              compact_fail (seit Linux 2.6.35)
                     Siehe die Kernel-Quelldatei Documentation/admin-guide/mm/transhuge.rst.

              compact_success (seit Linux 2.6.35)
                     Siehe die Kernel-Quelldatei Documentation/admin-guide/mm/transhuge.rst.

              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/admin-guide/mm/transhuge.rst.

              thp_fault_fallback (seit Linux 2.6.39)
                     Siehe die Kernel-Quelldatei Documentation/admin-guide/mm/transhuge.rst.

              thp_collapse_alloc (seit Linux 2.6.39)
                     Siehe die Kernel-Quelldatei Documentation/admin-guide/mm/transhuge.rst.

              thp_collapse_alloc_failed (seit Linux 2.6.39)
                     Siehe die Kernel-Quelldatei Documentation/admin-guide/mm/transhuge.rst.

              thp_split (seit Linux 2.6.39)
                     Siehe die Kernel-Quelldatei Documentation/admin-guide/mm/transhuge.rst.

              thp_zero_page_alloc (seit Linux 3.8)
                     Siehe die Kernel-Quelldatei Documentation/admin-guide/mm/transhuge.rst.

              thp_zero_page_alloc_failed (seit Linux 3.8)
                     Siehe die Kernel-Quelldatei Documentation/admin-guide/mm/transhuge.rst.

              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  Dateien  enthalten  Zeichenketten (z. B. die Umgebung und die Befehlszeile), die im
       internen Format dargestellt sind, wobei Unterfelder mit Null-Bytes ('\0') begrenzt werden.
       Beim Untersuchen dieser Dateien werden Sie diese vielleicht besser lesbar finden, wenn Sie
       einen Befehl der folgenden Art zur Anzeige verwenden:

           $ cat Datei | tr '\000' '\n'

       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), htop(1), init(1), ps(1), pstree(1), tr(1), uptime(1),
       chroot(2), mmap(2), readlink(2), syslog(2), slabinfo(5), sysfs(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

       Diese Seite  ist  Teil  der  Veröffentlichung  5.03  des  Projekts  Linux-man-pages.  Eine
       Beschreibung  des  Projekts,  Informationen,  wie  Fehler gemeldet werden können sowie die
       aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche  Übersetzung  dieser  Handbuchseite  wurde  von  Martin   Eberhard   Schauer
       <Martin.E.Schauer@gmx.de>,   Dr.   Tobias   Quathamer   <toddy@debian.org>,   Chris  Leick
       <c.leick@vollbio.de>,  Erik  Pfannenstein  <debianignatz@gmx.de>  und   Helge   Kreutzmann
       <debian@helgefjell.de> 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>.