Видео ролики бесплатно онлайн

Смотреть 365 видео

Официальный сайт bok-o-bok 24/7/365

Смотреть видео бесплатно

07.11.10 18:59 alff31

ПереводыРаздел /proc - загляните внутрь вашей системы

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

О каталоге /proc


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

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

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

/proc/cpuinfo


Если вы использовали каталог /proc раньше, то, скорее всего, вы знакомы с эти файлом. Содержимое файла /proc/cpuinfo дает вам детальное представление о типе процессора и его возможностях.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ 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 скрипты и программы узнают сколько памяти доступно в системе.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$ 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


Это файл показывает с какими опциями было запущено ядро. Это может быть полезно при проблемах с загрузкой ядра или если вам нужно проверить, какое именно ядро было использовано при загрузке системы.
1
2
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-2.6.32-5-amd64 root=UUID=7b5cd022-5062-4bc1-9ca6-201a451a4cd9 ro quiet

/proc/filesystems


Малоизвестный, но полезный файл в системе. В нем хранится список (немного расширенный) файловых систем, поддерживаемых вашим ядром. Не все из них вы сможете использовать для хранения данных, некоторые, как и /proc, имеют специальное назначение.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ 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   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 окажется бесценным для решения проблем.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ 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


Этот файл поможет легко и быстро проверить все смонтированные диски. Не все из эти пунктов будут реальными точками монтирования, нужными пользователю. Значимые для вас, скорее всего, найдутся в конце списка.
1
2
3
4
5
6
7
8
9
10
11
12
$ cat /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=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


Оригинал: Using the /proc Filesystem to Examine Your Linux Inner Working

Перевод: Инициативная группа переводчиков welinux.ru: alff31, Zereal, settler. Особая благодарность Zereal за вычитку.


translated.by переведено толпой


Теги:

mhspace 07.11.10 19:50 # +8
Очень полезная директория в proc это /proc/acpi/ - там можно найти температуру процессора\видеоадаптера, инфо о батарее и т.д.
Sylar 07.11.10 20:25 # +6
Еще полезная для пользователей ноутбуков штука там же -- изменение яркости подсветки экрана.
main 07.11.10 20:05 # +5
Статья хороша тем, что возможно заставит заглянуть в proc тех, кто там ещё не был.

А вообще там можно многое, изменить ttl ip пакетов, включить/отключить разные сетевые технологии...

Например (sudo su): echo 15 > /proc/sys/net/ipv4/ip_default_ttl и ваша система начинает слать IP пакеты с ttl 15.
predator 07.11.10 21:57 # +0
и зачем это делать?
main 08.11.10 01:45 # +7
Я ждал этот вопрос, и даже приготовил на него ответ :)
- Пофиг, главное что это возможно! :)

Но если по делу:
Наверное Ваш вопрос - зачем менять ttl?
Честно говоря, наверное незачем, ttl 64 с которым отправляет IP пакеты любой Linux достаточно для нормальной маршрутизации по сети Internet. Возможно Вы преследуете какую-то тайную идею, попытаться замаскировать Linux под Win? Тогда Вам придётся изменить ttl на 128. Или например Вы изучаете протокол IP и проводите с ним эксперименты и Вам интересно как поведёт себя протокол в той или иной ситуации.(что более реально - имхо, но для этого есть более "правильные" утилиты).
dementiy 07.11.10 20:30 # +4
Отличненько, а я к концу месяца (очень постараюсь) расскажу, как она устроена изнутри.
dementiy 07.11.10 20:38 # +6
Еще пару слов добавлю:
Размещением подобной системной информации в виртуальной файловой системе, такой как proc...
procfs не совсем верно называть вирутальной файловой системой, потому что есть VFS, которая является слоем между пользователем, ФС и оборудованием (относительно proc, про оборудование, например жесткий диск, можно не говорить). Поэтому термин виртуальная ФС может только запутать, лучше говорить псевдо-ФС.
alff31 07.11.10 21:08 # +1
Спасибо, исправил.
segoon 07.11.10 20:32 # +3
Если говорить о псевдо-ФС, то нужно также упомянуть sysfs (/sysfs/) и мб debugfs (/sys/kernel/debug/). Через первую юзерспейс может получить доступ к kernel object'ам (kobject) - модулях ядра, оборудованию и пр., а через вторую - к различной отладочной информации (вряд ли интересно кому-либо кроме программиста драйверов).

Минус /proc в том, что туда за последнее время пихали слишком много неструктурированной информации, из-за этого ввели sysfs. В sysfs основное правило: один файл - одно значение. При этом вся ФС имеет чёткую иерархию.
ixpict 07.11.10 20:55 # +6
zcat /proc/config.gz < получить конфиг текущего ядра. Это требует включенной опции в ядре.
razum2um 08.11.10 16:45 # +1
люто бешено плюсанул бы если б все дистроделы это включали...
ЕМНИП у убунте, когда я хотел достать конфиг, файла не было...
Alx 11.11.10 15:39 # +0
у убунты в /boot эти конфиги
segoon 07.11.10 21:21 # +4
Кстати, к бОльшей части информации из /proc можно получить доступ через программы вроде ps (/proc/PID/), mount (/proc/mount), lsmod (/proc/modules), acpi (частично /proc/acpi) и др.
aguanic 08.11.10 11:31 # +1
потрясающие штуки:
/proc/sys/vm/swapiness
/proc/sys/vm/compact_memory
razum2um 08.11.10 16:46 # +1
ну раскройте же тему...
aguanic 08.11.10 17:23 # +5
1) /proc/sys/vm/swapiness
содержимое - число от 0 до 100 - определяет "склонность" ядра к вытеснению в swap (теоретически) неактивных приложений и высвобождению RAM под более активные. Мне это не нужно - RAM и так достаточно для всех приложений, а переключению между задачами это очень мешает.

2) /proc/sys/vm/compact_memory
позволяет включить новую фичу 2.6.35 ядра - автоматическая дефрагментация содержимого RAM.


beetlebum 08.11.10 22:23 # +0
А какой смысл в дефрагментации RAM? Диска понятно, там довольна низкая скорость. Также грозит износом железок. Но к памяти то, зачем?
aguanic 08.11.10 23:09 # +0
Вот тут гляньте:
http://welinux.ru/post/4061/

Мне сложно утверждать что _именно_с_этого_ есть какая-то очень заметная польза - не знаю как это померять. Но по сути своей, дефрагментация = "наведение порядка", и эффект от этого может быть только положительным. Ну и вообще, я люблю когда все в порядке.
Alx 11.11.10 15:42 # +0
когда память фрагментирована, есть много маленьких свободных областей. запускаемой программе допустим нужно больше памяти выделить и ядро ищет свободные области побольше. а мелкие остаются незаюзаны.

Лучшие блоги (все 148)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Элита (все 2945 из 222 городов)
Топ пользователей Топ блогов
В сети: doraneko

Новенькие: evilglen, novg, Caliwinter, mad.enemy, firefly
welinux.ru

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн