procfs

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

procfs — виртуальная файловая система, используемая в UNIX-like операционных системах. procfs позволяет получить доступ к информации о системных процессах из ядра, она необходима для выполнения таких команд как ps, w, top. Обычно её монтируют на /proc. procfs создает двухуровневое представление пространств процессов. На верхнем уровне процессы представляют собой директории, именованные в соответствии с их pid. Также на верхнем уровне располагается директория curproc, в которой хранятся ссылки на процессы, выполняющие запросы на поиск.

Каждая директория верхнего уровня содержит следующие файлы:

  • ctl — файл только для записи, поддерживающий множество операций, которые записываются в него в виде строк:
    • attach — останавливает целевой процесс и подготавливает вызывающий ее процесс для выполнения отладки целевого.
    • detach — продолжает выполнение целевого процесса и снимает его из-под контроля процесса-отладчика (последний не обязан быть вызывающим процессом).
    • run — продолжает выполнение целевого процесса до поступления сигнала, достижения брейк-поинта или завершения целевого процесса.
    • step — выполняет одну команду целевой программы не генерируя иных сигналов.
    • wait — ожидает когда целевой процесс достигнет стабильного состояния, готового для отладки. Целевой процесс должен быть в этом сотоянии до того как будут разрешены другие команды.
  • dbregs — Отладочные регистры, соответствующие struct dbregs в <machine/reg.h>. dbregs сейчас применяется лишь в архитектуре i386.
  • etype — тип выполняемого файла к которому идет обращение в file.
  • file — Символьная ссылка на файл, из которого читался текст процесса. Это может использоваться для получения доступа к таблице идентификаторов процесса, или для запуска новой копии процесса. Если файл не найден, то целевое направление принимает значение `unknown'.
  • fpregs — регистры с плавающей точкой, соответствующие struct fpregs в <machine/reg.h>. fpregs используется только на машинах с различными множествами универсальных регистров и регистров с плавающей точкой.
  • map — карта виртуальной памяти процесса.
  • mem — Полный образ виртуальной памяти процесса. Можно обратиться лишь к тому адресу, который существует в процессе. Чтение и запись в этот файл изменяют процесс. Запись в текстовый сегмент применяется лишь для этого процесса (изменения не повлияют на другие копии этого процесса).
  • note — используется для отправки сигнала процессу. Не применяется.
  • notepg — используется для отправки сигнала группе процессов. Не применяется.
  • regs — позволяет доступ на чтение и запись к множеству регистров процесса данный файл содержит структуру бинарных данных struct regs описанную в <machine/reg.h>. regs доступен на запись только когда процесс остановлен.
  • rlimit — файл, доступный только на чтение, содержащий текущий и максимальный размер. Каждая строка имеет формат rlimit current max, где −1 обозначает бесконечность.
  • status — статус процесса. Файл доступен только для чтения и содержит единственную строку, состоящую из полей, разделенных пробелами:
    • имя команды
    • id процесса
    • id родительского процесса
    • id группы процесса
    • id сессии
    • major, minor управляемого терминала, или −1,-1 в ином случае
    • список флагов процесса: ctty если это управляемый терминал, sldr если процесс управляет сессией, noflags если ни один из вышеперечисленных флагов не установлен
    • время запуска процесса в секундах и микросекундах, разделенных запятой
    • время пользователя в секундах и микросекундах, разделенных запятой
    • системное время в секундах и микросекундах, разделенных запятой
    • время ожидания сообщения
    • мандат процесса, состоящий из id фактического пользователя и списка групп (первый элемент которого является id фактической группы), разделенных запятой
    • имя хоста, в пределах которого запущен процесс, или `-` если процесс запущен без ограничений

Множество важной информации содержится в файлах корня /proc. Из них обычными командами просмотра можно извлечь сведения о процессоре (/proc/cpuinfo), текущей конфигурации ядра системы (/proc/config.gz), загруженных его модулях (/proc/modules), устройстах, подсоединенных к шине PCI (/proc/pci) — в частности, иногда только тут можно узнать подробности о своей сетевой карте и внутреннем модеме, необходимые для правильной их настройки.

Все файлы, открытые процессом, представлены в виде символических ссылок в каталоге /proc/<pid>/fd, а ссылка на корневой каталог процесса хранится как /proc/<pid>/root.

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

procfs поддерживается следующими ОС:

Ссылки


de:Procfs

en:Procfs es:Procfs fr:Procfs it:Procfs ja:Procfs pl:Procfs zh:Procfs

Источник — «http://www.sbup.com/wiki/Procfs»
Личные инструменты

Served in 0.109 secs.