10495/ 1167/ 32288/ 8543/ 9457/ dma mdstat tty/10497/ 1168/ 3241/ 8547/ 9479/ driver/ meminfo uptimeВо многих случаях файлы могут только читаться и дают информацию о состоянии. Например, /proc/cpuinfo предоставляет сведения о доступных процессорах:
$ <b>cat /proc/cpuinfo</b>processor : 0vendor_id : GenuineIntelcpu family : 15model : 2model name : Intel(R) Pentium(R) 4 CPU 2.66GHzstepping : 8cpu MHz : 2665.923cache size : 512 KBfdiv_bug : nohlt_bug : nof00f_bug : nocoma_bug : nofpu : yesfpu_exception : yescpuid level : 2wp : yesflags : fpu vme de pse tsc msr рае mce cx8 apic sep mtrr pge mca cmovpat pse36 clflush dts acpi mmx fxsr sse sse2 ss upbogomips : 5413.47clflush size : 64Файлы /proc/meminfo и /рroc/version предоставляют данные об использовании оперативной памяти и версии ядра соответственно:
$ cat<b> /proc/meminfo</b>MemTotal: 776156 kBMemFree: 28528 kBBuffers: 191764 kBCached: 369520 kBSwapCached: 20 kBActive: 406912 kBInactive: 274320 kBHighTotal: 0 kBHighFree: 0 kBLowTotal: 776156 kBLowFree: 28528 kBSwapTotal: 1164672 kBSwapFree: 1164652 kBDirty: 68 kBWriteback: 0 kBAnonPages: 95348 kBMapped: 49044 kBSlab: 57848 kBSReclaimable: 48008 kBSUnreclaim: 9840 kBPageTables: 1500 kBNFS_Unstable: 0 kBBounce: 0 kBCommitLimit: 1552748 kBCommitted_AS: 189680 kBVmallocTotal: 245752 kBVmallocUsed: 10572 kBVmallocChunk: 234556 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0Hugepagesize: 4096 kB$ <b>cat /proc/version</b>Linux version 2.6.20.2-2-default ([email protected]) (gcc version 4.1.3 20070218 (prerelease) (SUSE Linux)) #1 SMP Fri Mar 9 21:54:10 UTC 2007Информация, выводимая этими файлами, генерируется при каждом чтении файла. Поэтому повторное чтение файла meminfo в более поздний момент времени даст результаты с точностью до секунд.
Получить дополнительную информацию от специальных функций ядра можно в подкаталогах каталога /proc. Например, статистику использования сетевых сокетов вы можете узнать из /proc/net/sockstat:
$ <b>cat /proc/net/sockstat</b>sockets: used 285TCP: inuse 4 orphan 0 tw 0 alloc 7 mem 1UDP: inuse 3UDPLITE: inuse 0RAW: inuse 0FRAG: inuse 0 memory 0В некоторые элементы каталога /proc можно производить запись, а не только читать их. Например, общее количество файлов, которые могут быть открыты одновременно всеми выполняющимися программами, — это параметр ядра Linux. Текущее значение можно прочитать из /proc/sys/fs/file-max:
$ <b>cat /proc/sys/fs/file-max</b>76593В данном случае задана величина
76593Для записи в файлы /proc требуются права доступа суперпользователя. При записи в эти файлы нужно быть предельно внимательным; при записи неподходящих данных возможно возникновение серьезных проблем, включая крах системы и потерю данных.
Для увеличения предельного значения одновременно обрабатываемых в системе файлов до 80000 вы можете просто записать новое предельное значение в файл file-max.
# echo <b>80000 >/proc/sys/fs/file-max</b>Теперь, повторно прочитав файл, вы увидите новое значение:
$ <b>cat /proc/sys/fs/file-max</b>80000Подкаталоги каталога /proc с числовыми именами применяются для обеспечения доступа к информации о выполняющихся программах. В главе 11 вы узнаете больше о том, что программы выполняются как процессы.
Сейчас только отметьте, что у каждого процесса есть уникальный идентификатор: число в диапазоне от 1 до почти 32 000. Команда ps предоставляет список выполняющихся в данный момент процессов. Например, когда писалась эта глава:
[email protected]:~/BLP4e/chapter03> <b>ps -а</b> PID TTY TIME CMD 9118 pts/1 00:00:00 ftp 9230 pts/1 00:00:00 ps10689 pts/1 00:00:01