Provided by: manpages-pl_0.5-1_all bug

NAZWA

       proc - pseudosystem plików z informacjami o procesach

OPIS

       proc  jest  pseudosystemem  plików,  który  służy jako lepszy interfejs do struktur 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.

       Następujący szkic ukazuje w szybki sposób hierarchię /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]/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.

       /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]/cmdline
              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]/coredump_filter (od wersji jądra 2.6.23)
              Patrz core(5).

       /proc/[pid]/cpuset (od wersji jądra 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  procesu  co  [pid].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 wersji jądra 2.6.22)
              Jest  to  podkatalog zawierający po jednym wpisie dla każdego pliku otwartego przez
              proces; nazwą tego wpisu jest deskryptor pliku. Zawartość pliku można odczytać, aby
              uzyskać informacje o odpowiadającym mu deskryptorze pliku, na przykład:

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

              Pole  pos  jest  liczbą  dziesiętną  oznaczającą bieżące przesunięcie w pliku. Pole
              flags jest liczbą ósemkową zawierającą prawa dostępu do  pliku  i  znaczniki  stanu
              (patrz open(2)).

              Tylko właściciel procesu może odczytywać pliki z tego katalogu.

       /proc/[pid]/limits (od wersji jądra 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.

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

       /proc/[pid]/mountstats (Od wersji Linuksa 2.6.17)
              Plik eksportuje  informacje  (statystyki,  informacje  konfiguracyjne)  o  punktach
              montowań w przestrzeni nazwy 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.

       /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   o
              przestrzeniach nazw, proszę zapoznać się z clone(2).

       /proc/[pid]/ns/ipc (od Linuksa 3.0)
              Montowanie  używając  podpięcia  wykonane na tym pliku (patrz mount(2)) do jakiegoś
              innego miejsca w systemie plików utrzymuje przestrzeń nazwy IPC  procesu  określoną
              przez  pid  nawet,  gdy  zakończą  się  wszystkie  procesy znajdujące się obecnie w
              przestrzeni nazwy.

              Otwarcie tego  pliku  przywróci  obsługę  pliku  dotyczącą  przestrzeni  nazwy  IPC
              procesu,  określonego  przez  pid.  Tak  długo jak jego deskryptor pliku pozostanie
              otwarty, przestrzeń nazwy IPC pozostanie aktywna, nawet jeśli wszystkie  procesy  w
              przestrzeni nazwy zakończą się. Deskryptor pliku może być podany do setns(2).

       /proc/[pid]/ns/net (od Linuksa 3.0)
              Montowanie  używając  podpięcia  wykonane na tym pliku (patrz mount(2)) do jakiegoś
              innego miejsca w  systemie  plików  utrzymuje  sieciową  przestrzeń  nazwy  procesu
              określoną  przez  pid  nawet,  gdy  zakończą się wszystkie procesy znajdujące się w
              przestrzeni nazwy.

              Otwarcie tego pliku przywróci obsługę pliku dotyczącą sieciowej  przestrzeni  nazwy
              procesu,  określonego  przez  pid.  Tak  długo jak jego deskryptor pliku pozostanie
              otwarty, sieciowa  przestrzeń  nazwy  pozostanie  aktywna,  nawet  jeśli  wszystkie
              procesy  w  przestrzeni  nazwy  zakończą  się.  Deskryptor pliku może być podany do
              setns(2).

       /proc/[pid]/ns/uts (od Linuksa 3.0)
              Montowanie używając podpięcia wykonane na tym pliku (patrz  mount(2))  do  jakiegoś
              innego  miejsca  w systemie plików utrzymuje przestrzeń nazwy UTS procesu określoną
              przez pid nawet, gdy zakończą  się  wszystkie  procesy  znajdujące  się  obecnie  w
              przestrzeni nazwy.

              Otwarcie  tego  pliku  przywróci  obsługę  pliku  dotyczącą  przestrzeni  nazwy UTS
              procesu, określonego przez pid. Tak długo  jak  jego  deskryptor  pliku  pozostanie
              otwarty,  przestrzeń  nazwy UTS pozostanie aktywna, nawet jeśli wszystkie procesy w
              przestrzeni nazwy zakończą się. Deskryptor pliku może być podany do setns(2).

       /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]/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ę 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]/smaps (od Linuksa 2.6.14)
              Plik  ten  pokazuje  zużycie  pamięci  dla  każdego  mapowania procesu. Dla każdego
              takiego mapowania pokazana jest lista następujących linii:

                  08048000-080bc000 r-xp 00000000 03:02 13130      /bin/bash
                  Size:               464 kB
                  Rss:                424 kB
                  Shared_Clean:       424 kB
                  Shared_Dirty:         0 kB
                  Private_Clean:        0 kB
                  Private_Dirty:        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, liczbę czystych i brudnych stron współdzielonych w  mapowaniu  oraz
              liczbę czystych i brudnych prywatnych stron w mapowaniu.

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

       /proc/[pid]/stat
              Informacje  o  stanie  procesu.  Korzysta  z  tego  ps(1).  Są  one  zdefiniowane w
              /usr/src/linux/fs/proc/array.c.

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

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

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

              state %c    (3)  Jeden  znak  spośród  "RSDZTW",  gdzie  R (running) oznacza proces
                          działający, S - (sleeping) proces uśpiony w oczekiwaniu przerywalnym, D
                          -  (disk)  proces  uśpiony  w oczekiwaniu nieprzerywalnym, Z - (zombie)
                          proces duch, T - (traced) śledzony lub zatrzymany (przez sygnał), a W -
                          którego strony zastąpiono.

              ppid %d     (4) PID procesu macierzystego.

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

              session %d  (6) Identyfikator sesji procesu.

              tty_nr %d   (7)   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).

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

              flags %u (%lu przed wersją 2.6.22 Linuksa)
                          (9) 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.

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

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

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

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

              utime %lu   (14) 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ń.

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

              cutime %ld  (16)  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).

              cstime %ld  (17)  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).

              priority %ld
                          (18)  (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.

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

              num_threads %ld
                          (20)  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.

              itrealvalue %ld
                          (21)  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.

              starttime %llu (było %lu przed Linuksem 2.6)
                          (22) 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)).

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

              rss %ld     (24) 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.

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

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

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

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

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

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

              signal %lu  (31)  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.

              blocked %lu (32) 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.

              sigignore %lu
                          (33)  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.

              sigcatch %lu
                          (34)  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.

              wchan %lu   (35)  Jest to "kanał", na którym oczekuje proces. Jest to adres funkcji
                          systemowej i można go znaleźć na  liście  nazw,  jeśli  potrzebna  jest
                          nazwa  tekstowa.  (Gdy  /etc/psdatabase  jest  aktualne, można zobaczyć
                          działanie pola WCHAN, próbując ps -l.)

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

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

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

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

              rt_priority %u (od Linuksa 2.5.19; było %lu przed Linuksem 2.6.22)
                          (40) 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)).

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

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

              guest_time %lu (od Linuksa 2.6.24)
                          (43)  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)

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

       /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
                  VmHWM:      7572 kB
                  VmRSS:      6316 kB
                  VmData:     5224 kB
                  VmStk:        88 kB
                  VmExe:       572 kB
                  VmLib:      1708 kB
                  VmPTE:        20 kB
                  Threads:        1
                  SigQ:   0/3067
                  SigPnd: 0000000000000000
                  ShdPnd: 0000000000000000
                  SigBlk: 0000000000010000
                  SigIgn: 0000000000384004
                  SigCgt: 000000004b813efb
                  CapInh: 0000000000000000
                  CapPrm: 0000000000000000
                  CapEff: 0000000000000000
                  CapBnd: ffffffffffffffff
                  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)).

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

              * 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 jądra
                2.6.26, patrz capabilities(7)).

              * 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_context_switches, nonvoluntary_context_switches: Liczba dobrowolnych  i
                przymusowych przełączeń kontekstu (od Linuksa 2.6.23).

       /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/apm
              Wersja  APM (Zaawansowane zarządzanie energią) oraz informacja o akumulatorach, gdy
              CONFIG_APM było zdefiniowane podczas kompilacji jądra.

       /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), zgrep(1) itd. 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/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
              Pusty podkatalog.

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

              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 na których wykonano mmap 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)
                     W   oparciu   o  współczynnik  overcommit  ('vm.overcommit_ratio')  jest  to
                     całkowita wielkość pamięci dostępnej obecnie do  przydzielenia  w  systemie.
                     Limit jest przestrzegany jedynie gdy włączono ścisłe rozliczanie overcommitu
                     (tryb 2 w  /proc/sys/vm/overcommit_ratio).  CommitLimit  jest  obliczany  na
                     podstawie następującego wzoru:

                         CommitLimit = (overcommit_ratio * Physical RAM) + Swap

                     Na przykład w systemie z 1 GiB fizycznej pamięci RAM i 7 GiB pamięci wymiany
                     z overcommit_ratio równym 30, ta formuła daje CommitLimit  na  poziomie  7,3
                     GiB.    Więcej   informacji   zawiera   dokumentacja   w   źródłach   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 GiB pamięci (za  pomocą  malloc(3)  lub  podobnej  konstrukcji),
                     używający  jedynie  300  MiB  pamięci,  będzie pokazywał użycie tych 300 MiB
                     pamięci, nawet jeśli przydzielił przestrzeń adresową dla całego 1 GiB. Ten 1
                     GiB  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
                     /proc/sys/vm/overcommit_memory)  alokacja  która  przekroczyłaby CommitLimit
                     (szczegóły wyżej) 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.

              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.

       /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

              Gdzie "Num" jest numerem wpisu w tablicy jądra, "RefCount" jest liczbą użytkowników
              gniazda, "Protocol" obecnie jest  zawsze  zerem,  "Flags"  reprezentuje  wewnętrzne
              znaczniki  jądra, określające stan gniazda. "Type" jest zawsze równe "1" (Nie ma na
              razie  w  jądrze  wsparcia  dla  gniazd  datagramowych  domeny  UNIX).  "St"   jest
              wewnętrznym  stanem  gniazda,  a  ścieżka  jest ścieżką (jeśli istnieje) związaną z
              gniazdem.

       /proc/partitions
              Zawiera liczby główne i poboczne każdej z  partycji  oraz  liczby  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ń,  każda następna określa całkowitą
                     wartość dla danego przerwania.

              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)

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

              Stała  jądra  NR_OPEN  narzuca  górne  ograniczenie  wartości,  która  może  zostać
              umieszczone w file-max.

              Gdy   zwiększa   się   /proc/sys/fs/file-max,   należy   pamiętać   o   zwiększeniu
              /proc/sys/fs/inode-max  do  wartości   3-4   razy   większej   niż   nowa   wartość
              /proc/sys/fs/file-max lub należy się liczyć z tym, że zabraknie i-węzłów.

              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
              Ten plik zawiera maksymalną liczbę i-węzłów w pamięci. W niektórych (2.4) systemach
              może  nie  występować.  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.

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

       /proc/sys/fs/inode-state
              Zawiera siedem  liczb:  nr_inodes,  nr_free_inodes,  preshrink  i  cztery  wartości
              nieużywane.  nr_inodes jest liczbą przydzielonych w systemie i-węzłów. Może ona być
              nieco  większa  niż  inode-max,  gdyż  Linux  przydziela   je   pełnymi   stronami.
              nr_free_inodes  przedstawia  liczbę wolnych i-węzłów. preshrink jest niezerowe, gdy
              nr_inodes > inode-max  oraz  w  systemie  występuje  potrzeba  wyczyszczenia  listy
              i-węzłów zamiast przydzielania nowych.

       /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/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 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/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(8)  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
              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.

       /proc/sys/kernel/msgmnb
              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/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). 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
              Cztery wartości w  pliku  printk  to:  console_loglevel,  default_message_loglevel,
              minimum_console_level   i   default_console_loglevel.   Wartości   te  wpływają  na
              zachowanie  printk()  podczas  wypisywania  lub   logowania   komunikatów   błędów.
              Informacja  o  różnych  poziomach logowania można znaleźć w syslog(2). Komunikaty o
              priorytecie wyższym niż console_loglevel będą wypisywane na konsoli. Komunikaty bez
              jawnego   priorytetu   będą   wypisywane   z   priorytetem   default_message_level.
              minimum_console_loglevel  jest  najmniejszą  (najwyższą)  wartością,  którą   można
              ustawić jako console_loglevel. default_console_loglevel jest domyślną wartością dla
              console_loglevel.

       /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/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/sem (od wersji 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
              Ten plik zawiera  ogólnosystemowe  ograniczenie  całkowitej  liczby  stron  pamięci
              wspólnej Systemu V.

       /proc/sys/kernel/shmmax
              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/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 - całkowicie 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 zrzuty procesów w celu debugowania itd.
                       16 - włącza polecenie sync
                       32 - włącza ponowne montowanie tylko do odczytu
                       64 - włącza sygnały procesów (term, kill, oom-kill)
                      128 - pozwala na restartowanie/wyłączanie
                      256 - pozwala ustawiać 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 jak 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.

       /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/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/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, zwalniając tę pamięć.

              Aby zwolnić bufor stronicowania, należy użyć echo 1 > /proc/sys/vm/drop_caches; aby
              zwolnić dentries i i-węzły, należy użyć  echo  2  >  /proc/sys/vm/drop_caches;  aby
              zwolnić   bufor   stronicowania,   dentries   i  i-węzły,  należy  użyć  echo  3  >
              /proc/sys/vm/drop_caches.

              Ponieważ operacja ta nie jest destrukcyjna  i  brudne  obiekty  nie  są  zwalniane,
              użytkownik powinien wcześniej uruchomić sync(8).

       /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_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  jest  ograniczony  do  (SS  +  RAM*(r/100)),  gdzie  SS  jest   rozmiarem
              przestrzeni  wymiany, RAM jest rozmiarem fizycznej pamięci, a r - zawartością pliku
              /proc/sys/vm/overcommit_ratio.

       /proc/sys/vm/overcommit_ratio
              Zobacz 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/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 wersji Linuksa 2.6)
              Plik ten wyświetla różne statystyki pamięci wirtualnej.

       /proc/zoneinfo (od wersji 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),  time(7),  arp(8),  hdparm(8),  ifconfig(8),
       init(8), 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     i
       Documentation/sysctl/vm.txt

O STRONIE

       Angielska wersja tej strony  pochodzi  z  wydania  3.52  projektu  Linux  man-pages.  Opis
       projektu   oraz   informacje   dotyczące  zgłaszania  błędów  można  znaleźć  pod  adresem
       http://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ą    3.52
       oryginału.