09 августа 2011

Ubuntu: Изучение файловой системы /proc

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


1 2432 3340 3715 3762 5441 815 129 2474 3358 3716 3764 5445 1290 248 3413 3717 3812 5459 133 2486 3435 3718 3813 5479 1420 2489 3439 3728 3814 557 165 276 3450 3731 39 5842 166 280 36 3733 3973 5854 2 2812 3602 3734 4 6 2267 3 3603 3735 40 6381 2268 326 3614 3737 4083 6558 2282 327 3696 3739 4868 6561 2285 3284 3697 3742 4873 6961 2295 329 3700 3744 4878 7206 2335 3295 3701 3745 5 7207 2400 330 3706 3747 5109 7222 2401 3318 3709 3749 5112 7225 2427 3329 3710 3751 541 7244 2428 3336 3714 3753 5440 752 devices modules acpi diskstats mounts asound dma mtrr bus execdomains partitions dri fb self driver filesystems slabinfo fs interrupts splash ide iomem stat irq ioports swaps net kallsyms sysrq-trigger scsi kcore timer_list sys keys timer_stats sysvipc key-users uptime tty kmsg version buddyinfo loadavg vmcore cmdline locks vmstat config.gz meminfo zoneinfo cpuinfo misc



Я подчеркну только самые важные файлы:
1.cpuinfo:
Входим в терминал и вводим команду cat /proc/cpuinfo
Получаем что-то типа этого:
processor : 0
vendor_id : AuthenticAMD
cpu family : 16
model : 5
model name : AMD Athlon(tm) II X4 620 Processor
stepping : 2
cpu MHz : 800.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
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 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save
bogomips : 5222.83
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate
...

2.meminfo:

Входим в терминал и вводим команду cat /proc/meminfo
Получаем что-то типа этого:

MemTotal: 4120104 kB
MemFree: 540944 kB
Buffers: 707748 kB
Cached: 1820688 kB
SwapCached: 0 kB
Active: 1534252 kB
Inactive: 1894076 kB
Active(anon): 900948 kB
Inactive(anon): 36780 kB
Active(file): 633304 kB
Inactive(file): 1857296 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 3280392 kB
HighFree: 532428 kB
LowTotal: 839712 kB
LowFree: 8516 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 148 kB
Writeback: 0 kB
AnonPages: 899944 kB
Mapped: 175996 kB
Shmem: 37788 kB
Slab: 85108 kB
SReclaimable: 56408 kB
SUnreclaim: 28700 kB
KernelStack: 3944 kB
PageTables: 12596 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 2060052 kB
Committed_AS: 4455428 kB
VmallocTotal: 122880 kB
VmallocUsed: 70048 kB
VmallocChunk: 47100 kB
HardwareCorrupted: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 71672 kB
DirectMap2M: 841728 kB

3.loadavg: Файл, показывающий среднюю загрузку процессора; его информация включает использование ЦПУ в последнюю минуту, последние пять минут и последние 10 минут, а также число процессов, работающих в данный момент.
Входим в терминал и вводим команду cat /proc/loadavg
Получаем что-то типа этого:
0.26 0.11 0.07 2/488 8267

4.stat: Также предоставляет статистику, но последней загрузки.

Входим в терминал и вводим команду cat /proc/stat
Получаем что-то типа этого:
cpu  1349757 63029 340515 8788318 44631 5 3781 0 0 0
cpu0 451393 26926 114736 2024112 27150 3 3444 0 0 0
cpu1 399266 20228 95929 2123695 7589 0 190 0 0 0
cpu2 296220 8510 79284 2257918 5094 0 18 0 0 0
cpu3 202876 7363 50564 2382592 4798 1 128 0 0 0
intr 107397208 131 18916 0 0 0 0 2 1 1 0 0 0 0 0 0 99788 486405 248684 49410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2714377 182393 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 187596438
btime 1312876970
processes 8277
procs_running 1
procs_blocked 0
softirq 13999986 0 6391860 4520 2718508 257298 0 67378 1902982 46102 2611338

5.uptime: Короткий файл, в котором только два числа — сколько секунд ваша система работает и сколько секунд она простаивает.

Входим в терминал и вводим команду cat /proc/uptime
Получаем что-то типа этого:
26726.20 88572.30


6.filesystems: Список поддерживаемых файловых систем.
Входим в терминал и вводим команду cat /proc/filesystems
Получаем что-то типа этого:
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev cpuset
nodev tmpfs
nodev devtmpfs
nodev debugfs
nodev securityfs
nodev sockfs
nodev pipefs
nodev anon_inodefs
nodev devpts
ext3
ext2
ext4
nodev ramfs
nodev hugetlbfs
nodev ecryptfs
nodev fuse
fuseblk
nodev fusectl
nodev mqueue
nodev binfmt_misc

7.mounts: Показывает всё смонтированное, что используется вашим компьютером (его вывод очень похож на /etc/mtab). Проще говоря, /proc/partitions и /proc/swaps покажет все разделы и пространство swap.

8.modules: Список подключенных модулей драйверов

9.partitions: разделы, известные ядру
Входим в терминал и вводим команду cat /proc/partitions
Получаем что-то типа этого:
major minor  #blocks  name

   8        0  156290904 sda
   8        1   78146370 sda1
   8        2   78143488 sda2
   8       16  976762584 sdb
   8       18          1 sdb2
   8       21  976751968 sdb5
   8       32  488386584 sdc
   8       34          1 sdc2
   8       37  488375968 sdc5

10.version: Версия ядра
Входим в терминал и вводим команду cat /proc/version
Получаем что-то типа этого:
Linux version 2.6.38-10-generic-pae (buildd@vernadsky) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) ) #46-Ubuntu SMP Tue Jun 28 16:54:49 UTC 2011
 
Copyright © Alex.Devil.LX 2011 Лицензия Creative Commons