1. Introduction au répertoire Linux /proc
Le noyau Linux fournit un mécanisme pour accéder aux structures de données internes du noyau et modifier les paramètres du noyau au moment de l'exécution via le système de fichiers /proc. Le système de fichiers proc est un pseudo système de fichiers qui n'existe qu'en mémoire et n'occupe pas d'espace mémoire externe. Il fournit une interface pour accéder aux données du noyau système sous la forme d'un système de fichiers.
Les utilisateurs et les applications peuvent obtenir des informations système via proc et modifier certains paramètres du noyau. Étant donné que les informations système, telles que les processus, changent dynamiquement, lorsqu'un utilisateur ou une application lit un fichier proc, le système de fichiers proc lit dynamiquement les informations requises à partir du noyau système et les soumet. Tous les fichiers ou sous-dossiers répertoriés ci-dessous peuvent ne pas exister sur votre système, en fonction de la configuration de votre noyau et des modules chargés. De plus, il existe trois répertoires très importants sous /proc : net, scsi et sys. Le répertoire sys est accessible en écriture et peut être utilisé pour accéder ou modifier les paramètres du noyau, tandis que net et scsi dépendent de la configuration du noyau. Par exemple, si le système ne prend pas en charge scsi, le répertoire scsi n'existe pas.
En plus de ceux présentés ci-dessus, il existe également des répertoires nommés par des numéros, qui sont des répertoires de processus. Chaque processus actuellement en cours d'exécution dans le système a un répertoire correspondant sous /proc, avec le numéro pid du processus comme nom de répertoire. Ce sont les interfaces pour lire les informations sur le processus. L'auto-répertoire est l'interface d'information permettant de lire le processus lui-même, qui est un lien.
2. Le rôle des sous-fichiers ou sous-dossiers du répertoire /proc
/proc/buddyinfo Combien de blocs sont disponibles pour chaque commande dans chaque zone mémoire, liés aux problèmes de fragmentation de la mémoire
/proc/cmdline est passé aux informations sur les paramètres du noyau
/proc/cpuinfo informations sur le processeur
/proc/crypto Tous les mots de passe de cryptage installés et les détails utilisés par le noyau
/proc/devices Appareils chargés et classification
/proc/dma Liste des canaux isa dma enregistrés
/proc/execdomains Domaines d'exécution actuellement pris en charge par le noyau Linux
/proc/fb Liste des périphériques de tampon de trame, y compris le numéro et le pilote qui le contrôle
/proc/filesystems Types de systèmes de fichiers actuellement pris en charge par le noyau
/proc/interrupts Architecture x86 Le nombre de interruptions pour chaque irq dans
/proc/iomem Le mappage actuel de chaque périphérique physique dans la mémoire système
/proc/ioports La plage de ports enregistrés utilisée pour l'entrée et la sortie d'un périphérique
/proc/kcore représente la mémoire physique du système , Stocké au format de fichier core, le nombre d'octets affiché à l'intérieur est égal à la taille de la RAM plus 4 Ko
/proc/kmsg enregistre les informations générées par le noyau, qui peuvent être traitées via /sbin/klogd ou /bin/dmesg
/ proc/loadavg Selon L'état de charge dérivé de l'état du CPU et des E/S au cours de la période passée est lié à la commande uptime
/proc/locks Liste des fichiers verrouillés par le noyau
/proc/mdstat Plusieurs disques durs, informations de configuration raid (md=plusieurs disques)
/proc /meminfo informations relatives à l'utilisation de la RAM
/proc/misc Pilotes enregistrés sur d'autres appareils majeurs (numéro de périphérique 10)
/proc/modules Liste de tous les modules chargés dans le noyau
/proc/mounts Tous supports utilisés dans le système
/proc/mtrr Registres de plage de types de mémoire (mtrrs) utilisés par le système
/proc/partitions Informations d'allocation de blocs dans la partition
/proc/pci Liste des périphériques PCI dans le système
/proc/slabinfo Tous actifs informations sur le cache de dalle dans le système
/proc/stat Toutes les informations sur l'activité du processeur
/proc/sysrq-trigger Lors de l'utilisation de la commande echo pour écrire ce fichier, l'utilisateur root distant peut exécuter la plupart des commandes clés de requête système comme s'il était exécuté dans le terminal local . Pour écrire dans ce fichier, /proc/sys/kernel/sysrq ne doit pas être défini sur 0. Ce fichier est également illisible par root
/proc/uptime Depuis combien de temps le système fonctionne
/proc/swaps Utilisation de l'espace d'échange
/proc/version Version du noyau Linux et version gcc
/proc/bus Informations sur le bus système (bus), tels que pci/usb, etc.
/proc/driver informations sur le pilote
/proc/fs informations sur le système de fichiers
/proc/ide informations sur le périphérique ide
/proc/irq informations sur le périphérique de demande d'interruption
/proc/net informations sur le périphérique de la carte réseau
/proc/ scsi informations sur le périphérique scsi
/proc/tty informations sur le périphérique tty
/proc/net/dev Afficher la carte réseau et les informations statistiques
/proc/vmstat Statistiques de la mémoire virtuelle
/proc/vmcore Image mémoire en cas de panique du noyau
/proc/ diskstats Obtenir des informations sur le disque
/proc/schedstat Informations statistiques du planificateur du noyau
/proc/zoneinfo Affiche des informations statistiques sur l'espace mémoire, ce qui est utile pour analyser le comportement de la mémoire virtuelle
Voici les informations du processus n dans le répertoire /proc
/proc/n pid Informations sur le processus pour n
/proc/n/cmdline Commande de démarrage du processus
/proc/n/cwd Lien vers le répertoire de travail actuel du processus
/proc/n/environ Liste des variables d'environnement du processus
/proc/ n/exe Lien vers le processus Fichier de commandes d'exécution
/proc/n/fd contient tous les descripteurs de fichiers liés au processus
/proc/n/maps Informations de mappage mémoire liées au processus
/proc/n/mem fait référence à la mémoire détenu par le processus, qui n'est pas lisible
/proc/n/root est lié au répertoire racine du processus
/proc/n/stat est le statut du processus
/proc/n/statm est le statut du processus la mémoire utilisée par le processus
/proc/n/status est des informations sur l'état du processus, mieux que stat/ statm est plus lisible
/proc/self est lié au processus en cours d'exécution
Trois exemples d'opérations pratiques
1. fichiers sous /proc/
yafang@qa:~$ ls /proc/ 1 16819 21242 2180 2494 8768 interrupts partitions 116 16820 21244 2181 2524 885 iomem sched_debug 11740 17901 21245 21810 2525 acpi ioports scsi 11742 17903 21247 21812 3 asound irq self 11743 17904 2131 21813 39 buddyinfo kallsyms slabinfo 13452 18362 21319 21923 4 bus kcore stat 13454 18364 2132 2193 41 cgroups key-users swaps 13455 18365 2139 21933 42 cmdline kmsg sys 149 19451 2142 2209 5 cpuinfo kpagecount sysrq-trigger 150 19453 21572 2212 5330 crypto kpageflags sysvipc 151 19454 21574 2219 596 devices loadavg timer_list 152 2 21575 2243 597 diskstats locks timer_stats 15771 2083 2158 2260 6 dma meminfo tty 15773 2092 21625 2261 617 driver misc uptime 15774 2101 21627 2262 619 execdomains modules version 16232 21112 21628 2263 7 fb mounts vmallocinfo 16234 21115 2165 2264 804 filesystems mtrr vmstat 16235 21116 2167 2265 8765 fs net zoneinfo 16811 2112 2177 2338 8767 ide pagetypeinfo
2. Affichez les informations système et les paramètres du noyau
yafang@qa:~$ ls /proc/sys debug dev fs kernel net vm[code]
3. 查看网卡设备信息
[code]yafang@qa:~$ ls /proc/net anycast6 ip6_flowlabel netfilter raw6 sockstat6 udplite arp ip6_mr_cache netlink route softnet_stat udplite6 dev ip6_mr_vif netstat rt6_stats stat unix dev_mcast ip_mr_cache packet rt_acct tcp vlan dev_snmp6 ip_mr_vif protocols rt_cache tcp6 wireless if_inet6 ipv6_route psched snmp tr_rif igmp mcfilter ptype snmp6 udp igmp6 mcfilter6 raw sockstat udp6
4. 查看scsi设备信息
yafang@qa:~$ ls /proc/scsi device_info scsi
5. 查看所有加载到内核的模块列表
root@bdsp-a-2-1-2:~# cat /proc/modules bdspboard 8486 2 dspcontrol, live 0xe134c000 dspcontrol 9575 1 clkmon, live 0xe135b000 clkmon 6765 1 - live 0xe136c000 diagint 6635 1 - live 0xe1379000 bdsprio 10775 2 srioif,tsi577, live 0xe9389000 tsi577 17998 1 srioif, live 0xe939e000 srioif 7329 0 - live 0xe93b2000 linux_kernel_bde 54666 1 linux_user_bde, live 0xf1417000 (p) linux_user_bde 17849 0 - live 0xf1427000 (p) root@bdsp-a-2-1-2:~#
6. 查看已经加载的设备并分类
root@bcnmb-a:~# cat /proc/devicescharacter devices: 1 mem 2 pty 3 ttyp 4 /dev/vc/0 4 tty 4 ttys 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 89 i2c 90 mtd116 linux-user-bde2117 linux-kernel-bde2126 linux-user-bde127 linux-kernel-bde128 ptm136 pts180 usb189 usb_device245 ext_alarm251 ipmidev252 usb_endpoint253 usbmon254 rtcblock devices: 1 ramdisk 8 sd 31 mtdblock 65 sd 66 sd 67 sd 68 sd 69 sd 70 sd 71 sd128 sd129 sd130 sd131 sd132 sd133 sd134 sd135 sd root@bcnmb-a:~#
7. 查看分区中的块分配信息
root@bdsp-a-2-1-2:~# cat /proc/partitions major minor #blocks name 31 0 512 mtdblock0 31 1 512 mtdblock1 31 2 123904 mtdblock2 31 3 4096 mtdblock3 31 4 1024 mtdblock4 31 5 1024 mtdblock5 31 6 512 mtdblock6 31 7 512 mtdblock7 31 8 123904 mtdblock8 31 9 4096 mtdblock9 31 10 1024 mtdblock10 31 11 1024 mtdblock11 31 12 1048576 mtdblock12 root@bdsp-a-2-1-2:~#
8. 查看linux内核版本和gcc版本
root@bdsp-a-2-1-2:~# cat /proc/version linux version 2.6.34.6-wr4.0.0.0_standard (satomi@charliebrown) (gcc version 4.4.1 (wind river linux sourcery g++ 4.4-291) ) #1 smp preempt fri nov 26 16:07:47 cst 2010 root@bdsp-a-2-1-2:~#
9. /proc/sys/fs/file-max
该文件指定了可以分配的文件句柄的最大数目。如果用户得到的错误消息声明由于打开文件数已经达到了最大值,从而他们不能打开更多文件,则可能需要增加该值。可将这个值设置成有任意多个文件,并且能通过将一个新数字值写入该文件来更改该值。默认设置时4096。
改变内核的参数,用vi编辑或echo参数重定向到文件中。
# cat /proc/sys/fs/file-max 4096 # echo 8192 > /proc/sys/fs/file-max # cat /proc/sys/fs/file-max 8192
如果优化了参数,则可以把它们写成添加到文件rc.local中,使它在系统启动时自动完成修改。
其它例子:
1:[root@gechong proc]# more /proc/cmdline
显示了内核启动的命令行
2:[root@gechong proc]# cat /proc/cpuinfo
显示了cpu信息
3:[root@gechong proc]# cat /proc/devices
显示了字符和块设备的主设备号以及分配到这些设备号的设备名称
4:[root@gechong proc]# cat /proc/dma
显示了驱动程序保留的dma通道和保留它们的驱动程序名称
5:[root@gechong proc]# more /proc/filesystems
显示了可供使用的文件系统类型,一种类型一行
6:[root@gechong proc]# more /proc/interrupts
每一行都有一个保留的中断,内容是:中断号 中断次数 登记中断的驱动程序名称
7:[root@gechong proc]# more /proc/ioports
显示了i/o相关的设备驱动器例如磁盘驱动器、以太网卡、声卡设备等
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!