3.3.5.2.1 Получение сведений о процессах в РЕД ОС
Скачать документСодержимое каталога /proc
Назначение файлов в каталогах процессов /proc/<PID>
Структура каталога /proc/sys
Процесс — это экземпляр запущенной программы. Каждый раз, когда в терминале выполняется какая-либо команда, система создает новый процесс. Процессы в операционной системе имеют числовой идентификатор, называемый PID.
Программы пространства пользователя в РЕД ОС не могут обращаться к ядру системы напрямую. Однако для получения информации от ядра были созданы некоторые специальные каталоги, с помощью которых любая программа или пользователь может получить данные о состоянии компьютера и ядра – это каталоги /proc и /sys.
Вы можете подробнее ознакомиться с назначением каталога /proc и файловой системы procfs, просмотрев наши обучающие видео:
на RuTube — Файловая система procfs;
в Яндекс.Дзен — Файловая система procfs.
в VK Видео — Файловая система procfs.
На наших каналах вы также сможете найти много другой полезной информации.
С дополнительной информацией о работе с процессами можно ознакомиться в нашей статье «Процессы в РЕД ОС».
В рамках текущей статьи будет рассмотрен механизм получения сведений о процессах, на котором основаны все программы, позволяющие работать с процессами – работа с каталогом /proc.
В каталог /proc монтируется специальная файловая система procfs.
procfs — специальная файловая система, используемая в UNIX-подобных операционных системах, позволяющая получить доступ к информации из ядра о системных процессах, необходима для выполнения таких команд, как ps
, w
, top
.
На самом деле каталог /proc – это не обычный каталог. Все подкаталоги, файлы и хранящаяся в них информация генерируются ядром «на лету», как только пользователь ее запрашивает. Работа построена таким образом, что пользователь может не заметить разницы между обычной файловой системой и proc, если откроет ее с помощью файлового менеджера.
Каталог /proc содержит файлы нулевого размера, у каждого файла отображается текущая дата создания. Например, файл /proc/meminfo будет содержать разные данные при каждом открытии, поскольку использование памяти постоянно изменяется.
С помощью такого механизма разработчики придерживаются главной концепции Unix – «Всё – есть файл». Все файлы доступны для изменения любым редактором, и все они представлены в простом текстовом формате, но для того чтобы проанализировать весь каталог, необходимы права суперпользователя (root).
Большая часть файлов в каталоге /proc доступны только для чтения, с их помощью можно только просмотреть информацию. Однако существуют и доступные для записи файлы, в частности – каталог /proc/sys, с помощью которого можно настраивать различные параметры ядра.
Содержимое каталога /proc
/proc/buddyinfo – файл отображает информацию о фрагментации памяти в ядре системы. Чаще всего используется для диагностики проблем с фрагментацией памяти.
/proc/cmdline – файл отображает информацию о параметрах, которые были указаны в строке запуска ядра загрузчиком grub. Может быть полезно при поиске и устранении проблем с загрузкой ядра или в случае необходимости выявления файла, использованного для загрузки.
/proc/consoles – файл отображает информацию о зарегистрированных в ядре символических устройствах для системной консоли /dev/console.
/proc/cpuinfo – файл отображает очень подробную информацию о процессоре. Здесь можно просмотреть производителя, количество ядер, объем кеша, активные ядра, частоту, поддерживаемые расширения и многое другое. Ту же информацию можно получить с помощью специальных команд, однако все скрипты, выводящие информацию о процессоре, берут ее из каталога /proc.
/proc/devices – файл отображает информацию о различных блочных и символических устройствах, подключенных к системе, кроме тех, для которых не загружены модули ядра. Устройства разделены на символические и блочные. У символических устройств нет буфера хранения, поэтому они отправляют ядру данные определенного размера. Блочные устройства имеют буфер для данных и предназначены для сохранения информации, например, на жесткие диски.
/proc/fb – файл отображает информацию об устройствах фреймбуфера (экраны), а также используемые графические драйверы. Файл является одним из способов просмотра используемого драйвера видеокарты.
/proc/filesystems – файл содержит список файловых систем, которые на данный момент поддерживаются ядром. Значение nodev показывает, что это файловая система специального назначения, и она не используется для хранения данных на носителях.
/proc/kcore – это все содержимое оперативной памяти, представленное в одном файле. В отличие от других у этого файла есть размер – объем ОЗУ плюс 4 Кб. Для доступа к файлу необходимы права суперпользователя (root). Перед работой с файлом его необходимо скопировать в другой каталог, а затем выполнять требуемые действия.
/proc/kmsg – файл накапливает и сохраняет сообщения ядра. Сообщения можно посмотреть также с помощью утилиты dmesg. Для доступа к файлу потребуются права суперпользователя (root).
/proc/loadavg – файл позволяет оценить среднюю нагрузку на систему. Первые три цифры показывают нагрузку на процессор в данный момент времени, 5 минут назад и 15 минут назад, следующие два столбца показывают количество активных процессов и общее количество запущенных процессов. Последняя цифра — это идентификатор последнего процесса (PID).
/proc/meminfo – файл отображает всю доступную информацию об оперативной памяти и пространстве подкачки.
/proc/modules – файл содержит список всех загруженных модулей ядра. Ту же информацию можно увидеть, выполнив команду lsmod.
/proc/mounts – файл содержит все точки монтирования и все подключенные файловые системы.
/proc/partitions – в файле отображены все подключенные к системе разделы жестких дисков или других запоминающих устройств.
Назначение файлов в каталогах процессов /proc/<PID>
Для отображения файлов какого-либо процесса следует открыть каталог с номером необходимого процесса. В каждом каталоге более 50 файлов.
Далее будет рассмотрено назначение некоторых файлов:
cmdline – содержит команду, с помощью которой был запущен процесс, а также переданные ей параметры;
cwd – символическая ссылка на текущий рабочий каталог процесса;
exe – ссылка на исполняемый файл;
root – ссылка на каталог суперпользователя (root);
environ – переменные окружения, доступные для процесса;
fd – содержит файловые дескрипторы, файлы и устройства, которые использует процесс;
maps, statm, и mem – информация о памяти процесса;
stat, status – состояние процесса.
Структура каталога /proc/sys
Каталог /proc/sys содержит файлы с параметрами ядра. Файлы доступны не только для чтения, но и для редактирования с целью передачи ядру ОС новых значений параметров.
Каталог содержит подкаталоги, разделённые по типам хранимых параметров. Далее будет рассмотрено назначение некоторых файлов:
debug – содержит отладочную информацию, она будет полезна для разработчиков ядра;
dev – содержит параметры различных устройств, подключенных к системе;
fs – содержит всю информацию о файловой системе;
kernel – позволяет напрямую настраивать ядро;
net – позволяет настраивать различные параметры сети;
vm – содержит ряд файлов и подкаталогов, соответствующих переменным ядра с подсистемой виртуальной памяти.
Более подробную информацию о каталоге /proc также можно просмотреть, выполнив команду:
man proc
Дата последнего изменения: 20.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.