Основные файлы в каталоге /proc или получение информации о системе в linux

Каталог /proc в операционных системах linux — это настоящий кладезь информации о системе! Так как основной философией UNIX подобных систем является выражение «Всё — файл», разработчики упростили нам задачу получения информации о системе (собственно осталось только прочитать необходимый файл в каталоге /proc).

/proc/cpuinfo

Этот файл содержит подробную информацию о процессорах системы:

processor    : 0
vendor_id    : AuthenticAMD
cpu family    : 17
model        : 3
model name    : AMD Athlon(tm) X2 Dual-Core QL-65
stepping    : 1
cpu MHz        : 2100.000
cache size    : 512 KB
physical id    : 0
siblings    : 2
core id        : 0
cpu cores    : 2
apicid        : 0
initial apicid    : 0
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 1
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch osvw skinit lbrv svm_lock nrip_save
bogomips    : 4200.65
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

processor    : 1
vendor_id    : AuthenticAMD
cpu family    : 17
model        : 3
model name    : AMD Athlon(tm) X2 Dual-Core QL-65
stepping    : 1
cpu MHz        : 2100.000
cache size    : 512 KB
physical id    : 0
siblings    : 2
core id        : 1
cpu cores    : 2
apicid        : 1
initial apicid    : 1
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 1
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow constant_tsc nonstop_tsc extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch osvw skinit lbrv svm_lock nrip_save
bogomips    : 4189.61
clflush size    : 64
cache_alignment    : 64
address sizes    : 40 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

Не менее известен файл /proc/meminfo. Он содержит исчерпывающие данные об использовании памяти системы:

MemTotal:        3094896 kB
MemFree:         1755180 kB
Buffers:           98320 kB
Cached:           630408 kB
SwapCached:            0 kB
Active:           665956 kB
Inactive:         462440 kB
Active(anon):     400520 kB
Inactive(anon):     5708 kB
Active(file):     265436 kB
Inactive(file):   456732 kB
Unevictable:          32 kB
Mlocked:              32 kB
HighTotal:       2235144 kB
HighFree:        1087648 kB
LowTotal:         859752 kB
LowFree:          667532 kB
SwapTotal:       2104476 kB
SwapFree:        2104476 kB
Dirty:                96 kB
Writeback:             0 kB
AnonPages:        399692 kB
Mapped:           157932 kB
Shmem:              6568 kB
Slab:              59096 kB
SReclaimable:      42040 kB
SUnreclaim:        17056 kB
KernelStack:        2688 kB
PageTables:         7500 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     3651924 kB
Committed_AS:    1563644 kB
VmallocTotal:     122880 kB
VmallocUsed:       46688 kB
VmallocChunk:      66560 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       4096 kB
DirectMap4k:       12280 kB
DirectMap4M:      897024 kB

/proc/mounts — содержит список смонтированных в данный момент устройств:

rootfs / rootfs 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=1541852k,nr_inodes=212140,mode=755 0 0
none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
/dev/disk/by-uuid/f947e259-461d-467c-9a13-3d4e4728b293 / ext4 rw,relatime,errors=remount-ro,barrier=1,data=ordered 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
none /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
none /var/run tmpfs rw,nosuid,relatime,mode=755 0 0
none /var/lock tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/dev/sda5 /home ext4 rw,relatime,barrier=1,data=ordered 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
gvfs-fuse-daemon /home/dimas/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0

/proc/PID  — каталог содержащий информацию о каждом процессе системы. Тут PID — идентификационный номер процесса

Узнать PID можно запустив в терминале команду:

top

Вы увидите подобную картину:

В этой статье описаны далеко не все каталоги и файлы директории /proc ! Это скорее всего просто не реально описать! Но теперь вы знаете что в linux можно обойтись без сложных функции и библиотек для получения данных о процессах и ресурсах системы.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий