.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 1994, 1995 by Daniel Quinlan (quinlan@yggdrasil.com) .\" and Copyright (C) 2002-2008,2017 Michael Kerrisk .\" with networking additions from Alan Cox (A.Cox@swansea.ac.uk) .\" and scsi additions from Michael Neuffer (neuffer@mail.uni-mainz.de) .\" and sysctl additions from Andries Brouwer (aeb@cwi.nl) .\" and System V IPC (as well as various other) additions from .\" Michael Kerrisk .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\" Modified 1995-05-17 by faith@cs.unc.edu .\" Minor changes by aeb and Marty Leisner (leisner@sdsp.mc.xerox.com). .\" Modified 1996-04-13, 1996-07-22 by aeb@cwi.nl .\" Modified 2001-12-16 by rwhron@earthlink.net .\" Modified 2002-07-13 by jbelton@shaw.ca .\" Modified 2002-07-22, 2003-05-27, 2004-04-06, 2004-05-25 .\" by Michael Kerrisk .\" 2004-11-17, mtk -- updated notes on /proc/loadavg .\" 2004-12-01, mtk, rtsig-max and rtsig-nr went away in Linux 2.6.8 .\" 2004-12-14, mtk, updated 'statm', and fixed error in order of list .\" 2005-05-12, mtk, updated 'stat' .\" 2005-07-13, mtk, added /proc/sys/fs/mqueue/* .\" 2005-09-16, mtk, Added /proc/sys/fs/suid_dumpable .\" 2005-09-19, mtk, added /proc/zoneinfo .\" 2005-03-01, mtk, moved /proc/sys/fs/mqueue/* material to mq_overview.7. .\" 2008-06-05, mtk, Added /proc/[pid]/oom_score, /proc/[pid]/oom_adj, .\" /proc/[pid]/limits, /proc/[pid]/mountinfo, /proc/[pid]/mountstats, .\" and /proc/[pid]/fdinfo/*. .\" 2008-06-19, mtk, Documented /proc/[pid]/status. .\" 2008-07-15, mtk, added /proc/config.gz .\" .\" FIXME cross check against Documentation/filesystems/proc.txt .\" to see what information could be imported from that file .\" into this file. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH proc 5 "8 июля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ proc \- process information, system information, and sysctl pseudo\-filesystem .SH ОПИСАНИЕ Файловая система \fBproc\fP — это псевдо\-файловая система, которая предоставляет интерфейс к структурам данных ядра. Обычно, она монтируется в \fI/proc\fP и это выполняется системой автоматически, но также можно монтировать её вручную с помощью команды: .PP .in +4n .EX mount \-t proc proc /proc .EE .in .PP .\" Большинство файлов файловой системы \fBproc\fP доступны только для чтения, но есть и доступные на запись, через которые можно изменять переменные ядра. .SS "Параметры монтирования" Файловая система \fBproc\fP поддерживает следующие параметры монтирования: .TP \fBhidepid\fP=\fIn\fP (начиная с Linux 3.3) .\" commit 0499680a42141d86417a8fbaa8c8db806bea1201 Позволяет управлять доступом к информации в каталогах \fI/proc/\fPpid. В аргументе \fIn\fP может указываться одно из следующих значений: .RS .TP 4 0 Все имеют доступ ко всем каталогам \fI/proc/\fPpid. Обычное поведение, используется по умолчанию, если этот параметр не указан. .TP 1 .\" As an additional bonus, since .\" .IR /proc/[pid]/cmdline .\" is inaccessible for other users, .\" poorly written programs passing sensitive information via .\" program arguments are now protected against local eavesdroppers. Пользователи не имеют доступа к файлам и подкаталогам любого каталога \fI/proc/\fPpid кроме их собственных (сами каталоги \fI/proc/\fPpid остаются видимыми). Важные файлы \fI/proc/\fPpid\fI/cmdline\fP и \fI/proc/\fPpid\fI/status\fP теперь защищены от других пользователей. Это делает невозможным увидеть какие программы запустил пользователь (до тех пор, пока сама программа не раскрывает себя своим поведением). .TP 2 Как режим 1, но дополнительно и каталоги \fI/proc/\fPpid, принадлежащие другим пользователям, становятся невидимыми. Это означает, что элементы \fI/proc/\fPpid теперь нельзя использовать для получения PID в системе. Это не скрывает факт того, что процесса с определённым PID не существует (это можно определить по другому, например, командой «kill \-0 $PID»), но это скрывает UID и GID процесса, которые можно было определять с помощью \fBstat\fP(2) на каталог \fI/proc/\fPpid. Это сильно усложняет атакующему задачу по сбору информации о выполняющихся процессах (например, определение того, запущены ли некоторые службы с повышенными правами, запустил ли другой пользователь некоторую важную программу, выполняет ли вообще какую\-либо программу другой пользователь и так далее). .RE .TP \fBgid\fP=\fIgid\fP (начиная с Linux 3.3) .\" commit 0499680a42141d86417a8fbaa8c8db806bea1201 .\" Задаёт ID группы, члены которой могут просматривать информацию о процессах в обход запрещению \fBhidepid\fP, (т. е. пользователям в этой группе кажется, что \fI/proc\fP смонтирована с \fIhidepid=0\fP). Эту группу нужно использовать вместо помещения непривилегированных пользователем в файл \fBsudoers\fP(5) для тех же целей. .SS Обзор В каталоге \fI/proc\fP существуют следующие общие группы файлов и подкаталогов: .TP Подкаталоги \fI/proc/\fPpid Каждый из этих подкаталогов включает файлы и подкаталоги, которые содержат информацию о процессе с соответствующим ID процесса. .IP В каждом каталоге \fI/proc/\fPpid есть подкаталог \fItask\fP, включающий подкаталоги вида \fItask/\fPtid, которые содержат информацию о каждой нить процесса, где \fItid\fP — ID нити ядра. .IP Подкаталоги \fI/proc/\fPpid видимы при обходе \fI/proc\fP с помощью \fBgetdents\fP(2) (и поэтому они видимы программам подобным \fBls\fP(1), которые используются для просмотра содержимого \fI/proc\fP). .TP Подкаталоги \fI/proc/\fPtid В каждом из этих подкаталогов содержатся файлы и подкаталоги с информацией о нити с соответствующим ID нити. Содержимое этих каталогов такое же как у соответствующих каталогов \fI/proc/\fPpid\fI/task/\fPtid. .IP Подкаталоги \fI/proc/\fPtid \fIне\fP видимы при обходе \fI/proc\fP с помощью \fBgetdents\fP(2) (и поэтому они \fIне\fP видимы программам подобным \fBls\fP(1), которые используются для просмотра содержимого \fI/proc\fP). .TP \fI/proc/self\fP Когда процесс обращается по этой символьной ссылке, она указывает на каталог \fI/proc/\fPpid самого процесса. .TP \fI/proc/thread\-self\fP Когда нить обращается по этой символьной ссылке, она указывает на каталог \fI/proc/self/task/\fPtid самого процесса. .TP \fI/proc/[a\-z]*\fP Другие файлы и подкаталоги в \fI/proc\fP предоставляют информацию о системе. .PP .\" Всё перечисленное выше далее будет описано подробней. .SS "Файлы и каталоги" В следующем списке подробно описаны многие файлы и каталоги в иерархии \fI/proc\fP. .TP \fI/proc/\fPpid Эти числовые подкаталоги соответствуют работающим процессам; имя подкаталога соответствует идентификатору процесса. Каждый подкаталог \fI/proc/\fPpid содержит псевдо\-файлы и каталоги, описываемые далее. .IP Файлы в каждом каталоге \fI/proc/\fPpid, обычно, принадлежат действующему идентификатору пользователя и группы процесса. Однако в целях безопасности, владельцем устанавливается \fIroot:root\fP, если у процесса атрибут «dumpable» установлен в значение, отличное от 1. .IP .\" commit 68eb94f16227336a5773b83ecfa8290f1d6b78ce До Linux 4.11, \fIroot:root\fP означал «глобальный» идентификатор суперпользователя и группы (т. е., UID 0 и GID 0 в первоначальном пользовательском пространстве имён). Начиная с Linux 4.11, если процесс находится не первоначальном пользовательском пространстве имён, имеющий корректное отображение идентификатор 0 пользователя (группы) внутри пространства имён, то владельцем (группой) файлов в \fI/proc/\fPpid вместо этого будет тот же идентификатор суперпользователя (группы) как у пространства имён. Это означает, что внутри контейнера для контейнерного «суперпользователя» всё будет работать как ожидается. .IP Атрибут процесса «dumpable» может измениться по следующим причинам: .RS .IP \[bu] 3 Атрибут был явно изменён с помощью операции \fBPR_SET_DUMPABLE\fP вызова \fBprctl\fP(2). .IP \[bu] Атрибут был сброшен в значение из файла \fI/proc/sys/fs/suid_dumpable\fP (описан далее) по причинам, описанным в \fBprctl\fP(2). .RE .IP Resetting the "dumpable" attribute to 1 reverts the ownership of the \fI/proc/\fPpid\fI/*\fP 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 \fBprctl\fP(2). Therefore, it may be desirable to reset the "dumpable" attribute \fIafter\fP making any desired changes to the process's effective UID or GID. .TP \fI/proc/\fPpid\fI/attr\fP .\" https://lwn.net/Articles/28222/ .\" From: Stephen Smalley .\" To: LKML and others .\" Subject: [RFC][PATCH] Process Attribute API for Security Modules .\" Date: 08 Apr 2003 16:17:52 -0400 .\" .\" http://www.nsa.gov/research/_files/selinux/papers/module/x362.shtml .\" Файлы в этом катале предоставляют программный интерфейс к модулям безопасности. Содержимое этого каталога представляет собой файлы для чтения и записи атрибутов безопасности. Этот каталог был добавлен для поддержки SELinux, но данный программный интерфейс может использоваться для поддержки других модулей безопасности. Как работать с этими файлами показано на примере с SELinux ниже. .IP Данный каталог доступен только, если ядро собрано с параметром \fBCONFIG_SECURITY\fP. .TP \fI/proc/\fPpid\fI/attr/current\fP (начиная с Linux 2.6.0) В этом файле представлены текущие атрибуты безопасности процесса. .IP В SELinux этот файл используется для получения контекста безопасности процесса. До Linux 2.6.11 этот файл нельзя было использовать для задания контекста безопасности (запись была запрещена), так как ограничение безопасности SELinux процесса изменяется при \fBexecve\fP(2) (смотрите описание \fI/proc/\fPpid\fI/attr/exec\fP ниже). Начиная с Linux 2.6.11 в SELinux это ограничение снято и началась поддержка операций «установки» посредством записи в эту ноду, если это допускается политикой, хотя использование данной операции подходит только для приложений, которым можно доверять управление любым желаемым разделением между старым и новым контекстами безопасности. .IP До Linux 2.6.28 в SELinux нитям не разрешалось внутри многонитевого процесса задавать свой контекст безопасности через эту ноду, так как это привело бы к нестыковке контекстов безопасности нитей, использующи[ общее адресное пространство. Начиная с Linux 2.6.28 в SELinux это ограничение снято и началась поддержка поддержка операций «установки» для нитей внутри многонитевого процесса, если новый контекст безопасности привязан к старому контексту безопасности, где связь определена политикой и гарантируется, что новый контекст безопасности является поднабором прав старого контекста безопасности. .IP Другие модули безопасности могут также добавить поддержку операций «установки» через запись в эту ноду. .TP \fI/proc/\fPpid\fI/attr/exec\fP (начиная с Linux 2.6.0) В этом файле представлены атрибуты, назначаемые процессу при последующем \fBexecve\fP(2). .IP В SELinux это необходимо для поддержки перехода роль/домен и \fBexecve\fP(2) является предпочтительным местом выполнения таких изменений, так как предлагает лучший контроль над инициализацией процесса с новой меткой безопасности и наследуемым состоянием. В SELinux этот атрибут сбрасывается при \fBexecve\fP(2) и новая программа получает поведение по умолчанию для всех вызовов \fBexecve\fP(2), которые она может сделать. В SELinux процесс может задать только свой атрибут в \fI/proc/\fPpid\fI/attr/exec\fP. .TP \fI/proc/\fPpid\fI/attr/fscreate\fP (начиная с Linux 2.6.0) В этом файле представлены атрибуты для назначения файлам, создаваемым последующими вызовами \fBopen\fP(2), \fBmkdir\fP(2), \fBsymlink\fP(2) и \fBmknod\fP(2). .IP SELinux создаёт этот файл для поддержки создания файла (с помощью вышеупомянутых системных вызовов) в безопасном состоянии, исключая, таким образом, риск неправомерного доступа, который можно получить в промежутке между созданием и назначением атрибутов. В SELinux этот атрибут сбрасывается при \fBexecve\fP(2), поэтому новой программе возвращается поведение по умолчанию при любых вызовах создания файла, но атрибут сохраняется между несколькими вызовами создания файла внутри программы, пока она явно его не сбросит. В SELinux процесс может установить только свой атрибут \fI/proc/\fPpid\fI/attr/fscreate\fP. .TP \fI/proc/\fPpid\fI/attr/keycreate\fP (начиная с Linux 2.6.18) .\" commit 4eb582cf1fbd7b9e5f466e3718a59c957e75254e .\" commit b68101a1e8f0263dbc7b8375d2a7c57c6216fb76 .\" commit d410fa4ef99112386de5f218dd7df7b4fca910b4 If a process writes a security context into this file, all subsequently created keys (\fBadd_key\fP(2)) will be labeled with this context. For further information, see the kernel source file \fIDocumentation/security/keys/core.rst\fP (or file \fIDocumentation/security/keys.txt\fP between Linux 3.0 and Linux 4.13, or \fIDocumentation/keys.txt\fP before Linux 3.0). .TP \fI/proc/\fPpid\fI/attr/prev\fP (начиная с Linux 2.6.0) Этот файл содержит контекст безопасности процесса перед последним \fBexecve\fP(2) — предыдущее значение \fI/proc/\fPpid\fI/attr/current\fP. .TP \fI/proc/\fPpid\fI/attr/socketcreate\fP (начиная с Linux 2.6.18) .\" commit 42c3e03ef6b298813557cdb997bd6db619cd65a2 Если процесс записывает контекст безопасности в этот файл, то все создаваемые далее сокеты будут помечены этим контекстом. .TP \fI/proc/\fPpid\fI/autogroup\fP (начиная с Linux 2.6.38) .\" commit 5091faa449ee0b7d73bc296a93bca9540fc51d0a Смотрите \fBsched\fP(7). .TP \fI/proc/\fPpid\fI/auxv\fP (since Linux 2.6.0) .\" Precisely: Linux 2.6.0-test7 Содержит информацию, полученную интерпретатором ELF и переданную процессу во время выполнения. Формат \(em это один идентификатор типа \fIunsigned long\fP ID и по одному значению типа \fIunsigned long\fP для каждого из элементов. Последний элемент содержит два нуля. Смотрите также \fBgetauxval\fP(3). .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPpid\fI/cgroup\fP (начиная с Linux 2.6.24) Смотрите \fBcgroups\fP(7). .TP \fI/proc/\fPpid\fI/clear_refs\fP (начиная с Linux 2.6.22) .\" commit b813e931b4c8235bb42e301096ea97dbdee3e8fe (2.6.22) .\" commit 398499d5f3613c47f2143b8c54a04efb5d7a6da9 (2.6.32) .\" commit 040fa02077de01c7e08fa75be6125e4ca5636011 (3.11) .\" .\" "Clears page referenced bits shown in smaps output" .\" write-only, writable only by the owner of the process .IP Данный файл доступен только для записи и только владельцу процесса. .IP В файл могут быть записаны следующие значения: .RS .TP 1 (начиная с Linux 2.6.22) .\" Internally: CLEAR_REFS_ALL 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.) .TP 2 (начиная с Linux 2.6.32) .\" Internally: CLEAR_REFS_ANON Сбросить биты PG_Referenced и ACCESSED/YOUNG для всех анонимных страниц, связанных с процессом. .TP 3 (начиная с Linux 2.6.32) .\" Internally: CLEAR_REFS_MAPPED Сбросить биты PG_Referenced и ACCESSED/YOUNG для всех страниц отображения файлов, связанных с процессом. .RE .IP Очистка бит PG_Referenced и ACCESSED/YOUNG предоставляет метод приблизительного измерения количества памяти, используемой процессом. Во\-первых, нужно прочитать значения в полях «Referenced» для VMA, показанных в \fI/proc/\fPpid\fI/smaps\fP, и получить объём используемой процессом памяти. Во\-вторых, очистить биты PG_Referenced и ACCESSED/YOUNG и после некоторого известного временного интервала ещё раз прочитать значения в полях «Referenced», чтобы получить размер используемой процессом памяти за известный интервал. Если это интересно только для изучения выбранных типов отображения, то вместо значение 1 можно использовать 2 или 3. .IP Дополнительные записываемые значения, влияющие на другие свойства: .RS .TP 4 (начиная с Linux 3.11) .\" Internally: CLEAR_REFS_SOFT_DIRTY Очистить бит несильного загрязнения (soft\-dirty) для всех страниц, связанных с процессом. Это используется (вместе с \fI/proc/\fPpid\fI/pagemap\fP) системой восстановления контрольной точки для обнаружения какие страницы процесса были испачканы (dirtied) из\-за записи в файл \fI/proc/\fPpid\fI/clear_refs\fP. .TP 5 (начиная с Linux 4.0) .\" Internally: CLEAR_REFS_MM_HIWATER_RSS Сбрасывает пик размера резидентной памяти ("отметка высоты прилива") в текущее значение размера резидентной памяти. .RE .IP Запись любого значения в \fI/proc/\fPpid\fI/clear_refs\fP, отличного от перечисленных выше, ничего не меняет. .IP Файл \fI/proc/\fPpid\fI/clear_refs\fP существует только, если включён параметр настройки ядра \fBCONFIG_PROC_PAGE_MONITOR\fP. .TP \fI/proc/\fPpid\fI/cmdline\fP .\" In Linux 2.3.26, this also used to be true if the process was swapped out. 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. .IP For processes which are still running, the command\-line arguments appear in this file in the same layout as they do in process memory: If the process is well\-behaved, it is a set of strings separated by null bytes (\[aq]\e0\[aq]), with a further null byte after the last string. .IP This is the common case, but processes have the freedom to override the memory region and break assumptions about the contents or format of the \fI/proc/\fPpid\fI/cmdline\fP file. .IP If, after an \fBexecve\fP(2), the process modifies its \fIargv\fP strings, those changes will show up here. This is not the same thing as modifying the \fIargv\fP array. .IP Кроме этого, процесс может изменить расположение памяти с помощью операции \fBprctl\fP(2) \fBPR_SET_MM_ARG_START\fP, на которое ссылается этот файл. .IP Think of this file as the command line that the process wants you to see. .TP \fI/proc/\fPpid\fI/comm\fP (начиная с Linux 2.6.33) .\" commit 4614a696bd1c3a9af3a08f0e5874830a85b889d4 This file exposes the process's \fIcomm\fP value\[em]that is, the command name associated with the process. Different threads in the same process may have different \fIcomm\fP values, accessible via \fI/proc/\fPpid\fI/task/\fPtid\fI/comm\fP. A thread may modify its \fIcomm\fP value, or that of any of other thread in the same thread group (see the discussion of \fBCLONE_THREAD\fP in \fBclone\fP(2)), by writing to the file \fI/proc/self/task/\fPtid\fI/comm\fP. Strings longer than \fBTASK_COMM_LEN\fP (16) characters (including the terminating null byte) are silently truncated. .IP This file provides a superset of the \fBprctl\fP(2) \fBPR_SET_NAME\fP and \fBPR_GET_NAME\fP operations, and is employed by \fBpthread_setname_np\fP(3) when used to rename threads other than the caller. The value in this file is used for the \fI%e\fP specifier in \fI/proc/sys/kernel/core_pattern\fP; see \fBcore\fP(5). .TP \fI/proc/\fPpid\fI/coredump_filter\fP (начиная с Linux 2.6.23) Смотрите \fBcore\fP(5). .TP \fI/proc/\fPpid\fI/cpuset\fP (начиная с Linux 2.6.12) .\" and/proc/[pid]/task/[tid]/cpuset Смотрите \fBcpuset\fP(7). .TP \fI/proc/\fPpid\fI/cwd\fP Это символьная ссылка на текущий рабочий каталог процесса. Например, чтобы узнать текущий каталог процесса 20, вы должны проделать следующее: .IP .in +4n .EX $\fB cd /proc/20/cwd; pwd \-P\fP .EE .in .IP .\" The following was still true as at kernel 2.6.13 В многонитевых процессах, содержимое этой символьной ссылки недоступно, если головная нить уже завершила работу (обычно с помощью вызова \fBpthread_exit\fP(3)). .IP Право разыменовывать или читать (\fBreadlink\fP(2)) эту символическую ссылку определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPpid\fI/environ\fP This file contains the initial environment that was set when the currently executing program was started via \fBexecve\fP(2). The entries are separated by null bytes (\[aq]\e0\[aq]), and there may be a null byte at the end. Thus, to print out the environment of process 1, you would do: .IP .in +4n .EX $\fB cat /proc/1/environ | tr \[aq]\e000\[aq] \[aq]\en\[aq]\fP .EE .in .IP Если после \fBexecve\fP(2) процесс изменил своё окружение (например, вызвав функцию \fBputenv\fP(3) или напрямую изменив переменную \fBenviron\fP(7)), то этот файл \fIне\fP показываются такие изменения. .IP Кроме этого, процесс может изменить расположение памяти с помощью операции \fBprctl\fP(2) \fBPR_SET_MM_ENV_START\fP, на которое ссылается этот файл. .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPpid\fI/exe\fP .\" The following was still true as at kernel 2.6.13 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 \fI/proc/\fPpid\fI/exe\fP to run another copy of the same executable that is being run by process \fIpid\fP. If the pathname has been unlinked, the symbolic link will contain the string \[aq]\ (deleted)\[aq] 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 \fBpthread_exit\fP(3)). .IP Право разыменовывать или читать (\fBreadlink\fP(2)) эту символическую ссылку определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .IP В ядрах Linux 2.0 и более ранних, \fI/proc/\fPpid\fI/exe\fP указывает на двоичный файл, который был выполнен, и работает как символьная ссылка. Вызов \fBreadlink\fP(2) над этим файлом в Linux 2.0 вернёт строку следующего вида: .IP .in +4n .EX [device]:inode .EE .in .IP Например, [0301]:1502 указывает на inode 1502 на устройстве со старшим номером устройства 03 (IDE, MFM, и т.п. диски), младшим номером 01 (первый раздел на первом диске). .IP Для поиска файла можно воспользоваться \fBfind\fP(1) с параметром \fI\-inum\fP. .TP \fI/proc/\fPpid\fI/fd/\fP Этот подкаталог содержит одну запись для каждого файла, открытого процессом, именем является номер его файлового дескриптора, и которая является символьной ссылкой на настоящий файл. Так, 0 — это стандартный поток ввода, 1 — стандартный поток вывода, 2 — стандартный поток ошибок и т.п. .IP Для файловых дескрипторов каналов и сокетов записи будут символьными ссылками, содержимое которых — тип файла и inode. Вызов \fBreadlink\fP(2) для такого файла вернёт строку в формате: .IP .in +4n .EX type:[inode] .EE .in .IP Например, \fIsocket:[2248868]\fP — для сокета с inode 2248868. Для сокетов эту inode можно использовать для поиска дополнительной информации в одном из файлов в \fI/proc/net/\fP. .IP Для файловых дескриптор без соответствующей иноды (например, файловые дескрипторы, создаваемые \fBbpf\fP(2), \fBepoll_create\fP(2), \fBeventfd\fP(2), \fBinotify_init\fP(2), \fBperf_event_open\fP(2), \fBsignalfd\fP(2), \fBtimerfd_create\fP(2) и \fBuserfaultfd\fP(2)), запись будет символьной ссылкой с содержимым в виде .IP .in +4n .EX anon_inode:\fIтип\-файла\fP .EE .in .IP Во многих случаях (но не всех) \fIтип\-файла\fP заключается в квадратные скобки. .IP Например, файловый дескриптор epoll будет иметь символьную ссылку с содержимым в виде строки \fIanon_inode:[eventpoll]\fP. .IP .\"The following was still true as at kernel 2.6.13 В многонитевых процессах, содержимое этого каталога недоступно, если главная нить уже завершила работу (обычно при помощи вызова \fBpthread_exit\fP(3)). .IP Программы, принимающие в аргументе командной строки имя файлы, не читают данные из стандартного ввода, если аргумент не указан, а программы, которые выполняют запись в файл с именем, указанным в аргументе командной строки, не пишут данные в стандартный вывод, если аргумент не указан, но, тем не менее, могут использовать стандартный ввод или вывод через файлы \fI/proc/\fPpid\fI/fd\fP, указанные в аргументе командной строки. Например, подразумевая что \fI\-i\fP является флагом, обозначающим входной файл, и \fI\-o\fP является флагом, обозначающим выходной файл, вы можете указать: .IP .in +4n .EX $\fB foobar \-i /proc/self/fd/0 \-o /proc/self/fd/1 …\fP .EE .in .IP .\" The following is not true in my tests (MTK): .\" Note that this will not work for .\" programs that seek on their files, as the files in the fd directory .\" are not seekable. и вы получите работающий фильтр. .IP \fI/proc/self/fd/N\fP \(em это примерно то же, что и \fI/dev/fd/N\fP на некоторых системах UNIX и подобных им. Фактически, большинство сценариев MAKEDEV в Linux создают символьную ссылку с именем \fI/dev/fd\fP на файл \fI/proc/self/fd\fP. .IP Большинство систем предоставляют символьные ссылки \fI/dev/stdin\fP, \fI/dev/stdout\fP и \fI/dev/stderr\fP, которые соответствуют ссылкам на файлы \fI0\fP, \fI1\fP и \fI2\fP в \fI/proc/self/fd\fP. Так, пример указанной выше команды может быть переписан в следующем виде: .IP .in +4n .EX $\fB foobar \-i /dev/stdin \-o /dev/stdout ...\fP .EE .in .IP Право разыменовывать или читать (\fBreadlink\fP(2)) символические ссылки в этом каталоге определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .IP Заметим, что для файловых дескрипторов, указывающих на иноды (каналы и сокеты, смотрите выше), эти иноды по\-прежнему имеют биты прав и информация о владельце отличается от имеющейся у \fI/proc/\fPpid\fI/fd\fP и этот владелец может отличаться от идентификатора пользователя и группы процесса. Непривилегированный процесс может не иметь прав на их открытие, как в этом примере: .IP .in +4n .EX $\fB echo test | sudo \-u nobody cat\fP test $\fB echo test | sudo \-u nobody cat /proc/self/fd/0\fP cat: /proc/self/fd/0: Permission denied .EE .in .IP Файловый дескриптор 0 указывает на канал, созданный оболочкой и принадлежащий владельцу оболочки, не \fInobody\fP, поэтому у программы \fBcat\fP нет прав на создание нового файлового дескриптора для чтения из этой иноды, хотя при этом она всё\-таки может читать из существующего файлового дескриптора 0. .TP \fI/proc/\fPpid\fI/fdinfo/\fP (начиная с Linux 2.6.22) Этот подкаталог содержит один элемент на каждый файл, который открыл процесс, именем файла будет номер его файлового дескриптора. Файлы в этом каталоге доступны на чтение только владельцу процесса. Содержимое каждого файла может быть прочитано для получения информации о соответствующем файловом дескрипторе. Содержимое зависит от типа файла, на который ссылается соответствующий файловый дескриптор. .IP Для обычных файлов и каталогов содержимым будет, что\-то типа: .IP .in +4n .EX $\fB cat /proc/12015/fdinfo/4\fP pos: 1000 flags: 01002002 mnt_id: 21 .EE .in .IP Поля: .RS .TP \fIpos\fP Это десятичное число отражает смещение файла. .TP \fIflags\fP Это восьмеричное число отражает режим доступа к файлу и флаги состояния файла (смотрите \fBopen\fP(2)). Если установлен флаг файлового дескриптора close\-on\-exec, то \fIflags\fP также содержат значение \fBO_CLOEXEC\fP. .IP .\" commit 1117f72ea0217ba0cc19f05adbbd8b9a397f5ab7 До Linux 3.1 в этом поле некорректно показывалось значение \fBO_CLOEXEC\fP верное на момент открытия файла, а не текущее значение флага close\-on\-exec. .TP \fImnt_id\fP .\" commit 49d063cb353265c3af701bab215ac438ca7df36d This field, present since Linux 3.15, is the ID of the mount containing this file. See the description of \fI/proc/\fPpid\fI/mountinfo\fP. .RE .IP .\" commit cbac5542d48127b546a23d816380a7926eee1c25 Для файловых дескрипторов eventfd (смотрите \fBeventfd\fP(2)) мы увидим (начиная с Linux 3.8) следующие поля: .IP .in +4n .EX pos: 0 flags: 02 mnt_id: 10 eventfd\-count: 40 .EE .in .IP В \fIeventfd\-count\fP содержится текущее значение счётчика eventfd counter (в виде шестнадцатеричного числа). .IP .\" commit 138d22b58696c506799f8de759804083ff9effae Для файловых дескрипторов epoll (смотрите \fBepoll\fP(7)) мы увидим (начиная с Linux 3.8) следующие поля: .IP .in +4n .EX pos: 0 flags: 02 mnt_id: 10 tfd: 9 events: 19 data: 74253d2500000009 tfd: 7 events: 19 data: 74253d2500000007 .EE .in .IP Каждая строка, начинающаяся с \fItfd\fP, описывает один из файловых дескрипторов, который отслеживается через файловый дескриптор epoll (подробности смотрите в \fBepoll_ctl\fP(2)). Поле \fItfd\fP содержит номер файлового дескриптора. Поле \fIevents\fP представляет собой шестнадцатеричную маску событий, которые отслеживаются для этого файлового дескриптора. Поле \fIdata\fP содержит данные, связанные с этим файловым дескриптором. .IP .\" commit 138d22b58696c506799f8de759804083ff9effae Для файловых дескрипторов signalfd (смотрите \fBsignalfd\fP(2)) мы увидим (начиная с Linux 3.8) следующие поля: .IP .in +4n .EX pos: 0 flags: 02 mnt_id: 10 sigmask: 0000000000000006 .EE .in .IP В \fIsigmask\fP содержится шестнадцатеричная маска сигналов, которые принимаются через этот файловый дескриптор signalfd (в этом примере биты 2 и 3 установлены, что соответствует сигналам \fBSIGINT\fP и \fBSIGQUIT\fP; смотрите \fBsignal\fP(7)). .IP Для файловых дескрипторов inotify (смотрите \fBinotify\fP(7)) мы увидим (начиная с Linux 3.8) следующие поля: .IP .in +4n .EX 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 .EE .in .IP Каждая из строк, начинающаяся с «inotify», содержит информацию об одном отслеживаемом файле или каталоге. Поля в этой строке: .RS .TP \fIwd\fP Отслеживаемый номер файлового дескриптора (десятичное число). .TP \fIino\fP Номер иноды целевого файла (шестнадцатеричное число). .TP \fIsdev\fP Идентификатор устройства, содержащего целевой файл (шестнадцатеричное число). .TP \fImask\fP Маска отслеживаемых событий для целевого файла (шестнадцатеричное число). .RE .IP Если ядро собрано с поддержкой exportfs, то путь целевого файла представляется в виде описателя (handle) файла, выраженного тремя шестнадцатеричными полями: \fIfhandle\-bytes\fP, \fIfhandle\-type\fP и \fIf_handle\fP. .IP Для файловых дескрипторов fanotify (смотрите \fBfanotify\fP(7)) мы увидим (начиная с Linux 3.8) следующие поля: .IP .in +4n .EX 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 .EE .in .IP В четвёртой строке содержится информация, определяющая когда была создана с помощью \fBfanotify_init\fP(2) группа fanotify: .RS .TP \fIflags\fP Аргумент \fIflags\fP, переданный \fBfanotify_init\fP(2) (шестнадцатеричное число). .TP \fIevent\-flags\fP Аргумент \fIevent_f_flags\fP, переданный \fBfanotify_init\fP(2) (шестнадцатеричное число). .RE .IP В каждой дополнительной строке файла содержится информация об одной из меток в группе fanotify. Большинство полей аналогичны с inotify, за исключением: .RS .TP \fImflags\fP Флаги, связанные с меткой (шестнадцатеричное число). .TP \fImask\fP Маска событий, связанная с этой меткой (шестнадцатеричное число). .TP \fIignored_mask\fP Маска событий, которые игнорируются для этой метки (шестнадцатеричное число). .RE .IP Подробную информацию об этих полях смотрите в \fBfanotify_mark\fP(2). .IP .\" commit af9c4957cf212ad9cf0bee34c95cb11de5426e85 Для файловых дескрипторов timerfd (смотрите \fBtimerfd\fP(2)) мы увидим (начиная с Linux 3.17) следующие поля: .IP .in +4n .EX pos: 0 flags: 02004002 mnt_id: 13 clockid: 0 ticks: 0 settime flags: 03 it_value: (7695568592, 640020877) it_interval: (0, 0) .EE .in .RS .TP \fIclockid\fP Числовое значение идентификатора часов (соответствует одной из констант \fBCLOCK_*\fP, определённых в \fI\fP), используемое для отметки действия таймера (в этом примере 0 — \fBCLOCK_REALTIME\fP). .TP \fIticks\fP Количество раз прошедших окончаний таймера (т. е., значение, которое вернул бы для него вызов \fBread\fP(2)). .TP \fIsettime flags\fP В этом поле перечислены флаги в восьмеричном виде (в этом примере установлены \fBTFD_TIMER_ABSTIME\fPи \fBTFD_TIMER_CANCEL_ON_SET\fP), с которым был запущен timerfd последний раз (смотрите \fBtimerfd_settime\fP(2)). .TP \fIit_value\fP В этом поле содержит количество времени до следующего истечения таймера, выраженное в секундах и наносекундах. Это всегда относительное значение, независимо от флага создания таймера \fBTFD_TIMER_ABSTIME\fP. .TP \fIit_interval\fP В этом поле содержится интервал таймера, выраженный в секундах и наносекундах (поля \fIit_value\fP и \fIit_interval\fP содержат значения, которые вернул бы вызов \fBtimerfd_gettime\fP(2) для этого файлового дескриптора). .RE .TP \fI/proc/\fPpid\fI/gid_map\fP (начиная с Linux 3.5) См. \fBuser_namespaces\fP(7). .TP \fI/proc/\fPpid\fI/io\fP (since Linux 2.6.20) .\" commit 7c3ab7381e79dfc7db14a67c6f4f3285664e1ec2 Этот файл содержит статистику ввода\-вывода процесса, например: .IP .in +4n .EX #\fB cat /proc/3828/io\fP rchar: 323934931 wchar: 323929600 syscr: 632687 syscw: 632675 read_bytes: 0 write_bytes: 323932160 cancelled_write_bytes: 0 .EE .in .IP Поля: .RS .TP \fIrchar\fP: прочитано символов Количество байт, которое было прочитано данной задачей из хранилища. Это просто сумма байт, которую процесс передал в \fBread\fP(2) и подобные системные вызовы. Здесь учитываются такие вещи как ввод\-вывод с терминалом и не учитывается, происходил ли ввод\-вывод действительно с физического диска (для чтения могло оказаться достаточно страничного кэша). .TP \fIwchar\fP: записано символов Количество байт, которые были или должны быть записаны задачей на диск. Применимы те же оговорки, что и для \fIrchar\fP. .TP \fIsyscr\fP: количество системных вызовов чтения Attempt to count the number of read I/O operations\[em]that is, system calls such as \fBread\fP(2) and \fBpread\fP(2). .TP \fIsyscw\fP: количество системных вызовов записи Attempt to count the number of write I/O operations\[em]that is, system calls such as \fBwrite\fP(2) and \fBpwrite\fP(2). .TP \fIread_bytes\fP: прочитано байт Попытка подсчитать количество байт, которое процесс действительно получил с уровня хранилища. Является точным для файловых систем блочного хранения. .TP \fIwrite_bytes\fP: записано байт Попытка подсчитать количество байт, которое процесс действительно послал на уровень хранилища. .TP \fIcancelled_write_bytes\fP: Есть большая погрешность при усечении. Если процесс записывает 1 МБ в файл, а затем удаляет файл, то, фактически, он ничего не запишет. Но это будет подсчитано как запись 1 МБ. Другими словами: это поле представляет количество байт, для которых процесс отменил запись посредством усечения страничного кэша. Задача также может вызвать «отрицательный» ввод\-вывод. Если задача усекает часть устаревшего страничного кэша, то некоторый ввод\-вывод, который был учтён в другой задаче (в её \fIwrite_bytes\fP), не произойдёт. .RE .IP \fIЗамечание\fP: В текущей реализации существует большая состязательность в 32\-битных системах: если процесс A читает \fI/proc/\fPpid\fI/io\fP процесса B в момент обновления 64\-битных счётчиков процесса B, то процесс A может увидеть промежуточный результат. .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPpid\fI/limits\fP (начиная с Linux 2.6.24) .\" commit 3036e7b490bf7878c6dae952eec5fb87b1106589 .\" FIXME Describe /proc/[pid]/loginuid .\" Added in Linux 2.6.11; updating requires CAP_AUDIT_CONTROL .\" CONFIG_AUDITSYSCALL В этом файле содержатся мягкие и жёсткие ограничения (limit), а также измерения по каждого ограничению ресурсов процесса (см. \fBgetrlimit\fP(2)). Файл доступен на чтение только реальному UID процесса. Начиная с Linux 2.6.36, может читаться всеми пользователями системы. .TP \fI/proc/\fPpid\fI/map_files/\fP (since Linux 3.3) .\" commit 640708a2cff7f81e246243b0073c66e6ece7e53e В этом подкаталоге содержатся записи, соответствующие файлам, отображённым в память (смотрит \fBmmap\fP(2)). Имена записей соответствуют начальному и конечному адресу области памяти (в виде шестнадцатеричных чисел), и символьными ссылками на само отображённые файлы. Пример (подогнан под 80\-колоночный терминал): .IP .in +4n .EX #\fB ls \-l /proc/self/map_files/\fP lr\-\-\-\-\-\-\-\-. 1 root root 64 Apr 16 21:31 3252e00000\-3252e20000 \-> /usr/lib64/ld\-2.15.so \&... .EE .in .IP Хотя эти записи предназначены для областей памяти, отображённых с флагом \fBMAP_FILE\fP, из реализации в Linux области анонимной общей памяти (области, созданные с флагами \fBMAP_ANON | MAP_SHARED\fP) также будут присутствовать в этом каталоге. Пример, в котором файл назначения — удалённый \fI/dev/zero\fP: .IP .in +4n .EX lrw\-\-\-\-\-\-\-. 1 root root 64 Apr 16 21:33 7fc075d2f000\-7fc075e6f000 \-> /dev/zero (deleted) .EE .in .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .IP .\" commit bdb4d100afe9818aebd1d98ced575c5ef143456c Until Linux 4.3, this directory appeared only if the \fBCONFIG_CHECKPOINT_RESTORE\fP kernel configuration option was enabled. .IP Capabilities are required to read the contents of the symbolic links in this directory: before Linux 5.9, the reading process requires \fBCAP_SYS_ADMIN\fP in the initial user namespace; since Linux 5.9, the reading process must have either \fBCAP_SYS_ADMIN\fP or \fBCAP_CHECKPOINT_RESTORE\fP in the initial (i.e. root) user namespace. .TP \fI/proc/\fPpid\fI/maps\fP Файл, содержащий адреса областей памяти, которые используются программой в данный момент и права доступа к ним. Информацию об отображении памяти смотрите в \fBmmap\fP(2). .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .IP Формат файла: .IP .in +4n .EX \fIaddress perms offset dev inode pathname\fP 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] .EE .in .IP В поле \fIaddress\fP показано адресное пространство процесса, в которое выполнено отображение, а в поле \fIperms\fP — права доступа: .IP .in +4n .EX r = можно читать w = можно писать x = можно выполнять s = можно использовать несколькими процессами совместно p = личное (копирование при записи) .EE .in .IP Поле \fIoffset\fP — это смещение в файле/где\-то ещё; \fIdev\fP — устройство (старший номер:младший номер); \fIinode\fP — индексный дескриптор на данном устройстве. 0 означает, что с данной областью памяти не связаны индексные дескрипторы: примером тому является сегмент BSS (неинициализированные данные). .IP В поле \fIpathname\fP обычно указывается отображённый файл. Если файл в формате ELF, то вы легко можете установить связь с полем \fIoffset\fP, посмотрев в Offset программного заголовка ELF (\fIreadelf\ \-l\fP). .IP Дополнительные полезные псевдо\-пути: .RS .TP \fI[stack]\fP Начальный стек процесса (главной нити). .TP \fI[stack:\fPtid\fI]\fP (from Linux 3.4 to Linux 4.4) .\" commit b76437579d1344b612cf1851ae610c636cec7db0 (added) .\" commit 65376df582174ffcec9e6471bf5b0dd79ba05e4a (removed) Стек нити (где \fItid\fP — ID нити). Соответствует пути \fI/proc/\fPpid\fI/task/\fPtid\fI/\fP. Это поле было удалено в Linux 4.5, так как предоставление им информации по процессу с большим количеством нитей оказалось слишком затратным. .TP \fI[vdso]\fP Виртуальный, динамически компонуемый, общий объект. Смотрите \fBvdso\fP(7). .TP \fI[heap]\fP Куча процесса. .TP \fI[anon:\fPname\fI]\fP (since Linux 5.17) .\" Commit 9a10064f5625d5572c3626c1516e0bebc6c9fe9b A named private anonymous mapping. Set with \fBprctl\fP(2) \fBPR_SET_VMA_ANON_NAME\fP. .TP \fI[anon_shmem:\fPname\fI]\fP (since Linux 6.2) .\" Commit d09e8ca6cb93bb4b97517a18fbbf7eccb0e9ff43 A named shared anonymous mapping. Set with \fBprctl\fP(2) \fBPR_SET_VMA_ANON_NAME\fP. .in .RE .IP Если значение поля \fIpathname\fP пусто, то это анонимное отображение, полученное с помощью \fBmmap\fP(2). Нет простого способа увязать это с источником в процессе, кроме как запустив его в \fBgdb\fP(1), \fBstrace\fP(1) и т.п. .IP Всё значение \fIpathname\fP является неэкранированным, кроме символа новой строки, который заменяется на восьмеричную экранирующую последовательность. В результате невозможно определить, что в оригинальном пути — символ новой строки или экранирующая последовательность буквенная \fI\e012\fP. .IP Если файл отображается в виртуальную память и удаляется, то к пути добавляется строка " (deleted)". Заметим, что это также проблематичное решение. .IP В Linux 2.0 поле, указывающее на имя файла, отсутствует. .TP \fI/proc/\fPpid\fI/mem\fP Этот файл можно использовать для получения доступа к страницам памяти процесса через вызовы \fBopen\fP(2), \fBread\fP(2) и \fBlseek\fP(2). .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_ATTACH_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPpid\fI/mountinfo\fP (начиная с Linux 2.6.26) .\" This info adapted from Documentation/filesystems/proc.txt .\" commit 2d4d4864ac08caff5c204a752bd004eed4f08760 This file contains information about mounts in the process's mount namespace (see \fBmount_namespaces\fP(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) \fI/proc/\fPpid\fI/mounts\fP file, and fixes various other problems with that file (e.g., nonextensibility, failure to distinguish per\-mount versus per\-superblock options). .IP В этом файле содержатся строки в следующем формате: .IP .EX 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) .EE .IP Описания полей (номер представлен в скобках): .RS 7 .TP 5 (1) ID монтирования: уникальный идентификатор монтирования (может использоваться повторно после \fBumount\fP(2)). .TP (2) родительский ID: ID родительского монтирования (или самого себя, для корня дерева монтирования). .IP Если новая точка монтирования накладывается поверх существующей точки монтирования (таким образ скрывая её) hides the existing mount) с путём P, то родитель новой точки монтирования равен предыдущей точке монтирования в этом расположении. То есть, если смотреть все точки монтирования наложенные на определённое расположение, то самой верхней точкой монтирования будет та, которая не является родителем каких\-либо других точек монтирования в том же расположении (однако заметим, что это верхняя точка монтирования будет доступна только, если самый длинный подпрефикс пути P, являющийся точкой монтирования, сам не будет скрыт наложенным монтированием). .IP .\" Miklos Szeredi, Nov 2017: The hidden one is the initramfs, I believe .\" mtk: In the initial mount namespace, this hidden ID has the value 0 If the parent mount lies outside the process's root directory (see \fBchroot\fP(2)), the ID shown here won't have a corresponding record in \fImountinfo\fP whose mount ID (field 1) matches this parent mount ID (because mounts that lie outside the process's root directory are not shown in \fImountinfo\fP). 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 \fImountinfo\fP. .TP (3) старший:младший: значение \fIst_dev\fP для файлов в этой файловой системе (смотрите \fBstat\fP(2)). .TP (4) корень: путь к каталогу в файловой системе, с которого начинается корень данного монтирования. .TP (5) точка монтирования: путь точки монтирования относительно корневого каталога процесса. .TP (6) параметры монтирования: параметры конкретного монтирования (смотрите \fBmount\fP(2)). .TP (7) необязательные поля: ноль или более полей в виде «метка[:значение]»; смотрите далее. .TP (8) разделитель: конец необязательных полей отмечается одиночным символом переноса. .TP (9) тип файловой системы: тип файловой системы в виде «тип[.подтип]». .TP (10) источник монтирования: информация, специфичная для файловой системы или «none». .TP (11) параметры суперблока: параметры конкретного суперблока (смотрите \fBmount\fP(2)). .RE .IP Возможные необязательные поля на данный момент: \fIshared\fP, \fImaster\fP, \fIpropagate_from\fP и \fIunbindable\fP. Описание этих полей смотрите в \fBmount_namespaces\fP(7). Анализаторы должны игнорировать все неизвестные необязательные поля. .IP For more information on mount propagation see \fIDocumentation/filesystems/sharedsubtree.rst\fP (or \fIDocumentation/filesystems/sharedsubtree.txt\fP before Linux 5.8) in the Linux kernel source tree. .TP \fI/proc/\fPpid\fI/mounts\fP (начиная с Linux 2.4.19) Этот файл содержит список всех файловых систем, смонтированных в пространстве имён монтирования процесса в данный момент (смотрите \fBmount_namespaces\fP(7)). Формат этого файл описан в \fBfstab\fP(5). .IP 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 \fBselect\fP(2) to mark the file descriptor as having an exceptional condition, and \fBpoll\fP(2) and \fBepoll_wait\fP(2) mark the file as having a priority event (\fBPOLLPRI\fP). (Before Linux 2.6.30, a change in this file was indicated by the file descriptor being marked as readable for \fBselect\fP(2), and being marked as having an error condition for \fBpoll\fP(2) and \fBepoll_wait\fP(2).) .TP \fI/proc/\fPpid\fI/mountstats\fP (начиная с Linux 2.6.17) This file exports information (statistics, configuration information) about the mounts in the process's mount namespace (see \fBmount_namespaces\fP(7)). Lines in this file have the form: .IP .in +4n .EX device /dev/sda7 mounted on /home with fstype ext3 [stats] ( 1 ) ( 2 ) (3 ) ( 4 ) .EE .in .IP Поля каждой строки: .RS 7 .TP 5 (1) Имя смонтированного устройства (или "nodevice", если нет соответствующего устройства). .TP (2) Точка монтирования в дереве файловой системы. .TP (3) Тип файловой системы. .TP (4) Необязательная статистика и информация о настройке. В настоящее время (Linux версии 2.6.26), в этом поле доступна только информация об экспортируемых файловых системах NFS. .RE .IP Данный файл доступен на чтение только владельцу процесса. .TP \fI/proc/\fPpid\fI/net\fP (начиная с Linux 2.6.25) Смотрите описание \fI/proc/net\fP. .TP \fI/proc/\fPpid\fI/ns/\fP (начиная с Linux 3.0) .\" See commit 6b4e306aa3dc94a0545eb9279475b1ab6209a31f В этом подкаталоге содержится по одной записи на каждое пространство имён, для которых в \fBsetns\fP(2) есть поддержка изменений. Дополнительную информацию смотрите в \fBnamespaces\fP(7). .TP \fI/proc/\fPpid\fI/numa_maps\fP (начиная с Linux 2.6.14) Смотрите \fBnuma\fP(7). .TP \fI/proc/\fPpid\fI/oom_adj\fP (начиная с Linux 2.6.11) Этот файл может использоваться для подгонки оценки, используемой при выборе процесса, который нужно завершить при нехватке памяти (OOM). Ядро использует это значение в операции побитового сдвига значения \fIoom_score\fP у процесса: допустимые находятся в диапазоне от \-16 до +15, плюс специальное значение \-17, которое отключает OOM\-завершение для этого процесса совсем. Положительная оценка увеличивает вероятность, что процесс будет завершён OOM\-killer; отрицательная оценка уменьшает вероятность. .IP The default value for this file is 0; a new process inherits its parent's \fIoom_adj\fP setting. A process must be privileged (\fBCAP_SYS_RESOURCE\fP) to update this file, although a process can always increase its own \fIoom_adj\fP setting (since Linux 2.6.20). .IP Since Linux 2.6.36, use of this file is deprecated in favor of \fI/proc/\fPpid\fI/oom_score_adj\fP, and finally removed in Linux 3.7. .TP \fI/proc/\fPpid\fI/oom_score\fP (начиная с Linux 2.6.11) .\" See mm/oom_kill.c::badness() before Linux 2.6.36 sources .\" See mm/oom_kill.c::oom_badness() after Linux 2.6.36 .\" commit a63d83f427fbce97a6cea0db2e64b0eb8435cd10 .\" See mm/oom_kill.c::badness() before Linux 2.6.36 sources .\" See mm/oom_kill.c::oom_badness() after Linux 2.6.36 .\" commit a63d83f427fbce97a6cea0db2e64b0eb8435cd10 Этот файл содержит текущую оценку, которую ядро назначило процессу, учитывающуюся при избрании процесса OOM\-killer. Более высокая оценка означает, что у процесса есть больше шансов быть выбранным OOM\-killer. Основой оценки является количество памяти используемой процессом и различные увеличивающие (+) и уменьшающие (\-) факторы: .RS .IP \[bu] 3 .\" More precisely, if it has CAP_SYS_ADMIN or (pre 2.6.36) CAP_SYS_RESOURCE считается ли процесс привилегированным (\-). .RE .IP Before Linux 2.6.36 the following factors were also used in the calculation of oom_score: .RS .IP \[bu] 3 создавал ли процесс много потомков с помощью \fBfork\fP(2) (+); .IP \[bu] долго ли работал процесс, или использовал много процессорного времени (\-); .IP \[bu] имеет ли процесс низкое значение уступчивости (nice) (т. е., > 0) (+); и .IP \[bu] .\" More precisely, if it has CAP_SYS_RAWIO обращается ли процесс к аппаратному обеспечению напрямую (\-). .RE .IP Значение \fIoom_score\fP также отражает подгонку смещения, указанную в \fIoom_score_adj\fP или \fIoom_adj\fP процесса. .TP \fI/proc/\fPpid\fI/oom_score_adj\fP (начиная с Linux 2.6.36) .\" Text taken from Linux 3.7 Documentation/filesystems/proc.txt Этот файл может использоваться для подгонки оценки вредности для выбора процесса, который нужно завершить при нехватке памяти. .IP Значение оценки вредности назначается каждой задаче\-кандидату от 0 (никогда не завершать) до 1000 (всегда завершать), которым определяется какой процесс будет выбран. Единицы примерно пропорциональны диапазону разрешённой памяти, которую может запросить процесс, на основе вычисления его текущей памяти и использованию подкачки.Например, если задача использует всю разрешённую память, то значение вредности будет равно 1000. Если процесс использует половину разрешённой памяти, то значение будет 500. .IP Есть дополнительный фактор, учитывающийся для вредности: процессам root даётся на 3% больше памяти, чем другим задачам. .IP Количество «разрешённой» памяти зависит от контекста, в котором был вызван OOM\-killer. Если он вызван в момент, когда при назначении памяти для выделенного cpuset задачи происходит исчерпание, то разрешённая память представляет набор mem, назначенных этому cpuset (смотрите \fBcpuset\fP(7)). Если это происходит при исчерпании узлов mempolicy, то разрешённая память представляет набор узлов mempolicy. Если это происходит при достижении лимита на память (или лимита подкачки), то разрешённой памятью считается настроенный лимит. Наконец, если это происходит при нехватке памяти во всей системе, то разрешённой памятью считаются все доступные для выделения ресурсы. .IP Значение \fIoom_score_adj\fP добавляется к значению вредности перед тем как оно будет использовано для определения завершаемой задачи. Диапазон разрешённых значений: от \-1000 (OOM_SCORE_ADJ_MIN) до +1000 (OOM_SCORE_ADJ_MAX). Это позволяет осуществлять контроль за настройкой OOM\-killing из пользовательского пространства, указывая самые ненужные задачи или полностью отключая OOM\-killing для самых важных. Самое минимальное значение, \-1000, эквивалентно полному отключению OOM\-killing для определённой задачи, так как оно снижает значение вредности до 0. .IP Следовательно, из пользовательского пространства очень просто определить количество памяти по каждой задаче. Например, установка значения \fIoom_score_adj\fP равным +500, примерно эквивалентна разрешению оставшимся задачам использовать общим в системы ресурсам, cpuset, mempolicy, или контроллеру памяти не менее 50% памяти. С другой стороны, значение \-500 было бы примерно эквивалентно отниманию 50% из разрешённой памяти задачи при подсчёте вредности задачи. .IP Для обратной совместимости с предыдущими версиями ядер значение в \fI/proc/\fPpid\fI/oom_adj\fP всё ещё может учитываться при подстройке значения вредности. Это значение линейно масштабируется с \fIoom_score_adj\fP. .IP Запись в \fI/proc/\fPpid\fI/oom_score_adj\fP или \fI/proc/\fPpid\fI/oom_adj\fP изменит и значение в другом параметре с соответствующим масштабом. .IP Программа \fBchoom\fP(1) предоставляет интерфейс командной строки для подбора значения \fIoom_score_adj\fP в уже работающем процессе или новой запускаемой команде. .TP \fI/proc/\fPpid\fI/pagemap\fP (начиная с Linux 2.6.25) Через данный файл показываются отображения каждой виртуальной страницы процесса в физические страничный кадры и области подкачки. Каждой страницы соответствует одно 64\-битное число, биты которого имеют следующее значение: .RS .TP 63 Если установлен, то страница находится в оперативной памяти. .TP 62 Если установлен, то страница находится в пространстве подкачки. .TP 61 (начиная с Linux 3.5) Страница является отображённой файловой страницей или общей анонимной страницей. .TP 60\[en]58 (since Linux 3.11) .\" Not quite true; see commit 541c237c0923f567c9c4cabb8a81635baadc713f Ноль .TP 57 (начиная с Linux 5.14) If set, the page is write\-protected through \fBuserfaultfd\fP(2). .TP 56 (начиная с Linux 4.2) .\" commit 77bb499bb60f4b79cca7d139c8041662860fcf87 .\" commit 83b4b0bb635eee2b8e075062e4e008d1bc110ed7 Страница отображена монопольно. .TP 55 (начиная с Linux 3.11) PTE содержит бит soft\-dirty (смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/soft\-dirty.rst\fP). .TP 54\[en]0 If the page is present in RAM (bit 63), then these bits provide the page frame number, which can be used to index \fI/proc/kpageflags\fP and \fI/proc/kpagecount\fP. If the page is present in swap (bit 62), then bits 4\[en]0 give the swap type, and bits 54\[en]5 encode the swap offset. .RE .IP Before Linux 3.11, bits 60\[en]55 were used to encode the base\-2 log of the page size. .IP Для эффективного использования \fI/proc/\fPpid\fI/pagemap\fP обратитесь к \fI/proc/\fPpid\fI/maps\fP для определения какие области памяти действительно отображены и отбросьте не отображённые области. .IP Файл \fI/proc/\fPpid\fI/pagemap\fP существует только, если включён параметр настройки ядра \fBCONFIG_PROC_PAGE_MONITOR\fP. .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPpid\fI/personality\fP (начиная с Linux 2.6.28) .\" commit 478307230810d7e2a753ed220db9066dfdf88718 В файле (только для чтения) содержится домен выполнения процесса, заданный \fBpersonality\fP(2). Значение отображено в шестнадцатеричной системе счисления. .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_ATTACH_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPpid\fI/root\fP UNIX и Linux поддерживают идею о попроцессном корневом каталоге файловой системы, который может быть установлен системным вызовом \fBchroot\fP(2). Этот файл является символьной ссылкой, которая указывает на корневой каталог процесса и ведёт себя так же, как \fIexe\fP и \fIfd/*\fP. .IP 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: .IP .in +4n .EX $ \fBPS1=\[aq]sh1# \[aq] unshare \-Urnm\fP sh1# \fBmount \-t tmpfs tmpfs /etc\fP # Mount empty tmpfs at /etc sh1# \fBmount \-\-bind /usr /dev\fP # Mount /usr at /dev sh1# \fBecho $$\fP 27123 .EE .in .IP Во втором терминальном окне, в первоначальном пространстве имён монтирования, посмотрим содержимое соответствующего монтирования в первоначальном и новом пространстве имён: .IP .in +4n .EX $ \fBPS1=\[aq]sh2# \[aq] sudo sh\fP sh2# \fBls /etc | wc \-l\fP # In initial NS 309 sh2# \fBls /proc/27123/root/etc | wc \-l\fP # /etc in other NS 0 # The empty tmpfs dir sh2# \fBls /dev | wc \-l\fP # In initial NS 205 sh2# \fBls /proc/27123/root/dev | wc \-l\fP # /dev in other NS 11 # Actually bind # mounted to /usr sh2# \fBls /usr | wc \-l\fP # /usr in initial NS 11 .EE .in .IP .\" The following was still true as at kernel 2.6.13 В многонитевых процессах, содержимое символьной ссылки \fI/proc/\fPpid\fI/root\fP недоступно, если головная нить уже завершила работу (обычно с помощью вызова \fBpthread_exit\fP(3)). .IP Право разыменовывать или читать (\fBreadlink\fP(2)) эту символическую ссылку определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPpid\fI/projid_map\fP (начиная с Linux 3.7) .\" commit f76d207a66c3a53defea67e7d36c3eb1b7d6d61d См. \fBuser_namespaces\fP(7). .TP \fI/proc/\fPpid\fI/seccomp\fP (Linux 2.6.12 to Linux 2.6.22) Этот файл можно использовать для чтения и изменения настройки режима безопасных вычислений в процессе (seccomp). Он содержит значение 0, если процесс не в режиме seccomp, и 1, если процесс ограничен режимом seccomp (смотрите \fBseccomp\fP(2)). Запись 1 в этот файл безвозвратно помещает процесс в ограниченный режим seccomp (последующие попытки записать в файл завершаются ошибкой \fBEPERM\fP). .IP .\" FIXME Describe /proc/[pid]/sessionid .\" commit 1e0bd7550ea9cf474b1ad4c6ff5729a507f75fdc .\" CONFIG_AUDITSYSCALL .\" Added in Linux 2.6.25; read-only; only readable by real UID .\" .\" FIXME Describe /proc/[pid]/sched .\" Added in Linux 2.6.23 .\" CONFIG_SCHED_DEBUG, and additional fields if CONFIG_SCHEDSTATS .\" Displays various scheduling parameters .\" This file can be written, to reset stats .\" The set of fields exposed by this file have changed .\" significantly over time. .\" commit 43ae34cb4cd650d1eb4460a8253a8e747ba052ac .\" .\" FIXME Describe /proc/[pid]/schedstats and .\" /proc/[pid]/task/[tid]/schedstats .\" Added in Linux 2.6.9 .\" CONFIG_SCHEDSTATS В Linux 2.6.23 этот файл был убран и заменён операциями \fBPR_GET_SECCOMP\fP и \fBPR_SET_SECCOMP\fP вызова \fBprctl\fP(2) (а позднее \fBseccomp\fP(2) и полем \fISeccomp\fP в \fI/proc/\fPpid\fI/status\fP). .TP \fI/proc/\fPpid\fI/setgroups\fP (начиная с Linux 3.19) См. \fBuser_namespaces\fP(7). .TP \fI/proc/\fPpid\fI/smaps\fP (начиная с Linux 2.6.14) Этот файл содержит значение потребления памяти каждого отображения процесса. (команда \fBpmap\fP(1) выводит похожую информацию в пригодной для анализа форме). Для каждого отображения есть несколько строк в виде: .IP .in +4n .EX 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 .EE .in .IP Первые строки содержат ту же информацию, что и для отображения в \fI/proc/\fPpid\fI/maps\fP. Следующие строки содержат размер отображения, размер отображения, которое сейчас находится в RAM («Rss»), вклад этого отображения в пропорцию общих страниц процесса («Pss»), количество чистых и грязных общих страниц в отображении и количеств количество чистых и грязных частных страниц в отображении. В «Referenced» указано количество памяти помеченной, в данный момент, как ссылочная или доступная. В «Anonymous» указано количество памяти, которая не принадлежит никакому файлу. В «Swap» указано как много также использовалось было бы анонимной памяти, но она в подкачке. .IP Значение «KernelPageSize» (доступно, начиная с Linux 2.6.29) — размер страницы, используемый ядром при делении области виртуальной памяти. В большинстве случаев, размер совпадает с используемым в MMU. Однако, есть один контрпример в ядрах на PPC64, где в качестве базового размера страницы используется 64 КБ, но при этом по\-прежнему могут использоваться 4 КБ страницы для MMU на старых процессорах. Для различения двух атрибутов значением «MMUPageSize» (также доступно начиная с Linux 2.6.29) определяется размер страницы, используемой MMU. .IP Значение «Locked» указывает будет ли отображение заблокировано в памяти или нет. .IP Значение «ProtectionKey» (доступно, начиная с Linux 4.9 только на x86) содержит ключ защиты памяти (смотрите \fBpkeys\fP(7)), связанный с областью виртуальной памяти. Этот элемент появляется, только если ядро было собрано с параметром настройки \fBCONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS\fP (начиная с Linux 4.6). .IP Значение «VmFlags» (доступно, начиная с Linux 3.8) представляет флаги ядра, связанные с виртуальной областью памяти, в виде двухбуквенного кода: .RS .IP .TS l l l. 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) .TE .RE .IP Файл \fI/proc/\fPpid\fI/smaps\fP существует только, если включён параметр настройки ядра \fBCONFIG_PROC_PAGE_MONITOR\fP. .TP \fI/proc/\fPpid\fI/stack\fP (начиная с Linux 2.6.29) .\" 2ec220e27f5040aec1e88901c1b6ea3d135787ad Этот файл предоставляет символическую трассировку вызовов функций в стеке ядра для этого процесса. Этот файл есть в системе только, если ядро было собрано с параметром настройки \fBCONFIG_STACKTRACE\fP. .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_ATTACH_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPpid\fI/stat\fP Информация о состоянии процесса. Она используется командой \fBps\fP(1). Определяется в файле исходного кода ядра \fIfs/proc/array.c\fP. .IP Поля в соответствующем порядке с их надлежащими описателями формата \fBscanf\fP(3) перечислены ниже. Корректность информации в этих полях управляется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP | \fBPTRACE_MODE_NOAUDIT\fP (описана в \fBptrace\fP(2)). Если проверкой доступ запрещён, то значение поля показывается как 0. Затронутые поля отмечены [PT]. .RS .TP (1) \fIpid\fP \ %d .br Идентификатор процесса. .TP (2) \fIcomm\fP \ %s The filename of the executable, in parentheses. Strings longer than \fBTASK_COMM_LEN\fP (16) characters (including the terminating null byte) are silently truncated. This is visible whether or not the executable is swapped out. .TP (3) \fIstate\fP \ %c Один из следующих символов, описывающих состояние процесса: .RS .TP R Выполняется .TP S Спит, ожидая прерывания .TP D Ожидает в сне, непрерываемом диском .TP З Зомби .TP Т Остановлен (по сигналу) или остановлен из\-за трассировки (до Linux 2.6.33) .TP t .\" commit 44d90df6b757c59651ddd55f1a84f28132b50d29 Остановлен из\-за трассировки (после Linux 2.6.33) .TP W Происходит замещение страниц (только до Linux 2.6.0) .TP X Мёртв (с Linux 2.6.0) .TP x .\" commit 44d90df6b757c59651ddd55f1a84f28132b50d29 .\" commit 74e37200de8e9c4e09b70c21c3f13c2071e77457 Мёртв (только в Linux 2.6.33 по 3.13) .TP K .\" commit 44d90df6b757c59651ddd55f1a84f28132b50d29 .\" commit 74e37200de8e9c4e09b70c21c3f13c2071e77457 Пробудился, чтобы умереть (только в Linux 2.6.33 по 3.13) .TP W .\" commit 44d90df6b757c59651ddd55f1a84f28132b50d29 .\" commit 74e37200de8e9c4e09b70c21c3f13c2071e77457 Пробуждается (только в Linux 2.6.33 по 3.13) .TP П .\" commit f2530dc71cf0822f90bb63ea4600caaef33a66bb .\" commit 74e37200de8e9c4e09b70c21c3f13c2071e77457 Припаркован (только в Linux 3.9 по 3.13) .TP I .\" commit 06eb61844d841d0032a9950ce7f8e783ee49c0d0 Idle (Linux 4.14 onward) .RE .TP (4) \fIppid\fP \ %d Идентификатор (PID) родителя данного процесса. .TP (5) \fIpgrp\fP \ %d Идентификатор группы процесса. .TP (6) \fIsession\fP \ %d Идентификатор сеанса процесса. .TP (7) \fItty_nr\fP \ %d Управляющий терминал процесса (младший номер устройства определяется сочетанием бит: c 31 по 20 и с 7 по 0; старший номер устройства расположен в битах с 15 по 8). .TP (8) \fItpgid\fP \ %d .\" This field and following, up to and including wchan added 0.99.1 Идентификатор группы процесса, которая в настоящий момент владеет управляющим терминалом, к которому подключён данный процесс. .TP (9) \fIflags\fP \ %u Слово флагов процесса в ядре. Назначение бит определено макросами PF_* в файле \fIinclude/linux/sched.h\fP исходного ядра Linux. Смысл бит зависит от версии ядра. .IP Формат данного поля был %lu до Linux 2.6. .TP (10) \fIminflt\fP \ %lu Количество незначительных промахов процесса, которые не потребовали загрузки страницы памяти с диска. .TP (11) \fIcminflt\fP \ %lu Количество незначительных промахов процесса, которые возникли при ожидании окончания работы процессов\-потомков. .TP (12) \fImajflt\fP \ %lu Количество значительных промахов процесса, которые потребовали загрузки страницы памяти с диска. .TP (13) \fIcmajflt\fP \ %lu Количество значительных промахов процесса, которые возникли при ожидании окончания работы процессов\-потомков. .TP (14) \fIutime\fP \ %lu Количество времени, которое было запланировано для работы процесса в пользовательском режиме, измеряется в тиках (поделённое на \fIsysconf(_SC_CLK_TCK)\fP). Сюда включено гостевое время, \fIguest_time\fP (время, потраченное на работу виртуального ЦП, см. далее), так что приложения, которые не учитывают гостевое поле, не потеряют его при вычислениях. .TP (15) \fIstime\fP \ %lu Количество времени, которое было запланировано для работы процесса в режиме ядра, измеряется в тиках (поделённое на \fIsysconf(_SC_CLK_TCK)\fP). .TP (16) \fIcutime\fP \ %ld Количество времени, которое было запланировано для работы процесса в пользовательском режиме для ожидания окончания работы процессов\-потомков, измеряется в тиках (поделённое на \fIsysconf(_SC_CLK_TCK)\fP (см). также \fBtimes\fP(2)). Сюда включено гостевое время, \fIcguest_time\fP (время, потраченное на работу виртуального ЦП, см. далее). .TP (17) \fIcstime\fP \ %ld Количество времени, которое было запланировано для работы процесса в режиме ядра для ожидания окончания работы процессов\-потомков, измеряется в тиках (поделённое на \fIsysconf(_SC_CLK_TCK)\fP). .TP (18) \fIpriority\fP \ %ld (Объяснение относится к Linux 2.6) Для процессов, работающих согласно политике планирования в реальном времени (\fIpolicy\fP далее; см. \fBsched_setscheduler\fP(2)), это значение задаёт приоритет при планировании за вычетом 1; то есть число в диапазоне от \-2 до \-100 соответствует приоритетам реального времени от 1 до 99. Для процессов, работающих без политики планирования в реальном времени, это не изменённое значение любезности (\fBsetpriority\fP(2)) в том же виде в каком оно представлено в ядре. Ядро хранит значения любезности в виде чисел в диапазоне от 0 (высокое) до 39 (низкое), что соответствует диапазону пользователя от \-20 до 19. .IP .\" And back in Linux 1.2 days things were different again. До Linux 2.6 это была пересчитанная величина на основе весов планировщика для определённого процесса. .TP (19) \fInice\fP \ %ld .\" Back in Linux 1.2 days things were different. .\" .TP .\" \fIcounter\fP %ld .\" The current maximum size in jiffies of the process's next timeslice, .\" or what is currently left of its current timeslice, if it is the .\" currently running process. .\" .TP .\" \fItimeout\fP %u .\" The time in jiffies of the process's next timeout. .\" timeout was removed sometime around 2.1/2.2 Значение любезности (смотрите \fBsetpriority\fP(2)) задаётся числом в диапазоне от 19(низкий приоритет) до \-20 (высокий приоритет). .TP (20) \fInum_threads\fP \ %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. .TP (21) \fIitrealvalue\fP \ %ld The time in jiffies before the next \fBSIGALRM\fP 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. .TP (22) \fIstarttime\fP \ %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 \fIsysconf(_SC_CLK_TCK)\fP). .IP Формат данного поля был %lu до Linux 2.6. .TP (23) \fIvsize\fP \ %lu Размер виртуальной памяти в байтах. .TP (24) \fIrss\fP \ %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 \fI/proc/\fPpid\fI/statm\fP below. .TP (25) \fIrsslim\fP \ %lu Текущее мягкое ограничение rss процесса в байтах; смотрите описание \fBRLIMIT_RSS\fP в \fBgetrlimit\fP(2). .TP (26) \fIstartcode\fP \ %lu \ [PT] Адрес начала сегмента исполняемого кода программы. .TP (27) \fIendcode\fP \ %lu \ [PT] Адрес конца сегмента исполняемого кода программы. .TP (28) \fIstartstack\fP \ %lu \ [PT] Адрес начала (то есть низ) стека. .TP (29) \fIkstkesp\fP \ %lu \ [PT] Текущее значение ESP (указателя стека) процесса, хранящееся в странице стека ядра. .TP (30) \fIkstkeip\fP \ %lu \ [PT] Текущее значение EIP (указатель инструкций). .TP (31) \fIsignal\fP \ %lu Карта ожидающих сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте \fI/proc/\fPpid\fI/status\fP. .TP (32) \fIblocked\fP \ %lu Карта блокированных сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте \fI/proc/\fPpid\fI/status\fP. .TP (33) \fIsigignore\fP \ %lu Карта игнорированных сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте \fI/proc/\fPpid\fI/status\fP. .TP (34) \fIsigcatch\fP \ %lu Карта перехваченных сигналов, отображается как число в десятичной системе счисления. Устарело, так как не предоставляет информации о сигналах реального времени; вместо неё используйте \fI/proc/\fPpid\fI/status\fP. .TP (35) \fIwchan\fP \ %lu \ [PT] Это «канал», в котором ожидает процесс. Он является адресом расположения в ядре, где спит процесс. Соответствующее символическое имя можно найти в \fI/proc/\fPpid\fI/wchan\fP. .TP (36) \fInswap\fP \ %lu .\" nswap was added in Linux 2.0 () Количество страниц в подкачке (не сопровождается). .TP (37) \fIcnswap\fP \ %lu .\" cnswap was added in Linux 2.0 () Суммарное значение \fInswap\fP для процессов\-потомков (не сопровождается). .TP (38) \fIexit_signal\fP \ %d \ (since Linux 2.1.22) Сигнал, который будет послан родителю, когда процесс завершит работу. .TP (39) \fIprocessor\fP \ %d \ (начиная с Linux 2.2.8) Номер процессора, на котором последний раз выполнялся процесс. .TP (40) \fIrt_priority\fP \ %u \ (начиная с Linux 2.5.19) Приоритет выполнения в реальном времени, число из диапазона от 1 до 99 для процессов запланированных выполняться согласно политике реального времени или 0 для процессов, выполняющихся не в реальном времени (см. \fBsched_setscheduler\fP(2)). .TP (41) \fIpolicy\fP \ %u \ (начиная с Linux 2.5.19) Политика планирования (смотрите \fBsched_setscheduler\fP(2)). Декодируется с помощью констант SCHED_* из \fIlinux/sched.h\fP. .IP Формат данного поля был %lu до Linux 2.6.22. .TP (42) \fIdelayacct_blkio_ticks\fP \ %llu \ (начиная с Linux 2.6.18) Суммарная задержка блочного ввода\-вывода, измеряется в тиках (сотых долях секунды). .TP (43) \fIguest_time\fP \ %lu \ (начиная с Linux 2.6.24) Гостевое время процесса (время, потраченное на работу виртуального ЦП гостевой операционной системы), измеряется в тиках (поделённых на \fIsysconf(_SC_CLK_TCK)\fP). .TP (44) \fIcguest_time\fP \ %ld \ (начиная с Linux 2.6.24) Гостевое время потомка процесса, измеряется в тиках (поделённых на \fIsysconf(_SC_CLK_TCK)\fP). .TP (45) \fIstart_data\fP \ %lu \ (начиная с Linux 3.3) \ [PT] .\" commit b3f7f573a20081910e34e99cbc91831f4f02f1ff Адрес, выше которого располагаются инициализированные и не инициализированные (BSS) данные. .TP (46) \fIend_data\fP \ %lu \ (начиная с Linux 3.3) \ [PT] .\" commit b3f7f573a20081910e34e99cbc91831f4f02f1ff Адрес, ниже которого располагаются инициализированные и не инициализированные (BSS) данные. .TP (47) \fIstart_brk\fP \ %lu \ (начиная с Linux 3.3) \ [PT] .\" commit b3f7f573a20081910e34e99cbc91831f4f02f1ff Адрес, выше которого программа может расширять кучу с помощью \fBbrk\fP(2). .TP (48) \fIarg_start\fP \ %lu \ (начиная с Linux 3.5) \ [PT] .\" commit 5b172087f99189416d5f47fd7ab5e6fb762a9ba3 Адрес, выше которого располагаются аргументы командной строки программы (\fIargv\fP). .TP (49) \fIarg_end\fP \ %lu \ (начиная с Linux 3.5) \ [PT] .\" commit 5b172087f99189416d5f47fd7ab5e6fb762a9ba3 Адрес, ниже которого располагаются аргументы командной строки программы (\fIargv\fP). .TP (50) \fIenv_start\fP \ %lu \ (начиная с Linux 3.5) \ [PT] .\" commit 5b172087f99189416d5f47fd7ab5e6fb762a9ba3 Адрес, выше которого располагается окружение программы. .TP (51) \fIenv_end\fP \ %lu \ (начиная с Linux 3.5) \ [PT] .\" commit 5b172087f99189416d5f47fd7ab5e6fb762a9ba3 Адрес, ниже которого располагается окружение программы. .TP (52) \fIexit_code\fP \ %d \ (начиная с Linux 3.5) \ [PT] .\" commit 5b172087f99189416d5f47fd7ab5e6fb762a9ba3 Состояние завершения нити в виде, выдаваемом \fBwaitpid\fP(2). .RE .TP \fI/proc/\fPpid\fI/statm\fP Предоставляет информацию об использовании памяти, измеряется в страницах. Колонки: .IP .in +4n .EX .\" (not including libs; broken, includes data segment) .\" (including libs; broken, includes library text) size (1) total program size (same as VmSize in \fI/proc/\fPpid\fI/status\fP) resident (2) resident set size (inaccurate; same as VmRSS in \fI/proc/\fPpid\fI/status\fP) shared (3) number of resident shared pages (i.e., backed by a file) (inaccurate; same as RssFile+RssShmem in \fI/proc/\fPpid\fI/status\fP) 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) .EE .in .IP .\" See SPLIT_RSS_COUNTING in the kernel. .\" Inaccuracy is bounded by TASK_RSS_EVENTS_THRESH. Some of these values are inaccurate because of a kernel\-internal scalability optimization. If accurate values are required, use \fI/proc/\fPpid\fI/smaps\fP or \fI/proc/\fPpid\fI/smaps_rollup\fP instead, which are much slower but provide accurate, detailed information. .TP \fI/proc/\fPpid\fI/status\fP В основном, предоставляет информацию из \fI/proc/\fPpid\fI/stat\fP и \fI/proc/\fPpid\fI/statm\fP в более лёгком для прочтения человеком формате. Пример: .IP .in +4n .EX $\fB cat /proc/$$/status\fP 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 .EE .in .IP Поля: .RS .TP \fIName\fP Command run by this process. Strings longer than \fBTASK_COMM_LEN\fP (16) characters (including the terminating null byte) are silently truncated. .TP \fIUmask\fP umask процесса, выражается восьмеричным числом с начальным нулём; смотрите \fBumask\fP(2) (начиная с Linux 4.7). .TP \fIState\fP Текущее состояние процесса. Может быть "R (работает)", "S (спит)", "D (спит на диске)", "T (остановлен)", "t (остановлен трассировкой)", "Z (зомби)" или "X (завершён)". .TP \fITgid\fP Групповой ID нити (т.е., ID процесса). .TP \fINgid\fP идентификатор группы NUMA (0, если нет; начиная с Linux 3.13). .TP \fIPid\fP ID нити (см. \fBgettid\fP(2)). .TP \fIPPid\fP PID родительского процесса. .TP \fITracerPid\fP PID процесса, который выполняет трассировку данного процесса (0, если трассировки нет). .TP \fIUid\fP, \fIGid\fP Реальный, эффективный, сохранённый и используемый в файловой системе UID (GID). .TP \fIFDSize\fP Количество слотов файловых дескрипторов выделенных в данный момент. .TP \fIGroups\fP Список дополнительных групп. .TP \fINStgid\fP .\" commit e4bc33245124db69b74a6d853ac76c2976f472d5 Идентификатор группы нитей (т. е., PID) в каждом пространстве имён PID, в которых \fIpid\fP является членом. Крайняя левая запись показывает значение в соответствии с пространством имён PID процесса, для которого смонтирован этот procfs (или корневое пространство имён, если смонтировало ядро), далее идёт значение в последующих вложенных внутрь пространств имён (начиная с Linux 4.1). .TP \fINSpid\fP Идентификатор нити в каждом пространстве имён PID, в которых \fIpid\fP является членом. Поля представлены в том же порядке что и в \fINStgid\fP (начиная с Linux 4.1). .TP \fINSpgid\fP Идентификатор группы процессов в каждом пространстве имён PID, в которых \fIpid\fP является членом. Поля представлены в том же порядке что и в \fINStgid\fP (начиная с Linux 4.1). .TP \fINSsid\fP идентификатор сеанса пространства имён потомка в иерархии идентификаторов сеанса в каждом пространстве имён PID, в которых \fIpid\fP является членом. Поля представлены в том же порядке что и в \fINStgid\fP (начиная с Linux 4.1). .TP \fIVmPeak\fP Пик размера виртуальной памяти. .TP \fIVmSize\fP Размер виртуальной памяти. .TP \fIVmLck\fP Размер заблокированной памяти (смотрите \fBmlock\fP(2)). .TP \fIVmPin\fP .\" commit bc3e53f682d93df677dbd5006a404722b3adfe18 Размер закреплённой памяти (начиная с Linux 3.2). Эти страницы не могут быть перемещены, так как для чего\-то требуется прямой доступ к физической памяти. .TP \fIVmHWM\fP Peak resident set size ("high water mark"). This value is inaccurate; see \fI/proc/\fPpid\fI/statm\fP above. .TP \fIVmRSS\fP Resident set size. Note that the value here is the sum of \fIRssAnon\fP, \fIRssFile\fP, and \fIRssShmem\fP. This value is inaccurate; see \fI/proc/\fPpid\fI/statm\fP above. .TP \fIRssAnon\fP .\" commit bf9683d6990589390b5178dafe8fd06808869293 Size of resident anonymous memory. (since Linux 4.5). This value is inaccurate; see \fI/proc/\fPpid\fI/statm\fP above. .TP \fIRssFile\fP .\" commit bf9683d6990589390b5178dafe8fd06808869293 Size of resident file mappings. (since Linux 4.5). This value is inaccurate; see \fI/proc/\fPpid\fI/statm\fP above. .TP \fIRssShmem\fP .\" commit bf9683d6990589390b5178dafe8fd06808869293 Размер общей резидентной памяти (включая общую память System V, отображения из \fBtmpfs\fP(5) и общие анонимные отображения) (начиная с Linux 4.5). .TP \fIVmData\fP, \fIVmStk\fP, \fIVmExe\fP Size of data, stack, and text segments. This value is inaccurate; see \fI/proc/\fPpid\fI/statm\fP above. .TP \fIVmLib\fP Размер кода общей библиотеки. .TP \fIVmPTE\fP Размер элементов страничной таблицы (начиная с Linux 2.6.10). .TP \fIVmPMD\fP .\" commit dc6c9a35b66b520cf67e05d8ca60ebecad3b0479 Размер страничных таблиц второго уровня (добавлено в Linux 4.0; удалено в Linux 4.15). .TP \fIVmSwap\fP .\" commit b084d4353ff99d824d3bc5a5c2c22c70b1fba722 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 \fI/proc/\fPpid\fI/statm\fP above. .TP \fIHugetlbPages\fP .\" commit 5d317b2b6536592a9b51fe65faed43d65ca9158e Размер частей памяти hugetlb (начиная с Linux 4.4). .TP \fICoreDumping\fP .\" commit c643401218be0f4ab3522e0c0a63016596d6e9ca Содержит значение 1, если процесс выполняет создание дампа, и 0, если нет (начиная с Linux 4.15). Это можно использовать для слежения за процессом, чтобы случайно не завершить процесс, который выполняет дамп, что приведёт к повреждению файла дампа. .TP \fIThreads\fP Количество нитей в процессе, содержащем эту нить. .TP \fISigQ\fP В этом поле содержится два числа, разделённых косой чертой, которые относятся к сигналам, имеющимся в очереди для реального пользовательского ID этого процесса. Первое число показывает текущее количество сигналов в очереди для реального пользовательского ID, а второе — ограничитель ресурса на количество сигналов в очереди для этого процесса (смотрите описание \fBRLIMIT_SIGPENDING\fP в \fBgetrlimit\fP(2)). .TP \fISigPnd\fP, \fIShdPnd\fP Маска (шестнадцатеричное число) сигналов, ждущих обработки нитью и всем процессом (смотрите \fBpthreads\fP(7) и \fBsignal\fP(7)). .TP \fISigBlk\fP, \fISigIgn\fP, \fISigCgt\fP Маски (шестнадцатеричное число), отражающие блокированные, игнорируемые и перехваченные сигналы (смотрите \fBsignal\fP(7)). .TP \fICapInh\fP, \fICapPrm\fP, \fICapEff\fP Маски (шестнадцатеричное число) мандатов, включённые в наследуемый, разрешающий и эффективный наборы (смотрите \fBcapabilities\fP(7)). .TP \fICapBnd\fP Ограничивающий набор мандатов, выраженный шестнадцатеричным числом (начиная с Linux 2.6.26, смотрите \fBcapabilities\fP(7)). .TP \fICapAmb\fP Набор наружных мандатов, выраженный шестнадцатеричным числом (начиная с Linux 4.3, смотрите \fBcapabilities\fP(7)). .TP \fINoNewPrivs\fP .\" commit af884cd4a5ae62fcf5e321fecf0ec1014730353d Значение бита \fIno_new_privs\fP (начиная с Linux 4.10, смотрите \fBprctl\fP(2)). .TP \fISeccomp\fP .\" commit 2f4b3bf6b2318cfaa177ec5a802f4d8d6afbd816 Процесс в режиме seccomp (начиная с Linux 3.8, смотрите \fBseccomp\fP(2)). Значение 0 означает \fBSECCOMP_MODE_DISABLED\fP; 1 — \fBSECCOMP_MODE_STRICT\fP; 2 — \fBSECCOMP_MODE_FILTER\fP. Это поле существует только, если ядро собрано с включённым параметром сборки ядра \fBCONFIG_SECCOMP\fP. .TP \fISpeculation_Store_Bypass\fP .\" commit fae1fa0fc6cca8beee3ab8ed71d54f9a78fa3f64 Состояние ослабления нежелательной спекулятовности (начиная с Linux 4.17, смотрите \fBprctl\fP(2)). .TP \fICpus_allowed\fP Шестнадцатеричная маска процессоров, на которых может выполняться процесс (начиная с Linux 2.6.24, смотрите \fBcpuset\fP(7)). .TP \fICpus_allowed_list\fP Тоже что предыдущий, но в "формате списка" (начиная с Linux 2.6.26, см. \fBcpuset\fP(7)). .TP \fIMems_allowed\fP Маска узлов памяти, разрешённых для этого процесса (начиная с Linux 2.6.24, см. \fBcpuset\fP(7)). .TP \fIMems_allowed_list\fP Тоже что предыдущий, но в "формате списка" (начиная с Linux 2.6.26, см. \fBcpuset\fP(7)). .TP \fIvoluntary_ctxt_switches\fP, \fInonvoluntary_ctxt_switches\fP Количество намеренных и непреднамеренных переключений контекста (начиная с Linux 2.6.23). .RE .TP \fI/proc/\fPpid\fI/syscall\fP (начиная с Linux 2.6.27) .\" commit ebcb67341fee34061430f3367f2e507e52ee051b Данный файл отражает аргументные регистры и номер системного вызова, который выполняется процессом; далее указаны значения регистров указателя стека и программного счётчика. Хотя большинство системных вызовов использует только несколько регистров, видны значения всех шести аргументных регистров. .IP Если процесс заблокирован не системным вызовом, то в файле содержится \-1 на месте номера системного вызова, затем указаны только значения указателя стека и программного счётчика. Если процесс не заблокирован, то файл содержит строку «running». .IP Данный файл доступен только, если ядро собрано с параметром \fBCONFIG_HAVE_ARCH_TRACEHOOK\fP. .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_ATTACH_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPpid\fI/task\fP (начиная с Linux 2.6.0) .\" Precisely: Linux 2.6.0-test6 В этом каталоге содержатся подкаталоги, под одному на нить процесса. Имя подкаталога задаётся числом, которое является ID (\fItid\fP) нити (смотрите \fBgettid\fP(2)). .IP .\" in particular: "children" :/ Within each of these subdirectories, there is a set of files with the same names and contents as under the \fI/proc/\fPpid directories. For attributes that are shared by all threads, the contents for each of the files under the \fItask/\fPtid subdirectories will be the same as in the corresponding file in the parent \fI/proc/\fPpid directory (e.g., in a multithreaded process, all of the \fItask/\fPtid\fI/cwd\fP files will have the same value as the \fI/proc/\fPpid\fI/cwd\fP 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 \fItask/\fPtid may have different values (e.g., various fields in each of the \fItask/\fPtid\fI/status\fP files may be different for each thread), or they might not exist in \fI/proc/\fPpid at all. .IP .\" The following was still true as at kernel 2.6.13 В многонитевых процессах, содержимое каталога \fI/proc/\fPpid\fI/task\fP недоступно, если главная нить уже завершила работу (обычно при помощи вызова \fBpthread_exit\fP(3)). .TP \fI/proc/\fPpid\fI/task/\fPtid\fI/children\fP (начиная с Linux 3.5) .\" commit 818411616baf46ceba0cff6f05af3a9b294734f7 Разделённый пробелами список задач\-потомков данной задачи. Каждая задача\-потомок представлена своим TID. .IP .\" see comments in get_children_pid() in fs/proc/array.c Этот параметр предназначен для использования системой восстановления из контрольных точек (CRIU) и предоставляет достоверный список потомков, только если дочерние процессы остановлены или заморожены. Он не работает правильно, если потомки целевой задачи завершаются во время чтения файла! Завершающиеся потомки могут привести к пропаже из списка не завершившихся потомков. Это делает данный интерфейс ещё более ненадёжным чем классический на основе PID, если просматриваемая задача и её потомки не заморожены, и вероятно, в большинстве программ лучше не использовать данный интерфейс. .IP .\" commit 2e13ba54a2682eea24918b87ad3edf70c2cf085b До Linux 4.2 наличие этого файла управлялось параметром настройки ядра \fBCONFIG_CHECKPOINT_RESTORE\fP. Начиная с Linux 4.2, он управляется параметром \fBCONFIG_PROC_CHILDREN\fP. .TP \fI/proc/\fPpid\fI/timers\fP (начиная с Linux 3.10) .\" commit 5ed67f05f66c41e39880a6d61358438a25f9fee5 .\" commit 48f6a7a511ef8823fdff39afee0320092d43a8a0 Список таймеров POSIX этого процесса. Каждый таймер описывается в строке, которая начинается со строки «ID:». Пример: .IP .in +4n .EX ID: 1 signal: 60/00007fff86e452a8 notify: signal/pid.2634 ClockID: 0 ID: 0 signal: 60/00007fff86e452a8 notify: signal/pid.2634 ClockID: 1 .EE .in .IP Строки каждого таймера имеют следующее значение: .RS .TP \fIID\fP Идентификатор таймера. Это не тоже самое, что возвращает \fBtimer_create\fP(2); это внутренний идентификатор в ядре, который доступен в поле \fIsi_timerid\fP структуры \fIsiginfo_t\fP (смотрите \fBsigaction\fP(2)). .TP \fIsignal\fP Номер сигнала, который данный таймер использует для доставки уведомлений, затем косая черта, а затем показано значение \fIsigev_value\fP, передаваемое в обработчик сигнала. Актуален только для таймеров, которые выполняют уведомления посредством сигнала. .TP \fInotify\fP Часть перед косой чертой определяет механизм, который данный таймер использует для доставки уведомлений, и может быть одним из «thread», «signal» или «none». Сразу за косой чертой может быть строка «tid» для таймеров с уведомлением \fBSIGEV_THREAD_ID\fP, или «pid» для таймеров, которые уведомляют другими механизмами. Далее после «.» указан PID процесса (или ID ядерной нити для нити), которому будет доставлен сигнал, если таймер доставляет уведомления через сигнал. .TP \fIClockID\fP В этом поле задаются часы, которые таймер использует для измерения времени. Для большинства часов это номер, который совпадает с одной из констант пользовательского окружения \fBCLOCK_*\fP, располагающихся в \fI\fP. Таймеры \fBCLOCK_PROCESS_CPUTIME_ID\fP показываются со значением \-6 в этом поле. Таймеры \fBCLOCK_THREAD_CPUTIME_ID\fP показываются со значением \-2 в этом поле. .RE .IP Данный файл доступен только, если ядро было собрано с параметром \fBCONFIG_CHECKPOINT_RESTORE\fP. .TP \fI/proc/\fPpid\fI/timerslack_ns\fP (начиная с Linux 4.6) .\" commit da8b44d5a9f8bf26da637b7336508ca534d6b319 .\" commit 5de23d435e88996b1efe0e2cebe242074ce67c9e Данный файл отражает значение (в наносекундах) «текущего» допуска таймера процесса. Файл доступен на запись, что позволяет изменить значение допуска таймера процесса. Запись 0 сбрасывает «текущий» допуск таймера в значение допуска таймера «по умолчанию». Дополнительную информацию смотрите в описании \fBPR_SET_TIMERSLACK\fP из \fBprctl\fP(2). .IP .\" commit 7abbaf94049914f074306d960b0f968ffe52e59f Первоначально, права доступа к этому файлу определялись проверкой режима доступа ptrace \fBPTRACE_MODE_ATTACH_FSCREDS\fP (смотрите \fBptrace\fP(2)). Однако это впоследствии посчитали слишком строгим требованием (и имеющим побочный эффект, выражающимся в требовании от процесса иметь мандат \fBCAP_SYS_PTRACE\fP, который также позволяет ему просматривать и изменять всю память процесса). Поэтому, начиная с Linux 4.9, для доступа к этому файлу требуется только мандат \fBCAP_SYS_NICE\fP (маломощный). .TP \fI/proc/\fPpid\fI/uid_map\fP (начиная с Linux 3.5) См. \fBuser_namespaces\fP(7). .TP \fI/proc/\fPpid\fI/wchan\fP (начиная с Linux 2.6.0) Символическое имя, соответствующее расположению, где процесс спит в ядре. .IP Право доступа к этому файлу определяется проверкой режима доступа ptrace \fBPTRACE_MODE_READ_FSCREDS\fP; смотрите \fBptrace\fP(2). .TP \fI/proc/\fPtid Подкаталог с числовым названием для каждой выполняющейся нити, которая не является лидером группы нитей (т. е., нить, чей ID нити не совпадает с ID её процесса); подкаталог называется по ID нити. В подкаталоге содержатся файлы и подкаталоги с информацией о нити с ID нити \fItid\fP. Содержимое этих каталогов совпадает с соответствующими каталогами \fI/proc/\fPpid\fI/task/\fPtid. .IP Подкаталоги \fI/proc/\fPtid \fIневидимы\fP при обходе \fI/proc\fP с помощью \fBgetdents\fP(2) (и поэтому \fIневидимы\fP программам, подобным \fBls\fP(1), отображающим содержимое \fI/proc\fP). Однако пути к этим каталогам видимы (т. е., их можно использовать в качестве параметров) системным вызовам, работающими с этими путями. .TP \fI/proc/apm\fP Версия системы расширенного управления питанием и информация о батарее, если ядро собрано с поддержкой \fBCONFIG_APM\fP. .TP \fI/proc/buddyinfo\fP В этом файле содержится информация, которую можно использовать при диагностике проблем с фрагментацией памяти. Каждая строка начинается с идентификатора узла и имени зоны, которые вместе определяют область памяти. Далее следует количество доступных блоков (chunks) определённого порядка, в котором разделялись зоны. Размер в байтах порядка задаётся формулой: .IP .in +4n .EX (2\[ha]order)\ *\ PAGE_SIZE .EE .in .IP Алгоритм двоичных близнецов (binary buddy allocator) внутри ядра разделит один блок на несколько меньшего размера (например, пополам) или объединит два рядом стоящих блока в один большего размера (например удвоенного), чтобы выполнить запрос выделения и подсчёта фрагментации памяти. Порядок совпадает с номером столбца, при начале отсчёта от нуля. .IP Пример для системы x86\-64: .RS -12 .EX 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 .EE .RE .IP В этом примере показан один узел, содержащий три зоны и 11 блоков разного размера. Если размер страницы равен 4 КБ, то первая зона с именем \fIDMA\fP (в x86 — первые 16 МБ памяти) содержит 1 блок по 4 КБ (порядок 0) и 3 блока по 4 МБ (порядок 10). .IP Если памяти сильно фрагментирована, то счётчики блоков высшего порядка будут равны нулю и выделение больших непрерывных областей будет завершаться с ошибкой. .IP Дополнительную информацию о зонах смотрите \fI/proc/zoneinfo\fP. .TP \fI/proc/bus\fP Содержит подкаталоги для установленных шин. .TP \fI/proc/bus/pccard\fP Подкаталог для устройств PCMCIA, если ядро собрано с поддержкой \fBCONFIG_PCMCIA\fP. .TP \fI/proc/bus/pccard/drivers\fP .TP \fI/proc/bus/pci\fP Содержит различные подкаталоги шин и псевдо\-файлы, содержащие информацию о шинах PCI, установленных устройствах и драйверах устройств. Некоторые из этих файлов не являются текстовыми. .TP \fI/proc/bus/pci/devices\fP Информация о устройствах PCI. К ним можно получить доступ через \fBlspci\fP(8) и \fBsetpci\fP(8). .TP \fI/proc/cgroups\fP (начиная с Linux 2.6.24) Смотрите \fBcgroups\fP(7). .TP \fI/proc/cmdline\fP Arguments passed to the Linux kernel at boot time. Often done via a boot manager such as \fBlilo\fP(8) or \fBgrub\fP(8). Any arguments embedded in the kernel image or initramfs via \fBCONFIG_BOOT_CONFIG\fP will also be displayed. .TP \fI/proc/config.gz\fP (начиная с Linux 2.6) В этом файле представлены параметры настройки, которые использовались при сборке выполняющегося в данный момент ядра. Его формат одинаков с файлом \&\fI.config\fP, который создаётся после настройки ядра (с помощью \fImake xconfig\fP, \fImake config\fP и подобных команд). Содержимое файла сжато; для просмотра и поиска используйте \fBzcat\fP(1) и \fBzgrep\fP(1). Пока не внесены изменения в настройку ядра, содержимое \fI/proc/config.gz\fP и показываемого по команде файла одинаково: .IP .in +4n .EX cat /lib/modules/$(uname \-r)/build/.config .EE .in .IP Файл \fI/proc/config.gz\fP доступен только, если ядро собрано с поддержкой \fBCONFIG_IKCONFIG_PROC\fP. .TP \fI/proc/crypto\fP .\" commit 3b72c814a8e8cd638e1ba0da4dfce501e9dff5af A list of the ciphers provided by the kernel crypto API. For details, see the kernel \fILinux Kernel Crypto API\fP documentation available under the kernel source directory \fIDocumentation/crypto/\fP (or \fIDocumentation/DocBook\fP before Linux 4.10; the documentation can be built using a command such as \fImake htmldocs\fP in the root directory of the kernel source tree). .TP \fI/proc/cpuinfo\fP Это коллекция элементов, зависящих от процессора и системной архитектуры; для каждой поддерживаемой архитектуры список различен. Имеются только две общих записи: \fIprocessor\fP \(em обозначает номер процессора и \fIbogomips\fP\(em системная константа, которая высчитывается во время инициализации ядра. Для многопроцессорных машин информация предоставляется по каждому процессору. Команда \fBlscpu\fP(1) берёт информацию из этого файла. .TP \fI/proc/devices\fP Текстовый список старших (major) номеров устройств и групп устройств. Он может быть использован сценариями MAKEDEV для того, чтобы создать устройства, поддерживаемые ядром. .TP \fI/proc/diskstats\fP (начиная с Linux 2.5.69) This file contains disk I/O statistics for each disk device. See the Linux kernel source file \fIDocumentation/admin\-guide/iostats.rst\fP (or \fIDocumentation/iostats.txt\fP before Linux 5.3) for further information. .TP \fI/proc/dma\fP Список рабочих зарегистрированных каналов DMA (прямого доступа в память) \fIISA\fP. .TP \fI/proc/driver\fP Пустой подкаталог. .TP \fI/proc/execdomains\fP Used to list ABI personalities before Linux 4.1; now contains a constant string for userspace compatibility. .TP \fI/proc/fb\fP Информация о фрейм\-буфере, если ядро собрано с поддержкой \fBCONFIG_FB\fP. .TP \fI/proc/filesystems\fP Текстовый список файловых систем, которые поддерживаются ядром, а именно файловые системы, вкомпилированные в ядро или загруженные в данный момент модулями (смотрите также \fBfilesystems\fP(5)). Если файловая система помечена как «nodev», то это означает, что для неё не требуется монтировать блочное устройство (например, виртуальная и сетевая файловые системы). .IP В частности, этот файл может использоваться программой \fBmount\fP(8) для поиска нужной файловой системы, если она не указана при монтировании и её тип невозможно определить. При этом пробуются все файловые системы из этого файла (за исключением помеченных как «nodev»). .TP \fI/proc/fs\fP .\" FIXME Much more needs to be said about /proc/fs .\" Содержит подкаталоги, которые, в свою очередь, содержат файлы с информацией о (некоторых) смонтированных файловых системах. .TP \fI/proc/ide\fP Данный подкаталог существует в системах с шиной IDE. Для каждого канала IDE и подключенных устройств имеется отдельный каталог. Файлы каталога: .IP .in +4n .EX 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\[aq]s model number settings drive settings smart_thresholds IDE disk management thresholds (in hex) smart_values IDE disk management values (in hex) .EE .in .IP Утилита \fBhdparm\fP(8) предоставляет доступ к этой информации в дружественном формате. .TP \fI/proc/interrupts\fP Используется для записи количества прерываний по каждому процессору и по каждому устройству ввода\-вывода. Начиная с Linux 2.6.24 для архитектур i386\- и x86\-64 (по крайней мере), также включены внутренние прерывания системы (то есть, не связанные с устройством как таковым), такими как NMI (немаскируемые прерывания), LOC (прерывание локального таймера) и для многопроцессорных систем: TLB (прерывание сброса TLB), RES (прерывание перепланирования), CAL (прерывание вызова удалённой функции), и, возможно другие. Очень легко понять, так как записи в ASCII. .TP \fI/proc/iomem\fP Карта памяти ввода/вывода в Linux 2.4. .TP \fI/proc/ioports\fP Список зарегистрированных областей портов ввода\-вывода, которые используются в данный момент. .TP \fI/proc/kallsyms\fP (начиная с Linux 2.5.71) Содержит определения экспортируемых ядром символов, используемые инструментами \fBmodules\fP(X) для динамической компоновки и связывания загружаемых модулей. В Linux 2.5.47 и ранее был подобный файл \fIksyms\fP, но имел немного другой синтаксис. .TP \fI/proc/kcore\fP Этот файл отображает физическую память системы и хранится в формате ELF core. С помощью этого псевдо\-файла и ядра, из которого не убраны таблицы символов (\fI/usr/src/linux/vmlinux\fP), можно использовать GDB для проверки текущего состояния любых структур данных ядра. .IP Полная длина этого файла \(em это размер физической памяти (RAM) плюс 4\ КиБ. .TP \fI/proc/keys\fP (начиная с Linux 2.6.10) Смотрите \fBkeyrings\fP(7). .TP \fI/proc/key\-users\fP (начиная с Linux 2.6.10) Смотрите \fBkeyrings\fP(7). .TP \fI/proc/kmsg\fP Этот файл может быть использован вместо системного вызова \fBsyslog\fP(2) для чтения сообщений ядра. Процесс должен иметь привилегии суперпользователя, чтобы читать этот файл, причём делать это может только один процесс. Данный файл невозможно прочесть, если запущен процесс syslog, который использует системный вызов \fBsyslog\fP(2) для протоколирования сообщений ядра. .IP Информация из этого файла извлекается с помощью программы \fBdmesg\fP(1). .TP \fI/proc/kpagecgroup\fP (начиная с Linux 4.3) .\" commit 80ae2fdceba8313b0433f899bdd9c6c463291a17 В этом файле содержится 64\-битный номер иноды, относящийся к каждой странице памяти cgroup, проиндексированные по номеру страничного кадра (смотрите описание \fI/proc/\fPpid\fI/pagemap\fP). .IP Файл \fI/proc/kpagecgroup\fP существует только, если включён параметр настройки ядра \fBCONFIG_MEMCG\fP. .TP \fI/proc/kpagecount\fP (начиная с Linux 2.6.25) В этом файле содержится 64\-битный счётчик, который показывает сколько раз отображался каждый физический страничный кадр (physical page frame). Индексация счётчиков выполнена по номеру страничного кадра (смотрите описание \fI/proc/\fPpid\fI/pagemap\fP). .IP Файл \fI/proc/kpagecount\fP существует только, если включён параметр настройки ядра \fBCONFIG_PROC_PAGE_MONITOR\fP. .TP \fI/proc/kpageflags\fP (начиная с Linux 2.6.25) В этом файле содержится 64\-битная маска каждого физического страничного кадра (physical page frame); Индексация масок выполнена по номеру страничного кадра (смотрите описание \fI/proc/\fPpid\fI/pagemap\fP). Биты маски: .RS .IP .TS r l l l. 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) .\" KPF_BALLOON: commit 09316c09dde33aae14f34489d9e3d243ec0d5938 24 \- KPF_ZERO_PAGE (начиная с Linux 4.0) .\" KPF_ZERO_PAGE: commit 56873f43abdcd574b25105867a990f067747b2f4 25 \- KPF_IDLE (начиная с Linux 4.3) .\" KPF_IDLE: commit f074a8f49eb87cde95ac9d040ad5e7ea4f029738 26 \- KPF_PGTABLE (since Linux 4.18) .\" KPF_PGTABLE: commit 1d40a5ea01d53251c23c7be541d3f4a656cfc537 .TE .RE .IP .\" commit ad3bdefe877afb47480418fdb05ecd42842de65e .\" commit e07a4b9217d1e97d2f3a62b6b070efdc61212110 For further details on the meanings of these bits, see the kernel source file \fIDocumentation/admin\-guide/mm/pagemap.rst\fP. Before Linux 2.6.29, \fBKPF_WRITEBACK\fP, \fBKPF_RECLAIM\fP, \fBKPF_BUDDY\fP, and \fBKPF_LOCKED\fP did not report correctly. .IP Файл \fI/proc/kpageflags\fP существует только, если включён параметр настройки ядра \fBCONFIG_PROC_PAGE_MONITOR\fP. .TP \fI/proc/ksyms\fP (Linux 1.1.23\[en]2.5.47) Смотрите \fI/proc/kallsyms\fP. .TP \fI/proc/loadavg\fP Первые три поля в этом файле содержат параметры средней загрузки, которые предоставляют собой количество заданий в очереди выполнения (состояние R) или ожидают дискового ввода\-вывода (состояние D) в среднем за 1, 5 и 15 минут. Это то же самое, что и средняя загрузка, которую выдаёт \fBuptime\fP(1) и другие программы. Четвёртое поле состоит из двух чисел, разделённых косой чертой (/). Первое из них показывает количество исполняемых планируемых ядерных элементов в данный момент (процессы, нити). Значение после косой черты показывает количество планируемых ядерных элементов, существующих в системе. В пятом поле содержится PID процесса, который был создан системой последним. .TP \fI/proc/locks\fP Этот файл показывает текущие файловые блокировки (\fBflock\fP(2) и \fBfcntl\fP(2)) параметры (\fBfcntl\fP(2)). .IP Пример содержимого этого файла: .IP .in +4n .EX 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 .EE .in .IP Поля каждой строки имеют следующее назначение: .RS .IP [1] 5 Порядковая позиция блокировки в списке. .IP [2] Тип блокировки. Возможные значения: .RS .TP \fBFLOCK\fP Файловая блокировка BSD, созданная \fBflock\fP(2). .TP \fBOFDLCK\fP Блокировка открытого файлового описания (OFD), созданная \fBfcntl\fP(2). .TP \fBPOSIX\fP Блокировка байтового диапазона POSIX, созданная \fBfcntl\fP(2). .RE .IP [3] Здесь могут появляться следующие строки: .RS .TP \fBADVISORY\fP Консультативная блокировка. .TP \fBMANDATORY\fP Обязательная блокировка. .RE .IP [4] Тип блокировки. Возможные значения: .RS .TP \fBREAD\fP Блокировка POSIX или OFD на чтение или общая блокировка BSD. .TP \fBWRITE\fP Блокировка POSIX или OFD на запись или исключительная блокировка BSD. .RE .IP [5] PID процесса, которому принадлежит блокировка. .IP .\" commit 9d5b86ac13c573795525ecac6ed2db39ab23e2a8 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.) .IP [6] Три разделённых двоеточием значения: старший и младший идентификаторы устройства, содержащего файловую систему, в которой расположен заблокированный файл, и номер иноды заблокированного файла. .IP [7] Байтовое смещение первого байта блокировки. Для блокировок BSD это значение всегда равно 0. .IP [8] Байтовое смещение последнего байта блокировки. Значение \fBEOF\fP в этом поле означает, что блокировка распространяется до конца файла. Для блокировок BSD это значение всегда равно \fIEOF\fP. .RE .IP .\" commit d67fd44f697dff293d7cdc29af929241b669affe Начиная с Linux 4.9, список блокировок, показываемых в \fI/proc/locks\fP, фильтруется: показываются только блокировки процессов в пространстве имён PID (смотрите \fBpid_namespaces\fP(7)), для которых была смонтирована файловая система \fI/proc\fP (в начальном пространстве имён PID записи этого файла не фильтруются). .IP Команда \fBlslocks\fP(8) выводит больше информации о каждой блокировке. .TP \fI/proc/malloc\fP (только до Linux 2.2 включительно) .\" It looks like this only ever did something back in 1.0 days Данный файл существует только, если ядро собрано с поддержкой \fBCONFIG_DEBUG_MALLOC\fP. .TP \fI/proc/meminfo\fP Этот файл содержит статистику по использованию памяти системы. Он используется программой \fBfree\fP(1) для формирования отчёта о свободной и используемой памяти (как физической, так и подкачки), а также общей памяти и памяти под буферы, которую использует ядро. В каждой строке файла содержится имя параметра, двоеточие, значение параметра и необязательная единица измерения (например, «kB»). В списке далее описываются параметры и определитель формата, требуемый для чтения значения поля. За исключением замечаний, представленных ниже, все показанные поля имеются начиная с Linux 2.6.0. Некоторые поля появляются только, если ядро собрано с определёнными параметрами; это зависимости также показаны в списке. .RS .TP \fIMemTotal\fP %lu Общее количество используемой RAM (т.е. физической RAM минус несколько зарезервированных бит и исполняемый код ядра). .TP \fIMemFree\fP %lu Сумма \fILowFree\fP+\fIHighFree\fP. .TP \fIMemAvailable\fP %lu (начиная с Linux 3.14) Предполагаемое количество памяти, доступное для запуска новых приложений, без обращения к подкачке. .TP \fIBuffers\fP %lu Относительно временное хранилище сырых дисковых блоков, которое не должно быть очень велико (порядка 20 МБ). .TP \fICached\fP %lu Кэш в памяти для прочитанных дисковых файлов (страничный кэш). Не включает \fISwapCached\fP. .TP \fISwapCached\fP %lu Память, которая однажды попала в подкачку, выгрузилась обратно в память, но всё равно остаётся в файле подкачки (если нагрузка на память велика, эти страницы не придётся снова выгружать, так как они уже в файле подкачки — предотвращается ввод\-вывод). .TP \fIActive\fP %lu Память, которая часто использовалась и обычно не высвобождается без сильной необходимости. .TP \fIInactive\fP %lu Память, которая редко использовалась. Кандидат на высвобождение для других нужд. .TP \fIActive(anon)\fP %lu (начиная с Linux 2.6.28) [Будет описано.] .TP \fIInactive(anon)\fP %lu (начиная с Linux 2.6.28) [Будет описано.] .TP \fIActive(file)\fP %lu (начиная с Linux 2.6.28) [Будет описано.] .TP \fIInactive(file)\fP %lu (начиная с Linux 2.6.28) [Будет описано.] .TP \fIUnevictable\fP %lu (начиная с Linux 2.6.28) (From Linux 2.6.28 to Linux 2.6.30, \fBCONFIG_UNEVICTABLE_LRU\fP was required.) [To be documented.] .TP \fIMlocked\fP %lu (начиная с Linux 2.6.28) (From Linux 2.6.28 to Linux 2.6.30, \fBCONFIG_UNEVICTABLE_LRU\fP was required.) [To be documented.] .TP \fIHighTotal\fP %lu (Starting with Linux 2.6.19, \fBCONFIG_HIGHMEM\fP is required.) Total amount of highmem. Highmem is all memory above \[ti]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. .TP \fIHighFree\fP %lu (Начиная с Linux 2.6.19, требуется параметр \fBCONFIG_HIGHMEM\fP.) Количество свободной highmem. .TP \fILowTotal\fP %lu (Начиная с Linux 2.6.19, требуется параметр \fBCONFIG_HIGHMEM\fP.) Общее количество lowmem. Lowmem — это память, используемая для всего, что и highmem, но также доступна и для структур ядра. Среди прочего, выделяется для \fISlab\fP. Когда заканчивается lowmem происходят нехорошие вещи. .TP \fILowFree\fP %lu (Начиная с Linux 2.6.19, требуется параметр \fBCONFIG_HIGHMEM\fP.) Количество свободной lowmem. .TP \fIMmapCopy\fP %lu (начиная с Linux 2.6.29) (Требуется параметр \fBCONFIG_MMU\fP.) [Будет описано.] .TP \fISwapTotal\fP %lu Общее количество доступного пространства подкачки. .TP \fISwapFree\fP %lu Общее количество неиспользуемого пространства подкачки. .TP \fIDirty\fP %lu Память, которая ждёт записи обратно на диск. .TP \fIWriteback\fP %lu Память, которая переписывается обратно на диск. .TP \fIAnonPages\fP %lu (начиная с Linux 2.6.18) Не файловые фоновые (backed) страницы, отображённые в страничные таблицы пользовательского пространства. .TP \fIMapped\fP %lu Отображённые в память файлы (с помощью \fBmmap\fP(2)), например библиотеки. .TP \fIShmem\fP %lu (начиная с Linux 2.6.32) Объём памяти, использованной в файловых системах \fBtmpfs\fP(5). .TP \fIKReclaimable\fP %lu (начиная с Linux 4.20) Выделения ядра, которые оно будет пытаться отозвать при нехватки памяти. Включают \fISReclaimable\fP (смотрите ниже) и другие непосредственные выделения сокращателя (shrinker). .TP \fISlab\fP %lu Кэш ядерных структур данных (смотрите \fBslabinfo\fP(5)). .TP \fISReclaimable\fP %lu (начиная с Linux 2.6.19) Часть \fISlab\fP, которая может быть высвобождена, например кэши. .TP \fISUnreclaim\fP %lu (начиная с Linux 2.6.19) Часть \fISlab\fP, которая не может быть высвобождена при нехватке памяти. .TP \fIKernelStack\fP %lu (начиная с Linux 2.6.32) Количество памяти, выделенное под стеки ядра. .TP \fIPageTables\fP %lu (начиная с Linux 2.6.18) Количество памяти, выделенное под страничные таблицы на самом нижнем уровне. .TP \fIQuicklists\fP %lu (начиная с Linux 2.6.27) (Требуется параметр \fBCONFIG_QUICKLIST\fP.) [Будет описано.] .TP \fINFS_Unstable\fP %lu (начиная с Linux 2.6.18) Страницы NFS, полученные сервером, но ещё не записанные в стабильное хранилище. .TP \fIBounce\fP %lu (начиная с Linux 2.6.18) Память, используемая для блочного устройства «bounce buffers». .TP \fIWritebackTmp\fP %lu (начиная с Linux 2.6.26) Память, используемая FUSE для временных буферов обратной записи. .TP \fICommitLimit\fP %lu (начиная с Linux 2.6.10) Общее количество памяти, доступное в данный момент в системе для выделения, выражается в байтах. Данное ограничение соблюдается только, если включён жёсткий учёт перерасчёта (strict overcommit accounting) (режим 2 в \fI/proc/sys/vm/overcommit_memory\fP). Ограничение вычисляется по формуле, описанной в разделе про \fI/proc/sys/vm/overcommit_memory\fP. Подробности смотрите в файле исходного кода ядра \fIDocumentation/vm/overcommit\-accounting.rst\fP. .TP \fICommitted_AS\fP %lu Количество памяти, распределённое в системе в данный момент. Задействованная память (committed memory) — это сумма всей памяти, распределённая среди всех процессов, даже если она ими ещё не «используется». Для процесса, взявшего 1 ГБ памяти (например, с помощью \fBmalloc\fP(3)), но задействовавшего только 300 МБ этой памяти, будет показано что используются только 300 МБ, даже если ему отдано адресное пространство 1ГБ. .IP Этот 1 ГБ памяти «задействован» VM и может быть использован запросившим приложением в любое время. При включённом режиме жёсткого учёта перерасхода (режим 2 в \fI/proc/sys/vm/overcommit_memory\fP), запросы, которые превысили бы \fICommitLimit\fP (подробности выше), выполнены не будут. Это полезно, если нужно гарантировать, что процессы не завершатся из\-за нехватки памяти после того, как память им будет успешно выделена. .TP \fIVmallocTotal\fP %lu Общий размер области памяти vmalloc. .TP \fIVmallocUsed\fP %lu .\" commit a5ad88ce8c7fae7ddc72ee49a11a75aa837788e0 Размер используемой области vmalloc. Начиная с Linux 4.4 это поле не вычисляется и всегда равно 0. Смотрите \fI/proc/vmallocinfo\fP. .TP \fIVmallocChunk\fP %lu .\" commit a5ad88ce8c7fae7ddc72ee49a11a75aa837788e0 Самый большой свободный непрерывный блок области vmalloc. Начиная с Linux 4.4 это поле не вычисляется и всегда равно 0. Смотрите \fI/proc/vmallocinfo\fP. .TP \fIHardwareCorrupted\fP %lu (начиная с Linux 2.6.32) (Требуется параметр \fBCONFIG_MEMORY_FAILURE\fP.) [Будет описано.] .TP \fILazyFree\fP %lu (начиная с Linux 4.12) Отражает количество памяти, помеченной вызовом \fBmadvise\fP(2) \fBMADV_FREE\fP. .TP \fIAnonHugePages\fP %lu (начиная с Linux 2.6.38) (Требуется параметр \fBCONFIG_TRANSPARENT_HUGEPAGE\fP.) Не файловые фоновые огромные страницы, отображённые в страничные таблицы пользовательского пространства. .TP \fIShmemHugePages\fP %lu (начиная с Linux 4.8) (требуется \fBCONFIG_TRANSPARENT_HUGEPAGE\fP) Память, используемая для выделения огромных страниц под общую память (shmem) и \fBtmpfs\fP(5). .TP \fIShmemPmdMapped\fP %lu (начиная с Linux 4.8) (Требуется \fBCONFIG_TRANSPARENT_HUGEPAGE\fP.) Общая память, отображённая в пользовательское пространство огромными страницами. .TP \fICmaTotal\fP %lu (начиная с Linux 3.1) (Требуется \fBCONFIG_CMA\fP.) Общее количество страниц CMA (выделитель непрерывной памяти). .TP \fICmaFree\fP %lu (начиная с Linux 3.1) (Требуется \fBCONFIG_CMA\fP.) Количество свободных страниц CMA (выделитель непрерывной памяти). .TP \fIHugePages_Total\fP %lu (Требуется параметр \fBCONFIG_HUGETLB_PAGE\fP.) Размер пула огромных страниц. .TP \fIHugePages_Free\fP %lu (Требуется параметр \fBCONFIG_HUGETLB_PAGE\fP.) Количество нераспределённых огромных страниц в пуле. .TP \fIHugePages_Rsvd\fP %lu (начиная с Linux 2.6.17) (Требуется параметр \fBCONFIG_HUGETLB_PAGE\fP.) Количество огромных страниц, для которых есть обязательство по распределению в пуле, но которые ещё не распределены. Эти зарезервированные огромные страницы гарантируют, что приложение сможет получить огромную страницу из пула огромных страниц при нехватке памяти. .TP \fIHugePages_Surp\fP %lu (начиная с Linux 2.6.24) (Требуется параметр \fBCONFIG_HUGETLB_PAGE\fP.) Количество огромных страниц в пуле выше значения в \fI/proc/sys/vm/nr_hugepages\fP. Максимальное число избыточных огромных страниц настраивается в \fI/proc/sys/vm/nr_overcommit_hugepages\fP. .TP \fIHugepagesize\fP %lu (Требуется параметр \fBCONFIG_HUGETLB_PAGE\fP.) Размер огромных страниц. .TP \fIDirectMap4k\fP %lu (начиная с Linux 2.6.27) Количество байт RAM линейно отображаемых ядром в 4 КБ страницы. (x86.) .TP \fIDirectMap4M\fP %lu (начиная с Linux 2.6.27) Количество байт RAM линейно отображаемых ядром в 4 МБ страницы. (x86 с включённым \fBCONFIG_X86_64\fP или \fBCONFIG_X86_PAE\fP). .TP \fIDirectMap2M\fP %lu (начиная с Linux 2.6.27) Количество байт RAM линейно отображаемых ядром в 2 МБ страницы. (x86 с выключенными \fBCONFIG_X86_64\fP и \fBCONFIG_X86_PAE\fP). .TP \fIDirectMap1G\fP %lu (начиная с Linux 2.6.27) (x86 с включёнными \fBCONFIG_X86_64\fP и \fBCONFIG_X86_DIRECT_GBPAGES\fP) .RE .TP \fI/proc/modules\fP Текстовый список модулей, которые были загружены системой. Смотрите также \fBlsmod\fP(8). .TP \fI/proc/mounts\fP 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 \fBmount_namespaces\fP(7)), this file became a link to \fI/proc/self/mounts\fP, which lists the mounts of the process's own mount namespace. The format of this file is documented in \fBfstab\fP(5). .TP \fI/proc/mtrr\fP .\" commit 7225e75144b9718cbbe1820d9c011c809d5773fd Memory Type Range Registers. See the Linux kernel source file \fIDocumentation/x86/mtrr.rst\fP (or \fIDocumentation/x86/mtrr.txt\fP before Linux 5.2, or \fIDocumentation/mtrr.txt\fP before Linux 2.6.28) for details. .TP \fI/proc/net\fP Данный каталог хранит различные файлы и подкаталоги, содержащие информацию о сетевой подсистеме. В файлах используются структуры в ASCII и поэтому их можно читать утилитой \fBcat\fP(1). Однако, стандартная комплект \fBnetstat\fP(8) предоставляет более понятную информацию из этих файлов. .IP .\" commit e9720acd728a46cb40daa52c99a979f7c4ff195c С появлением сетевых пространств имён различная информация о сетевом стеке стала виртуализированной (смотрите \fBnetwork_namespaces\fP(7)). То есть, начиная с Linux 2.6.25 файл \fI/proc/net\fP — это символическая ссылка на каталог \fI/proc/self/net\fP, в котором содержатся те же файлы и каталоги, перечисленные ниже. Однако эти файлы и каталоги теперь отражают информацию для сетевого пространства имён, в котором числится процесс. .TP \fI/proc/net/arp\fP Файл содержит читабельный ASCII\-дамп ARP таблицы ядра, которая используется для определения адресов. Она покажет как полученные динамически, так и заданные явно записи ARP. Формат файла: .IP .in +4n .EX 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 .EE .in .IP Здесь "IP\-адрес" это адрес машины в нотации IPv4, "Тип обор." это тип аппаратного обеспечения для этого адреса согласно RFC\ 826. Флаги \(em это внутренние флаги структуры ARP(определённые в \fI/usr/include/linux/if_arp.h\fP), а "Аппарат. адрес" \(em это адрес канального уровня для IP\-адреса, если он известен. .TP \fI/proc/net/dev\fP Псевдо\-файл dev содержит информацию о состоянии сетевых устройств. Она представляет собой количество принятых и отправленных пакетов, количество ошибок и коллизий и другую базовую статистику. Эта информация используется программой \fBifconfig\fP(8) для вывода отчёта о состоянии устройства. Формат информации: .IP .EX 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 .EE .\" .TP .\" .I /proc/net/ipx .\" No information. .\" .TP .\" .I /proc/net/ipx_route .\" No information. .TP \fI/proc/net/dev_mcast\fP Определено в \fI/usr/src/linux/net/core/dev_mcast.c\fP: .IP .in +4n .EX индекс имя_интерфейса dmi_u dmi_g адрес_dmi 2 eth0 1 0 01005e000001 3 eth1 1 0 01005e000001 4 eth2 1 0 01005e000001 .EE .in .TP \fI/proc/net/igmp\fP Internet Group Management Protocol (протокол управления группами Интернета). Определён в \fI/usr/src/linux/net/core/igmp.c\fP. .TP \fI/proc/net/rarp\fP Данный файл использует тот же формат, что и файл \fIarp\fP и содержит текущую обратную базу данных адресов ARP, используемую при работе служб обратного поиска адресов \fBrarp\fP(8). Если поддержки RARP нет в ядре, то этот файл не существует. .TP \fI/proc/net/raw\fP .\" .TP .\" .I /proc/net/route .\" No information, but looks similar to .\" .BR route (8). Содержит дамп таблицы неструктурированных (RAW) сокетов. Большая часть этой информации не используется ни для чего, кроме отладки. Значение «s»" \(em это хэшируемый слот ядра для сокета, «local_address» \(em это пара локальный адрес, номер протокола. \&«St» \(em это внутреннее состояние сокета. «tx_queue» и «rx_queue» \(em это исходящая и входящая очереди данных в том, виде в каком они используются в памяти ядра. Поля «tr», «tm\->when» и «rexmits» не используются в RAW. Поле «uid» содержит эффективный UID создателя сокета. .TP \fI/proc/net/snmp\fP Этот файл содержит ASCII данные, необходимые SNMP\-агенту для баз управляющей информации IP, ICMP, TCP и UDP. .TP \fI/proc/net/tcp\fP Содержит дамп таблицы TCP\-сокетов. Большая часть этой информации не используется ни для чего, кроме отладки. Значение «sl» — это хэшируемый слот ядра для сокета, «local_address» — это пара локальный адрес и номер порта. «rem_address» — это пара удалённого локального адреса и номера порта. «st» — это внутреннее состояние сокета. «tx_queue» и «rx_queue» — это исходящая и входящая очереди данных в том, виде в каком они используются в памяти ядра. Поля «tr», «tm\->when» и «rexmits» содержат внутреннюю информацию ядра о состоянии сокета и полезны только для отладки. Поле «uid» содержит эффективный UID создателя сокета. .TP \fI/proc/net/udp\fP Содержит дамп таблицы UDP\-сокетов. Большая часть этой информации не используется ни для чего, кроме отладки. Значение «sl» — это хэшируемый слот ядра для сокета, «local_address» — это пара локальный адрес и номер порта. «rem_address» — это пара удалённого локального адреса и номера порта. «st» — это внутреннее состояние сокета. «tx_queue» и «rx_queue» — это исходящая и входящая очереди данных в том, виде в каком они используются в памяти ядра. Поля «tr», «tm\->when» и «rexmits» не используются в UDP. Поле «uid» содержит эффективный UID создателя сокета. Формат: .IP .EX 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 .EE .TP \fI/proc/net/unix\fP Показывает список доменных сокетов UNIX, присутствующих в системе, а также их состояния. Формат: .IP .EX Num RefCount Protocol Flags Type St Inode Path 0: 00000002 00000000 00000000 0001 03 42 1: 00000001 00000000 00010000 0001 01 1948 /dev/printer .EE .IP Поля: .RS .TP 10 \fINum\fP: Номер слота таблицы ядра. .TP \fIRefCount\fP: Количество пользователей сокета. .TP \fIProtocol\fP: Пока всегда 0. .TP \fIFlags\fP: Внутренние флаги ядра, содержащие состояние сокета. .TP \fIType\fP: Тип сокета. Для сокетов \fBSOCK_STREAM\fP значение равно 0001; для сокетов \fBSOCK_DGRAM\fP — 0002, для сокетов \fBSOCK_SEQPACKET\fP — 0005. .TP \fISt\fP: Внутреннее состояние сокета. .TP \fIInode\fP: Номер иноды сокета. .TP \fIPath\fP: Путь привязки (если есть) сокета. Сокеты в абстрактном пространстве имён заключаются в список и показаны в \fIPath\fP начинающимися с символа @. .RE .TP \fI/proc/net/netfilter/nfnetlink_queue\fP В этом файле содержится информация об очередях netfilter в пользовательском пространстве (если используется). Каждая строка описывает очередь. Очередь, на которые которые не было подписок из пространства пользователя, не показываются. .IP .in +4n .EX 1 4207 0 2 65535 0 0 0 1 (1) (2) (3)(4) (5) (6) (7) (8) .EE .in .IP Поля каждой строки: .RS 7 .TP 5 (1) Идентификатор очереди. Совпадает с указанным в параметрах \fB\-\-queue\-num\fP или \fB\-\-queue\-balance\fP \fBiptables\fP(8) для цели NFQUEUE. Подробности смотрите в \fBiptables\-extensions\fP(8). .TP (2) Идентификатор порта netlink, подписанного на очередь. .TP (3) Количество пакетов, находящихся сейчас в очереди и ожидающих обработки приложением. .TP (4) Режим копирования очереди. Равен 1 (только метаданные) или 2 (также копировать в пространство пользователя данные полезной нагрузки). .TP (5) Диапазон копирования; то есть не более скольких байт полезной нагрузки пакета должно быть скопировано в пространство пользователя. .TP (6) Очередь отброшена. Количество пакетов, которое было отброшено ядром из\-за слишком большого количества пакетов уже ожидающих в пространстве пользователя для обратной отправки согласно обязательного решения приёма/отброса. .TP (7) Очередь пользователя отброшена. Количество пакетов, которое было отброшено внутри подсистемы netlink. Обычно такое отбрасывание происходит когда переполнен соответствующий буфер сокета; то есть пространство пользователя не способно читать сообщения достаточно быстро. .TP (8) Последовательный номер. Каждый пакет в очереди связывается с (32\-битным) постоянно увеличивающимся последовательным номером. Поле отображает ID самого нового пакета в очереди. .RE .IP Последний номер существует только для совместимости и всегда равен 1. .TP \fI/proc/partitions\fP Содержит старший (major) и младший (minor) номер каждого раздела, а также количество 1024\-байтных блоков и имя раздела. .TP \fI/proc/pci\fP Это список всех устройств PCI, найденных во время инициализации ядра, а также их конфигурация. .IP .\" FIXME Document /proc/sched_debug (since Linux 2.6.23) .\" See also /proc/[pid]/sched Этот файл устарел и был заменён на новый интерфейс \fI/proc\fP для PCI (\fI/proc/bus/pci\fP). Он стал необязательным в Linux 2.2 (доступен, если установлен параметр сборки ядра \fBCONFIG_PCI_OLD_PROC\fP). Он стал ещё более необязательным в Linux 2.4. В Linux 2.6 он стал не рекомендуемым (но ещё доступным через параметр \fBCONFIG_PCI_LEGACY_PROC\fP), и, наконец, был полностью удалён в Linux 2.6.17. .TP \fI/proc/profile\fP (начиная с Linux 2.4) Данный файл существует только, если ядро загружено с параметром командной строки \fIprofile=1\fP. В нём содержится профилирующая информация ядра в двоичном формате, которую использует \fBreadprofile\fP(1). Запись (например, пустой строки) в этот файл обнуляет счётчики профилирования; на некоторых архитектурах запись двоичного целого «профилирующего умножителя» размером с \fIsizeof(int)\fP устанавливает частоту профилирующего прерывания. .TP \fI/proc/scsi\fP Каталог с псевдо\-файлом \fIscsi\fP и различными каталогами низкоуровневых драйверов SCSI, которые содержат по одному файлу на каждый SCSI\-узел в системе, и которые представляют некоторую информацию о части подсистемы ввода/вывода SCSI. Данные файлы содержат ASCII структуры и прекрасно читаются утилитой \fBcat\fP(1). .IP Также вы можете писать в некоторые из этих файлов для перенастройки подсистемы или включения/выключения некоторых возможностей. .TP \fI/proc/scsi/scsi\fP Это список всех SCSI\-устройств, которые известны ядру. Список похож на тот, что выдается при начальной загрузке. scsi в настоящий момент поддерживает только команду \fIadd\-single\-device\fP, которая позволяет суперпользователю добавлять устройства на ходу, без выключения машины. .IP Команда .IP .in +4n .EX echo \[aq]scsi add\-single\-device 1 0 5 0\[aq] > /proc/scsi/scsi .EE .in .IP заставит адаптер scsi1 просканировать SCSI канал 0, чтобы найти устройство с ID 5 и LUN 0. Если по этому адресу уже есть известное устройство или если заданный адрес неправилен, то будет возвращена ошибка. .TP \fI/proc/scsi/\fPимя_драйвера \fIИменем_драйвера\fP в настоящий момент могут быть: NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx, buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug, seagate, t128, u15\-24f, ultrastore или wd7000. Эти каталоги показывают все драйверы, который зарегистрированы хотя бы одним SCSI HBA. Каждый каталог содержит по одному файлу на каждый зарегистрированный узел. Имя каждого узла соответствует номеру, который был получен этим узлом во время инициализации. .IP Чтение данных файлов обычно показывает информацию о конфигурации драйвера и узла, статистику и т. п. .IP Записывая в эти файлы, можно добиться различных результатов от разных узлов. Например, командами \fIlatency\fP и \fInolatency\fP суперпользователь может включить и выключить команду кода вычисления задержки в драйвере eata_dma. Командами \fIlockup\fP и \fIunlock\fP суперпользователь может управлять блокировками шины, которые симулирует драйвер scsi_debug. .TP \fI/proc/self\fP Этот каталог указывает на процесс, обращающийся к файловой системе \fI/proc\fP, и идентичен каталогу \fI/proc\fP, соответствующему номеру этого процесса. .TP \fI/proc/slabinfo\fP Информация о кэшах ядра. Подробности в \fBslabinfo\fP(5). .TP \fI/proc/stat\fP Статистика ядра/системы. Различается для разных архитектур. Общие элементы: .RS .TP \fIcpu 10132153 290696 3084719 46828483 16683 0 25195 0 175628 0\fP .TQ \fIcpu0 1393280 32966 572056 13343292 6130 0 17875 0 23933 0\fP .\" 1024 on Alpha and ia64 Количество времени, измеряемое в единицах USER_HZ (на большинстве архитектур — 1/100\-я секунды; чтобы получить правильное значение используйте \fIsysconf(_SC_CLK_TCK)\fP), которые система (строка «cpu») или определённый ЦП (строка «cpu\fIN\fP») потратила в различных режимах: .RS .TP \fIпользовательский\fP (1) Время, проведённое в пользовательском режиме. .TP \fInice\fP (2) Время, проведённое в пользовательском режиме с низким приоритетом (nice). .TP \fIсистемный\fP (3) Время, проведённое в системном режиме. .TP \fIпростой\fP .\" FIXME . Actually, the following info about the /proc/stat 'cpu' field .\" does not seem to be quite right (at least in Linux 2.6.12 or Linux 3.6): .\" the idle time in /proc/uptime does not quite match this value (4) Время, проведённое в ожидании. Это значение совпадает с значением второго поля в псевдо\-файле \fI/proc/uptime\fP. .TP \fIiowait\fP (начиная с Linux 2.5.41) .\" See kernel commit 9c240d757658a3ae9968dd309e674c61f07c7f48 (5) Время ожидания завершения операций ввода\-вывода. Это значение ненадёжно по следующим причинам: .RS .IP \[bu] 3 ЦП не будет ждать завершения ввода\-вывода; iowait это время, которое задача ждёт завершения ввода\-вывода. Когда ЦП переходит в состояние простоя из\-за ожидания задачей ввода\-вывода, на этом ЦП будет запланирована к выполнению другая задача. .IP \[bu] На многоядерных ЦП задача, ожидающая завершения ввода\-вывода, не выполняется на каком\-либо ЦП, поэтому iowait каждого ЦП трудно подсчитать. .IP \[bu] Значение этого поля при определённых условиях может \fIуменьшаться\fP. .RE .TP \fIirq\fP (начиная с Linux 2.6.0) .\" Precisely: Linux 2.6.0-test4 (6) Время обслуживания прерываний. .TP \fIsoftirq\fP (начиная с Linux 2.6.0) .\" Precisely: Linux 2.6.0-test4 (7) Время обслуживания softirq. .TP \fIsteal\fP (начиная с Linux 2.6.11) (8) Упущенное время — время, потраченное в других операционных системах при работе в виртуализованном окружении. .TP \fIguest\fP (начиная с Linux 2.6.24) .\" See Changelog entry for 5e84cfde51cf303d368fcb48f22059f37b3872de (9) Время, потраченное на работу виртуального процессора для гостевых операционных системах, управляемых ядром Linux. .TP \fIguest_nice\fP (начиная с Linux 2.6.33) .\" commit ce0e7b28fb75cb003cfc8d0238613aaf1c55e797 (10) Время, потраченное на работу гостевого niced (виртуального процессора для гостевых операционных системах, управляемых ядром Linux). .RE .TP \fIpage 5741 1808\fP Количество страниц, которые система загрузила с диска и выгрузила на диск. .TP \fIswap 1 0\fP Количество страниц подкачки, которые загружены и выгружены. .TP .\" FIXME . The following is not the full picture for the 'intr' of .\" /proc/stat on 2.6: \fIintr 1462898\fP В этой строке содержится счётчик прерываний, обработанных с момента загрузки системы, по каждому возможному системному прерыванию. В первом столбце содержится общее количество всех обработанных прерываний, включая ненумерованные, специфичные для архитектуры; в каждом последующем столбце содержится общее количество по конкретному прерыванию. Ненумерованные прерывания не показываются, выдаётся только их общее количество. .TP \fIdisk_io: (2,0):(31,30,5764,1,2) (3,0):\fP… (major,minor):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written) .br (только в Linux 2.4) .TP \fIctxt 115315\fP Количество переключений контекста, произошедших в системе. .TP \fIbtime 769041601\fP Время начальной загрузки прошедшее с начала эпохи, 1970\-01\-01 00:00:00 +0000 (UTC), в секундах. .TP \fIprocesses 86031\fP Количество разветвлений (вызовов fork) с момента начальной загрузки. .TP \fIprocs_running 6\fP Количество процессов в состоянии работы (Linux 2.5.45 и новее). .TP \fIprocs_blocked 2\fP Количество заблокированных процессов, ожидающих завершения ввода\-вывода (Linux 2.5.45 и новее). .TP \fIsoftirq 229245889 94 60001584 13619 5175704 2471304 28 51212741 59130143 0 51240672\fP .\" commit d3d64df21d3d0de675a0d3ffa7c10514f3644b30 В этой строке показывается количество softirq для всех ЦП. В первой колонке содержится общее количество всех softirq, а в каждой следующей колонке содержится общее количество определённых softirq (начиная с Linux 2.6.31). .RE .TP \fI/proc/swaps\fP Используемое пространство подкачки. См. также \fBswapon\fP(8). .TP \fI/proc/sys\fP 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 \fI/proc\fP filesystem, and the (deprecated) \fBsysctl\fP(2) system call. .IP String values may be terminated by either \[aq]\e0\[aq] or \[aq]\en\[aq]. .IP 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: \[aq]\ \[aq], \[aq]\et\[aq], or \[aq]\en\[aq]. Using other separators leads to the error \fBEINVAL\fP. .TP \fI/proc/sys/abi\fP (начиная с Linux 2.4.10) .\" On some systems, it is not present. This directory may contain files with application binary information. See the Linux kernel source file \fIDocumentation/sysctl/abi.rst\fP (or \fIDocumentation/sysctl/abi.txt\fP before Linux 5.3) for more information. .TP \fI/proc/sys/debug\fP Данный каталог может быть пуст. .TP \fI/proc/sys/dev\fP Данный каталог содержит информацию, специфичную для устройств (например, \fIdev/cdrom/info\fP). В некоторых системах он может быть пуст. .TP \fI/proc/sys/fs\fP Подкаталог, содержащий файлы и подкаталоги с переменными ядра, касающиеся файловых систем. .TP \fI/proc/sys/fs/aio\-max\-nr\fP и \fI/proc/sys/fs/aio\-nr\fP (начиная с Linux 2.6.4) \fIaio\-nr\fP is the running total of the number of events specified by \fBio_setup\fP(2) calls for all currently active AIO contexts. If \fIaio\-nr\fP reaches \fIaio\-max\-nr\fP, then \fBio_setup\fP(2) will fail with the error \fBEAGAIN\fP. Raising \fIaio\-max\-nr\fP does not result in the preallocation or resizing of any kernel data structures. .TP \fI/proc/sys/fs/binfmt_misc\fP Документацию по файлам в этом каталоге можно найти в файле исходного кода ядра Linux \fIDocumentation/admin\-guide/binfmt\-misc.rst\fP (в старых ядрах — в \fIDocumentation/binfmt_misc.txt\fP). .TP \fI/proc/sys/fs/dentry\-state\fP (начиная с Linux 2.2) Файл содержит информацию о состоянии кэша каталогов (dcache). В нём есть шесть чисел, \fInr_dentry\fP, \fInr_unused\fP, \fIage_limit\fP (возраст в секундах), \fIwant_pages\fP (страниц, запрошенных системой) и два пустых значения. .RS .IP \[bu] 3 \fInr_dentry\fP содержит количество отведённых dentries (элементов dcache). Это поле не используется в Linux 2.2. .IP \[bu] \fInr_unused\fP содержит количество неиспользуемых dentries. .IP \[bu] .\" looks like this is unused in Linux 2.2 to Linux 2.6 \fIage_limit\fP \(em это возраст в секундах по истечении которого элементы dcache могут быть отозваны, когда памяти становится мало. .IP \[bu] .\" looks like this is unused in Linux 2.2 to Linux 2.6 \fIwant_pages\fP не равно нулю, если ядро вызвало shrink_dcache_pages(), а dcache ещё не сокращён (pruned). .RE .TP \fI/proc/sys/fs/dir\-notify\-enable\fP Этот файл может быть использован для включения и выключения интерфейса \fIdnotify\fP, описанного в \fBfcntl\fP(2), во всей системе. Значение 0 в этом файле отключает интерфейс, а значение 1 включает его. .TP \fI/proc/sys/fs/dquot\-max\fP Этот файл показывает максимальное количество кэшируемых элементов дисковых квот. В некоторых (2.4) системах его нет. Если число свободных кэшируемых дисковых квот является очень маленьким, а у вас в системе одновременно работает большое количество пользователей, то вам, возможно, захочется увеличить этот лимит. .TP \fI/proc/sys/fs/dquot\-nr\fP Этот файл показывает количество выделенных в использование элементов дисковых квот и количество свободных элементов дисковых квот. .TP \fI/proc/sys/fs/epoll\fP (начиная с Linux 2.6.28) В этом каталоге содержится файл \fImax_user_watches\fP, который можно использовать для ограничения количества памяти ядра, потребляемой интерфейсом \fIepoll\fP. Подробности смотрите в \fBepoll\fP(7). .TP \fI/proc/sys/fs/file\-max\fP 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 \fBENFILE\fP. (See also \fBsetrlimit\fP(2), which can be used by a process to set the per\-process limit, \fBRLIMIT_NOFILE\fP, 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 reached"), try increasing this value: .IP .in +4n .EX echo 100000 > /proc/sys/fs/file\-max .EE .in .IP Привилегированный процесс (с \fBCAP_SYS_ADMIN\fP) может изменять ограничение \fIfile\-max\fP. .TP \fI/proc/sys/fs/file\-nr\fP This (read\-only) file contains three numbers: the number of allocated file handles (i.e., the number of open file descriptions; see \fBopen\fP(2)); the number of free file handles; and the maximum number of file handles (i.e., the same value as \fI/proc/sys/fs/file\-max\fP). 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. .TP \fI/proc/sys/fs/inode\-max\fP (только до Linux 2.2) This file contains the maximum number of in\-memory inodes. This value should be 3\[en]4 times larger than the value in \fIfile\-max\fP, since \fIstdin\fP, \fIstdout\fP and network sockets also need an inode to handle them. When you regularly run out of inodes, you need to increase this value. .IP Начиная с Linux 2.4, больше не существует статического ограничения на количество индексных дескрипторов и этот файл удалён. .TP \fI/proc/sys/fs/inode\-nr\fP Этот файл содержит первые два значения из \fIinode\-state\fP. .TP \fI/proc/sys/fs/inode\-state\fP Этот файл содержит сем чисел: \fInr_inodes\fP, \fInr_free_inodes\fP, \fIpreshrink\fP и четыре заглушки (всегда равные нулю). .IP .\" This can be slightly more than .\" .I inode\-max .\" because Linux allocates them one page full at a time. В \fInr_inodes\fP содержится количество выделенных системой индексных дескрипторов. В \fInr_free_inodes\fP содержится количество свободных индексных дескрипторов. .IP Значение \fIpreshrink\fP не равно нулю, если \fInr_inodes\fP > \fIinode\-max\fP и системе нужно сократить список индексных дескрипторов, а не выделять новые; начиная с Linux 2.4 это значение не используется (всегда равно нулю). .TP \fI/proc/sys/fs/inotify\fP (начиная с Linux 2.6.13) Этот каталог содержит файлы \fImax_queued_events\fP, \fImax_user_instances\fP, и \fImax_user_watches\fP, которые можно использовать для ограничения количества памяти ядра, потребляемом интерфейсом \fIinotify\fP. Подробней смотрите в \fBinotify\fP(7). .TP \fI/proc/sys/fs/lease\-break\-time\fP В этом файле задаётся период, в течении которого, ядро предоставляет процессу возможность удерживать файл (\fBfcntl\fP(2)), по окончании которого оно посылает сигнал процессу, извещая его о том, что другой процесс ожидает открытия этого файла. Если удерживающий файл процесс не удалит или не отменит удержание файла в течении указанного периода, то ядро принудительно снимет удержание. .TP \fI/proc/sys/fs/leases\-enable\fP Этот файл можно использовать, чтобы разрешить или запретить в системе возможность удержания файла (\fBfcntl\fP(2)). Если файл содержит 0, удержание запрещено. Если не ноль \(em разрешено. .TP \fI/proc/sys/fs/mount\-max\fP (начиная с Linux 4.9) .\" commit d29216842a85c7970c536108e093963f02714498 Значение в этом файле задаёт максимальное количество монтирований, которые могут существовать в пространстве имён монтирования. Значения файла по умолчанию равно 100000. .TP \fI/proc/sys/fs/mqueue\fP (начиная с Linux 2.6.6) В этом каталоге содержатся файлы \fImsg_max\fP, \fImsgsize_max\fP и \fIqueues_max\fP, которые контролируют ресурсы, используемые очередями сообщений POSIX. Подробней смотрите в \fBmq_overview\fP(7). .TP \fI/proc/sys/fs/nr_open\fP (начиная с Linux 2.6.25) .\" commit 9cfe015aa424b3c003baba3841a60dd9b5ad319b Этот файл налагает потолок на значение, до которого может быть повышен ограничитель ресурса \fBRLIMIT_NOFILE\fP (смотрите \fBgetrlimit\fP(2)). Этот потолок применяется к непривилегированным и привилегированным процессам. Значение по умолчанию в этом файле равно 1048576 (до Linux 2.6.25 потолок для \fBRLIMIT_NOFILE\fP был неизменяемым с этим же значением). .TP \fI/proc/sys/fs/overflowgid\fP и \fI/proc/sys/fs/overflowuid\fP Эти файлы позволяют вам изменить значение фиксированных UID и GID. По умолчанию оно равно 65534. Некоторые файловые системы поддерживают только 16\-битные UID и GID, в то время как в Linux UID и GID являются 32\-битными. Когда монтируется одна из таких файловых систем с правами, позволяющими запись, все UID или GID, которые превышают 65535, транслируются перед записью на диск в значения переполнения. .TP \fI/proc/sys/fs/pipe\-max\-size\fP (начиная с Linux 2.6.35) Смотрите \fBpipe\fP(7). .TP \fI/proc/sys/fs/pipe\-user\-pages\-hard\fP (начиная с Linux 4.5) Смотрите \fBpipe\fP(7). .TP \fI/proc/sys/fs/pipe\-user\-pages\-soft\fP (начиная с Linux 4.5) Смотрите \fBpipe\fP(7). .TP \fI/proc/sys/fs/protected_fifos\fP (начиная с Linux 4.19) The value in this file is/can be set to one of the following: .RS .TP 4 0 Writing to FIFOs is unrestricted. .TP 1 Don't allow \fBO_CREAT\fP \fBopen\fP(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. .TP 2 As for the value 1, but the restriction also applies to group\-writable sticky directories. .RE .IP 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. .TP \fI/proc/sys/fs/protected_hardlinks\fP (начиная с Linux 3.6) .\" commit 800179c9b8a1e796e441674776d11cd4c05d61d7 Если значение в файле равно 0, то на создание жёстких ссылок не накладываются ограничения (соответствует поведению до Linux 3.6). Если значение в файле равно 1, то жёсткая ссылка может быть создана, если соблюдается одно из следующих условий: .RS .IP \[bu] 3 Вызывающий процесс имеет мандат \fBCAP_FOWNER\fP в своём пользовательском пространстве имён и UID файла отображён в пространстве имён. .IP \[bu] UID файловой системы процесса, создающего ссылку, совпадает с владельцем (UID) файла, на который создаётся ссылка (как описано в \fBcredentials\fP(7), UID файловой системы процесса обычно совпадает с эффективным UID). .IP \[bu] Все следующие условия выполняются: .RS 4 .IP \[bu] 3 целевой файл является обычным; .IP \[bu] на целевом файле не установлен бит режима set\-user\-ID; .IP \[bu] на целевом файле не установлены биты режима set\-group\-ID и group\-executable; и .IP \[bu] вызывающий имеет право на чтение и запись целевого файла (согласно маске прав на файл или из\-за имеющихся мандатов). .RE .RE .IP Значение по умолчанию в файле равно 0. Установка значения в 1 закрывает долголетний класс проблем с безопасностью, вызванных проверкой времени на основе жёсткой ссылки, состязательностью при использовании времени, наиболее часто встречающейся в каталогах доступным на запись всем, таким как \fI/tmp\fP. Распространённый метод использования этой уязвимости — присвоение прав при переходе по жёсткой ссылке (т.е., процесс суперпользователя переходит по жёсткой ссылке, созданной другим пользователем). Также, в системах без выделенных разделов это останавливает неправомочных пользователей от «закрепления» уязвимых файлов с битами set\-user\-ID и set\-group\-ID при выполнении администратором обновления, или компоновки со специальными файлами. .TP \fI/proc/sys/fs/protected_regular\fP (начиная с Linux 4.19) The value in this file is/can be set to one of the following: .RS .TP 4 0 Writing to regular files is unrestricted. .TP 1 Don't allow \fBO_CREAT\fP \fBopen\fP(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. .TP 2 As for the value 1, but the restriction also applies to group\-writable sticky directories. .RE .IP The intent of the above protections is similar to \fIprotected_fifos\fP, but allows an application to avoid writes to an attacker\-controlled regular file, where the application expected to create one. .TP \fI/proc/sys/fs/protected_symlinks\fP (начиная с Linux 3.6) .\" commit 800179c9b8a1e796e441674776d11cd4c05d61d7 Если значение в этом файле равно 0, то на переход по символьным ссылкам никаких ограничений не накладывается (т. е., обычное поведение ядра Linux до версии 3.6). Если значение в файле равно 1, то переход по символьным ссылкам происходит только при следующих условиях: .RS .IP \[bu] 3 UID файловой системы процесса, переходящего по ссылке, совпадает с владельцем (UID) символьной ссылки (как описано в \fBcredentials\fP(7), UID файловой системы процесса обычно совпадает с эффективным UID); .IP \[bu] ссылка не является «прилипшим» (sticky) каталогом, доступным на запись всем; или .IP \[bu] символьная ссылка и её родительский каталог имеют одного владельца (UID) .RE .IP Системный вызов, который не может перейти по символьной ссылке из\-за перечисленных выше ограничений, возвращает ошибку \fBEACCES\fP в \fIerrno\fP. .IP Значение по умолчанию в файле равно 0. Установка значения в 1 закрывает долголетний класс проблем с безопасностью, вызванных проверкой времени, состязательностью при использовании времени при доступе к символьным ссылкам. .TP \fI/proc/sys/fs/suid_dumpable\fP (начиная с Linux 2.6.13) .\" The following is based on text from Documentation/sysctl/kernel.txt Значение из этого файла присваивается флагу «возможность создания дампа» процесса в случаях, описанных в \fBprctl\fP(2). Фактически, значение в этом файле определяет будут ли создаваться файлы дампа памяти для файлов с установленным битом set\-user\-ID или других защищённых/с добавкой (tainted) исполняемых файлов. Настройка «возможность создания дампа» также влияет на владение файлами в каталоге процесса \fI/proc/\fPpid как описано выше. .IP Можно указать три разных целых значения: .RS .TP \fI0\ (default)\fP .\" In kernel source: SUID_DUMP_DISABLE Традиционное поведение ( до Linux 2.6.13). Дамп памяти не создаётся для процесса, у которого изменены учётные данные (вызовом \fBseteuid\fP(2), \fBsetgid\fP(2) и подобным или при исполнении программы с установленными битами set\-user\-ID или set\-group\-ID) или если для исполняемого файла нет права на чтение. .TP \fI1\ ("debug")\fP .\" In kernel source: SUID_DUMP_USER Все процессы создают дамп памяти, если это возможно (причины невозможности создания дампа описаны в \fBcore\fP(5)). Дамп памяти принадлежит ID пользователя файловой системы выполнявшегося процесса и никаких мер безопасности не предпринимается. Предназначено только для системной отладки: данный режим небезопасен, так как позволяет непривилегированным пользователями просматривать содержимое памяти привилегированных процессов. .TP \fI2\ ("suidsafe")\fP .\" In kernel source: SUID_DUMP_ROOT Дамп памяти будет выполняться для любого исполняемого файла, для которого обычно это не происходит (см. «0» ранее) и будет доступен на чтение только суперпользователю. Файл с дампом памяти обычный пользователь может удалять, но не читать. По соображениям безопасности дампы памяти в этом режиме не будут перезаписываться новыми или другими файлами. Этот режим подходит для администраторов, когда администраторы пытаются разобраться с проблемами в обычном окружении. .IP .\" 9520628e8ceb69fa9a4aee6b57f22675d9e1b709 .\" 54b501992dd2a839e94e76aa392c392b55080ce8 Также, начиная с Linux 3.6, значение \fI/proc/sys/kernel/core_pattern\fP должно быть абсолютным путём или командой с каналом, как это описано в \fBcore\fP(5). В ядерный журнал будет выдано предупреждение, если значение \fIcore_pattern\fP отступает от этих правил, и дамп создан не будет. .RE .IP О том, как влияет флаг «возможности создания дампа» процесса на проверку режима доступа ptrace, смотрите в \fBptrace\fP(2). .TP \fI/proc/sys/fs/super\-max\fP Этот файл управляет максимальным значением суперблоков и таким образом максимальным количеством файловых систем, которое может смонтировать ядро. Вам необходимо увеличивать \fIsuper\-max\fP только в том случае, если нужно смонтировать больше файловых систем, чем это позволяет значение в файле \fIsuper\-max\fP. .TP \fI/proc/sys/fs/super\-nr\fP Этот файл содержит количество файловых систем, которое смонтировано в данный момент. .TP \fI/proc/sys/kernel\fP В этом каталоге содержатся файлы, контролирующие набор параметров ядра, описанных далее. .TP \fI/proc/sys/kernel/acct\fP В этом файле содержатся три числа: \fIhighwater\fP, \fIlowwater\fP и \fIfrequency\fP. Если включён учёт процессов в стиле BSD, то эти значения управляют его поведением. Если свободного места на файловой системе, куда осуществляется протоколирование учёта, становится меньше, чем \fIlowwater\fP процентов, то учёт процессов приостанавливается. Если свободного места становится больше, чем \fIhighwater\fP процентов, то учёт процессов возобновляется. Значение \fIfrequency\fP определяет как часто ядро проверяет свободное место (в секундах). По умолчанию значения соответственно составляют 4, 2 и 30. Таким образом, приостановка учёта осуществляется, если свободно менее 2% места на диске; возобновление если места больше или равно 4%; информация о свободном месте обновляется каждые 30 секунд. .TP \fI/proc/sys/kernel/auto_msgmni\fP (Linux 2.6.27 to Linux 3.18) .\" commit 9eefe520c814f6f62c5d36a2ddcd3fb99dfdb30e (introduces feature) .\" commit 0050ee059f7fc86b1df2527aaa14ed5dc72f9973 (rendered redundant) From Linux 2.6.27 to Linux 3.18, this file was used to control recomputing of the value in \fI/proc/sys/kernel/msgmni\fP upon the addition or removal of memory or upon IPC namespace creation/removal. Echoing "1" into this file enabled \fImsgmni\fP automatic recomputing (and triggered a recomputation of \fImsgmni\fP 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 \fI/proc/sys/kernel/msgmni\fP.) The default value in \fIauto_msgmni\fP was 1. .IP .\" FIXME Must document the 3.19 'msgmni' changes. Начиная с Linux 3.19 содержимое этого файла не учитывается (так как значение \fImsgmni\fP по умолчанию близко к максимально возможному), а чтение из этого файла всегда возвращает «0». .TP \fI/proc/sys/kernel/cap_last_cap\fP (начиная с Linux 3.2) Смотрите \fBcapabilities\fP(7). .TP \fI/proc/sys/kernel/cap\-bound\fP (from Linux 2.2 to Linux 2.6.24) Этот файл содержит \fIнабор привязанных мандатов\fP ядра (выражаемый как десятичные числа со знаком). Этот набор мандатов, предоставляемых процессу во время \fBexecve\fP(2), которые складываются посредством битового умножения (AND). Начиная с Linux 2.6.25, глобального набора привязанных мандатов больше нет, теперь свой набор привязанных мандатов есть у каждой нити; смотрите \fBcapabilities\fP(7). .TP \fI/proc/sys/kernel/core_pattern\fP Смотрите \fBcore\fP(5). .TP \fI/proc/sys/kernel/core_pipe_limit\fP Смотрите \fBcore\fP(5). .TP \fI/proc/sys/kernel/core_uses_pid\fP Смотрите \fBcore\fP(5). .TP \fI/proc/sys/kernel/ctrl\-alt\-del\fP This file controls the handling of Ctrl\-Alt\-Del from the keyboard. When the value in this file is 0, Ctrl\-Alt\-Del is trapped and sent to the \fBinit\fP(1) program to handle a graceful restart. When the value is greater than zero, Linux's reaction to a Vulcan Nerve Pinch (tm) will be an immediate reboot, without even syncing its dirty buffers. Note: when a program (like dosemu) has the keyboard in "raw" mode, the Ctrl\-Alt\-Del is intercepted by the program before it ever reaches the kernel tty layer, and it's up to the program to decide what to do with it. .TP \fI/proc/sys/kernel/dmesg_restrict\fP (начиная с Linux 2.6.37) .\" commit 620f6e8e855d6d447688a5f67a4e176944a084e8 Значение этого файла определяет, кто может видеть содержимое syslog от ядра. Значение 0 снимает все ограничения. Если значение равно 1,то только привилегированные пользователи могут читать syslog от ядра (подробности смотрите \fBsyslog\fP(2) в). Начиная с Linux 3.4, только пользователи с мандатом \fBCAP_SYS_ADMIN\fP могут изменять содержимое этого файла. .TP \fI/proc/sys/kernel/domainname\fP и \fI/proc/sys/kernel/hostname\fP могут быть использованы для установки имени домена службы NIS/YP и имени узла вашей машины точно таким же образом как и командами \fBdomainname\fP(1) и \fBhostname\fP(1), т.е.: .IP .in +4n .EX #\fB echo \[aq]darkstar\[aq] > /proc/sys/kernel/hostname\fP #\fB echo \[aq]mydomain\[aq] > /proc/sys/kernel/domainname\fP .EE .in .IP выполнят тоже самое, что и команды .IP .in +4n .EX #\fB hostname \[aq]darkstar\[aq]\fP #\fB domainname \[aq]mydomain\[aq]\fP .EE .in .IP Однако заметим, что классический darkstar.frop.org имеет имя узла "darkstar" и доменное имя DNS (Сервера Доменных Имен) "frop.org", не путайте с доменным именем NIS (Службы Сетевой Информации) или как она раньше называлась YP (Yellow Pages). Эти два доменных имени полностью различны по своей сути. Подробности об это можно найти в справочной странице \fBhostname\fP(1). .TP \fI/proc/sys/kernel/hotplug\fP Этот файл содержит путь для агента политики устройств. По умолчанию это файл \fI/sbin/hotplug\fP. .TP .\" Removed in commit 87f504e5c78b910b0c1d6ffb89bc95e492322c84 (tglx/history.git) \fI/proc/sys/kernel/htab\-reclaim\fP (до Linux 2.4.9.2) .\" removed in commit 1b483a6a7b2998e9c98ad985d7494b9b725bd228, before Linux 2.6.28 (только для PowerPC) Если значение в этом файле установлено в ненулевое значение, то PowerPC htab (см. файл \fIDocumentation/powerpc/ppc_htab.txt\fP в исходном коде ядра) сокращается каждый раз, когда система входит в цикл простоя. .TP \fI/proc/sys/kernel/keys/*\fP В этом каталоге содержатся различные файлы, определяющие параметры и ограничения инфраструктуры управления ключами. Эти файлы описаны в \fBkeyrings\fP(7). .TP \fI/proc/sys/kernel/kptr_restrict\fP (начиная с Linux 2.6.38) .\" 455cd5ab305c90ffc422dd2e0fb634730942b257 .\" commit 411f05f123cbd7f8aa1edcae86970755a6e2a9d9 .\" commit 620f6e8e855d6d447688a5f67a4e176944a084e8 Значением этого файла определяется будут ли видны ядра ядра, показываемые в файлах \fI/proc\fP и других интерфейсах. Значение 0 снимает все ограничения. Если значение равно 1, то указатели ядра, выводимые по формату \fI%pK\fP, будут заменены на нули, если пользователь не имеет мандата \fBCAP_SYSLOG\fP. Если значение равно 2, то указатели ядра, выводимые по формату \fI%pK\fP, будут заменены на нули, независимо от наличия мандатов у пользователя. В начале значение по умолчанию было равно 1, но изменилось на 0 в Linux 2.6.39. Начиная с Linux 3.4, только пользователи с мандатом \fBCAP_SYS_ADMIN\fP могут изменять значение в этом файле. .TP \fI/proc/sys/kernel/l2cr\fP (только для PowerPC) Этот файл содержит флаг, который управляет кэшем L2 на процессорных платах G3. Если 0, кэш выключен. Если не ноль, то включён. .TP \fI/proc/sys/kernel/modprobe\fP This file contains the pathname for the kernel module loader. The default value is \fI/sbin/modprobe\fP. The file is present only if the kernel is built with the \fBCONFIG_MODULES\fP (\fBCONFIG_KMOD\fP in Linux 2.6.26 and earlier) option enabled. It is described by the Linux kernel source file \fIDocumentation/kmod.txt\fP (present only in Linux 2.4 and earlier). .TP \fI/proc/sys/kernel/modules_disabled\fP (начиная с Linux 2.6.31) .\" 3d43321b7015387cfebbe26436d0e9d299162ea1 .\" From Documentation/sysctl/kernel.txt Значение\-переключатель, показывающий, можно ли загружать модули в модульное ядро. Значение по умолчанию равно 0 (можно загружать), но может быть установлено в 1 (нельзя загружать). При значении 1 модули нельзя не загружать не выгружать, и значение\-переключатель тоже нельзя изменить. Данный файл появляется только, если ядро собрано с включённым параметром \fBCONFIG_MODULES\fP. .TP \fI/proc/sys/kernel/msgmax\fP (начиная с Linux 2.2) Этот файл определяет системный лимит на максимальное число байт в одном сообщении, которое пишется в очередь сообщений System\ V. .TP \fI/proc/sys/kernel/msgmni\fP (начиная с Linux 2.4) Этот файл определяет системное ограничение на количество идентификаторов в очереди сообщений. Смотрите также \fI/proc/sys/kernel/auto_msgmni\fP. .TP \fI/proc/sys/kernel/msgmnb\fP (начиная с Linux 2.2) Этот файл определяет системный параметр, используемый при начальной настройке \fImsg_qbytes\fP для последовательно создаваемых очередей сообщений. Настройка \fImsg_qbytes\fP задаёт максимальное число байт, которые могут быть записаны в очередь сообщений. .TP \fI/proc/sys/kernel/ngroups_max\fP (начиная с Linux 2.6.4) Этот файл только для чтения, отображает верхний предел на количество членов группы процесса. .TP \fI/proc/sys/kernel/ns_last_pid\fP (начиная с Linux 3.3) Смотрите \fBpid_namespaces\fP(7). .TP \fI/proc/sys/kernel/ostype\fP и \fI/proc/sys/kernel/osrelease\fP Эти файлы содержат подстроки из \fI/proc/version\fP. .TP \fI/proc/sys/kernel/overflowgid\fP и \fI/proc/sys/kernel/overflowuid\fP Эти файлы дублируют файлы \fI/proc/sys/fs/overflowgid\fP и \fI/proc/sys/fs/overflowuid\fP. .TP \fI/proc/sys/kernel/panic\fP Этот файл предоставляет доступ на чтение и запись к переменной ядра \fIpanic_timeout\fP. Если значение в файле равно нулю, ядро будет зацикливаться при крахе системы по panic; если не ноль, то это означает, что ядро должно выполнить автоматическую перезагрузку после этого количества секунд. Когда вы используете программный драйвер устройства watchdog (устройство, периодически делающее проверку, что система функционирует), то рекомендуется установить значение 60. .TP \fI/proc/sys/kernel/panic_on_oops\fP (начиная с Linux 2.5.68) Этот файл управляет поведением ядра, когда случается oops или BUG. Если файл содержит 0, то система пытается продолжить работу. Если содержит 1, то система выполняет задержку на несколько секунд (чтобы дать время klogd записать вывод oops) и затем генерирует крах системы через panic. Если файл \fI/proc/sys/kernel/panic\fP также содержит ненулевое значение, то машина будет перезагружена. .TP \fI/proc/sys/kernel/pid_max\fP (начиная с Linux 2.5.34) .\" Prior to Linux 2.6.10, pid_max could also be raised above 32768 on 32-bit .\" platforms, but this broke /proc/[pid] .\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=109513010926152&w=2 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 \fIpid_max\fP. On 64\-bit systems, \fIpid_max\fP can be set to any value up to 2\[ha]22 (\fBPID_MAX_LIMIT\fP, approximately 4 million). .TP \fI/proc/sys/kernel/powersave\-nap\fP (только на PowerPC) Этот файл содержит флаг. Если он установлен Linux\-PPC будет использовать режим "nap" для энергосбережения, в противном случае будет использоваться режим "doze". .TP \fI/proc/sys/kernel/printk\fP Смотрите \fBsyslog\fP(2). .TP \fI/proc/sys/kernel/pty\fP (начиная с Linux 2.6.4) В этом каталоге содержится два файла, отражающих количество псевдо\-терминалов UNIX 98 (см. \fBpts\fP(4)) в системе. .TP \fI/proc/sys/kernel/pty/max\fP .\" FIXME Document /proc/sys/kernel/pty/reserve .\" New in Linux 3.3 .\" commit e9aba5158a80098447ff207a452a3418ae7ee386 Этот файл определяет максимальное количество псевдо\-терминалов. .TP \fI/proc/sys/kernel/pty/nr\fP Файл доступен только для чтения, показывает количество используемых в данный момент псевдо\-терминалов. .TP \fI/proc/sys/kernel/random\fP Этот каталог содержит различные параметры, управляющие работой файла \fI/dev/random\fP. Дополнительную информацию смотрите в \fBrandom\fP(4). .TP \fI/proc/sys/kernel/random/uuid\fP (начиная с Linux 2.4) При каждом чтении из этого, доступного только для чтения файла, возвращается генерируемый случайным образом 128\-битный UUID в виде строки в стандартном формате UUID. .TP \fI/proc/sys/kernel/randomize_va_space\fP (начиная с Linux 2.6.12) .\" Some further details can be found in Documentation/sysctl/kernel.txt Выбирает политику случайного выбора адресного пространства (ASLR) в системе (на архитектурах с поддержкой ASLR). Возможны три значения: .RS .TP \fB0\fP Отключить ASLR. Значение по умолчанию на архитектурах без поддержки ASLR, и если ядро загружено с параметром \fInorandmaps\fP. .TP \fB1\fP Выполнять выделение адресов \fBmmap\fP(2), стека и страниц VDSO случайным образом. Помимо прочего, это означает, что общие библиотеки будут загружаться по случайным адресам. Текстовый сегмент PIE\-скомпонованных библиотек будет также загружен по случайному адресу. Является значением по умолчанию, если ядро собрано с параметром \fBCONFIG_COMPAT_BRK\fP. .TP \fB2\fP .\" commit c1d171a002942ea2d93b4fbd0c9583c56fce0772 (начиная с Linux 2.6.25) Также выполнять выделение кучи случайным образом. Является значением по умолчанию, если ядро не собрано с параметром \fBCONFIG_COMPAT_BRK\fP. .RE .TP \fI/proc/sys/kernel/real\-root\-dev\fP .\" commit 9d85025b0418163fae079c9ba8f8445212de8568 Этот файл описывается в файле исходного кода ядра Linux \fIDocumentation/admin\-guide/initrd.rst\fP (или \fIDocumentation/initrd.txt\fP до Linux 4.10). .TP \fI/proc/sys/kernel/reboot\-cmd\fP (только на Sparc) Этот файл, вероятно, является способом задания аргументов для начального загрузчика SPARC ROM/Flash. Способ сказать ему, что делать после перезагрузки? .TP \fI/proc/sys/kernel/rtsig\-max\fP (Up to and including Linux 2.6.7; see \fBsetrlimit\fP(2)) This file can be used to tune the maximum number of POSIX real\-time (queued) signals that can be outstanding in the system. .TP \fI/proc/sys/kernel/rtsig\-nr\fP (Up to and including Linux 2.6.7.) This file shows the number of POSIX real\-time signals currently queued. .TP \fI/proc/\fPpid\fI/sched_autogroup_enabled\fP (начиная с Linux 2.6.38) .\" commit 5091faa449ee0b7d73bc296a93bca9540fc51d0a Смотрите \fBsched\fP(7). .TP \fI/proc/sys/kernel/sched_child_runs_first\fP (начиная с Linux 2.6.23) Если этот файл содержит нулевое значение, то после \fBfork\fP(2) первым на ЦП планируется выполнение родителя. Если файл содержит ненулевое значение, то первым на ЦП планируется выполнение потомка (естественно, на многопроцессорной системе может быть запланировано немедленное одновременное выполнение и родителя и потомка). .TP \fI/proc/sys/kernel/sched_rr_timeslice_ms\fP (начиная с Linux 3.9) Смотрите \fBsched_rr_get_interval\fP(2). .TP \fI/proc/sys/kernel/sched_rt_period_us\fP (начиная с Linux 2.6.25) Смотрите \fBsched\fP(7). .TP \fI/proc/sys/kernel/sched_rt_runtime_us\fP (начиная с Linux 2.6.25) Смотрите \fBsched\fP(7). .TP \fI/proc/sys/kernel/seccomp\fP (начиная с Linux 4.14) .\" commit 8e5f1ad116df6b0de65eac458d5e7c318d1c05af Этот каталог содержит дополнительную информацию и настройки seccomp. Подробней смотрите в \fBseccomp\fP(2). .TP \fI/proc/sys/kernel/sem\fP (начиная с Linux 2.4) Этот файл содержит 4 значения, описывающих ограничения семафоров System V IPC. Вот эти значения по порядку: .RS .TP SEMMSL Максимальное количество семафоров в одном списке семафоров. .TP SEMMNS Системный лимит на количество семафоров во всех списках семафоров. .TP SEMOPM Максимальное количество операций, которое может быть указано в вызове \fBsemop\fP(2). .TP SEMMNI Системный лимит на максимальное количество идентификаторов семафоров. .RE .TP \fI/proc/sys/kernel/sg\-big\-buff\fP Этот файл показывает размер буфера стандартного SCSI устройства (sg). Вы не можете пока настраивать его, но его можно изменить при компиляции ядра, исправив \fIinclude/scsi/sg.h\fP, изменив в нём значение \fBSG_BIG_BUFF\fP. Однако, в этом, как правило, нет необходимости. .TP \fI/proc/sys/kernel/shm_rmid_forced\fP (начиная с Linux 3.1) .\" commit b34a6b1da371ed8af1221459a18c67970f7e3d53 .\" See also Documentation/sysctl/kernel.txt Если значение в файле равно 1, то все общие сегменты памяти System V будут помечены на уничтожение сразу после сокращения присоединённых процессов до нуля; другими словами становится невозможно создать сегмент общей памяти, существующий независимо от присоединённого процесса. .IP Это подобно тому, как если бы выполнили \fBshmctl\fP(2) \fBIPC_RMID\fP для всех существующих сегментов, а также выполняли бы для всех сегментов, создаваемых в будущем (пока значение в файле не будет сброшено в 0). Заметим, что при задании в файле значения 1 существующие сегменты, не присоединённые к процессу, будут немедленно уничтожены. Установка этого значения также будет уничтожать сегменты, которые были созданы, но не присоединены — при завершении процесса, который создал эти сегменты с помощью \fBshmget\fP(2). .IP Установка значения в 1 позволяет быть уверенным, что все общие сегменты памяти System V подсчитаны и следуют заданным ограничениям ресурсов, как минимум, в одном процессе (смотрите описание \fBRLIMIT_AS\fP в \fBgetrlimit\fP(2)). .IP Так как установка в этом файле значения 1 вызывает нестандартное поведение и может привести к неработоспособности приложений, значение по умолчанию равно 0. Указывайте значение 1 только, если хорошо понимаете работу приложений, использующих общую память System V. .TP \fI/proc/sys/kernel/shmall\fP (начиная с Linux 2.2) Этот файл содержит системный лимит на общее количество страниц общей памяти по стандарту System\ V. .TP \fI/proc/sys/kernel/shmmax\fP (начиная с Linux 2.2) Этот файл может быть использован для опроса и установки ограничения максимального размера сегмента общей памяти по стандарту System\ V во время выполнения. В настоящий момент ядро поддерживает сегменты общей памяти до 1 ГБ. Значение по умолчанию равно \fBSHMMAX\fP. .TP \fI/proc/sys/kernel/shmmni\fP (начиная с Linux 2.4) Задаёт максимальное системное ограничение на количество создаваемых общих сегментов памяти по стандарту System V. .TP \fI/proc/sys/kernel/sysctl_writes_strict\fP (начиная с Linux 3.16) .\" commit f88083005ab319abba5d0b2e4e997558245493c8 .\" commit 2ca9bb456ada8bcbdc8f77f8fc78207653bbaa92 .\" commit f4aacea2f5d1a5f7e3154e967d70cf3f711bcd61 .\" commit 24fe831c17ab8149413874f2fd4e5c8a41fcd294 Значением в этом файле определяется как учитывать файловое смещение при обновлении записей в файле \fI/proc/sys\fP. Есть три возможных значения: .RS .TP 4 \-1 Старый вариант работы, без предупреждения printk. Каждый \fBwrite\fP(2) должен записывать значение целиком, а повторная запись в тот же файловый дескриптор переписывает значение целиком, независимо от смещения в файле. .TP 0 (по умолчанию) Такая же работа, как при \-1, но выдаёт предупреждение printk для процессов, которые выполняют запись, если файловое смещение не равно 0. .TP 1 .\" FIXME . .\" With /proc/sys/kernel/sysctl_writes_strict==1, writes at an .\" offset other than 0 do not generate an error. Instead, the .\" write() succeeds, but the file is left unmodified. .\" This is surprising. The behavior may change in the future. .\" See thread.gmane.org/gmane.linux.man/9197 .\" From: Michael Kerrisk (man-pages .\" Subject: sysctl_writes_strict documentation + an oddity? .\" Newsgroups: gmane.linux.man, gmane.linux.kernel .\" Date: 2015-05-09 08:54:11 GMT Учитывать файловое смещение при записи строк в файлы \fI/proc/sys\fP. Повторная запись \fIдобавляет\fP значение в буфер. Всё записанное, но превышающее длину буфера будет игнорироваться. Запись чисел в \fI/proc/sys\fP всегда должна выполняться по файловому смещению 0 и значение должно полностью помещаться в буфер, предоставленный \fBwrite\fP(2). .RE .TP \fI/proc/sys/kernel/sysrq\fP Этот файл контролирует функции, которые можно вызывать по клавише SysRq. По умолчанию в нём содержится 1, которая означает, что разрешены любые возможные запросы SysRq (в старых ядрах SysRq по умолчанию выключена, и её требовалось явно включать при работе, но теперь этого больше не требуется.). Возможные значения: .RS .TP 5 0 Полностью выключить sysrq .TP 1 Включить все функции sysrq .TP > 1 Битовая маска разрешённых функций sysrq: .PD 0 .RS .TP 5 \ \ 2 Включить управление уровнем протоколирования консоли .TP \ \ 4 Включить управление клавиатурой (SAK, unraw) .TP \ \ 8 Включить отладочные дампы процессов. .TP \ 16 Включить команду sync .TP \ 32 Включить перемонтирование в режим только для чтения .TP \ 64 Включить передачу сигналов процессам (term, kill, oom\-kill) .TP 128 Включить выполнение перезагрузки/выключения питания .TP 256 Разрешить изменять уступчивость всех задач реального времени .RE .PD .RE .IP .\" commit 9d85025b0418163fae079c9ba8f8445212de8568 Этот файл существует только, если включён параметр сборки ядра \fBCONFIG_MAGIC_SYSRQ\fP. Дополнительную информацию можно найти в исходном коде ядра Linux в файле \fIDocumentation/admin\-guide/sysrq.rst\fP (или \fIDocumentation/sysrq.txt\fP до Linux 4.10). .TP \fI/proc/sys/kernel/version\fP Этот файл содержит строку, такую как: .IP .in +4n .EX #5 Wed Feb 25 21:49:24 MET 1998 .EE .in .IP Часть «#5» означает, что это пятая сборка ядра от исходной базы, а далее указана дата и время сборки ядра. .TP \fI/proc/sys/kernel/threads\-max\fP (начиная с Linux 2.3.11) .\" The following is based on Documentation/sysctl/kernel.txt Этот файл определяет системный лимит на количество нитей (задач), которое может быть создано в системе. .IP .\" commit 230633d109e35b0a24277498e773edeb79b4a331 Начиная с Linux 4.1, значение, которое можно записать в \fIthreads\-max\fP ограничено. Минимальное значение равно 20. Максимальное значение определяется константой \fBFUTEX_TID_MASK\fP (0x3fffffff). Если в \fIthreads\-max\fP записывается значение вне этого диапазона, то возвращается ошибка \fBEINVAL\fP. .IP По записываемому значению проверяется доступные страницы RAM. Если структуры нити заняли бы слишком много (более 1/8й) доступных страниц RAM, то \fIthreads\-max\fP сокращается соответствующим образом. .TP \fI/proc/sys/kernel/yama/ptrace_scope\fP (начиная с Linux 3.5) Смотрите \fBptrace\fP(2). .TP \fI/proc/sys/kernel/zero\-paged\fP (только на PowerPC) Этот файл содержит флаг. Когда он установлен (не ноль), Linux\-PPC будет размещать заранее обнулённые страницы в цикле простоя, что возможно увеличит скорость выполнения get_free_pages. .TP \fI/proc/sys/net\fP Этот каталог содержит некоторую информацию по функционированию сетевой подсистемы. Описание некоторых файлов в этом каталоге можно найти в \fBtcp\fP(7) и \fBip\fP(7). .TP \fI/proc/sys/net/core/bpf_jit_enable\fP Смотрите \fBbpf\fP(2). .TP \fI/proc/sys/net/core/somaxconn\fP Этот файл определяет наименьшее значение параметра \fIbacklog\fP системного вызова \fBlisten\fP(2); подробности смотрите в справочной странице \fBlisten\fP(2). .TP \fI/proc/sys/proc\fP Данный каталог может быть пуст. .TP \fI/proc/sys/sunrpc\fP Данный каталог поддерживает удалённый вызов процедур Sun для сетевой файловой системы (NFS). В некоторых системах его нет. .TP \fI/proc/sys/user\fP (начиная с Linux 4.9) Смотрите в \fBnamespaces\fP(7). .TP \fI/proc/sys/vm\fP Этот каталог содержит файлы для тонкой настройки управления памятью, буферами и кэшем. .TP \fI/proc/sys/vm/overcommit_kbytes\fP (начиная с Linux 3.10) .\" commit 4eeab4f5580d11bffedc697684b91b0bca0d5009 В данном файле задаётся количество свободной памяти (в КиБ) в системе, которое должно быть зарезервировано для пользователей с мандатом \fBCAP_SYS_ADMIN\fP. .IP Значение по умолчанию равно минимум от [3% свободных страниц, 8МиБ], выраженное в КиБ. Этого достаточно для того, чтобы суперпользователь смог войти и удалить процесс, если нужно, когда система работает в режиме по умолчанию — «угадывание» перерасхода (т. е., 0 в \fI/proc/sys/vm/overcommit_memory\fP). .IP Для систем, работающих в режиме «без перерасхода» (overcommit never) (т. е., 2 в \fI/proc/sys/vm/overcommit_memory\fP) нужно увеличить значение в этом файле с учётом полного размера виртуальной памяти для программ, используемых при восстановлении (например, \fBlogin\fP(1) \fBssh\fP(1) и \fBtop\fP(1)). В противном случае суперпользователь не сможет войти для восстановления системы. Например, на x86\-64 подходящим значением будет 131072 (резервируется 128 МиБ). .IP Изменение этого значения влияет на последующие запросы памяти приложениями. .TP \fI/proc/sys/vm/compact_memory\fP (начиная с Linux 2.6.35) При записи в этот файл 1 все зоны уплотняются так, чтобы свободная память была непрерывными блоками насколько это возможно. Результат этого действия можно оценить по файлу \fI/proc/buddyinfo\fP. .IP Доступен только, если ядро собрано с параметром \fBCONFIG_COMPACTION\fP. .TP \fI/proc/sys/vm/drop_caches\fP (начиная с Linux 2.6.16) Запись в этот файл заставляет ядро сбросить чистые кэши, dentries и индексные дескрипторы из памяти, тем самым освобождая её. Это может быть полезно для тестирования управления памятью и выполнения воспроизводимых тестов производительности файловой системы. Так как запись в этот файл вызывает потерю преимуществ кэширования, это может снизить производительность системы в целом. .IP Для освобождения страничного кэша (pagecache) используйте: .IP .in +4n .EX echo 1 > /proc/sys/vm/drop_caches .EE .in .IP Для освобождения dentries и индексных дескрипторов используйте: .IP .in +4n .EX echo 2 > /proc/sys/vm/drop_caches .EE .in .IP Для освобождения страничного кэша, dentries и индексных дескрипторов используйте: .IP .in +4n .EX echo 3 > /proc/sys/vm/drop_caches .EE .in .IP Так как запись в этот файл — неразрушающая операция и изменившиеся (dirty) объекты не свободны, пользователь сначала должен запустить команду \fBsync\fP(1). .TP \fI/proc/sys/vm/sysctl_hugetlb_shm_group\fP (начиная с 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 \fBCAP_IPC_LOCK\fP capability; see \fBmemfd_create\fP(2), \fBmmap\fP(2), and \fBshmget\fP(2). .TP \fI/proc/sys/vm/legacy_va_layout\fP (начиная с Linux 2.6.9) .\" The following is from Documentation/filesystems/proc.txt Если не равно нулю, то новая раскладка 32\-битного отображения памяти выключается; ядро будет использовать старую (2.4) раскладку для всех процессов. .TP \fI/proc/sys/vm/memory_failure_early_kill\fP (начиная с Linux 2.6.32) .\" The following is based on the text in Documentation/sysctl/vm.txt Управляет, как завершать процессы, когда неисправленная ошибка памяти (обычно, 2\-битная ошибка в модуле памяти), которая не может быть обработана ядром, обнаружена в фоновом режиме аппаратным обеспечением. В некоторых случаях (например, когда страница имеет правильную копию на диске), ядро может может прозрачно исправить ошибку без влияния на приложения. Но если актуальной копии данных нет, то ядро завершит процесс, чтобы остановить распространение повреждения данных. .IP В файле содержатся следующие значения: .RS .TP \fB1\fP При обнаружении завершать все процессы, у которых есть повреждённые и не восстановимые с диска страницы. Заметим, что это поддерживается не для всех типов страниц, например для внутренних данных ядра или кэша подкачки, но работает для большинства пользовательских страниц. .TP \fB0\fP Отключить отображение повреждённой страницы у всех процессов и завершать процессы, только если они пытаются к ней обратиться. .RE .IP Такое завершение выполняется с использованием сигнала \fBSIGBUS\fP с установления значения \fIsi_code\fP равным \fBBUS_MCEERR_AO\fP. Процессы могут обработать такую ситуацию, если захотят; подробней см. \fBsigaction\fP(2). .IP Это свойство активно только на архитектурах/платформах с дополнительными проверки и зависит от возможностей аппаратного обеспечения. .IP Приложения могут изменить настройку \fImemory_failure_early_kill\fP для себя с помощью операции \fBPR_MCE_KILL\fP вызова \fBprctl\fP(2). .IP Доступен только, если ядро собрано с параметром \fBCONFIG_MEMORY_FAILURE\fP. .TP \fI/proc/sys/vm/memory_failure_recovery\fP (начиная с Linux 2.6.32) .\" The following is based on the text in Documentation/sysctl/vm.txt Включает восстановление отказов памяти (если поддерживается платформой). .RS .TP \fB1\fP Пытаться восстановить. .TP \fB0\fP При отказе памяти всегда доводить до паники. .RE .IP Доступен только, если ядро собрано с параметром \fBCONFIG_MEMORY_FAILURE\fP. .TP \fI/proc/sys/vm/oom_dump_tasks\fP (начиная с Linux 2.6.25) .\" The following is from Documentation/sysctl/vm.txt Включает системный дамп задач (исключая ядерные нити), который создаётся когда ядро выполняет OOM\-killing. Дамп включает следующую информацию по каждой задаче (нити, процессу): ID нити, реальный ID пользователя, ID группы нитей (ID процесса), размер виртуальной памяти, размер резидентной настройки, процессор, на котором работала задача, счётчик oom_adj (описание смотрите в \fI/proc/\fPpid\fI/oom_adj\fP) и имя команды. Эти данные полезны для определения того, почему был вызван OOM\-killer и нахождения экземпляра задачи, его вызвавшего. .IP Если в файле содержится нулевое значение, то информация не выдаётся. На очень больших системах с тысячами задач дамп информации о состоянии памяти может быть неосуществим по каждой задаче. Системы не должны страдать от потери производительности из\-за возникновения ситуаций с OOM, если такая информация ненужна. .IP Если задано ненулевое значение, то эта информация показывается в момент когда OOM\-killer завершает захватившую память задачу. .IP Значение по умолчанию равно 0. .TP \fI/proc/sys/vm/oom_kill_allocating_task\fP (начиная с Linux 2.6.24) .\" The following is from Documentation/sysctl/vm.txt Включает или выключает задачу завершения при OOM (исчерпание свободной памяти). .IP Если это значение равно нулю, то OOM\-killer будет сканировать весь список задач и выбирать задачу для завершения на основе набора эвристических правил. Обычно выбирается задача, которая больше всех захватила памяти, что при её завершении позволит освободить огромное количество памяти. .IP Если это значение не равно нулю, то OOM\-killer просто завершит задачу, из\-за которой возникла ситуация нехватки памяти. Это позволяет избежать затратной операции сканирования списка задач. .IP Если \fI/proc/sys/vm/panic_on_oom\fP не равно нулю, то оно имеет приоритет над значением из \fI/proc/sys/vm/oom_kill_allocating_task\fP. .IP Значение по умолчанию равно 0. .TP \fI/proc/sys/vm/overcommit_kbytes\fP (начиная с Linux 3.14) .\" commit 49f0ce5f92321cdcf741e35f385669a421013cb7 Данный, доступный на запись файл является альтернативой управлению \fICommitLimit\fP через \fI/proc/sys/vm/overcommit_ratio\fP, когда \fI/proc/sys/vm/overcommit_memory\fP содержит значение 2. Это позволяет задать количество перерасходуемой памяти (memory overcommitting) абсолютным значением (в КБ), а не в виде процента, как это делается через \fIovercommit_ratio\fP. Это предоставляет более точный контроль \fICommitLimit\fP в системах с очень большим объёмом памяти. .IP Может задействовать либо \fIovercommit_kbytes\fP, либо \fIovercommit_ratio\fP: если значение \fIovercommit_kbytes\fP не равно нулю, то оно используется для вычисления, в противном случае используется \fIovercommit_ratio\fP. Запись значения в один из этих файлов приводит к обнулению значения в другом файле. .TP \fI/proc/sys/vm/overcommit_memory\fP Этот файл содержит значение режима учёта виртуальной памяти ядра. Значения: .RS .IP 0: эвристический перерасход (значение по умолчанию) .br 1: всегда разрешать перерасход, не проверять .br 2: всегда проверять, запретить перерасход .RE .IP В режиме 0 вызов \fBmmap\fP(2) с \fBMAP_NORESERVE\fP не проверяется, и проверка по умолчанию очень поверхностная, что может привести к завершению процесса с помощью OOM\-killer. .IP 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. .IP В режиме 2 (доступен начиная с Linux 2.6), общее виртуальное адресное пространство, которое можно выделить (\fICommitLimit\fP в \fI/proc/meminfo\fP) вычисляется по формуле .IP .in +4n .EX CommitLimit = (total_RAM \- total_huge_TLB) * overcommit_ratio / 100 + total_swap .EE .in .IP где: .RS .IP \[bu] 3 \fItotal_RAM\fP — общее количество физической памяти в системе; .IP \[bu] \fItotal_huge_TLB\fP — количество памяти без учёта огромных страниц; .IP \[bu] \fIovercommit_ratio\fP — значение в \fI/proc/sys/vm/overcommit_ratio\fP; и .IP \[bu] \fItotal_swap\fP — размер пространства подкачки. .RE .IP Например, в системе с 16 ГБ физической памяти, 16 ГБ подкачки, без выделения огромных страниц и с \fIovercommit_ratio\fP равным 50 по этой формуле значение \fICommitLimit\fP равно 24 ГБ. .IP Начиная с Linux 3.14, если значение в \fI/proc/sys/vm/overcommit_kbytes\fP не равно нулю, то \fICommitLimit\fP вычисляется так: .IP .in +4n .EX CommitLimit = overcommit_kbytes + total_swap .EE .in .IP Также смотрите описание \fI/proc/sys/vm/admin_reserve_kbytes\fP и \fI/proc/sys/vm/user_reserve_kbytes\fP. .TP \fI/proc/sys/vm/overcommit_ratio\fP (начиная с Linux 2.6.0) Доступный на запись файл содержит процент памяти, который может быть перерасходован (overcommitted). Значение по умолчанию равно 50. Смотрите описание \fI/proc/sys/vm/overcommit_memory\fP. .TP \fI/proc/sys/vm/panic_on_oom\fP (начиная с Linux 2.6.18) .\" The following is adapted from Documentation/sysctl/vm.txt Включает или отключает панику ядра при нехватке памяти. .IP Если значение равно 0, то ядерный OOM\-killer завершит какой\-нибудь вышедший из подчинения процесс. Обычно, OOM\-killer способен завершить такой процесс и система продолжит работу. .IP Если значение в файле равно 1, то ядро, обычно, переходит в состояние паники при нехватке памяти. Однако, если процесс ограничен в выделении определённых элементов (nodes) согласно политике памяти (\fBmbind\fP(2) \fBMPOL_BIND\fP) или процессора (\fBcpuset\fP(7)) и предел таких элементов памяти был достигнут, то такой процесс может быть завершён OOM\-killer. В этом случае состояние паники не возникнет, так как другие элементы памяти могут освободиться, что означает, что система в целом может не прийти к ситуации нехватки памяти. .IP Если значение в файле равно 2, то ядро всегда переходит в состояние паники, когда возникает нехватка памяти. .IP Значение по умолчанию равно 0. Значение 1 и 2 используются для отказоустойчивости кластеров. Выберите любое согласно вашей политике отказоустойчивости. .TP \fI/proc/sys/vm/swappiness\fP .\" The following is from Documentation/sysctl/vm.txt Значение в этом файле определяет, насколько активно ядро будет вытеснять страницы в пространство подкачки. Большие значения увеличивают активность, меньшие значения сокращают активность. По умолчанию значение равно 60. .TP \fI/proc/sys/vm/user_reserve_kbytes\fP (начиная с Linux 3.10) .\" commit c9b1d0981fcce3d9976d7b7a56e4e0503bc610dd Задаёт количество памяти (в КиБ), которая резервируется под процессы пользователя. Предназначена для предотвращения запуска пользовательского процесса, который бы один съел всю память и это нельзя прекратить (завершить такой процесс). Это значение учитывается только, если значение в \fI/proc/sys/vm/overcommit_memory\fP равно 2 (режим «без перерасхода»). В этом случае система резервирует количество памяти, равное, минимум [3% от размера текущего процесса, \fIuser_reserve_kbytes\fP]. .IP Значение по умолчанию равно минимум [3% свободных страниц, 128 МиБ], выражается в КиБ. .IP Если значение в файле равно нулю, то пользователю разрешено выделять всю память под один процесс (за минусом резерва из \fI/proc/sys/vm/admin_reserve_kbytes\fP). Любая последующая попытка выполнить команду будет завершаться «fork: невозможно выделить память». .IP Изменение этого значения влияет на последующие запросы памяти приложениями. .TP \fI/proc/sys/vm/unprivileged_userfaultfd\fP (начиная с Linux 5.2) .\" cefdca0a86be517bc390fc4541e3674b8e7803b0 This (writable) file exposes a flag that controls whether unprivileged processes are allowed to employ \fBuserfaultfd\fP(2). If this file has the value 1, then unprivileged processes may use \fBuserfaultfd\fP(2). If this file has the value 0, then only processes that have the \fBCAP_SYS_PTRACE\fP capability may employ \fBuserfaultfd\fP(2). The default value in this file is 1. .TP \fI/proc/sysrq\-trigger\fP (начиная с Linux 2.4.21) .\" commit 9d85025b0418163fae079c9ba8f8445212de8568 Запись символа в этот файл приводит к вызову функции SysRq, как если бы была нажата <клавиша> ALT\-SysRq (смотрите описание \fI/proc/sys/kernel/sysrq\fP). Обычно, этот файл доступен на запись только \fIroot\fP. Дополнительную информацию смотрите в исходном коде ядра Linux в файле \fIDocumentation/admin\-guide/sysrq.rst\fP (или \fIDocumentation/sysrq.txt\fP до Linux 4.10). .TP \fI/proc/sysvipc\fP Подкаталог содержит псевдо\-файлы \fImsg\fP, \fIsem\fP и \fIshm\fP.Эти файлы описывают объекты межпроцессного взаимодействия (System V Interprocess Communication (IPC)) (соответственно: очереди сообщений, семафоры и общую память), которые существуют в системе в настоящий момент. Похожая информация предоставляется через \fBipcs\fP(1). Эти файлы имеют заголовки и форматируются (по одному IPC объекту на строку) для более лёгкого понимания. В \fBsysvipc\fP(7) представлена подробное описание информации в этих файлах. .TP \fI/proc/thread\-self\fP (начиная с Linux 3.17) .\" commit 0097875bd41528922fb3bb5f348c53f17e00e2fd Этот каталог ссылает на нить, обращающуюся к файловой системе \fI/proc\fP, и он идентичен каталогу \fI/proc/self/task/\fPtid, где в имени ID нити процесса (\fItid\fP) — эта же нить. .TP \fI/proc/timer_list\fP (начиная с Linux 2.6.21) .\" commit 289f480af87e45f7a6de6ba9b4c061c2e259fe98 Этот файл, доступный только для чтения, содержит список всех ожидающих в данный момент таймеров (высокой точности), всех источников событий часов и их параметры. .TP \fI/proc/timer_stats\fP (Linux 2.6.21 по Linux 4.10) .\" commit 82f67cd9fca8c8762c15ba7ed0d5747588c1e221 .\" Date: Fri Feb 16 01:28:13 2007 -0800 .\" Text largely derived from Documentation/timers/timer_stats.txt .\" removed in commit dfb4357da6ddbdf57d583ba64361c9d792b0e0b1 .\" Date: Wed Feb 8 11:26:59 2017 -0800 Это отладочное средство делает таймер, используемый в системе Linux, видимым разработчикам ядра и в пользовательском пространстве. Оно может использоваться для проверки отсутствия чрезмерной нагрузки на таймеры. Цель — для оптимизации потребления энергии избежать ненужных пробуждений. .IP Если включено в ядре (\fBCONFIG_TIMER_STATS\fP) и не используется, то почти не задействует процессор и потребляет относительно малое количество памяти под структуры данных. Даже включённый в время выполнения сбор статистики не даёт высокой нагрузки: все блокировки относятся к ЦП, а поиск хэшируется. .IP Файл \fI/proc/timer_stats\fP используется для управления функцией сборки и чтения полученных результатов. .IP Средство \fItimer_stats\fP при запуске системы неактивно. Период тестирования может быть запущен командой: .IP .in +4n .EX # echo 1 > /proc/timer_stats .EE .in .IP Следующая команда остановит период тестирования: .IP .in +4n .EX # echo 0 > /proc/timer_stats .EE .in .IP Статистику можно получить так: .IP .in +4n .EX $ cat /proc/timer_stats .EE .in .IP На время действия периода сбора каждым чтением \fI/proc/timer_stats\fP можно получить обновлённую статистику. После выключения сбора статистика останется доступной до следующего начала периода сбора. Это позволяет читать несколько раз. .IP Пример статистики из \fI/proc/timer_stats\fP: .IP .in +4n .EX $\fB cat /proc/timer_stats\fP 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 .EE .in .IP Выводимые столбцы: .RS .IP [1] 5 .\" commit c5c061b8f9726bc2c25e19dec227933a13d1e6b7 deferrable timers a count of the number of events, optionally (since Linux 2.6.23) followed by the letter \[aq]D\[aq] if this is a deferrable timer; .IP [2] PID процесса, который инициализировал таймер; .IP [3] имя процесса, который инициализировал таймер; .IP [4] the function where the timer was initialized; and (in parentheses) the callback function that is associated with the timer. .RE .IP В течении цикла разработки Linux 4.11 этот файл был удалён из\-за проблем с безопасностью, так как выдавал информацию всем пространствам имён. Кроме этого, подобную информацию можно получить через встроенные в ядро возможности трассировки, например через ftrace. .TP \fI/proc/tty\fP Подкаталог, содержащий псевдо\-файлы и подкаталоги драйверов tty и параметры линий. .TP \fI/proc/uptime\fP Этот файл содержит два числа (значения в секундах): время работы системы с момента загрузки (включая время, проведённой режиме приостанова) и время, которое система провела в состоянии простоя. .TP \fI/proc/version\fP Строка, идентифицирующая версию ядра, которое запущено в данный момент. Она включает содержимое \fI/proc/sys/kernel/ostype\fP, \fI/proc/sys/kernel/osrelease\fP и \fI/proc/sys/kernel/version\fP. Пример: .IP .in +4n .EX Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994 .EE .in .\" FIXME 2.6.13 seems to have /proc/vmcore implemented; document this .\" See Documentation/kdump/kdump.txt .\" commit 666bfddbe8b8fd4fd44617d6c55193d5ac7edb29 .\" Needs CONFIG_VMCORE .\" .TP \fI/proc/vmstat\fP (начиная с Linux 2.6.0) .\" FIXME We need explanations for each of the following fields... Этот файл отражает различную статистику виртуальной памяти. Каждая строка файла содержит одну пару имя\-значение (через пробел). Некоторые строки присутствуют только, если ядро собрано с соответствующим параметром (в некоторых случаях требуемые параметры в различные в разных версиях ядер и не перечислены здесь. Подробности можно найти в исходном коде ядра). Существуют следующие поля: .RS .TP \fInr_free_pages\fP (начиная с Linux 2.6.31) .\" commit d23ad42324cc4378132e51f2fc5c9ba6cbe75182 .TP \fInr_alloc_batch\fP (начиная с Linux 3.12) .\" commit 81c0a2bb515fd4daae8cab64352877480792b515 .TP \fInr_inactive_anon\fP (начиная с Linux 2.6.28) .\" commit 4f98a2fee8acdb4ac84545df98cccecfd130f8db .TP \fInr_active_anon\fP (начиная с Linux 2.6.28) .\" commit 4f98a2fee8acdb4ac84545df98cccecfd130f8db .TP \fInr_inactive_file\fP (начиная с Linux 2.6.28) .\" commit 4f98a2fee8acdb4ac84545df98cccecfd130f8db .TP \fInr_active_file\fP (начиная с Linux 2.6.28) .\" commit 4f98a2fee8acdb4ac84545df98cccecfd130f8db .TP \fInr_unevictable\fP (начиная с Linux 2.6.28) .\" commit 7b854121eb3e5ba0241882ff939e2c485228c9c5 .TP \fInr_mlock\fP (начиная с Linux 2.6.28) .\" commit 5344b7e648980cc2ca613ec03a56a8222ff48820 .TP \fInr_anon_pages\fP (начиная с Linux 2.6.18) .\" commit f3dbd34460ff54962d3e3244b6bcb7f5295356e6 .TP \fInr_mapped\fP (начиная с Linux 2.6.0) .TP \fInr_file_pages\fP (начиная с Linux 2.6.18) .\" commit 347ce434d57da80fd5809c0c836f206a50999c26 .TP \fInr_dirty\fP (начиная с Linux 2.6.0) .TP \fInr_writeback\fP (начиная с Linux 2.6.0) .TP \fInr_slab_reclaimable\fP (начиная с Linux 2.6.19) .\" commit 972d1a7b140569084439a81265a0f15b74e924e0 .\" Linux 2.6.0 had nr_slab .TP \fInr_slab_unreclaimable\fP (начиная с Linux 2.6.19) .\" commit 972d1a7b140569084439a81265a0f15b74e924e0 .TP \fInr_page_table_pages\fP (начиная с Linux 2.6.0) .TP \fInr_kernel_stack\fP (начиная с Linux 2.6.32) .\" commit c6a7f5728a1db45d30df55a01adc130b4ab0327c Количество памяти, выделенное под стеки ядра. .TP \fInr_unstable\fP (начиная с Linux 2.6.0) .TP \fInr_bounce\fP (начиная с Linux 2.6.12) .\" commit edfbe2b0038723e5699ab22695ccd62b5542a5c1 .TP \fInr_vmscan_write\fP (начиная с Linux 2.6.19) .\" commit e129b5c23c2b471d47f1c5d2b8b193fc2034af43 .TP \fInr_vmscan_immediate_reclaim\fP (начиная с Linux 3.2) .\" commit 49ea7eb65e7c5060807fb9312b1ad4c3eab82e2c .TP \fInr_writeback_temp\fP (начиная с Linux 2.6.26) .\" commit fc3ba692a4d19019387c5acaea63131f9eab05dd .TP \fInr_isolated_anon\fP (начиная с Linux 2.6.32) .\" commit a731286de62294b63d8ceb3c5914ac52cc17e690 .TP \fInr_isolated_file\fP (начиная с Linux 2.6.32) .\" commit a731286de62294b63d8ceb3c5914ac52cc17e690 .TP \fInr_shmem\fP (начиная с Linux 2.6.32) .\" commit 4b02108ac1b3354a22b0d83c684797692efdc395 Страницы, используемые shmem и \fBtmpfs\fP(5). .TP \fInr_dirtied\fP (начиная с Linux 2.6.37) .\" commit ea941f0e2a8c02ae876cd73deb4e1557248f258c .TP \fInr_written\fP (начиная с Linux 2.6.37) .\" commit ea941f0e2a8c02ae876cd73deb4e1557248f258c .TP \fInr_pages_scanned\fP (начиная с Linux 3.17) .\" commit 0d5d823ab4e608ec7b52ac4410de4cb74bbe0edd .TP \fInuma_hit\fP (начиная с Linux 2.6.18) .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5 .\" Present only if the kernel was configured with .\" .BR CONFIG_NUMA . .TP \fInuma_miss\fP (начиная с Linux 2.6.18) .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5 .\" Present only if the kernel was configured with .\" .BR CONFIG_NUMA . .TP \fInuma_foreign\fP (начиная с Linux 2.6.18) .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5 .\" Present only if the kernel was configured with .\" .BR CONFIG_NUMA . .TP \fInuma_interleave\fP (начиная с Linux 2.6.18) .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5 .\" Present only if the kernel was configured with .\" .BR CONFIG_NUMA . .TP \fInuma_local\fP (начиная с Linux 2.6.18) .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5 .\" Present only if the kernel was configured with .\" .BR CONFIG_NUMA . .TP \fInuma_other\fP (начиная с Linux 2.6.18) .\" commit ca889e6c45e0b112cb2ca9d35afc66297519b5d5 .\" Present only if the kernel was configured with .\" .BR CONFIG_NUMA . .TP \fIworkingset_refault\fP (начиная с Linux 3.15) .\" commit a528910e12ec7ee203095eb1711468a66b9b60b0 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIworkingset_activate\fP (начиная с Linux 3.15) .\" commit a528910e12ec7ee203095eb1711468a66b9b60b0 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIworkingset_nodereclaim\fP (начиная с Linux 3.15) .\" commit 449dd6984d0e47643c04c807f609dd56d48d5bcc .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fInr_anon_transparent_hugepages\fP (начиная с Linux 2.6.38) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fInr_free_cma\fP (начиная с Linux 3.7) .\" commit d1ce749a0db12202b711d1aba1d29e823034648d .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . Количество свободных страниц CMA (выделитель непрерывной памяти). .TP \fInr_dirty_threshold\fP (начиная с Linux 2.6.37) .\" commit 79da826aee6a10902ef411bc65864bd02102fa83 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fInr_dirty_background_threshold\fP (начиная с Linux 2.6.37) .\" commit 79da826aee6a10902ef411bc65864bd02102fa83 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgpgin\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgpgout\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpswpin\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpswpout\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgalloc_dma\fP (начиная с Linux 2.6.5) .\" Linux 2.6.0 had pgalloc .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgalloc_dma32\fP (начиная с Linux 2.6.16) .\" commit 9328b8faae922e52073785ed6c1eaa8565648a0e .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgalloc_normal\fP (начиная с Linux 2.6.5) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgalloc_high\fP (начиная с Linux 2.6.5) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_HIGHMEM . .TP \fIpgalloc_movable\fP (начиная с Linux 2.6.23) .\" commit 2a1e274acf0b1c192face19a4be7c12d4503eaaf .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgfree\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgactivate\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgdeactivate\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgfault\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgmajfault\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgrefill_dma\fP (начиная с Linux 2.6.5) .\" Linux 2.6.0 had pgrefill .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgrefill_dma32\fP (начиная с Linux 2.6.16) .\" commit 9328b8faae922e52073785ed6c1eaa8565648a0e .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgrefill_normal\fP (начиная с Linux 2.6.5) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgrefill_high\fP (начиная с Linux 2.6.5) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_HIGHMEM . .TP \fIpgrefill_movable\fP (начиная с Linux 2.6.23) .\" commit 2a1e274acf0b1c192face19a4be7c12d4503eaaf .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .\" Formerly there were .\" pgsteal_high .\" pgsteal_normal .\" pgsteal_dma32 .\" pgsteal_dma .\" These were split out into pgsteal_kswapd* and pgsteal_direct* .\" in commit 904249aa68010c8e223263c922fcbb840a3f42e4 .TP \fIpgsteal_kswapd_dma\fP (начиная с Linux 3.4) .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4 .\" Linux 2.6.0 had pgsteal .\" Present only if the kernel was configured with .\" .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgsteal_kswapd_dma32\fP (начиная с Linux 3.4) .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4 .\" commit 9328b8faae922e52073785ed6c1eaa8565648a0e .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgsteal_kswapd_normal\fP (начиная с Linux 3.4) .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgsteal_kswapd_high\fP (начиная с Linux 3.4) .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_HIGHMEM . .TP \fIpgsteal_kswapd_movable\fP (начиная с Linux 3.4) .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgsteal_direct_dma\fP .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgsteal_direct_dma32\fP (начиная с Linux 3.4) .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgsteal_direct_normal\fP (начиная с Linux 3.4) .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgsteal_direct_high\fP (начиная с Linux 3.4) .\" commit 904249aa68010c8e223263c922fcbb840a3f42e4 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_HIGHMEM . .TP \fIpgsteal_direct_movable\fP (начиная с Linux 2.6.23) .\" commit 2a1e274acf0b1c192face19a4be7c12d4503eaaf .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgscan_kswapd_dma\fP .\" Linux 2.6.0 had pgscan .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgscan_kswapd_dma32\fP (начиная с Linux 2.6.16) .\" commit 9328b8faae922e52073785ed6c1eaa8565648a0e .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgscan_kswapd_normal\fP (начиная с Linux 2.6.5) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgscan_kswapd_high\fP .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_HIGHMEM . .TP \fIpgscan_kswapd_movable\fP (начиная с Linux 2.6.23) .\" commit 2a1e274acf0b1c192face19a4be7c12d4503eaaf .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgscan_direct_dma\fP .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgscan_direct_dma32\fP (начиная с Linux 2.6.16) .\" commit 9328b8faae922e52073785ed6c1eaa8565648a0e .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgscan_direct_normal\fP .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgscan_direct_high\fP .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_HIGHMEM . .TP \fIpgscan_direct_movable\fP (начиная с Linux 2.6.23) .\" commit 2a1e274acf0b1c192face19a4be7c12d4503eaaf .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgscan_direct_throttle\fP (начиная с Linux 3.6) .\" commit 68243e76ee343d63c6cf76978588a885951e2818 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIzone_reclaim_failed\fP (начиная с Linux 2.6.31) .\" commit 24cf72518c79cdcda486ed26074ff8151291cf65 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_NUMA . .TP \fIpginodesteal\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIslabs_scanned\fP (начиная с Linux 2.6.5) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIkswapd_inodesteal\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIkswapd_low_wmark_hit_quickly\fP (since Linux 2.6.33) .\" commit bb3ab596832b920c703d1aea1ce76d69c0f71fb7 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIkswapd_high_wmark_hit_quickly\fP (since Linux 2.6.33) .\" commit bb3ab596832b920c703d1aea1ce76d69c0f71fb7 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpageoutrun\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIallocstall\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIpgrotated\fP (начиная с Linux 2.6.0) .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIdrop_pagecache\fP (начиная с Linux 3.15) .\" commit 5509a5d27b971a90b940e148ca9ca53312e4fa7a .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIdrop_slab\fP (начиная с Linux 3.15) .\" commit 5509a5d27b971a90b940e148ca9ca53312e4fa7a .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fInuma_pte_updates\fP (начиная с Linux 3.8) .\" commit 03c5a6e16322c997bf8f264851bfa3f532ad515f .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_NUMA_BALANCING . .TP \fInuma_huge_pte_updates\fP (начиная с Linux 3.13) .\" commit 72403b4a0fbdf433c1fe0127e49864658f6f6468 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_NUMA_BALANCING . .TP \fInuma_hint_faults\fP (начиная с Linux 3.8) .\" commit 03c5a6e16322c997bf8f264851bfa3f532ad515f .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_NUMA_BALANCING . .TP \fInuma_hint_faults_local\fP (начиная с Linux 3.8) .\" commit 03c5a6e16322c997bf8f264851bfa3f532ad515f .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_NUMA_BALANCING . .TP \fInuma_pages_migrated\fP (начиная с Linux 3.8) .\" commit 03c5a6e16322c997bf8f264851bfa3f532ad515f .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_NUMA_BALANCING .\" and .\" .BR CONFIG_NUMA_BALANCING . .TP \fIpgmigrate_success\fP (начиная с Linux 3.8) .\" commit 5647bc293ab15f66a7b1cda850c5e9d162a6c7c2 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_MIGRATION . .TP \fIpgmigrate_fail\fP (начиная с Linux 3.8) .\" commit 5647bc293ab15f66a7b1cda850c5e9d162a6c7c2 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_MIGRATION . .TP \fIcompact_migrate_scanned\fP (начиная с Linux 3.8) .\" commit 397487db696cae0b026a474a5cd66f4e372995e6 .\" Linux 3.8 dropped compact_blocks_moved, compact_pages_moved, and .\" compact_pagemigrate_failed .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_COMPACTION . .TP \fIcompact_free_scanned\fP (начиная с Linux 3.8) .\" commit 397487db696cae0b026a474a5cd66f4e372995e6 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_COMPACTION . .TP \fIcompact_isolated\fP (начиная с Linux 3.8) .\" commit 397487db696cae0b026a474a5cd66f4e372995e6 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_COMPACTION . .TP \fIcompact_stall\fP (начиная с Linux 2.6.35) .\" commit 56de7263fcf3eb10c8dcdf8d59a9cec831795f3f .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_COMPACTION . Смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/transhuge.rst\fP. .TP \fIcompact_fail\fP (начиная с Linux 2.6.35) .\" commit 56de7263fcf3eb10c8dcdf8d59a9cec831795f3f .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_COMPACTION . Смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/transhuge.rst\fP. .TP \fIcompact_success\fP (начиная с Linux 2.6.35) .\" commit 56de7263fcf3eb10c8dcdf8d59a9cec831795f3f .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_COMPACTION . Смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/transhuge.rst\fP. .TP \fIhtlb_buddy_alloc_success\fP (начиная с Linux 2.6.26) .\" commit 3b1163006332302117b1b2acf226d4014ff46525 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_HUGETLB_PAGE . .TP \fIhtlb_buddy_alloc_fail\fP (начиная с Linux 2.6.26) .\" commit 3b1163006332302117b1b2acf226d4014ff46525 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_HUGETLB_PAGE . .TP \fIunevictable_pgs_culled\fP (начиная с Linux 2.6.28) .\" commit bbfd28eee9fbd73e780b19beb3dc562befbb94fa .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIunevictable_pgs_scanned\fP (начиная с Linux 2.6.28) .\" commit bbfd28eee9fbd73e780b19beb3dc562befbb94fa .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIunevictable_pgs_rescued\fP (начиная с Linux 2.6.28) .\" commit bbfd28eee9fbd73e780b19beb3dc562befbb94fa .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIunevictable_pgs_mlocked\fP (начиная с Linux 2.6.28) .\" commit 5344b7e648980cc2ca613ec03a56a8222ff48820 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIunevictable_pgs_munlocked\fP (начиная с Linux 2.6.28) .\" commit 5344b7e648980cc2ca613ec03a56a8222ff48820 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIunevictable_pgs_cleared\fP (начиная с Linux 2.6.28) .\" commit 5344b7e648980cc2ca613ec03a56a8222ff48820 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .TP \fIunevictable_pgs_stranded\fP (начиная с Linux 2.6.28) .\" commit 5344b7e648980cc2ca613ec03a56a8222ff48820 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS . .\" Linux 3.7 removed unevictable_pgs_mlockfreed .TP \fIthp_fault_alloc\fP (начиная с Linux 2.6.39) .\" commit 81ab4201fb7d91d6b0cd9ad5b4b16776e4bed145 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_TRANSPARENT_HUGEPAGE . Смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/transhuge.rst\fP. .TP \fIthp_fault_fallback\fP (начиная с Linux 2.6.39) .\" commit 81ab4201fb7d91d6b0cd9ad5b4b16776e4bed145 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_TRANSPARENT_HUGEPAGE . Смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/transhuge.rst\fP. .TP \fIthp_collapse_alloc\fP (начиная с Linux 2.6.39) .\" commit 81ab4201fb7d91d6b0cd9ad5b4b16776e4bed145 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_TRANSPARENT_HUGEPAGE . Смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/transhuge.rst\fP. .TP \fIthp_collapse_alloc_failed\fP (начиная с Linux 2.6.39) .\" commit 81ab4201fb7d91d6b0cd9ad5b4b16776e4bed145 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_TRANSPARENT_HUGEPAGE . Смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/transhuge.rst\fP. .TP \fIthp_split\fP (начиная с Linux 2.6.39) .\" commit 81ab4201fb7d91d6b0cd9ad5b4b16776e4bed145 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_TRANSPARENT_HUGEPAGE . Смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/transhuge.rst\fP. .TP \fIthp_zero_page_alloc\fP (начиная с Linux 3.8) .\" commit d8a8e1f0da3d29d7268b3300c96a059d63901b76 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_TRANSPARENT_HUGEPAGE . Смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/transhuge.rst\fP. .TP \fIthp_zero_page_alloc_failed\fP (начиная с Linux 3.8) .\" commit d8a8e1f0da3d29d7268b3300c96a059d63901b76 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_TRANSPARENT_HUGEPAGE . Смотрите файл исходного кода ядра \fIDocumentation/admin\-guide/mm/transhuge.rst\fP. .TP \fIballoon_inflate\fP (начиная с Linux 3.18) .\" commit 09316c09dde33aae14f34489d9e3d243ec0d5938 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_MEMORY_BALLOON . .TP \fIballoon_deflate\fP (начиная с Linux 3.18) .\" commit 09316c09dde33aae14f34489d9e3d243ec0d5938 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS .\" and .\" .BR CONFIG_MEMORY_BALLOON . .TP \fIballoon_migrate\fP (начиная с Linux 3.18) .\" commit 09316c09dde33aae14f34489d9e3d243ec0d5938 .\" Present only if the kernel was configured with .\" .BR CONFIG_VM_EVENT_COUNTERS , .\" .BR CONFIG_MEMORY_BALLOON , .\" and .\" .BR CONFIG_BALLOON_COMPACTION . .TP \fInr_tlb_remote_flush\fP (начиная с Linux 3.12) .\" commit 9824cf9753ecbe8f5b47aa9b2f218207defea211 .\" Present only if the kernel was configured with .\" .BR CONFIG_DEBUG_TLBFLUSH .\" and .\" .BR CONFIG_SMP . .TP \fInr_tlb_remote_flush_received\fP (начиная с Linux 3.12) .\" commit 9824cf9753ecbe8f5b47aa9b2f218207defea211 .\" Present only if the kernel was configured with .\" .BR CONFIG_DEBUG_TLBFLUSH .\" and .\" .BR CONFIG_SMP . .TP \fInr_tlb_local_flush_all\fP (начиная с Linux 3.12) .\" commit 9824cf9753ecbe8f5b47aa9b2f218207defea211 .\" Present only if the kernel was configured with .\" .BR CONFIG_DEBUG_TLBFLUSH . .TP \fInr_tlb_local_flush_one\fP (начиная с Linux 3.12) .\" commit 9824cf9753ecbe8f5b47aa9b2f218207defea211 .\" Present only if the kernel was configured with .\" .BR CONFIG_DEBUG_TLBFLUSH . .TP \fIvmacache_find_calls\fP (начиная с Linux 3.16) .\" commit 4f115147ff802267d0aa41e361c5aa5bd933d896 .\" Present only if the kernel was configured with .\" .BR CONFIG_DEBUG_VM_VMACACHE . .TP \fIvmacache_find_hits\fP (начиная с Linux 3.16) .\" commit 4f115147ff802267d0aa41e361c5aa5bd933d896 .\" Present only if the kernel was configured with .\" .BR CONFIG_DEBUG_VM_VMACACHE . .TP \fIvmacache_full_flushes\fP (начиная с Linux 3.19) .\" commit f5f302e21257ebb0c074bbafc37606c26d28cc3d .\" Present only if the kernel was configured with .\" .BR CONFIG_DEBUG_VM_VMACACHE . .RE .TP \fI/proc/zoneinfo\fP (начиная с Linux 2.6.13) .\" FIXME more should be said about /proc/zoneinfo Этот файл содержит информацию о зонах памяти. Он полезен при анализе поведения виртуальной памяти. .SH ЗАМЕЧАНИЯ Many files contain strings (e.g., the environment and command line) that are in the internal format, with subfields terminated by null bytes (\[aq]\e0\[aq]). 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: .PP .in +4n .EX $\fB cat \fP\fIfile\fP\fB | tr \[aq]\e000\[aq] \[aq]\en\[aq]\fP .EE .in .PP .\" .SH ACKNOWLEDGEMENTS .\" The material on /proc/sys/fs and /proc/sys/kernel is closely based on .\" kernel source documentation files written by Rik van Riel. Данная справочная страница неполна, в ней могут быть неточности и является одной из страниц, которую требуется обновлять очень часто. .SH "СМ. ТАКЖЕ" \fBcat\fP(1), \fBdmesg\fP(1), \fBfind\fP(1), \fBfree\fP(1), \fBhtop\fP(1), \fBinit\fP(1), \fBps\fP(1), \fBpstree\fP(1), \fBtr\fP(1), \fBuptime\fP(1), \fBchroot\fP(2), \fBmmap\fP(2), \fBreadlink\fP(2), \fBsyslog\fP(2), \fBslabinfo\fP(5), \fBsysfs\fP(5), \fBhier\fP(7), \fBnamespaces\fP(7), \fBtime\fP(7), \fBarp\fP(8), \fBhdparm\fP(8), \fBifconfig\fP(8), \fBlsmod\fP(8), \fBlspci\fP(8), \fBmount\fP(8), \fBnetstat\fP(8), \fBprocinfo\fP(8), \fBroute\fP(8), \fBsysctl\fP(8) .PP Файлы исходного кода ядра Linux: \fIDocumentation/filesystems/proc.rst\fP, \fIDocumentation/admin\-guide/sysctl/fs.rst\fP, \fIDocumentation/admin\-guide/sysctl/kernel.rst\fP, \fIDocumentation/admin\-guide/sysctl/net.rst\fP и \fIDocumentation/admin\-guide/sysctl/vm.rst\fP. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Alexey, Azamat Hackimov , kogamatranslator49 , Kogan, Max Is , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .