Какова функция procfs?

sysfs имеет смысл - он представляет систему и смонтирован в соответствии с /dev. procfs, который устанавливается на /proc, однако, гораздо более туманный. Что такое procfs & amp; /proc используется для?

3
задан 13 October 2010 в 19:58

4 ответа

Исторически (за годы до Linux), /proc появился первым и содержал один файл на процесс. Каждый (псевдо) -файл предоставлял доступ к памяти процесса, например, чтение байта с номером 0x1234 из файла давало вам содержимое адреса 0x1234 в виртуальной памяти процесса. Этот интерфейс использовался такими командами, как ps (оригинальный просмотрщик информации о процессе) и отладчиками.

Последующие варианты Unix копировали принцип, но не детали. Например, в Linux существует один каталог на процесс, содержащий различную информацию в удобочитаемой форме. Например, /proc/1/cwd является символической ссылкой на текущий рабочий каталог процесса 1, а /proc/1/cmdline является файлом, содержащим аргументы командной строки.

Поскольку он был там, Linux также использовал /proc для предоставления системной информации, такой как /proc/cpuinfo, содержащий информацию о ЦП (микропроцессор), и /proc/bus/usb/, содержащий информацию об USB-устройствах. Документация /proc находится в документации ядра в filesystems/proc.txt .

Позже, /sys (файловая система sysfs) пришла, чтобы предоставить информацию о ядре. Например, есть информация об USB-устройствах в /sys/bus/usb (в другом формате, чем /proc/bus/usb), и информация о модулях ядра (а также интерфейсах для управления некоторыми модулями) в /sys/modules.

Обратите внимание, что /proc/sys не то же самое, что /sys. /proc/sys показывает определенный набор параметров ядра, конфигурируемых во время выполнения, называемых sysctl parameters .

Более подробную и актуальную информацию о вы найдете в Википедии .

¹ или, точнее, файловая система proc, которая может быть смонтирована в других местах (но не имея ее в /proc, сломает много программ).

0
ответ дан 13 October 2010 в 19:58

Небольшое отклонение от некоторых ответов.

/proc представляет собой представление файловой системы текущих запущенных процессов. Вы никуда не уходите, если вы можете читать файлы, вы можете взаимодействовать с ядром. procfs это просто реализация этого.

Философия здесь такова: используйте маленькие инструменты, такие как grep и friends, чтобы взаимодействовать с такими вещами, как процессы, а не писать специальные инструменты для взаимодействия с процессами.

0
ответ дан 13 October 2010 в 19:58

procfs представляет информацию о ваших запущенных процессах.

Например:

$ sleep 120 &
[2] 11581
$ ls /proc/11581
...
cmdline
cwd
...
$ cat /proc/11581/cmdline
sleep120
0
ответ дан 13 October 2010 в 19:58

/proc это API-интерфейс ядра в реальном времени. Вы можете установить переменные ядра или получить информацию о ядре. procfs аналогично симуляции файловой системы, чтобы иметь возможность общаться с ядром через файловую систему.

Каждый процесс имеет свой собственный каталог в /proc с идентификатором процесса в качестве имени. В этом каталоге вы можете найти всю информацию, которую ядро ​​имеет для конкретного процесса.

Другие каталоги позволяют либо получать статистику ядра (например, /proc/meminfo), либо информацию (например, /proc/cpuinfo), либо вы можете настроить определенные вещи (например, /proc/sys/vm/swappiness позволяет вам изменить способ использования ядром свопа пространство).

0
ответ дан 13 October 2010 в 19:58

Другие вопросы по тегам:

Похожие вопросы: