Provided by: manpages-ru_4.18.1-1_all bug

ИМЯ

       proc - псевдо-файловая система с информацией о процессах

ОПИСАНИЕ

       Файловая  система  proc  —  это псевдо-файловая система, которая предоставляет интерфейс к
       структурам данных ядра. Обычно,  она  монтируется  в  /proc  и  это  выполняется  системой
       автоматически, но также можно монтировать её вручную с помощью команды:

           mount -t proc proc /proc

       Большинство  файлов  файловой системы proc доступны только для чтения, но есть и доступные
       на запись, через которые можно изменять переменные ядра.

   Параметры монтирования
       Файловая система proc поддерживает следующие параметры монтирования:

       hidepid=n (начиная с Linux 3.3)
              Позволяет управлять доступом к информации в  каталогах  /proc/pid.  В  аргументе  n
              может указываться одно из следующих значений:

              0   Все  имеют  доступ ко всем каталогам /proc/pid. Обычное поведение, используется
                  по умолчанию, если этот параметр не указан.

              1   Пользователи не имеют доступа к файлам и подкаталогам любого каталога /proc/pid
                  кроме  их собственных (сами каталоги /proc/pid остаются видимыми). Важные файлы
                  /proc/pid/cmdline и /proc/pid/status теперь защищены от  других  пользователей.
                  Это  делает  невозможным  увидеть какие программы запустил пользователь (до тех
                  пор, пока сама программа не раскрывает себя своим поведением).

              2   Как режим 1,  но  дополнительно  и  каталоги  /proc/pid,  принадлежащие  другим
                  пользователям,  становятся  невидимыми.  Это  означает,  что элементы /proc/pid
                  теперь нельзя использовать для получения PID в системе. Это  не  скрывает  факт
                  того,  что  процесса  с определённым PID не существует (это можно определить по
                  другому, например, командой  «kill  -0  $PID»),  но  это  скрывает  UID  и  GID
                  процесса, которые можно было определять с помощью stat(2) на каталог /proc/pid.
                  Это сильно усложняет атакующему задачу  по  сбору  информации  о  выполняющихся
                  процессах   (например,   определение  того,  запущены  ли  некоторые  службы  с
                  повышенными  правами,  запустил  ли  другой   пользователь   некоторую   важную
                  программу,  выполняет  ли вообще какую-либо программу другой пользователь и так
                  далее).

       gid=gid (начиная с Linux 3.3)
              Задаёт ID группы, члены которой могут просматривать информацию о процессах в  обход
              запрещению  hidepid,  (т.  е.  пользователям  в  этой  группе  кажется,  что  /proc
              смонтирована  с  hidepid=0).  Эту  группу  нужно  использовать   вместо   помещения
              непривилегированных пользователем в файл sudoers(5) для тех же целей.

   Обзор
       В каталоге /proc существуют следующие общие группы файлов и подкаталогов:

       Подкаталоги /proc/pid
              Каждый  из  этих  подкаталогов  включает  файлы  и  подкаталоги,  которые  содержат
              информацию о процессе с соответствующим ID процесса.

              В каждом каталоге /proc/pid  есть  подкаталог  task,  включающий  подкаталоги  вида
              task/tid,  которые  содержат  информацию  о каждой нить процесса, где tid — ID нити
              ядра.

              Подкаталоги /proc/pid видимы при обходе /proc с помощью getdents(2) (и поэтому  они
              видимы  программам  подобным  ls(1), которые используются для просмотра содержимого
              /proc).

       Подкаталоги /proc/tid
              В каждом из этих подкаталогов содержатся файлы и подкаталоги с информацией о нити с
              соответствующим  ID  нити. Содержимое этих каталогов такое же как у соответствующих
              каталогов /proc/pid/task/tid.

              Подкаталоги /proc/tid не видимы при обходе /proc с помощью getdents(2)  (и  поэтому
              они  не  видимы  программам  подобным  ls(1),  которые  используются  для просмотра
              содержимого /proc).

       /proc/self
              Когда процесс обращается по  этой  символьной  ссылке,  она  указывает  на  каталог
              /proc/pid самого процесса.

       /proc/thread-self
              Когда  нить  обращается  по  этой  символьной  ссылке,  она  указывает  на  каталог
              /proc/self/task/tid самого процесса.

       /proc/[a-z]*
              Другие файлы и подкаталоги в /proc предоставляют информацию о системе.

       Всё перечисленное выше далее будет описано подробней.

   Файлы и каталоги
       В следующем списке подробно описаны многие файлы и каталоги в иерархии /proc.

       /proc/pid
              Эти  числовые  подкаталоги  соответствуют  работающим  процессам;  имя  подкаталога
              соответствует   идентификатору   процесса.  Каждый  подкаталог  /proc/pid  содержит
              псевдо-файлы и каталоги, описываемые далее.

              Файлы в каждом каталоге /proc/pid, обычно, принадлежат действующему  идентификатору
              пользователя   и   группы   процесса.   Однако  в  целях  безопасности,  владельцем
              устанавливается  root:root,  если  у  процесса  атрибут  «dumpable»  установлен   в
              значение, отличное от 1.

              До  Linux  4.11,  root:root  означал «глобальный» идентификатор суперпользователя и
              группы (т. е., UID 0 и GID 0 в первоначальном пользовательском пространстве  имён).
              Начиная  с  Linux  4.11,  если процесс находится не первоначальном пользовательском
              пространстве имён, имеющий  корректное  отображение  идентификатор  0  пользователя
              (группы)  внутри  пространства  имён,  то  владельцем  (группой) файлов в /proc/pid
              вместо  этого  будет  тот  же  идентификатор  суперпользователя  (группы)   как   у
              пространства   имён.   Это   означает,  что  внутри  контейнера  для  контейнерного
              «суперпользователя» всё будет работать как ожидается.

              Атрибут процесса «dumpable» может измениться по следующим причинам:

              •  Атрибут был явно изменён с помощью операции PR_SET_DUMPABLE вызова prctl(2).

              •  Атрибут был сброшен  в  значение  из  файла  /proc/sys/fs/suid_dumpable  (описан
                 далее) по причинам, описанным в prctl(2).

              Resetting  the  "dumpable"  attribute to 1 reverts the ownership of the /proc/pid/*
              files to the process's effective UID and GID.  Note, however, that if the effective
              UID or GID is subsequently modified, then the "dumpable" attribute may be reset, as
              described in prctl(2).  Therefore, it may be  desirable  to  reset  the  "dumpable"
              attribute after making any desired changes to the process's effective UID or GID.

       /proc/pid/attr
              Файлы  в  этом  катале  предоставляют программный интерфейс к модулям безопасности.
              Содержимое этого каталога представляет собой файлы для чтения  и  записи  атрибутов
              безопасности.   Этот   каталог  был  добавлен  для  поддержки  SELinux,  но  данный
              программный  интерфейс  может   использоваться   для   поддержки   других   модулей
              безопасности. Как работать с этими файлами показано на примере с SELinux ниже.

              Данный каталог доступен только, если ядро собрано с параметром CONFIG_SECURITY.

       /proc/pid/attr/current (начиная с Linux 2.6.0)
              В этом файле представлены текущие атрибуты безопасности процесса.

              В  SELinux этот файл используется для получения контекста безопасности процесса. До
              Linux 2.6.11 этот файл нельзя было использовать для задания контекста  безопасности
              (запись   была  запрещена),  так  как  ограничение  безопасности  SELinux  процесса
              изменяется при execve(2) (смотрите описание /proc/pid/attr/exec  ниже).  Начиная  с
              Linux  2.6.11  в  SELinux  это  ограничение  снято  и  началась  поддержка операций
              «установки» посредством записи в эту ноду, если  это  допускается  политикой,  хотя
              использование  данной  операции  подходит  только  для  приложений,  которым  можно
              доверять управление любым желаемым разделением между  старым  и  новым  контекстами
              безопасности.

              До  Linux  2.6.28  в  SELinux  нитям  не  разрешалось внутри многонитевого процесса
              задавать свой контекст безопасности через эту  ноду,  так  как  это  привело  бы  к
              нестыковке контекстов безопасности нитей, использующи[ общее адресное пространство.
              Начиная с Linux 2.6.28  в  SELinux  это  ограничение  снято  и  началась  поддержка
              поддержка  операций «установки» для нитей внутри многонитевого процесса, если новый
              контекст  безопасности  привязан  к  старому  контексту  безопасности,  где   связь
              определена  политикой  и  гарантируется,  что  новый контекст безопасности является
              поднабором прав старого контекста безопасности.

              Другие модули безопасности могут  также  добавить  поддержку  операций  «установки»
              через запись в эту ноду.

       /proc/pid/attr/exec (начиная с Linux 2.6.0)
              В этом файле представлены атрибуты, назначаемые процессу при последующем execve(2).

              В  SELinux  это  необходимо  для поддержки перехода роль/домен и execve(2) является
              предпочтительным местом выполнения  таких  изменений,  так  как  предлагает  лучший
              контроль  над  инициализацией  процесса  с  новой меткой безопасности и наследуемым
              состоянием. В SELinux этот атрибут сбрасывается при  execve(2)  и  новая  программа
              получает  поведение  по  умолчанию  для  всех  вызовов execve(2), которые она может
              сделать. В SELinux процесс может задать только свой атрибут в /proc/pid/attr/exec.

       /proc/pid/attr/fscreate (начиная с Linux 2.6.0)
              В этом файле представлены атрибуты для назначения файлам, создаваемым  последующими
              вызовами open(2), mkdir(2), symlink(2) и mknod(2).

              SELinux  создаёт  этот  файл для поддержки создания файла (с помощью вышеупомянутых
              системных  вызовов)  в  безопасном  состоянии,  исключая,   таким   образом,   риск
              неправомерного  доступа,  который  можно  получить  в  промежутке между созданием и
              назначением атрибутов. В SELinux этот атрибут сбрасывается при  execve(2),  поэтому
              новой  программе  возвращается  поведение  по  умолчанию при любых вызовах создания
              файла, но атрибут сохраняется между  несколькими  вызовами  создания  файла  внутри
              программы,  пока она явно его не сбросит. В SELinux процесс может установить только
              свой атрибут /proc/pid/attr/fscreate.

       /proc/pid/attr/keycreate (начиная с Linux 2.6.18)
              If a process writes a security context into this  file,  all  subsequently  created
              keys (add_key(2))  will be labeled with this context.  For further information, see
              the   kernel   source   file    Documentation/security/keys/core.rst    (or    file
              Documentation/security/keys.txt    between   Linux   3.0   and   Linux   4.13,   or
              Documentation/keys.txt before Linux 3.0).

       /proc/pid/attr/prev (начиная с Linux 2.6.0)
              Этот файл содержит контекст  безопасности  процесса  перед  последним  execve(2)  —
              предыдущее значение /proc/pid/attr/current.

       /proc/pid/attr/socketcreate (начиная с Linux 2.6.18)
              Если процесс записывает контекст безопасности в этот файл, то все создаваемые далее
              сокеты будут помечены этим контекстом.

       /proc/pid/autogroup (начиная с Linux 2.6.38)
              Смотрите sched(7).

       /proc/pid/auxv (since Linux 2.6.0)
              Содержит информацию, полученную интерпретатором ELF и переданную процессу во  время
              выполнения.  Формат  —  это  один  идентификатор  типа unsigned long ID и по одному
              значению типа unsigned long для каждого из элементов.  Последний  элемент  содержит
              два нуля. Смотрите также getauxval(3).

              Право   доступа   к  этому  файлу  определяется  проверкой  режима  доступа  ptrace
              PTRACE_MODE_READ_FSCREDS; смотрите ptrace(2).

       /proc/pid/cgroup (начиная с Linux 2.6.24)
              Смотрите cgroups(7).

       /proc/pid/clear_refs (начиная с Linux 2.6.22)

              Данный файл доступен только для записи и только владельцу процесса.

              В файл могут быть записаны следующие значения:

              1 (начиная с Linux 2.6.22)
                     Reset the PG_Referenced and ACCESSED/YOUNG bits for all the pages associated
                     with  the  process.  (Before Linux 2.6.32, writing any nonzero value to this
                     file had this effect.)

              2 (начиная с Linux 2.6.32)
                     Сбросить биты PG_Referenced и ACCESSED/YOUNG  для  всех  анонимных  страниц,
                     связанных с процессом.

              3 (начиная с Linux 2.6.32)
                     Сбросить  биты  PG_Referenced  и ACCESSED/YOUNG для всех страниц отображения
                     файлов, связанных с процессом.

              Очистка бит PG_Referenced и  ACCESSED/YOUNG  предоставляет  метод  приблизительного
              измерения  количества  памяти,  используемой  процессом. Во-первых, нужно прочитать
              значения в полях «Referenced» для VMA, показанных  в  /proc/pid/smaps,  и  получить
              объём  используемой  процессом  памяти.  Во-вторых,  очистить  биты PG_Referenced и
              ACCESSED/YOUNG и после некоторого известного временного интервала ещё раз прочитать
              значения  в полях «Referenced», чтобы получить размер используемой процессом памяти
              за известный интервал. Если это  интересно  только  для  изучения  выбранных  типов
              отображения, то вместо значение 1 можно использовать 2 или 3.

              Дополнительные записываемые значения, влияющие на другие свойства:

              4 (начиная с Linux 3.11)
                     Очистить бит несильного загрязнения (soft-dirty) для всех страниц, связанных
                     с  процессом.  Это  используется  (вместе  с   /proc/pid/pagemap)   системой
                     восстановления  контрольной  точки  для  обнаружения какие страницы процесса
                     были испачканы (dirtied) из-за записи в файл /proc/pid/clear_refs.

              5 (начиная с Linux 4.0)
                     Сбрасывает пик размера  резидентной  памяти  ("отметка  высоты  прилива")  в
                     текущее значение размера резидентной памяти.

              Запись  любого  значения  в  /proc/pid/clear_refs, отличного от перечисленных выше,
              ничего не меняет.

              Файл /proc/pid/clear_refs существует только, если включён параметр  настройки  ядра
              CONFIG_PROC_PAGE_MONITOR.

       /proc/pid/cmdline
              This  read-only  file  holds  the complete command line for the process, unless the
              process is a zombie.  In the latter case, there is nothing in this file: that is, a
              read  on  this file will return 0 characters.  The command-line arguments appear in
              this file as a set of strings separated by null bytes ('\0'), with a  further  null
              byte after the last string.

              If,  after  an execve(2), the process modifies its argv strings, those changes will
              show up here.  This is not the same thing as modifying the argv array.

              Кроме этого, процесс может изменить расположение памяти с помощью операции prctl(2)
              PR_SET_MM_ARG_START, на которое ссылается этот файл.

              Think of this file as the command line that the process wants you to see.

       /proc/pid/comm (начиная с Linux 2.6.33)
              This  file  exposes  the  process's comm value—that is, the command name associated
              with the process.  Different threads in the same process may  have  different  comm
              values,  accessible  via  /proc/pid/task/tid/comm.   A  thread  may modify its comm
              value, or that of any of other thread in the same thread group (see the  discussion
              of  CLONE_THREAD  in  clone(2)),  by  writing to the file /proc/self/task/tid/comm.
              Strings longer than TASK_COMM_LEN (16) characters (including the  terminating  null
              byte) are silently truncated.

              This  file  provides  a  superset  of  the  prctl(2)   PR_SET_NAME  and PR_GET_NAME
              operations, and is employed by pthread_setname_np(3)  when used to  rename  threads
              other  than  the  caller.   The  value in this file is used for the %e specifier in
              /proc/sys/kernel/core_pattern; see core(5).

       /proc/pid/coredump_filter (начиная с Linux 2.6.23)
              Смотрите core(5).

       /proc/pid/cpuset (начиная с Linux 2.6.12)
              Смотрите cpuset(7).

       /proc/pid/cwd
              Это символьная ссылка на текущий рабочий каталог процесса. Например,  чтобы  узнать
              текущий каталог процесса 20, вы должны проделать следующее:

                  $ cd /proc/20/cwd; pwd -P

              В  многонитевых  процессах,  содержимое  этой  символьной  ссылки  недоступно, если
              головная нить уже завершила работу (обычно с помощью вызова pthread_exit(3)).

              Право разыменовывать или читать (readlink(2)) эту символическую ссылку определяется
              проверкой режима доступа ptrace PTRACE_MODE_READ_FSCREDS; смотрите ptrace(2).

       /proc/pid/environ
              This  file  contains  the  initial  environment  that  was  set  when the currently
              executing program was started via execve(2).  The entries  are  separated  by  null
              bytes  ('\0'),  and  there  may  be a null byte at the end.  Thus, to print out the
              environment of process 1, you would do:

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

              Если после execve(2) процесс  изменил  своё  окружение  (например,  вызвав  функцию
              putenv(3) или напрямую изменив переменную environ(7)), то этот файл не показываются
              такие изменения.

              Кроме этого, процесс может изменить расположение памяти с помощью операции prctl(2)
              PR_SET_MM_ENV_START, на которое ссылается этот файл.

              Право   доступа   к  этому  файлу  определяется  проверкой  режима  доступа  ptrace
              PTRACE_MODE_READ_FSCREDS; смотрите ptrace(2).

       /proc/pid/exe
              Under Linux 2.2 and later, this file is  a  symbolic  link  containing  the  actual
              pathname of the executed command.  This symbolic link can be dereferenced normally;
              attempting to open it will open the executable.  You can even type /proc/pid/exe to
              run  another  copy of the same executable that is being run by process pid.  If the
              pathname has been unlinked, the symbolic link will contain the  string  '(deleted)'
              appended  to  the  original  pathname.  In a multithreaded process, the contents of
              this symbolic link are not available if the  main  thread  has  already  terminated
              (typically by calling pthread_exit(3)).

              Право разыменовывать или читать (readlink(2)) эту символическую ссылку определяется
              проверкой режима доступа ptrace PTRACE_MODE_READ_FSCREDS; смотрите ptrace(2).

              В ядрах Linux 2.0 и более ранних, /proc/pid/exe указывает на двоичный файл, который
              был выполнен, и работает как символьная ссылка. Вызов readlink(2) над этим файлом в
              Linux 2.0 вернёт строку следующего вида:

                  [device]:inode

              Например, [0301]:1502 указывает на inode 1502  на  устройстве  со  старшим  номером
              устройства 03 (IDE, MFM, и т.п. диски), младшим номером 01 (первый раздел на первом
              диске).

              Для поиска файла можно воспользоваться find(1) с параметром -inum.

       /proc/pid/fd/
              Этот подкаталог содержит одну запись для каждого файла, открытого процессом, именем
              является  номер его файлового дескриптора, и которая является символьной ссылкой на
              настоящий файл. Так, 0 — это стандартный поток ввода, 1 — стандартный поток вывода,
              2 — стандартный поток ошибок и т.п.

              Для  файловых  дескрипторов  каналов  и  сокетов записи будут символьными ссылками,
              содержимое которых — тип файла и inode. Вызов readlink(2) для такого  файла  вернёт
              строку в формате:

                  type:[inode]

              Например,  socket:[2248868]  —  для  сокета  с inode 2248868. Для сокетов эту inode
              можно использовать для  поиска  дополнительной  информации  в  одном  из  файлов  в
              /proc/net/.

              Для  файловых дескриптор без соответствующей иноды (например, файловые дескрипторы,
              создаваемые     bpf(2),     epoll_create(2),      eventfd(2),      inotify_init(2),
              perf_event_open(2),  signalfd(2), timerfd_create(2) и userfaultfd(2)), запись будет
              символьной ссылкой с содержимым в виде

                  anon_inode:тип-файла

              Во многих случаях (но не всех) тип-файла заключается в квадратные скобки.

              Например, файловый дескриптор epoll будет иметь символьную ссылку  с  содержимым  в
              виде строки anon_inode:[eventpoll].

              В  многонитевых  процессах, содержимое этого каталога недоступно, если главная нить
              уже завершила работу (обычно при помощи вызова pthread_exit(3)).

              Программы, принимающие в аргументе командной строки имя файлы, не читают данные  из
              стандартного  ввода, если аргумент не указан, а программы, которые выполняют запись
              в файл с именем,  указанным  в  аргументе  командной  строки,  не  пишут  данные  в
              стандартный  вывод,  если  аргумент не указан, но, тем не менее, могут использовать
              стандартный  ввод  или  вывод  через  файлы  /proc/pid/fd,  указанные  в  аргументе
              командной  строки.  Например,  подразумевая  что  -i  является флагом, обозначающим
              входной файл, и -o является флагом, обозначающим выходной файл, вы можете указать:

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

              и вы получите работающий фильтр.

              /proc/self/fd/N — это примерно то же, что и /dev/fd/N на некоторых системах UNIX  и
              подобных  им.  Фактически, большинство сценариев MAKEDEV в Linux создают символьную
              ссылку с именем /dev/fd на файл /proc/self/fd.

              Большинство  систем  предоставляют  символьные  ссылки  /dev/stdin,  /dev/stdout  и
              /dev/stderr,  которые соответствуют ссылкам на файлы 0, 1 и 2 в /proc/self/fd. Так,
              пример указанной выше команды может быть переписан в следующем виде:

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

              Право разыменовывать или читать (readlink(2)) символические ссылки в этом  каталоге
              определяется  проверкой  режима  доступа  ptrace PTRACE_MODE_READ_FSCREDS; смотрите
              ptrace(2).

              Заметим, что для файловых дескрипторов, указывающих  на  иноды  (каналы  и  сокеты,
              смотрите  выше),  эти  иноды  по-прежнему  имеют биты прав и информация о владельце
              отличается от  имеющейся  у  /proc/pid/fd  и  этот  владелец  может  отличаться  от
              идентификатора пользователя и группы процесса. Непривилегированный процесс может не
              иметь прав на их открытие, как в этом примере:

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

              Файловый дескриптор 0 указывает  на  канал,  созданный  оболочкой  и  принадлежащий
              владельцу  оболочки, не nobody, поэтому у программы cat нет прав на создание нового
              файлового дескриптора для чтения из этой иноды, хотя при этом  она  всё-таки  может
              читать из существующего файлового дескриптора 0.

       /proc/pid/fdinfo/ (начиная с Linux 2.6.22)
              Этот  подкаталог  содержит  один  элемент  на  каждый файл, который открыл процесс,
              именем файла будет номер его файлового дескриптора. Файлы в этом каталоге  доступны
              на  чтение только владельцу процесса. Содержимое каждого файла может быть прочитано
              для получения информации о соответствующем файловом дескрипторе. Содержимое зависит
              от типа файла, на который ссылается соответствующий файловый дескриптор.

              Для обычных файлов и каталогов содержимым будет, что-то типа:

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

              Поля:

              pos    Это десятичное число отражает смещение файла.

              flags  Это  восьмеричное  число  отражает  режим  доступа к файлу и флаги состояния
                     файла  (смотрите  open(2)).  Если  установлен  флаг  файлового   дескриптора
                     close-on-exec, то flags также содержат значение O_CLOEXEC.

                     До  Linux 3.1 в этом поле некорректно показывалось значение O_CLOEXEC верное
                     на момент открытия файла, а не текущее значение флага close-on-exec.

              mnt_id This field, present since Linux 3.15, is the ID of the mount containing this
                     file.  See the description of /proc/pid/mountinfo.

              Для  файловых дескрипторов eventfd (смотрите eventfd(2)) мы увидим (начиная с Linux
              3.8) следующие поля:

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

              В eventfd-count содержится  текущее  значение  счётчика  eventfd  counter  (в  виде
              шестнадцатеричного числа).

              Для файловых дескрипторов epoll (смотрите epoll(7)) мы увидим (начиная с Linux 3.8)
              следующие поля:

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

              Каждая строка, начинающаяся с tfd, описывает один из файловых дескрипторов, который
              отслеживается   через   файловый   дескриптор   epoll   (подробности   смотрите   в
              epoll_ctl(2)).  Поле  tfd  содержит  номер  файлового  дескриптора.   Поле   events
              представляет собой шестнадцатеричную маску событий, которые отслеживаются для этого
              файлового дескриптора.  Поле  data  содержит  данные,  связанные  с  этим  файловым
              дескриптором.

              Для  файловых  дескрипторов  signalfd  (смотрите  signalfd(2)) мы увидим (начиная с
              Linux 3.8) следующие поля:

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

              В sigmask содержится шестнадцатеричная маска сигналов,  которые  принимаются  через
              этот  файловый  дескриптор  signalfd  (в  этом  примере биты 2 и 3 установлены, что
              соответствует сигналам SIGINT и SIGQUIT; смотрите signal(7)).

              Для файловых дескрипторов inotify (смотрите inotify(7)) мы увидим (начиная с  Linux
              3.8) следующие поля:

                  pos: 0
                  flags:    00
                  mnt_id:   11
                  inotify wd:2 ino:7ef82a sdev:800001 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:2af87e00220ffd73
                  inotify wd:1 ino:192627 sdev:800001 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:27261900802dfd73

              Каждая   из   строк,   начинающаяся  с  «inotify»,  содержит  информацию  об  одном
              отслеживаемом файле или каталоге. Поля в этой строке:

              wd     Отслеживаемый номер файлового дескриптора (десятичное число).

              ino    Номер иноды целевого файла (шестнадцатеричное число).

              sdev   Идентификатор  устройства,  содержащего  целевой   файл   (шестнадцатеричное
                     число).

              mask   Маска отслеживаемых событий для целевого файла (шестнадцатеричное число).

              Если  ядро  собрано  с поддержкой exportfs, то путь целевого файла представляется в
              виде  описателя  (handle)  файла,  выраженного  тремя  шестнадцатеричными   полями:
              fhandle-bytes, fhandle-type и f_handle.

              Для  файловых  дескрипторов  fanotify  (смотрите  fanotify(7)) мы увидим (начиная с
              Linux 3.8) следующие поля:

                  pos: 0
                  flags:    02
                  mnt_id:   11
                  fanotify flags:0 event-flags:88002
                  fanotify ino:19264f sdev:800001 mflags:0 mask:1 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:4f261900a82dfd73

              В четвёртой строке содержится информация, определяющая когда была создана с помощью
              fanotify_init(2) группа fanotify:

              flags  Аргумент flags, переданный fanotify_init(2) (шестнадцатеричное число).

              event-flags
                     Аргумент   event_f_flags,   переданный  fanotify_init(2)  (шестнадцатеричное
                     число).

              В каждой дополнительной строке файла содержится информация  об  одной  из  меток  в
              группе fanotify. Большинство полей аналогичны с inotify, за исключением:

              mflags Флаги, связанные с меткой (шестнадцатеричное число).

              mask   Маска событий, связанная с этой меткой (шестнадцатеричное число).

              ignored_mask
                     Маска  событий,  которые  игнорируются  для  этой  метки  (шестнадцатеричное
                     число).

              Подробную информацию об этих полях смотрите в fanotify_mark(2).

              Для файловых дескрипторов timerfd (смотрите timerfd(2)) мы увидим (начиная с  Linux
              3.17) следующие поля:

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

              clockid
                     Числовое  значение  идентификатора  часов  (соответствует  одной из констант
                     CLOCK_*, определённых в <time.h>), используемое для отметки действия таймера
                     (в этом примере 0 — CLOCK_REALTIME).

              ticks  Количество  раз прошедших окончаний таймера (т. е., значение, которое вернул
                     бы для него вызов read(2)).

              settime flags
                     В  этом  поле  перечислены  флаги  в  восьмеричном  виде  (в  этом   примере
                     установлены   TFD_TIMER_ABSTIMEи  TFD_TIMER_CANCEL_ON_SET),  с  которым  был
                     запущен timerfd последний раз (смотрите timerfd_settime(2)).

              it_value
                     В этом поле содержит количество времени  до  следующего  истечения  таймера,
                     выраженное  в  секундах  и  наносекундах. Это всегда относительное значение,
                     независимо от флага создания таймера TFD_TIMER_ABSTIME.

              it_interval
                     В  этом  поле  содержится  интервал  таймера,  выраженный   в   секундах   и
                     наносекундах  (поля it_value и it_interval содержат значения, которые вернул
                     бы вызов timerfd_gettime(2) для этого файлового дескриптора).

       /proc/pid/gid_map (начиная с Linux 3.5)
              См. user_namespaces(7).

       /proc/pid/io (since Linux 2.6.20)
              Этот файл содержит статистику ввода-вывода процесса, например:

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

              Поля:

              rchar: прочитано символов
                     Количество байт, которое было прочитано данной  задачей  из  хранилища.  Это
                     просто  сумма  байт,  которую процесс передал в read(2) и подобные системные
                     вызовы. Здесь учитываются такие  вещи  как  ввод-вывод  с  терминалом  и  не
                     учитывается, происходил ли ввод-вывод действительно с физического диска (для
                     чтения могло оказаться достаточно страничного кэша).

              wchar: записано символов
                     Количество байт, которые были или должны  быть  записаны  задачей  на  диск.
                     Применимы те же оговорки, что и для rchar.

              syscr: количество системных вызовов чтения
                     Attempt  to  count  the  number of read I/O operations—that is, system calls
                     such as read(2)  and pread(2).

              syscw: количество системных вызовов записи
                     Attempt to count the number of write I/O operations—that  is,  system  calls
                     such as write(2)  and pwrite(2).

              read_bytes: прочитано байт
                     Попытка  подсчитать количество байт, которое процесс действительно получил с
                     уровня хранилища. Является точным для файловых систем блочного хранения.

              write_bytes: записано байт
                     Попытка подсчитать количество байт, которое процесс действительно послал  на
                     уровень хранилища.

              cancelled_write_bytes:
                     Есть  большая погрешность при усечении. Если процесс записывает 1 МБ в файл,
                     а затем удаляет файл, то, фактически, он ничего не  запишет.  Но  это  будет
                     подсчитано   как  запись  1  МБ.  Другими  словами:  это  поле  представляет
                     количество байт, для которых процесс  отменил  запись  посредством  усечения
                     страничного  кэша.  Задача  также  может вызвать «отрицательный» ввод-вывод.
                     Если  задача  усекает  часть  устаревшего  страничного  кэша,  то  некоторый
                     ввод-вывод,  который  был  учтён  в  другой  задаче  (в  её write_bytes), не
                     произойдёт.

              Замечание: В текущей реализации существует  большая  состязательность  в  32-битных
              системах:  если  процесс  A  читает  /proc/pid/io  процесса  B  в момент обновления
              64-битных счётчиков процесса B, то процесс A может увидеть промежуточный результат.

              Право  доступа  к  этому  файлу  определяется  проверкой  режима   доступа   ptrace
              PTRACE_MODE_READ_FSCREDS; смотрите ptrace(2).

       /proc/pid/limits (начиная с Linux 2.6.24)
              В  этом файле содержатся мягкие и жёсткие ограничения (limit), а также измерения по
              каждого ограничению ресурсов процесса (см. getrlimit(2)). Файл доступен  на  чтение
              только  реальному  UID  процесса.  Начиная  с  Linux  2.6.36,  может читаться всеми
              пользователями системы.

       /proc/pid/map_files/ (since Linux 3.3)
              В этом подкаталоге содержатся записи, соответствующие файлам, отображённым в память
              (смотрит  mmap(2)).  Имена  записей  соответствуют  начальному  и  конечному адресу
              области памяти (в виде шестнадцатеричных чисел), и  символьными  ссылками  на  само
              отображённые файлы. Пример (подогнан под 80-колоночный терминал):

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

              Хотя  эти записи предназначены для областей памяти, отображённых с флагом MAP_FILE,
              из реализации в Linux области анонимной общей памяти (области, созданные с  флагами
              MAP_ANON  |  MAP_SHARED)  также  будут  присутствовать  в  этом каталоге. Пример, в
              котором файл назначения — удалённый /dev/zero:

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

              Право  доступа  к  этому  файлу  определяется  проверкой  режима   доступа   ptrace
              PTRACE_MODE_READ_FSCREDS; смотрите ptrace(2).

              Until  Linux  4.3,  this  directory  appeared only if the CONFIG_CHECKPOINT_RESTORE
              kernel configuration option was enabled.

              Capabilities are required to read the  contents  of  the  symbolic  links  in  this
              directory:  before  Linux  5.9,  the  reading process requires CAP_SYS_ADMIN in the
              initial user namespace; since Linux 5.9,  the  reading  process  must  have  either
              CAP_SYS_ADMIN or CAP_CHECKPOINT_RESTORE in the user namespace where it resides.

       /proc/pid/maps
              Файл,  содержащий  адреса областей памяти, которые используются программой в данный
              момент и права доступа к ним. Информацию об отображении памяти смотрите в mmap(2).

              Право  доступа  к  этому  файлу  определяется  проверкой  режима   доступа   ptrace
              PTRACE_MODE_READ_FSCREDS; смотрите ptrace(2).

              Формат файла:

                  address           perms offset  dev   inode       pathname
                  00400000-00452000 r-xp 00000000 08:02 173521      /usr/bin/dbus-daemon
                  00651000-00652000 r--p 00051000 08:02 173521      /usr/bin/dbus-daemon
                  00652000-00655000 rw-p 00052000 08:02 173521      /usr/bin/dbus-daemon
                  00e03000-00e24000 rw-p 00000000 00:00 0           [heap]
                  00e24000-011f7000 rw-p 00000000 00:00 0           [heap]
                  ...
                  35b1800000-35b1820000 r-xp 00000000 08:02 135522  /usr/lib64/ld-2.15.so
                  35b1a1f000-35b1a20000 r--p 0001f000 08:02 135522  /usr/lib64/ld-2.15.so
                  35b1a20000-35b1a21000 rw-p 00020000 08:02 135522  /usr/lib64/ld-2.15.so
                  35b1a21000-35b1a22000 rw-p 00000000 00:00 0
                  35b1c00000-35b1dac000 r-xp 00000000 08:02 135870  /usr/lib64/libc-2.15.so
                  35b1dac000-35b1fac000 ---p 001ac000 08:02 135870  /usr/lib64/libc-2.15.so
                  35b1fac000-35b1fb0000 r--p 001ac000 08:02 135870  /usr/lib64/libc-2.15.so
                  35b1fb0000-35b1fb2000 rw-p 001b0000 08:02 135870  /usr/lib64/libc-2.15.so
                  ...
                  f2c6ff8c000-7f2c7078c000 rw-p 00000000 00:00 0    [stack:986]
                  ...
                  7fffb2c0d000-7fffb2c2e000 rw-p 00000000 00:00 0   [stack]
                  7fffb2d48000-7fffb2d49000 r-xp 00000000 00:00 0   [vdso]

              В  поле  address  показано  адресное  пространство  процесса,  в  которое выполнено
              отображение, а в поле perms — права доступа:

                  r = можно читать
                  w = можно писать
                  x = можно выполнять
                  s = можно использовать несколькими процессами совместно
                  p = личное (копирование при записи)

              Поле  offset  —  это  смещение  в  файле/где-то  ещё;  dev  —  устройство  (старший
              номер:младший  номер);  inode  —  индексный  дескриптор  на  данном  устройстве.  0
              означает, что с данной областью памяти не связаны индексные  дескрипторы:  примером
              тому является сегмент BSS (неинициализированные данные).

              В  поле  pathname обычно указывается отображённый файл. Если файл в формате ELF, то
              вы легко можете установить связь с полем offset, посмотрев  в  Offset  программного
              заголовка ELF (readelf -l).

              Дополнительные полезные псевдо-пути:

              [stack]
                     Начальный стек процесса (главной нити).

              [stack:tid] (from Linux 3.4 to Linux 4.4)
                     Стек  нити  (где tid — ID нити). Соответствует пути /proc/pid/task/tid/. Это
                     поле было удалено в Linux 4.5,  так  как  предоставление  им  информации  по
                     процессу с большим количеством нитей оказалось слишком затратным.

              [vdso] Виртуальный, динамически компонуемый, общий объект. Смотрите vdso(7).

              [heap] Куча процесса.

              [anon:name] (since Linux 5.17)
                     A named private anonymous mapping.  Set with prctl(2) PR_SET_VMA_ANON_NAME.

              [anon_shmem:name] (since Linux 6.2)
                     A named shared anonymous mapping.  Set with prctl(2) PR_SET_VMA_ANON_NAME.

              Если  значение  поля  pathname  пусто,  то  это анонимное отображение, полученное с
              помощью mmap(2). Нет простого способа увязать это с источником  в  процессе,  кроме
              как запустив его в gdb(1), strace(1) и т.п.

              Всё  значение  pathname  является  неэкранированным,  кроме  символа  новой строки,
              который заменяется на восьмеричную экранирующую  последовательность.  В  результате
              невозможно   определить,  что  в  оригинальном  пути  —  символ  новой  строки  или
              экранирующая последовательность буквенная \012.

              Если файл отображается в виртуальную память и  удаляется,  то  к  пути  добавляется
              строка " (deleted)". Заметим, что это также проблематичное решение.

              В Linux 2.0 поле, указывающее на имя файла, отсутствует.

       /proc/pid/mem
              Этот  файл  можно  использовать  для  получения доступа к страницам памяти процесса
              через вызовы open(2), read(2) и lseek(2).

              Право  доступа  к  этому  файлу  определяется  проверкой  режима   доступа   ptrace
              PTRACE_MODE_ATTACH_FSCREDS; смотрите ptrace(2).

       /proc/pid/mountinfo (начиная с Linux 2.6.26)
              This  file  contains information about mounts in the process's mount namespace (see
              mount_namespaces(7)).  It supplies various information  (e.g.,  propagation  state,
              root  of  mount  for bind mounts, identifier for each mount and its parent) that is
              missing from the (older)  /proc/pid/mounts file, and fixes various  other  problems
              with  that  file  (e.g.,  nonextensibility, failure to distinguish per-mount versus
              per-superblock options).

              В этом файле содержатся строки в следующем формате:

              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)

              Описания полей (номер представлен в скобках):

              (1)  ID монтирования: уникальный идентификатор монтирования  (может  использоваться
                   повторно после umount(2)).

              (2)  родительский  ID:  ID  родительского  монтирования (или самого себя, для корня
                   дерева монтирования).

                   Если  новая  точка  монтирования  накладывается  поверх   существующей   точки
                   монтирования  (таким образ скрывая её) hides the existing mount) с путём P, то
                   родитель новой точки монтирования равен предыдущей точке монтирования  в  этом
                   расположении.  То  есть,  если  смотреть  все точки монтирования наложенные на
                   определённое расположение, то самой  верхней  точкой  монтирования  будет  та,
                   которая  не  является  родителем каких-либо других точек монтирования в том же
                   расположении  (однако  заметим,  что  это  верхняя  точка  монтирования  будет
                   доступна  только,  если  самый  длинный  подпрефикс  пути P, являющийся точкой
                   монтирования, сам не будет скрыт наложенным монтированием).

                   If the parent mount lies outside the process's root directory (see chroot(2)),
                   the  ID  shown here won't have a corresponding record in mountinfo whose mount
                   ID (field 1) matches this parent mount ID (because mounts that lie outside the
                   process's  root  directory  are not shown in mountinfo).  As a special case of
                   this point, the process's  root  mount  may  have  a  parent  mount  (for  the
                   initramfs  filesystem)  that lies outside the process's root directory, and an
                   entry for that mount will not appear in mountinfo.

              (3)  старший:младший: значение st_dev для файлов в этой файловой системе  (смотрите
                   stat(2)).

              (4)  корень:  путь  к  каталогу  в  файловой  системе, с которого начинается корень
                   данного монтирования.

              (5)  точка монтирования: путь точки монтирования  относительно  корневого  каталога
                   процесса.

              (6)  параметры   монтирования:   параметры   конкретного   монтирования   (смотрите
                   mount(2)).

              (7)  необязательные поля: ноль или более полей в виде «метка[:значение]»;  смотрите
                   далее.

              (8)  разделитель:   конец   необязательных   полей  отмечается  одиночным  символом
                   переноса.

              (9)  тип файловой системы: тип файловой системы в виде «тип[.подтип]».

              (10) источник  монтирования:  информация,  специфичная  для  файловой  системы  или
                   «none».

              (11) параметры суперблока: параметры конкретного суперблока (смотрите mount(2)).

              Возможные  необязательные  поля  на данный момент: shared, master, propagate_from и
              unbindable. Описание этих полей смотрите в mount_namespaces(7). Анализаторы  должны
              игнорировать все неизвестные необязательные поля.

              For        more        information       on       mount       propagation       see
              Documentation/filesystems/sharedsubtree.rst                                     (or
              Documentation/filesystems/sharedsubtree.txt  before Linux 5.8)  in the Linux kernel
              source tree.

       /proc/pid/mounts (начиная с Linux 2.4.19)
              Этот файл содержит список всех файловых систем, смонтированных в пространстве  имён
              монтирования  процесса в данный момент (смотрите mount_namespaces(7)). Формат этого
              файл описан в fstab(5).

              Since Linux 2.6.15, this file is pollable: after opening the file  for  reading,  a
              change in this file (i.e., a filesystem mount or unmount) causes select(2)  to mark
              the  file  descriptor  as  having  an  exceptional  condition,  and  poll(2)    and
              epoll_wait(2)   mark  the file as having a priority event (POLLPRI).  (Before Linux
              2.6.30, a change in this file was indicated by the file descriptor being marked  as
              readable  for  select(2), and being marked as having an error condition for poll(2)
              and epoll_wait(2).)

       /proc/pid/mountstats (начиная с Linux 2.6.17)
              This file exports information (statistics, configuration  information)   about  the
              mounts  in  the process's mount namespace (see mount_namespaces(7)).  Lines in this
              file have the form:

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

              Поля каждой строки:

              (1)  Имя смонтированного устройства  (или  "nodevice",  если  нет  соответствующего
                   устройства).

              (2)  Точка монтирования в дереве файловой системы.

              (3)  Тип файловой системы.

              (4)  Необязательная  статистика  и информация о настройке. В настоящее время (Linux
                   версии 2.6.26), в этом  поле  доступна  только  информация  об  экспортируемых
                   файловых системах NFS.

              Данный файл доступен на чтение только владельцу процесса.

       /proc/pid/net (начиная с Linux 2.6.25)
              Смотрите описание /proc/net.

       /proc/pid/ns/ (начиная с Linux 3.0)
              В  этом  подкаталоге  содержится  по  одной записи на каждое пространство имён, для
              которых в setns(2) есть поддержка изменений. Дополнительную информацию  смотрите  в
              namespaces(7).

       /proc/pid/numa_maps (начиная с Linux 2.6.14)
              Смотрите numa(7).

       /proc/pid/oom_adj (начиная с Linux 2.6.11)
              Этот  файл  может  использоваться  для  подгонки  оценки,  используемой  при выборе
              процесса, который нужно завершить при нехватке памяти (OOM).  Ядро  использует  это
              значение  в  операции  побитового  сдвига значения oom_score у процесса: допустимые
              находятся в диапазоне от  -16  до  +15,  плюс  специальное  значение  -17,  которое
              отключает   OOM-завершение   для   этого   процесса  совсем.  Положительная  оценка
              увеличивает вероятность,  что  процесс  будет  завершён  OOM-killer;  отрицательная
              оценка уменьшает вероятность.

              Значение  по  умолчанию  в  этом  файле  равно  0;  новый  процесс наследует его от
              родительского значения oom_adj. Для изменения  этого  файла  процесс  должен  иметь
              мандат CAP_SYS_RESOURCE.

              Начиная   с   Linux   2.6.36,   вместо   этого   файла  рекомендуется  использовать
              /proc/pid/oom_score_adj.

       /proc/pid/oom_score (начиная с Linux 2.6.11)
              Этот файл содержит текущую оценку, которую ядро назначило  процессу,  учитывающуюся
              при  избрании  процесса  OOM-killer.  Более высокая оценка означает, что у процесса
              есть больше шансов быть выбранным OOM-killer. Основой  оценки  является  количество
              памяти  используемой  процессом  и  различные  увеличивающие  (+) и уменьшающие (-)
              факторы:

              •  считается ли процесс привилегированным (-).

              Before Linux 2.6.36 the following factors were also  used  in  the  calculation  of
              oom_score:

              •  создавал ли процесс много потомков с помощью fork(2) (+);

              •  долго ли работал процесс, или использовал много процессорного времени (-);

              •  имеет ли процесс низкое значение уступчивости (nice) (т. е., > 0) (+); и

              •  обращается ли процесс к аппаратному обеспечению напрямую (-).

              Значение  oom_score также отражает подгонку смещения, указанную в oom_score_adj или
              oom_adj процесса.

       /proc/pid/oom_score_adj (начиная с Linux 2.6.36)
              Этот файл может использоваться для подгонки оценки вредности для  выбора  процесса,
              который нужно завершить при нехватке памяти.

              Значение  оценки  вредности  назначается  каждой  задаче-кандидату от 0 (никогда не
              завершать) до 1000 (всегда завершать), которым  определяется  какой  процесс  будет
              выбран.  Единицы  примерно  пропорциональны  диапазону  разрешённой памяти, которую
              может запросить процесс, на основе вычисления его текущей  памяти  и  использованию
              подкачки.Например,  если  задача  использует  всю  разрешённую  память, то значение
              вредности будет равно 1000. Если процесс использует половину разрешённой памяти, то
              значение будет 500.

              Есть  дополнительный  фактор, учитывающийся для вредности: процессам root даётся на
              3% больше памяти, чем другим задачам.

              Количество  «разрешённой»  памяти  зависит  от  контекста,  в  котором  был  вызван
              OOM-killer.  Если  он  вызван в момент, когда при назначении памяти для выделенного
              cpuset задачи происходит исчерпание, то разрешённая память представляет набор  mem,
              назначенных  этому  cpuset (смотрите cpuset(7)). Если это происходит при исчерпании
              узлов mempolicy, то разрешённая память представляет набор узлов mempolicy. Если это
              происходит  при  достижении  лимита на память (или лимита подкачки), то разрешённой
              памятью считается настроенный лимит. Наконец,  если  это  происходит  при  нехватке
              памяти  во  всей  системе,  то  разрешённой  памятью  считаются  все  доступные для
              выделения ресурсы.

              Значение oom_score_adj добавляется к значению вредности перед  тем  как  оно  будет
              использовано  для определения завершаемой задачи. Диапазон разрешённых значений: от
              -1000 (OOM_SCORE_ADJ_MIN) до +1000 (OOM_SCORE_ADJ_MAX). Это позволяет  осуществлять
              контроль  за  настройкой  OOM-killing  из  пользовательского пространства, указывая
              самые ненужные задачи или полностью отключая OOM-killing для  самых  важных.  Самое
              минимальное  значение,  -1000,  эквивалентно  полному  отключению  OOM-killing  для
              определённой задачи, так как оно снижает значение вредности до 0.

              Следовательно, из пользовательского пространства очень просто определить количество
              памяти  по  каждой  задаче. Например, установка значения oom_score_adj равным +500,
              примерно эквивалентна разрешению оставшимся задачам использовать  общим  в  системы
              ресурсам,  cpuset,  mempolicy, или контроллеру памяти не менее 50% памяти. С другой
              стороны, значение -500 было бы примерно эквивалентно отниманию 50%  из  разрешённой
              памяти задачи при подсчёте вредности задачи.

              Для обратной совместимости с предыдущими версиями ядер значение в /proc/pid/oom_adj
              всё ещё может учитываться при подстройке значения вредности. Это  значение  линейно
              масштабируется с oom_score_adj.

              Запись  в /proc/pid/oom_score_adj или /proc/pid/oom_adj изменит и значение в другом
              параметре с соответствующим масштабом.

              Программа choom(1)  предоставляет интерфейс командной строки для  подбора  значения
              oom_score_adj в уже работающем процессе или новой запускаемой команде.

       /proc/pid/pagemap (начиная с Linux 2.6.25)
              Через  данный  файл показываются отображения каждой виртуальной страницы процесса в
              физические страничный кадры и области подкачки. Каждой страницы соответствует  одно
              64-битное число, биты которого имеют следующее значение:

              63     Если установлен, то страница находится в оперативной памяти.

              62     Если установлен, то страница находится в пространстве подкачки.

              61 (начиная с Linux 3.5)
                     Страница  является  отображённой  файловой  страницей  или  общей  анонимной
                     страницей.

              60–58 (since Linux 3.11)
                     Ноль

              57 (начиная с Linux 5.14)
                     If set, the page is write-protected through userfaultfd(2).

              56 (начиная с Linux 4.2)
                     Страница отображена монопольно.

              55 (начиная с Linux 3.11)
                     PTE  содержит  бит   soft-dirty   (смотрите   файл   исходного   кода   ядра
                     Documentation/admin-guide/mm/soft-dirty.rst).

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

              Before Linux 3.11, bits 60–55 were used to encode the base-2 log of the page size.

              Для эффективного использования /proc/pid/pagemap обратитесь  к  /proc/pid/maps  для
              определения   какие   области   памяти  действительно  отображены  и  отбросьте  не
              отображённые области.

              Файл /proc/pid/pagemap существует только,  если  включён  параметр  настройки  ядра
              CONFIG_PROC_PAGE_MONITOR.

              Право   доступа   к  этому  файлу  определяется  проверкой  режима  доступа  ptrace
              PTRACE_MODE_READ_FSCREDS; смотрите ptrace(2).

       /proc/pid/personality (начиная с Linux 2.6.28)
              В  файле  (только  для  чтения)  содержится  домен  выполнения  процесса,  заданный
              personality(2). Значение отображено в шестнадцатеричной системе счисления.

              Право   доступа   к  этому  файлу  определяется  проверкой  режима  доступа  ptrace
              PTRACE_MODE_ATTACH_FSCREDS; смотрите ptrace(2).

       /proc/pid/root
              UNIX и Linux поддерживают идею о попроцессном корневом каталоге  файловой  системы,
              который  может  быть  установлен  системным  вызовом  chroot(2). Этот файл является
              символьной ссылкой, которая указывает на корневой каталог процесса и ведёт себя так
              же, как exe и fd/*.

              Note  however  that  this file is not merely a symbolic link.  It provides the same
              view of the filesystem (including namespaces and the set of per-process mounts)  as
              the  process itself.  An example illustrates this point.  In one terminal, we start
              a shell in new user and mount namespaces, and in that  shell  we  create  some  new
              mounts:

                  $ PS1='sh1# ' unshare -Urnm
                  sh1# mount -t tmpfs tmpfs /etc  # Mount empty tmpfs at /etc
                  sh1# mount --bind /usr /dev     # Mount /usr at /dev
                  sh1# echo $$
                  27123

              Во  втором  терминальном  окне,  в  первоначальном  пространстве имён монтирования,
              посмотрим  содержимое  соответствующего  монтирования  в  первоначальном  и   новом
              пространстве имён:

                  $ PS1='sh2# ' sudo sh
                  sh2# ls /etc | wc -l                  # In initial NS
                  309
                  sh2# ls /proc/27123/root/etc | wc -l  # /etc in other NS
                  0                                     # The empty tmpfs dir
                  sh2# ls /dev | wc -l                  # In initial NS
                  205
                  sh2# ls /proc/27123/root/dev | wc -l  # /dev in other NS
                  11                                    # Actually bind
                                                        # mounted to /usr
                  sh2# ls /usr | wc -l                  # /usr in initial NS
                  11

              В  многонитевых  процессах, содержимое символьной ссылки /proc/pid/root недоступно,
              если головная нить уже завершила работу (обычно с помощью вызова pthread_exit(3)).

              Право разыменовывать или читать (readlink(2)) эту символическую ссылку определяется
              проверкой режима доступа ptrace PTRACE_MODE_READ_FSCREDS; смотрите ptrace(2).

       /proc/pid/projid_map (начиная с Linux 3.7)
              См. user_namespaces(7).

       /proc/pid/seccomp (Linux 2.6.12 to Linux 2.6.22)
              Этот  файл  можно  использовать  для чтения и изменения настройки режима безопасных
              вычислений в процессе (seccomp). Он содержит значение 0, если процесс не  в  режиме
              seccomp,  и 1, если процесс ограничен режимом seccomp (смотрите seccomp(2)). Запись
              1  в  этот  файл  безвозвратно  помещает  процесс  в  ограниченный  режим   seccomp
              (последующие попытки записать в файл завершаются ошибкой EPERM).

              В  Linux  2.6.23  этот  файл  был  убран  и  заменён  операциями  PR_GET_SECCOMP  и
              PR_SET_SECCOMP  вызова  prctl(2)  (а  позднее  seccomp(2)   и   полем   Seccomp   в
              /proc/pid/status).

       /proc/pid/setgroups (начиная с Linux 3.19)
              См. user_namespaces(7).

       /proc/pid/smaps (начиная с Linux 2.6.14)
              Этот  файл  содержит  значение  потребления  памяти  каждого  отображения процесса.
              (команда pmap(1) выводит похожую информацию в пригодной  для  анализа  форме).  Для
              каждого отображения есть несколько строк в виде:

                  00400000-0048a000 r-xp 00000000 fd:03 960637       /bin/bash
                  Size:                552 kB
                  Rss:                 460 kB
                  Pss:                 100 kB
                  Shared_Clean:        452 kB
                  Shared_Dirty:          0 kB
                  Private_Clean:         8 kB
                  Private_Dirty:         0 kB
                  Referenced:          460 kB
                  Anonymous:             0 kB
                  AnonHugePages:         0 kB
                  ShmemHugePages:        0 kB
                  ShmemPmdMapped:        0 kB
                  Swap:                  0 kB
                  KernelPageSize:        4 kB
                  MMUPageSize:           4 kB
                  Locked:                0 kB
                  ProtectionKey:         0
                  VmFlags: rd ex mr mw me dw

              Первые  строки  содержат  ту же информацию, что и для отображения в /proc/pid/maps.
              Следующие строки содержат размер отображения, размер  отображения,  которое  сейчас
              находится в RAM («Rss»), вклад этого отображения в пропорцию общих страниц процесса
              («Pss»), количество чистых и  грязных  общих  страниц  в  отображении  и  количеств
              количество  чистых  и грязных частных страниц в отображении. В «Referenced» указано
              количество памяти помеченной, в данный  момент,  как  ссылочная  или  доступная.  В
              «Anonymous»  указано  количество  памяти,  которая не принадлежит никакому файлу. В
              «Swap» указано как много также использовалось было бы анонимной памяти,  но  она  в
              подкачке.

              Значение  «KernelPageSize»  (доступно,  начиная  с Linux 2.6.29) — размер страницы,
              используемый ядром при делении области виртуальной памяти. В  большинстве  случаев,
              размер  совпадает  с  используемым  в MMU. Однако, есть один контрпример в ядрах на
              PPC64, где в качестве базового размера страницы используется 64  КБ,  но  при  этом
              по-прежнему  могут  использоваться 4 КБ страницы для MMU на старых процессорах. Для
              различения двух атрибутов значением «MMUPageSize» (также доступно начиная  с  Linux
              2.6.29) определяется размер страницы, используемой MMU.

              Значение «Locked» указывает будет ли отображение заблокировано в памяти или нет.

              Значение  «ProtectionKey»  (доступно,  начиная  с Linux 4.9 только на x86) содержит
              ключ защиты памяти (смотрите pkeys(7)), связанный с  областью  виртуальной  памяти.
              Этот  элемент  появляется,  только  если  ядро  было собрано с параметром настройки
              CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS (начиная с Linux 4.6).

              Значение «VmFlags»  (доступно,  начиная  с  Linux  3.8)  представляет  флаги  ядра,
              связанные с виртуальной областью памяти, в виде двухбуквенного кода:

                     rd   -   readable
                     wr   -   writable
                     ex   -   executable
                     sh   -   shared
                     mr   -   may read
                     mw   -   may write
                     me   -   may execute
                     ms   -   may share
                     gd   -   stack segment grows down
                     pf   -   pure PFN range
                     dw   -   disabled write to the mapped file
                     lo   -   pages are locked in memory
                     io   -   memory mapped I/O area
                     sr   -   sequential read advise provided
                     rr   -   random read advise provided
                     dc   -   do not copy area on fork
                     de   -   do not expand area on remapping
                     ac   -   area is accountable
                     nr   -   swap space is not reserved for the area
                     ht   -   area uses huge tlb pages
                     sf   -   perform synchronous page faults (since Linux 4.15)
                     nl   -   non-linear mapping (removed in Linux 4.0)
                     ar   -   architecture specific flag
                     wf   -   wipe on fork (since Linux 4.14)
                     dd   -   do not include area into core dump
                     sd   -   soft-dirty flag (since Linux 3.13)
                     mm   -   mixed map area
                     hg   -   huge page advise flag
                     nh   -   no-huge page advise flag
                     mg   -   mergeable advise flag
                     um   -   userfaultfd missing pages tracking (since Linux 4.3)
                     uw   -   userfaultfd wprotect pages tracking (since Linux 4.3)

              Файл  /proc/pid/smaps  существует  только,  если  включён  параметр  настройки ядра
              CONFIG_PROC_PAGE_MONITOR.

       /proc/pid/stack (начиная с Linux 2.6.29)
              Этот файл предоставляет символическую трассировку вызовов функций в стеке ядра  для
              этого  процесса.  Этот  файл  есть  в  системе  только,  если  ядро  было собрано с
              параметром настройки CONFIG_STACKTRACE.

              Право  доступа  к  этому  файлу  определяется  проверкой  режима   доступа   ptrace
              PTRACE_MODE_ATTACH_FSCREDS; смотрите ptrace(2).

       /proc/pid/stat
              Информация  о  состоянии  процесса. Она используется командой ps(1). Определяется в
              файле исходного кода ядра fs/proc/array.c.

              Поля в соответствующем  порядке  с  их  надлежащими  описателями  формата  scanf(3)
              перечислены ниже. Корректность информации в этих полях управляется проверкой режима
              доступа  ptrace   PTRACE_MODE_READ_FSCREDS   |   PTRACE_MODE_NOAUDIT   (описана   в
              ptrace(2)).  Если  проверкой  доступ запрещён, то значение поля показывается как 0.
              Затронутые поля отмечены [PT].

              (1) pid  %d
                     Идентификатор процесса.

              (2) comm  %s
                     The filename  of  the  executable,  in  parentheses.   Strings  longer  than
                     TASK_COMM_LEN  (16)  characters  (including  the  terminating null byte) are
                     silently truncated.  This is  visible  whether  or  not  the  executable  is
                     swapped out.

              (3) state  %c
                     Один из следующих символов, описывающих состояние процесса:

                     R      Выполняется

                     S      Спит, ожидая прерывания

                     D      Ожидает в сне, непрерываемом диском

                     З      Зомби

                     Т      Остановлен  (по  сигналу)  или остановлен из-за трассировки (до Linux
                            2.6.33)

                     t      Остановлен из-за трассировки (после Linux 2.6.33)

                     W      Происходит замещение страниц (только до Linux 2.6.0)

                     X      Мёртв (с Linux 2.6.0)

                     x      Мёртв (только в Linux 2.6.33 по 3.13)

                     K      Пробудился, чтобы умереть (только в Linux 2.6.33 по 3.13)

                     W      Пробуждается (только в Linux 2.6.33 по 3.13)

                     П      Припаркован (только в Linux 3.9 по 3.13)

                     I      Idle (Linux 4.14 onward)

              (4) ppid  %d
                     Идентификатор (PID) родителя данного процесса.

              (5) pgrp  %d
                     Идентификатор группы процесса.

              (6) session  %d
                     Идентификатор сеанса процесса.

              (7) tty_nr  %d
                     Управляющий  терминал  процесса  (младший  номер   устройства   определяется
                     сочетанием бит: c 31 по 20 и с 7 по 0; старший номер устройства расположен в
                     битах с 15 по 8).

              (8) tpgid  %d
                     Идентификатор  группы  процесса,  которая   в   настоящий   момент   владеет
                     управляющим терминалом, к которому подключён данный процесс.

              (9) flags  %u
                     Слово  флагов  процесса  в  ядре. Назначение бит определено макросами PF_* в
                     файле include/linux/sched.h исходного  ядра  Linux.  Смысл  бит  зависит  от
                     версии ядра.

                     Формат данного поля был %lu до Linux 2.6.

              (10) minflt  %lu
                     Количество незначительных промахов процесса, которые не потребовали загрузки
                     страницы памяти с диска.

              (11) cminflt  %lu
                     Количество незначительных промахов процесса, которые возникли  при  ожидании
                     окончания работы процессов-потомков.

              (12) majflt  %lu
                     Количество  значительных  промахов  процесса,  которые  потребовали загрузки
                     страницы памяти с диска.

              (13) cmajflt  %lu
                     Количество значительных промахов процесса,  которые  возникли  при  ожидании
                     окончания работы процессов-потомков.

              (14) utime  %lu
                     Количество  времени,  которое  было  запланировано  для  работы  процесса  в
                     пользовательском    режиме,    измеряется    в    тиках    (поделённое    на
                     sysconf(_SC_CLK_TCK)).  Сюда  включено  гостевое  время,  guest_time (время,
                     потраченное на работу виртуального  ЦП,  см.  далее),  так  что  приложения,
                     которые не учитывают гостевое поле, не потеряют его при вычислениях.

              (15) stime  %lu
                     Количество  времени, которое было запланировано для работы процесса в режиме
                     ядра, измеряется в тиках (поделённое на sysconf(_SC_CLK_TCK)).

              (16) cutime  %ld
                     Количество  времени,  которое  было  запланировано  для  работы  процесса  в
                     пользовательском  режиме  для  ожидания окончания работы процессов-потомков,
                     измеряется  в  тиках  (поделённое  на   sysconf(_SC_CLK_TCK)   (см).   также
                     times(2)).  Сюда включено гостевое время, cguest_time (время, потраченное на
                     работу виртуального ЦП, см. далее).

              (17) cstime  %ld
                     Количество времени, которое было запланировано для работы процесса в  режиме
                     ядра  для  ожидания  окончания работы процессов-потомков, измеряется в тиках
                     (поделённое на sysconf(_SC_CLK_TCK)).

              (18) priority  %ld
                     (Объяснение относится  к  Linux  2.6)  Для  процессов,  работающих  согласно
                     политике    планирования    в    реальном   времени   (policy   далее;   см.
                     sched_setscheduler(2)), это значение задаёт приоритет  при  планировании  за
                     вычетом 1; то есть число в диапазоне от -2 до -100 соответствует приоритетам
                     реального времени от  1  до  99.  Для  процессов,  работающих  без  политики
                     планирования  в  реальном  времени,  это  не  изменённое значение любезности
                     (setpriority(2)) в том же виде в каком оно представлено в ядре. Ядро  хранит
                     значения  любезности в виде чисел в диапазоне от 0 (высокое) до 39 (низкое),
                     что соответствует диапазону пользователя от -20 до 19.

                     До Linux 2.6 это была пересчитанная величина на  основе  весов  планировщика
                     для определённого процесса.

              (19) nice  %ld
                     Значение любезности (смотрите setpriority(2)) задаётся числом в диапазоне от
                     19(низкий приоритет) до -20 (высокий приоритет).

              (20) num_threads  %ld
                     Number of threads in this process (since Linux 2.6).  Before Linux 2.6, this
                     field was hard coded to 0 as a placeholder for an earlier removed field.

              (21) itrealvalue  %ld
                     The time in jiffies before the next SIGALRM is sent to the process due to an
                     interval timer.  Since Linux 2.6.17, this field is no longer maintained, and
                     is hard coded as 0.

              (22) starttime  %llu
                     The  time  the  process  started  after system boot.  Before Linux 2.6, this
                     value was expressed in jiffies.  Since Linux 2.6, the value is expressed  in
                     clock ticks (divide by sysconf(_SC_CLK_TCK)).

                     Формат данного поля был %lu до Linux 2.6.

              (23) vsize  %lu
                     Размер виртуальной памяти в байтах.

              (24) rss  %ld
                     Resident  Set Size: number of pages the process has in real memory.  This is
                     just the pages which count toward text, data, or stack space.  This does not
                     include  pages  which  have  not been demand-loaded in, or which are swapped
                     out.  This value is inaccurate; see /proc/pid/statm below.

              (25) rsslim  %lu
                     Текущее  мягкое  ограничение  rss  процесса  в  байтах;  смотрите   описание
                     RLIMIT_RSS в getrlimit(2).

              (26) startcode  %lu  [PT]
                     Адрес начала сегмента исполняемого кода программы.

              (27) endcode  %lu  [PT]
                     Адрес конца сегмента исполняемого кода программы.

              (28) startstack  %lu  [PT]
                     Адрес начала (то есть низ) стека.

              (29) kstkesp  %lu  [PT]
                     Текущее значение ESP (указателя стека) процесса, хранящееся в странице стека
                     ядра.

              (30) kstkeip  %lu  [PT]
                     Текущее значение EIP (указатель инструкций).

              (31) signal  %lu
                     Карта ожидающих  сигналов,  отображается  как  число  в  десятичной  системе
                     счисления.   Устарело,  так  как  не  предоставляет  информации  о  сигналах
                     реального времени; вместо неё используйте /proc/pid/status.

              (32) blocked  %lu
                     Карта блокированных сигналов, отображается как число  в  десятичной  системе
                     счисления.   Устарело,  так  как  не  предоставляет  информации  о  сигналах
                     реального времени; вместо неё используйте /proc/pid/status.

              (33) sigignore  %lu
                     Карта игнорированных сигналов, отображается как число в  десятичной  системе
                     счисления.   Устарело,  так  как  не  предоставляет  информации  о  сигналах
                     реального времени; вместо неё используйте /proc/pid/status.

              (34) sigcatch  %lu
                     Карта перехваченных сигналов, отображается как число  в  десятичной  системе
                     счисления.   Устарело,  так  как  не  предоставляет  информации  о  сигналах
                     реального времени; вместо неё используйте /proc/pid/status.

              (35) wchan  %lu  [PT]
                     Это «канал», в котором ожидает процесс. Он является адресом  расположения  в
                     ядре,  где  спит  процесс.  Соответствующее  символическое имя можно найти в
                     /proc/pid/wchan.

              (36) nswap  %lu
                     () Количество страниц в подкачке (не сопровождается).

              (37) cnswap  %lu
                     () Суммарное значение nswap для процессов-потомков (не сопровождается).

              (38) exit_signal  %d  (since Linux 2.1.22)
                     Сигнал, который будет послан родителю, когда процесс завершит работу.

              (39) processor  %d  (начиная с Linux 2.2.8)
                     Номер процессора, на котором последний раз выполнялся процесс.

              (40) rt_priority  %u  (начиная с Linux 2.5.19)
                     Приоритет выполнения в реальном времени, число из диапазона от 1 до  99  для
                     процессов  запланированных  выполняться  согласно политике реального времени
                     или  0  для  процессов,   выполняющихся   не   в   реальном   времени   (см.
                     sched_setscheduler(2)).

              (41) policy  %u  (начиная с Linux 2.5.19)
                     Политика   планирования  (смотрите  sched_setscheduler(2)).  Декодируется  с
                     помощью констант SCHED_* из linux/sched.h.

                     Формат данного поля был %lu до Linux 2.6.22.

              (42) delayacct_blkio_ticks  %llu  (начиная с Linux 2.6.18)
                     Суммарная задержка блочного ввода-вывода, измеряется в  тиках  (сотых  долях
                     секунды).

              (43) guest_time  %lu  (начиная с Linux 2.6.24)
                     Гостевое  время  процесса  (время,  потраченное  на  работу  виртуального ЦП
                     гостевой  операционной  системы),  измеряется   в   тиках   (поделённых   на
                     sysconf(_SC_CLK_TCK)).

              (44) cguest_time  %ld  (начиная с Linux 2.6.24)
                     Гостевое   время   потомка  процесса,  измеряется  в  тиках  (поделённых  на
                     sysconf(_SC_CLK_TCK)).

              (45) start_data  %lu  (начиная с Linux 3.3)  [PT]
                     Адрес,    выше    которого    располагаются    инициализированные    и    не
                     инициализированные (BSS) данные.

              (46) end_data  %lu  (начиная с Linux 3.3)  [PT]
                     Адрес,    ниже    которого    располагаются    инициализированные    и    не
                     инициализированные (BSS) данные.

              (47) start_brk  %lu  (начиная с Linux 3.3)  [PT]
                     Адрес, выше которого программа может расширять кучу с помощью brk(2).

              (48) arg_start  %lu  (начиная с Linux 3.5)  [PT]
                     Адрес, выше которого  располагаются  аргументы  командной  строки  программы
                     (argv).

              (49) arg_end  %lu  (начиная с Linux 3.5)  [PT]
                     Адрес,  ниже  которого  располагаются  аргументы  командной строки программы
                     (argv).

              (50) env_start  %lu  (начиная с Linux 3.5)  [PT]
                     Адрес, выше которого располагается окружение программы.

              (51) env_end  %lu  (начиная с Linux 3.5)  [PT]
                     Адрес, ниже которого располагается окружение программы.

              (52) exit_code  %d  (начиная с Linux 3.5)  [PT]
                     Состояние завершения нити в виде, выдаваемом waitpid(2).

       /proc/pid/statm
              Предоставляет информацию об использовании памяти, измеряется в страницах. Колонки:

                  size       (1) total program size
                             (same as VmSize in /proc/pid/status)
                  resident   (2) resident set size
                             (inaccurate; same as VmRSS in /proc/pid/status)
                  shared     (3) number of resident shared pages
                             (i.e., backed by a file)
                             (inaccurate; same as RssFile+RssShmem in
                             /proc/pid/status)
                  text       (4) text (code)
                  lib        (5) library (unused since Linux 2.6; always 0)
                  data       (6) data + stack
                  dt         (7) dirty pages (unused since Linux 2.6; always 0)

              Some of these values  are  inaccurate  because  of  a  kernel-internal  scalability
              optimization.    If   accurate   values   are   required,  use  /proc/pid/smaps  or
              /proc/pid/smaps_rollup  instead,  which  are  much  slower  but  provide  accurate,
              detailed information.

       /proc/pid/status
              В  основном,  предоставляет  информацию из /proc/pid/stat и /proc/pid/statm в более
              лёгком для прочтения человеком формате. Пример:

                  $ cat /proc/$$/status
                  Name:   bash
                  Umask:  0022
                  State:  S (sleeping)
                  Tgid:   17248
                  Ngid:   0
                  Pid:    17248
                  PPid:   17200
                  TracerPid:      0
                  Uid:    1000    1000    1000    1000
                  Gid:    100     100     100     100
                  FDSize: 256
                  Groups: 16 33 100
                  NStgid: 17248
                  NSpid:  17248
                  NSpgid: 17248
                  NSsid:  17200
                  VmPeak:                                                         131168 kB
                  VmSize:                                                         131168 kB
                  VmLck:                                                               0 kB
                  VmPin:                                                               0 kB
                  VmHWM:                                                           13484 kB
                  VmRSS:                                                           13484 kB
                  RssAnon:                                                         10264 kB
                  RssFile:                                                          3220 kB
                  RssShmem:                                                            0 kB
                  VmData:                                                          10332 kB
                  VmStk:                                                             136 kB
                  VmExe:                                                             992 kB
                  VmLib:                                                            2104 kB
                  VmPTE:                                                              76 kB
                  VmPMD:                                                              12 kB
                  VmSwap:                                                              0 kB
                  HugetlbPages:          0 kB                                   # 4.4
                  CoreDumping:                                                  0                       # 4.15
                  Threads:        1
                  SigQ:   0/3067
                  SigPnd: 0000000000000000
                  ShdPnd: 0000000000000000
                  SigBlk: 0000000000010000
                  SigIgn: 0000000000384004
                  SigCgt: 000000004b813efb
                  CapInh: 0000000000000000
                  CapPrm: 0000000000000000
                  CapEff: 0000000000000000
                  CapBnd: ffffffffffffffff
                  CapAmb:                                                       0000000000000000
                  NoNewPrivs:     0
                  Seccomp:        0
                  Speculation_Store_Bypass:       vulnerable
                  Cpus_allowed:   00000001
                  Cpus_allowed_list:      0
                  Mems_allowed:   1
                  Mems_allowed_list:      0
                  voluntary_ctxt_switches:        150
                  nonvoluntary_ctxt_switches:     545

              Поля:

              Name   Command run  by  this  process.   Strings  longer  than  TASK_COMM_LEN  (16)
                     characters (including the terminating null byte) are silently truncated.

              Umask  umask  процесса,  выражается восьмеричным числом с начальным нулём; смотрите
                     umask(2) (начиная с Linux 4.7).

              State  Текущее состояние процесса. Может быть "R (работает)", "S (спит)", "D  (спит
                     на диске)", "T (остановлен)", "t (остановлен трассировкой)", "Z (зомби)" или
                     "X (завершён)".

              Tgid   Групповой ID нити (т.е., ID процесса).

              Ngid   идентификатор группы NUMA (0, если нет; начиная с Linux 3.13).

              Pid    ID нити (см. gettid(2)).

              PPid   PID родительского процесса.

              TracerPid
                     PID процесса,  который  выполняет  трассировку  данного  процесса  (0,  если
                     трассировки нет).

              Uid, Gid
                     Реальный,  эффективный,  сохранённый  и  используемый в файловой системе UID
                     (GID).

              FDSize Количество слотов файловых дескрипторов выделенных в данный момент.

              Groups Список дополнительных групп.

              NStgid Идентификатор группы нитей (т. е., PID) в каждом пространстве  имён  PID,  в
                     которых  pid  является  членом.  Крайняя  левая запись показывает значение в
                     соответствии с пространством имён PID  процесса,  для  которого  смонтирован
                     этот  procfs (или корневое пространство имён, если смонтировало ядро), далее
                     идёт значение в последующих вложенных внутрь  пространств  имён  (начиная  с
                     Linux 4.1).

              NSpid  Идентификатор  нити  в  каждом пространстве имён PID, в которых pid является
                     членом. Поля представлены в том же порядке что и в NStgid (начиная  с  Linux
                     4.1).

              NSpgid Идентификатор группы процессов в каждом пространстве имён PID, в которых pid
                     является членом. Поля представлены в том же порядке что и в NStgid  (начиная
                     с Linux 4.1).

              NSsid  идентификатор  сеанса  пространства  имён потомка в иерархии идентификаторов
                     сеанса в каждом пространстве имён PID, в которых pid является  членом.  Поля
                     представлены в том же порядке что и в NStgid (начиная с Linux 4.1).

              VmPeak Пик размера виртуальной памяти.

              VmSize Размер виртуальной памяти.

              VmLck  Размер заблокированной памяти (смотрите mlock(2)).

              VmPin  Размер закреплённой памяти (начиная с Linux 3.2). Эти страницы не могут быть
                     перемещены, так как для чего-то требуется прямой доступ к физической памяти.

              VmHWM  Peak resident set size ("high water mark").  This value is  inaccurate;  see
                     /proc/pid/statm above.

              VmRSS  Resident set size.  Note that the value here is the sum of RssAnon, RssFile,
                     and RssShmem.  This value is inaccurate; see /proc/pid/statm above.

              RssAnon
                     Size of resident anonymous  memory.   (since  Linux  4.5).   This  value  is
                     inaccurate; see /proc/pid/statm above.

              RssFile
                     Size  of  resident  file  mappings.   (since  Linux  4.5).   This  value  is
                     inaccurate; see /proc/pid/statm above.

              RssShmem
                     Размер общей резидентной памяти (включая общую память System V,  отображения
                     из tmpfs(5) и общие анонимные отображения) (начиная с Linux 4.5).

              VmData, VmStk, VmExe
                     Size  of  data,  stack,  and  text  segments.  This value is inaccurate; see
                     /proc/pid/statm above.

              VmLib  Размер кода общей библиотеки.

              VmPTE  Размер элементов страничной таблицы (начиная с Linux 2.6.10).

              VmPMD  Размер страничных таблиц второго уровня (добавлено в Linux  4.0;  удалено  в
                     Linux 4.15).

              VmSwap Swapped-out virtual memory size by anonymous private pages; shmem swap usage
                     is not included  (since  Linux  2.6.34).   This  value  is  inaccurate;  see
                     /proc/pid/statm above.

              HugetlbPages
                     Размер частей памяти hugetlb (начиная с Linux 4.4).

              CoreDumping
                     Содержит  значение  1,  если процесс выполняет создание дампа, и 0, если нет
                     (начиная с Linux 4.15). Это можно использовать для  слежения  за  процессом,
                     чтобы  случайно не завершить процесс, который выполняет дамп, что приведёт к
                     повреждению файла дампа.

              Threads
                     Количество нитей в процессе, содержащем эту нить.

              SigQ   В  этом  поле  содержится  два  числа,  разделённых  косой  чертой,  которые
                     относятся к сигналам, имеющимся в очереди для реального пользовательского ID
                     этого процесса.  Первое  число  показывает  текущее  количество  сигналов  в
                     очереди  для реального пользовательского ID, а второе — ограничитель ресурса
                     на количество сигналов в  очереди  для  этого  процесса  (смотрите  описание
                     RLIMIT_SIGPENDING в getrlimit(2)).

              SigPnd, ShdPnd
                     Маска  (шестнадцатеричное  число)  сигналов,  ждущих  обработки нитью и всем
                     процессом (смотрите pthreads(7) и signal(7)).

              SigBlk, SigIgn, SigCgt
                     Маски (шестнадцатеричное число), отражающие  блокированные,  игнорируемые  и
                     перехваченные сигналы (смотрите signal(7)).

              CapInh, CapPrm, CapEff
                     Маски   (шестнадцатеричное   число)   мандатов,  включённые  в  наследуемый,
                     разрешающий и эффективный наборы (смотрите capabilities(7)).

              CapBnd Ограничивающий набор мандатов, выраженный шестнадцатеричным числом  (начиная
                     с Linux 2.6.26, смотрите capabilities(7)).

              CapAmb Набор  наружных  мандатов,  выраженный  шестнадцатеричным  числом (начиная с
                     Linux 4.3, смотрите capabilities(7)).

              NoNewPrivs
                     Значение бита no_new_privs (начиная с Linux 4.10, смотрите prctl(2)).

              Seccomp
                     Процесс в  режиме  seccomp  (начиная  с  Linux  3.8,  смотрите  seccomp(2)).
                     Значение  0  означает  SECCOMP_MODE_DISABLED;  1  — SECCOMP_MODE_STRICT; 2 —
                     SECCOMP_MODE_FILTER.  Это  поле  существует  только,  если  ядро  собрано  с
                     включённым параметром сборки ядра CONFIG_SECCOMP.

              Speculation_Store_Bypass
                     Состояние  ослабления  нежелательной  спекулятовности (начиная с Linux 4.17,
                     смотрите prctl(2)).

              Cpus_allowed
                     Шестнадцатеричная маска процессоров, на которых  может  выполняться  процесс
                     (начиная с Linux 2.6.24, смотрите cpuset(7)).

              Cpus_allowed_list
                     Тоже  что  предыдущий,  но  в  "формате списка" (начиная с Linux 2.6.26, см.
                     cpuset(7)).

              Mems_allowed
                     Маска узлов памяти, разрешённых для этого процесса (начиная с Linux  2.6.24,
                     см. cpuset(7)).

              Mems_allowed_list
                     Тоже  что  предыдущий,  но  в  "формате списка" (начиная с Linux 2.6.26, см.
                     cpuset(7)).

              voluntary_ctxt_switches, nonvoluntary_ctxt_switches
                     Количество намеренных и непреднамеренных переключений контекста  (начиная  с
                     Linux 2.6.23).

       /proc/pid/syscall (начиная с Linux 2.6.27)
              Данный  файл  отражает  аргументные  регистры  и  номер  системного вызова, который
              выполняется  процессом;  далее  указаны  значения  регистров  указателя   стека   и
              программного   счётчика.  Хотя  большинство  системных  вызовов  использует  только
              несколько регистров, видны значения всех шести аргументных регистров.

              Если процесс заблокирован не системным вызовом, то в файле содержится -1  на  месте
              номера   системного  вызова,  затем  указаны  только  значения  указателя  стека  и
              программного счётчика. Если  процесс  не  заблокирован,  то  файл  содержит  строку
              «running».

              Данный    файл    доступен    только,    если    ядро    собрано    с    параметром
              CONFIG_HAVE_ARCH_TRACEHOOK.

              Право  доступа  к  этому  файлу  определяется  проверкой  режима   доступа   ptrace
              PTRACE_MODE_ATTACH_FSCREDS; смотрите ptrace(2).

       /proc/pid/task (начиная с Linux 2.6.0)
              В   этом  каталоге  содержатся  подкаталоги,  под  одному  на  нить  процесса.  Имя
              подкаталога задаётся числом, которое является ID (tid) нити (смотрите gettid(2)).

              Within each of these subdirectories, there is a set of files with  the  same  names
              and contents as under the /proc/pid directories.  For attributes that are shared by
              all threads, the contents for each of the files under the  task/tid  subdirectories
              will  be  the  same  as in the corresponding file in the parent /proc/pid directory
              (e.g., in a multithreaded process, all of the task/tid/cwd files will have the same
              value  as  the /proc/pid/cwd file in the parent directory, since all of the threads
              in a process share a working directory).  For attributes that are distinct for each
              thread,  the  corresponding  files  under task/tid may have different values (e.g.,
              various fields in each of the task/tid/status  files  may  be  different  for  each
              thread), or they might not exist in /proc/pid at all.

              В  многонитевых  процессах,  содержимое  каталога  /proc/pid/task  недоступно, если
              главная нить уже завершила работу (обычно при помощи вызова pthread_exit(3)).

       /proc/pid/task/tid/children (начиная с Linux 3.5)
              Разделённый пробелами список задач-потомков данной  задачи.  Каждая  задача-потомок
              представлена своим TID.

              Этот параметр предназначен для использования системой восстановления из контрольных
              точек (CRIU) и предоставляет достоверный  список  потомков,  только  если  дочерние
              процессы остановлены или заморожены. Он не работает правильно, если потомки целевой
              задачи завершаются во время чтения файла! Завершающиеся потомки  могут  привести  к
              пропаже  из списка не завершившихся потомков. Это делает данный интерфейс ещё более
              ненадёжным чем классический на основе PID, если просматриваемая задача и её потомки
              не  заморожены,  и  вероятно,  в  большинстве программ лучше не использовать данный
              интерфейс.

              До  Linux  4.2  наличие  этого  файла   управлялось   параметром   настройки   ядра
              CONFIG_CHECKPOINT_RESTORE.   Начиная   с   Linux  4.2,  он  управляется  параметром
              CONFIG_PROC_CHILDREN.

       /proc/pid/timers (начиная с Linux 3.10)
              Список таймеров POSIX этого процесса. Каждый таймер описывается в  строке,  которая
              начинается со строки «ID:». Пример:

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

              Строки каждого таймера имеют следующее значение:

              ID     Идентификатор  таймера.  Это  не тоже самое, что возвращает timer_create(2);
                     это внутренний идентификатор в ядре,  который  доступен  в  поле  si_timerid
                     структуры siginfo_t (смотрите sigaction(2)).

              signal Номер  сигнала,  который  данный таймер использует для доставки уведомлений,
                     затем косая черта, а затем показано  значение  sigev_value,  передаваемое  в
                     обработчик   сигнала.   Актуален  только  для  таймеров,  которые  выполняют
                     уведомления посредством сигнала.

              notify Часть  перед  косой  чертой  определяет  механизм,  который  данный   таймер
                     использует  для  доставки  уведомлений,  и  может  быть  одним  из «thread»,
                     «signal» или «none». Сразу за косой  чертой  может  быть  строка  «tid»  для
                     таймеров  с  уведомлением  SIGEV_THREAD_ID,  или «pid» для таймеров, которые
                     уведомляют другими механизмами. Далее после «.»  указан PID процесса (или ID
                     ядерной  нити  для  нити),  которому  будет  доставлен  сигнал,  если таймер
                     доставляет уведомления через сигнал.

              ClockID
                     В этом поле задаются часы, которые таймер использует для измерения  времени.
                     Для  большинства  часов  это  номер,  который  совпадает с одной из констант
                     пользовательского окружения CLOCK_*,  располагающихся  в  <time.h>.  Таймеры
                     CLOCK_PROCESS_CPUTIME_ID  показываются  со значением -6 в этом поле. Таймеры
                     CLOCK_THREAD_CPUTIME_ID показываются со значением -2 в этом поле.

              Данный   файл   доступен   только,   если   ядро   было   собрано   с    параметром
              CONFIG_CHECKPOINT_RESTORE.

       /proc/pid/timerslack_ns (начиная с Linux 4.6)
              Данный файл отражает значение (в наносекундах) «текущего» допуска таймера процесса.
              Файл доступен на запись, что позволяет изменить значение допуска таймера  процесса.
              Запись  0  сбрасывает  «текущий»  допуск  таймера  в  значение  допуска таймера «по
              умолчанию». Дополнительную информацию  смотрите  в  описании  PR_SET_TIMERSLACK  из
              prctl(2).

              Первоначально,  права  доступа  к этому файлу определялись проверкой режима доступа
              ptrace PTRACE_MODE_ATTACH_FSCREDS (смотрите  ptrace(2)).  Однако  это  впоследствии
              посчитали  слишком  строгим  требованием (и имеющим побочный эффект, выражающимся в
              требовании от процесса иметь мандат CAP_SYS_PTRACE,  который  также  позволяет  ему
              просматривать  и  изменять  всю память процесса). Поэтому, начиная с Linux 4.9, для
              доступа к этому файлу требуется только мандат CAP_SYS_NICE (маломощный).

       /proc/pid/uid_map (начиная с Linux 3.5)
              См. user_namespaces(7).

       /proc/pid/wchan (начиная с Linux 2.6.0)
              Символическое имя, соответствующее расположению, где процесс спит в ядре.

              Право  доступа  к  этому  файлу  определяется  проверкой  режима   доступа   ptrace
              PTRACE_MODE_READ_FSCREDS; смотрите ptrace(2).

       /proc/tid
              Подкаталог  с числовым названием для каждой выполняющейся нити, которая не является
              лидером группы нитей (т. е., нить, чей ID нити не  совпадает  с  ID  её  процесса);
              подкаталог  называется  по  ID нити. В подкаталоге содержатся файлы и подкаталоги с
              информацией  о  нити  с  ID  нити  tid.  Содержимое  этих  каталогов  совпадает   с
              соответствующими каталогами /proc/pid/task/tid.

              Подкаталоги  /proc/tid  невидимы  при обходе /proc с помощью getdents(2) (и поэтому
              невидимы программам, подобным ls(1), отображающим содержимое /proc). Однако пути  к
              этим  каталогам  видимы  (т.  е.,  их  можно  использовать  в  качестве параметров)
              системным вызовам, работающими с этими путями.

       /proc/apm
              Версия системы расширенного управления питанием и информация о батарее,  если  ядро
              собрано с поддержкой CONFIG_APM.

       /proc/buddyinfo
              В  этом  файле  содержится  информация,  которую можно использовать при диагностике
              проблем с фрагментацией памяти. Каждая строка начинается с  идентификатора  узла  и
              имени  зоны,  которые  вместе  определяют  область памяти. Далее следует количество
              доступных блоков (chunks) определённого порядка, в котором разделялись зоны. Размер
              в байтах порядка задаётся формулой:

                  (2^order) * PAGE_SIZE

              Алгоритм двоичных близнецов (binary buddy allocator) внутри ядра разделит один блок
              на несколько меньшего размера (например, пополам) или объединит два  рядом  стоящих
              блока  в  один  большего  размера  (например  удвоенного),  чтобы  выполнить запрос
              выделения и подсчёта фрагментации памяти. Порядок совпадает с номером столбца,  при
              начале отсчёта от нуля.

              Пример для системы x86-64:
         Node 0, zone     DMA     1    1    1    0    2    1    1    0    1    1    3
         Node 0, zone   DMA32    65   47    4   81   52   28   13   10    5    1  404
         Node 0, zone  Normal   216   55  189  101   84   38   37   27    5    3  587

              В  этом примере показан один узел, содержащий три зоны и 11 блоков разного размера.
              Если размер страницы равен 4 КБ, то первая зона с именем DMA (в x86 — первые 16  МБ
              памяти) содержит 1 блок по 4 КБ (порядок 0) и 3 блока по 4 МБ (порядок 10).

              Если  памяти сильно фрагментирована, то счётчики блоков высшего порядка будут равны
              нулю и выделение больших непрерывных областей будет завершаться с ошибкой.

              Дополнительную информацию о зонах смотрите /proc/zoneinfo.

       /proc/bus
              Содержит подкаталоги для установленных шин.

       /proc/bus/pccard
              Подкаталог для устройств PCMCIA, если ядро собрано с поддержкой CONFIG_PCMCIA.

       /proc/bus/pccard/drivers

       /proc/bus/pci
              Содержит различные подкаталоги шин и псевдо-файлы, содержащие  информацию  о  шинах
              PCI,  установленных  устройствах и драйверах устройств. Некоторые из этих файлов не
              являются текстовыми.

       /proc/bus/pci/devices
              Информация о устройствах  PCI.  К  ним  можно  получить  доступ  через  lspci(8)  и
              setpci(8).

       /proc/cgroups (начиная с Linux 2.6.24)
              Смотрите cgroups(7).

       /proc/cmdline
              Аргументы,  переданные  ядру  Linux во время начальной загрузки. Часто это делается
              через менеджер начальной загрузки, такой как lilo(8) или grub(8).

       /proc/config.gz (начиная с Linux 2.6)
              В этом файле представлены параметры настройки, которые  использовались  при  сборке
              выполняющегося  в данный момент ядра. Его формат одинаков с файлом .config, который
              создаётся после настройки ядра (с помощью make  xconfig,  make  config  и  подобных
              команд).  Содержимое  файла  сжато;  для  просмотра  и поиска используйте zcat(1) и
              zgrep(1). Пока не внесены изменения в настройку ядра, содержимое /proc/config.gz  и
              показываемого по команде файла одинаково:

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

              Файл   /proc/config.gz   доступен   только,   если   ядро   собрано   с  поддержкой
              CONFIG_IKCONFIG_PROC.

       /proc/crypto
              A list of the ciphers provided by the kernel crypto  API.   For  details,  see  the
              kernel  Linux  Kernel  Crypto  API  documentation available under the kernel source
              directory Documentation/crypto/ (or Documentation/DocBook before  Linux  4.10;  the
              documentation  can  be  built  using  a  command  such as make htmldocs in the root
              directory of the kernel source tree).

       /proc/cpuinfo
              Это коллекция элементов, зависящих  от  процессора  и  системной  архитектуры;  для
              каждой поддерживаемой архитектуры список различен. Имеются только две общих записи:
              processor — обозначает номер процессора и bogomips—  системная  константа,  которая
              высчитывается  во  время инициализации ядра. Для многопроцессорных машин информация
              предоставляется по каждому процессору. Команда lscpu(1) берёт информацию  из  этого
              файла.

       /proc/devices
              Текстовый список старших (major) номеров устройств и групп устройств. Он может быть
              использован сценариями MAKEDEV для того, чтобы создать  устройства,  поддерживаемые
              ядром.

       /proc/diskstats (начиная с Linux 2.5.69)
              This  file contains disk I/O statistics for each disk device.  See the Linux kernel
              source  file  Documentation/admin-guide/iostats.rst  (or  Documentation/iostats.txt
              before Linux 5.3)  for further information.

       /proc/dma
              Список рабочих зарегистрированных каналов DMA (прямого доступа в память) ISA.

       /proc/driver
              Пустой подкаталог.

       /proc/execdomains
              Список доменов исполнения (индивидуально для ABI).

       /proc/fb
              Информация о фрейм-буфере, если ядро собрано с поддержкой CONFIG_FB.

       /proc/filesystems
              Текстовый  список  файловых систем, которые поддерживаются ядром, а именно файловые
              системы, вкомпилированные в ядро или загруженные в данный момент модулями (смотрите
              также filesystems(5)). Если файловая система помечена как «nodev», то это означает,
              что для неё не требуется монтировать блочное устройство  (например,  виртуальная  и
              сетевая файловые системы).

              В  частности,  этот файл может использоваться программой mount(8) для поиска нужной
              файловой системы, если  она  не  указана  при  монтировании  и  её  тип  невозможно
              определить.  При этом пробуются все файловые системы из этого файла (за исключением
              помеченных как «nodev»).

       /proc/fs
              Содержит подкаталоги, которые, в свою  очередь,  содержат  файлы  с  информацией  о
              (некоторых) смонтированных файловых системах.

       /proc/ide
              Данный  подкаталог  существует  в  системах  с  шиной IDE. Для каждого канала IDE и
              подключенных устройств имеется отдельный каталог. Файлы каталога:

                  cache              buffer size in KB
                  capacity           number of sectors
                  driver             driver version
                  geometry           physical and logical geometry
                  identify           in hexadecimal
                  media              media type
                  model              manufacturer's model number
                  settings           drive settings
                  smart_thresholds   IDE disk management thresholds (in hex)
                  smart_values       IDE disk management values (in hex)

              Утилита hdparm(8) предоставляет доступ к этой информации в дружественном формате.

       /proc/interrupts
              Используется для записи количества прерываний по каждому процессору  и  по  каждому
              устройству  ввода-вывода.  Начиная с Linux 2.6.24 для архитектур i386- и x86-64 (по
              крайней мере), также включены внутренние прерывания системы (то есть, не  связанные
              с  устройством  как  таковым),  такими  как  NMI  (немаскируемые  прерывания),  LOC
              (прерывание локального таймера) и для  многопроцессорных  систем:  TLB  (прерывание
              сброса  TLB),  RES  (прерывание перепланирования), CAL (прерывание вызова удалённой
              функции), и, возможно другие. Очень легко понять, так как записи в ASCII.

       /proc/iomem
              Карта памяти ввода/вывода в Linux 2.4.

       /proc/ioports
              Список зарегистрированных областей  портов  ввода-вывода,  которые  используются  в
              данный момент.

       /proc/kallsyms (начиная с Linux 2.5.71)
              Содержит  определения  экспортируемых  ядром  символов,  используемые инструментами
              modules(X) для динамической компоновки и связывания загружаемых  модулей.  В  Linux
              2.5.47 и ранее был подобный файл ksyms, но имел немного другой синтаксис.

       /proc/kcore
              Этот  файл  отображает  физическую  память системы и хранится в формате ELF core. С
              помощью  этого  псевдо-файла  и  ядра,  из  которого  не  убраны  таблицы  символов
              (/usr/src/linux/vmlinux),  можно  использовать  GDB для проверки текущего состояния
              любых структур данных ядра.

              Полная длина этого файла — это размер физической памяти (RAM) плюс 4 КиБ.

       /proc/keys (начиная с Linux 2.6.10)
              Смотрите keyrings(7).

       /proc/key-users (начиная с Linux 2.6.10)
              Смотрите keyrings(7).

       /proc/kmsg
              Этот файл может быть использован вместо  системного  вызова  syslog(2)  для  чтения
              сообщений  ядра.  Процесс  должен  иметь привилегии суперпользователя, чтобы читать
              этот файл, причём делать это может только  один  процесс.  Данный  файл  невозможно
              прочесть, если запущен процесс syslog, который использует системный вызов syslog(2)
              для протоколирования сообщений ядра.

              Информация из этого файла извлекается с помощью программы dmesg(1).

       /proc/kpagecgroup (начиная с Linux 4.3)
              В этом файле содержится 64-битный номер иноды, относящийся к каждой странице памяти
              cgroup,   проиндексированные   по   номеру  страничного  кадра  (смотрите  описание
              /proc/pid/pagemap).

              Файл /proc/kpagecgroup существует только,  если  включён  параметр  настройки  ядра
              CONFIG_MEMCG.

       /proc/kpagecount (начиная с Linux 2.6.25)
              В   этом  файле  содержится  64-битный  счётчик,  который  показывает  сколько  раз
              отображался каждый физический страничный кадр  (physical  page  frame).  Индексация
              счётчиков    выполнена    по    номеру   страничного   кадра   (смотрите   описание
              /proc/pid/pagemap).

              Файл /proc/kpagecount существует  только,  если  включён  параметр  настройки  ядра
              CONFIG_PROC_PAGE_MONITOR.

       /proc/kpageflags (начиная с Linux 2.6.25)
              В  этом  файле  содержится  64-битная  маска  каждого физического страничного кадра
              (physical page frame); Индексация  масок  выполнена  по  номеру  страничного  кадра
              (смотрите описание /proc/pid/pagemap). Биты маски:

                      0   -   KPF_LOCKED
                      1   -   KPF_ERROR
                      2   -   KPF_REFERENCED
                      3   -   KPF_UPTODATE
                      4   -   KPF_DIRTY
                      5   -   KPF_LRU
                      6   -   KPF_ACTIVE
                      7   -   KPF_SLAB
                      8   -   KPF_WRITEBACK
                      9   -   KPF_RECLAIM
                     10   -   KPF_BUDDY
                     11   -   KPF_MMAP            (начиная с Linux 2.6.31)
                     12   -   KPF_ANON            (начиная с Linux 2.6.31)
                     13   -   KPF_SWAPCACHE       (начиная с Linux 2.6.31)
                     14   -   KPF_SWAPBACKED      (начиная с Linux 2.6.31)
                     15   -   KPF_COMPOUND_HEAD   (начиная с Linux 2.6.31)
                     16   -   KPF_COMPOUND_TAIL   (начиная с Linux 2.6.31)
                     17   -   KPF_HUGE            (начиная с Linux 2.6.31)
                     18   -   KPF_UNEVICTABLE     (начиная с Linux 2.6.31)
                     19   -   KPF_HWPOISON        (начиная с Linux 2.6.31)
                     20   -   KPF_NOPAGE          (начиная с Linux 2.6.31)
                     21   -   KPF_KSM             (начиная с Linux 2.6.32)
                     22   -   KPF_THP             (начиная с Linux 3.4)
                     23   -   KPF_BALLOON         (начиная с Linux 3.18)
                     24   -   KPF_ZERO_PAGE       (начиная с Linux 4.0)
                     25   -   KPF_IDLE            (начиная с Linux 4.3)

              For  further  details  on  the  meanings  of these bits, see the kernel source file
              Documentation/admin-guide/mm/pagemap.rst.   Before  Linux  2.6.29,   KPF_WRITEBACK,
              KPF_RECLAIM, KPF_BUDDY, and KPF_LOCKED did not report correctly.

              Файл  /proc/kpageflags  существует  только,  если  включён  параметр настройки ядра
              CONFIG_PROC_PAGE_MONITOR.

       /proc/ksyms (Linux 1.1.23–2.5.47)
              Смотрите /proc/kallsyms.

       /proc/loadavg
              Первые  три  поля  в  этом  файле  содержат  параметры  средней  загрузки,  которые
              предоставляют  собой  количество  заданий  в  очереди  выполнения (состояние R) или
              ожидают дискового ввода-вывода (состояние D) в среднем за 1, 5 и 15 минут.  Это  то
              же  самое,  что  и  средняя  загрузка, которую выдаёт uptime(1) и другие программы.
              Четвёртое поле состоит из двух чисел, разделённых косой чертой (/). Первое  из  них
              показывает  количество  исполняемых  планируемых  ядерных элементов в данный момент
              (процессы, нити). Значение после  косой  черты  показывает  количество  планируемых
              ядерных  элементов,  существующих  в системе. В пятом поле содержится PID процесса,
              который был создан системой последним.

       /proc/locks
              Этот файл показывает текущие файловые блокировки (flock(2)  и  fcntl(2))  параметры
              (fcntl(2)).

              Пример содержимого этого файла:

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

              Поля каждой строки имеют следующее назначение:

              [1]  Порядковая позиция блокировки в списке.

              [2]  Тип блокировки. Возможные значения:

                   FLOCK  Файловая блокировка BSD, созданная flock(2).

                   OFDLCK Блокировка открытого файлового описания (OFD), созданная fcntl(2).

                   POSIX  Блокировка байтового диапазона POSIX, созданная fcntl(2).

              [3]  Здесь могут появляться следующие строки:

                   ADVISORY
                          Консультативная блокировка.

                   MANDATORY
                          Обязательная блокировка.

              [4]  Тип блокировки. Возможные значения:

                   READ   Блокировка POSIX или OFD на чтение или общая блокировка BSD.

                   WRITE  Блокировка POSIX или OFD на запись или исключительная блокировка BSD.

              [5]  PID процесса, которому принадлежит блокировка.

                   Because  OFD locks are not owned by a single process (since multiple processes
                   may have file descriptors that refer to the same open file  description),  the
                   value  -1 is displayed in this field for OFD locks.  (Before Linux 4.14, a bug
                   meant that the PID of  the  process  that  initially  acquired  the  lock  was
                   displayed instead of the value -1.)

              [6]  Три   разделённых   двоеточием  значения:  старший  и  младший  идентификаторы
                   устройства, содержащего файловую систему, в которой расположен заблокированный
                   файл, и номер иноды заблокированного файла.

              [7]  Байтовое  смещение  первого  байта блокировки. Для блокировок BSD это значение
                   всегда равно 0.

              [8]  Байтовое смещение последнего  байта  блокировки.  Значение  EOF  в  этом  поле
                   означает,  что  блокировка распространяется до конца файла. Для блокировок BSD
                   это значение всегда равно EOF.

              Начиная с Linux 4.9, список блокировок, показываемых  в  /proc/locks,  фильтруется:
              показываются   только  блокировки  процессов  в  пространстве  имён  PID  (смотрите
              pid_namespaces(7)),  для  которых  была  смонтирована  файловая  система  /proc  (в
              начальном пространстве имён PID записи этого файла не фильтруются).

              Команда lslocks(8) выводит больше информации о каждой блокировке.

       /proc/malloc (только до Linux 2.2 включительно)
              Данный файл существует только, если ядро собрано с поддержкой CONFIG_DEBUG_MALLOC.

       /proc/meminfo
              Этот  файл  содержит  статистику  по  использованию памяти системы. Он используется
              программой free(1) для формирования отчёта о свободной и используемой  памяти  (как
              физической,  так  и  подкачки),  а  также общей памяти и памяти под буферы, которую
              использует ядро.  В  каждой  строке  файла  содержится  имя  параметра,  двоеточие,
              значение  параметра  и  необязательная единица измерения (например, «kB»). В списке
              далее описываются параметры и определитель формата, требуемый для  чтения  значения
              поля.  За  исключением  замечаний, представленных ниже, все показанные поля имеются
              начиная с Linux 2.6.0. Некоторые  поля  появляются  только,  если  ядро  собрано  с
              определёнными параметрами; это зависимости также показаны в списке.

              MemTotal %lu
                     Общее  количество  используемой  RAM  (т.е.  физической  RAM минус несколько
                     зарезервированных бит и исполняемый код ядра).

              MemFree %lu
                     Сумма LowFree+HighFree.

              MemAvailable %lu (начиная с Linux 3.14)
                     Предполагаемое количество памяти, доступное для  запуска  новых  приложений,
                     без обращения к подкачке.

              Buffers %lu
                     Относительно  временное  хранилище  сырых дисковых блоков, которое не должно
                     быть очень велико (порядка 20 МБ).

              Cached %lu
                     Кэш в памяти для прочитанных дисковых файлов (страничный кэш).  Не  включает
                     SwapCached.

              SwapCached %lu
                     Память,  которая однажды попала в подкачку, выгрузилась обратно в память, но
                     всё равно остаётся в файле подкачки (если нагрузка  на  память  велика,  эти
                     страницы  не  придётся  снова  выгружать, так как они уже в файле подкачки —
                     предотвращается ввод-вывод).

              Active %lu
                     Память, которая часто использовалась и обычно не высвобождается без  сильной
                     необходимости.

              Inactive %lu
                     Память,  которая  редко использовалась. Кандидат на высвобождение для других
                     нужд.

              Active(anon) %lu (начиная с Linux 2.6.28)
                     [Будет описано.]

              Inactive(anon) %lu (начиная с Linux 2.6.28)
                     [Будет описано.]

              Active(file) %lu (начиная с Linux 2.6.28)
                     [Будет описано.]

              Inactive(file) %lu (начиная с Linux 2.6.28)
                     [Будет описано.]

              Unevictable %lu (начиная с Linux 2.6.28)
                     (From Linux 2.6.28 to Linux 2.6.30,  CONFIG_UNEVICTABLE_LRU  was  required.)
                     [To be documented.]

              Mlocked %lu (начиная с Linux 2.6.28)
                     (From  Linux  2.6.28  to Linux 2.6.30, CONFIG_UNEVICTABLE_LRU was required.)
                     [To be documented.]

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

              HighFree %lu
                     (Начиная с Linux  2.6.19,  требуется  параметр  CONFIG_HIGHMEM.)  Количество
                     свободной highmem.

              LowTotal %lu
                     (Начиная   с   Linux   2.6.19,  требуется  параметр  CONFIG_HIGHMEM.)  Общее
                     количество lowmem. Lowmem —  это  память,  используемая  для  всего,  что  и
                     highmem,  но  также  доступна и для структур ядра. Среди прочего, выделяется
                     для Slab. Когда заканчивается lowmem происходят нехорошие вещи.

              LowFree %lu
                     (Начиная с Linux  2.6.19,  требуется  параметр  CONFIG_HIGHMEM.)  Количество
                     свободной lowmem.

              MmapCopy %lu (начиная с Linux 2.6.29)
                     (Требуется параметр CONFIG_MMU.)  [Будет описано.]

              SwapTotal %lu
                     Общее количество доступного пространства подкачки.

              SwapFree %lu
                     Общее количество неиспользуемого пространства подкачки.

              Dirty %lu
                     Память, которая ждёт записи обратно на диск.

              Writeback %lu
                     Память, которая переписывается обратно на диск.

              AnonPages %lu (начиная с Linux 2.6.18)
                     Не  файловые  фоновые  (backed)  страницы, отображённые в страничные таблицы
                     пользовательского пространства.

              Mapped %lu
                     Отображённые в память файлы (с помощью mmap(2)), например библиотеки.

              Shmem %lu (начиная с Linux 2.6.32)
                     Объём памяти, использованной в файловых системах tmpfs(5).

              KReclaimable %lu (начиная с Linux 4.20)
                     Выделения ядра, которые оно будет пытаться  отозвать  при  нехватки  памяти.
                     Включают  SReclaimable  (смотрите  ниже) и другие непосредственные выделения
                     сокращателя (shrinker).

              Slab %lu
                     Кэш ядерных структур данных (смотрите slabinfo(5)).

              SReclaimable %lu (начиная с Linux 2.6.19)
                     Часть Slab, которая может быть высвобождена, например кэши.

              SUnreclaim %lu (начиная с Linux 2.6.19)
                     Часть Slab, которая не может быть высвобождена при нехватке памяти.

              KernelStack %lu (начиная с Linux 2.6.32)
                     Количество памяти, выделенное под стеки ядра.

              PageTables %lu (начиная с Linux 2.6.18)
                     Количество памяти, выделенное под страничные таблицы на самом нижнем уровне.

              Quicklists %lu (начиная с Linux 2.6.27)
                     (Требуется параметр CONFIG_QUICKLIST.)  [Будет описано.]

              NFS_Unstable %lu (начиная с Linux 2.6.18)
                     Страницы NFS,  полученные  сервером,  но  ещё  не  записанные  в  стабильное
                     хранилище.

              Bounce %lu (начиная с Linux 2.6.18)
                     Память, используемая для блочного устройства «bounce buffers».

              WritebackTmp %lu (начиная с Linux 2.6.26)
                     Память, используемая FUSE для временных буферов обратной записи.

              CommitLimit %lu (начиная с Linux 2.6.10)
                     Общее  количество памяти, доступное в данный момент в системе для выделения,
                     выражается в байтах. Данное ограничение  соблюдается  только,  если  включён
                     жёсткий   учёт   перерасчёта  (strict  overcommit  accounting)  (режим  2  в
                     /proc/sys/vm/overcommit_memory).   Ограничение   вычисляется   по   формуле,
                     описанной в разделе про /proc/sys/vm/overcommit_memory. Подробности смотрите
                     в файле исходного кода ядра Documentation/vm/overcommit-accounting.rst.

              Committed_AS %lu
                     Количество памяти, распределённое в системе в данный момент. Задействованная
                     память (committed memory) — это сумма всей памяти, распределённая среди всех
                     процессов, даже если она ими ещё не «используется». Для процесса, взявшего 1
                     ГБ памяти (например, с помощью malloc(3)), но задействовавшего только 300 МБ
                     этой памяти, будет показано что используются только 300 МБ,  даже  если  ему
                     отдано адресное пространство 1ГБ.

                     Этот  1  ГБ  памяти  «задействован»  VM и может быть использован запросившим
                     приложением в любое время. При включённом режиме жёсткого учёта  перерасхода
                     (режим  2  в  /proc/sys/vm/overcommit_memory), запросы, которые превысили бы
                     CommitLimit (подробности выше), выполнены не будут. Это полезно, если  нужно
                     гарантировать,  что процессы не завершатся из-за нехватки памяти после того,
                     как память им будет успешно выделена.

              VmallocTotal %lu
                     Общий размер области памяти vmalloc.

              VmallocUsed %lu
                     Размер используемой области  vmalloc.  Начиная  с  Linux  4.4  это  поле  не
                     вычисляется и всегда равно 0. Смотрите /proc/vmallocinfo.

              VmallocChunk %lu
                     Самый  большой  свободный  непрерывный блок области vmalloc. Начиная с Linux
                     4.4 это поле не вычисляется и всегда равно 0. Смотрите /proc/vmallocinfo.

              HardwareCorrupted %lu (начиная с Linux 2.6.32)
                     (Требуется параметр CONFIG_MEMORY_FAILURE.)  [Будет описано.]

              LazyFree %lu (начиная с Linux 4.12)
                     Отражает количество памяти, помеченной вызовом madvise(2) MADV_FREE.

              AnonHugePages %lu (начиная с Linux 2.6.38)
                     (Требуется  параметр  CONFIG_TRANSPARENT_HUGEPAGE.)  Не   файловые   фоновые
                     огромные  страницы,  отображённые  в  страничные  таблицы  пользовательского
                     пространства.

              ShmemHugePages %lu (начиная с Linux 4.8)
                     (требуется CONFIG_TRANSPARENT_HUGEPAGE) Память, используемая  для  выделения
                     огромных страниц под общую память (shmem) и tmpfs(5).

              ShmemPmdMapped %lu (начиная с Linux 4.8)
                     (Требуется   CONFIG_TRANSPARENT_HUGEPAGE.)   Общая  память,  отображённая  в
                     пользовательское пространство огромными страницами.

              CmaTotal %lu (начиная с Linux 3.1)
                     (Требуется CONFIG_CMA.) Общее количество страниц CMA (выделитель непрерывной
                     памяти).

              CmaFree %lu (начиная с Linux 3.1)
                     (Требуется   CONFIG_CMA.)   Количество  свободных  страниц  CMA  (выделитель
                     непрерывной памяти).

              HugePages_Total %lu
                     (Требуется параметр CONFIG_HUGETLB_PAGE.) Размер пула огромных страниц.

              HugePages_Free %lu
                     (Требуется  параметр   CONFIG_HUGETLB_PAGE.)   Количество   нераспределённых
                     огромных страниц в пуле.

              HugePages_Rsvd %lu (начиная с Linux 2.6.17)
                     (Требуется  параметр  CONFIG_HUGETLB_PAGE.) Количество огромных страниц, для
                     которых есть обязательство по  распределению  в  пуле,  но  которые  ещё  не
                     распределены.  Эти  зарезервированные  огромные  страницы  гарантируют,  что
                     приложение сможет получить огромную страницу из пула  огромных  страниц  при
                     нехватке памяти.

              HugePages_Surp %lu (начиная с Linux 2.6.24)
                     (Требуется параметр CONFIG_HUGETLB_PAGE.) Количество огромных страниц в пуле
                     выше значения в  /proc/sys/vm/nr_hugepages.  Максимальное  число  избыточных
                     огромных страниц настраивается в /proc/sys/vm/nr_overcommit_hugepages.

              Hugepagesize %lu
                     (Требуется параметр CONFIG_HUGETLB_PAGE.) Размер огромных страниц.

              DirectMap4k %lu (начиная с Linux 2.6.27)
                     Количество байт RAM линейно отображаемых ядром в 4 КБ страницы. (x86.)

              DirectMap4M %lu (начиная с Linux 2.6.27)
                     Количество  байт  RAM  линейно  отображаемых  ядром  в 4 МБ страницы. (x86 с
                     включённым CONFIG_X86_64 или CONFIG_X86_PAE).

              DirectMap2M %lu (начиная с Linux 2.6.27)
                     Количество байт RAM линейно отображаемых ядром  в  2  МБ  страницы.  (x86  с
                     выключенными CONFIG_X86_64 и CONFIG_X86_PAE).

              DirectMap1G %lu (начиная с Linux 2.6.27)
                     (x86 с включёнными CONFIG_X86_64 и CONFIG_X86_DIRECT_GBPAGES)

       /proc/modules
              Текстовый список модулей, которые были загружены системой. Смотрите также lsmod(8).

       /proc/mounts
              Before  Linux 2.4.19, this file was a list of all the filesystems currently mounted
              on the system.  With the introduction of  per-process  mount  namespaces  in  Linux
              2.4.19  (see  mount_namespaces(7)),  this  file became a link to /proc/self/mounts,
              which lists the mounts of the process's own mount namespace.  The  format  of  this
              file is documented in fstab(5).

       /proc/mtrr
              Memory    Type    Range    Registers.    See   the   Linux   kernel   source   file
              Documentation/x86/mtrr.rst (or  Documentation/x86/mtrr.txt  before  Linux  5.2,  or
              Documentation/mtrr.txt before Linux 2.6.28)  for details.

       /proc/net
              Данный  каталог  хранит  различные  файлы  и  подкаталоги,  содержащие информацию о
              сетевой подсистеме. В файлах используются структуры в  ASCII  и  поэтому  их  можно
              читать утилитой cat(1). Однако, стандартная комплект netstat(8) предоставляет более
              понятную информацию из этих файлов.

              С появлением сетевых пространств имён различная информация о  сетевом  стеке  стала
              виртуализированной  (смотрите  network_namespaces(7)).  То  есть,  начиная  с Linux
              2.6.25 файл /proc/net — это  символическая  ссылка  на  каталог  /proc/self/net,  в
              котором  содержатся  те же файлы и каталоги, перечисленные ниже. Однако эти файлы и
              каталоги теперь отражают информацию  для  сетевого  пространства  имён,  в  котором
              числится процесс.

       /proc/net/arp
              Файл  содержит  читабельный  ASCII-дамп  ARP таблицы ядра, которая используется для
              определения адресов. Она покажет как полученные динамически, так  и  заданные  явно
              записи ARP. Формат файла:

                  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

              Здесь  "IP-адрес"  это адрес машины в нотации IPv4, "Тип обор." это тип аппаратного
              обеспечения для этого  адреса  согласно  RFC 826.  Флаги  —  это  внутренние  флаги
              структуры ARP(определённые в /usr/include/linux/if_arp.h), а "Аппарат. адрес" — это
              адрес канального уровня для IP-адреса, если он известен.

       /proc/net/dev
              Псевдо-файл dev содержит информацию о состоянии сетевых устройств. Она представляет
              собой  количество  принятых  и отправленных пакетов, количество ошибок и коллизий и
              другую базовую статистику. Эта информация используется программой  ifconfig(8)  для
              вывода отчёта о состоянии устройства. Формат информации:

              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
              Определено в /usr/src/linux/net/core/dev_mcast.c:

                  индекс имя_интерфейса  dmi_u dmi_g адрес_dmi
                  2      eth0            1     0     01005e000001
                  3      eth1            1     0     01005e000001
                  4      eth2            1     0     01005e000001

       /proc/net/igmp
              Internet  Group  Management  Protocol  (протокол  управления  группами  Интернета).
              Определён в /usr/src/linux/net/core/igmp.c.

       /proc/net/rarp
              Данный файл использует тот же формат, что и файл arp и  содержит  текущую  обратную
              базу  данных  адресов  ARP,  используемую при работе служб обратного поиска адресов
              rarp(8). Если поддержки RARP нет в ядре, то этот файл не существует.

       /proc/net/raw
              Содержит  дамп  таблицы  неструктурированных  (RAW)  сокетов.  Большая  часть  этой
              информации  не  используется  ни  для  чего,  кроме  отладки.  Значение  «s»" — это
              хэшируемый слот ядра для сокета, «local_address» — это пара локальный адрес,  номер
              протокола.  «St»  —  это внутреннее состояние сокета. «tx_queue» и «rx_queue» — это
              исходящая и входящая очереди данных в том, виде в каком они используются  в  памяти
              ядра.  Поля «tr», «tm->when» и «rexmits» не используются в RAW. Поле «uid» содержит
              эффективный UID создателя сокета.

       /proc/net/snmp
              Этот файл содержит  ASCII  данные,  необходимые  SNMP-агенту  для  баз  управляющей
              информации IP, ICMP, TCP и UDP.

       /proc/net/tcp
              Содержит дамп таблицы TCP-сокетов. Большая часть этой информации не используется ни
              для чего, кроме отладки. Значение «sl» —  это  хэшируемый  слот  ядра  для  сокета,
              «local_address»  — это пара локальный адрес и номер порта. «rem_address» — это пара
              удалённого локального адреса и  номера  порта.  «st»  —  это  внутреннее  состояние
              сокета.  «tx_queue»  и  «rx_queue» — это исходящая и входящая очереди данных в том,
              виде в каком они используются в памяти ядра.  Поля  «tr»,  «tm->when»  и  «rexmits»
              содержат  внутреннюю  информацию  ядра  о  состоянии  сокета  и  полезны только для
              отладки. Поле «uid» содержит эффективный UID создателя сокета.

       /proc/net/udp
              Содержит дамп таблицы UDP-сокетов. Большая часть этой информации не используется ни
              для  чего,  кроме  отладки.  Значение  «sl»  — это хэшируемый слот ядра для сокета,
              «local_address» — это пара локальный адрес и номер порта. «rem_address» — это  пара
              удалённого  локального  адреса  и  номера  порта.  «st»  — это внутреннее состояние
              сокета. «tx_queue» и «rx_queue» — это исходящая и входящая очереди  данных  в  том,
              виде  в  каком они используются в памяти ядра. Поля «tr», «tm->when» и «rexmits» не
              используются в UDP. Поле «uid» содержит эффективный UID создателя сокета. Формат:

              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
              Показывает список доменных сокетов UNIX,  присутствующих  в  системе,  а  также  их
              состояния. Формат:

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

              Поля:

              Num:      Номер слота таблицы ядра.

              RefCount: Количество пользователей сокета.

              Protocol: Пока всегда 0.

              Flags:    Внутренние флаги ядра, содержащие состояние сокета.

              Type:     Тип  сокета.  Для  сокетов  SOCK_STREAM  значение равно 0001; для сокетов
                        SOCK_DGRAM — 0002, для сокетов SOCK_SEQPACKET — 0005.

              St:       Внутреннее состояние сокета.

              Inode:    Номер иноды сокета.

              Path:     Путь привязки (если есть) сокета. Сокеты в абстрактном пространстве  имён
                        заключаются в список и показаны в Path начинающимися с символа @.

       /proc/net/netfilter/nfnetlink_queue
              В  этом  файле  содержится  информация  об  очередях  netfilter  в пользовательском
              пространстве (если используется). Каждая  строка  описывает  очередь.  Очередь,  на
              которые которые не было подписок из пространства пользователя, не показываются.

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

              Поля каждой строки:

              (1)  Идентификатор  очереди.  Совпадает  с  указанным  в параметрах --queue-num или
                   --queue-balance  iptables(8)  для  цели  NFQUEUE.   Подробности   смотрите   в
                   iptables-extensions(8).

              (2)  Идентификатор порта netlink, подписанного на очередь.

              (3)  Количество  пакетов,  находящихся  сейчас  в  очереди  и  ожидающих  обработки
                   приложением.

              (4)  Режим копирования очереди. Равен 1 (только метаданные) или 2 (также копировать
                   в пространство пользователя данные полезной нагрузки).

              (5)  Диапазон  копирования; то есть не более скольких байт полезной нагрузки пакета
                   должно быть скопировано в пространство пользователя.

              (6)  Очередь отброшена. Количество пакетов,  которое  было  отброшено  ядром  из-за
                   слишком  большого количества пакетов уже ожидающих в пространстве пользователя
                   для обратной отправки согласно обязательного решения приёма/отброса.

              (7)  Очередь пользователя отброшена. Количество  пакетов,  которое  было  отброшено
                   внутри   подсистемы   netlink.  Обычно  такое  отбрасывание  происходит  когда
                   переполнен соответствующий буфер сокета; то есть пространство пользователя  не
                   способно читать сообщения достаточно быстро.

              (8)  Последовательный  номер.  Каждый  пакет  в  очереди  связывается с (32-битным)
                   постоянно увеличивающимся последовательным номером. Поле отображает ID  самого
                   нового пакета в очереди.

              Последний номер существует только для совместимости и всегда равен 1.

       /proc/partitions
              Содержит  старший  (major)  и  младший  (minor)  номер  каждого  раздела,  а  также
              количество 1024-байтных блоков и имя раздела.

       /proc/pci
              Это список всех устройств PCI, найденных во время инициализации ядра,  а  также  их
              конфигурация.

              Этот  файл  устарел и был заменён на новый интерфейс /proc для PCI (/proc/bus/pci).
              Он стал необязательным в Linux 2.2 (доступен, если установлен параметр сборки  ядра
              CONFIG_PCI_OLD_PROC).  Он стал ещё более необязательным в Linux 2.4. В Linux 2.6 он
              стал не рекомендуемым (но ещё доступным через параметр CONFIG_PCI_LEGACY_PROC),  и,
              наконец, был полностью удалён в Linux 2.6.17.

       /proc/profile (начиная с Linux 2.4)
              Данный  файл  существует  только, если ядро загружено с параметром командной строки
              profile=1. В нём содержится  профилирующая  информация  ядра  в  двоичном  формате,
              которую  использует  readprofile(1).  Запись  (например, пустой строки) в этот файл
              обнуляет счётчики профилирования; на некоторых архитектурах запись двоичного целого
              «профилирующего   умножителя»   размером   с   sizeof(int)   устанавливает  частоту
              профилирующего прерывания.

       /proc/scsi
              Каталог с псевдо-файлом scsi и различными каталогами низкоуровневых драйверов SCSI,
              которые  содержат  по  одному  файлу  на  каждый  SCSI-узел  в  системе,  и которые
              представляют некоторую информацию о  части  подсистемы  ввода/вывода  SCSI.  Данные
              файлы содержат ASCII структуры и прекрасно читаются утилитой cat(1).

              Также  вы можете писать в некоторые из этих файлов для перенастройки подсистемы или
              включения/выключения некоторых возможностей.

       /proc/scsi/scsi
              Это список всех SCSI-устройств, которые известны ядру. Список  похож  на  тот,  что
              выдается  при  начальной  загрузке.  scsi  в  настоящий  момент поддерживает только
              команду add-single-device, которая позволяет суперпользователю добавлять устройства
              на ходу, без выключения машины.

              Команда

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

              заставит адаптер scsi1 просканировать SCSI канал 0, чтобы найти устройство с ID 5 и
              LUN 0. Если по этому адресу уже есть известное устройство или если  заданный  адрес
              неправилен, то будет возвращена ошибка.

       /proc/scsi/имя_драйвера
              Именем_драйвера  в  настоящий  момент  могут  быть:  NCR53c7xx,  aha152x,  aha1542,
              aha1740, aic7xxx, buslogic, eata_dma, eata_pio,  fdomain,  in2000,  pas16,  qlogic,
              scsi_debug,  seagate, t128, u15-24f, ultrastore или wd7000. Эти каталоги показывают
              все драйверы, который зарегистрированы хотя  бы  одним  SCSI  HBA.  Каждый  каталог
              содержит  по  одному  файлу  на  каждый  зарегистрированный  узел. Имя каждого узла
              соответствует номеру, который был получен этим узлом во время инициализации.

              Чтение данных файлов обычно показывает информацию о конфигурации драйвера  и  узла,
              статистику и т. п.

              Записывая  в  эти  файлы,  можно  добиться  различных  результатов от разных узлов.
              Например,  командами  latency  и  nolatency  суперпользователь  может  включить   и
              выключить  команду кода вычисления задержки в драйвере eata_dma. Командами lockup и
              unlock суперпользователь может  управлять  блокировками  шины,  которые  симулирует
              драйвер scsi_debug.

       /proc/self
              Этот  каталог  указывает  на  процесс,  обращающийся  к  файловой  системе /proc, и
              идентичен каталогу /proc, соответствующему номеру этого процесса.

       /proc/slabinfo
              Информация о кэшах ядра. Подробности в slabinfo(5).

       /proc/stat
              Статистика ядра/системы. Различается для разных архитектур. Общие элементы:

              cpu 10132153 290696 3084719 46828483 16683 0 25195 0 175628 0
              cpu0 1393280 32966 572056 13343292 6130 0 17875 0 23933 0
                     Количество времени, измеряемое в единицах USER_HZ (на большинстве архитектур
                     —   1/100-я   секунды;   чтобы   получить  правильное  значение  используйте
                     sysconf(_SC_CLK_TCK)), которые система (строка «cpu»)  или  определённый  ЦП
                     (строка «cpuN») потратила в различных режимах:

                     пользовательский
                            (1) Время, проведённое в пользовательском режиме.

                     nice   (2) Время, проведённое в пользовательском режиме с низким приоритетом
                            (nice).

                     системный
                            (3) Время, проведённое в системном режиме.

                     простой
                            (4) Время, проведённое в ожидании. Это значение совпадает с значением
                            второго поля в псевдо-файле /proc/uptime.

                     iowait (начиная с Linux 2.5.41)
                            (5)  Время  ожидания  завершения  операций ввода-вывода. Это значение
                            ненадёжно по следующим причинам:

                            •  ЦП не будет  ждать  завершения  ввода-вывода;  iowait  это  время,
                               которое  задача ждёт завершения ввода-вывода. Когда ЦП переходит в
                               состояние простоя из-за ожидания задачей ввода-вывода, на этом  ЦП
                               будет запланирована к выполнению другая задача.

                            •  На  многоядерных  ЦП задача, ожидающая завершения ввода-вывода, не
                               выполняется на каком-либо ЦП, поэтому  iowait  каждого  ЦП  трудно
                               подсчитать.

                            •  Значение этого поля при определённых условиях может уменьшаться.

                     irq (начиная с Linux 2.6.0)
                            (6) Время обслуживания прерываний.

                     softirq (начиная с Linux 2.6.0)
                            (7) Время обслуживания softirq.

                     steal (начиная с Linux 2.6.11)
                            (8)  Упущенное  время  —  время,  потраченное  в  других операционных
                            системах при работе в виртуализованном окружении.

                     guest (начиная с Linux 2.6.24)
                            (9) Время, потраченное на работу виртуального процессора для гостевых
                            операционных системах, управляемых ядром Linux.

                     guest_nice (начиная с Linux 2.6.33)
                            (10)  Время,  потраченное  на  работу  гостевого  niced (виртуального
                            процессора для  гостевых  операционных  системах,  управляемых  ядром
                            Linux).

              page 5741 1808
                     Количество страниц, которые система загрузила с диска и выгрузила на диск.

              swap 1 0
                     Количество страниц подкачки, которые загружены и выгружены.

              intr 1462898
                     В этой строке содержится счётчик прерываний, обработанных с момента загрузки
                     системы, по каждому  возможному  системному  прерыванию.  В  первом  столбце
                     содержится   общее   количество   всех   обработанных   прерываний,  включая
                     ненумерованные, специфичные для архитектуры; в  каждом  последующем  столбце
                     содержится   общее  количество  по  конкретному  прерыванию.  Ненумерованные
                     прерывания не показываются, выдаётся только их общее количество.

              disk_io: (2,0):(31,30,5764,1,2) (3,0):…
                     (major,minor):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written)
                     (только в Linux 2.4)

              ctxt 115315
                     Количество переключений контекста, произошедших в системе.

              btime 769041601
                     Время начальной загрузки прошедшее с начала эпохи, 1970-01-01 00:00:00 +0000
                     (UTC), в секундах.

              processes 86031
                     Количество разветвлений (вызовов fork) с момента начальной загрузки.

              procs_running 6
                     Количество процессов в состоянии работы (Linux 2.5.45 и новее).

              procs_blocked 2
                     Количество  заблокированных  процессов,  ожидающих  завершения  ввода-вывода
                     (Linux 2.5.45 и новее).

              softirq 229245889 94 60001584 13619 5175704 2471304 28 51212741 59130143 0 51240672
                     В этой строке показывается количество softirq для всех ЦП. В первой  колонке
                     содержится  общее  количество  всех  softirq,  а  в каждой следующей колонке
                     содержится общее количество определённых softirq (начиная с Linux 2.6.31).

       /proc/swaps
              Используемое пространство подкачки. См. также swapon(8).

       /proc/sys
              This directory (present  since  Linux  1.3.57)  contains  a  number  of  files  and
              subdirectories  corresponding to kernel variables.  These variables can be read and
              in some cases modified using the /proc filesystem, and the (deprecated)   sysctl(2)
              system call.

              String values may be terminated by either '\0' or '\n'.

              Integer and long values may be written either in decimal or in hexadecimal notation
              (e.g., 0x3FFF).  When writing  multiple  integer  or  long  values,  these  may  be
              separated by any of the following whitespace characters: ' ', '\t', or '\n'.  Using
              other separators leads to the error EINVAL.

       /proc/sys/abi (начиная с Linux 2.4.10)
              This directory may contain files with  application  binary  information.   See  the
              Linux       kernel      source      file      Documentation/sysctl/abi.rst      (or
              Documentation/sysctl/abi.txt before Linux 5.3)  for more information.

       /proc/sys/debug
              Данный каталог может быть пуст.

       /proc/sys/dev
              Данный  каталог  содержит  информацию,   специфичную   для   устройств   (например,
              dev/cdrom/info). В некоторых системах он может быть пуст.

       /proc/sys/fs
              Подкаталог,  содержащий файлы и подкаталоги с переменными ядра, касающиеся файловых
              систем.

       /proc/sys/fs/aio-max-nr и /proc/sys/fs/aio-nr (начиная с Linux 2.6.4)
              aio-nr is the running total of the number of events specified by io_setup(2)  calls
              for  all  currently  active  AIO  contexts.   If  aio-nr  reaches  aio-max-nr, then
              io_setup(2)  will fail with the error EAGAIN.  Raising aio-max-nr does  not  result
              in the preallocation or resizing of any kernel data structures.

       /proc/sys/fs/binfmt_misc
              Документацию  по  файлам  в  этом  каталоге можно найти в файле исходного кода ядра
              Linux   Documentation/admin-guide/binfmt-misc.rst   (в    старых    ядрах    —    в
              Documentation/binfmt_misc.txt).

       /proc/sys/fs/dentry-state (начиная с Linux 2.2)
              Файл  содержит  информацию  о  состоянии  кэша каталогов (dcache). В нём есть шесть
              чисел, nr_dentry, nr_unused, age_limit (возраст в секундах),  want_pages  (страниц,
              запрошенных системой) и два пустых значения.

              •  nr_dentry  содержит  количество отведённых dentries (элементов dcache). Это поле
                 не используется в Linux 2.2.

              •  nr_unused содержит количество неиспользуемых dentries.

              •  age_limit —  это возраст в секундах по истечении которого элементы dcache  могут
                 быть отозваны, когда памяти становится мало.

              •  want_pages  не равно нулю, если ядро вызвало shrink_dcache_pages(), а dcache ещё
                 не сокращён (pruned).

       /proc/sys/fs/dir-notify-enable
              Этот файл может быть использован для включения  и  выключения  интерфейса  dnotify,
              описанного  в  fcntl(2),  во  всей  системе.  Значение  0  в  этом  файле отключает
              интерфейс, а значение 1 включает его.

       /proc/sys/fs/dquot-max
              Этот файл показывает максимальное количество кэшируемых элементов дисковых квот.  В
              некоторых  (2.4)  системах  его  нет. Если число свободных кэшируемых дисковых квот
              является  очень  маленьким,  а  у  вас  в  системе  одновременно  работает  большое
              количество пользователей, то вам, возможно, захочется увеличить этот лимит.

       /proc/sys/fs/dquot-nr
              Этот  файл показывает количество выделенных в использование элементов дисковых квот
              и количество свободных элементов дисковых квот.

       /proc/sys/fs/epoll (начиная с Linux 2.6.28)
              В этом каталоге содержится файл max_user_watches, который  можно  использовать  для
              ограничения  количества  памяти  ядра,  потребляемой интерфейсом epoll. Подробности
              смотрите в epoll(7).

       /proc/sys/fs/file-max
              This file defines a  system-wide  limit  on  the  number  of  open  files  for  all
              processes.  System calls that fail when encountering this limit fail with the error
              ENFILE.  (See also setrlimit(2), which  can  be  used  by  a  process  to  set  the
              per-process  limit, RLIMIT_NOFILE, on the number of files it may open.)  If you get
              lots of error messages in the kernel log about running out of  file  handles  (open
              file  descriptions)   (look  for  "VFS:  file-max  limit  <number>  reached"),  try
              increasing this value:

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

              Привилегированный процесс (с CAP_SYS_ADMIN) может изменять ограничение file-max.

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

       /proc/sys/fs/inode-max (только до Linux 2.2)
              This file contains the maximum number of in-memory inodes.  This  value  should  be
              3–4  times  larger  than  the  value  in  file-max, since stdin, stdout and network
              sockets also need an inode to handle them.  When you regularly run out  of  inodes,
              you need to increase this value.

              Начиная  с  Linux  2.4, больше не существует статического ограничения на количество
              индексных дескрипторов и этот файл удалён.

       /proc/sys/fs/inode-nr
              Этот файл содержит первые два значения из inode-state.

       /proc/sys/fs/inode-state
              Этот файл  содержит  сем  чисел:  nr_inodes,  nr_free_inodes,  preshrink  и  четыре
              заглушки (всегда равные нулю).

              В  nr_inodes  содержится  количество  выделенных системой индексных дескрипторов. В
              nr_free_inodes содержится количество свободных индексных дескрипторов.

              Значение preshrink не равно нулю,  если  nr_inodes  >  inode-max  и  системе  нужно
              сократить  список  индексных дескрипторов, а не выделять новые; начиная с Linux 2.4
              это значение не используется (всегда равно нулю).

       /proc/sys/fs/inotify (начиная с Linux 2.6.13)
              Этот   каталог   содержит   файлы    max_queued_events,    max_user_instances,    и
              max_user_watches,  которые  можно  использовать  для  ограничения количества памяти
              ядра, потребляемом интерфейсом inotify. Подробней смотрите в inotify(7).

       /proc/sys/fs/lease-break-time
              В этом файле задаётся период,  в  течении  которого,  ядро  предоставляет  процессу
              возможность  удерживать  файл (fcntl(2)), по окончании которого оно посылает сигнал
              процессу, извещая его о том, что другой процесс ожидает открытия этого файла.  Если
              удерживающий  файл  процесс  не  удалит  или  не  отменит удержание файла в течении
              указанного периода, то ядро принудительно снимет удержание.

       /proc/sys/fs/leases-enable
              Этот файл можно использовать, чтобы разрешить или запретить в  системе  возможность
              удержания файла (fcntl(2)). Если файл содержит 0, удержание запрещено. Если не ноль
              — разрешено.

       /proc/sys/fs/mount-max (начиная с Linux 4.9)
              Значение в этом файле задаёт максимальное количество  монтирований,  которые  могут
              существовать  в  пространстве  имён монтирования. Значения файла по умолчанию равно
              100000.

       /proc/sys/fs/mqueue (начиная с Linux 2.6.6)
              В этом  каталоге  содержатся  файлы  msg_max,  msgsize_max  и  queues_max,  которые
              контролируют  ресурсы, используемые очередями сообщений POSIX. Подробней смотрите в
              mq_overview(7).

       /proc/sys/fs/nr_open (начиная с Linux 2.6.25)
              Этот файл налагает потолок на значение, до которого может быть повышен ограничитель
              ресурса   RLIMIT_NOFILE   (смотрите   getrlimit(2)).  Этот  потолок  применяется  к
              непривилегированным и привилегированным процессам. Значение  по  умолчанию  в  этом
              файле  равно  1048576 (до Linux 2.6.25 потолок для RLIMIT_NOFILE был неизменяемым с
              этим же значением).

       /proc/sys/fs/overflowgid и /proc/sys/fs/overflowuid
              Эти файлы позволяют вам изменить значение фиксированных UID и GID. По умолчанию оно
              равно  65534. Некоторые файловые системы поддерживают только 16-битные UID и GID, в
              то время как в Linux UID и GID являются 32-битными. Когда монтируется одна из таких
              файловых  систем с правами, позволяющими запись, все UID или GID, которые превышают
              65535, транслируются перед записью на диск в значения переполнения.

       /proc/sys/fs/pipe-max-size (начиная с Linux 2.6.35)
              Смотрите pipe(7).

       /proc/sys/fs/pipe-user-pages-hard (начиная с Linux 4.5)
              Смотрите pipe(7).

       /proc/sys/fs/pipe-user-pages-soft (начиная с Linux 4.5)
              Смотрите pipe(7).

       /proc/sys/fs/protected_fifos (начиная с Linux 4.19)
              The value in this file is/can be set to one of the following:

              0   Writing to FIFOs is unrestricted.

              1   Don't  allow  O_CREAT  open(2)   on  FIFOs  that  the  caller  doesn't  own  in
                  world-writable sticky directories, unless the FIFO is owned by the owner of the
                  directory.

              2   As for the value 1, but the restriction also applies to  group-writable  sticky
                  directories.

              The  intent  of  the  above  protections  is  to  avoid  unintentional writes to an
              attacker-controlled FIFO when a program expected to create a regular file.

       /proc/sys/fs/protected_hardlinks (начиная с Linux 3.6)
              Если значение в файле равно 0, то  на  создание  жёстких  ссылок  не  накладываются
              ограничения  (соответствует поведению до Linux 3.6). Если значение в файле равно 1,
              то жёсткая ссылка может быть создана, если соблюдается одно из следующих условий:

              •  Вызывающий процесс имеет мандат CAP_FOWNER в своём пользовательском пространстве
                 имён и UID файла отображён в пространстве имён.

              •  UID  файловой  системы процесса, создающего ссылку, совпадает с владельцем (UID)
                 файла, на который создаётся ссылка (как описано в credentials(7),  UID  файловой
                 системы процесса обычно совпадает с эффективным UID).

              •  Все следующие условия выполняются:

                  •  целевой файл является обычным;

                  •  на целевом файле не установлен бит режима set-user-ID;

                  •  на целевом файле не установлены биты режима set-group-ID и group-executable;
                     и

                  •  вызывающий имеет право на чтение и запись  целевого  файла  (согласно  маске
                     прав на файл или из-за имеющихся мандатов).

              Значение по умолчанию в файле равно 0. Установка значения в 1 закрывает долголетний
              класс проблем с  безопасностью,  вызванных  проверкой  времени  на  основе  жёсткой
              ссылки, состязательностью при использовании времени, наиболее часто встречающейся в
              каталогах  доступным  на  запись  всем,  таким  как  /tmp.  Распространённый  метод
              использования  этой  уязвимости  —  присвоение  прав при переходе по жёсткой ссылке
              (т.е., процесс суперпользователя переходит  по  жёсткой  ссылке,  созданной  другим
              пользователем).  Также,  в  системах  без  выделенных  разделов  это  останавливает
              неправомочных пользователей от «закрепления» уязвимых файлов с битами set-user-ID и
              set-group-ID   при   выполнении   администратором  обновления,  или  компоновки  со
              специальными файлами.

       /proc/sys/fs/protected_regular (начиная с Linux 4.19)
              The value in this file is/can be set to one of the following:

              0   Writing to regular files is unrestricted.

              1   Don't allow O_CREAT open(2)  on regular files that the caller  doesn't  own  in
                  world-writable  sticky  directories,  unless  the  regular file is owned by the
                  owner of the directory.

              2   As for the value 1, but the restriction also applies to  group-writable  sticky
                  directories.

              The  intent  of  the above protections is similar to protected_fifos, but allows an
              application to avoid writes to  an  attacker-controlled  regular  file,  where  the
              application expected to create one.

       /proc/sys/fs/protected_symlinks (начиная с Linux 3.6)
              Если  значение  в  этом  файле равно 0, то на переход по символьным ссылкам никаких
              ограничений не накладывается (т. е., обычное поведение ядра Linux до  версии  3.6).
              Если  значение  в файле равно 1, то переход по символьным ссылкам происходит только
              при следующих условиях:

              •  UID файловой системы процесса, переходящего по ссылке,  совпадает  с  владельцем
                 (UID)  символьной  ссылки  (как  описано  в credentials(7), UID файловой системы
                 процесса обычно совпадает с эффективным UID);

              •  ссылка не является «прилипшим» (sticky) каталогом, доступным на запись всем; или

              •  символьная ссылка и её родительский каталог имеют одного владельца (UID)

              Системный вызов, который не может перейти по символьной ссылке из-за  перечисленных
              выше ограничений, возвращает ошибку EACCES в errno.

              Значение по умолчанию в файле равно 0. Установка значения в 1 закрывает долголетний
              класс проблем с безопасностью, вызванных проверкой времени,  состязательностью  при
              использовании времени при доступе к символьным ссылкам.

       /proc/sys/fs/suid_dumpable (начиная с Linux 2.6.13)
              Значение из этого файла присваивается флагу «возможность создания дампа» процесса в
              случаях, описанных в prctl(2). Фактически, значение в этом файле  определяет  будут
              ли  создаваться файлы дампа памяти для файлов с установленным битом set-user-ID или
              других защищённых/с добавкой (tainted) исполняемых файлов.  Настройка  «возможность
              создания  дампа» также влияет на владение файлами в каталоге процесса /proc/pid как
              описано выше.

              Можно указать три разных целых значения:

              0 (default)
                     Традиционное поведение ( до Linux 2.6.13).  Дамп  памяти  не  создаётся  для
                     процесса,  у которого изменены учётные данные (вызовом seteuid(2), setgid(2)
                     и подобным или при исполнении программы с установленными битами  set-user-ID
                     или set-group-ID) или если для исполняемого файла нет права на чтение.

              1 ("debug")
                     Все  процессы  создают дамп памяти, если это возможно (причины невозможности
                     создания дампа описаны в core(5)). Дамп памяти принадлежит  ID  пользователя
                     файловой  системы  выполнявшегося  процесса  и  никаких  мер безопасности не
                     предпринимается. Предназначено только для системной  отладки:  данный  режим
                     небезопасен,    так   как   позволяет   непривилегированным   пользователями
                     просматривать содержимое памяти привилегированных процессов.

              2 ("suidsafe")
                     Дамп памяти будет выполняться для любого исполняемого  файла,  для  которого
                     обычно  это  не происходит (см. «0» ранее) и будет доступен на чтение только
                     суперпользователю. Файл с дампом памяти обычный пользователь может  удалять,
                     но  не  читать.  По  соображениям безопасности дампы памяти в этом режиме не
                     будут перезаписываться новыми или другими файлами. Этот режим  подходит  для
                     администраторов,  когда  администраторы  пытаются разобраться с проблемами в
                     обычном окружении.

                     Также, начиная с Linux 3.6,  значение  /proc/sys/kernel/core_pattern  должно
                     быть  абсолютным  путём или командой с каналом, как это описано в core(5). В
                     ядерный журнал  будет  выдано  предупреждение,  если  значение  core_pattern
                     отступает от этих правил, и дамп создан не будет.

              О  том,  как  влияет  флаг «возможности создания дампа» процесса на проверку режима
              доступа ptrace, смотрите в ptrace(2).

       /proc/sys/fs/super-max
              Этот файл управляет максимальным значением суперблоков и таким образом максимальным
              количеством  файловых  систем,  которое  может  смонтировать  ядро.  Вам необходимо
              увеличивать super-max только в том случае, если нужно смонтировать больше  файловых
              систем, чем это позволяет значение в файле super-max.

       /proc/sys/fs/super-nr
              Этот  файл  содержит  количество  файловых  систем,  которое  смонтировано в данный
              момент.

       /proc/sys/kernel
              В этом каталоге содержатся файлы, контролирующие набор параметров  ядра,  описанных
              далее.

       /proc/sys/kernel/acct
              В  этом  файле  содержатся три числа: highwater, lowwater и frequency. Если включён
              учёт процессов в  стиле  BSD,  то  эти  значения  управляют  его  поведением.  Если
              свободного  места  на файловой системе, куда осуществляется протоколирование учёта,
              становится меньше, чем lowwater процентов, то  учёт  процессов  приостанавливается.
              Если свободного места становится больше, чем highwater процентов, то учёт процессов
              возобновляется. Значение frequency определяет как часто  ядро  проверяет  свободное
              место  (в  секундах).  По  умолчанию  значения соответственно составляют 4, 2 и 30.
              Таким образом, приостановка учёта осуществляется, если свободно менее 2%  места  на
              диске;  возобновление  если места больше или равно 4%; информация о свободном месте
              обновляется каждые 30 секунд.

       /proc/sys/kernel/auto_msgmni (Linux 2.6.27 to Linux 3.18)
              From Linux 2.6.27 to Linux 3.18, this file was used to control recomputing  of  the
              value in /proc/sys/kernel/msgmni upon the addition or removal of memory or upon IPC
              namespace creation/removal.  Echoing "1" into this file  enabled  msgmni  automatic
              recomputing (and triggered a recomputation of msgmni based on the current amount of
              available memory and number of IPC namespaces).   Echoing  "0"  disabled  automatic
              recomputing.   (Automatic  recomputing  was also disabled if a value was explicitly
              assigned to /proc/sys/kernel/msgmni.)  The default value in auto_msgmni was 1.

              Начиная с Linux 3.19 содержимое этого файла не учитывается (так как значение msgmni
              по  умолчанию  близко  к  максимально  возможному),  а чтение из этого файла всегда
              возвращает «0».

       /proc/sys/kernel/cap_last_cap (начиная с Linux 3.2)
              Смотрите capabilities(7).

       /proc/sys/kernel/cap-bound (from Linux 2.2 to Linux 2.6.24)
              Этот файл содержит набор привязанных мандатов ядра (выражаемый как десятичные числа
              со  знаком).  Этот  набор  мандатов,  предоставляемых  процессу во время execve(2),
              которые складываются посредством битового умножения (AND). Начиная с Linux  2.6.25,
              глобального  набора  привязанных мандатов больше нет, теперь свой набор привязанных
              мандатов есть у каждой нити; смотрите capabilities(7).

       /proc/sys/kernel/core_pattern
              Смотрите core(5).

       /proc/sys/kernel/core_pipe_limit
              Смотрите core(5).

       /proc/sys/kernel/core_uses_pid
              Смотрите core(5).

       /proc/sys/kernel/ctrl-alt-del
              Этот файл управляет обработкой нажатия клавиш Ctrl-Alt-Del. Когда значение  в  этом
              файле равно 0, Ctrl-Alt-Del обрабатывается и производит вызов программы init(1) для
              выполнения контролируемого перезапуска системы. Когда значение в  файле  больше  0,
              реакция  Linux  соответствует  Vulcan Nerve Pinch (tm) [коронный приём расы Vulcan,
              см. сериал Star Trek], согласно которому произойдёт немедленная перезагрузка,  даже
              без  синхронизации  буферов  дисков.  Замечание:  когда  какая-либо программа (типа
              dosemu) работает с клавиатурой  в  режиме  «без  обработки»,  нажатие  ctrl-alt-del
              обработается  этой  программой,  до того как оно достигнет уровня tty ядра и, таким
              образом, именно эта программа будет решать, что делать.

       /proc/sys/kernel/dmesg_restrict (начиная с Linux 2.6.37)
              Значение этого файла определяет,  кто  может  видеть  содержимое  syslog  от  ядра.
              Значение   0   снимает   все   ограничения.   Если   значение   равно  1,то  только
              привилегированные пользователи могут читать syslog от  ядра  (подробности  смотрите
              syslog(2)  в).  Начиная  с  Linux 3.4, только пользователи с мандатом CAP_SYS_ADMIN
              могут изменять содержимое этого файла.

       /proc/sys/kernel/domainname и /proc/sys/kernel/hostname
              могут быть использованы для установки имени домена службы NIS/YP и имени узла вашей
              машины точно таким же образом как и командами domainname(1) и hostname(1), т.е.:

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

              выполнят тоже самое, что и команды

                  # hostname 'darkstar'
                  # domainname 'mydomain'

              Однако  заметим,  что  классический  darkstar.frop.org  имеет имя узла "darkstar" и
              доменное имя DNS (Сервера Доменных Имен) "frop.org", не путайте с  доменным  именем
              NIS  (Службы  Сетевой  Информации) или как она раньше называлась YP (Yellow Pages).
              Эти два доменных имени полностью различны по своей сути. Подробности об  это  можно
              найти в справочной странице hostname(1).

       /proc/sys/kernel/hotplug
              Этот  файл  содержит  путь  для  агента  политики  устройств. По умолчанию это файл
              /sbin/hotplug.

       /proc/sys/kernel/htab-reclaim (до Linux 2.4.9.2)
              (только для PowerPC) Если значение в этом файле установлено в  ненулевое  значение,
              то  PowerPC htab (см. файл Documentation/powerpc/ppc_htab.txt в исходном коде ядра)
              сокращается каждый раз, когда система входит в цикл простоя.

       /proc/sys/kernel/keys/*
              В этом каталоге содержатся различные файлы, определяющие  параметры  и  ограничения
              инфраструктуры управления ключами. Эти файлы описаны в keyrings(7).

       /proc/sys/kernel/kptr_restrict (начиная с Linux 2.6.38)
              Значением  этого файла определяется будут ли видны ядра ядра, показываемые в файлах
              /proc и других интерфейсах. Значение 0 снимает все ограничения. Если значение равно
              1,  то  указатели  ядра,  выводимые  по  формату  %pK, будут заменены на нули, если
              пользователь не имеет мандата CAP_SYSLOG. Если значение равно 2, то указатели ядра,
              выводимые  по формату %pK, будут заменены на нули, независимо от наличия мандатов у
              пользователя. В начале значение по умолчанию было равно 1, но  изменилось  на  0  в
              Linux  2.6.39.  Начиная  с  Linux 3.4, только пользователи с мандатом CAP_SYS_ADMIN
              могут изменять значение в этом файле.

       /proc/sys/kernel/l2cr
              (только для PowerPC) Этот  файл  содержит  флаг,  который  управляет  кэшем  L2  на
              процессорных платах G3. Если 0, кэш выключен. Если не ноль, то включён.

       /proc/sys/kernel/modprobe
              This file contains the pathname for the kernel module loader.  The default value is
              /sbin/modprobe.  The file  is  present  only  if  the  kernel  is  built  with  the
              CONFIG_MODULES  (CONFIG_KMOD  in  Linux  2.6.26 and earlier) option enabled.  It is
              described by the Linux kernel source file Documentation/kmod.txt (present  only  in
              Linux 2.4 and earlier).

       /proc/sys/kernel/modules_disabled (начиная с Linux 2.6.31)
              Значение-переключатель,  показывающий,  можно ли загружать модули в модульное ядро.
              Значение по умолчанию равно 0 (можно загружать), но  может  быть  установлено  в  1
              (нельзя  загружать).  При  значении  1  модули  нельзя не загружать не выгружать, и
              значение-переключатель тоже нельзя изменить. Данный файл  появляется  только,  если
              ядро собрано с включённым параметром CONFIG_MODULES.

       /proc/sys/kernel/msgmax (начиная с Linux 2.2)
              Этот  файл определяет системный лимит на максимальное число байт в одном сообщении,
              которое пишется в очередь сообщений System V.

       /proc/sys/kernel/msgmni (начиная с Linux 2.4)
              Этот файл определяет системное ограничение на количество идентификаторов в  очереди
              сообщений. Смотрите также /proc/sys/kernel/auto_msgmni.

       /proc/sys/kernel/msgmnb (начиная с Linux 2.2)
              Этот  файл  определяет  системный  параметр,  используемый  при начальной настройке
              msg_qbytes для последовательно создаваемых очередей сообщений. Настройка msg_qbytes
              задаёт максимальное число байт, которые могут быть записаны в очередь сообщений.

       /proc/sys/kernel/ngroups_max (начиная с Linux 2.6.4)
              Этот  файл только для чтения, отображает верхний предел на количество членов группы
              процесса.

       /proc/sys/kernel/ns_last_pid (начиная с Linux 3.3)
              Смотрите pid_namespaces(7).

       /proc/sys/kernel/ostype и /proc/sys/kernel/osrelease
              Эти файлы содержат подстроки из /proc/version.

       /proc/sys/kernel/overflowgid и /proc/sys/kernel/overflowuid
              Эти файлы дублируют файлы /proc/sys/fs/overflowgid и /proc/sys/fs/overflowuid.

       /proc/sys/kernel/panic
              Этот файл предоставляет доступ на чтение и запись к переменной ядра  panic_timeout.
              Если  значение  в  файле  равно нулю, ядро будет зацикливаться при крахе системы по
              panic; если не ноль, то это означает,  что  ядро  должно  выполнить  автоматическую
              перезагрузку  после  этого  количества  секунд.  Когда  вы  используете программный
              драйвер  устройства  watchdog  (устройство,  периодически  делающее  проверку,  что
              система функционирует), то рекомендуется установить значение 60.

       /proc/sys/kernel/panic_on_oops (начиная с Linux 2.5.68)
              Этот  файл  управляет  поведением  ядра,  когда  случается  oops или BUG. Если файл
              содержит 0, то система пытается продолжить работу.  Если  содержит  1,  то  система
              выполняет задержку на несколько секунд (чтобы дать время klogd записать вывод oops)
              и затем генерирует крах системы через panic. Если файл /proc/sys/kernel/panic также
              содержит ненулевое значение, то машина будет перезагружена.

       /proc/sys/kernel/pid_max (начиная с Linux 2.5.34)
              This  file  specifies  the value at which PIDs wrap around (i.e., the value in this
              file is one greater than the maximum PID).  PIDs greater than this  value  are  not
              allocated;  thus,  the  value  in this file also acts as a system-wide limit on the
              total number of processes and threads.  The default value  for  this  file,  32768,
              results  in  the  same  range  of PIDs as on earlier kernels.  On 32-bit platforms,
              32768 is the maximum value for pid_max.  On 64-bit systems, pid_max can be  set  to
              any value up to 2^22 (PID_MAX_LIMIT, approximately 4 million).

       /proc/sys/kernel/powersave-nap (только на PowerPC)
              Этот  файл  содержит  флаг.  Если  он установлен Linux-PPC будет использовать режим
              "nap" для энергосбережения, в противном случае будет использоваться режим "doze".

       /proc/sys/kernel/printk
              Смотрите syslog(2).

       /proc/sys/kernel/pty (начиная с Linux 2.6.4)
              В этом каталоге содержится два файла, отражающих количество псевдо-терминалов  UNIX
              98 (см. pts(4)) в системе.

       /proc/sys/kernel/pty/max
              Этот файл определяет максимальное количество псевдо-терминалов.

       /proc/sys/kernel/pty/nr
              Файл доступен только для чтения, показывает количество используемых в данный момент
              псевдо-терминалов.

       /proc/sys/kernel/random
              Этот каталог содержит различные параметры, управляющие работой  файла  /dev/random.
              Дополнительную информацию смотрите в random(4).

       /proc/sys/kernel/random/uuid (начиная с Linux 2.4)
              При  каждом  чтении  из  этого,  доступного  только  для чтения файла, возвращается
              генерируемый случайным образом 128-битный UUID в виде строки в стандартном  формате
              UUID.

       /proc/sys/kernel/randomize_va_space (начиная с Linux 2.6.12)
              Выбирает  политику  случайного  выбора  адресного пространства (ASLR) в системе (на
              архитектурах с поддержкой ASLR). Возможны три значения:

              0      Отключить ASLR. Значение по умолчанию на архитектурах без поддержки ASLR,  и
                     если ядро загружено с параметром norandmaps.

              1      Выполнять выделение адресов mmap(2), стека и страниц VDSO случайным образом.
                     Помимо прочего, это означает, что  общие  библиотеки  будут  загружаться  по
                     случайным  адресам.  Текстовый  сегмент  PIE-скомпонованных  библиотек будет
                     также загружен по случайному адресу. Является значением по  умолчанию,  если
                     ядро собрано с параметром CONFIG_COMPAT_BRK.

              2      (начиная  с  Linux 2.6.25) Также выполнять выделение кучи случайным образом.
                     Является  значением  по  умолчанию,  если  ядро  не  собрано  с   параметром
                     CONFIG_COMPAT_BRK.

       /proc/sys/kernel/real-root-dev
              Этот     файл     описывается     в     файле    исходного    кода    ядра    Linux
              Documentation/admin-guide/initrd.rst (или Documentation/initrd.txt до Linux 4.10).

       /proc/sys/kernel/reboot-cmd (только на Sparc)
              Этот файл, вероятно, является способом задания аргументов для начального загрузчика
              SPARC ROM/Flash. Способ сказать ему, что делать после перезагрузки?

       /proc/sys/kernel/rtsig-max
              (Up  to and including Linux 2.6.7; see setrlimit(2))  This file can be used to tune
              the maximum number of POSIX real-time (queued) signals that can be  outstanding  in
              the system.

       /proc/sys/kernel/rtsig-nr
              (Up  to  and including Linux 2.6.7.)  This file shows the number of POSIX real-time
              signals currently queued.

       /proc/pid/sched_autogroup_enabled (начиная с Linux 2.6.38)
              Смотрите sched(7).

       /proc/sys/kernel/sched_child_runs_first (начиная с Linux 2.6.23)
              Если этот файл содержит нулевое значение, то после fork(2) первым на ЦП планируется
              выполнение  родителя.  Если  файл  содержит  ненулевое  значение,  то  первым на ЦП
              планируется выполнение потомка (естественно,  на  многопроцессорной  системе  может
              быть запланировано немедленное одновременное выполнение и родителя и потомка).

       /proc/sys/kernel/sched_rr_timeslice_ms (начиная с Linux 3.9)
              Смотрите sched_rr_get_interval(2).

       /proc/sys/kernel/sched_rt_period_us (начиная с Linux 2.6.25)
              Смотрите sched(7).

       /proc/sys/kernel/sched_rt_runtime_us (начиная с Linux 2.6.25)
              Смотрите sched(7).

       /proc/sys/kernel/seccomp (начиная с Linux 4.14)
              Этот  каталог  содержит  дополнительную  информацию  и настройки seccomp. Подробней
              смотрите в seccomp(2).

       /proc/sys/kernel/sem (начиная с Linux 2.4)
              Этот файл содержит 4 значения, описывающих ограничения семафоров System V IPC.  Вот
              эти значения по порядку:

              SEMMSL Максимальное количество семафоров в одном списке семафоров.

              SEMMNS Системный лимит на количество семафоров во всех списках семафоров.

              SEMOPM Максимальное  количество  операций,  которое  может  быть  указано  в вызове
                     semop(2).

              SEMMNI Системный лимит на максимальное количество идентификаторов семафоров.

       /proc/sys/kernel/sg-big-buff
              Этот файл показывает размер буфера стандартного SCSI устройства (sg). Вы не  можете
              пока  настраивать  его,  но  его  можно  изменить  при  компиляции  ядра,  исправив
              include/scsi/sg.h, изменив в нём значение SG_BIG_BUFF. Однако, в этом, как правило,
              нет необходимости.

       /proc/sys/kernel/shm_rmid_forced (начиная с Linux 3.1)
              Если значение в файле равно 1, то все общие сегменты памяти System V будут помечены
              на уничтожение сразу после сокращения присоединённых  процессов  до  нуля;  другими
              словами становится невозможно создать сегмент общей памяти, существующий независимо
              от присоединённого процесса.

              Это подобно тому, как если бы выполнили shmctl(2) IPC_RMID  для  всех  существующих
              сегментов,  а  также  выполняли  бы для всех сегментов, создаваемых в будущем (пока
              значение в файле не будет сброшено в 0). Заметим, что при задании в файле  значения
              1 существующие сегменты, не присоединённые к процессу, будут немедленно уничтожены.
              Установка этого значения также будет уничтожать сегменты, которые были созданы,  но
              не  присоединены  —  при завершении процесса, который создал эти сегменты с помощью
              shmget(2).

              Установка значения в 1 позволяет быть уверенным,  что  все  общие  сегменты  памяти
              System  V подсчитаны и следуют заданным ограничениям ресурсов, как минимум, в одном
              процессе (смотрите описание RLIMIT_AS в getrlimit(2)).

              Так как установка в этом файле значения 1 вызывает нестандартное поведение и  может
              привести   к   неработоспособности  приложений,  значение  по  умолчанию  равно  0.
              Указывайте значение 1 только, если хорошо понимаете работу приложений, использующих
              общую память System V.

       /proc/sys/kernel/shmall (начиная с Linux 2.2)
              Этот  файл  содержит  системный  лимит  на общее количество страниц общей памяти по
              стандарту System V.

       /proc/sys/kernel/shmmax (начиная с Linux 2.2)
              Этот файл может быть использован для опроса и установки  ограничения  максимального
              размера  сегмента  общей  памяти  по  стандарту  System V  во  время  выполнения. В
              настоящий момент ядро поддерживает сегменты общей  памяти  до  1  ГБ.  Значение  по
              умолчанию равно SHMMAX.

       /proc/sys/kernel/shmmni (начиная с Linux 2.4)
              Задаёт максимальное системное ограничение на количество создаваемых общих сегментов
              памяти по стандарту System V.

       /proc/sys/kernel/sysctl_writes_strict (начиная с Linux 3.16)
              Значением в этом файле определяется как учитывать файловое смещение при  обновлении
              записей в файле /proc/sys. Есть три возможных значения:

              -1  Старый  вариант  работы,  без  предупреждения  printk.  Каждый  write(2) должен
                  записывать значение целиком, а повторная запись в тот  же  файловый  дескриптор
                  переписывает значение целиком, независимо от смещения в файле.

              0   (по умолчанию) Такая же работа, как при -1, но выдаёт предупреждение printk для
                  процессов, которые выполняют запись, если файловое смещение не равно 0.

              1   Учитывать файловое смещение при  записи  строк  в  файлы  /proc/sys.  Повторная
                  запись  добавляет значение в буфер. Всё записанное, но превышающее длину буфера
                  будет игнорироваться. Запись чисел в /proc/sys  всегда  должна  выполняться  по
                  файловому   смещению   0  и  значение  должно  полностью  помещаться  в  буфер,
                  предоставленный write(2).

       /proc/sys/kernel/sysrq
              Этот файл контролирует  функции,  которые  можно  вызывать  по  клавише  SysRq.  По
              умолчанию  в  нём  содержится  1,  которая  означает, что разрешены любые возможные
              запросы SysRq (в старых ядрах SysRq по умолчанию выключена, и её  требовалось  явно
              включать при работе, но теперь этого больше не требуется.). Возможные значения:

              0    Полностью выключить sysrq

              1    Включить все функции sysrq

              > 1  Битовая маска разрешённых функций sysrq:
                     2  Включить управление уровнем протоколирования консоли
                     4  Включить управление клавиатурой (SAK, unraw)
                     8  Включить отладочные дампы процессов.
                    16  Включить команду sync
                    32  Включить перемонтирование в режим только для чтения
                    64  Включить передачу сигналов процессам (term, kill, oom-kill)
                   128  Включить выполнение перезагрузки/выключения питания
                   256  Разрешить изменять уступчивость всех задач реального времени

              Этот  файл существует только, если включён параметр сборки ядра CONFIG_MAGIC_SYSRQ.
              Дополнительную  информацию  можно  найти  в  исходном  коде  ядра  Linux  в   файле
              Documentation/admin-guide/sysrq.rst (или Documentation/sysrq.txt до Linux 4.10).

       /proc/sys/kernel/version
              Этот файл содержит строку, такую как:

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

              Часть  «#5»  означает,  что это пятая сборка ядра от исходной базы, а далее указана
              дата и время сборки ядра.

       /proc/sys/kernel/threads-max (начиная с Linux 2.3.11)
              Этот файл определяет системный лимит на количество  нитей  (задач),  которое  может
              быть создано в системе.

              Начиная  с  Linux  4.1,  значение, которое можно записать в threads-max ограничено.
              Минимальное  значение  равно  20.  Максимальное  значение  определяется  константой
              FUTEX_TID_MASK  (0x3fffffff).  Если  в  threads-max записывается значение вне этого
              диапазона, то возвращается ошибка EINVAL.

              По записываемому значению проверяется доступные страницы RAM. Если  структуры  нити
              заняли  бы  слишком  много  (более  1/8й)  доступных  страниц  RAM,  то threads-max
              сокращается соответствующим образом.

       /proc/sys/kernel/yama/ptrace_scope (начиная с Linux 3.5)
              Смотрите ptrace(2).

       /proc/sys/kernel/zero-paged (только на PowerPC)
              Этот файл содержит флаг. Когда он установлен (не ноль), Linux-PPC  будет  размещать
              заранее  обнулённые  страницы  в  цикле  простоя,  что  возможно  увеличит скорость
              выполнения get_free_pages.

       /proc/sys/net
              Этот каталог содержит некоторую информацию по функционированию сетевой  подсистемы.
              Описание некоторых файлов в этом каталоге можно найти в tcp(7) и ip(7).

       /proc/sys/net/core/bpf_jit_enable
              Смотрите bpf(2).

       /proc/sys/net/core/somaxconn
              Этот  файл  определяет  наименьшее  значение  параметра  backlog  системного вызова
              listen(2); подробности смотрите в справочной странице listen(2).

       /proc/sys/proc
              Данный каталог может быть пуст.

       /proc/sys/sunrpc
              Данный каталог поддерживает удалённый  вызов  процедур  Sun  для  сетевой  файловой
              системы (NFS). В некоторых системах его нет.

       /proc/sys/user (начиная с Linux 4.9)
              Смотрите в namespaces(7).

       /proc/sys/vm
              Этот  каталог  содержит  файлы  для тонкой настройки управления памятью, буферами и
              кэшем.

       /proc/sys/vm/overcommit_kbytes (начиная с Linux 3.10)
              В данном файле задаётся количество свободной памяти  (в  КиБ)  в  системе,  которое
              должно быть зарезервировано для пользователей с мандатом CAP_SYS_ADMIN.

              Значение  по  умолчанию равно минимум от [3% свободных страниц, 8МиБ], выраженное в
              КиБ. Этого достаточно для  того,  чтобы  суперпользователь  смог  войти  и  удалить
              процесс,  если  нужно,  когда система работает в режиме по умолчанию — «угадывание»
              перерасхода (т. е., 0 в /proc/sys/vm/overcommit_memory).

              Для систем, работающих в режиме «без перерасхода» (overcommit never) (т.  е.,  2  в
              /proc/sys/vm/overcommit_memory)  нужно  увеличить  значение  в  этом файле с учётом
              полного размера виртуальной памяти для программ,  используемых  при  восстановлении
              (например,  login(1)   ssh(1)  и  top(1)).  В противном случае суперпользователь не
              сможет войти для восстановления системы. Например, на x86-64  подходящим  значением
              будет 131072 (резервируется 128 МиБ).

              Изменение этого значения влияет на последующие запросы памяти приложениями.

       /proc/sys/vm/compact_memory (начиная с Linux 2.6.35)
              При  записи  в  этот  файл  1 все зоны уплотняются так, чтобы свободная память была
              непрерывными блоками насколько это возможно. Результат этого действия можно оценить
              по файлу /proc/buddyinfo.

              Доступен только, если ядро собрано с параметром CONFIG_COMPACTION.

       /proc/sys/vm/drop_caches (начиная с Linux 2.6.16)
              Запись  в  этот  файл  заставляет  ядро  сбросить чистые кэши, dentries и индексные
              дескрипторы из памяти,  тем  самым  освобождая  её.  Это  может  быть  полезно  для
              тестирования    управления    памятью    и    выполнения   воспроизводимых   тестов
              производительности файловой системы. Так как запись в  этот  файл  вызывает  потерю
              преимуществ кэширования, это может снизить производительность системы в целом.

              Для освобождения страничного кэша (pagecache) используйте:

                  echo 1 > /proc/sys/vm/drop_caches

              Для освобождения dentries и индексных дескрипторов используйте:

                  echo 2 > /proc/sys/vm/drop_caches

              Для освобождения страничного кэша, dentries и индексных дескрипторов используйте:

                  echo 3 > /proc/sys/vm/drop_caches

              Так  как запись в этот файл — неразрушающая операция и изменившиеся (dirty) объекты
              не свободны, пользователь сначала должен запустить команду sync(1).

       /proc/sys/vm/sysctl_hugetlb_shm_group (начиная с Linux 2.6.7)
              This writable file contains a group ID that is allowed  to  allocate  memory  using
              huge  pages.   If a process has a filesystem group ID or any supplementary group ID
              that matches this group ID, then it can make huge-page allocations without  holding
              the CAP_IPC_LOCK capability; see memfd_create(2), mmap(2), and shmget(2).

       /proc/sys/vm/legacy_va_layout (начиная с Linux 2.6.9)
              Если  не  равно нулю, то новая раскладка 32-битного отображения памяти выключается;
              ядро будет использовать старую (2.4) раскладку для всех процессов.

       /proc/sys/vm/memory_failure_early_kill (начиная с Linux 2.6.32)
              Управляет, как завершать процессы,  когда  неисправленная  ошибка  памяти  (обычно,
              2-битная  ошибка  в  модуле  памяти),  которая  не  может  быть  обработана  ядром,
              обнаружена в фоновом режиме аппаратным обеспечением. В некоторых случаях (например,
              когда  страница  имеет  правильную  копию  на  диске),  ядро  может может прозрачно
              исправить ошибку без влияния на приложения. Но если актуальной копии данных нет, то
              ядро завершит процесс, чтобы остановить распространение повреждения данных.

              В файле содержатся следующие значения:

              1      При  обнаружении  завершать  все  процессы, у которых есть повреждённые и не
                     восстановимые с диска страницы. Заметим, что это поддерживается не для  всех
                     типов  страниц,  например  для  внутренних данных ядра или кэша подкачки, но
                     работает для большинства пользовательских страниц.

              0      Отключить отображение повреждённой страницы у  всех  процессов  и  завершать
                     процессы, только если они пытаются к ней обратиться.

              Такое  завершение  выполняется  с  использованием  сигнала  SIGBUS  с  установления
              значения si_code равным BUS_MCEERR_AO. Процессы могут  обработать  такую  ситуацию,
              если захотят; подробней см. sigaction(2).

              Это свойство активно только на архитектурах/платформах с дополнительными проверки и
              зависит от возможностей аппаратного обеспечения.

              Приложения могут изменить настройку memory_failure_early_kill для  себя  с  помощью
              операции PR_MCE_KILL вызова prctl(2).

              Доступен только, если ядро собрано с параметром CONFIG_MEMORY_FAILURE.

       /proc/sys/vm/memory_failure_recovery (начиная с Linux 2.6.32)
              Включает восстановление отказов памяти (если поддерживается платформой).

              1      Пытаться восстановить.

              0      При отказе памяти всегда доводить до паники.

              Доступен только, если ядро собрано с параметром CONFIG_MEMORY_FAILURE.

       /proc/sys/vm/oom_dump_tasks (начиная с Linux 2.6.25)
              Включает системный дамп задач (исключая ядерные нити), который создаётся когда ядро
              выполняет OOM-killing. Дамп включает следующую информацию по каждой  задаче  (нити,
              процессу): ID нити, реальный ID пользователя, ID группы нитей (ID процесса), размер
              виртуальной памяти, размер резидентной настройки, процессор,  на  котором  работала
              задача,  счётчик oom_adj (описание смотрите в /proc/pid/oom_adj) и имя команды. Эти
              данные полезны для определения того, почему  был  вызван  OOM-killer  и  нахождения
              экземпляра задачи, его вызвавшего.

              Если  в  файле  содержится  нулевое  значение,  то информация не выдаётся. На очень
              больших системах с тысячами задач дамп информации о  состоянии  памяти  может  быть
              неосуществим   по   каждой   задаче.   Системы   не   должны   страдать  от  потери
              производительности из-за  возникновения  ситуаций  с  OOM,  если  такая  информация
              ненужна.

              Если  задано  ненулевое  значение,  то  эта  информация показывается в момент когда
              OOM-killer завершает захватившую память задачу.

              Значение по умолчанию равно 0.

       /proc/sys/vm/oom_kill_allocating_task (начиная с Linux 2.6.24)
              Включает или выключает задачу завершения при OOM (исчерпание свободной памяти).

              Если это значение равно нулю, то OOM-killer будет сканировать весь список  задач  и
              выбирать  задачу  для  завершения  на  основе  набора  эвристических правил. Обычно
              выбирается задача, которая больше всех захватила  памяти,  что  при  её  завершении
              позволит освободить огромное количество памяти.

              Если  это  значение  не  равно  нулю,  то  OOM-killer просто завершит задачу, из-за
              которой  возникла  ситуация  нехватки  памяти.  Это  позволяет  избежать  затратной
              операции сканирования списка задач.

              Если  /proc/sys/vm/panic_on_oom не равно нулю, то оно имеет приоритет над значением
              из /proc/sys/vm/oom_kill_allocating_task.

              Значение по умолчанию равно 0.

       /proc/sys/vm/overcommit_kbytes (начиная с Linux 3.14)
              Данный, доступный на запись  файл  является  альтернативой  управлению  CommitLimit
              через  /proc/sys/vm/overcommit_ratio, когда /proc/sys/vm/overcommit_memory содержит
              значение  2.  Это  позволяет  задать  количество  перерасходуемой  памяти   (memory
              overcommitting) абсолютным значением (в КБ), а не в виде процента, как это делается
              через overcommit_ratio. Это  предоставляет  более  точный  контроль  CommitLimit  в
              системах с очень большим объёмом памяти.

              Может  задействовать  либо  overcommit_kbytes, либо overcommit_ratio: если значение
              overcommit_kbytes не равно нулю, то оно используется для  вычисления,  в  противном
              случае  используется  overcommit_ratio.  Запись  значения  в  один  из  этих файлов
              приводит к обнулению значения в другом файле.

       /proc/sys/vm/overcommit_memory
              Этот файл содержит значение режима учёта виртуальной памяти ядра. Значения:

                     0: эвристический перерасход (значение по умолчанию)
                     1: всегда разрешать перерасход, не проверять
                     2: всегда проверять, запретить перерасход

              В режиме 0 вызов mmap(2) с MAP_NORESERVE не проверяется, и  проверка  по  умолчанию
              очень поверхностная, что может привести к завершению процесса с помощью OOM-killer.

              In mode 1, the kernel pretends there is always enough memory, until memory actually
              runs out.  One use case for this mode is  scientific  computing  applications  that
              employ large sparse arrays.  Before Linux 2.6.0, any nonzero value implies mode 1.

              В режиме 2 (доступен начиная с Linux 2.6), общее виртуальное адресное пространство,
              которое можно выделить (CommitLimit в /proc/meminfo) вычисляется по формуле

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

              где:

              •  total_RAM — общее количество физической памяти в системе;

              •  total_huge_TLB — количество памяти без учёта огромных страниц;

              •  overcommit_ratio — значение в /proc/sys/vm/overcommit_ratio; и

              •  total_swap — размер пространства подкачки.

              Например, в системе с 16 ГБ  физической  памяти,  16  ГБ  подкачки,  без  выделения
              огромных   страниц  и  с  overcommit_ratio  равным  50  по  этой  формуле  значение
              CommitLimit равно 24 ГБ.

              Начиная с Linux 3.14, если значение в /proc/sys/vm/overcommit_kbytes не равно нулю,
              то CommitLimit вычисляется так:

                  CommitLimit = overcommit_kbytes + total_swap

              Также       смотрите       описание       /proc/sys/vm/admin_reserve_kbytes       и
              /proc/sys/vm/user_reserve_kbytes.

       /proc/sys/vm/overcommit_ratio (начиная с Linux 2.6.0)
              Доступный на запись файл содержит процент памяти, который может быть перерасходован
              (overcommitted).    Значение    по    умолчанию   равно   50.   Смотрите   описание
              /proc/sys/vm/overcommit_memory.

       /proc/sys/vm/panic_on_oom (начиная с Linux 2.6.18)
              Включает или отключает панику ядра при нехватке памяти.

              Если значение равно 0, то ядерный  OOM-killer  завершит  какой-нибудь  вышедший  из
              подчинения  процесс.  Обычно, OOM-killer способен завершить такой процесс и система
              продолжит работу.

              Если значение в файле равно 1, то ядро, обычно, переходит в  состояние  паники  при
              нехватке  памяти. Однако, если процесс ограничен в выделении определённых элементов
              (nodes) согласно политике памяти (mbind(2) MPOL_BIND) или процессора (cpuset(7))  и
              предел  таких  элементов памяти был достигнут, то такой процесс может быть завершён
              OOM-killer. В этом случае состояние паники не возникнет, так  как  другие  элементы
              памяти  могут  освободиться,  что  означает,  что система в целом может не прийти к
              ситуации нехватки памяти.

              Если значение в файле равно 2, то ядро всегда переходит в состояние  паники,  когда
              возникает нехватка памяти.

              Значение  по  умолчанию равно 0. Значение 1 и 2 используются для отказоустойчивости
              кластеров. Выберите любое согласно вашей политике отказоустойчивости.

       /proc/sys/vm/swappiness
              Значение в этом файле определяет, насколько активно ядро будет вытеснять страницы в
              пространство  подкачки.  Большие  значения увеличивают активность, меньшие значения
              сокращают активность. По умолчанию значение равно 60.

       /proc/sys/vm/user_reserve_kbytes (начиная с Linux 3.10)
              Задаёт количество памяти (в КиБ), которая резервируется под процессы  пользователя.
              Предназначена  для  предотвращения  запуска  пользовательского процесса, который бы
              один съел всю память  и  это  нельзя  прекратить  (завершить  такой  процесс).  Это
              значение учитывается только, если значение в /proc/sys/vm/overcommit_memory равно 2
              (режим «без перерасхода»). В этом случае  система  резервирует  количество  памяти,
              равное, минимум [3% от размера текущего процесса, user_reserve_kbytes].

              Значение  по  умолчанию равно минимум [3% свободных страниц, 128 МиБ], выражается в
              КиБ.

              Если значение в файле равно нулю, то пользователю разрешено выделять всю память под
              один  процесс  (за  минусом  резерва  из  /proc/sys/vm/admin_reserve_kbytes). Любая
              последующая попытка  выполнить команду будет завершаться «fork: невозможно выделить
              память».

              Изменение этого значения влияет на последующие запросы памяти приложениями.

       /proc/sys/vm/unprivileged_userfaultfd (начиная с Linux 5.2)
              This  (writable)  file  exposes a flag that controls whether unprivileged processes
              are allowed to  employ  userfaultfd(2).   If  this  file  has  the  value  1,  then
              unprivileged  processes may use userfaultfd(2).  If this file has the value 0, then
              only processes that have the CAP_SYS_PTRACE capability may  employ  userfaultfd(2).
              The default value in this file is 1.

       /proc/sysrq-trigger (начиная с Linux 2.4.21)
              Запись символа в этот файл приводит к вызову функции SysRq, как если бы была нажата
              <клавиша> ALT-SysRq (смотрите описание /proc/sys/kernel/sysrq). Обычно,  этот  файл
              доступен  на запись только root. Дополнительную информацию смотрите в исходном коде
              ядра Linux в файле Documentation/admin-guide/sysrq.rst (или Documentation/sysrq.txt
              до Linux 4.10).

       /proc/sysvipc
              Подкаталог  содержит  псевдо-файлы  msg,  sem  и  shm.Эти  файлы  описывают объекты
              межпроцессного  взаимодействия  (System   V   Interprocess   Communication   (IPC))
              (соответственно:  очереди сообщений, семафоры и общую память), которые существуют в
              системе в настоящий момент. Похожая информация предоставляется через  ipcs(1).  Эти
              файлы  имеют  заголовки и форматируются (по одному IPC объекту на строку) для более
              лёгкого понимания. В sysvipc(7) представлена подробное описание информации  в  этих
              файлах.

       /proc/thread-self (начиная с Linux 3.17)
              Этот каталог ссылает на нить, обращающуюся к файловой системе /proc, и он идентичен
              каталогу /proc/self/task/tid, где в имени ID нити процесса (tid) — эта же нить.

       /proc/timer_list (начиная с Linux 2.6.21)
              Этот файл, доступный только для чтения, содержит список  всех  ожидающих  в  данный
              момент таймеров (высокой точности), всех источников событий часов и их параметры.

       /proc/timer_stats (Linux 2.6.21 по Linux 4.10)
              Это  отладочное  средство  делает  таймер,  используемый  в  системе Linux, видимым
              разработчикам ядра и в пользовательском пространстве. Оно может использоваться  для
              проверки  отсутствия  чрезмерной  нагрузки  на  таймеры.  Цель  —  для  оптимизации
              потребления энергии избежать ненужных пробуждений.

              Если  включено  в  ядре  (CONFIG_TIMER_STATS)  и  не  используется,  то  почти   не
              задействует  процессор  и  потребляет  относительно  малое  количество  памяти  под
              структуры данных. Даже включённый  в  время  выполнения  сбор  статистики  не  даёт
              высокой нагрузки: все блокировки относятся к ЦП, а поиск хэшируется.

              Файл  /proc/timer_stats  используется  для  управления  функцией  сборки  и  чтения
              полученных результатов.

              Средство timer_stats при запуске системы неактивно. Период тестирования может  быть
              запущен командой:

                  # echo 1 > /proc/timer_stats

              Следующая команда остановит период тестирования:

                  # echo 0 > /proc/timer_stats

              Статистику можно получить так:

                  $ cat /proc/timer_stats

              На  время  действия  периода  сбора каждым чтением /proc/timer_stats можно получить
              обновлённую статистику. После выключения сбора статистика  останется  доступной  до
              следующего начала периода сбора. Это позволяет читать несколько раз.

              Пример статистики из /proc/timer_stats:

                  $ cat /proc/timer_stats
                  Timer Stats Version: v0.3
                  Sample period: 1.764 s
                  Collection: active
                    255,     0 swapper/3        hrtimer_start_range_ns (tick_sched_timer)
                     71,     0 swapper/1        hrtimer_start_range_ns (tick_sched_timer)
                     58,     0 swapper/0        hrtimer_start_range_ns (tick_sched_timer)
                      4,  1694 gnome-shell      mod_delayed_work_on (delayed_work_timer_fn)
                     17,     7 rcu_sched        rcu_gp_kthread (process_timeout)
                  ...
                      1,  4911 kworker/u16:0    mod_delayed_work_on (delayed_work_timer_fn)
                     1D,  2522 kworker/0:0      queue_delayed_work_on (delayed_work_timer_fn)
                  1029 total events, 583.333 events/sec

              Выводимые столбцы:

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

              [2]  PID процесса, который инициализировал таймер;

              [3]  имя процесса, который инициализировал таймер;

              [4]  the function where the  timer  was  initialized;  and  (in  parentheses)   the
                   callback function that is associated with the timer.

              В  течении  цикла  разработки  Linux  4.11  этот  файл  был  удалён из-за проблем с
              безопасностью, так как выдавал информацию всем  пространствам  имён.  Кроме  этого,
              подобную информацию можно получить через встроенные в ядро возможности трассировки,
              например через ftrace.

       /proc/tty
              Подкаталог, содержащий псевдо-файлы и подкаталоги драйверов tty и параметры линий.

       /proc/uptime
              Этот файл содержит два числа (значения в секундах): время работы системы с  момента
              загрузки  (включая  время, проведённой режиме приостанова) и время, которое система
              провела в состоянии простоя.

       /proc/version
              Строка, идентифицирующая  версию  ядра,  которое  запущено  в  данный  момент.  Она
              включает    содержимое    /proc/sys/kernel/ostype,   /proc/sys/kernel/osrelease   и
              /proc/sys/kernel/version. Пример:

                  Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994

       /proc/vmstat (начиная с Linux 2.6.0)
              Этот файл отражает различную статистику виртуальной  памяти.  Каждая  строка  файла
              содержит  одну  пару  имя-значение  (через  пробел).  Некоторые строки присутствуют
              только, если  ядро  собрано  с  соответствующим  параметром  (в  некоторых  случаях
              требуемые  параметры  в  различные  в  разных  версиях ядер и не перечислены здесь.
              Подробности можно найти в исходном коде ядра). Существуют следующие поля:

              nr_free_pages (начиная с Linux 2.6.31)

              nr_alloc_batch (начиная с Linux 3.12)

              nr_inactive_anon (начиная с Linux 2.6.28)

              nr_active_anon (начиная с Linux 2.6.28)

              nr_inactive_file (начиная с Linux 2.6.28)

              nr_active_file (начиная с Linux 2.6.28)

              nr_unevictable (начиная с Linux 2.6.28)

              nr_mlock (начиная с Linux 2.6.28)

              nr_anon_pages (начиная с Linux 2.6.18)

              nr_mapped (начиная с Linux 2.6.0)

              nr_file_pages (начиная с Linux 2.6.18)

              nr_dirty (начиная с Linux 2.6.0)

              nr_writeback (начиная с Linux 2.6.0)

              nr_slab_reclaimable (начиная с Linux 2.6.19)

              nr_slab_unreclaimable (начиная с Linux 2.6.19)

              nr_page_table_pages (начиная с Linux 2.6.0)

              nr_kernel_stack (начиная с Linux 2.6.32)
                     Количество памяти, выделенное под стеки ядра.

              nr_unstable (начиная с Linux 2.6.0)

              nr_bounce (начиная с Linux 2.6.12)

              nr_vmscan_write (начиная с Linux 2.6.19)

              nr_vmscan_immediate_reclaim (начиная с Linux 3.2)

              nr_writeback_temp (начиная с Linux 2.6.26)

              nr_isolated_anon (начиная с Linux 2.6.32)

              nr_isolated_file (начиная с Linux 2.6.32)

              nr_shmem (начиная с Linux 2.6.32)
                     Страницы, используемые shmem и tmpfs(5).

              nr_dirtied (начиная с Linux 2.6.37)

              nr_written (начиная с Linux 2.6.37)

              nr_pages_scanned (начиная с Linux 3.17)

              numa_hit (начиная с Linux 2.6.18)

              numa_miss (начиная с Linux 2.6.18)

              numa_foreign (начиная с Linux 2.6.18)

              numa_interleave (начиная с Linux 2.6.18)

              numa_local (начиная с Linux 2.6.18)

              numa_other (начиная с Linux 2.6.18)

              workingset_refault (начиная с Linux 3.15)

              workingset_activate (начиная с Linux 3.15)

              workingset_nodereclaim (начиная с Linux 3.15)

              nr_anon_transparent_hugepages (начиная с Linux 2.6.38)

              nr_free_cma (начиная с Linux 3.7)
                     Количество свободных страниц CMA (выделитель непрерывной памяти).

              nr_dirty_threshold (начиная с Linux 2.6.37)

              nr_dirty_background_threshold (начиная с Linux 2.6.37)

              pgpgin (начиная с Linux 2.6.0)

              pgpgout (начиная с Linux 2.6.0)

              pswpin (начиная с Linux 2.6.0)

              pswpout (начиная с Linux 2.6.0)

              pgalloc_dma (начиная с Linux 2.6.5)

              pgalloc_dma32 (начиная с Linux 2.6.16)

              pgalloc_normal (начиная с Linux 2.6.5)

              pgalloc_high (начиная с Linux 2.6.5)

              pgalloc_movable (начиная с Linux 2.6.23)

              pgfree (начиная с Linux 2.6.0)

              pgactivate (начиная с Linux 2.6.0)

              pgdeactivate (начиная с Linux 2.6.0)

              pgfault (начиная с Linux 2.6.0)

              pgmajfault (начиная с Linux 2.6.0)

              pgrefill_dma (начиная с Linux 2.6.5)

              pgrefill_dma32 (начиная с Linux 2.6.16)

              pgrefill_normal (начиная с Linux 2.6.5)

              pgrefill_high (начиная с Linux 2.6.5)

              pgrefill_movable (начиная с Linux 2.6.23)

              pgsteal_kswapd_dma (начиная с Linux 3.4)

              pgsteal_kswapd_dma32 (начиная с Linux 3.4)

              pgsteal_kswapd_normal (начиная с Linux 3.4)

              pgsteal_kswapd_high (начиная с Linux 3.4)

              pgsteal_kswapd_movable (начиная с Linux 3.4)

              pgsteal_direct_dma

              pgsteal_direct_dma32 (начиная с Linux 3.4)

              pgsteal_direct_normal (начиная с Linux 3.4)

              pgsteal_direct_high (начиная с Linux 3.4)

              pgsteal_direct_movable (начиная с Linux 2.6.23)

              pgscan_kswapd_dma

              pgscan_kswapd_dma32 (начиная с Linux 2.6.16)

              pgscan_kswapd_normal (начиная с Linux 2.6.5)

              pgscan_kswapd_high

              pgscan_kswapd_movable (начиная с Linux 2.6.23)

              pgscan_direct_dma

              pgscan_direct_dma32 (начиная с Linux 2.6.16)

              pgscan_direct_normal

              pgscan_direct_high

              pgscan_direct_movable (начиная с Linux 2.6.23)

              pgscan_direct_throttle (начиная с Linux 3.6)

              zone_reclaim_failed (начиная с Linux 2.6.31)

              pginodesteal (начиная с Linux 2.6.0)

              slabs_scanned (начиная с Linux 2.6.5)

              kswapd_inodesteal (начиная с Linux 2.6.0)

              kswapd_low_wmark_hit_quickly (since Linux 2.6.33)

              kswapd_high_wmark_hit_quickly (since Linux 2.6.33)

              pageoutrun (начиная с Linux 2.6.0)

              allocstall (начиная с Linux 2.6.0)

              pgrotated (начиная с Linux 2.6.0)

              drop_pagecache (начиная с Linux 3.15)

              drop_slab (начиная с Linux 3.15)

              numa_pte_updates (начиная с Linux 3.8)

              numa_huge_pte_updates (начиная с Linux 3.13)

              numa_hint_faults (начиная с Linux 3.8)

              numa_hint_faults_local (начиная с Linux 3.8)

              numa_pages_migrated (начиная с Linux 3.8)

              pgmigrate_success (начиная с Linux 3.8)

              pgmigrate_fail (начиная с Linux 3.8)

              compact_migrate_scanned (начиная с Linux 3.8)

              compact_free_scanned (начиная с Linux 3.8)

              compact_isolated (начиная с Linux 3.8)

              compact_stall (начиная с Linux 2.6.35)
                     Смотрите           файл            исходного            кода            ядра
                     Documentation/admin-guide/mm/transhuge.rst.

              compact_fail (начиная с Linux 2.6.35)
                     Смотрите            файл            исходного            кода           ядра
                     Documentation/admin-guide/mm/transhuge.rst.

              compact_success (начиная с Linux 2.6.35)
                     Смотрите           файл            исходного            кода            ядра
                     Documentation/admin-guide/mm/transhuge.rst.

              htlb_buddy_alloc_success (начиная с Linux 2.6.26)

              htlb_buddy_alloc_fail (начиная с Linux 2.6.26)

              unevictable_pgs_culled (начиная с Linux 2.6.28)

              unevictable_pgs_scanned (начиная с Linux 2.6.28)

              unevictable_pgs_rescued (начиная с Linux 2.6.28)

              unevictable_pgs_mlocked (начиная с Linux 2.6.28)

              unevictable_pgs_munlocked (начиная с Linux 2.6.28)

              unevictable_pgs_cleared (начиная с Linux 2.6.28)

              unevictable_pgs_stranded (начиная с Linux 2.6.28)

              thp_fault_alloc (начиная с Linux 2.6.39)
                     Смотрите            файл            исходного            кода           ядра
                     Documentation/admin-guide/mm/transhuge.rst.

              thp_fault_fallback (начиная с Linux 2.6.39)
                     Смотрите           файл            исходного            кода            ядра
                     Documentation/admin-guide/mm/transhuge.rst.

              thp_collapse_alloc (начиная с Linux 2.6.39)
                     Смотрите            файл            исходного            кода           ядра
                     Documentation/admin-guide/mm/transhuge.rst.

              thp_collapse_alloc_failed (начиная с Linux 2.6.39)
                     Смотрите           файл            исходного            кода            ядра
                     Documentation/admin-guide/mm/transhuge.rst.

              thp_split (начиная с Linux 2.6.39)
                     Смотрите            файл            исходного            кода           ядра
                     Documentation/admin-guide/mm/transhuge.rst.

              thp_zero_page_alloc (начиная с Linux 3.8)
                     Смотрите           файл            исходного            кода            ядра
                     Documentation/admin-guide/mm/transhuge.rst.

              thp_zero_page_alloc_failed (начиная с Linux 3.8)
                     Смотрите            файл            исходного            кода           ядра
                     Documentation/admin-guide/mm/transhuge.rst.

              balloon_inflate (начиная с Linux 3.18)

              balloon_deflate (начиная с Linux 3.18)

              balloon_migrate (начиная с Linux 3.18)

              nr_tlb_remote_flush (начиная с Linux 3.12)

              nr_tlb_remote_flush_received (начиная с Linux 3.12)

              nr_tlb_local_flush_all (начиная с Linux 3.12)

              nr_tlb_local_flush_one (начиная с Linux 3.12)

              vmacache_find_calls (начиная с Linux 3.16)

              vmacache_find_hits (начиная с Linux 3.16)

              vmacache_full_flushes (начиная с Linux 3.19)

       /proc/zoneinfo (начиная с Linux 2.6.13)
              Этот файл содержит информацию о зонах памяти.  Он  полезен  при  анализе  поведения
              виртуальной памяти.

ЗАМЕЧАНИЯ

       Many  files  contain  strings  (e.g.,  the  environment and command line)  that are in the
       internal format, with subfields terminated by null bytes  ('\0').   When  inspecting  such
       files,  you  may  find  that  the  results  are  more readable if you use a command of the
       following form to display them:

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

       Данная справочная страница неполна, в ней  могут  быть  неточности  и  является  одной  из
       страниц, которую требуется обновлять очень часто.

СМ. ТАКЖЕ

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

       Файлы     исходного     кода     ядра      Linux:      Documentation/filesystems/proc.rst,
       Documentation/admin-guide/sysctl/fs.rst,      Documentation/admin-guide/sysctl/kernel.rst,
       Documentation/admin-guide/sysctl/net.rst и Documentation/admin-guide/sysctl/vm.rst.

ПЕРЕВОД

       Русский  перевод  этой  страницы  руководства   был   сделан   Alexey,   Azamat   Hackimov
       <azamat.hackimov@gmail.com>,   kogamatranslator49  <r.podarov@yandex.ru>,  Kogan,  Max  Is
       <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.