Форумы

GNU.SU - Записки нубо-линуксойда :: Форумы :: CLI vs GUI :: Жизнь во мраке
 
<< Предыдущая тема | Следующая тема >>
Раздел /proc - загляните внутрь вашей системы
Модераторы: tastelinux, Frizze, andrey, Bender
Автор Добавил
tastelinux
Пнд Ноя 08 2010, 10:40
andreika

ID пользователя #1
Зарегистрирован: Птн Апр 30 2010, 12:25

Сообщений: 337
Ответьте на вопрос: сколько использовано места в файле подкачке? Каков размер кеша процессора? Сколько модулей ядра сейчас загружено? Сколько подключено дисков и разделов к вашей системе? Если у вас Linux, на все эти вопросы (и не только) простой ответ: взглянуть на директорию /proc. Это золотая жила системной информации, которая ждет своего старателя: пользователя, администратора или обращение скрипта. Пройдемся по /proc и посмотрим сколько ценной информации вы пропустили.

О каталоге /proc

Возможно, главное, что надо знать о каталоге /proc - это необычный каталог с обычными файлами. Скорее, это иллюминатор для наблюдения за системой. Файлы в этой директории не читаются и записываются с винчестера, подобно обычным текстовым документам или, к примеру, файлам mp3, а генерируются ядром Linux динамически. Чтение файла /proc/meminfo, почти всегда даст разные результаты, потому что размер использованной памяти всегда колеблется.

Размещением подобной системной информации в псевдо-файловой системе, такой как proc, разработчики поддерживают философию UNIX "все является файлами". Они делают так, чтобы любой пользователь или программа могли читать данные так же легко, как и обычные текстовые файлы, без использования специальных библиотек или языков. Для нас это значит, что актуальная информация о системе всегда доступна.

Примечание: все файлы, упомянутые здесь должны легко открываться в любом текстовом редакторе по вашему выбору. Для примеров использован вывод cat, стандартной команды терминала.

/proc/cpuinfo

Если вы использовали каталог /proc раньше, то, скорее всего, вы знакомы с эти файлом. Содержимое файла /proc/cpuinfo дает вам детальное представление о типе процессора и его возможностях.

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 47
model name      : AMD Athlon(tm) 64 Processor 3000+
stepping        : 2
cpu MHz         : 1809.478
cache size      : 512 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up rep_good pni lahf_lm
bogomips        : 3618.95
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc


/proc/meminfo

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

$ cat /proc/meminfo
MemTotal:        1285104 kB
MemFree:           32800 kB
Buffers:           78516 kB
Cached:           327208 kB
SwapCached:            0 kB
Active:           758888 kB
Inactive:         402052 kB
Active(anon):     558820 kB
Inactive(anon):   203732 kB
Active(file):     200068 kB
Inactive(file):   198320 kB
Unevictable:          36 kB
Mlocked:              36 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                72 kB
Writeback:             0 kB
AnonPages:        755252 kB
Mapped:           119184 kB
Shmem:              7336 kB
Slab:              42888 kB
SReclaimable:      28588 kB
SUnreclaim:        14300 kB
KernelStack:        1592 kB
PageTables:        25676 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      642552 kB
Committed_AS:    1555408 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      282480 kB
VmallocChunk:   34359444964 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        8128 kB
DirectMap2M:     1302528 kB



/proc/cmdline

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

$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-2.6.32-5-amd64 tastelinux=UUID=7b5cd022-5062-4bc1-9ca6-201a451a4cd9 ro quiet


/proc/filesystems

Малоизвестный, но полезный файл в системе. В нем хранится список (немного расширенный) файловых систем, поддерживаемых вашим ядром. Не все из них вы сможете использовать для хранения данных, некоторые, как и /proc, имеют специальное назначение.

$ cat /proc/filesystems
nodev   sysfs
nodev   tastelinuxfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cpuset
nodev   tmpfs
nodev   devtmpfs
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   pipefs
nodev   anon_inodefs
nodev   inotifyfs
nodev   devpts
nodev   ramfs
nodev   hugetlbfs
nodev   mqueue
nodev   usbfs
        ext3
nodev   fuse
        fuseblk
nodev   fusectl
nodev   binfmt_misc



/proc/PID

В данном случае, PID это идентификационный номер процесса (process ID) запущенной программы. Каждый процесс имеет уникальный номер, который система использует для идентификации каждого запущенного экземпляра каждой программы. Для примера, когда вы запускаете программу top в терминале, вы видите список запущенных процессов и PID каждого процесса. Каждый процесс имеет собственную поддиректорию в /proc, в которой содержится информация об этом процессе.

/proc/modules

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

$ cat /proc/modules
ppp_async 6245 1 - Live 0xffffffffa055e000
crc_ccitt 1323 1 ppp_async, Live 0xffffffffa0558000
ppp_generic 19259 5 ppp_async, Live 0xffffffffa054c000
slhc 4003 1 ppp_generic, Live 0xffffffffa0546000
cpufreq_conservative 5162 0 - Live 0xffffffffa052f000
cpufreq_userspace 1992 0 - Live 0xffffffffa0529000
ppdev 5030 0 - Live 0xffffffffa0522000
lp 7462 0 - Live 0xffffffffa051a000
cpufreq_powersave 902 0 - Live 0xffffffffa0514000
sco 7209 2 - Live 0xffffffffa050c000
bnep 9427 2 - Live 0xffffffffa0503000
rfcomm 29597 0 - Live 0xffffffffa04f4000
l2cap 24736 6 bnep,rfcomm, Live 0xffffffffa04e7000
crc16 1319 1 l2cap, Live 0xffffffffa04e1000
bluetooth 41827 6 sco,bnep,rfcomm,l2cap, Live 0xffffffffa04cc000
rfkill 13044 2 bluetooth, Live 0xffffffffa04c1000
binfmt_misc 6431 1 - Live 0xffffffffa04ba000
fuse 50273 1 - Live 0xffffffffa04a3000
hwmon_vid 1828 0 - Live 0xffffffffa0492000
loop 11799 0 - Live 0xffffffffa0489000
cpufreq_stats 2659 0 - Live 0xffffffffa0483000
snd_intel8x0 24170 2 - Live 0xffffffffa046e000
snd_ac97_codec 99186 1 snd_intel8x0, Live 0xffffffffa044a000
...



/proc/mounts

Этот файл поможет легко и быстро проверить все смонтированные диски. Не все из эти пунктов будут реальными точками монтирования, нужными пользователю. Значимые для вас, скорее всего, найдутся в конце списка.

$ cat /proc/mounts
tastelinuxfs / tastelinuxfs rw 0 0
none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
none /proc proc rw,nosuid,nodev,noexec,relatime 0 0
none /dev devtmpfs rw,relatime,size=637836k,nr_inodes=159459,mode=755 0 0
none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
/dev/disk/by-uuid/7b5cd022-5062-4bc1-9ca6-201a451a4cd9 / ext3 rw,relatime,errors=remount-ro,data=ordered 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid,relatime,mode=755 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
/dev/sdb2 /home ext3 rw,relatime,errors=continue,user_xattr,data=ordered 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0


Заключение

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

Оригинал
Наверх
каталог proc   linux proc   proc meminfo   proc cpuinfo   proc mounts   proc modules   

 

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System