Provided by: manpages-pl_0.7-2_all bug

NAZWA

       proc - pseudosystem plików z informacjami o procesach

OPIS

       proc  jest  pseudosystemem  plików,  który  udostępnia interfejs do struktur danych jądra.
       Zazwyczaj jest montowany w katalogu /proc. Jest on  w  większości  przeznaczony  tylko  do
       odczytu, lecz niektóre pliki umożliwiają modyfikacje zmiennych jądra.

   Opcje montowania
       System plików proc obsługuje następujące opcje montowania:

       hidepid=n (od Linuksa 3.3)
              Opcja  kontroluje  kto  może uzyskać dostęp do informacji w katalogach /proc/[pid].
              Argument n przyjmuje jedną z następujących wartości:

              0   Wszyscy mają dostęp do katalogów /proc/[pid]. Jest to tradycyjne  zachowanie  i
                  domyślne, jeśli nie użyje się tej opcji montowania.

              1   Użytkownicy  nie  mogą  uzyskać  dostępu  do plików i podkatalogów w katalogach
                  /proc/[pid]  innych  niż  ich  własne  (same  katalogi  /proc/[pid]   pozostają
                  widoczne).  Wrażliwe  pliki, takie jak /proc/[pid]/cmdline i /proc/[pid]/status
                  są chronione przed innymi  użytkownikami.  Dzięki  temu  niemożliwe  staje  się
                  dowiedzenie  się,  czy jakiś użytkownik uruchomił konkretny program (tak długo,
                  jak sam program nie ujawnia tego swoim zachowaniem).

              2   Jak  w  trybie  1,  lecz  dodatkowo  katalogi  /proc/[pid]  przynależne   innym
                  użytkownikom  pozostają niewidoczne.  Oznacza  to,  że  wpisy  /proc/[pid]  nie
                  mogą dłużej służyć do poznania PID-ów w  systemie.  Nie  ukrywa  to  faktu,  że
                  proces  o  określonym PID istnieje (można się tego dowiedzieć innymi sposobami,
                  np. poprzez "kill -0 $PID"), ale ukrywa  UID  i  GID  procesu,  które  w  innym
                  przypadku  można  by  było poznać wykonując stat(2) na katalogu /proc/[pid]. To
                  znacznie utrudnia zadanie atakującego polegające  na  pozyskaniu  informacji  o
                  działających  procesach  (np.  odkrycie  czy  jakiś  demon  działa  z większymi
                  uprawnieniami, czy jakiś użytkownik ma uruchomiony jakiś wrażliwy program,  czy
                  inni użytkownicy w ogóle mają coś uruchomione itd.).

       gid=gid (od Linuksa 3.3)
              Określa  ID  grupy,  której  członkowie  są  uprawnieni  do  dostępu  do informacji
              zablokowanych innym przez hidepid (tzn. użytkownicy w tej grupie zachowują się tak,
              jakby /proc zostało zamontowane z hidepid=0). Powinno się używać tej grupy, zamiast
              innych rozwiązań, takich jak umieszczanie użytkowników nie-root w pliku sudoers(5).

   Pliki i katalogi
       Poniższa lista opisuje wiele plików i katalogów w hierarchii /proc.

       /proc/[pid]
              Każdemu działającemu procesowi odpowiada katalog o  numerycznej  nazwie;  nazwą  tą
              jest  identyfikator procesu. Każdy z tych katalogów zawiera następujące pseudopliki
              i podkatalogi:

       /proc/[pid]/attr
              Pliki   w   tym   katalogu   udostępniają   API    do    modułów    bezpieczeństwa.
              Zawartością katalogu są pliki, które mogą być odczytywane i zapisywane, aby ustawić
              atrybuty związane z bezpieczeństwem. Ten katalog został dodany do obsługi  SELinux,
              ale  intencją  było  to,  aby  API  było na tyle ogóle, aby obsługiwać również inne
              moduły bezpieczeństwa. Dla wyjaśnienia, poniżej przedstawiono przykłady jak SELinux
              używa tych plików.

              Obecne tylko, jeśli jądro zostało skonfigurowane z CONFIG_SECURITY.

       /proc/[pid]/attr/current (od Linuksa 2.6.0)
              Zawartość tego pliku reprezentuje aktualne atrybuty bezpieczeństwa procesu.

              W  SELinuksie  plik  ten  służy  do pozyskania kontekstu bezpieczeństwa procesu. Do
              Linuksa 2.6.11 plik nie mógł służyć do ustawienia kontekstu  bezpieczeństwa  (zapis
              był  zawsze  zabroniony), odkąd SELinux ograniczyć przejścia bezpieczeństwa procesu
              do execve(2) (zob. opis /proc/[pid]/attr/exec, poniżej). Od Linuksa 2.6.11  SELinux
              poluzował  to  ograniczenie i zaczął obsługiwać operacje "ustawiania" poprzez zapis
              do tego węzła, jeśli jest on autoryzowany przez politykę, choć użycie tej  operacji
              jest    odpowiednie    jedynie    dla    aplikacji    zaufanych    do   zarządzania
              pożądaną separacją pomiędzy starymi a nowymi kontekstami bezpieczeństwa. Do Linuksa
              2.6.28  SELinux  nie  pozwalał  wątkom  z wielowątkowych procesów na ustawienie ich
              kontekstu  bezpieczeństwa  poprzez  ten  węzeł,  jeśli  mogło  to  doprowadzić   do
              niespójności  wśród  kontekstów bezpieczeństwa wątków dzielących tą samą przestrzeń
              pamięci.  Od  Linuksa  2.6.28  SELinux  poluzował  to  ograniczenie   i   rozpoczął
              obsługiwanie  operacji  "ustawiania"  dla wątków procesów wielowątkowych, jeśli ich
              nowy kontekst bezpieczeństwa jest powiązana ze  starym  kontekstem  bezpieczeństwa,
              gdzie  relacja  powiązania  jest  zdefiniowana  w  polityce  i  gwarantuje, że nowy
              kontekst bezpieczeństwa ma podzbiór  uprawnień  starego  kontekstu  bezpieczeństwa.
              Inne moduły bezpieczeństwa mogą wybrać aby obsługiwać operacje "ustawiania" poprzez
              zapis do tego węzła.

       /proc/[pid]/attr/exec (od Linuksa 2.6.0)
              Ten plik reprezentuje atrybuty przypisane do procesu przez kolejne execve(2).

              W SELinuksie jest to potrzebne do obsługi przejść  roli/domeny,  a  execve(2)  jest
              preferowanym  punktem  do takich przekształceń, ponieważ oferuje on lepszą kontrolę
              nad inicjalizacją procesu  w  nowej  etykiecie  bezpieczeństwa  i  nienaruszalności
              stanu.  W  SELinuksie  ten  atrybut  jest  resetowany przy execve(2), tak więc nowy
              program powraca do domyślnego zachowania przy każdym wywołaniu execve(2) jakie może
              utworzyć.     W    SELinuksie    proces    może    ustawić tylko    swój    atrybut
              /proc/[pid]/attr/exec.

       /proc/[pid]/attr/fscreate (od Linuksa 2.6.0)
              Plik ten reprezentuje atrybuty do przypisania do  plików  utworzone  przez  kolejne
              wywołania do open(2), mkdir(2), symlink(2) i mknod(2)

              SELinux  wykorzystuje  ten  plik do obsługi tworzenia pliku (za pomocą wspomnianych
              wcześniej  wywołań  systemowych)  w  stanie  bezpieczeństwa,  co  nie  daje  ryzyka
              niepoprawnego  dostępu uzyskanego podczas tworzenia pliku i ustawiania atrybutów. W
              SELinuksie atrybut ten jest  resetowany  przy  execve(2),  tak  więc  nowy  program
              powraca do domyślnego zachowania przy każdym wywołaniu tworzącym plik jakie może on
              wykonać, ale atrybut jest zachowywany podczas wielu wywołań tworzących  plik  przez
              jeden  program,  chyba  że jest jawnie resetowany. W SELinuksie proces może ustawić
              tylko swój atrybut /proc/[pid]/attr/fscreate.

       /proc/[pid]/attr/prev (od Linuksa 2.6.0)
              Plik ten zawiera kontekst bezpieczeństwa  procesu  przed  ostatnim  execve(2);  tj.
              poprzednią wartość /proc/[pid]/attr/current.

       /proc/[pid]/attr/keycreate (od Linuksa 2.6.18)
              Jeśli  proces  zapisuje  kontekst  bezpieczeństwa  do tego pliku, wszystkie kolejno
              utworzone klucze (add_key(2)) będą  oznaczone  tym  kontekstem.  Więcej  informacji
              znajduje się w pliku źródeł jądra Documentation/keys.txt.

       /proc/[pid]/attr/socketcreate (od Linuksa 2.6.18)
              Jeśli  proces  zapisuje  kontekst  bezpieczeństwa  do tego pliku, wszystkie kolejno
              utworzone gniazda będą oznaczone tym kontekstem.

       /proc/[pid]/auxv (od wersji jądra 2.6.0-test7)
              Zawartość informacji ELF przekazanej do procesu podczas uruchomienia. Formatem jest
              jeden  identyfikator  w  postaci unsigned long plus jedna wartość unsigned long dla
              każdego wpisu. Ostatni wpis zawiera dwa zera. Zob. też getauxval(3).

       /proc/[pid]/cgroup (od Linuksa 2.6.24)
              Plik opisuje grupy kontrolne do których należy proces/zadanie. W  każdej  hierarchi
              cgroup istnieje jeden wpis zawierający pola oddzielone dwukropkiem w postaci:

                  5:cpuacct,cpu,cpuset:/daemons

              Pola oddzielone dwukropkiem, od lewej do prawej:

                  1. numer identyfikacyjny hierarchii

                  2. zestaw podsystemów ograniczony do hierarchi

                  3. grupa kontrolna w hierarchii do której należy proces

              Ten   plik   istnieje   tylko   jeśli   podczas  kompilacji  jądra  włączono  opcję
              CONFIG_CGROUPS.

       /proc/[pid]/clear_refs (od Linuksa 2.6.22)

              Plik jest tylko do odczytu, zapisywalny wyłącznie dla właściciela procesu.

              Do pliku można zapisać następujące wartości:

              1 (od Linuksa 2.6.22)
                     Resetuje bity PG_Referenced i ACCESSED/YOUNG dla wszystkich stron związanych
                     z  procesem  (przed  jądrem  2.6.32 taki efekt powodowało zapisanie dowolnej
                     wartości niezerowej).

              2 (od Linuksa 2.6.32)
                     Resetuje  bity  PG_Referenced  i   ACCESSED/YOUNG   dla   wszystkich   stron
                     anonimowych związanych z procesem.

              3 (od Linuksa 2.6.32)
                     Resetuje   bity   PG_Referenced   i   ACCESSED/YOUNG  dla  wszystkich  stron
                     przypisanych do plików, związanych z procesem.

              Czyszczenie  bitów  PG_Referenced  i  ACCESSED/YOUNG  zapewnia  metodę   zmierzenia
              przybliżonej  wartości  pamięci  używanej  przez  proces. Najpierw należy sprawdzić
              wartość w polu "Referenced" dla wartości VMA  pokazanych  w  /proc/[pid]/smaps  aby
              sprawdzić  użycie  pamięci  przez proces. Następnie czyści się bity PG_Referenced i
              ACCESSED/YOUNG i po jakimś zmierzonym czasie ponownie  sprawdza  się  wartości  pól
              "Referenced"  aby  dowiedzieć  się  jak zmieniło się użycie pamięci procesu podczas
              zmierzonego interwału. Jeśli jest  się  zainteresowanym  wyłącznie  pewnymi  typami
              przypisania, można skorzystać z wartości 2 lub 3, zamiast 1.

              Aby zmienić inny bit można zapisać również inną wartość:

              4 (od Linuksa 3.11)
                     Czyści  bit soft-dirty dla wszystkich stron związanych z procesem. Używa się
                     tego (razem z /proc/[pid]/pagemap) przez system przywracania check-point  do
                     wykrycia  które strony procesu zostały "zabrudzone" od czasu zapisu do pliku
                     /proc/[pid]/clear_refs.

              Zapis innej wartości  niż  wypisane  powyżej  do  /proc/[pid]/clear_refs  nie  daje
              żadnego efektu.

              Plik  /proc/[pid]/clear_refs istnieje tylko jeśli podczas kompilacji jądra włączono
              opcję CONFIG_PROC_PAGE_MONITOR.

       /proc/[pid]/cmdline
              Ten plik tylko do odczytu zawiera pełną linię polecenia wydanego przy  uruchamianiu
              procesu,  chyba  że  jest  to proces-duch (zombie). Wówczas plik będzie pusty, tzn.
              odczyt tego pliku zwróci zawsze 0 znaków. Argumenty linii poleceń występują  w  tym
              pliku  rozdzielone  znakami  NUL  ('\0'),  z  dodatkowym  znakiem  NUL  po ostatnim
              łańcuchu.

       /proc/[pid]/comm (od Linuksa 2.6.33)
              Plik pokazuje wartość comm procesu—tj. nazwę polecenia związaną z  procesem.  Różne
              wątki  tego  samego  procesu  mogą  mieć  różne  wartości  comm, dostępne za pomocą
              /proc/[pid]/task/[tid]/comm. Wątek może  zmodyfikować  jego  wartość  comm  lub  tą
              innego  wątku  z tej samej grupy wątków (zob. opis CLONE_THREAD w clone(2)), pisząc
              do pliku /proc/self/task/[tid]/comm. Łańcuchy dłuższe niż TASK_COMM_LEN (16) znaków
              są po cichu obcinane.

              Plik  zapewnia  zestaw  operacji  PR_SET_NAME i PR_GET_NAME prctl(2) i jest używany
              przez pthread_setname_np(3), przy zmianie nazw wątków innych niż wywołujący.

       /proc/[pid]/coredump_filter (od Linuksa 2.6.23)
              Patrz core(5).

       /proc/[pid]/cpuset (od Linuksa 2.6.12)
              Patrz cpuset(7).

       /proc/[pid]/cwd
              Jest dowiązaniem do bieżącego katalogu roboczego procesu. Aby dowiedzieć się,  jaki
              jest  katalog  roboczy  procesu,  na  przykład  o  identyfikatorze  20, można wydać
              następujące polecenie:

                  $ cd /proc/20/cwd; /bin/pwd

              Należy zauważyć, że polecenie pwd jest często wbudowanym poleceniem powłoki i  może
              nie  działać  w  tym  kontekście  w  sposób  właściwy. W powłoce bash(1) można użyć
              pwd -P.

              W procesie wielowątkowym zawartość tego  linku  symbolicznego  nie  jest  dostępna,
              jeżeli wątek główny już się zakończył (zazwyczaj przez wywołanie pthread_exit(3)).

       /proc/[pid]/environ
              Plik  ten zawiera środowisko procesu. Wpisy są oddzielone znakami NULL ("\0"), mogą
              także wystąpić znaki NULL na  końcu.  Dlatego,  aby  wypisać  zmienne  środowiskowe
              procesu 1, należy wykonać:

                  $ strings /proc/1/environ

       /proc/[pid]/exe
              W  Linuksie  2.2  i  wersjach  późniejszych  plik ten jest dowiązaniem symbolicznym
              zawierającym  rzeczywistą  nazwę  ścieżki   działającego   polecenia.   Dowiązaniem
              symbolicznym  można  się  normalnie  posługiwać  - próba jego otwarcia otworzy plik
              programu. Można nawet wydać polecenie /proc/[pid]/exe, aby uruchomić kolejną  kopię
              tego  samego pliku wykonywalnego, co uruchomiony przez [pid]. Jeśli ścieżka została
              odlinkowana, dowiązanie symboliczne będzie zawierało łańcuch '(deleted)' dodany  do
              oryginalnej  ścieżki.  W  procesie wielowątkowym zawartość tego linku symbolicznego
              nie jest dostępna,  jeżeli  główny  wątek  już  się  zakończył  (wywołując  zapewne
              pthread_exit(3)).

              W  Linuksie  2.0  i  wcześniejszych  wersjach,  /proc/[pid]/exe jest wskaźnikiem do
              uruchomionego pliku binarnego  i  ma  postać  dowiązania  symbolicznego.  Wywołanie
              readlink(2) na tym pliku zwróci w Linuksie 2.0 łańcuch znakowy postaci:

                  [urządzenie]:i-węzeł

              Na  przykład,  [0301]:1502  będzie 1502 i-węzłem na urządzeniu o numerze głównym 03
              (IDE, MFM itp.) i pobocznym 01 (pierwsza partycja pierwszego dysku).

              Do zlokalizowania pliku, można posłużyć się poleceniem find(1) z opcją -inum.

       /proc/[pid]/fd/
              Jest to podkatalog zawierający po jednym wpisie dla każdego otwartego przez  proces
              pliku; nazwą tego wpisu jest deskryptor pliku i jest on dowiązaniem symbolicznym do
              rzeczywistego pliku. Dlatego 0 jest  standardowym  wejściem,  1  jest  standardowym
              wyjściem, 2 jest standardową diagnostyką, itd.

              W   przypadku   deskryptorów   plików   potoków   gniazd  wpisy  będą  dowiązaniami
              symbolicznymi, których zawartością jest typ pliku z i-węzłem. Wywołanie readlink(2)
              na takim pliku zwróci ciąg w postaci:

                  typ:[i-węzeł]

              Przykładowo  socket:[2248868]  będzie  gniazdem  z  i-węzłem   2248868. W przypadku
              gniazd, i-węzeł można  wykorzystać  do  pozyskania  większej  liczby  informacji  z
              jednego z plików z katalogu /proc/net/.

              W  przypadku  deskryptorów  plików,  które  nie  mają  odpowiadającego i-węzła (np.
              deskryptorów plików tworzonych za pomocą epoll_create(2), eventfd(2),  inotify_init
              (2),  signalfd(2) i timerfd(2)), wpis będzie dowiązaniem symbolicznym z zawartością
              w postaci

                  anon_inode:<typ-pliku>

              W niektórych przypadkach typ-pliku jest otoczony nawiasami kwadratowymi.

              Przykładowo dowiązanie  symboliczne  deskryptora  pliku  epoll  będzie  dowiązaniem
              symbolicznym, którego zawartością jest łańcuch anon_inode:[eventpoll].

              W  procesie  wielowątkowym  zawartość tego katalogu nie jest dostępna, jeżeli wątek
              główny już się zakończył (zazwyczaj przez wywołanie pthread_exit(3)).

              Programy, które przyjmują nazwę pliku jako argument  wiersza  polecenia,  lecz  nie
              czytają  standardowego  wejścia,  jeśli nie podano argumentu albo które zapisują do
              pliku nazwanego argumentem wiersza polecenia, lecz nie wysyłają danych  wyjściowych
              na  standardowe wyjście, można zmusić do używania standardowego wejścia lub wyjścia
              wykorzystując /proc/[pid]/fd. Na przykład, zakładając, że  opcja  -i  określa  plik
              wejściowy, a opcja -o określa plik wyjściowy:

                  $ foobar -i /proc/self/fd/0 -o /proc/self/fd/1 ...

              co daje działający filtr.

              /proc/self/fd/N  jest w przybliżeniu tym samym co /dev/fd/N na niektórych systemach
              uniksowych  i  uniksopodobnych.  Większość  linuksowych  skryptów  MAKEDEV   tworzy
              dowiązania symboliczne /dev/fd do /proc/self/fd.

              Większość  systemów  udostępnia  dowiązania  symboliczne  /dev/stdin, /dev/stdout i
              dev/stderr, które linkują odpowiednio do plików 0, 1 i 2 w /proc/self/fd. Powyższe,
              przykładowe polecenie może być więc zapisane również tak:

                  $ foobar -i /dev/stdin -o /dev/stdout ...

       /proc/[pid]/fdinfo/ (od Linuksa 2.6.22)
              Jest  to  podkatalog zawierający po jednym wpisie dla każdego pliku otwartego przez
              proces;  nazwą  tego  wpisu  jest  deskryptor  pliku.  Pliki  w  tym  katalogu   są
              odczytywalne  tylko  dla  właściciela  procesu. Zawartość pliku można odczytać, aby
              uzyskać informacje o odpowiadającym mu deskryptorze pliku. Zawartość zależy od typu
              pliku odpowiadającego odpowiedniemu deskryptorowi pliku.

              Dla zwykłych plików i katalogów wygląda to zwykle tak:

                  $ cat /proc/12015/fdinfo/4
                  pos:    1000
                  flags:  01002002
                  mnt_id: 21

              Występują następujące pola:

              pos    Jest to liczba dziesiętna pokazująca przesunięcie pliku.

              flags  Jest  to  liczba  ósemkowa  wyświetlająca tryb dostępu pliku i flagi statusu
                     pliku  (zob.  open(2)).  JEśli  ustawiona  jest  flaga   deskryptora   pliku
                     close-on-exec, to flags będzie zawierało również wartość O_CLOEXEC.

                     Przed  Linuksem 3.1 to pole nieprawidłowo wyświetlało ustawienie O_CLOEXEC w
                     trakcie otwierania pliku, zamiast aktualnego ustawienia flagi close-on-exec.

              mnt_id To pole, obecne od  Linuksa  3.15  jest  identyfikatorem  punktu  montowania
                     zawierającego ten plik. Zob. opis /proc/[pid]/mountinfo.

              Dla  deskryptorów plików eventfd (zob. eventfd(2)), wyświetlane są (od Linuksa 3.8)
              następujące pola:

                  pos: 0
                  flags:    02
                  mnt_id:   10
                  eventfd-count:               40

              eventfd-count jest bieżącą wartością licznika eventfd, szesnastkowo.

              Dla deskryptorów plików epoll (zob. epoll(7)),  wyświetlane  są  (od  Linuksa  3.8)
              następujące pola:

                  pos: 0
                  flags:    02
                  mnt_id:   10
                  tfd:        9 events:       19 data: 74253d2500000009
                  tfd:        7 events:       19 data: 74253d2500000007

              Każdy wiersz zaczynający się od tfd opisuje jeden z deskryptorów pliku monitorowany
              za pomocą deskryptora pliku epool (zob. epoll_ctl(2) aby zapoznać się z  niektórymi
              szczegółami).   Pole   tfd   jest  numerem  deskryptora  pliku.  Pole  events  jest
              szesnastkową maską zdarzeń monitorowanych dla tego  deskryptora  pliku.  Pole  data
              jest wartością danych powiązanych z tym deskryptorem pliku.

              Dla  deskryptorów  plików  signalfd  (zob. signalfd(2)), wyświetlane są (od Linuksa
              3.8) następujące pola:

                  pos: 0
                  flags:    02
                  mnt_id:   10
                  sigmask:  0000000000000006

              sigmask jest szesnastkową maską sygnałów akceptowanych poprzez ten deskryptor pliku
              signalfd (w tym przykładzie ustawione są bity 2 i 3 odpowiadające sygnałom SIGINT i
              SIGQUIT; zob. signal(7)).

              Dla deskryptorów plików inotify (zob. inotify(7)), wyświetlane są (od Linuksa  3.8)
              następujące pola:

                  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

              Każdy  z  wierszy  zaczynający  się  od  "inotify"  wyświetla informacje o jednym z
              monitorowanych plików lub katalogów. W wierszu występują następujące pola:

              wd     Numer obserwowanego deskryptora (dziesiętnie). (od ang. watch descriptor)

              ino    Numer i-węzła pliku docelowego (szesnastkowo).

              sdev   ID urządzenia, na którym znajduje się plik docelowy (szesnastkowo).

              mask   Maska monitorowanych zdarzeń pliku docelowego (szesnastkowo).

              Jeśli jądro  zbudowano  z  obsługą  exportfs,  ścieżka  do  pliku  docelowego  jest
              wyświetlona  jako  uchwyt  pliku,  przez  trzy  pola  szesnastkowe:  fhandle-bytes,
              fhandle-type i f_handle.

              Dla deskryptorów plików fanotify (zob. fanotify(7)),  wyświetlane  są  (od  Linuksa
              3.8) następujące pola:

                  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

              Czwarty  wiersz  wyświetla  informacje  zdefiniowane  przy tworzeniu grupy fanotify
              poprzez fanotify_init(2):

              flags  Argument flags podany fanotify_init(2) (wyrażony szesnastkowo).

              event-flags
                     Argument event_f_flags podany fanotify_init(2) (wyrażony szesnastkowo).

              Każdy dodatkowy wiersz pokazany w pliku zawiera informacje  o  jednym  znaku  (ang.
              mark) grupy fanotify. Większość z tych pól jest takich jak do inotify z wyjątkiem:

              mflags Flagi powiązane ze znakiem (wyrażone szesnastkowo).

              mask   Maski zdarzeń dla tego znaku (wyrażone szesnastkowo).

              ignored_mask
                     Maski zdarzeń ignorowanych dla tego znaku (wyrażone szesnastkowo).

              Więcej informacji o tych polach znajduje się w podręczniku fanotify_mark(2).

       /proc/[pid]/io (od wersji jądra 2.6.20)
              Plik zawiera statystyki wejścia/wyjścia dla procesu np.:

                  # cat /proc/3828/io
                  rchar: 323934931
                  wchar: 323929600
                  syscr: 632687
                  syscw: 632675
                  read_bytes: 0
                  write_bytes: 323932160
                  cancelled_write_bytes: 0

              Występują następujące pola:

              rchar: odczytane znaki
                     Liczba  bajtów,  które zostały odczytane ze względu na dane zadanie. Jest to
                     suma bajtów z  read(2)  i  podobnych  wywołań  systemowych.  Obejmuje  takie
                     działania  jak  wejście/wyjście  terminala.  To, czy konieczny był faktyczny
                     dostęp do wejścia/wyjściu fizycznego dysku nie ma wpływu na wartość  (odczyt
                     mógł nastąpić wyłącznie z bufora stronicowania).

              wchar: zapisane znaki
                     Liczba  bajtów,  które  zostały zapisane lub powinny być zapisane przez dane
                     zadania. Tego pola tyczą się podobne zastrzeżenia jak rchar.

              syscr: odczytane wywołania systemowe
                     Próba policzenia operacji odczytu wejścia/wyjścia  tj.  wywołań  systemowych
                     takich jak read(2) i pread(2).

              syscw: zapisane wywołania systemowe
                     Próba  policzenia  operacji  zapisu  wejścia/wyjścia tj. wywołań systemowych
                     takich jak write(2) i pwrite(2).

              read_bytes: odczytane bajty
                     Próba policzenia bajtów, które faktycznie  musiały  być  pobrane  z  poziomu
                     nośnika. Jest dokładna dla systemów plików korzystających z bloków.

              write_bytes: zapisane bajty
                     Próba  policzenia  bajtów,  które  faktycznie  musiały być wysłane na poziom
                     nośnika.

              cancelled_write_bytes:
                     Dużą niedokładność powoduje przycinanie. Jeśli proces zapisze do pliku 1  MB
                     i  później  skasuje go, de facto nie nastąpi żaden zapis. Zostanie to jednak
                     odnotowane jako powodujące zapis 1 MB. Innymi słowy:  pole  to  reprezentuje
                     liczbę  bajtów,  które  dzięki temu procesowi nie wystąpiły przez przycięcie
                     bufora strony. Część zadań może spowodować również "ujemne" wejście/wyjście.
                     Jeśli  to  zadanie  przytnie  "brudny"  bufor strony, część wejścia/wyjście,
                     które inne zadanie już policzyło (jest w jego write_bytes) nie nastąpi.

              Uwaga: W obecnej implementacji ma miejsce wyścig bitowy na  32-bitowych  systemach:
              jeśli  proces A odczyta /proc/[pid]/io procesu B, gdy proces B aktualizuje jeden ze
              swoich 64-bitowych liczników, proces A zobaczy wynik pośredni.

       /proc/[pid]/gid_map (od Linuksa 3.5)
              Zob. user_namespaces(7).

       /proc/[pid]/limits (od Linuksa 2.6.24)
              Plik zawiera informacje o miękkim limicie, twardym limicie i jednostkach, w których
              mierzone  są  limity  zasobów  procesów  (patrz  getrlimit(2)).  Do  Linuksa 2.6.35
              (włącznie) plik jest zabezpieczony, aby pozwolić na  odczyt  jedynie  przez  realny
              identyfikator  UID  procesu. Od wersji 2.6.36 plik jest odczytywalny dla wszystkich
              użytkowników systemu.

       /proc/[pid]/map_files/ (od jądra 3.3)
              Podkatalog zawiera wpisy odnoszące się do  plików  zmapowanych  do  pamięci  (patrz
              mmap(2)).  Wpisy  są  nazwane  jako  pary adresów: początku i końca obszaru pamięci
              (jako liczby szesnastkowe) i są dowiązaniami symbolicznymi  do  samych  zmapowanych
              plików. Oto przykład, zmodyfikowany aby zmieścić się w 80 kolumnowym terminalu:

                  # ls -l /proc/self/map_files/
                  lr--------. 1 root root 64 Apr 16 21:31
                              3252e00000-3252e20000 -> /usr/lib64/ld-2.15.so
                  ...

              Choć  te  wpisy  są dostępne dla obszarów pamięci przydzielonych flagą MAP_FILE, to
              sposób w jaki zaimplementowane jest anonimowe dzielenie pamięci (obszary  utworzone
              flagami MAP_ANON | MAP_SHARED) oznaczają że tego typu obszary również pojawią się w
              tym katalogu. Oto przykład, gdzie plikiem docelowym jest usunięty /dev/zero:

                  lrw-------. 1 root root 64 Apr 16 21:33
                              7fc075d2f000-7fc075e6f000 -> /dev/zero (deleted)

              Ten  katalog   istnieje   tylko   jeśli   włączono   opcję   konfiguracyjną   jądra
              CONFIG_CHECKPOINT_RESTORE.  Do  obejrzenia  zawartości  tego katalogu wymagany jest
              przywilej (CAP_SYS_ADMIN).

       /proc/[pid]/maps
              Plik zawierający aktualnie zmapowane obszary pamięci  wraz  z  prawami  dostępu  do
              nich. Więcej informacji o mapowaniu pamięci zawiera podręcznik systemowy mmap(2).

              Format pliku jest następujący:

       adres            uprawn przesun urządz i-węzeł    ścieżka
       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]

              Pole  adres  jest  przestrzenią  adresową  procesu, który ją zajmuje, a uprawn jest
              zbiorem uprawnień:

                   r = odczyt
                   w = zapis
                   x = wykonywanie
                   s = wspólne
                   p = prywatne (kopiowane przy zapisie)

              Przesun jest przesunięciem w  pliku  lub  w  czymś  innym,  urządz  zawiera  numery
              (główny:poboczny)  urządzenia,  a  i-węzeł  jest  i-węzłem  na  tym  urządzeniu.  0
              wskazuje, że nie istnieje i-węzeł związany  z  tym  obszarem  pamięci,  jak  to  na
              przykład ma miejsce w przypadku segmentu BSS (niezainicjowanych danych).

              Ścieżka  to  zwykle  plik  zabezpieczający  mapowanie.  Koordynacja  jest  łatwa  w
              przypadku plików ELF za pomocą pola przesun,  poprzez  sprawdzenie  pola  Offset  w
              nagłówkach programu ELF (readelf -l).

              Istnieją dodatkowe, pomocne pseudościeżki:

                   [stack]
                          Stos pierwotnego procesu (zwanego też głównym wątkiem)

                   [stack:<tid>] (od Linuksa 3.4)
                          Stos  wątku (gdzie <tid> jest identyfikatorem wątku). Odpowiada ścieżce
                          /proc/[pid]/task/[tid]/.

                   [vdso] Wirtualny, dynamicznie linkowany obiekt współdzielony.

                   [heap] Stos wątku.

              Jeśli pole ścieżka  jest  puste,  to  jest  to  anonimowe  przypisanie,  takie  jak
              pozyskiwane  za  pomocą funkcji mmap(2). Nie ma prostej metody na powiązanie jej ze
              źródłem procesu oprócz metod takich jak gdb(1), strace(1) itp.

              W Linuksie 2.0 nie ma pola podającego nazwę ścieżki.

       /proc/[pid]/mem
              Za pośrednictwem tego pliku można,  korzystając  z  open(2),  read(2)  i  lseek(2),
              uzyskać dostęp do stron pamięci procesu.

       /proc/[pid]/mountinfo (od wersji jądra 2.6.26)
              Plik zawiera informacje o punktach montowania. Składa się z linii w postaci:

              36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
              (1)(2)(3)   (4)   (5)      (6)      (7)   (8) (9)   (10)         (11)

              Liczby w nawiasach są etykietami poniższych opisów:

              (1)  ID  montowania: unikatowy identyfikator montowania (może zostać użyty ponownie
                   po wykonaniu umount(2)).

              (2)  ID  rodzica:  identyfikator  rodzica  (lub  siebie  samego,  jeśli  montowanie
                   znajduje się na szczycie drzewa montowań).

              (3)  główny:poboczny:  wartość  pola  st_dev  (patrz stat(2)) dla plików w systemie
                   plików.

              (4)  korzeń: korzeń (root) montowania w systemie plików.

              (5)  punkt montowania: punkt montowania w odniesieniu do korzenia procesów.

              (6)  opcje montowania: opcje montowania dla każdego montowania.

              (7)  pola opcjonalne: zero lub więcej pól w postaci "znacznik[:wartość]"

              (8)  separator: oznacza koniec pól opcjonalnych.

              (9)  typ systemu plików: nazwa systemu plików w postaci "typ[.podtyp]".

              (10) źródło montowania: informacja zależna od systemu plików lub "none".

              (11) super opcje: opcje dla superbloku.

              Parsery powinny ignorować wszystkie nierozpoznane pola opcjonalne. Obecnie są to:

                   shared:X          montowanie jest współdzielone w grupie węzłów X

                   master:X          montowanie jest podrzędne w stosunku do grupy węzłów X

                   propagate_from:X  montowanie jest  podrzędne  i  podlega  propagacji  z  grupy
                                     węzłów X (*)

                   unbindable        montowanie jest niepodpinalne

              (*)  X jest najbliższą dominującą grupą węzłów pod korzeniem procesów. Jeśli X jest
              bezpośrednio nadrzędne w stosunku do montowania, lub jeśli nie istnieje  dominująca
              grupa węzłów pod tym samym korzeniem, to obecne jest wyłącznie pole "master:X", bez
              pola "propagate_from:X".

              Aby  dowiedzieć  się  więcej  o  propagacji  montowań,  proszę   zapoznać   się   z
              Documentation/filesystems/sharedsubtree.txt w drzewie źródeł jądra Linux.

       /proc/[pid]/mounts (od wersji Linuksa 2.4.19)
              Jest  to  lista  wszystkich  systemów  plików  obecnie  zamontowanych w przestrzeni
              montowań procesów. Format tego pliku jest  udokumentowany  w  fstab(5).  Od  wersji
              2.6.15  jądra  Linuksa,  ten  plik  może  być  użyty w wywołaniu funkcji poll(): po
              otwarciu tego pliku do odczytu, zmiana  w  nim  (np.  montowanie  lub  odmontowanie
              systemu  plików) powoduje, że select(2) oznaczy deskryptor jako możliwy do odczytu,
              a poll(2) i epoll_wait(2) zaznaczą, że w pliku wystąpił  błąd.  Zob.  namespaces(7)
              aby dowiedzieć się więcej.

       /proc/[pid]/mountstats (Od wersji Linuksa 2.6.17)
              Plik  eksportuje  informacje  (statystyki,  informacje  konfiguracyjne)  o punktach
              montowań w przestrzeni montowań procesów. Wiersze pliku mają następującą postać:

              device /dev/sda7 mounted on /home with fstype ext3 [statistics]
              (       1      )            ( 2 )             (3 ) (4)

              Pola w każdym wierszu są następujące:

              (1)  Nazwa zamontowanego urządzenia (lub "nodevice", jeśli nie  ma  odpowiadającego
                   urządzenia).

              (2)  Punkt montowania w drzewie systemu plików.

              (3)  Typ systemu plików.

              (4)  Opcjonalne  statystyki  i  informacje  konfiguracyjne.  Obecnie (Linux 2.6.26)
                   tylko system plików NFS eksportuje opcje za pomocą tego pola.

              Plik jest odczytywalny wyłącznie dla właściciela procesu.

              Więcej informacji znajduje się w opisie namespaces(7).

       /proc/[pid]/ns/ (od Linuksa 3.0)
              Jest to podkatalog zawierający po jednym wpisie dla każdej przestrzeni nazw,  która
              obsługuje  manipulację  za  pomocą  setns(2).  Aby  dowiedzieć  się  więcej, proszę
              zapoznać się z namespaces(7).

       /proc/[pid]/numa_maps (od Linuksa 2.6.14)
              Patrz numa(7).

       /proc/[pid]/oom_adj (od Linuksa 2.6.11)
              Plik może być użyty do dostosowania  wyniku,  używanego  do  wybrania  procesów  do
              zabicia,  w przypadku sytuacji braku pamięci (out-of-memory - OOM). Jądro używa tej
              wartości do operacji przesunięcia bitowego  wartości  oom_score  procesu:  poprawne
              wartości  mieszczą  się  w zakresie od -16 do +15, wraz ze specjalną wartością -17,
              która całkowicie wyłącza zabijanie przy OOM danego procesu. Dodatni wynik  zwiększa
              prawdopodobieństwo,  że  proces  zostanie zabity przez OOM-killer, ujemny zmniejsza
              je.

              Domyślną wartością tego pliku jest 0, nowy  proces  dziedziczy  ustawienie  oom_adj
              swojego  rodzica.  Proces  musi  być  uprzywilejowany  (CAP_SYS_RESOURCE)  aby  móc
              zaktualizować ten plik.

              Od Linuksa 2.6.36 używanie tego pliku jest przestarzałe, powinno  się  korzystać  z
              /proc/[pid]/oom_score_adj.

       /proc/[pid]/oom_score (od Linuksa 2.6.11)
              Plik  wyświetla bieżący wynik, jaki jądro przydziela temu procesowi w celu wybrania
              procesu do zabicia przez OOM-killer. Wyższy wynik oznacza,  że  proces  ma  większe
              prawdopodobieństwo  zostania wybranym przez OOM-killer. Podstawą wyniku jest liczba
              pamięci użytej przez proces, a jest on zwiększany (+)  lub  zmniejszany  (-)  przez
              następujące czynniki:

              * czy proces tworzy wiele potomków przy użyciu fork(2) (+),

              * czy proces jest używany przez długi czas lub używa dużo czasu procesora (-),

              * czy proces ma niską wartość nice (np. > 0) (+),

              * czy proces jest uprzywilejowany (-) oraz

              * czy proces wykonuje bezpośredni dostęp do sprzętu (-).

              Wartość  oom_score  uwzględnia  również  przesunięcie  określone  przez  ustawienie
              procesu oom_score_adj lub oom_adj.

       /proc/[pid]/oom_score_adj (od Linuksa 2.6.36)
              Plik może być użyty  do  dostosowania  heurystyki  zwanej  "badness",  używanej  do
              wybrania procesu który zostanie zabity w sytuacji braku pamięci.

              Przypisuje  ona do każdego potencjalnego zadania wartość od 0 (nigdy nie zabija) do
              1000 (zawsze zabija) aby określić  docelowy  proces  do  zabicia.  Jednostki  są  z
              grubsza  proporcjonalne  do  pamięci,  którą  proces  może przydzielić, obliczaną w
              oparciu do  bieżącego  użycia  pamięci  i  pamięci  wymiany.  Na  przykład  zadanie
              używające całą dozwoloną pamięć otrzyma wynik 1000, a jeśli użyje połowę dozwolonej
              pamięci, otrzyma wynik 500.

              Dodatkowym czynnikiem w wyniku "badness" jest fakt, że procesy roota mają dodatkowe
              3% pamięci w stosunku do pozostałych procesów.

              Wielkość  "dozwolonej"  pamięci  zależy  od kontekstu w jakim wywołano OOM-killera.
              Jeśli wynika to z faktu, że pamięć  przeznaczona  dla  zadania  alokującego  cpuset
              została wyczerpany, to dozwolona pamięć odpowiada zestawowi pamięci przypisanego do
              tego cpuset (zobacz cpuset(7)). Jeśli jest to skutek zasad dot. pamięci węzła  (lub
              węzłów),  to  dozwolona  pamięć  odpowiada  zestawowi tych zasad. Jeśli wynika to z
              faktu, że osiągnięto limit pamięci (lub pamięci wymiany) to dozwolona  pamięć  jest
              tak ustawionym limitem. Gdy wynika to z sytuacji braku pamięci, to dozwolona pamięć
              odpowiada wszystkich zaalokowanych zasobom.

              Wartość oom_score_adj jest dodawana  do  wyniku  "badness"  przed  użyciem  jej  do
              wybrania  procesu  przeznaczonego  do  zabicia. Dozwolone wartości wynoszą od -1000
              (OOM_SCORE_ADJ_MIN)  do   +1000   (OOM_SCORE_ADJ_MAX).   Pozwala   to   przestrzeni
              użytkownika  na  kontrolę  preferencji  OOM-killing.  Można  w  ten  sposób  zawsze
              preferować dane zadanie lub całkowicie wyłączyć je z procesu OOM-killing. Najniższa
              dostępna wartość (-1000) jest równoznaczna z całkowitym wyłączeniem OOM-killing dla
              danego zadania, ponieważ zawsze zwróci ono wynik "badness" równy 0.

              Z tego względu łatwo jest zdefiniować wielkość pamięci dla  każdego  zadania  przez
              przestrzeń  użytkownika.  Ustawienie  wartości  oom_score_adj  np.  na  +500 jest w
              przybliżeniu odpowiednikiem pozwolenia pozostałym zadaniom w  tym  samym  systemie,
              cpuset, zasadom dot. pamięci i zasobom kontrolera pamięci na użycie co najmniej 50%
              pamięci więcej. Z kolei wartość -500 odpowiada  mniej  więcej  zmniejszeniu  o  50%
              dozwolonej pamięci.

              Z  powodu  zgodności wstecznej ze starszymi jądrami do modyfikacji wyniku "badness"
              wciąż  można  używać  /proc/[pid]/oom_adj.  Jego  wartość  skaluje  się  liniowo  z
              oom_score_adj.

              Zapis  do  /proc/[pid]/oom_score_adj  lub /proc/[pid]/oom_adj zmieni zapis w drugim
              pseudopliku na przeskalowaną odpowiednio wartość.

       /proc/[pid]/pagemap (od Linuksa 2.6.25)
              Plik pokazuje przypisanie każdej z wirtualnych stron  procesu  do  ramki  fizycznej
              strony  lub  przestrzeni  wymiany.  Zawiera jedną wartość 64-bitową na każdą stronę
              wirtualną, bity oznaczają:

                   63     Jeśli jest ustawione, strona jest obecna w pamięci RAM.

                   62     Jeśli jest ustawione, strona jest obecne w pamięci wymiany (swap)

                   61 (od Linuksa 3.5)
                          Strona jest stroną przypisaną do pliku lub dzieloną stroną anonimową.

                   60-56 (od Linuksa 3.11)
                          Zero

                   55 (od Linuksa 3.11)
                          PTE jest soft-dirty  (więcej  informacji  w  pliku  w  źródłach  jądra:
                          Documentation/vm/soft-dirty.txt).

                   54-0   Jeśli   strona  jest  obecna  w  pamięci  RAM  (bit  63),  to  te  bity
                          udostępniają  numer  ramki  strony,  który  można   użyć   z   indeksem
                          /proc/kpageflags i /proc/kpagecount. Jeśli strona jest obecna w pamięci
                          wymiany (bit 62), to bity 4-0 informują o typie pamięci wymiany, a bity
                          54-5 kodują przesunięcie pamięci wymiany.

              Przed  Linuksem  3.11 bity 60-55 kodowały logarytm dwójkowy informujący o rozmiarze
              strony.

              Aby efektywnie wykorzystać  /proc/[pid]/pagemap  należy  użyć  /proc/[pid]/maps  do
              określenia  które  obszary  pamięci  zostały  rzeczywiście przypisane i móc przejść
              między nieprzypisanymi obszarami.

              Plik /proc/[pid]pagemap istnieje tylko  jeśli  podczas  kompilacji  jądra  włączono
              opcję CONFIG_PROC_PAGE_MONITOR.

       /proc/[pid]/personality (od Linuksa 2.6.28)
              Plik  tylko  do  odczytu  pokazuje  domenę  uruchamiania  procesu  ustawioną  przez
              personality(2). Wartość wyświetlana jest w zapisie szesnastkowym.

       /proc/[pid]/root
              UNIX i Linux wspierają pomysł  określonego  dla  każdego  procesu  osobno  katalogu
              głównego  systemu plików, ustawianego przez wywołanie systemowe chroot(2). Plik ten
              wskazuje na katalog główny systemu plików i zachowuje się w ten sam sposób jak exe,
              fd/*, itp.

              W  procesie  wielowątkowym  zawartość  tego  linku symbolicznego nie jest dostępna,
              jeżeli wątek główny już się zakończył (zazwyczaj przez wywołanie pthread_exit(3)).

       /proc/[pid]/seccomp (Linux w wersji od 2.6.12 do 2.6.22)
              Odczytuje/ustawia tryb seccomp procesu. Jeśli ten plik zawiera wartość  zero,  tryb
              seccomp  nie  jest  włączany.  Zapis wartości 1 do pliku (nieodwracalnie) umieszcza
              proces w trybie seccomp, jedynymi dozwolonymi wywołaniami systemowymi  są  read(2),
              write(2),  _exit(2)  i  sigreturn(2).  Plik ten zniknął wraz z Linuksem 2.6.23, gdy
              został zastąpiony mechanizmem działającym w oparciu o prctl(2).

       /proc/[pid]/setgroups (od Linuksa 3.19)
              Zob. user_namespaces(7).

       /proc/[pid]/smaps (od Linuksa 2.6.14)
              Plik ten pokazuje zużycie pamięci dla każdego mapowania procesu (polecenie  pmap(1)
              wyświetla   podobne   informacje,   w   postaci   która   może   być łatwiejsza  do
              przetwarzania). Dla każdego takiego mapowania  pokazana  jest  lista  następujących
              linii:

                  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
                  Swap:                  0 kB
                  KernelPageSize:        4 kB
                  MMUPageSize:           4 kB
                  Locked:                0 kB

              Pierwsza   z   tych   linii  pokazuje  te  same  informacje  o  mapowaniach,  co  w
              /proc/[pid]/maps.  Pozostałe  linie  zawierają  rozmiar  mapowania,  ilość  mapowań
              obecnych  w  RAM  ("Rss"),  proporcjonalny  udział  w tym mapowaniu ("Pss"), liczbę
              czystych i brudnych stron  współdzielonych  w  mapowaniu  oraz  liczbę  czystych  i
              brudnych  prywatnych  stron  w  mapowaniu.  "Referenced"  oznacza pamięć która jest
              oznaczona jako pamięć do której ktoś odnosi się lub  uzyskuje  dostęp.  "Anonymous"
              pokazuje  pamięć  nienależącą do  żadnego  pliku.  "Swap" pokazuje jak dużo pamięci
              która byłaby anonimowa jest również używana, lecz w pamięci wymiany.

              Wpis "KernelPageSize" jest rozmiarem strony używanym przez jądro do VMA. Jest on  w
              większości  przypadków  takim sam, jak rozmiar używany przez MMU. Wyjątek występuje
              na jądrach PPC64, gdy jądro korzystając z podstawowego rozmiaru strony w  wielkości
              64K  może wciąż używać 4K stron dla MMU na starszych procesorach. Aby to rozróżnić,
              ta łatka raportuje "MMUPageSize" jako rozmiar strony używany przez MMU.

              "Locked" wskazuje, czy mapowanie jest zablokowane w pamięci czy nie.

              Pole  "VmFlags"  reprezentuje  flagi  jądra  związane  z  danych  obszarem  pamięci
              wirtualnej (VMA) zakodowanym w dwuliterowym symbolu. Oto kody:

                  rd  - odczytywalna (readable)
                  wr  - zapisywalna (writable)
                  ex  - wykonywalna (executable)
                  sh  - dzielona (shared)
                  mr  - może odczytać (may read)
                  mw  - może zapisać (may write)
                  me  - może wykonać (may execute)
                  ms  - może dzielić (may share)
                  gd  - segment stosu rośnie w dół (grows down)
                  pf  - czysty przedział PFG (pure PFN)
                  dw  - wyłączony zapis do zmapowanego pliku (disabled write)
                  lo  - strony zablokowane w pamięci (locked)
                  io  - pamięć zmapowana przestrzeni we/wy (I/O)
                  sr  - udostępniono wskazówkę sekwencyjnego odczytu
                                                    (sequential read)
                  rr  - udostępniono wskazówkę losowego odczytu (random read)
                  dc  - nie kopiuj przestrzeni przy forkowaniu (do not copy)
                  de  - nie rozszerzaj przestrzeni przy przemapowaniu
                                                      (do not expand)
                  ac  - przestrzeń jest policzalna (area is accountable)
                  nr  - przestrzeń wymiany niezarezerwowana dla tej
                                                    przestrzeni (not reserved)
                  ht  - przestrzeń używa dużych stron tlb (huge tlb)
                  nl  - mapowanie nieliniowe (non-linear)
                  ar  - flaga charakterystyczna dla architektury
                  dd  - nie włączaj przestrzeni do zrzutu jądra (do not dump)
                  sd  - flaga soft-dirty
                  mm  - przestrzeń mieszanego mapowania
                  hg  - flaga wskazówki dużych stron (huge)
                  nh  - flaga wskazówki stron niebędących dużymi (no-huge)
                  mg  - flaga wskazówki łączenia (mergeable)

              Plik /proc/[pid]/smaps istnieje tylko jeśli podczas kompilacji jądra włączono opcję
              CONFIG_PROC_PAGE_MONITOR.

       /proc/[pid]/stack (od Linuksa 2.6.29)
              Plik zapewnia symboliczny ślad wywołania funkcji w tym stosie  jądra  dla  procesu.
              Plik  istnieje,  jeśli  jądro  zostało  zbudowane  z  włączoną  opcją  konfiguracji
              CONFIG_STACKTRACE.

       /proc/[pid]/stat
              Informacje o stanie procesu. Korzysta z tego ps(1). Są  one  zdefiniowane  w  pliku
              źródeł jądra fs/proc/array.c.

              Kolejne pola i ich właściwe specyfikatory formatu scanf(3) to:

              (1) pid  %d
                        Identyfikator procesu (PID).

              (2) comm  %s
                        Nazwa pliku wykonywalnego w nawiasach. Widać, czy plik uległ wymianie.

              (3) state  %c
                        Jeden z poniższych znaków, wskazujących na status procesu:

                        R  Działający (Running)

                        S  Śpiący (Sleeping) w przerywalnym oczekiwaniu

                        D  Śpiący w nieprzerywalnym oczekiwaniu dyskowym

                        Z  Zombie

                        T  Zatrzymany sygnałem lub (przed Linuksem 2.6.33) zatrzymany ślad (trace
                           stopped)

                        t  Zatrzymany śledzeniem (tracing stop) - Linux 2.6.33 i nowszy

                        W  Stronicowanie (tylko przed Linuksem 2.6.0)

                        X  Martwy (od Linuksa 2.6.0)

                        x  Martwy (między Linuksem 2.6.33 a 3.13)

                        K  Wakekill - oczekiwanie; wybudzenie przy śmiertelnym  sygnale   (między
                           Linuksem 2.6.33 a 3.13)

                        W  Budzący się (między Linuksem 2.6.33 a 3.13)

                        P  Zaparkowany (między Linuksem 3.9 a 3.13)

              (4) ppid  %d
                        PID procesu macierzystego tego procesu.

              (5) pgrp  %d
                        Identyfikator grupy procesów danego procesu.

              (6) session  %d
                        Identyfikator sesji procesu.

              (7) tty_nr  %d
                        Kontroluje terminal procesu (poboczny numer urządzenia jest przechowywany
                        w kombinacji bitów 31 do 20 i 7 do 0, natomiast główny  numer  urządzenia
                        jest w bitach 15 do 8).

              (8) tpgid  %d
                        Identyfikator  grupy  procesów pierwszoplanowych kontrolującego terminala
                        procesu.

              (9) flags  %u
                        Słowo flag jądra  dla  danego  procesu.  Znaczenie  poszczególnych  bitów
                        określają     definicje    PF_*    w    pliku    źródeł    jądra    Linux
                        include/linux/sched.h. Szczegóły zależą od wersji jądra.

                        Format tego pola przed Linuksem 2.6 miał postać %lu.

              (10) minflt  %lu
                        Liczba drobnych błędów, które  popełnił  proces,  a  które  nie  wymagały
                        załadowania strony pamięci z dysku.

              (11) cminflt  %lu
                        Liczba drobnych błędów procesów potomnych.

              (12) majflt  %lu
                        Liczba   głównych   błędów,  które  popełnił  proces,  a  które  wymagały
                        załadowania strony pamięci z dysku.

              (13) cmajflt  %lu
                        Liczba głównych błędów procesów potomnych.

              (14) utime  %lu
                        Czas jaki został przydzielony procesowi w trybie użytkownika, mierzony  w
                        taktach  zegara  (podzielonych  przez  sysconf(_SC_CLK_TCK)). Obejmuje to
                        czas gościa, guest_time (czas spędzony  w  czasie  działania  wirtualnego
                        CPU,  patrz  niżej),  tak  więc  aplikacje, które nie wiedzą o polu czasu
                        gościa nie tracą tego czasu ze swych obliczeń.

              (15) stime  %lu
                        Czas, jaki został przydzielony  procesowi  w  trybie  jądra,  mierzony  w
                        taktach zegara (podzielonych przez sysconf(_SC_CLK_TCK)).

              (16) cutime  %ld
                        Czas,  jaki  został  przydzielony procesom potomnym tego procesu w stanie
                        waited-for w trybie użytkownika, mierzony w taktach zegara  (podzielonych
                        przez  sysconf(_SC_CLK_TCK)),  patrz  także  times(2)).  Obejmuje to czas
                        gościa, cguest_time (czas spędzony działając  na  procesorze  wirtualnym,
                        patrz niżej).

              (17) cstime  %ld
                        Czas,  jaki  został  przydzielony procesom potomnym tego procesu w stanie
                        waited-for w trybie jądra, mierzony w taktach zegara (podzielonych  przez
                        sysconf(_SC_CLK_TCK).

              (18) priority  %ld
                        (Wyjaśnienie  dla  Linuksa  2.6)  W  przypadku  procesów  działających  z
                        zasadami   planisty   czasu   rzeczywistego   (policy   poniżej;    patrz
                        sched_setscheduler(2)), jest to liczba przeciwna w stosunku do priorytetu
                        planisty minus jeden, tzn.  jest  to  zakres  -2  do  -100  odpowiadający
                        priorytetom  czasu  rzeczywistego  od  1  do 99. W przypadku procesów nie
                        działających  według  tych   zasad,   jest   to   surowa   wartość   nice
                        (setpriority(2)  zgodna  z podaną przez jądro. Jądro przechowuje wartości
                        nice jako liczby w zakresie od 0 (wysoki) do  39  (niski),  co  odpowiada
                        widocznemu dla użytkownika zakresowi nice od -20 do 19.

                        Przed  Linuksem  2.6  była  to  wartość  skalowana  w oparciu o wagę jaką
                        planista przypisał do danego procesu.

              (19) nice  %ld
                        Wartość "nice" (patrz setpriority(2)) zawierająca się w  zakresie  od  19
                        (niski priorytet) do -20 (wysoki priorytet).

              (20) num_threads  %ld
                        Liczba  wątków  procesu  (od Linuksa 2.6). Przed jądrem 2.6 to pole miało
                        przydzieloną  na  sztywno  wartość  0,  jako  wypełniacz  do   usuniętego
                        wcześniej pola.

              (21) itrealvalue  %ld
                        Czas  w  jiffies  poprzedzający  wysłanie  przez  czasomierz  do  procesu
                        następnego sygnału SIGALRM. Od jądra 2.6.17,  to  pole  nie  jest  dłużej
                        utrzymywane i ma ustawioną na sztywno wartość 0.

              (22) starttime  %llu
                        Czas  w jakim proces uruchomił się po rozruchu systemu. Jądra Linux przed
                        wersją 2.6 wyrażają tę wartość w tzw. "jiffies". Od Linuksa  2.6  wartość
                        jest wyrażana w taktach zegara (podzielonych przez sysconf(_SC_CLK_TCK)).

                        Format tego pola przed Linuksem 2.6 miał postać %lu.

              (23) vsize  %lu
                        Rozmiar pamięci wirtualnej w bajtach.

              (24) rss  %ld
                        Resident  Set Size: liczba stron, które proces ma w rzeczywistej pamięci.
                        Są to po prostu strony, które  obejmują  segment  text,  segment  data  i
                        przestrzeń  stosu.  Nie  obejmuje  to  stron,  które nie były ładowane na
                        żądanie lub które uległy wymianie.

              (25) rsslim  %lu
                        Aktualne  miękkie  ograniczenie  rss  procesu  w  bajtach;   patrz   opis
                        RLIMIT_RSS w getrlimit(2).

              (26) startcode  %lu
                        Adres, pod którym zaczyna się kod programu.

              (27) endcode  %lu
                        Adres, pod którym kończy się kod programu.

              (28) startstack  %lu
                        Adres początku (tzn. spód) stosu.

              (29) kstkesp  %lu
                        Bieżąca  wartość  ESP  (wskaźnika  stosu),  określona na podstawie strony
                        stosu jądra dla danego procesu.

              (30) kstkeip  %lu
                        Aktualny EIP (wskaźnik instrukcji).

              (31) signal  %lu
                        Maska bitowa oczekujących sygnałów, wyświetlana jako  liczba  dziesiętna.
                        Przestarzałe,   ponieważ  nie  dostarcza  informacji  o  sygnałach  czasu
                        rzeczywistego; prosimy używać /proc/[pid]/status zamiast tego pliku.

              (32) blocked  %lu
                        Maska bitowa zablokowanych sygnałów, wyświetlana jako liczba  dziesiętna.
                        Przestarzałe,   ponieważ  nie  dostarcza  informacji  o  sygnałach  czasu
                        rzeczywistego; prosimy używać /proc/[pid]/status zamiast tego pliku.

              (33) sigignore  %lu
                        Maska bitowa ignorowanych sygnałów, wyświetlana jako  liczba  dziesiętna.
                        Przestarzałe,   ponieważ  nie  dostarcza  informacji  o  sygnałach  czasu
                        rzeczywistego; prosimy używać /proc/[pid]/status zamiast tego pliku.

              (34) sigcatch  %lu
                        Maska bitowa schwytanych sygnałów, wyświetlana  jako  liczba  dziesiętna.
                        Przestarzałe,   ponieważ  nie  dostarcza  informacji  o  sygnałach  czasu
                        rzeczywistego; prosimy używać /proc/[pid]/status zamiast tego pliku.

              (35) wchan  %lu
                        Jest to "kanał" na którym oczekuje proces.  Jest  to  adres  położenia  w
                        jądrze,  gdzie  proces jest w uśpieniu. Powiązaną nazwę symboliczną można
                        znaleźć w /proc/[pid]/wchan.

              (36) nswap  %lu
                        Liczba stron, które uległy wymianie (nieutrzymywane).

              (37) cnswap  %lu
                        Łączna wartość nswap dla procesów potomnych (nieutrzymywane).

              (38) exit_signal  %d  (od Linuksa 2.1.22)
                        Sygnał wysyłany przez ginący proces do jego procesu macierzystego.

              (39) processor  %d  (od Linuksa 2.2.8)
                        Numer CPU, na którym proces ostatnio działał.

              (40) rt_priority  %u  (od Linuksa 2.5.19)
                        Priorytet planisty czasu rzeczywistego, liczba w zakresie od 1 do  99  do
                        procesów  przydzielanych  według  zasad  czasu  rzeczywistego  lub  0  do
                        procesów nie czasu rzeczywistego (patrz sched_setscheduler(2)).

              (41) policy  %u  (od Linuksa 2.5.19)
                        Polityka    przydzielania     zadaniom     czasu     procesora     (patrz
                        sched_setscheduler(2)).    Dekodowana    używając   stałych   SCHED_*   w
                        linux/sched.h.

                        Format tego pola przed Linuksem 2.6.22 miał postać %lu.

              (42) delayacct_blkio_ticks  %llu  (od Linuksa 2.6.18)
                        Sumaryczna zwłoka  bloków  wejścia/wyjścia,  mierzona  w  taktach  zegara
                        (centysekundy).

              (43) guest_time  %lu  (od Linuksa 2.6.24)
                        Czas  gościa  procesu (czas, jaki upłynął podczas działania na wirtualnym
                        procesorze  systemu  operacyjnego  gościa),  mierzony  w  taktach  zegara
                        (podzielony przez sysconf(_SC_CLK_TCK)

              (44) cguest_time  %ld  (od Linuksa 2.6.24)
                        Czas gościa potomków procesu, mierzony w taktach zegara (podzielony przez
                        sysconf(_SC_CLK_TCK)).

              (45) start_data  %lu  (od Linuksa 3.3)
                        Adres powyższej którego umieszczane  są  zainicjowane  i  niezainicjowane
                        (BSS) dane programu.

              (46) end_data  %lu  (od Linuksa 3.3)
                        Adres poniżej którego umieszczane są zainicjowane i niezainicjowane (BSS)
                        dane programu.

              (47) start_brk  %lu  (od Linuksa 3.3)
                        Adres,  powyżej  którego  można  rozciągnąć   kopiec   (ang.   heap)   za
                        pomocą brk(2).

              (48) arg_start  %lu  (od Linuksa 3.5)
                        Adres powyżej którego umieszczane są argumenty wiersza polecenia programu
                        (argv).

              (49) arg_end  %lu  (od Linuksa 3.5)
                        Adres poniżej którego umieszczane są argumenty wiersza polecenia programu
                        (argv).

              (50) env_start  %lu  (od Linuksa 3.5)
                        Adres powyżej którego umieszczane jest środowisko programu.

              (51) env_end  %lu  (od Linuksa 3.5)
                        Adres poniżej którego umieszczane jest środowisko programu.

              (52) exit_code  %d  (od Linuksa 3.5)
                        Kod zakończenia wątku w postaci przekazywanej przez waitpid(2).

       /proc/[pid]/statm
              Udostępnia  informacje o użyciu pamięci, mierzone w stronach. Występują następujące
              kolumny:

                  size       (1) łączny rozmiar programu
                             (taki sam jak VmSize w /proc/[pid]/status)
                  resident   (2) rozmiar części rezydentnej
                             (taki sam jak VmRSS w /proc/[pid]/status)
                  share      (3) strony wspólne (tzn. obecne w pliku)
                  text       (4) tekst (kod)
                  lib        (5) biblioteki (nieużywane w Linuksie 2.6)
                  data       (6) dane i stos
                  dt         (7) strony nieaktualne (dirty; nieużywane w Linuksie 2.6)

       /proc/[pid]/status
              Udostępnia sporo informacji  ze  /proc/[pid]/stat  i  /proc/[pid]/statm  w  postaci
              łatwiejszej do przeanalizowania przez człowieka. Oto przykład:

                  $ cat /proc/$$/status
                  Name:   bash
                  State:  S (sleeping)
                  Tgid:   3515
                  Pid:    3515
                  PPid:   3452
                  TracerPid:      0
                  Uid:    1000    1000    1000    1000
                  Gid:    100     100     100     100
                  FDSize: 256
                  Groups: 16 33 100
                  VmPeak:     9136 kB
                  VmSize:     7896 kB
                  VmLck:         0 kB
                  VmPin:         0 kB
                  VmHWM:      7572 kB
                  VmRSS:      6316 kB
                  VmData:     5224 kB
                  VmStk:        88 kB
                  VmExe:       572 kB
                  VmLib:      1708 kB
                  VmPMD:         4 kB
                  VmPTE:        20 kB
                  VmSwap:        0 kB
                  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
                  Seccomp:        0
                  Cpus_allowed:   00000001
                  Cpus_allowed_list:      0
                  Mems_allowed:   1
                  Mems_allowed_list:      0
                  voluntary_ctxt_switches:        150
                  nonvoluntary_ctxt_switches:     545

              Występują następujące pola:

              * Name: Polecenie uruchomione przez ten proces.

              * State:  Bieżący  stan  procesu.  Jeden z: "R (running)", "S (sleeping)", "D (disk
                sleep)", "T (stopped)", "T (tracing stop)", "Z (zombie)", or "X (dead)".

              * Tgid: identyfikator grupy wątku (np. identyfikator procesu).

              * Pid: identyfikator wątku (patrz gettid(2)).

              * PPid: PID procesu macierzystego.

              * TracerPid: PID procesu śledzącego ten proces (0 gdy nie jest śledzony).

              * Uid, Gid: UID (GID): realny, efektywny, zapisany oraz systemu plików.

              * FDSize: Liczba slotów aktualnie przydzielonych deskryptorów plików.

              * Groups: Uzupełniająca lista grup.

              * VmPeak: Szczytowy rozmiar pamięci wirtualnej.

              * VmSize: Rozmiar pamięci wirtualnej.

              * VmLck: Rozmiar pamięci zablokowanej (patrz mlock(3)).

              * VmPin: Rozmiar pamięci przypiętej (od Linuksa 3.2). Są to strony które  nie  mogą
                być przeniesione, ponieważ coś wymaga bezpośredniego dostępu pamięci fizycznej.

              * VmHWM: Szczytowy ustawiony rozmiar rezydentny ("high water mark").

              * VmRSS: Ustawiony rozmiar rezydentny.

              * VmData, VmStk, VmExe: Rozmiar segmentów danych, stosu i tekstu.

              * VmLib: Rozmiar kodu biblioteki współdzielonej.

              * VmPTE: Rozmiar wpisów tablicy strony (od Linuksa 2.6.10).

              * VmPMD: Rozmiar tabel stron drugiego poziomu (od Linuksa 4.0)

              * VmSwap:  Rozmiar pamięci wirtualnej przeniesionej do pamięci wymiany, podany jako
                anonimowe strony prywatne; pamięć  wymiany  shmem  nie  jest  ujęta  (od  Linuksa
                2.6.34).

              * Threads: Liczba wątków w procesie zawierających ten wątek.

              * SigQ:  Pole  zawiera  dwie  liczby  oddzielone  ukośnikiem,  które odnoszą się do
                skolejkowanych sygnałów do  realnego  identyfikatora  użytkownika  tego  procesu.
                Pierwsza   jest   liczbą  aktualnie  skolejkowanych  sygnałów  do  tego  realnego
                identyfikatora użytkownika, a druga jest limitem  zasobów  liczby  skolejkowanych
                sygnałów do tego procesu (patrz opis RLIMIT_SIGPENDING w getrlimit(2)).

              * SigPnd,  ShdPnd:  Liczba  sygnałów  oczekujących na wątek i na proces jako całość
                (patrz pthreads(7) i signal(7)).

              * SigBlk, SigIgn, SigCgt: Maski oznaczające zablokowane, zignorowane i przechwycone
                sygnały (patrz signal(7)).

              * CapInh,  CapPrm,  CapEff: Maski możliwości, włączonych w zestawach dziedziczonych
                (inheritable),  dozwolonych  (permitted)   i   efektywnych   (effective)   (patrz
                capabilities(7)).

              * CapBnd:  Zestaw  możliwości ograniczających (capability bounding set) (od Linuksa
                2.6.26, patrz capabilities(7)).

              * CapAmb: Zestaw przywileju ambient (od Linuksa 4.3, zob. capabilities(7)).

              * Seccomp: Tryb procesu seccomp (od  Linuksa  3.8,  zob.  seccomp(2)).   0  oznacza
                SECCOMP_MODE_DISABLED;     1     oznacza     SECCOMP_MODE_STRICT;    2    oznacza
                SECCOMP_MODE_FILTER. Pole to  jest  udostępnione  tylko  gdy  jądro  zbudowano  z
                włączoną opcją konfiguracyjną CONFIG_SECCOMP.

              * Cpus_allowed:  Maska  procesorów,  na  których  proces  może  być uruchomiony (od
                Linuksa 2.6.24, patrz cpuset(7)).

              * Cpus_allowed_list: Jak wyżej, ale w "formacie listy" (od  Linuksa  2.6.26,  patrz
                cpuset(7)).

              * Mems_allowed:  Maska  węzłów  pamięci,  dozwolonych  dla tego procesu (od Linuksa
                2.6.24, patrz cpuset(7)).

              * Mems_allowed_list: Jak wyżej, ale w "formacie listy" (od  Linuksa  2.6.26,  patrz
                cpuset(7)).

              * voluntary_ctxt_switches,   nonvoluntary_ctxt_switches:   Liczba   dobrowolnych  i
                przymusowych przełączeń kontekstu (od Linuksa 2.6.23).

       /proc/[pid]/syscall (od Linuksa 2.6.27)
              Plik udostępnia numer wywołania  systemowego  i  rejestr  argumentu  dla  aktualnie
              wykonywanego  przez  proces  wywołania  systemowego,  po  którym następują wartości
              wskaźnika stosu i rejestry liczników programu. Udostępnianych jest wszystkie  sześć
              rejestrów  argumentu,  choć  większość  wywołań  systemowych używa mniejszej liczby
              rejestrów.

              Jeśli proces jest zablokowany, lecz nie w wywołaniu  systemowym,  to  plik  zawiera
              wartość  -1  w  miejscu  numeru wywołania systemowego, po którym następują wartości
              wskaźnika stosu i licznika programu. Jeśli proces nie  jest  zablokowany,  to  plik
              zawiera łańcuch "running".

              Obecne tylko, jeśli jądro zostało skonfigurowane z CONFIG_HAVE_ARCH_TRACEHOOK.

       /proc/[pid]/task (od Linuksa 2.6.0-test6)
              Jest  to katalog zawierający po jednym podkatalogu dla każdego wątku procesu. Nazwą
              każdego podkatalogu jest numeryczne ID ([tid]) wątku  (patrz  gettid(2)).  Każdy  z
              podkatalogów  zawiera  zbiór  plików  o  tej samej nazwie i zawartości, co katalogi
              /proc/[pid]. Dla atrybutów, które są współdzielone przez wszystkie wątki  zawartość
              każdego  z  plików  w  podkatalogach  task/[tid]  będzie  taka  sama  jak zawartość
              odpowiednich plików w nadrzędnym katalogu /proc/[pid] (np. w procesie wielowątkowym
              wszystkie   pliki   task/[tid]/cwd   będą  miały  taką  samą  zawartość,  jak  plik
              /proc/[pid]/cwd w katalogu nadrzędnym,  ponieważ  wszystkie  wątki  procesu  dzielą
              katalog  bieżący).  Dla  atrybutów,  które  dla każdego wątku są różne, odpowiednie
              pliki wtask/[tid] mogą mieć różne wartości  (np.  różne  pola  w  każdym  z  plików
              task/[tid]/status mogą być inne dla każdego wątku).

              W  procesie  wielowątkowym  zawartość katalogu /proc/[pid]/task  nie jest dostępna,
              jeżeli   wątek   główny   już   się   zakończył    (najprawdopodobniej    wywołując
              pthread_exit(3)).

       /proc/[pid]/timers (od Linuksa 3.10)
              Lista  liczników  czasu  POSIX  dla procesu. Każdy licznik jest wypisany w wierszu,
              który rozpoczyna się łańcuchem "ID:". Na przykład:

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

              Wiersze dla każdego licznika mają następujące znaczenie:

              ID     Identyfikator danego licznika czasu. Nie jest to ten sam  identyfikator,  co
                     ten   zwracany   przez   timer_create(2),   lecz   jest  to  wewnątrzjądrowy
                     identyfikator dostępny również za pomocą pola si_timerid struktury siginfo_t
                     (zob. sigaction(2)).

              signal Numer  sygnału  używany  przez  dany licznik do dostarczania powiadomień, po
                     którym następuje ukośnik a  następnie  wartość  sigev_value  dostarczana  do
                     obsługiwacza  sygnału.  Poprawne  jedynie  dla liczników powiadamiających za
                     pomocą sygnału.

              notify Część przed ukośnikiem określa mechanizm używany przez dany licznik czasu do
                     dostarczania  powiadomień,  który  jest  jedną  z wartości "thread" (wątek),
                     "signal" (sygnał) lub "none" (brak). Zaraz po ukośniku znajduje się  łańcuch
                     "tid"   dla  liczników  z  powiadomieniami  SIGEV_THREAD_ID  lub  "pid"  dla
                     liczników z innymi mechanizmami  powiadamiania.  Po  "."  znajduje  się  PID
                     procesu   (lub   identyfikator   wątku  jądra  tego  wątku)  któremu  będzie
                     dostarczany sygnał, jeśli licznik czasu powiadamia za pomocą sygnału.

              ClockID
                     Pole identyfikuje zegar, którego dany licznik czasu używa do pomiaru  czasu.
                     W  większości  zegarów  jest  to  liczba  która  pasuje do jednej ze stałych
                     CLOCK_*  w  przestrzeni  użytkownika  udostępnianych  za  pomocą   <time.h>.
                     Liczniki  CLOCK_PROCESS_CPUTIME_ID  wyświetlają  tu  wartość  -6,  natomiast
                     CLOCK_THREAD_CPUTIME_ID wyświetlają wartość -2.

              Plik    ten    jest    dostępny    tylko    jeśli    jądro     skonfigurowano     z
              CONFIG_CHECKPOINT_RESTORE.

       /proc/[pid]/uid_map, /proc/[pid]/gid_map (od Linuksa 3.5)
              Zob. user_namespaces(7).

       /proc/[pid]/wchan (od Linuksa 2.6.0)
              Nazwa symboliczna odnosząca się do położenia, gdzie proces jest w uśpieniu.

       /proc/apm
              Wersja  APM (Zaawansowane zarządzanie energią) oraz informacja o akumulatorach, gdy
              CONFIG_APM było zdefiniowane podczas kompilacji jądra.

       /proc/buddyinfo
              Plik   ten   zawiera   informacje   używane   do    diagnozowania    problemów    z
              fragmentacją pamięci. Każdy wiersz zaczyna się identyfikatorem węzła i nazwą strefy
              które razem identyfikują region pamięci. Następnie znajduje się  liczba  dostępnych
              fragmentów  określonego  rzędu, w jakim te regiony są podzielone. Rozmiar w bajtach
              określonego rzędu jest podany według wzoru:

                  (2^rząd) * ROZMIAR_STRONY

              Algorytm alokacji bliźniaków (ang. buddy) wewnątrz jądra podzieli jeden fragment na
              dwa  fragmenty mniejszego rzędu (a więc dwukrotnie mniejsze) lub połączy dwa ciągłe
              fragmenty w jeden fragment wyższego rzędu (a więc dwukrotnie większy) aby zaspokoić
              żądanie  alokacji  i  przeciwdziałać  fragmentacji  pamięci.  Rząd pasuje do numeru
              kolumny, zaczynając liczenie od zera.

              Na przykład w systemie x86_64:

  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

              W tym przykładzie jest jeden węzeł  zawierający  trzy  strefy  i  11  fragmentów  o
              różnych  rozmiarach.  Jeśli  rozmiar strony wynosi 4 kilobajty, to pierwsza strefa,
              nazywana DMA (na x86 jest to pierwszych 16 megabajtów pamięci), ma  dostępny  m.in.
              jeden  fragment  o  rozmiarze  4  kilobajtów  (rząd  0) i 3 fragmenty o rozmiarze 4
              megabajtów (rząd 10).

              Jeśli pamięć jest mocno pofragmentowana, liczniki  dla  fragmentów  wyższego  rzędu
              wyniosą zero, a przydzielenie większych, ciągłych powierzchni nie powiedzie się.

              Więcej informacji o strefach można znaleźć w /proc/zoneinfo.

       /proc/bus
              Zawiera podkatalogi odpowiadające zainstalowanym magistralom.

       /proc/bus/pccard
              Podkatalog  dla  urządzeń  PCMCIA,  gdy  CONFIG_PCMCIA  było  zdefiniowane  podczas
              kompilacji jądra.

       /proc/bus/pccard/drivers

       /proc/bus/pci
              Zawiera różne podkatalogi  magistral  oraz  pseudopliki  zawierające  informacje  o
              magistralach PCI, zainstalowanych urządzeniach oraz sterownikach urządzeń. Niektóre
              z tych plików nie są w postaci ASCII.

       /proc/bus/pci/devices
              Informacje o urządzeniach PCI. Dostęp do nich może się odbywać poprzez  lspci(8)  i
              setpci(8).

       /proc/cmdline
              Argumenty  przekazane  jądru  Linux podczas startu systemu. Zazwyczaj odbywa się to
              poprzez zarządcę startu systemu, takiego jak lilo(8) lub grub(8).

       /proc/config.gz (od Linuksa 2.6)
              Plik pokazuje opcje  konfiguracyjne,  które  były  użyte  do  zbudowania  aktualnie
              działającego  jądra,  w  tym  samym formacie, jaki jest używany przez plik .config,
              który jest wynikiem konfiguracji  jądra  (używając  make  xconfig,  make  config  i
              podobnych  poleceń).  Zawartość  pliku  jest  skompresowana;  można ją odczytać lub
              wyszukać za pomocą zcat(1) i zgrep(1). Tak długo jak nie zostały dokonane zmiany  w
              poniższym  pliku,  zawartość  /proc/config.gz  jest  taka  sama jak ta udostępniona
              przez:

                  cat /lib/modules/$(uname -r)/build/.config

              /proc/config.gz jest udostępniany wyłącznie wtedy, gdy jądro jest skonfigurowane  z
              CONFIG_IKCONFIG_PROC.

       /proc/crypto
              Lista  szyfrów  udostępnianych  przez  API  szyfrowania  jądra.  Więcej  szczegółów
              znajduje się w dokumentacji jądra Linux Kernel  Crypto  API  dostępnej  w  katalogu
              źródeł  jądra Documentation/DocBook (można ją zbudować np. poleceniem make htmldocs
              wydanym w głównym katalogu drzewa źródeł jądra).

       /proc/cpuinfo
              Jest to zbiór elementów  zależnych  od  CPU  i  architektury  systemu;  dla  każdej
              wspieranej  architektury  jest inna lista. Dwa popularne wpisy to: processor, który
              udostępnia numer CPU oraz bogomips; jest  to  stała  systemowa,  wyliczona  podczas
              inicjalizacji  jądra.  Maszyny  SMP  zawierają  informacje  o  każdym z procesorów.
              Polecenie lscpu(1) zbiera ich informacje z tego pliku.

       /proc/devices
              Listing tekstowy numerów głównych oraz  grup  urządzeń.  Może  to  służyć  skryptom
              MAKEDEV do zachowania spójności z jądrem.

       /proc/diskstats (od wersji Linuksa 2.5.69)
              Plik  zawiera statystyki operacji wejścia/wyjścia dla każdego urządzenia dyskowego.
              Dalsze informacje można znaleźć w pliku Documentation/iostats.txt w źródłach  jądra
              Linux.

       /proc/dma
              Jest  listą  zarejestrowanych  i używanych kanałów DMA (direct memory access) szyny
              ISA.

       /proc/driver
              Pusty podkatalog.

       /proc/execdomains
              Lista domen uruchamiania  (wcieleń  ABI  [Application  Binary  Interface  -  przyp.
              tłum.]).

       /proc/fb
              Informacje o buforze ramki, o ile podczas kompilacji jądra zdefiniowano CONFIG_FB.

       /proc/filesystems
              Tekstowa  lista  systemów  plików  obsługiwanych przez jądro, a konkretnie systemów
              plików, które zostały wkompilowane w jądro lub  których  moduły  jądra  są  obecnie
              załadowane  (patrz również filesystems(5)). Jeśli system plików jest oznaczony jako
              "nodev" oznacza to, że nie wymaga on zamontowania urządzenia blokowego (np. jest to
              wirtualny lub sieciowy system plików).

              Plik  ten  może być niekiedy użyty przez mount(8), gdy nie podano systemów plików i
              nie potrafi on określić typu systemu plików. Próbowane są  wówczas  systemy  plików
              wypisane w tym pliku (poza systemami z oznaczeniem "nodev").

       /proc/fs
              Zawiera  podkatalogi, które w kolejności zawierają pliki z informacjami o (pewnych)
              zamontowanych systemach plików.

       /proc/ide
              Katalog ten istnieje w systemach zawierających magistralę IDE.  Zawiera  po  jednym
              katalogu dla każdego kanału IDE oraz dla przyłączonych urządzeń. Wśród plików są:

                  cache              rozmiar bufora w KB
                  capacity           liczba sektorów
                  driver             wersja sterownika
                  geometry           geometria fizyczna i logiczna
                  identify           szesnastkowo
                  media              rodzaj nośnika
                  model              numer modelu producenta
                  settings           ustawienia napędu
                  smart_thresholds   szesnastkowo
                  smart_values       szesnastkowo

              Dostęp  do  tych  informacji  w  przyjaznym  formacie umożliwia program narzędziowy
              hdparm(8).

       /proc/interrupts
              Plik  jest  używany  do  zapisania  liczby  przerwań  na  procesor  na   urządzenie
              wejścia/wyjścia.  Od  Linuksa  2.6.24,  przynajmniej  do  architektur i386 i x86_64
              zawiera on  również  przerwania  wewnętrznosystemowe  (to  znaczy  nie  związane  z
              urządzeniem  jako  takim),  takie jak NMI (nonmaskable interrupt), LOC (local timer
              interrupt) i  do  systemów  SMP:  TLB  (TLB  flush  interrupt),  RES  (rescheduling
              interrupt),  CAL  (remote  function  call interrupt), mogą również występować inne.
              Formatowanie jest bardzo czytelne do odczytu, wykonane w ASCII.

       /proc/iomem
              Odwzorowanie portów we/wy w pamięci w Linuksie 2.4.

       /proc/ioports
              Jest to lista obecnie zarejestrowanych i używanych obszarów portów we/wy.

       /proc/kallsyms (od wersji Linuksa 2.5.71)
              Zawiera wyeksportowane przez  jądro  definicje  symboli,  które  są  używane  przez
              narzędzia modules(X) do dynamicznego podłączania ładowanych modułów. W wersji jądra
              Linux 2.5.47 i wcześniejszych podobny  plik  z  troszkę  odmienną  zawartością  był
              nazwany ksyms.

       /proc/kcore
              Plik  ten  reprezentuje  pamięć  fizyczną systemu i jest zachowany w formacie pliku
              core dla ELF. Korzystając z tego pseudopliku  oraz  z  niezestripowanego  binarnego
              pliku  jądra  (/usr/src/linux/vmlinux),  można za pomocą GDB testować aktualny stan
              dowolnej struktury danych jądra.

              Całkowity rozmiar tego pliku to rozmiar fizycznej pamięci (RAM) plus 4 KB.

       /proc/kmsg
              Plik ten może służyć do  odczytu  komunikatów  jądra,  zamiast  funkcji  systemowej
              syslog(2).  Aby  odczytać ten plik, proces musi mieć uprawnienia superużytkownika i
              tylko jeden proces powinien dokonywać jego odczytu. Pliku tego nie  należy  czytać,
              gdy   działa   proces  syslog,  korzystający  z  funkcji  systemowej  syslog(2)  do
              rejestrowania komunikatów jądra.

              Z tego pliku pobiera komunikaty program dmesg(1).

       /proc/kpagecount (od Linuksa 2.6.25)
              Plik zawiera 64-bitowy licznik wskazujący ile razy zmapowano każdą z  ramek  strony
              fizycznej, indeksowaną numerem ramki strony (zob. opis w /proc/[pid]/pagemap).

              Plik  /proc/kpagecount istnieje tylko jeśli podczas kompilacji jądra włączono opcję
              CONFIG_PROC_PAGE_MONITOR.

       /proc/kpageflags (od Linuksa 2.6.25)
              Plik zawiera  64-bitowe  maski  odpowiadające  każdej  z  ramek  strony  fizycznej;
              indeksowanej   numerem   ramki   strony  (zob.  opis  w  /proc/[pid]/pagemap).  Oto
              zestawienie poszczególnych bitów:

                   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           (od Linuksa 2.6.31)
                  12 - KPF_ANON           (od Linuksa 2.6.31)
                  13 - KPF_SWAPCACHE      (od Linuksa 2.6.31)
                  14 - KPF_SWAPBACKED     (od Linuksa 2.6.31)
                  15 - KPF_COMPOUND_HEAD  (od Linuksa 2.6.31)
                  16 - KPF_COMPOUND_TAIL  (od Linuksa 2.6.31)
                  16 - KPF_HUGE           (od Linuksa 2.6.31)
                  18 - KPF_UNEVICTABLE    (od Linuksa 2.6.31)
                  19 - KPF_HWPOISON       (od Linuksa 2.6.31)
                  20 - KPF_NOPAGE         (od Linuksa 2.6.31)
                  21 - KPF_KSM            (od Linuksa 2.6.32)
                  22 - KPF_THP            (od Linuksa 3.4)

              Więcej informacji o  znaczeniu  tych  bitów  znajduje  się  w  pliku  źródeł  jądra
              Documentation/vm/pagemap.txt.     Przed    wersją 2.6.29    jądra    KPF_WRITEBACK,
              KPF_RECLAIM, KPF_BUDDY i KPF_LOCKED nie były poprawnie zgłaszane.

              Plik /proc/kpageflags istnieje tylko jeśli podczas kompilacji jądra włączono  opcję
              CONFIG_PROC_PAGE_MONITOR.

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

       /proc/loadavg
              Pierwsze  trzy  pola  w  tym  pliku  zawierają średnie obciążenie (loadavg) podając
              informację o średniej liczbie zadań uruchomionych  (stan  R)  oraz  czekających  na
              dyskowe  operacje  wejścia/wyjścia (stan D)  w ciągu ostatnich 1, 5  i 15 minut. Są
              to te same wartości średniego obciążenia, które podaje uptime(1) i  inne  programy.
              Czwarte  pole  zawiera  dwie  liczby  oddzielone  od  siebie  znakiem ukośnika (/).
              Pierwsza z nich jest liczbą obecnie wykonywanych zadań (procesów, wątków).  Wartość
              za  ukośnikiem  jest  liczbą  zadań,  obecnych  w  systemie. Piąte pole zawiera PID
              najnowszego ostatnio utworzonego procesu w systemie.

       /proc/locks
              Plik ten pokazuje aktualne blokady plików  (flock(2)  i  fcntl(2))  oraz  dzierżawy
              (fcntl(2)).

       /proc/malloc (tylko do wersji 2.2 Linuksa włącznie)
              Ten plik istnieje tylko jeśli podczas kompilacji zdefiniowano CONFIG_DEBUG_MALLOC.

       /proc/meminfo
              Plik  zawiera  statystyki  nt.  użycia  pamięci  w  systemie.  Używa  go free(1) do
              wskazania wielkości wolnej i użytej pamięci (zarówno fizycznej  jak  i  wymiany)  w
              systemie  jak  również  pamięci  dzielonej  i  buforów używanych przez jądro. Każdy
              wiersz składa się z nazwy parametru, dwukropka, wartości  parametru  i  opcjonalnej
              jednostki  pomiaru  (np.  "kB").  Poniższa  lista opisuje nazwy parametrów i format
              wymagany do odczytu wartości pól. Z wyjątkiem wyraźnie wskazanych pól, wszystkie są
              obecne od co najmniej Linuksa 2.6.0. Część pól jest wyświetlanych tylko jeśli jądro
              zostało skonfigurowane z  pewnymi  opcjami,  te  zależności  zaznaczono  wówczas  w
              opisie.

              MemTotal %lu
                     Całkowity  użyteczny  RAM  (tzn. pamięć fizyczna RAM - kilka zarezerwowanych
                     bitów i kod binarny jądra).

              MemFree %lu
                     Suma LowFree+HighFree.

              MemAvailable %lu (od Linuksa 3.14)
                     Przybliżona wartość dostępnej pamięci do uruchamiania nowych aplikacji,  bez
                     pamięci wymiany.

              Buffers %lu
                     Relatywnie tymczasowe miejsce przechowywania surowych bloków dyskowych które
                     nie powinno być zbyt duże (rzędu 20 MB).

              Cached %lu
                     Bufor w pamięci przeznaczony na plik odczytane z dysku (bufora strony).  Nie
                     obejmuje SwapCached.

              SwapCached %lu
                     Pamięć, która została przeniesiona do pamięci wymiany jest później pobierana
                     do pamięci i pozostawiana jednocześnie w  pliku  wymiany  (jeśli  jest  duże
                     zapotrzebowanie  na  pamięć, te strony nie muszą być ponownie przenoszone do
                     pamięci wymiany, ponieważ już znajdują się w pliku wymiany. Unika się w  ten
                     sposób zbędnych operacji wejścia/wyjścia).

              Active %lu
                     Pamięć  która  była  ostatnio  używana.  Z  reguły nie jest odzyskiwana poza
                     absolutnie koniecznymi przypadkami.

              Inactive %lu
                     Pamięć która była ostatnio słabiej używana. Nadaje się w większym stopniu do
                     odzyskania do innych celów.

              Active(anon) %lu (od Linuksa 2.6.28)
                     [do udokumentowania]

              Inactive(anon) %lu (od Linuksa 2.6.28)
                     [do udokumentowania]

              Active(file) %lu (od Linuksa 2.6.28)
                     [do udokumentowania]

              Inactive(file) %lu (od Linuksa 2.6.28)
                     [do udokumentowania]

              Unevictable %lu (od Linuksa 2.6.28)
                     (Od  Linuksa  2.6.28  do  2.6.30  wymagane było CONFIG_UNEVICTABLE_LRU)  [do
                     udokumentowania]

              Mlocked %lu (od Linuksa 2.6.28)
                     (Od Linuksa 2.6.28 do  2.6.30  wymagane  było  CONFIG_UNEVICTABLE_LRU)   [do
                     udokumentowania]

              HighTotal %lu
                     (od  Linuksa 2.6.19 wymagane jest CONFIG_HIGHMEM) Całkowita wielkość pamięci
                     highmem. Jest to pamięć powyżej ~860MB pamięci fizycznej. Obszary highmem są
                     przeznaczone  do  użycia  przez programy w przestrzeni użytkownika lub przez
                     bufor strony. Jądro musi używać pewnych sztuczek aby uzyskać dostęp  do  tej
                     pamięci, co czyni dostęp wolniejszym niż do pamięci lowmem.

              HighFree %lu
                     (od  Linuksa  2.6.19  wymagane  jest CONFIG_HIGHMEM) Wielkość wolnej pamięci
                     highmem.

              LowTotal %lu
                     (od Linuksa 2.6.19 wymagane jest CONFIG_HIGHMEM) Wielkość całkowita  pamięci
                     lowmem.  Lowmem  to pamięć którą można użyć do tych samych celów co highmem,
                     lecz jest również dostępna dla wewnętrznych struktur danych jądra.  Jest  to
                     między  innymi  miejsce,  gdzie  przydzielane  jest  wszystko  ze  Slab. Gdy
                     zabraknie pamięci lowmem należy się spodziewać złych wiadomości.

              LowFree %lu
                     (od Linuksa 2.6.19 wymagane jest  CONFIG_HIGHMEM)  Wielkość  wolnej  pamięci
                     lowmem.

              MmapCopy %lu (od Linuksa 2.6.29)
                     (wymagane jest CONFIG_MMU)  [do udokumentowania]

              SwapTotal %lu
                     Całkowita wielkość dostępnej pamięci wymiany.

              SwapFree %lu
                     Wielkość aktualnie nieużywanej pamięci wymiany.

              Dirty %lu
                     Pamięć czekająca na ponowny zapis na dysk.

              Writeback %lu
                     Pamięć zapisywana obecnie na dysk.

              AnonPages %lu (od Linuksa 2.6.18)
                     Strony  nie  mające  zapasu  w  postaci  pliku  zmapowane  do  tabel stron w
                     przestrzeni użytkownika.

              Mapped %lu
                     Pliki które zostały zmapowane do pamięci (za pomocą mmap(2)) np. biblioteki.

              Shmem %lu (od Linuksa 2.6.32)
                     [do udokumentowania]

              Slab %lu
                     Wewnętrzny bufor jądra przeznaczony na jego struktury danych.

              SReclaimable %lu (od Linuksa 2.6.19)
                     Część Slab, która może być przypisana ponownie, taka jak pamięć podręczna.

              SUnreclaim %lu (od Linuksa 2.6.19)
                     Część Slab niemogąca być przypisana ponownie przy małej ilości pamięci.

              KernelStack %lu (od Linuksa 2.6.32)
                     Wielkość pamięci przypisana do stosów jądra.

              PageTables %lu (od Linuksa 2.6.18)
                     Wielkość pamięci przypisana do najniższego poziomu tabel stron.

              Quicklists %lu (od Linuksa 2.6.27)
                     (wymagane jest CONFIG_QUICKLIST)  [do udokumentowania]

              NFS_Unstable %lu (od Linuksa 2.6.18)
                     Strony NFS wysłane do serwera, lecz  jeszcze  nie  wprowadzone  na  stabilny
                     nośnik.

              Bounce %lu (od Linuksa 2.6.18)
                     Pamięć używana do urządzenia blokowego "bounce buffer".

              WritebackTmp %lu (od Linuksa 2.6.26)
                     Pamięć  używana  przez  FUSE  do tymczasowych buforów pamięci z buforowaniem
                     zapisu.

              CommitLimit %lu (od Linuksa 2.6.10)
                     Jest to całkowita wielkość pamięci  dostępnej  obecnie  do  przydzielenia  w
                     systemie  wyrażona  w  kilobajtach.  Limit  jest  przestrzegany  jedynie gdy
                     włączono     ścisłe     rozliczanie     overcommitu      (tryb      2      w
                     /proc/sys/vm/overcommit_memory).  Limit  jest  obliczany  na podstawie wzoru
                     opisanego przy /proc/sys/vm/overcommit_memory.  Więcej  informacji  znajduje
                     się w pliku źródeł jądra Documentation/vm/overcommit-accounting.

              Committed_AS %lu
                     Wielkość  pamięci  obecnie  przypisanej  w  systemie.  Jest  to suma pamięci
                     zaalokowanej przez procesy, nawet jeśli  jej  jeszcze  nie  "użyły".  Proces
                     alokujący  1  GB  pamięci  (za  pomocą  malloc(3) lub podobnej konstrukcji),
                     używający jedynie 300 MB  pamięci,  będzie  pokazywał  użycie  tych  300  MB
                     pamięci, nawet jeśli przydzielił przestrzeń adresową dla całego 1 GB.

                     Ten  1  GB  to pamięć "zatwierdzona" przez VM, która może być użyta przez tę
                     aplikację w dowolnym czasie. Gdy włączone jest ścisły overcommit (tryb  2  w
                     /proc/sys/vm/overcommit_memory)  alokacja  która  przekroczyłaby CommitLimit
                     jest niedozwolona. Jest to  przydatne  do  zagwarantowania,  że  proces  nie
                     zawiedzie z powodu braku pamięci po jej poprawnym przydzieleniu.

              VmallocTotal %lu
                     Całkowity rozmiar obszaru pamięci vmalloc.

              VmallocUsed %lu
                     Wielkość używanego obszaru vmalloc.

              VmallocChunk %lu
                     Największy wolny ciągły blok obszaru vmalloc.

              HardwareCorrupted %lu (od Linuksa 2.6.32)
                     (wymagane jest CONFIG_MEMORY_FAILURE)  [do udokumentowania]

              AnonHugePages %lu (od Linuksa 2.6.38)
                     (wymagane  jest CONFIG_TRANSPARENT_HUGEPAGE) Duże strony nie mające zapasu w
                     postaci pliku zmapowane do tabel stron w przestrzeni użytkownika.

              CmaTotal %lu (od Linuksa 3.1)
                     Łącznie stron CMA (Contiguous Memory Allocator) (wymagane jest CONFIG_CMA).

              CmaFree %lu (od Linuksa 3.1)
                     Wolne strony CMA (Contiguous Memory Allocator) (wymagane jest CONFIG_CMA)

              HugePages_Total %lu
                     (wymagane jest CONFIG_HUGETLB_PAGE) Rozmiar puli dużych stron.

              HugePages_Free %lu
                     (wymagane jest CONFIG_HUGETLB_PAGE) Liczba dużych stron w puli, które nie są
                     jeszcze przydzielone.

              HugePages_Rsvd %lu (od Linuksa 2.6.17)
                     (wymagane  jest  CONFIG_HUGETLB_PAGE)  Jest  to  liczba  dużych  stron które
                     przeznaczono do przydzielenia z puli, lecz jeszcze jej  nie  przeprowadzono.
                     Zarezerwowane duże strony gwarantują, że aplikacja będzie w stanie przypisać
                     taką stronę w razie błędu.

              HugePages_Surp %lu (od Linuksa 2.6.24)
                     (wymagane jest CONFIG_HUGETLB_PAGE) Jest  to  liczba  dużych  stron  z  puli
                     powyżej   wartości  /proc/sys/vm/nr_hugepages.  Maksymalna  liczba  nadwyżki
                     dużych stron jest kontrolowana przez /proc/sys/vm/nr_overcommit_hugepages.

              Hugepagesize %lu
                     (wymagane jest CONFIG_HUGETLB_PAGE) Rozmiar dużych stron.

              DirectMap4k %lu (od Linuksa 2.6.27)
                     Liczba bajtów RAM-u liniowo przypisanych przez jądro w stronach 4kB (x86).

              DirectMap4M %lu (od Linuksa 2.6.27)
                     Liczba bajtów RAM-u liniowo przypisanych przez jądro w stronach 4MB  (x86  z
                     włączonym CONFIG_X86_64 lub CONFIG_X86_PAE).

              DirectMap2M %lu (od Linuksa 2.6.27)
                     Liczba bajtów RAM-u liniowo przypisanych przez jądro w stronach 2MB (x86 bez
                     włączonego CONFIG_X86_64 ani CONFIG_X86_PAE).

              DirectMap1G %lu (od Linuksa 2.6.27)
                     (x86 z włączonym CONFIG_X86_64 i CONFIG_X86_DIRECT_GBPAGES)

       /proc/modules
              Tekstowa lista modułów, które załadowano w systemie. Zobacz także lsmod(8).

       /proc/mounts
              Przed jądrem 2.4.19 plik ten był listą  wszystkich  systemów  plików  zamontowanych
              aktualnie w systemie. Wraz z wprowadzeniem przestrzeni nazw montowań przydzielanych
              dla procesu w Linuksie 2.4.19, plik ten stał się dowiązaniem do  /proc/self/mounts,
              który  zawiera listę punktów montowań we własnej przestrzeni nazw montowań procesu.
              Format tego pliku jest opisany w fstab(5).

       /proc/mtrr
              Memory Type Range Registers. Szczegóły można znaleźć w  pliku  źródeł  jądra  Linux
              Documentation/mtrr.txt.

       /proc/net
              Różne  sieciowe  pseudopliki, z których wszystkie podają stan pewnej części warstwy
              sieciowej. Plik ten zawiera struktury ASCII i dlatego  nadaje  się  do  odczytu  za
              pomocą  cat(1).  Jednak  standardowy pakiet netstat(8) daje dużo czystszy dostęp do
              tych plików.

       /proc/net/arp
              Zawiera zrzut tabeli ARP jądra  używanej  do  rozwiązywania  adresów,  w  czytelnej
              postaci  ASCII.  Pokazane  zostaną  zarówno  wyuczone  dynamicznie,  jak i wstępnie
              zaprogramowane wpisy w tabeli ARP. Format jest następujący:

        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

              Gdzie "IP address" jest adresem IPv4 maszyny, a "HW type" jest rodzajem sprzętu  wg
              RFC 826.   "Flags"  są  to  wewnętrzne  znaczniki  struktury  ARP  (zdefiniowane  w
              /usr/include/linux/if_arp.h),  a  "HW  address"  jest  odwzorowaniem  adresu  IP  w
              warstwie fizycznej, jeśli jest ono określone.

       /proc/net/dev
              Pseudoplik  dev  zawiera  informacje  o stanie urządzenia sieciowego. Zawierają one
              liczbę otrzymanych  i  wysłanych  pakietów,  liczbę  błędów  i  kolizji  oraz  inne
              podstawowe statystyki. Informacje te są wykorzystywane przez program ifconfig(8) do
              informowania o stanie urządzenia. Format jest następujący:

 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
              Zdefiniowany w /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
              Internetowy      Protokół      Zarządzania      Grupami.       Zdefiniowany       w
              /usr/src/linux/net/core/igmp.c.

       /proc/net/rarp
              Plik  ten  ma  ten  sam  format,  co  plik  arp  i zawiera aktualną bazę odwrotnych
              odwzorowań, używaną do udostępniania usług odwrotnego poszukiwania adresów rarp(8).
              Jeśli RARP nie jest skonfigurowane w jądrze, to plik ten nie będzie istniał.

       /proc/net/raw
              Zawiera   zrzut  tabeli  gniazd  surowych  (RAW).  Większość  informacji  nie  jest
              przeznaczona do użytku innego niż odpluskwiania. Wartość "sl" jest slotem mieszania
              jądra  dla  gniazda,  "local_address" jest parą składającą się z lokalnego adresu i
              numeru protokołu. "st" jest stanem wewnętrznym gniazda. "tx_queue" i "rx_queue"  są
              kolejkami  danych  przychodzących  i  wychodzących, w sensie zużycia pamięci jądra.
              Pola "tr", "tm->when" i "rexmits" nie są używane przez gniazda surowe.  Pole  "uid"
              zawiera efektywny UID twórcy gniazda.

       /proc/net/snmp
              Ten  plik zawiera dane ASCII potrzebne bazom agenta SNMP zarządzającym informacjami
              o IP, ICMP, TCP i UDP.

       /proc/net/tcp
              Zawiera zrzut tabeli gniazd TCP. Wiele informacji nie przydaje się do  użytku  poza
              odpluskwianiem.   Wartość   "sl"   jest   slotem   mieszania   jądra  dla  gniazda,
              "local_address" jest parą  składającą  się  z  lokalnego  adresu  i  numeru  portu.
              "rem_address"  jest  parą  składającą  się ze zdalnego adresu i numeru portu (jeśli
              gniazdo jest podłączone).  "St"  jest  stanem  wewnętrznym  gniazda.  "tx_queue"  i
              "rx_queue"  są  kolejkami  danych  przychodzących  i  wychodzących w sensie zużycia
              pamięci jądra. Pola "tr", "tm-when" i "rexmits" zawierają wewnętrzne  informacje  o
              stanie  gniazda  w jądrze i są przydatne tylko do odpluskwiania. Pole "uid" zawiera
              efektywny UID twórcy gniazda.

       /proc/net/udp
              Zawiera zrzut tabeli gniazd UDP. Wiele informacji nie przydaje się do  użytku  poza
              odpluskwianiem.   Wartość   "sl"   jest   slotem   mieszania   jądra  dla  gniazda,
              "local_address" jest parą  składającą  się  z  lokalnego  adresu  i  numeru  portu.
              "rem_address"  jest  parą  składającą  się ze zdalnego adresu i numeru portu (jeśli
              gniazdo jest podłączone).  "st"  jest  stanem  wewnętrznym  gniazda.  "tx_queue"  i
              "rx_queue"  są  kolejkami  danych  przychodzących  i  wychodzących w sensie zużycia
              pamięci jądra. Pola "tr", "tm-when" i "rexmits" nie są  używane  w  gniazdach  UDP.
              Pole "uid" zawiera efektywny UID twórcy gniazda. Format jest następujący:

 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
              Wymienia  gniazda  domeny  UNIX,  obecne  w  systemie  oraz  ich  stan. Format jest
              następujący:
              Num RefCount Protocol Flags    Type St Path
               0: 00000002 00000000 00000000 0001 03
               1: 00000001 00000000 00010000 0001 01 /dev/printer

              Występują następujące pola:

              Num:      numer slotu tabeli jądra.

              RefCount: numer użytkowników gniazda.

              Protocol: obecnie zawsze 0.

              Flags:    wewnętrzne flagi jądra przechowujące status gniazda.

              Type:     typ gniazda. Dla gniazd SOCK_STREAM jest to 0001; dla  gniazd  SOCK_DGRAM
                        jest to 0002, a dla gniazd SOCK_SEQPACKET jest to 0005.

              St:       wewnętrzny stan gniazda.

              Path:     ścieżka   powiązana   z   gniazdem   (jeśli   występuje).  W  tej  liście
                        są uwzględnione ścieżki będące w abstrakcyjnej  przestrzeni  nazw  —  ich
                        Path zaczyna się znakiem "@".

       /proc/net/netfilter/nfnetlink_queue
              Plik  zawiera  informacji o kolejkowaniu netfilter w przestrzeni użytkownika. Każdy
              wiersz reprezentuje kolejkę.  Kolejki  które  nie  zostały  wpisane  z  przestrzeni
              użytkownika nie są pokazywane.

                 1   4207     0  2 65535     0     0        0  1
                (1)   (2)    (3)(4)  (5)    (6)   (7)      (8)

              Pola w każdym wierszu są następujące:

              (1)  Identyfikator  kolejki.  Pasuje  on do tego co określono w opcjach --queue-num
                   lub --queue-balance do celu NFQUEUE iptables(8).  Zob.  iptables-extensions(8)
                   aby uzyskać więcej informacji.

              (2)  Identyfikator portu netlink zapisanego do kolejki.

              (3)  Liczba  pakietów  obecnie zakolejkowanych i czekających na przetworzenie przez
                   aplikację.

              (4)  Tryb kopiowania kolejki. Jest to albo (tylko metadane) lub 2 (kopiuje  również
                   właściwe dane do przestrzeni użytkownika).

              (5)  Zakres  kopii,  tj.  maksymalna  wartość bajtów pakietu właściwych danych jaka
                   powinna być skopiowana do przestrzeni użytkownika.

              (6)  Porzucone kolejki.  Liczba  pakietów,  które  musiały  zostać porzucone  przez
                   jądra,  ponieważ  zbyt  dużo pakietów czekało już na przestrzeń użytkownika na
                   odesłanie obowiązkowych poleceń akceptuj/porzuć.

              (7)  Porzucone kolejki użytkownika. Liczba pakietów porzuconych wewnątrz podsystemu
                   netlink.  Takie  porzucenia  następują  zwykle  przy zapełnieniu odpowiedniego
                   bufora gniazda, tj. przestrzeń  użytkownika  nie  jest  w  stanie  odpowiednio
                   szybko odczytywać wiadomości.

              (8)  Numer   sekwencji.   Każdy   pakiet  kolejki  jest  powiązany  z  (32-bitowym)
                   monotonicznie  rosnącym  numerem  sekwencji.  Pokazuje   to   ID   najnowszego
                   skolejkowanego pakietu.

              Ostatnia liczba istnieje tylko z powodów kompatybilności i wynosi zawsze 1.

       /proc/partitions
              Zawiera  liczby  główne  i  poboczne  każdej  z partycji oraz liczby 1024-bajtowych
              bloków i nazwy partycji.

       /proc/pci
              Listing wszystkich urządzeń PCI znalezionych  podczas  inicjalizacji  jądra  i  ich
              konfiguracja.

              Plik  został  zastąpiony  nowym  interfejsem /proc do PCI (/proc/bus/pci). Stał się
              opcjonalny w Linuksie 2.2 (dostępny przy ustawieniu opcji CONFIG_PCI_OLD_PROC  przy
              kompilacji  jądra).  Ponownie  stał  się  nieopcjonalny  w Linuksie 2.4. Następnie,
              został uznany za przestarzały w Linuksie 2.6 (był wciąż  dostępny  przy  ustawieniu
              CONFIG_PCI_LEGACY_PROC), aż w końcu usunięto go w Linuksie 2.6.17.

       /proc/profile (od Linuksa 2.4)
              Plik  obecny  jest  wyłącznie  jeśli  jądro  zostało  uruchomione z opcją profile=1
              wiersza poleceń. Jądro  udostępni  informacje  dotyczące  profilowania  w  formacie
              binarnym  gotowym  do  użycia przez readprofile(1). Zapis (np. pustego łańcucha) do
              tego pliku wyzeruje liczniki profilowania, a  na  niektórych  architekturach  zapis
              binarnej  liczby  całkowitej  "mnożnika  profilowania"  rozmiaru sizeof(int) ustawi
              częstotliwość przerwań profilowania.

       /proc/scsi
              Katalog  z  pseudoplikiem  scsi  na  pośrednim  poziomie  i  różnymi  podkatalogami
              niskopoziomowych  sterowników  SCSI,  zawierającymi  po  jednym  pliku  dla każdego
              kontrolera SCSI  w  danym  systemie;  każdy  z  nich  podaje  stan  jakiejś  części
              podsystemu  we/wy  SCSI. Pliki te zawierają struktury ASCII i dlatego nadają się do
              odczytu za pomocą cat(1).

              Możliwy jest  też  zapis  do  niektórych  z  tych  plików,  w  celu  rekonfiguracji
              podsystemu, lub przełączania różnych parametrów.

       /proc/scsi/scsi
              Jest  wypisaniem  wszystkich  znanych  jądru urządzeń SCSI. Listing jest podobny do
              widzianego  podczas  ładowania  systemu.  scsi  wspiera  obecnie  tylko   polecenie
              add-single-device   umożliwiające   rootowi   dodanie  do  listy  znanych  urządzeń
              urządzenia włączonego na gorąco.

              Polecenie

                  echo 'scsi add-single-device 1 0 5 0' > /proc/scsi/scsi

              spowoduje, że kontroler scsi1 przeprowadzi skanowanie kanału SCSI 0 w  poszukiwaniu
              urządzenia o ID 5 i LUN 0. Jeśli już istnieje urządzenie o takim adresie, lub adres
              jest nieprawidłowy, zostanie zwrócony błąd.

       /proc/scsi/[nazwa-sterownika]
              [nazwa-sterownika] może obecnie być jedną z: NCR53c7xx, aha152x, aha1542,  aha1740,
              aic7xxx,  buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug,
              seagate, t128, u15-24f, ultrastore, or wd7000. Ukazują  się  te  z  katalogów,  dla
              których  odpowiednie  sterowniki  zarejestrowały przynajmniej jeden kontroler SCSI.
              Każdy katalog zawiera jeden plik dla każdego zarejestrowanego kontrolera.  Każdy  z
              plików  kontrolera  ma nazwę odpowiadającą numerowi kontrolera, przyznanemu podczas
              jego inicjacji.

              Czytanie tych plików zwykle pokaże konfigurację sterownika i kontrolera, statystyki
              itp.

              Pisanie  do  tych  plików  umożliwia  różne  operacje  na  różnych kontrolerach. Na
              przykład za pomocą poleceń latency i nolatency root może uaktywniać lub deaktywować
              kod  pomiaru czasu oczekiwania dla poleceń (command latency) w sterowniku eata_dma.
              Za pomocą poleceń lockup i unlock root może sterować  symulowanym  przez  sterownik
              scsi_debug blokowaniem magistrali.

       /proc/self
              Ten  katalog  odnosi  się  do  procesu korzystającego z systemu plików /proc i jest
              identyczny z katalogiem w /proc o nazwie będącej jego PID-em.

       /proc/slabinfo
              Informacje o buforach jądra. Od  Linuksa  2.6.16  plik  ten  istnieje  tylko  jeśli
              podczas  kompilacji jądra włączono opcję CONFIG_SLAB. Występują następujące kolumny
              w pliku /proc/slabinfo:

                  cache-name
                  num-active-objs
                  total-objs
                  object-size
                  num-active-slabs
                  total-slabs
                  num-pages-per-slab

              Szczegóły można znaleźć w slabinfo(5).

       /proc/stat
              statystyki jądra/systemu.  Różnią  się  pomiędzy  architekturami.  Wśród  wspólnych
              wpisów są:

              cpu  3357 0 4313 1362393
                     Czas,  wyrażony  w  USER_HZ  (jedna setna sekundy na większości architektur,
                     proszę użyć sysconf(_SC_CLK_TCK)  aby  uzyskać  prawidłową  wartość),  które
                     system spędził w trybie użytkownika w różnych stanach:

                     user   (1) Czas spędzony w trybie użytkownika.

                     nice   (2) Czas spędzony w trybie użytkownika z niskim priorytetem (nice).

                     system (3) Czas spędzony w trybie systemowym.

                     idle   (4)  Czas  wykorzystany  na  zadanie  bezczynności.  Wartość  powinna
                            wynosić USER_HZ razy drugi wpis w pseudopliku /proc/uptime.

                     iowait (od Linuksa 2.5.41)
                            (5) Czas oczekiwania na zakończenie wejścia/wyjścia.

                     irq (od Linuksa 2.6.0-test4)
                            (6) Czas obsługi przerwań.

                     softirq (od Linuksa 2.6.0-test4)
                            (7) Czas obsługi przerwań programowych.

                     steal (od Linuksa 2.6.11)
                            (8) Czas "skradziony", który jest czasem spędzonym w  innym  systemie
                            operacyjnym podczas pracy w środowisku zwirtualizowanym.

                     guest (od Linuksa 2.6.24)
                            (9)  Czas spędzony podczas działania na wirtualnym procesorze systemu
                            operacyjnego gościa, pod kontrolą jądra Linux.

                     guest_nice (od Linuksa 2.6.33)
                            (10) Czas spędzony podczas działania na wirtualnym procesorze systemu
                            operacyjnego gościa, pod kontrolą jądra Linux.

              page 5741 1808
                     Liczba  stron,  które system wstronicował i liczba tych, które wystronicował
                     (z dysku).

              swap 1 0
                     Liczba stron wymiany, które wniesiono i wyniesiono.

              intr 1462898
                     Linia ta pokazuje licznik przerwań obsłużonych  od  czasu  uruchomienia  dla
                     każdego możliwego przerwania systemowego. Pierwsza kolumna określa całkowitą
                     liczbę  wszystkich  obsłużonych  przerwań  w  tym  nienumerowanych  przerwań
                     swoistych  dla  architektury,  każda  następna określa całkowitą wartość dla
                     danego numerowanego przerwania. Nienumerowane przerwania nie są  pokazywane,
                     jedynie sumowane do całości.

              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)
                     (tylko Linux 2.4)

              ctxt 115315
                     Liczba przełączeń kontekstu, które przeszedł system.

              btime 769041601
                     Czas uruchomienia systemu, w sekundach od epoki: 1970-01-01  00:00:00  +0000
                     (UTC).

              processes 86031
                     Liczba rozwidleń procesów od uruchomienia systemu.

              procs_running 6
                     Liczba procesów w stanie runnable (Linux 2.5.45 i późniejsze).

              procs_blocked 2
                     Liczba  procesów oczekujących na zakończenie operacji wejścia/wyjścia (Linux
                     2.5.45 i późniejsze).

       /proc/swaps
              Używane obszary wymiany. Zobacz także swapon(8).

       /proc/sys
              Katalog ten (obecny od 1.3.57) zawiera wiele plików i podkatalogów  odpowiadających
              zmiennym   jądra.  Zmienne  te  mogą  być  odczytywane  i  czasem  modyfikowane  za
              pośrednictwem systemu plików  proc,  jak  też  przy  wykorzystaniu  (przestarzałej)
              funkcji systemowej sysctl(2)

              Wartości łańcuchów mogą się kończyć albo "\0

              Liczby  całkowite  i  długie  wartości  mogą być zapisane  albo  dziesiętnie,  albo
              szesnastkowo (np. 0x3FFF). Przy zapisywaniu wielu  liczb  całkowitych  lub  długich
              wartości  można  je  rozdzielić dowolnym z następujących białych znaków: " ", "\t",
              lub "\n". Użycie innych separatorów wywoła błąd EINVAL.

       /proc/sys/abi (od Linuksa 2.4.10)
              Plik może zawierać pliki z  binarnymi  informacjami  aplikacji.  Dalsze  informacje
              można znaleźć w pliku Documentation/sysctl/abi.txt w źródłach jądra Linux.

       /proc/sys/debug
              Ten katalog może być pusty.

       /proc/sys/dev
              Ten  katalog  zawiera  informacje  specyficzne  dla  poszczególnych  urządzeń. (np.
              dev/cdrom/info). W niektórych systemach może być pusty.

       /proc/sys/fs
              Katalog zawierający pliki i podkatalogi do zmiennych jądra związanych  z  systemami
              plików.

       /proc/sys/fs/binfmt_misc
              Dokumentacja  plików  z  tego  katalogu  znajduje  się  w  źródłach  jądra  Linux w
              Documentation/binfmt_misc.txt.

       /proc/sys/fs/dentry-state (od Linuksa 2.2)
              Plik zawiera informacje o statusie bufora katalogu (dcache). Zawiera  sześć  liczb:
              nr_dentry, nr_unused, age_limit (wiek w sekundach), want_pages (strony żądane przez
              system) i dwie nieużywane wartości.

              * nr_dentry jest liczbą przydzielonych  dentries  (wpisów  dcache).  To  pole  jest
                nieużywane w Linuksie 2.2.

              * nr_unused jest liczbą nieużywanych dentries.

              * age_limit  jest wiekiem w sekundach, po którym wpisy dcache mogą być przydzielone
                ponownie, gdy jest zbyt mało pamięci.

              * want_pages jest niezerowa, gdy jądro wywołało shrink_dcache_pages(),  ale  dcache
                nie zostały jeszcze przycięte.

       /proc/sys/fs/dir-notify-enable
              Plik  ten  może  służyć  do wyłączania lub włączania interfejsu dnotify opisanego w
              fcntl(2) dla całego systemu. Wartość 0 w tym pliku wyłącza interfejs, a  wartość  1
              go włącza.

       /proc/sys/fs/dquot-max
              Zawiera  maksymalną  liczbę  buforowanych wpisów kwot dyskowych. W niektórych (2.4)
              systemach nie występuje. Gdy  liczba  wolnych  zbuforowanych  kwot  dyskowych  jest
              bardzo  mała,  a  jest przerażająca liczba jednoczesnych użytkowników systemu, może
              istnieć potrzeba zwiększenia tego ograniczenia.

       /proc/sys/fs/dquot-nr
              Zawiera liczbę przydzielonych wpisów kwot dyskowych oraz liczbę wolnych wpisów kwot
              dyskowych.

       /proc/sys/fs/epoll (od Linuksa 2.6.28)
              Katalog  zawiera  plik  max_user_watches,  którego można użyć, aby ograniczyć ilość
              pamięci jądra używanej przez interfejs epoll. Więcej  szczegółów  można  znaleźć  w
              epoll(7).

       /proc/sys/fs/file-max
              Zawiera  ogólnosystemowe  ograniczenie  liczby  plików  otwartych  przez  wszystkie
              procesy. Wywołania systemowe które zawiodą przy napotkaniu tych limitów nie powiodą
              się z  błędem  ENFILE.  (Zobacz  także  setrlimit(2), które może służyć procesom do
              ustawiania ograniczenia dla  procesu,  RLIMIT_NOFILE,  jako  liczby  plików,  które
              proces  może  otworzyć).  Gdy otrzymuje się mnóstwo komunikatów w dzienniku jądra o
              przekroczeniu liczby uchwytów plików (file  handles  -  należy  szukać  komunikatów
              takich  jak  "VFS: file-max limit <liczba> reached") , to można spróbować zwiększyć
              tę wartość:

                  echo 100000 > /proc/sys/fs/file-max

              Procesy uprzywilejowane (CAP_SYS_ADMIN) mogą przesłonić limit file-max.

       /proc/sys/fs/file-nr
              Jest to plik (tylko do odczytu)  zawierający  trzy  liczby:  liczbę  przydzielonych
              uchwytów  plików  (tzn.  liczbę  obecnie otwartych plików), liczbę wolnych uchwytów
              plików  i  maksymalną  liczbę  uchwytów  plików  (tzn.  tę  samą   wartość   co   w
              /proc/sys/fs/file-max).  Jeśli  liczba przydzielonych uchwytów plików zbliża się do
              maksimów, należy rozważyć zwiększenie ich. Przed  Linuksem  2.6  jądro  dynamicznie
              przydzielało  uchwyty, lecz nie zwalniało ich. Wolnego uchwyty były przechowywany w
              liście do ponownego przydzielenia, wartość "wolne  uchwyty  plików"  wskazywała  na
              rozmiar tej listy. Duża liczba wolnych uchwytów plików wskazywała, że w przeszłości
              był moment dużego użycia otwartych uchwytów plików. Od Linuksa  2.6  jądro  zwalnia
              wolne uchwyty plików, a wartość "wolne uchwyty plików" zawsze wynosi zero.

       /proc/sys/fs/inode-max (obecny jedynie do Linuksa 2.2)
              Ten  plik  zawiera maksymalną liczbę i-węzłów w pamięci. Wartość ta powinna być 3-4
              razy większa niż wartość w file-max, gdyż stdin, stdout i gniazda sieciowe  również
              potrzebują  i-węzłów,  aby  można było na nich operować. Gdy systematycznie brakuje
              i-węzłów, istnieje potrzeba zwiększenia tej wartości.

              Od jądra Linux 2.4 nie występuje statyczny limit liczby i-węzłów, w związku z  czym
              usunięto ten plik.

       /proc/sys/fs/inode-nr
              Zawiera dwie pierwsze wartości z inode-state.

       /proc/sys/fs/inode-state
              Plik zawiera siedem liczb: nr_inodes, nr_free_inodes, preshrink i cztery nieużywane
              wartości (wynoszące zawsze zero).

              nr_inodes jest liczbą przydzielonych przez  system  i-węzłów.  nr_free_inodes  jest
              liczbą wolnych i-węzłów.

              preshrink  jest  niezerowe,  gdy  nr_inodes  > inode-max i gdy system musi przyciąć
              listę i-węzłów zamiast  przydzielić  ich  więcej;  od  Linuksa  2.4  to  pole  jest
              wartością - atrapą (wynosi zawsze zero).

       /proc/sys/fs/inotify (od wersji Linuksa 2.6.13)
              Ten katalog zawiera pliki max_queued_events, max_user_instances i max_user_watches,
              których można użyć, aby ograniczyć ilość pamięci  jądra  używanej  przez  interfejs
              inotify. Więcej szczegółów można znaleźć w inotify(7).

       /proc/sys/fs/lease-break-time
              Określa  okres ulgi, przez jaki jądro zapewnia procesowi utrzymanie dzierżawy pliku
              (fcntl(2)), a po którym wyśle do tego procesu sygnał  zawiadamiający  go,  że  inny
              proces  oczekuje  na otwarcie pliku. Jeśli utrzymujący dzierżawę nie usunie jej lub
              nie ograniczy swoich praw do niej w przeciągu tego  czasu,  jądro  wymusi  zerwanie
              dzierżawy.

       /proc/sys/fs/leases-enable
              Ten  plik może służyć do ogólnosystemowego włączania lub wyłączania dzierżaw plików
              (fcntl(2)). Gdy plik  ten  zawiera  wartość  0,  dzierżawy  są  wyłączone.  Wartość
              niezerowa włącza dzierżawy.

       /proc/sys/fs/mqueue (od wersji Linuksa 2.6.6)
              Ten  katalog  zawiera  pliki msg_max, msgsize_max i queues_max, kontrolujące zasoby
              używane przez kolejki komunikatów POSIX. Szczegółowe  informacje  można  znaleźć  w
              mq_overview(7).

       /proc/sys/fs/nr_open (od Linuksa 2.6.25)
              Plik ten określa pułap, do którego można podnieść limit zasobów RLIMIT_NOFILE (zob.
              getrlimit(2)).  Pułap  ten  jest  wymuszany  zarówno  na   nieuprzywilejowanych   i
              uprzywilejowanych  procesach.  Domyślną  wartością  w  pliku  jest  1048576  (przed
              Linuksem 2.6.25, pułap RLIMIT_NOFILE  był zakodowany  na  sztywno  i  wynosił  tyle
              samo).

       /proc/sys/fs/overflowgid and /proc/sys/fs/overflowuid
              Te  pliki  umożliwiają zmianę wartości ustalonego UID-u i GID-u. Wartością domyślną
              jest 65534. Niektóre systemy plików wspierają  jedynie  16-bitowe  UID-y  i  GID-y,
              podczas  gdy  linuksowe  UID-y  i  GID-y są 32-bitowe. Gdy któryś z takich systemów
              plików  jest  zamontowany  z  możliwością  zapisu,  to  wszystkie  UID-y  i   GID-y
              przekraczające 65535 są zastępowane podanymi tu wartościami przed zapisem na dysk.

       /proc/sys/fs/pipe-max-size (od Linuksa 2.6.35)
              Wartość  w  tym  pliku  definiuje górny limit do podnoszenia pojemności potoku przy
              użyciu operacji F_SETPIPE_SZ fcntl(2). Limit ten odnosi się wyłącznie  do  procesów
              nieuprzywilejowanych.  Domyślną  wartością  dla  tego pliku jest 1 048 576. Wartość
              przypisana do pliku może  być  zaokrąglona  w  górę,  odnosząc  się  do  faktycznej
              wartości  wykorzystanej  z  powodu  dogodnej  implementacji. Aby poznać zaokrągloną
              wartość, należy wyświetlić zawartość tego pliku po przypisaniu do  niego  wartości.
              Minimalną  wartością,  jaka  może  zostać  przypisana  do tego pliku jest systemowy
              rozmiar strony.

       /proc/sys/fs/protected_hardlinks (od Linuksa 3.6)
              Gdy w pliku zapisana jest  wartość  0,  to  w  odniesieniu  do  tworzenia  dowiązań
              zwykłych  (twardych)  nie  wprowadza  się  żadnych  ograniczeń (jest to historyczne
              zachowanie przed Linuksem 3.6). Gdy wartość wynosi 1, to dowiązania zwykłe mogą być
              tworzone do pliku docelowego jedynie wówczas, gdy spełniony jest jeden z poniższych
              warunków:

              *  Wywołujący ma przywilej CAP_FOWNER.

              *  UID systemu plików dotyczący procesu tworzącego dowiązanie pasują do właściciela
                 (UID)  pliku  docelowego  (zgodnie  z  opisem  w podręczniku credentials(7), UID
                 systemu plików procesu jest zwykle taki sam jak jego efektywny UID).

              *  Wszystkie poniższe warunki zostaną spełnione:

                  •  cel jest zwykłym plikiem,

                  •  plik docelowy nie ma ustawionego bitu set-user-ID,

                  •  plik  docelowy  nie  ma  ustawionych  obu  z  bitów  set-group-ID   i   bitu
                     wykonywalności dla grupy,

                  •  wywołujący  ma uprawnienie do odczytu i zapisu pliku docelowego (albo dzięki
                     uprawnieniom pliku albo ze względu na posiadane przywileje).

              Domyślną wartością w tym pliku jest 0. Ustawienie 1 rozwiąże występujące  od  dawna
              problemy  z  bezpieczeństwem  wykorzystujących  wyścig  między czasem sprawdzenia a
              czasem użycia dowiązania zwykłego, zwykle spotykanych w  katalogach  dostępnych  do
              zapisu  dla  wszystkich  (np. /tmp). Częstym sposobem wykorzystywania tej wady jest
              skrzyżowanie ograniczeń w uprawnieniach przy podążaniu za danym dowiązaniem zwykłym
              (np.  gdy  proces  root  podąża  za  dowiązaniem  stałym  utworzonym  przez  innego
              użytkownika). W systemach bez wydzielonych partycji, rozwiązuje się  w  ten  sposób
              również  problem  nieautoryzowanych  użytkowników "przypinających" dziurawe pliki z
              ustawionymi  bitami  set-user-ID  i  set-group-ID   wobec   aktualizowanych   przez
              administratora a także dowiązywaniu do plików specjalnych.

       /proc/sys/fs/protected_symlinks (od Linuksa 3.6)
              Gdy  w  pliku  zapisana  jest  wartość  0,  to  w odniesieniu do tworzenia dowiązań
              symbolicznych nie wprowadza się żadnych ograniczeń (jest to historyczne  zachowanie
              przed  Linuksem  3.6).  Gdy  wartość  wynosi  1, to dowiązania symboliczne mogą być
              tworzone jedynie gdy spełnione są następujące warunki:

              *  UID systemu plików dotyczący  procesu  podążającego  za  dowiązaniem  pasują  do
                 właściciela  (UID)  dowiązania  symbolicznego  (zgodnie  z  opisem w podręczniku
                 credentials(7), UID systemu  plików  procesu  jest  zwykle  taki  sam  jak  jego
                 efektywny UID),

              *  dowiązanie  nie  znajduje  się  w katalogu dostępnych dla wszystkich do zapisu z
                 bitem lepkości lub

              *  dowiązanie symboliczne i katalog w którym się  ono  znajduje  mają  tego  samego
                 właściciela (UID)

              Wywołanie  systemowe  które  nie  podąży  za dowiązaniem symbolicznym ze względu na
              powyższe ograniczenia zwróci w errno błąd EACCES.

              Domyślną wartością w tym pliku jest 0. Ustawienie 1 rozwiąże występujące  od  dawna
              problemy  z  bezpieczeństwem  wykorzystujących  wyścig  między czasem sprawdzenia a
              czasem użycia przy uzyskiwaniu dostępu do dowiązań symbolicznych.

       /proc/sys/fs/suid_dumpable (od wersji Linuksa 2.6.13)
              Wartość w tym pliku jest przypisana do flagi "dumpable" ("zrzucalny") w  sytuacjach
              opisanych  w  prctl(2).  W  konsekwencji,  wartość  w  tym pliku określa, czy pliki
              zrzutów pamięci są tworzone dla programów mających ustawiony bit  set-user-ID  albo
              chronionych w jakiś inny sposób. Można podać trzy różne wartości liczbowe:

              0 (default)
                     Jest  to  tradycyjne  zachowanie  (sprzed Linuksa 2.6.13). Zrzut pamięci nie
                     będzie tworzony dla procesu,  który  zmienił  swoje  uprawnienia  (wywołując
                     seteuid(2),  setgid(2)  lub  podobną funkcję albo gdy program miał ustawiony
                     bit set-user-ID  lub  set-group-ID)  albo  gdy  uprawnienia  nadane  plikowi
                     binarnemu programu zabraniają jego odczytywania.

              1 ("debug")
                     Jeżeli  jest  to  możliwe,  to  wszystkie  procesy  wykonują  zrzut pamięci.
                     Właścicielem pliku zrzutu jest użytkownik, którego  uprawnienia  do  systemu
                     plików  ma  proces  wykonujący  zrzut.  Nie  są  stosowane  żadne mechanizmy
                     bezpieczeństwa. Jest to przeznaczone tylko do celów debugowania. Ptrace  nie
                     jest sprawdzane.

              2 ("suidsafe")
                     Zrzut  pamięci  programu,  dla  którego  w normalnej sytuacji taki zrzut nie
                     zostałby  wykonany  (patrz  wyżej  "0"),  może  być  odczytany  tylko  przez
                     administratora  (root). Pozwala to użytkownikowi usunąć plik ze zrzutem, ale
                     nie pozwala na jego odczytanie. Z powodów bezpieczeństwa w tym trybie  pliki
                     zrzutu  nie  nadpisują  istniejących  plików.  Ten tryb jest odpowiedni, gdy
                     administrator będzie chciał debugować problemy w naturalnym środowisku.

                     Dodatkowo, od Linuksa 3.6, /proc/sys/kernel/core_pattern musi być  absolutną
                     ścieżką lub poleceniem potokowym (zob. core(5)). Do dziennika jądra zapisane
                     zostaną ostrzeżenia, jeśli core_pattern nie będzie  się  stosowało  do  tych
                     reguł i nie utworzy się zrzut pamięci.

       /proc/sys/fs/super-max
              Plik  steruje  maksymalną  liczbą  superbloków, a więc i maksymalną liczbą systemów
              plików, które  jądro  może  zamontować.  Potrzeba  zwiększenia  wartości  super-max
              występuje  tylko  wtedy,  gdy chce się zamontować więcej systemów plików, niż na to
              pozwala aktualna wartość super-max.

       /proc/sys/fs/super-nr
              Plik zawiera liczbę obecnie zamontowanych systemów plików.

       /proc/sys/kernel
              Katalog zawiera pliki kontrolujące wiele parametrów jądra, jak opisano poniżej.

       /proc/sys/kernel/acct
              Plik zawiera trzy liczby:  highwater,  lowwater  i  frequency.  Gdy  włączone  jest
              rejestrowanie procesów w stylu BSD, wartości te sterują jego zachowaniem. Gdy ilość
              wolnego miejsca w systemie plików, na  którym  znajdują  się  logi,  spada  poniżej
              wyrażonej  w  procentach  wartości  lowwater,  rejestrowanie jest wstrzymywane. Gdy
              ilość wolnego  miejsca  stanie  się  większa  niż  wyrażona  w  procentach  wartość
              highwater, rejestrowanie jest wznawiane. frequency określa, jak często jądro będzie
              sprawdzać ilość wolnego miejsca (wartość w sekundach). Wartościami domyślnymi są 4,
              2  i 30. Oznacza to, że rejestrowanie procesów jest wstrzymywane, gdy ilość wolnego
              miejsca będzie wynosiła 2% lub mniej; wznowione zostanie, gdy wolne będzie  4%  lub
              więcej;  zakłada  się,  że  informacja o ilości wolnego miejsca jest ważna przez 30
              sekund.

       /proc/sys/kernel/auto_msgmni (Linux w wersji od 2.6.27 do 3.18)
              W Linuksie w  wersjach  od  2.6.27  do  3.18,  plik  ten  był używany  do  kontroli
              przeliczania   wartości  w  /proc/sys/kernel/msgmni  przy  dodawaniu  lub  usuwaniu
              pamięci, albo przy utworzeniu/usunięciu przestrzeni nazw IPC. Wpisanie "1" do  tego
              pliku  włączało automatyczne przeliczanie msgmni (i wyzwalało przeliczanie msgmni w
              oparciu o bieżącą ilość dostępnej pamięci i liczby przestrzeni nazw IPC).  Wpisanie
              "0"  wyłączało  automatyczne  przeliczanie  (automatyczne przeliczanie było również
              wyłączane, jeśli wartość  była  jawnie  przypisywana  do  /proc/sys/kernel/msgmni).
              Domyślną wartością w auto_msgmni było 1.

              Od  Linuksa  3.19, zawartość tego pliku nie ma znaczenia (ponieważ msgmni domyślnie
              ustawia się na wartość bliską maksymalnej), a odczyt z  tego  pliku  zawsze  zwraca
              wartość "0".

       /proc/sys/kernel/cap_last_cap (od Linuksa 3.2)
              Patrz capabilities(7).

       /proc/sys/kernel/cap-bound (od Linuksa 2.2 do 2.6.24)
              Plik  przechowuje  wartość  capability bounding set dla jądra (wyrażone jako liczba
              dziesiętna ze znakiem).  Wartość  ta  jest  mnożona  (AND)  bitowo  z  capabilities
              dozwolonymi   dla   procesu   podczas   execve(2).  Poczynając  od  Linuksa  2.6.25
              ogólnosystemowe capability bounding set zostało usunięte i zastąpione bounding  set
              na wątek, patrz capabilities(7).

       /proc/sys/kernel/core_pattern
              Patrz core(5).

       /proc/sys/kernel/core_uses_pid
              Patrz core(5).

       /proc/sys/kernel/ctrl-alt-del
              Ten plik steruje obsługą kombinacji klawiszy Ctrl-Alt-Del. Gdy w pliku tym znajduje
              się wartość 0, Ctrl-Alt-Del jest przechwytywane i przesyłane do programu init(1)  w
              celu wykonania wdzięcznego restartu. Gdy wartość jest większa od 0, reakcją Linuksa
              na Wulkanicznie Nerwowe Nękanie (Vulcan Nerve  Pinch  (tm))  będzie  natychmiastowy
              restart,  nawet  bez zrzucenia zmodyfikowanych buforów. Uwaga: gdy program (jak np.
              dosemu) korzysta z "surowego" trybu klawiatury,  Ctrl-Alt-Del  jest  przechwytywane
              przez  program,  zanim  dotrze  do  warstwy  terminalowej jądra i decyzja, co z tym
              zrobić, zależy od programu.

       /proc/sys/kernel/dmesg_restrict (od Linuksa 2.6.37)
              Wartość pliku  określa  użytkowników  z  dostępem  do  zawartości  dziennika  jądra
              (syslog).  Wartość  0  nie  nakłada  żadnych ograniczeń. Wartość 1 zawęża dostęp do
              użytkowników uprzywilejowanych (zob. syslog(2)). Od Linuksa 3.4 tylko użytkownicy z
              przywilejem CAP_SYS_ADMIN mogą zmienić wartość w tym pliku.

       /proc/sys/kernel/domainname i /proc/sys/kernel/hostname
              Te  pliki mogą służyć do ustawiania nazwy domeny i hosta NIS/YP maszyny dokładnie w
              ten sam sposób, jak za pomocą poleceń domainname(1) i hostname(1), np.:

                  # echo 'darkstar' > /proc/sys/kernel/hostname
                  # echo 'mydomain' > /proc/sys/kernel/domainname

              daje taki sam efekt, jak

                  # hostname 'darkstar'
                  # domainname 'mydomain'

              Należy tu zauważyć, że klasyczny darkstar.frop.org posiada nazwę hosta "darkstar" i
              domenę  "frop.org"  w  DNS  (Internetowej Usłudze Nazw Domen - Internet Domain Name
              Service), których nie należy mylić z domeną NIS (Sieciowej Usługi  Informacyjnej  -
              Network  Information Service) lub YP (Yellow Pages). Te dwa systemy nazw domenowych
              zasadniczo się różnią. Szczegółowe informacje można znaleźć na stronie  podręcznika
              hostname(1).

       /proc/sys/kernel/hotplug
              Plik  ten  zawiera ścieżkę do programu hotplug. Domyślną wartością w tym pliku jest
              /sbin/hotplug.

       /proc/sys/kernel/htab-reclaim
              (Tylko PowerPC) Jeśli do  tego  pliku  zostanie  wpisana  wartość  niezerowa,  htab
              PowerPC  (zobacz:  plik  Documentation/powerpc/ppc_htab.txt  w źródłach jądra) jest
              czyszczony za każdym razem, gdy system natrafi na pętlę oczekiwania ("idle").

       /proc/sys/kernel/kptr_restrict (od Linuksa 2.6.38)
              Wartość określa czy adresy jądra są pokazywane za pomocą interfejsu /proc i innych.
              Wartość  0  oznacza  brak  ograniczeń.  Gdy użyto 1, to wskaźniki jądra wypisane za
              pomocą formatu %pK zostaną zastąpione zerami,  chyba  że  użytkownik  ma  przywilej
              CAP_SYSLOG.  Przy  wartości 2 wskaźniki jądra wypisane za pomocą %pK zostaną zawsze
              zastąpione zerami, niezależnie od przywilejów jakie  posiada.  Początkowo  domyślna
              wartość  wynosiła  1,  lecz  zastąpiono  ją 0 w jądrze Linux 2.6.39. Od Linuksa 3.4
              tylko użytkownicy z przywilejem CAP_SYS_ADMIN mogą zmieniać wartość w tym pliku.

       /proc/sys/kernel/l2cr
              (Tylko PowerPC) Plik zawiera znacznik sterujący  cache'em  L2  płyt  procesora  G3.
              Jeśli  zawiera  0,  cache  jest  wyłączony.  Cache  jest włączony, gdy plik zawiera
              wartość różną od zera.

       /proc/sys/kernel/modprobe
              Plik zawiera ścieżkę do programu ładującego moduły jądra. Domyślną  wartością  jest
              /sbin/modprobe.  Plik  jest  obecny tylko, jeśli jądro zostało zbudowane z włączoną
              opcją CONFIG_MODULES (CONFIG_KMOD w Linuksie  2.6.26  i  wcześniejszych).  Jest  on
              opisany  w pliku źródeł jądra Linux Documentation/kmod.txt (obecnym tylko w jądrach
              2.4 i wcześniejszych).

       /proc/sys/kernel/modules_disabled (od Linuksa 2.6.31)
              Przełącznik wskazujący czy moduły mogą być ładowane do modularnego jądra.  Domyślna
              wartość  wynosi  off  (0),  lecz można ustawić także true (1), która spowoduje brak
              możliwości ładowania i wyładowania modułów. W takim przypadku nie  da  się  ustawić
              przełącznika  z  powrotem  na  fałsz  (false).  Plik  jest  obecny  tylko w jądrach
              zbudowanych z włączoną opcją CONFIG_MODULES.

       /proc/sys/kernel/msgmax (od Linuksa 2.2)
              Zawiera  ogólnosystemowe  ograniczenie  maksymalnej  liczby  bajtów  w  pojedynczym
              komunikacie zapisywanym do kolejki komunikatów Systemu V.

       /proc/sys/kernel/msgmni (od Linuksa 2.4)
              Określa  ogólnosystemowe  ograniczenie  liczby identyfikatorów kolejek komunikatów.
              Zob. również /proc/sys/kernel/auto_msgmni.

       /proc/sys/kernel/msgmnb (od Linuksa 2.2)
              Zawiera  ogólnosystemowy  parametr  służący  do  inicjacji  ustawienia   msg_qbytes
              tworzonych  później  kolejek  komunikatów. Ustawienie msg_qbytes określa maksymalną
              liczbę bajtów, które mogą zostać zapisane do kolejki komunikatów.

       /proc/sys/kernel/ngroups_max (od Linuksa 2.6.4)
              Jest to plik tylko do odczytu, który wyświetla górny limit  liczby  członków  grupy
              procesu.

       /proc/sys/kernel/ostype i /proc/sys/kernel/osrelease
              Pliki te zawierają poszczególne części z /proc/version.

       /proc/sys/kernel/overflowgid i /proc/sys/kernel/overflowuid
              Pliki te są kopiami plików /proc/sys/fs/overflowgid i /proc/sys/fs/overflowuid.

       /proc/sys/kernel/panic
              Plik  umożliwia dostęp (odczyt i zapis) do zmiennej jądra panic_timeout. Jeśli jest
              to zero, jądro będzie się zapętlać podczas  paniki;  jeśli  wartość  niezerowa,  to
              określa liczbę sekund, po której jądro powinno się automatycznie przeładować. Jeśli
              używany jest software watchdog to zalecaną wartością jest 60.

       /proc/sys/kernel/panic_on_oops (od Linuksa 2.5.68)
              Plik ten kontroluje zachowanie jądra, kiedy wystąpi oops lub BŁĄD. Jeśli  ten  plik
              zawiera 0, to system próbuje kontynuować operację. Jeśli zawiera 1, to system czeka
              parę sekund (aby dać procesowi klogd czas na zapisanie wyjścia z oops), a następnie
              panikuje.  Jeżeli wartość w pliku /proc/sys/kernel/panic również jest niezerowa, to
              nastąpi restart komputera.

       /proc/sys/kernel/pid_max (od Linuksa 2.5.34)
              Ten plik określa wartość po której nastąpi przewinięcie licznika PID (tj. wartość w
              tym  pliku  jest  o 1 większa niż maksymalny PID). PID-y większe niż ta wartość nie
              są alokowane, z tego powodu wartość z tego  pliku  działa  również  jako  systemowy
              limit  całkowitej  liczby  procesów  i  wątków.  Domyślna wartość tego pliku, czyli
              32768, określa taki sam zakres wartości PID, jak  wcześniejsze  wersje  jądra.  Dla
              platform 32-bitowych 32768 jest maksymalną wartością, jaką może przyjmować pid_max.
              W systemach 64-bitowych pid_max może zostać ustawiony na  dowolną  wartość,  aż  do
              2^22 (PID_MAX_LIMIT, około 4 milionów).

       /proc/sys/kernel/powersave-nap (tylko PowerPC)
              Plik  zawiera  znacznik.  Gdy jest on ustawiony, Linux-PPC używa trybu oszczędzania
              energii "nap", a w przeciwnym przypadku trybu "doze".

       /proc/sys/kernel/printk
              Patrz syslog(2).

       /proc/sys/kernel/pty (od wersji Linuksa 2.6.4)
              Ten katalog zawiera dwa pliki związane z  liczbą  pseudoterminali  UNIX  98  (patrz
              pts(4)) w systemie.

       /proc/sys/kernel/pty/max
              Plik określa maksymalną liczbę pseudoterminali.

       /proc/sys/kernel/pty/nr
              Ten   plik  tylko  do  odczytu  zawiera  informację  o  liczbie  obecnie  używanych
              pseudoterminali.

       /proc/sys/kernel/random
              Katalog ten zawiera różne parametry sterujące działaniem pliku /dev/random.  Dalsze
              informacje można znaleźć w random(4).

       /proc/sys/kernel/random/uuid (od Linuksa 2.4)
              Każdy   odczyt   z  tego  pliku  przeznaczonego  tylko  do  odczytu  zwraca  losowo
              wygenerowany 128-bitowy UUID, jako łańcuch w standardowym formacie UUID.

       /proc/sys/kernel/randomize_va_space (od Linuksa 2.6.12)
              Wybiera politykę losowego rozmieszczania obszarów pamięci (ang. ASLR - adress space
              layout   randomization)   w   systemie   (na  architekturach  obsługujących  ASLR).
              Obsługiwane są trzy wartości tego pliku:

              0  Wyłącza ASLR. Jest to domyślne na architekturach  nieobsługujących  ASLR  i  gdy
                 jądro jest uruchamiane z parametrem norandmaps.

              1  Czyni  przydzielanie  stron  VDSO,  stosu  i adresów mmap(2) losowym. Oznacza to
                 między innymi, że biblioteki dzielone są  ładowane  pod  losowy  adres.  Segment
                 tekstowy  plików  wykonywalnych  skonsolidowanych  niezależnie  od pozycji (PIE)
                 będzie również ładowany pod  losowy  adres.  Wartość  ta  jest  domyślna,  jeśli
                 skonfigurowano jądro z CONFIG_COMPAT_BRK.

              2  (od  Linuksa  2.6.25)  Obsługuje  również  losowość  kopca  (ang. heap). Jest to
                 domyślne zachowanie, jeśli nie skonfigurowano jądra z opcją CONFIG_COMPAT_BRK.

       /proc/sys/kernel/real-root-dev
              Plik ten jest udokumentowany w  pliku  Documentation/initrd.txt  w  źródłach  jądra
              Linux.

       /proc/sys/kernel/reboot-cmd (tylko Sparc)
              Ten  plik  wydaje  się stanowić mechanizm podawania argumentów SPARC-owej ładowarce
              systemu w ROM/Flash. Może przekazuje jej, co zrobić po restarcie?

       /proc/sys/kernel/rtsig-max
              (Tylko w wersjach jądra nie późniejszych niż 2.6.7; patrz setrlimit(2)).  Plik  ten
              może  służyć  do  sterowania  maksymalną  liczbą zgodnych z POSIX nieobsłużonych (w
              kolejkach) sygnałów czasu rzeczywistego w systemie.

       /proc/sys/kernel/rtsig-nr
              (Tylko w wersjach jądra  nie  późniejszych  niż  2.6.7).  Plik  ten  podaje  liczbę
              zgodnych z POSIX sygnałów czasu rzeczywistego oczekujących obecnie w kolejce.

       /proc/sys/kernel/sched_rr_timeslice_ms (od Linuksa 3.9)
              Patrz sched_rr_get_interval(2).

       /proc/sys/kernel/sched_rt_period_us (od Linuksa 2.6.25)
              Patrz sched(7).

       /proc/sys/kernel/sched_rt_runtime_us (od Linuksa 2.6.25)
              Patrz sched(7).

       /proc/sys/kernel/sem (od Linuksa 2.4)
              Plik  ten  zawiera  4  liczby definiujące ograniczenia semaforów Systemu V. Są to w
              kolejności:

              SEMMSL  Maksymalna liczba semaforów w zestawie semaforów.

              SEMMNS  Ogólnosystemowe ograniczenie  liczby  semaforów  we  wszystkich  zestawiach
                      semaforów.

              SEMOPM  Maksymalna liczba operacji, które mogą zostać podane w wywołaniu semop(2).

              SEMMNI  Ogólnosystemowe ograniczenie maksymalnej liczby identyfikatorów semaforów.

       /proc/sys/kernel/sg-big-buff
              Plik  ten  zawiera  rozmiar bufora niskopoziomowego urządzenia SCSI (sg). Nie można
              nim na razie sterować, ale można  go  zmienić  podczas  kompilacji  poprzez  edycję
              include/scsi/sg.h  i  zmianę  wartości SG_BIG_BUFF. Jednakże nie ma żadnego powodu,
              aby to robić.

       /proc/sys/kernel/shm_rmid_forced (od Linuksa 3.1)
              Jeśli plik jest ustawiony na 1, to wszystkie segmenty pamięci dzielonej  Systemu  V
              zostaną  oznaczone  jako przeznaczone do zniszczenia po tym, jak liczba dołączonych
              procesów spadnie do zera. Innymi  słowy  nie  da  się  wówczas  utworzyć  segmentów
              pamięci dzielonej, które istnieją niezależnie od dołączonych procesów.

              Efekt  jest  taki, że shmctl(2) IPC_RMID jest wykonywane na wszystkich istniejących
              segmentach, jak również na segmentach tworzonych w  przyszłości  (dopóki  plik  nie
              zostanie  zresetowany  do 0). Proszę zauważyć, że istniejące segmenty nie dołączone
              do żadnego procesu zostaną  natychmiast  zniszczone,  jeśli  tylko  plik  ten  jest
              ustawiony  na  1.  Ustawienie  tej  opcji zniszczy również segmenty utworzone, lecz
              nigdy niedołączone - przy zakończeniu procesu który utworzył dany segment za pomocą
              shmget(2).

              Ustawienie  tego pliku na 1 udostępnia sposób na sprawdzenie, że wszystkie segmenty
              pamięci współdzielonej Systemu V są liczone  w  odniesieniu  do  użycia  zasobów  i
              limitów  zasobów.  (zob.  opis  RLIMIT_AS  w  getrlimit(2))  do co najmniej jednego
              procesu).

              Ustawienie tego pliku na 1  daje  niestandardowe  zachowanie,  które  może  załamać
              istniejące  aplikacje,  dlatego domyślną wartością pliku jest 0. Wartość 1 może być
              używana tylko w przypadku dużej wiedzy na  temat  semantyki  aplikacji  używających
              pamięci współdzielonej Systemu V w danym systemie.

       /proc/sys/kernel/shmall (od Linuksa 2.2)
              Ten  plik  zawiera  ogólnosystemowe  ograniczenie  całkowitej  liczby stron pamięci
              wspólnej Systemu V.

       /proc/sys/kernel/shmmax (od Linuksa 2.2)
              Ten plik może służyć do odpytywania o aktualne ograniczenie  maksymalnego  rozmiaru
              tworzonego   segmentu   pamięci  wspólnej  (System  V  IPC)  oraz  do  zmiany  tego
              ograniczenia. Jądro wspiera obecnie segmenty pamięci wspólnej do  1  GB.  Wartością
              domyślną jest SHMMAX.

       /proc/sys/kernel/shmmni (od Linuksa 2.4)
              Ten  plik  określa  ogólnosystemową  maksymalną  liczbę  segmentów pamięci wspólnej
              Systemu V, które można utworzyć.

       /proc/sys/kernel/sysctl_writes_strict (od Linuksa 3.16)
              Wartość  w  tym  pliku  określa  jak  przesunięcia  pliku  wpływają  na  zachowanie
              aktualizacji wpisów w plikach pod /proc/sys. Plik może przyjąć trzy wartości:

              -1  Zapewniona jest kompatybilna obsługa, bez ostrzeżeń printk. Każdy write(2) musi
                  zawierać pełną wartość do zapisu i każdy zapis na tym samym deskryptorze  pliku
                  nadpisze całą wartość, bez względu na pozycję pliku.

              0   (domyślne)  Zapewnia  zachowanie  podobne  jak przy -1, lecz dla procesów które
                  przeprowadzają  zapis  przy  przesunięciu  pliku   różnym   od   0   zapisywane
                  są ostrzeżenia printk.

              1   Zachowuje  przesunięcie pliku przy zapisie łańcuchów do plików /proc/sys. Wiele
                  zapisów nadpisze wartość bufora. Wszystko co zostanie zapisane  pod  maksymalną
                  długość bufora  wartości  zostanie  zignorowane.  Zapis  do numerycznych wpisów
                  /proc/sys musi zawsze następować przy przesunięciu 0,  a  wartość  musi  być  w
                  pełni zawarta w buforze przekazanym do write(2).

       /proc/sys/kernel/sysrq
              Plik  kontroluje dozwolone funkcje, które są wywoływane przy użyciu klawisza SysRq.
              Domyślnie, plik zawiera 1, oznaczające że  dozwolona  jest  każde  możliwe  żądanie
              SysRq  (w starszych wersjach jądra, SysRq było domyślnie wyłączone i konieczne było
              włączenie go  w  czasie  uruchomienia,  jednak  ta  sytuacja  już  nie  występuje).
              Dozwolone wartości w pliku:

              0    Zupełnie wyłącza sysrq

              1    Włącza wszystkie funkcje sysrq

              > 1  Maska bitowa dozwolonych funkcji sysrq, jak poniżej:
                     2  Włącza kontrolę poziomu logów konsoli
                     4  Włącza kontrolę klawiatury (SAK, unraw)
                     8  Włącza debugowanie zrzutów procesów itp.
                    16  Włącza polecenie sync
                    32  Włącza przejście systemu plików w tryb tylko do odczytu
                    64  Włącza wysyłanie sygnałów do procesów (term, kill, oom-kill)
                   128  Włącza ponowne uruchomienie/wyłączenie komputera
                   256  Pozwala na ustawianie nice wszystkich zadań czasu rzeczywistego

              Ten   plik   istnieje   tylko   jeśli   podczas  kompilacji  jądra  włączono  opcję
              CONFIG_MAGIC_SYSRQ. Aby dowiedzieć  się  więcej,  proszę  zapoznać  się  z  plikiem
              Documentation/sysrq.txt w źródłach jądra Linux.

       /proc/sys/kernel/version
              Plik zawiera tekst np.:

                  #5 Wed Feb 25 21:49:24 MET 1998

              Gdzie'#5' oznacza, że jest to piąte z kolei jądro zbudowane z tych samych źródeł, a
              następująca dalej data określa, kiedy jądro zostało zbudowane.

       /proc/sys/kernel/threads-max (od Linuksa 2.3.11)
              Ten plik określa ogólnosystemowe ograniczenie  całkowitej  liczby  wątków  (zadań),
              jakie mogą zostać utworzone w systemie.

              Od  Linuksa  4.1,  wartość  którą można  zapisać  do  threads-max jest ograniczona.
              Minimalna wartość którą można wpisać  to  20.  Maksymalna  jest  dana  przez  stałą
              FUTEX_TID_MASK  (0x3fffffff).  Jeśli  do  threads-max wpisze się wartość spoza tego
              zakresu wystąpi błąd EINVAL.

              Zapisana wartość jest sprawdzana w  odniesieniu  do  dostępnych  stron  RAM.  Jeśli
              struktury wątku zajmie zbyt dużo (więcej niż 1/8) dostępnych stron RAM, threads-max
              zostanie odpowiednio zredukowana.

       /proc/sys/kernel/yama/ptrace_scope (od Linuksa 3.5)
              Zob. ptrace(2).

       /proc/sys/kernel/zero-paged (tylko PowerPC)
              Plik zawiera znacznik. Gdy jest on ustawiony (niezerowy), Linux-PPC wstępnie zeruje
              strony w pętli bezczynności. Prawdopodobnie przyspiesza to get_free_pages.

       /proc/sys/net
              Ten  katalog  zawiera  rzeczy  związane  z siecią. Wyjaśnienia dotyczące niektórych
              plików zawartych w tym katalogu można znaleźć w tcp(7) i ip(7).

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

       /proc/sys/net/core/somaxconn
              Plik definiuje wartość cechy górnej (sufitu) do argumentu backlog  funkcji  listen;
              patrz strona podręcznika listen(2), aby dowiedzieć się więcej.

       /proc/sys/proc
              Ten katalog może być pusty.

       /proc/sys/sunrpc
              Ten  katalog obsługuje Sunowskie zdalne wywoływanie procedur dla sieciowego systemu
              plikowego (NFS). W niektórych systemach może nie istnieć.

       /proc/sys/vm
              Ten katalog zawiera pliki sterujące zarządzaniem pamięcią, buforami i  zarządzaniem
              cachem.

       /proc/sys/vm/compact_memory (od Linuksa 2.6.35)
              Po  zapisie  1  do tego pliku wszystkie strefy są przemieszczane w ten sposób, że —
              jeśli to możliwe — pamięć jest dostępna w ciągłych blokach. Efekt tej  akcji  można
              sprawdzić za pomocą /proc/buddyinfo.

              Obecne tylko, jeśli jądro zostało skonfigurowane z CONFIG_COMPACTION.

       /proc/sys/vm/drop_caches (od wersji Linuksa 2.6.16)
              Zapis  do  tego  pliku powoduje zwolnienie przez jądro czystych buforów, dentries i
              i-węzłów z  pamięci,  powodując  zwolnienie  pamięci.  Może  być  to  przydatne  to
              testowania  zarządzania pamięcią i wykonywania powtarzalnych testów systemu plików.
              Zapis do tego pliku powoduje utratę zalet buforowania,  przez  co  może  spowodować
              pogorszenie ogólnej wydajności systemu.

              Aby zwolnić bufor strony, proszę użyć:

                  echo 1 > /proc/sys/vm/drop_caches

              Aby zwolnić dentries i i-węzły, proszę użyć:

                  echo 2 > /proc/sys/vm/drop_caches

              Aby zwolnić bufor strony, dentries i i-węzły, proszę użyć:

                  echo 3 > /proc/sys/vm/drop_caches

              Ponieważ  zapis  do  tego  pliku  nie  jest  destrukcyjny  i  brudne obiekty nie są
              zwalniane, użytkownik powinien wcześniej uruchomić sync(1).

       /proc/sys/vm/legacy_va_layout (od wersji Linuksa 2.6.9)
              Wartość niezerowa oznacza wyłączenie nowego, 32-bitowego  rozmieszczenia  mapowania
              pamięci; jądro będzie używać starego (2.4) rozmieszczenia dla wszystkich procesów.

       /proc/sys/vm/memory_failure_early_kill (od Linuksa 2.6.32)
              Kontroluje  jak zabijać procesy z nienaprawialnym błędem pamięci (z reguły 2-bitowy
              błąd w module pamięci), które nie mogą być obsłużone przez  jądro,  wykryte  w  tle
              przez sprzęt. W niektórych przypadkach (np. jeśli strona ma wciąż poprawną kopię na
              dysku), jądro obsłuży taki  błąd  w  sposób  przezroczysty,  bez  wpływu  na  pracę
              aplikacji.  Jednak  jeśli  nie  istnieje  inna,  zaktualizowana kopia danych, jądro
              zabija procesy, aby zapobiec uszkodzeniu danych wynikłego z propagacji błędu.

              Plik posiada jedną z następujących wartości:

              1:  Wszystkie procesy,  które  posiadają  zmapowaną  uszkodzoną  i  nieprzeładowaną
                  stronę, są zabijane zaraz po wykryciu uszkodzenia. Proszę zauważyć, że nie jest
                  to obsługiwane dla nielicznych typów stron, takich jak  wewnętrzne  przypisanie
                  danych przez jądro lub pamięć podręczna na dysku (swap), ale działa w przypadku
                  większości stron użytkownika.

              0:  Usuwana (unmap)  jest  jedynie  uszkodzona  strona,  a  zabijane  są  wyłącznie
                  procesy, które chcą uzyskać do niej dostęp.

              Zabicie   jest  wykonywane  za  pomocą  sygnału  SIGBUS  z  si_code  ustawionym  na
              BUS_MCEERR_AO. Procesy mogą obsłużyć tę sytuację, jeśli chcą; proszę zapoznać się z
              sigaction(2), aby dowiedzieć się więcej.

              Funkcja  jest  aktywna  wyłącznie  na  architekturach/platformach  z  zaawansowaną,
              maszynową obsługą sprawdzania i zależy od możliwości sprzętowych.

              Aplikacje mogą indywidualnie  przesłonić  ustawienie  memory_failure_early_kill  za
              pomocą operacji PR_MCE_KILL prctl(2).

              Obecne tylko, jeśli jądro zostało skonfigurowane z CONFIG_MEMORY_FAILURE.

       /proc/sys/vm/memory_failure_recovery (od Linuksa 2.6.32)
              Włącza   odzyskiwanie  po  błędzie  pamięci  (jeśli  jest  obsługiwane  przez  daną
              platformę)

              1:  Próbuje odzyskiwać.

              0:  Zawsze panikuje przy błędzie pamięci.

              Obecne tylko, jeśli jądro zostało skonfigurowane z CONFIG_MEMORY_FAILURE.

       /proc/sys/vm/oom_dump_tasks (od Linuksa 2.6.25)
              Włącza tworzenie ogólnosystemowego zrzutu zadania (bez  wątków  jądra),  gdy  jądro
              wykonuje OOM-killing. Zrzut zawiera następujące informacje o każdym zadaniu (wątku,
              procesie): identyfikator wątku,  realny  identyfikator  użytkownika,  identyfikator
              grupy  wątku  (identyfikator  procesu), rozmiar pamięci wirtualnej, rozmiar zestawu
              rezydentnego, procesor któremu przydzielono  zadanie,  wynik  oom_adj  (patrz  opis
              /proc/[pid]/oom_adj)  i  nazwę  polecenia. Jest to przydatne do określenia dlaczego
              OOM-killer został przywołany i zidentyfikowania zadania, które to spowodowało.

              Jeśli zawiera wartość zero, ta informacja nie jest zrzucana. Zrobienie zrzutu stanu
              pamięci  każdego  zadania  może  nie  być  wykonalne  w  bardzo dużych systemach, z
              tysiącami zadań. Takie systemy  nie  powinny  być  zmuszane  do  narażania  się  na
              dodatkowy  spadek  wydajności  w  sytuacjach braku pamięci, gdy taka informacja nie
              może być przydatna.

              Jeśli wartość jest niezerowa, ta informacja jest pokazywana kiedy tylko  OOM-killer
              rzeczywiście zabija zadanie zajmujące dużo pamięci.

              Domyślną wartością jest 0.

       /proc/sys/vm/oom_kill_allocating_task (od Linuksa 2.6.24)
              Włącza  lub  wyłącza zabijanie zadania kolejkującego OOM w sytuacjach braku pamięci
              (Out-Of-Memory).

              Jeśli jest ustawione na zero OOM-killer przeskanuje całą listę zadań i  do  zabicia
              wybierze  zadania  na podstawie heurystyki. Z reguły wybierane są zadania zajmujące
              wiele pamięci, które zwalniają dużą ilość pamięci po zabiciu.

              Jeśli jest ustawione na wartość niezerową, OOM-killer  po  prostu  zabija  zadanie,
              które wyzwoliło stan braku pamięci. W ten sposób unika się potencjalnie kosztownego
              skanowania listy zadań.

              Jeśli  /proc/sys/vm/panic_on_oom  jest  niezerowe,   to   ma   ono   pierwszeństwo,
              niezależnie od wartości użytej w /proc/sys/vm/oom_kill_allocating_task.

              Domyślną wartością jest 0.

       /proc/sys/vm/overcommit_kbytes (od Linuksa 3.14)
              Ten  zapisywalny  plik  zapewnia  alternatywę  do  /proc/sys/vm/overcommit_ratio do
              kontrolowania CommitLimit gdy /proc/sys/vm/overcommit_memory ma wartość 2.  Pozwala
              na  wykonanie overcommittu ilości pamięci w jednostkach absolutnych (w kB), zamiast
              w wartościach procentowych, jak to ma miejsce przy overcommit_ratio. W  ten  sposób
              można osiągnąć lepszą kontrolę CommitLimit na systemach z ekstremalnie dużą ilością
              pamięci.

              Tylko  jeden  z  overcommit_kbytes  lub  overcommit_ratio   może   działać:   jeśli
              overcommit_kbytes  ma wartość niezerową, to jest używane do obliczenia CommitLimit,
              w  przeciwnym  razie  używane  jest   overcommit_ratio.   Zapisanie   wartości   do
              któregokolwiek z plików powoduje że wartość w drugim jest ustawiana na zero.

       /proc/sys/vm/overcommit_memory
              Plik zawiera tryb rozliczeń pamięci wirtualnej jądra. Dopuszczalne wartości:

                     0: heurystyczny overcommit (domyślnie)
                     1: zawsze robi overcommit, nigdy nie sprawdza
                     2: zawsze sprawdza, nigdy nie robi overcommitu

              W  trybie  0  nie  są  sprawdzane  wywołania  mmap(2)  z  MAP_NORESERVE, a domyślne
              sprawdzenia  są  bardzo  słabe,  prowadząc  do   ryzyka   zabicia   procesu   przez
              "OOM-killera". Pod Linuksem 2.4 jakakolwiek wartość niezerowa oznacza tryb 1.

              W  trybie  2  (dostępnym  od Linuksa 2.6), całkowity adres przestrzeni wirtualnej w
              systemie którą można przypisać (CommitLimit w /proc/meminfo) jest obliczany jako

                  CommitLimit = (total_RAM - total_huge_TLB) *
                                overcommit_ratio / 100 + total_swap

              gdzie:

                   *  total_RAM jest sumą pamięci RAM w systemie;

                   *  total_huge_TLB jest sumą pamięci przeznaczoną dla dużych stron;

                   *  overcommit_ratio jest wartością w /proc/sys/vm/overcommit_ratio i

                   *  total_swap jest wielkością przestrzeni wymiany.

              Na przykład w systemie z 16 GB fizycznej pamięci  RAM  i  16  GB  pamięci  wymiany,
              brakiem przestrzeni przeznaczonej na duże strony i z overcommit_ratio równym 50, ta
              formuła daje CommitLimit na poziomie 24 GB.

              Od Linuksa 3.14, gdy wartość w /proc/sys/vm/overcommit_kbytes  jest  niezerowa,  to
              CommitLimit jest obliczana w następujący sposób:

                  CommitLimit = overcommit_kbytes + total_swap

       /proc/sys/vm/overcommit_ratio (od Linuksa 2.6.0)
              Plik  zapisywalny  definiujący  wartość procentową pamięci, na której można wykonać
              overcommit. Domyślną wartością jest 50. Zob. opis /proc/sys/vm/overcommit_memory.

       /proc/sys/vm/panic_on_oom (od wersji Linuksa 2.6.18)
              Włącza lub wyłącza panikę jądra w sytuacjach braku pamięci.

              Jeśli plik ma ustawioną wartość 0, OOM-killer jądra zabija któryś z  nieposłusznych
              procesów.  Z  reguły  OOM-killer  jest  w  stanie to wykonać i system może pracować
              dalej.

              Jeśli plik ma ustawioną wartość 1, to jądro zwykle  panikuje  przy  sytuacji  braku
              pamięci.  Jednak jeśli proces limituje przydzielanie do konkretnych węzłów używając
              zasad pamięci (mbind(2)  MPOL_BIND) lub  cpuset  (cpuset(7))  i  te  węzły  dotknie
              problem  braku  pamięci,  to  taki  proces  może  być  zabity przez OOM-killer. Nie
              występuje wówczas panika, ponieważ pamięć innych węzłów może być wolna, co  oznacza
              że system jako całość mógł nie osiągnąć jeszcze sytuacji braku pamięci.

              Jeśli ustawiono wartość 2, to jądro zawsze panikuje w sytuacji braku pamięci.

              Domyślną  wartość  jest  0.  1 i 2 są przeznaczone do poprawnej pracy klastrów mimo
              wystąpienia problemów. Proszę wybrać właściwą z nich, zgodnie z używanymi  zasadami
              w takich sytuacjach.

       /proc/sys/vm/swappiness
              Wartość  w  tym  pliku  kontroluje  jak agresywnie jądro przenosi strony pamięci do
              pamięci  wymiany  (swapu).  Wyższe  wartości   zwiększają   agresywność,   mniejsze
              zmniejszają ją. Domyślną wartością jest 60.

       /proc/sysrq-trigger (od Linuksa 2.4.21)
              Zapisanie  znaków  do  tego  pliku  wyzwala  tę  samą funkcję SysRq, jaka zostałaby
              wykonana    przy     użyciu     kombinacji     ALT-SysRq-<znak>     (patrz     opis
              /proc/sys/kernel/sysrq).  Plik  jest  normalnie  zapisywalny  tylko  dla roota. Aby
              dowiedzieć się więcej, proszę zapoznać  się  z  plikiem  Documentation/sysrq.txt  w
              źródłach jądra Linux.

       /proc/sysvipc
              Podkatalog  zawierający  pseudopliki  msg,  sem  i  shm. Pliki te zawierają obiekty
              komunikacji  międzyprocesowej  (Interprocess  Communication  -   IPC)   Systemu   V
              (odpowiednio:  kolejki komunikatów, semafory i pamięć wspólną) obecnie istniejące w
              systemie, udostępniając informacje podobne  do  tych,  które  są  dostępne  poprzez
              ipcs(1). Pliki te zawierają nagłówki i są sformatowane (jeden obiekt IPC w wierszu)
              w celu łatwiejszego zrozumienia. svipc(7) podaje dodatkowe informacje o  zawartości
              tych plików.

       /proc/thread-self (od Linuksa 3.17)
              Ten  katalog  odnosi  się  do  wątku  korzystającego  z systemu plików /proc i jest
              identyczny z katalogiem w /proc/self/task/[tid] o  nazwie  będącej  identyfikatorem
              tego wątku ([tid]).

       /proc/timer_list (od Linuksa 2.6.21)
              Plik  tylko  do odczytu udostępnia listę wszystkich bieżących czasomierzy (wysokiej
              rozdzielczości), wszystkich  źródeł  zdarzeń  zegara  i  ich  parametrów  w  formie
              czytelnej dla człowieka.

       /proc/timer_stats (od Linuksa 2.6.21)
              Jest to funkcja debugowania uwidaczniające (nad)użycia czasomierzy w systemie Linux
              deweloperom jądra i przestrzeni użytkownika. Może  być  używana  przez  deweloperów
              zajmujących  się  jądrem i przestrzenią użytkownika do weryfikacji, czy ich kod nie
              używa w nadmiarze czasomierzy. Celem jest zapobieganie  niepotrzebnym  wybudzeniom,
              aby zoptymalizować zużycie energii.

              Jeśli  jest  to  włączone  w jądrze (CONFIG_TIMER_STATS), lecz nie jest używane, ma
              narzut bliski zera oraz relatywnie niewielki narzut  struktury  danych.  Nawet  gdy
              zbieranie  danych  jest  włączone  przy  rozruchu,  narzut  jest  niski:  wszystkie
              blokowania następują według CPU, a wyszukiwanie jest haszowane.

              Plik /proc/timer_stats jest używany do kontrolowania funkcji próbkowania i  odczytu
              próbek informacji.

              Funkcja   timer_stats  jest  nieaktywna  przy  rozruchu.  Okres  próbkowania  można
              uruchomić poleceniem:

                  # echo 1 > /proc/timer_stats

              Następujące polecenie zatrzymuje okres próbkowania:

                  # echo 0 > /proc/timer_stats

              Statystyki można pozyskać przy pomocy:

                  $ cat /proc/timer_stats

              Gdy  próbkowanie  jest  włączone,  każdy  odczyt  z  /proc/timer_stats  daje   nowo
              zaktualizowane   statystyki.   Po   wyłączeniu   próbkowania,   próbki   informacji
              są zachowywane do momentu  włączenia  nowego  okresu  próbkowania.  Pozwala  to  na
              wielokrotny odczyt.

              Próbka wyniku z /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

              Kolumny wyniku:

              *  licznik  liczby  zdarzeń,  po  którym  opcjonalnie (od Linuksa 2.6.23) występuje
                 litera "D", jeśli jest to licznik odraczalny;

              *  PID procesu inicjującego czasomierz

              *  nazwa procesu inicjującego czasomierz;

              *  funkcja, w której czasomierz został zainicjowany i

              *  (w nawiasach) funkcja wywołania zwrotnego związanego z czasomierzem.

       /proc/tty
              Podkatalog zawierający psuedopliki i podkatalogi sterowników terminali  (tty)  oraz
              protokołów sterowania linią (line discipline).

       /proc/uptime
              Ten  plik  zawiera  dwie  liczby:  czas  pracy  systemu (w sekundach) i ilość czasu
              spędzonego na wykonywaniu procesu idle (w sekundach).

       /proc/version
              Ten napis określa wersję obecnie działającego jądra. Zawiera on w  sobie  zawartość
              /proc/sys/ostype, /proc/sys/osrelease i /proc/sys/version. Na przykład:
            Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994

       /proc/vmstat (od Linuksa 2.6.0)
              Plik  ten wyświetla różne statystyki pamięci wirtualnej. Każdy wiersz pliku zawiera
              pojedynczą parę nazwa-wartość, oddzieloną białym znakiem. Część z tych plików  jest
              obecnych  jedynie  gdy  jądro  skonfigurowano  z odpowiednimi opcjami (w niektórych
              przypadkach opcja wymagana dla poszczególnych plików mogła się zmieniać  w  różnych
              wersjach  jądra,  więc  nie  są  one  wymienione;  więcej  informacji można znaleźć
              sprawdzając kod źródeł jądra). Mogą być obecne następujące pola:

              nr_free_pages (od Linuksa 2.6.31)

              nr_alloc_batch (od Linuksa 3.12)

              nr_inactive_anon (od Linuksa 2.6.28)

              nr_active_anon (od Linuksa 2.6.28)

              nr_inactive_file (od Linuksa 2.6.28)

              nr_active_file (od Linuksa 2.6.28)

              nr_unevictable (od Linuksa 2.6.28)

              nr_mlock (od Linuksa 2.6.28)

              nr_anon_pages (od Linuksa 2.6.18)

              nr_mapped (od Linuksa 2.6.0)

              nr_file_pages (od Linuksa 2.6.18)

              nr_dirty (od Linuksa 2.6.0)

              nr_writeback (od Linuksa 2.6.0)

              nr_slab_reclaimable (od Linuksa 2.6.19)

              nr_slab_unreclaimable (od Linuksa 2.6.19)

              nr_page_table_pages (od Linuksa 2.6.0)

              nr_kernel_stack (od Linuksa 2.6.32)
                     Wielkość pamięci przypisana do stosów jądra.

              nr_unstable (od Linuksa 2.6.0)

              nr_bounce (od Linuksa 2.6.12)

              nr_vmscan_write (od Linuksa 2.6.19)

              nr_vmscan_immediate_reclaim (od Linuksa 3.2)

              nr_writeback_temp (od Linuksa 2.6.26)

              nr_isolated_anon (od Linuksa 2.6.32)

              nr_isolated_file (od Linuksa 2.6.32)

              nr_shmem (od Linuksa 2.6.32)
                     Strony użyte przez shmem i tmpfs.

              nr_dirtied (od Linuksa 2.6.37)

              nr_written (od Linuksa 2.6.37)

              nr_pages_scanned (od Linuksa 3.17)

              numa_hit (od Linuksa 2.6.18)

              numa_miss (od Linuksa 2.6.18)

              numa_foreign (od Linuksa 2.6.18)

              numa_interleave (od Linuksa 2.6.18)

              numa_local (od Linuksa 2.6.18)

              numa_other (od Linuksa 2.6.18)

              workingset_refault (od Linuksa 3.15)

              workingset_activate (od Linuksa 3.15)

              workingset_nodereclaim (od Linuksa 3.15)

              nr_anon_transparent_hugepages (od Linuksa 2.6.38)

              nr_free_cma (od Linuksa 3.7)
                     Liczba wolnych stron CMA (Contiguous Memory Allocator).

              nr_dirty_threshold (od Linuksa 2.6.37)

              nr_dirty_background_threshold (od Linuksa 2.6.37)

              pgpgin (od Linuksa 2.6.0)

              pgpgout (od Linuksa 2.6.0)

              pswpin (od Linuksa 2.6.0)

              pswpout (od Linuksa 2.6.0)

              pgalloc_dma (od Linuksa 2.6.5)

              pgalloc_dma32 (od Linuksa 2.6.16)

              pgalloc_normal (od Linuksa 2.6.5)

              pgalloc_high (od Linuksa 2.6.5)

              pgalloc_movable (od Linuksa 2.6.23)

              pgfree (od Linuksa 2.6.0)

              pgactivate (od Linuksa 2.6.0)

              pgdeactivate (od Linuksa 2.6.0)

              pgfault (od Linuksa 2.6.0)

              pgmajfault (od Linuksa 2.6.0)

              pgrefill_dma (od Linuksa 2.6.5)

              pgrefill_dma32 (od Linuksa 2.6.16)

              pgrefill_normal (od Linuksa 2.6.5)

              pgrefill_high (od Linuksa 2.6.5)

              pgrefill_movable (od Linuksa 2.6.23)

              pgsteal_kswapd_dma (od Linuksa 3.4)

              pgsteal_kswapd_dma32 (od Linuksa 3.4)

              pgsteal_kswapd_normal (od Linuksa 3.4)

              pgsteal_kswapd_high (od Linuksa 3.4)

              pgsteal_kswapd_movable (od Linuksa 3.4)

              pgsteal_direct_dma

              pgsteal_direct_dma32 (od Linuksa 3.4)

              pgsteal_direct_normal (od Linuksa 3.4)

              pgsteal_direct_high (od Linuksa 3.4)

              pgsteal_direct_movable (od Linuksa 2.6.23)

              pgscan_kswapd_dma

              pgscan_kswapd_dma32 (od Linuksa 2.6.16)

              pgscan_kswapd_normal (od Linuksa 2.6.5)

              pgscan_kswapd_high

              pgscan_kswapd_movable (od Linuksa 2.6.23)

              pgscan_direct_dma

              pgscan_direct_dma32 (od Linuksa 2.6.16)

              pgscan_direct_normal

              pgscan_direct_high

              pgscan_direct_movable (od Linuksa 2.6.23)

              pgscan_direct_throttle (od Linuksa 3.6)

              zone_reclaim_failed (od Linuksa 2.6.31)

              pginodesteal (od Linuksa 2.6.0)

              slabs_scanned (od Linuksa 2.6.5)

              kswapd_inodesteal (od Linuksa 2.6.0)

              kswapd_low_wmark_hit_quickly (od Linuksa 2.6.33)

              kswapd_high_wmark_hit_quickly (od Linuksa 2.6.33)

              pageoutrun (od Linuksa 2.6.0)

              allocstall (od Linuksa 2.6.0)

              pgrotated (od Linuksa 2.6.0)

              drop_pagecache (od Linuksa 3.15)

              drop_slab (od Linuksa 3.15)

              numa_pte_updates (od Linuksa 3.8)

              numa_huge_pte_updates (od Linuksa 3.13)

              numa_hint_faults (od Linuksa 3.8)

              numa_hint_faults_local (od Linuksa 3.8)

              numa_pages_migrated (od Linuksa 3.8)

              pgmigrate_success (od Linuksa 3.8)

              pgmigrate_fail (od Linuksa 3.8)

              compact_migrate_scanned (od Linuksa 3.8)

              compact_free_scanned (od Linuksa 3.8)

              compact_isolated (od Linuksa 3.8)

              compact_stall (od Linuksasince Linux 2.6.35)
                     Zobacz plik źródeł jądra Documentation/vm/transhuge.txt.

              compact_fail (od Linuksa 2.6.35)
                     Zobacz plik źródeł jądra Documentation/vm/transhuge.txt.

              compact_success (od Linuksa 2.6.35)
                     Zobacz plik źródeł jądra Documentation/vm/transhuge.txt.

              htlb_buddy_alloc_success (od Linuksa 2.6.26)

              htlb_buddy_alloc_fail (od Linuksa 2.6.26)

              unevictable_pgs_culled (od Linuksa 2.6.28)

              unevictable_pgs_scanned (od Linuksa 2.6.28)

              unevictable_pgs_rescued (od Linuksa 2.6.28)

              unevictable_pgs_mlocked (od Linuksa 2.6.28)

              unevictable_pgs_munlocked (od Linuksa 2.6.28)

              unevictable_pgs_cleared (od Linuksa 2.6.28)

              unevictable_pgs_stranded (od Linuksa 2.6.28)

              thp_fault_alloc (od Linuksa 2.6.39)
                     Zobacz plik źródeł jądra Documentation/vm/transhuge.txt.

              thp_fault_fallback (od Linuksa 2.6.39)
                     Zobacz plik źródeł jądra Documentation/vm/transhuge.txt.

              thp_collapse_alloc (od Linuksa 2.6.39)
                     Zobacz plik źródeł jądra Documentation/vm/transhuge.txt.

              thp_collapse_alloc_failed (od Linuksa 2.6.39)
                     Zobacz plik źródeł jądra Documentation/vm/transhuge.txt.

              thp_split (od Linuksa 2.6.39)
                     Zobacz plik źródeł jądra Documentation/vm/transhuge.txt.

              thp_zero_page_alloc (od Linuksa 3.8)
                     Zobacz plik źródeł jądra Documentation/vm/transhuge.txt.

              thp_zero_page_alloc_failed (od Linuksa 3.8)
                     Zobacz plik źródeł jądra Documentation/vm/transhuge.txt.

              balloon_inflate (od Linuksa 3.18)

              balloon_deflate (od Linuksa 3.18)

              balloon_migrate (od Linuksa 3.18)

              nr_tlb_remote_flush (od Linuksa 3.12)

              nr_tlb_remote_flush_received (od Linuksa 3.12)

              nr_tlb_local_flush_all (od Linuksa 3.12)

              nr_tlb_local_flush_one (od Linuksa 3.12)

              vmacache_find_calls (od Linuksa 3.16)

              vmacache_find_hits (od Linuksa 3.16)

              vmacache_full_flushes (od Linuksa 3.19)

       /proc/zoneinfo (od Linuksa 2.6.13)
              Plik zawiera informacje o strefach pamięci. Może być przydatny podczas analizowania
              zachowania pamięci wirtualnej.

UWAGI

       Wiele  łańcuchów  znakowych  (np.  środowisko  czy  linia  poleceń)  występuje  w  postaci
       wewnętrznej, z polami zakończonymi bajtami NUL ('\0'), więc jeśli do  ich  czytania  użyje
       się  od  -c  lub  tr  "\000" "\n", to mogą być bardziej czytelne. Alternatywnie, echo `cat
       <plik>` działa równie dobrze.

       Ta strona podręcznika jest niekompletna, prawdopodobnie  niedokładna  i  należy  do  tych,
       które powinny być bardzo często poprawiane.

ZOBACZ TAKŻE

       cat(1),   dmesg(1),   find(1),  free(1),  ps(1),  tr(1),  uptime(1),  chroot(2),  mmap(2),
       readlink(2), syslog(2), slabinfo(5), hier(7), namespaces(7), time(7),  arp(8),  hdparm(8),
       ifconfig(8),  init(1),  lsmod(8),  lspci(8),  mount(8), netstat(8), procinfo(8), route(8),
       sysctl(8)

       Pliki      w      źródłach      jądra      Linux:       Documentation/filesystems/proc.txt
       Documentation/sysctl/fs.txt, Documentation/sysctl/kernel.txt, Documentation/sysctl/net.txt
       i Documentation/sysctl/vm.txt.

O STRONIE

       Angielska wersja tej strony  pochodzi  z  wydania  4.05  projektu  Linux  man-pages.  Opis
       projektu,  informacje  dotyczące  zgłaszania błędów, oraz najnowszą wersję oryginału można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Jiffy to wartość wynosząca, w zależności od architektury, od 1 do 10 ms (4 ms w  przypadku
       i386).

       Autorami  polskiego  tłumaczenia niniejszej strony podręcznika man są: Przemek Borys (PTM)
       <pborys@p-soft.silesia.linux.org.pl>, Robert Luberda <robert@debian.org> i  Michał  Kułach
       <michal.kulach@gmail.com>.

       Polskie  tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na
       stronie  http://sourceforge.net/projects/manpages-pl/.  Jest   zgodne   z   wersją    4.05
       oryginału.