файловая система proc в Linux

Опубликовано: 16 Февраля, 2022

Файловая система Proc (procfs) - это виртуальная файловая система, которая создается «на лету» при загрузке системы и распадается при ее завершении.

Он содержит полезную информацию о процессах, которые в настоящее время запущены, он рассматривается как центр управления и информации для ядра.

Файловая система proc также обеспечивает среду связи между пространством ядра и пространством пользователя.

Ниже приведен снимок / proc с моего ПК.

ls -l / proc

всего 0
dr-xr-xr-x 9 root root 0 31 марта 21:34 1
dr-xr-xr-x 9 root root 0 31 мар 21:34 10
dr-xr-xr-x 9 авахи авахи 0 31 марта 21:34 1034
dr-xr-xr-x 9 root root 0 31 марта 21:34 1036
dr-xr-xr-x 9 root root 0 31 марта 21:34 1039
dr-xr-xr-x 9 root root 0 31 марта 21:34 1041
dr-xr-xr-x 9 root root 0 31 марта 21:34 1043
dr-xr-xr-x 9 root root 0 31 марта 21:34 1044
dr-xr-xr-x 9 root root 0 31 марта 21:34 1048
dr-xr-xr-x 9 root root 0 31 марта 21:34 105
dr-xr-xr-x 9 root root 0 31 марта 21:34 1078
dr-xr-xr-x 9 root root 0 31 марта 21:34 11
dr-xr-xr-x 9 root root 0 31 марта 21:34 1121
dr-xr-xr-x 9 lp lp 0 31 марта 21:34 1146
dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1149
dr-xr-xr-x 9 mysql mysql 0 31 марта 21:34 1169
dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1180
dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1181
dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1182
dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1183
dr-xr-xr-x 9 postgres postgres 0 31 мар 21:34 1184
dr-xr-xr-x 9 root root 0 31 марта 21:34 1186
dr-xr-xr-x 9 root root 0 31 марта 21:34 12

...

Если вы перечислите каталоги, вы обнаружите, что для каждого PID процесса есть специальный каталог.
Вы можете проверять каталоги только на терминале, используя

ls -l /proc | grep "^d"

Теперь давайте проверим конкретный процесс с назначенным PID, вы можете получить PID любого запущенного процесса с помощью команды ps

ps -aux

Выход:

ps -aux вывод команды

Теперь проверьте выделенный процесс с PID = 7494, вы можете проверить, есть ли запись для этого процесса в файловой системе / proc.

ls -ltr / proc / 7494

Выход:

всего 0
-rw-r - r-- 1 mandeep mandeep 0 1 апр 01:14 oom_score_adj
dr-xr-xr-x 13 mandeep mandeep 0 апр 1 01:14 задача
-r - r - r-- 1 mandeep mandeep 0 1 апр 01:16 статус
-r - r - r-- 1 mandeep mandeep 0 1 апр 01:16 stat
-r - r - r-- 1 mandeep mandeep 0 1 апр 01:16 cmdline
-r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 ччан
-rw-r - r-- 1 mandeep mandeep 0 1 апр 01:17 uid_map
-rw-rw-rw- 1 mandeep mandeep 0 1 апр 01:17 timerslack_ns
-r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 таймеры
-r -------- 1 mandeep mandeep 0 1 апр 01:17 системный вызов
-r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 statm
-r -------- 1 mandeep mandeep 0 1 апр 01:17 стек
-r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 smaps
-rw-r - r-- 1 mandeep mandeep 0 1 апр 01:17 setgroups
-r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 sessionid
-r - r - r-- 1 mandeep mandeep 0 1 апр 01:17 schedstat
-rw-r - r-- 1 mandeep mandeep 0 1 апр 01:17 расписание
lrwxrwxrwx 1 mandeep mandeep 0 апр 1 01:17 корень -> / proc / 2341 / fdinfo
-rw-r - r-- 1 mandeep mandeep 0 1 апр 01:17 projid_map
-r -------- 1 mandeep mandeep 0 1 апр 01:17 личность

...

В linux / proc включает каталог для каждого запущенного процесса, включая процессы ядра, в каталогах с именем / proc / PID, это присутствующие каталоги:

каталог описание
/ proc / PID / cmdline Аргументы командной строки.
/ proc / PID / cpu Текущий и последний процессор, в котором он был выполнен.
/ proc / PID / cwd Ссылка на текущий рабочий каталог.
/ proc / PID / окружающая среда Значения переменных окружения.
/ proc / PID / exe Ссылка на исполняемый файл этого процесса.
/ proc / PID / fd Каталог, содержащий все файловые дескрипторы.
/ proc / PID / maps Карты памяти для исполняемых файлов и файлов библиотеки.
/ proc / PID / mem Память, удерживаемая этим процессом.
/ proc / PID / корень Ссылка на корневой каталог этого процесса.
/ proc / PID / stat Статус процесса.
/ proc / PID / statm Информация о состоянии памяти процесса.
/ proc / PID / статус Статус процесса в удобочитаемой форме.

Некоторые другие файлы в файловой системе / proc:

файл описание
/ proc / крипто список доступных криптографических модулей
/ proc / diskstats информация (включая номера устройств) для каждого из логических дисковых устройств
/ proc / файловые системы список файловых систем, поддерживаемых ядром на момент листинга
/ proc / kmsg удерживание сообщений, выводимых ядром
/ proc / meminfo краткое изложение того, как ядро управляет своей памятью.
/ proc / scsi информация о любых устройствах, подключенных через SCSI или RAID-контроллер
/ proc / tty информация о текущих терминалах
/ proc / версия содержащий версию ядра Linux, номер дистрибутива, номер версии gcc (используемый для сборки ядра) и любую другую соответствующую информацию, относящуюся к версии ядра, работающей в данный момент.

Например, содержимое / proc / crypto

меньше / proc / crypto

имя: ccm (aes)
драйвер: ccm_base (ctr (aes-aesni), cbcmac (aes-aesni))
модуль: ccm
приоритет: 300
ссылка: 2
самотестирование: пройдено
внутренний: нет
тип: aead
асинхронный: нет
размер блока: 1
ivsize: 16
максимальный размер: 16
генив: 

имя: ctr (aes)
водитель: ctr (aes-aesni)
модуль: ядро
приоритет: 300
ссылка: 3
самотестирование: пройдено
внутренний: нет
тип: blkcipher
размер блока: 1
Мин. размер ключа: 16
максимальный размер ключей: 32
ivsize: 16
geniv: chainiv

...

Использованная литература :
1) / wiki / Procfs
2) / proc