Что такое /proc в Linux

«Что такое /proc в Linux» — вопрос из категории Linux, который задают на 26% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

/proc — это виртуальная файловая система в Linux, предоставляющая интерфейс к структурам данных ядра. Она отображает информацию о процессах (отсюда и название) и состоянии системы в виде иерархии файлов и директорий.

Ключевые особенности для DevOps:

  • Динамичность: Содержимое генерируется ядром на лету и отражает текущее состояние системы.
  • Интерфейс настройки: Многие параметры ядра (находящиеся в /proc/sys/) можно изменять в runtime, что используется для тонкой настройки производительности и отладки.
  • Нулевой размер на диске: Файлы не хранятся на диске, они виртуальны.

Практическое использование:

# Проверить лимиты для процесса с PID 1234
cat /proc/1234/limits

# Посмотреть карту памяти процесса
cat /proc/1234/maps

# Диагностика сетевых соединений (аналог netstat/ss)
cat /proc/net/tcp

# Изменить поведение ядра (например, включить форвардинг пакетов)
echo 1 > /proc/sys/net/ipv4/ip_forward

Понимание /proc критически важно для низкоуровневой диагностики проблем с процессами, памятью и сетью, а также для настройки параметров ядра без перезагрузки.