Основное место хранения информации о процессах - виртуальная файловая система /proc, которая:
/proc/
├── <PID>/ # Директория каждого процесса
├── cpuinfo # Информация о CPU
├── meminfo # Информация о памяти
└── ...
/proc/<PID>/status # Основная информация о процессе
/proc/<PID>/stat # Детальная статистика (для машинного чтения)
/proc/<PID>/cmdline # Полная командная строка запуска
/proc/<PID>/statm # Использование памяти
/proc/<PID>/io # Статистика ввода-вывода
/proc/<PID>/fd/ # Открытые файловые дескрипторы
/proc/<PID>/task/ # Директории всех потоков процесса
/proc/<PID>/task/<TID>/status # Статус конкретного потока
/proc/<PID>/net/ # Сетевая статистика процесса
/proc/<PID>/fd/ # Сетевые сокеты среди файловых дескрипторов
ps aux # Читает /proc для вывода информации
top # Интерактивный мониторинг процессов
htop # Улучшенная версия top
cat /proc/<PID>/environ # Переменные окружения процесса
ls -l /proc/<PID>/fd # Список открытых файлов
lsof -p <PID> # Все открытые файлы процесса
pmap <PID> # Карта памяти процесса
pidstat 1 # Статистика в реальном времени
Динамическое обновление:
Формат данных:
status, io)stat, statm)Безопасность:
ls -l /proc/*/fd/ 2>/dev/null | grep socket
cat /proc/<PID>/status | grep -E 'VmRSS|VmSize'
tr '\0' '\n' < /proc/<PID>/environ
Системные вызовы:
getrusage()sysinfo()Файлы устройств:
/dev/mem (прямой доступ к памяти)/dev/kmem (доступ к памяти ядра)Отладочные интерфейсы:
strace - трассировка системных вызововgdb - отладка процессовОсновное хранилище:
/proc<PID>/Ключевая информация:
/proc/<PID>/status, /proc/<PID>/stat/proc/<PID>/statm, /proc/<PID>/io/proc/<PID>/task/Практическое применение:
Инструменты:
/proc для глубокого анализаps, top) для повседневного использованияПонимание организации хранения информации о процессах критически важно для эффективной работы в Linux и диагностики сложных проблем.