====== /proc ====== ===== 5.2. Fichiers de niveau supérieur dans le système de fichiers proc ===== Ci-dessous figure une liste de certains des fichiers virtuels les plus utiles qui se trouvent au niveau supérieur du répertoire /proc/. Note Remarque Dans la plupart des cas, le contenu des fichiers répertoriés dans cette section sera différent de celui des fichiers présents sur votre ordinateur. En effet, une bonne partie des informations est spécifique au matériel sur lequel Red Hat Enterprise Linux est exécuté pour ces besoins de documentation. ===== 5.2.1. /proc/apm ===== Ce fichier qui fournit des informations sur l'état du système de gestion de la consommation d'énergie (APM) (de l'anglais Advanced Power Management) est utilisé par la commande apm. Si le système sans batterie est connecté à une source d'alimentation de courant alternatif, ce fichier virtuel sera similaire à l'extrait ci-dessous : 1.16 1.2 0x07 0x01 0xff 0x80 -1% -1 ? L'exécution de la commande apm -v sur un tel système renvoie une sortie semblable à celle reproduite ci-dessous : APM BIOS 1.2 (kernel driver 1.16ac) AC on-line, no system battery Pour les systèmes n'utilisant pas de batterie comme source d'alimentation, apm ne peut guère faire plus que de mettre l'ordinateur en mode veille. La commande apm est beaucoup plus utile sur les portables. Ci-dessous se trouve l'exemple d'une sortie renvoyée par la commande cat /proc/apm exécutée sur un ordinateur portable lorsqu'il est branché à une prise de courant : 1.16 1.2 0x03 0x01 0x03 0x09 100% -1 ? Lorsque ce portable est débranché de sa source d'alimentation pendant quelques minutes, le contenu du fichier apm change de la manière suivante : 1.16 1.2 0x03 0x00 0x00 0x01 99% 1792 min La commande apm -v va à présent générer des données plus utiles, comme par exemple : APM BIOS 1.2 (kernel driver 1.16) AC off-line, battery status high: 99% (1 day, 5:52) ===== 5.2.2. /proc/buddyinfo ===== Ce fichier est utilisé essentiellement pour diagnostiquer des problèmes de fragmentation de mémoire. En utilisant l'algorithme d'allocation de mémoire buddy (aussi appelé algorithme des 'frères siamois') chaque colonne représente le nombre de pages d'un certain ordre (d'une certaine taille) qui sont disponibles à tout moment donné. Par exemple, pour la zone DMA (direct memory access ou accès direct à la mémoire), il y a 90 morceaux de mémoire de 2^ (0*PAGE_SIZE). De même, il y a 6 morceaux de 2^(1*PAGE_SIZE) et 2 morceaux de 2^(2*PAGE_SIZE) disponibles. La rangée DMA référence les 16 premiers méga-octets sur un système, la rangée Normal référence toute la mémoire entre les deux et finalement la rangée HighMem elle référence toute la mémoire supérieure à 4 Go sur un système. Ci-dessous figure un exemple de sortie typique d'un fichier ///proc/buddyinfo// : Node 0, zone DMA 90 6 2 1 1 ... Node 0, zone Normal 1650 310 5 0 0 ... Node 0, zone HighMem 2 0 0 1 1 ... ===== 5.2.3. /proc/cmdline ===== Ce fichier montre les paramètres transmis au noyau au moment du démarrage. Un exemple de fichier /proc/cmdline ressemble à l'exemple ci-dessous : ro root=/dev/VolGroup00/LogVol00 rhgb quiet 3 Cet extrait indique que le noyau est monté en lecture-seule (comme l'indique la mention (ro)), qu'il se trouve sur le premier volume logique (LogVol00) du premier groupe de volumes (/dev/VolGroup00). Le volume logique LogVol00 est l'équivalent d'une partition de disque dans un système n'utilisant pas la gestion de volumes logiques LVM (ou Logical Volume Management), de même que /dev/VolGroup00 est semblable au concept de partition /dev/hda1, mais de manière beaucoup plus extensible. Consultez l'adresse suivante : http://www.tldp.org/HOWTO/LVM-HOWTO/index.html pour obtenir de plus amples informations sur LVM utilisé avec Red Hat Enterprise Linux. Ensuite, rhgb signale que le paquetage rhgb a été installé et que le démarrage en mode graphique et pris en charge à condition que /etc/inittab indique un niveau d'exécution (runlevel) par défaut équivalent à id:5:initdefault:. Finalement, quiet indique que tous les messages prolixes du noyau sont supprimés au démarrage. ===== 5.2.4. /proc/cpuinfo ===== Ce fichier virtuel identifie le type de processeur utilisé par votre système. L'extrait ci-dessous montre un exemple de la sortie typique de /proc/cpuinfo : processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Xeon(TM) CPU 2.40GHz stepping : 7 cpu MHz : 2392.371 cache size : 512 KB physical id : 0 siblings : 2 runqueue : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm bogomips : 4771.02 * processor — Fournit à chaque processeur un numéro d'identification. Sur les systèmes dotés d'un seul processeur, seul le numéro 0 sera présent. * cpu family — Identifie avec certitude le type de processeur dont votre système dispose. Si vous disposez d'un système Intel, placez simplement ce numéro devant "86" afin de déterminer la valeur. Cela est particulièrement utile si vous essayez d'identifier l'architecture d'un système plus ancien, comme 586, 486 ou 386. Comme certains paquetages RPM sont compilés pour chacune de ces architectures particulières, cette valeur vous indique également quel paquetage installer. * model name — Affiche le nom communément utilisé du processeur, de même que son nom de projet. * cpu MHz — Indique la vitesse précise en mégahertz du processeur, au centième près. * cache size — Indique la quantité de mémoire cache de niveau 2 disponible pour le processeur. * siblings — Affiche le nombre de CPU de la même famille sur le même CPU physique pour les architectures qui utilisent l'hyperthreading. * flags — Définit un certain nombre de caractéristiques du processeur, telles que la présence d'une unité de virgule flottante (ou FPU, de l'anglais Floating Point Unit) et la capacité à traiter des instructions MMX. ===== 5.2.5. /proc/crypto ===== Ce fichier dresse la liste de tous les chiffres de cryptographie utilisés par le noyau Linux, y compris des informations supplémentaires pour chacun d'eux. Un exemple de fichier /proc/crypto ressemble à l'exemple ci-dessous : name : sha1 module : kernel type : digest blocksize : 64 digestsize : 20 name : md5 module : md5 type : digest blocksize : 64 digestsize : 16 ===== 5.2.6. /proc/devices ===== Ce fichier affiche les divers périphériques d'entrée-sortie de caractères et périphériques blocs actuellement configurés (il ne contient pas les périphériques dont les modules ne sont pas chargés). Ci-dessous figure un exemple de ce fichier : Character devices: 1 mem 4 /dev/vc/0 4 tty 4 ttyS 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 29 fb 36 netlink 128 ptm 136 pts 180 usb Block devices: 1 ramdisk 3 ide0 9 md 22 ide1 253 device-mapper 254 mdp La sortie de ///proc/devices// inclut le nombre ainsi que le nom principal du périphérique ; elle est répartie en deux sections principales : Character devices (périphériques d'entrée-sortie de caractères) et Block devices (périphériques blocs). Les périphériques d'entrée-sortie de caractères sont semblables aux périphériques blocs, à l'exception de deux points essentiels : - Les périphériques d'entrée-sortie de caractères ne nécessitent pas de tamponnement. Les périphériques blocs ont un tampon disponible, ce qui leur permet de classer les demandes avant de les traiter. Ceci est très important pour les périphériques conçus pour stocker des informations — tels que les disques durs — parce que la possibilité de classer les informations avant de les écrire sur le périphérique permet de les placer de façon plus efficace. - Les périphériques d'entrée-sortie de caractères envoient des données sans taille préconfigurée. Les périphériques blocs peuvent envoyer et recevoir les informations par blocs d'une taille configurée individuellement pour chaque périphérique. Pour davantage d'informations sur les périphériques, consultez la documentation installée dont la référence figure ci-dessous : ///usr/share/doc/kernel-doc-/Documentation/devices.txt// ===== 5.2.7. /proc/dma ===== Ce fichier contient une liste des canaux ISA DMA (accès direct à la mémoire) enregistrés qui sont utilisés. Un exemple de fichier /proc/dma ressemble à l'exemple ci-dessous : 4: cascade ===== 5.2.8. /proc/execdomains ===== Ce fichier fournit la liste des domaines d'exécution actuellement pris en charge par le noyau Linux, ainsi que la gamme des personnalités qu'ils prennent en charge. 0-0 Linux [kernel] Considérez les domaines d'exécution comme étant la "personnalité" d'un système d'exploitation donné. Parce que d'autres formats binaires, tels que Solaris, UnixWare et FreeBSD peuvent être utilisés avec Linux, les programmeurs peuvent, en changeant la personnalité d'une tâche, changer la façon dont le système d'exploitation traite certains appels système de ces binaires. À l'exception du domaine d'exécution PER_LINUX, différentes personnalités peuvent être mises en oeuvre en tant que modules dynamiquement chargeables. ===== 5.2.9. /proc/fb ===== Ce fichier contient une liste des périphériques de mémoire vidéo (frame buffer), comportant le numéro de chaque périphérique et le pilote qui le contrôle. La sortie de /proc/fb pour les systèmes qui contiennent des périphériques de mémoire vidéo ressemble généralement à l'exemple ci-dessous : 0 VESA VGA ===== 5.2.10. /proc/filesystems ===== Ce fichier affiche une liste des types de systèmes de fichiers actuellement pris en charge par le noyau. Ci-dessous figure un exemple de sortie d'un fichier /proc/filesystems générique : nodev sysfs nodev rootfs nodev bdev nodev proc nodev sockfs nodev binfmt_misc nodev usbfs nodev usbdevfs nodev futexfs nodev tmpfs nodev pipefs nodev eventpollfs nodev devpts ext2 nodev ramfs nodev hugetlbfs iso9660 nodev mqueue ext3 nodev rpc_pipefs nodev autofs La première colonne indique si le système de fichiers est monté sur un périphérique bloc. Ceux commençant par nodev ne sont pas montés sur un périphérique. La seconde colonne répertorie les noms de systèmes de fichiers pris en charge. La commande //mount// tourne en boucle dans ces systèmes de fichiers lorsqu'aucun d'eux n'est spécifié comme argument. ===== 5.2.11. /proc/interrupts ===== Ce fichier enregistre le nombre d'interruptions par IRQ sur l'architecture x86. Un fichier /proc/interrupts standard ressemble à l'extrait suivant : CPU0 0: 80448940 XT-PIC timer 1: 174412 XT-PIC keyboard 2: 0 XT-PIC cascade 8: 1 XT-PIC rtc 10: 410964 XT-PIC eth0 12: 60330 XT-PIC PS/2 Mouse 14: 1314121 XT-PIC ide0 15: 5195422 XT-PIC ide1 NMI: 0 ERR: 0 Dans le cas d'un ordinateur ayant plusieurs processeurs, le fichier peut être légèrement différent : CPU0 CPU1 0: 1366814704 0 XT-PIC timer 1: 128 340 IO-APIC-edge keyboard 2: 0 0 XT-PIC cascade 8: 0 1 IO-APIC-edge rtc 12: 5323 5793 IO-APIC-edge PS/2 Mouse 13: 1 0 XT-PIC fpu 16: 11184294 15940594 IO-APIC-level Intel EtherExpress Pro 10/100 Ethernet 20: 8450043 11120093 IO-APIC-level megaraid 30: 10432 10722 IO-APIC-level aic7xxx 31: 23 22 IO-APIC-level aic7xxx NMI: 0 ERR: 0 La première colonne fait référence au numéro de l'IRQ. Chaque unité centrale du système a sa propre colonne et son propre nombre d'interruptions par IRQ. La colonne suivante indique le type d'interruption et la dernière colonne contient le nom du périphérique situé à cette IRQ. Chaque type d'interruptions - spécifiques à l'architecture - présentées dans ce fichier ont une signification légèrement différente. Pour les ordinateurs x86, les valeurs suivantes sont courantes : * XT-PIC — Correspond aux anciennes interruptions des ordinateurs AT. * IO-APIC-edge — Représente le signal de voltage sur ces transitions d'interruption allant de faible à élevé, créant une dénivellation, là où l'interruption a lieu ; il n'est signalé qu'une seule fois. Des interruptions de ce genre, de même que l'interruption IO-APIC-level, ne se rencontrent que sur des systèmes ayant des processeurs de la gamme 586 ou d'une gamme supérieure. * IO-APIC-level — Génère des interruptions lorsque le signal de voltage est élevé, jusqu'à ce qu'il redevienne faible. ===== 5.2.12. /proc/iomem ===== Ce fichier montre la topologie actuelle de la mémoire du système pour chacun des périphériques physiques : 00000000-0009fbff : System RAM 0009fc00-0009ffff : reserved 000a0000-000bffff : Video RAM area 000c0000-000c7fff : Video ROM 000f0000-000fffff : System ROM 00100000-07ffffff : System RAM 00100000-00291ba8 : Kernel code 00291ba9-002e09cb : Kernel data e0000000-e3ffffff : VIA Technologies, Inc. VT82C597 [Apollo VP3] e4000000-e7ffffff : PCI Bus #01 e4000000-e4003fff : Matrox Graphics, Inc. MGA G200 AGP e5000000-e57fffff : Matrox Graphics, Inc. MGA G200 AGP e8000000-e8ffffff : PCI Bus #01 e8000000-e8ffffff : Matrox Graphics, Inc. MGA G200 AGP ea000000-ea00007f : Digital Equipment Corporation DECchip 21140 [FasterNet] ea000000-ea00007f : tulip ffff0000-ffffffff : reserved La première colonne affiche les registres de mémoire utilisés par chacun des différents types de mémoire. La seconde colonne indique le type de mémoire situé dans ces registres et précise notamment les registres de mémoire spécifiques qui sont utilisés par le noyau dans la mémoire vive du système ou, si la carte de l'interface réseau a plusieurs ports Ethernet, les registres de mémoire affectés à chaque port. ===== 5.2.13. /proc/ioports ===== La sortie de /proc/ioports fournit une liste des fourchettes relatives aux ports actuellement enregistrés et utilisés pour les communications d'entrée et de sortie avec un périphérique. Ce fichier peut être assez long. L'exemple suivant affiche une partie d'une liste : 0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 02f8-02ff : serial(auto) 0376-0376 : ide1 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial(auto) 0cf8-0cff : PCI conf1 d000-dfff : PCI Bus #01 e000-e00f : VIA Technologies, Inc. Bus Master IDE e000-e007 : ide0 e008-e00f : ide1 e800-e87f : Digital Equipment Corporation DECchip 21140 [FasterNet] e800-e87f : tulip La première colonne indique la plage d'adresses de port d'E/S réservées au périphérique spécifié dans la seconde colonne. ===== 5.2.14. /proc/kcore ===== Ce fichier qui représente la mémoire physique du système est stocké dans le format fichier core. Contrairement à la plupart des fichiers de /proc/, le fichier kcore affiche une taille. Cette valeur qui est donnée en octets est égale à la taille de la mémoire vive (RAM) utilisée plus 4 Ko. Le contenu de ce fichier, conçu pour être examiné par un débogueur tel que gdb, est codé. N'affichez pas le fichier virtuel /proc/kcore. Dans le cas contraire, le contenu de ce fichier submergera votre terminal de texte. Si vous ouvrez ce fichier par accident, appuyez sur les touches [Ctrl]-[C] pour arrêter le processus, puis tapez reset pour faire revenir l'invite de ligne de commande. ===== 5.2.15. /proc/kmsg ===== Ce fichier est utilisé pour contenir des messages générés par le noyau. Ces messages sont ensuite récupérés par d'autres programmes, tels que /sbin/klogd ou /bin/dmesg. ===== 5.2.16. /proc/loadavg ===== Ce fichier fournit un aperçu dans le temps de la moyenne de charge relative au CPU et aux ES, ainsi que des données supplémentaires utilisées par la commande uptime et par d'autres commandes. Un fichier /proc/loadavg peut ressembler à l'exemple suivant : 0.20 0.18 0.12 1/80 11206 Les trois premières colonnes mesurent l'utilisation du CPU et des ES au cours des périodes de temps allant de la dernière minutes, des cinq dernières minutes et des dix dernières minutes. La quatrième colonne indique le nombre de processus actuellement en cours d'exécution ainsi que le nombre total de processus. La dernière colonne affiche l'ID du dernier processus utilisé. ===== 5.2.17. /proc/locks ===== Ce fichier affiche les fichiers actuellement verrouillés par le noyau. Le contenu de ce fichier comprend des données internes de débogage du noyau et peut varier énormément en fonction de l'utilisation du système. Ci-après figure un exemple de fichier /proc/locks d'un système peu chargé : 1: POSIX ADVISORY WRITE 3568 fd:00:2531452 0 EOF 2: FLOCK ADVISORY WRITE 3517 fd:00:2531448 0 EOF 3: POSIX ADVISORY WRITE 3452 fd:00:2531442 0 EOF 4: POSIX ADVISORY WRITE 3443 fd:00:2531440 0 EOF 5: POSIX ADVISORY WRITE 3326 fd:00:2531430 0 EOF 6: POSIX ADVISORY WRITE 3175 fd:00:2531425 0 EOF 7: POSIX ADVISORY WRITE 3056 fd:00:2548663 0 EOF Chaque verrouillage a sa propre ligne qui commence par un numéro unique. La deuxième colonne indique la classe de verrouillage utilisée dans laquelle FLOCK représente les verrouillages de fichiers UNIX de type plus ancien d'un appel système flock alors que POSIX représente les verrouillages POSIX plus récents de l'appel système lockf. La troisième colonne peut avoir deux valeurs : ADVISORY ou MANDATORY. La valeur ADVISORY signifie que le verrouillage n'empêche pas les autres personnes d'avoir accès aux données ; il ne fait qu'empêcher d'autres tentatives de verrouillage. La valeur MANDATORY quant à elle, signifie qu'aucun accès aux données n'est autorisé tant que le verrouillage est en place. La quatrième colonne spécifie si le verrouillage autorise son détenteur à avoir un accès READ (lecture) ou WRITE (écriture) au fichier. La cinquième colonne montre l'ID du processus qui détient le verrouillage. La sixième colonne montre l'ID du fichier verrouillé, selon le format suivant : PÉRIPHÉRIQUE-PRINCIPAL:PÉRIPHÉRIQUE-MINEUR:NUMÉRO-INODE. La septième et la huitième colonnes précisent le début et la fin de la région verrouillée du fichier. ===== 5.2.18. /proc/mdstat ===== Ce fichier contient les informations courantes sur les configurations RAID à disques multiples. Si votre système ne dispose pas de ce genre de configuration, votre fichier /proc/mdstat ressemblera à l'extrait suivant : Personalities : read_ahead not set unused devices: Ce fichier garde l'état reproduit ci-dessus, sauf si vous créez un périphérique RAID logiciel ou md. Dans ce cas, vous pouvez afficher /proc/mdstat pour connaître l'état actuel de vos périphériques RAID mdX. Le fichier ///proc/mdstat// ci-dessous montre un système contenant md0 configuré comme un périphérique RAID 1 et effectuant la re-synchronisation des disques : Personalities : [linear] [raid1] read_ahead 1024 sectors md0: active raid1 sda2[1] sdb2[0] 9940 blocks [2/2] [UU] resync=1% finish=12.3min algorithm 2 [3/3] [UUU] unused devices: ===== 5.2.19. /proc/meminfo ===== Ci-dessous figure l'un des fichiers les plus communément utilisés du répertoire ///proc/// en raison des nombreuses informations importantes qu'il fournit sur l'utilisation de la mémoire vive du système. L'échantillon ci-dessous du fichier virtuel ///proc/meminfo// provient d'un système ayant 256 Mo de mémoire vive et 512 Mo d'espace : MemTotal: 255908 kB MemFree: 69936 kB Buffers: 15812 kB Cached: 115124 kB SwapCached: 0 kB Active: 92700 kB Inactive: 63792 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 255908 kB LowFree: 69936 kB SwapTotal: 524280 kB SwapFree: 524280 kB Dirty: 4 kB Writeback: 0 kB Mapped: 42236 kB Slab: 25912 kB Committed_AS: 118680 kB PageTables: 1236 kB VmallocTotal: 3874808 kB VmallocUsed: 1416 kB VmallocChunk: 3872908 kB HugePages_Total: 0 HugePages_Free: 0 Hugepagesize: 4096 kB La plupart des informations de cet exemple sont utilisées par les commandes free, top et ps. En fait, la sortie de la commande free est même similaire en apparence au contenu et à la structure de /proc/meminfo. Mais si vous examinez directement /proc/meminfo, vous y trouverez davantage d'informations : * MemTotal — Quantité totale de mémoire vive (exprimée en Ko). * MemFree — Quantité de mémoire vive (exprimée en Ko), non-utilisée par le système. * Buffers — Quantité de mémoire vive (exprimée en Ko), utilisée pour les tampons de fichiers. * Cached — Quantité de mémoire vive (exprimée en Ko), utilisée comme mémoire cache. * SwapCached — Quantité de mémoire vive (exprimée en Ko), utilisée comme mémoire cache. * Active — Quantité totale de mémoire tampon ou de mémoire cache de pages (exprimée en Ko), en utilisation active. Il s'agit de la mémoire qui a récemment été utilisée et qui n'est généralement pas récupérée à d'autres fins. * Inactive — Quantité totale de mémoire tampon ou de mémoire cache de pages (exprimée en Ko) qui est libre et disponible. Il s'agit de la mémoire qui n'a pas récemment été utilisée et qui peut être récupérée à d'autres fins. * HighTotal et HighFree — Quantité totale et libre de mémoire qui n'est pas directement mappée dans l'espace du noyau. La valeur HighTotal peut varier en fonction du type de noyau utilisé. * LowTotal et LowFree — Quantité totale et libre de mémoire qui est directement mappée dans l'espace du noyau. La valeur LowTotal peut varier en fonction du type de noyau utilisé. * SwapTotal — Quantité totale de mémoire swap disponible (exprimée en Ko). * SwapFree — Quantité totale de mémoire swap libre (exprimée en Ko). * Dirty — Quantité totale de mémoire (exprimée en Ko), en attente d'écriture sur le disque. * Writeback — Quantité totale de mémoire tampon (exprimée en Ko), en cours d'écriture active sur le disque. * Mapped — Quantité totale de mémoire tampon (exprimée en Ko) qui a été utilisée pour établir la correspondance avec les périphériques, fichiers ou bibliothèques à l'aide de la commande mmap. * SwapCached — Quantité de mémoire vive (exprimée en Ko), utilisée comme mémoire cache. * Committed_AS — Quantité totale de mémoire (exprimée en Ko) qui est estimée nécessaire pour finir la charge de travail. Cette valeur correspond à celle du pire scénario et inclut également la mémoire de swap. * PageTables — Quantité totale de mémoire (exprimée en Ko) dédiée au niveau le plus bas du tableau des pages. * VMallocTotal — Quantité totale de mémoire (exprimée en Ko) de l'espace total alloué à l'adressage virtuel. * VMallocUsed — Quantité totale de mémoire (exprimée en Ko), de l'espace d'adressage virtuel utilisé. * VMallocChunk —Plus grand bloc contigu de mémoire (exprimée en Ko) d'espace d'adressage virtuel disponible. * HugePages_Total — Nombre total de hugepages pour le système. Ce nombre est obtenu en divisant Hugepagesize par les méga-octets mis à part pour les hugepages spécifiées dans /proc/sys/vm/hugetlb_pool. Cette statistique apparaît uniquement sur les architectures x86, Itanium et AMD64. * HugePages_Free — Nombre total de hugepages disponibles pour le système. Cette statistique apparaît uniquement sur les architectures x86, Itanium et AMD64. * Hugepagesize — Taille de chaque unité de hugepages en kilo-octets. Par défaut, la valeur est de 4096 Ko pour les noyaux à processeur unique sur les architectures 32 bit. Pour SMP, les noyaux hugemem et AMD64, la valeur par défaut est de 2048 Ko. Pour les architectures Itanium, la valeur par défaut est de 262144 Ko. Ce genre de statistique apparaît uniquement sur les architectures x86, Itanium et AMD64. ===== 5.2.20. /proc/misc ===== Ce fichier affiche la liste des pilotes divers enregistrés sur le périphérique principal divers, portant le numéro 10 : 63 device-mapper 175 agpgart 135 rtc 134 apm_bios La première colonne correspond au nombre mineur de chaque périphérique et la deuxième indique le pilote utilisé. ===== 5.2.21. /proc/modules ===== Ce fichier affiche une liste de tous les modules qui ont été chargés dans le noyau. Son contenu varie en fonction de la configuration et de l'utilisation du système, mais il devrait être organisé de façon semblable à la sortie du fichier exemple /proc/modules ci-dessous : Cet exemple a été reformaté pour le rendre lisible. La plupart de ces informations peuvent être affichées à l'aide de commande /sbin/lsmod . nfs 170109 0 - Live 0x129b0000 lockd 51593 1 nfs, Live 0x128b0000 nls_utf8 1729 0 - Live 0x12830000 vfat 12097 0 - Live 0x12823000 fat 38881 1 vfat, Live 0x1287b000 autofs4 20293 2 - Live 0x1284f000 sunrpc 140453 3 nfs,lockd, Live 0x12954000 3c59x 33257 0 - Live 0x12871000 uhci_hcd 28377 0 - Live 0x12869000 md5 3777 1 - Live 0x1282c000 ipv6 211845 16 - Live 0x128de000 ext3 92585 2 - Live 0x12886000 jbd 65625 1 ext3, Live 0x12857000 dm_mod 46677 3 - Live 0x12833000 La première colonne contient le nom du module. La deuxième colonne fait référence à la taille de la mémoire du module (exprimée en octets). La troisième colonne énumère le nombre d'instances du module qui sont actuellement chargées. Une valeur de zéro correspond à un module qui n'est pas chargé. La quatrième colonne indique si le module dépend de la présence d'un ou d'autres module(s) pour son fonctionnement et en dresse la liste. La cinquième colonne dresse énumère le statut de la charge du module dans : Live, Loading ou Unloading, sont les seules valeurs possibles. La sixième colonne énumère le décalage actuel de la mémoire du noyau pour les modules chargés. Ce genre d'information peut être utile à des fins de débogage ou pour des outils de profilage tels que oprofile. ===== 5.2.22. /proc/mounts ===== Ce fichier fournit une liste de tous les montages utilisés par le système : rootfs / rootfs rw 0 0 /proc /proc proc rw,nodiratime 0 0 none /dev ramfs rw 0 0 /dev/mapper/VolGroup00-LogVol00 / ext3 rw 0 0 none /dev ramfs rw 0 0 /proc /proc proc rw,nodiratime 0 0 /sys /sys sysfs rw 0 0 none /dev/pts devpts rw 0 0 usbdevfs /proc/bus/usb usbdevfs rw 0 0 /dev/hda1 /boot ext3 rw 0 0 none /dev/shm tmpfs rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0 Cette sortie est semblable au contenu de /etc/mtab, mis à part que /proc/mount est plus actuel. La première colonne spécifie le périphérique monté et la deuxième indique le point de montage. La troisième colonne donne le type de système de fichiers et la quatrième indique s'il est monté en lecture-seule (ro) ou en lecture et écriture (rw). Les cinquième et sixième colonnes sont des valeurs fictives conçues pour correspondre au format utilisé dans /etc/mtab. ===== 5.2.23. /proc/mtrr ===== Ce fichier fait référence aux MTRR (Memory Type Range Registers) utilisés avec le système. Si l'architecture de votre système prend en charge les MTRR, votre fichier /proc/mtrr pourrait alors avoir l'aspect suivant : reg00: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1 reg01: base=0xe8000000 (3712MB), size= 32MB: write-combining, count=1 Les MTRR sont utilisés avec les processeurs de la famille P6 d'Intel (Pentium II et supérieur) pour contrôler l'accès du processeur aux plages de mémoire. En utilisant une carte vidéo sur un bus PCI ou AGP, un fichier /proc/mtrr correctement configuré peut augmenter les performances de plus de 150%. Dans la plupart des cas, cette valeur est correctement configurée par défaut. Pour obtenir davantage de renseignements sur la configuration manuelle de ce fichier, reportez-vous à l'adresse suivante : /usr/share/doc/kernel-doc-/Documentation/mtrr.txt ===== 5.2.24. /proc/partitions ===== Ce fichier contient des informations sur l'allocation de blocs aux partitions. Un échantillonnage de ce fichier depuis un système élémentaire ressemble à l'extrait ci-dessous : major minor #blocks name 3 0 19531250 hda 3 1 104391 hda1 3 2 19422585 hda2 253 0 22708224 dm-0 253 1 524288 dm-1 La plupart des informations présentées ici ne sont pas importantes pour l'utilisateur, à l'exception des colonnes suivantes : * major — Indique le nombre majeur du périphérique avec cette partition. Le nombre majeur dans /proc/partitions, (3), correspond au périphérique bloc ide0 dans /proc/devices. * minor — Indique le nombre mineur du périphérique avec cette partition. Cet élément permet de séparer les partitions en différents périphériques physiques et fait référence au nombre situé à la fin du nom de la partition. * #blocks — Répertorie le nombre de blocs de disque physique contenus dans une partition donnée. * name — Indique le nom de la partition. ===== 5.2.25. /proc/pci ===== Ce fichier contient une liste complète de tous les périphériques PCI du système. Selon le nombre de périphériques PCI, ///proc/pci// peut être assez long. Ci-après se trouve un exemple de ce fichier sur un système de base : Bus 0, device 0, function 0: Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 3). Master Capable. Latency=64. Prefetchable 32 bit memory at 0xe4000000 [0xe7ffffff]. Bus 0, device 1, function 0: PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 3). Master Capable. Latency=64. Min Gnt=128. Bus 0, device 4, function 0: ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 2). Bus 0, device 4, function 1: IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 1). Master Capable. Latency=32. I/O at 0xd800 [0xd80f]. Bus 0, device 4, function 2: USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 1). IRQ 5. Master Capable. Latency=32. I/O at 0xd400 [0xd41f]. Bus 0, device 4, function 3: Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 2). IRQ 9. Bus 0, device 9, function 0: Ethernet controller: Lite-On Communications Inc LNE100TX (rev 33). IRQ 5. Master Capable. Latency=32. I/O at 0xd000 [0xd0ff]. Non-prefetchable 32 bit memory at 0xe3000000 [0xe30000ff]. Bus 0, device 12, function 0: VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1). IRQ 11. Master Capable. Latency=32. Min Gnt=4.Max Lat=255. Non-prefetchable 32 bit memory at 0xdc000000 [0xdfffffff]. Cette sortie affiche une liste de tous les périphériques PCI, triés par ordre de bus, périphérique et fonction. Outre la précision du nom et de la version du périphérique, cette liste fournit des informations détaillées sur les IRQ afin que l'administrateur puisse détecter rapidement tout conflit. Pour obtenir une version plus lisible de ce genre d'informations, tapez : /sbin/lspci -vb ===== 5.2.26. /proc/slabinfo ===== Ce fichier fournit des informations complètes sur l'utilisation de la mémoire au niveau du bloc (ou slab). Les noyaux Linux supérieurs à 2.2 utilisent des slab pools pour gérer la mémoire au-dessus du niveau page. Les objets couramment utilisés ont leurs propres groupes d'emplacement mémoire de type bloc (ou slab pools). Au lieu d'analyser manuellement le fichier ///proc/slabinfo// qui est très prolixe, le programme ///usr/bin/slabtop// affiche en temps réel les informations de cache de l'utilisation de mémoire en bloc par le noyau. Ce programme permet d'effectuer des configurations personnalisées, y compris le classement des colonnes et le rafraîchissement d'écran. Une capture d'écran type de ///usr/bin/slabtop// ressemble généralement à l'exemple ci-dessous : Active / Total Objects (% used) : 133629 / 147300 (90.7%) Active / Total Slabs (% used) : 11492 / 11493 (100.0%) Active / Total Caches (% used) : 77 / 121 (63.6%) Active / Total Size (% used) : 41739.83K / 44081.89K (94.7%) Minimum / Average / Maximum Object : 0.01K / 0.30K / 128.00K OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME 44814 43159 96% 0.62K 7469 6 29876K ext3_inode_cache 36900 34614 93% 0.05K 492 75 1968K buffer_head 35213 33124 94% 0.16K 1531 23 6124K dentry_cache 7364 6463 87% 0.27K 526 14 2104K radix_tree_node 2585 1781 68% 0.08K 55 47 220K vm_area_struct 2263 2116 93% 0.12K 73 31 292K size-128 1904 1125 59% 0.03K 16 119 64K size-32 1666 768 46% 0.03K 14 119 56K anon_vma 1512 1482 98% 0.44K 168 9 672K inode_cache 1464 1040 71% 0.06K 24 61 96K size-64 1320 820 62% 0.19K 66 20 264K filp 678 587 86% 0.02K 3 226 12K dm_io 678 587 86% 0.02K 3 226 12K dm_tio 576 574 99% 0.47K 72 8 288K proc_inode_cache 528 514 97% 0.50K 66 8 264K size-512 492 372 75% 0.09K 12 41 48K bio 465 314 67% 0.25K 31 15 124K size-256 452 331 73% 0.02K 2 226 8K biovec-1 420 420 100% 0.19K 21 20 84K skbuff_head_cache 305 256 83% 0.06K 5 61 20K biovec-4 290 4 1% 0.01K 1 290 4K revoke_table 264 264 100% 4.00K 264 1 1056K size-4096 260 256 98% 0.19K 13 20 52K biovec-16 260 256 98% 0.75K 52 5 208K biovec-64 Parmi certaines des statistiques les plus communément utilisées qui se trouvent dans /proc/slabinfo et qui sont incluses dans /usr/bin/slabtop figurent : * OBJS — Nombre total d'objets (blocs de mémoire), incluant ceux utilisés (alloués) et d'autres libres qui ne sont pas utilisés. * ACTIVE — Nombre d'objets (blocs de mémoire) qui sont utilisés (alloués). * USE — Pourcentage d'objets qui sont actifs. ((ACTIVE/OBJS)(100)) * OBJ SIZE — Taille des objets. * SLABS — Nombre total de blocs. * OBJ/SLAB — Nombre d'objets tenant dans un bloc. * CACHE SIZE — Taille du cache du bloc. * NAME — Nom du bloc. Pour obtenir davantage d'informations sur le programme ///usr/bin/slabtop//, reportez-vous à la page de manuel de slabtop. ===== 5.2.27. /proc/stat ===== Ce fichier effectue le suivi de différentes statistiques sur le système et ce, depuis le dernier redémarrage. Le contenu de /proc/stat, qui peut être assez long, commence normalement de la façon suivante : cpu 259246 7001 60190 34250993 137517 772 0 cpu0 259246 7001 60190 34250993 137517 772 0 intr 354133732 347209999 2272 0 4 4 0 0 3 1 1249247 0 0 80143 0 422626 5169433 ctxt 12547729 btime 1093631447 processes 130523 procs_running 1 procs_blocked 0 preempt 5651840 cpu 209841 1554 21720 118519346 72939 154 27168 cpu0 42536 798 4841 14790880 14778 124 3117 cpu1 24184 569 3875 14794524 30209 29 3130 cpu2 28616 11 2182 14818198 4020 1 3493 cpu3 35350 6 2942 14811519 3045 0 3659 cpu4 18209 135 2263 14820076 12465 0 3373 cpu5 20795 35 1866 14825701 4508 0 3615 cpu6 21607 0 2201 14827053 2325 0 3334 cpu7 18544 0 1550 14831395 1589 0 3447 intr 15239682 14857833 6 0 6 6 0 5 0 1 0 0 0 29 0 2 0 0 0 0 0 0 0 94982 0 286812 ctxt 4209609 btime 1078711415 processes 21905 procs_running 1 procs_blocked 0 Parmi les statistiques les plus couramment utilisées figurent : * cpu — Mesure le nombre de jiffies (en centièmes de seconde pour des systèmes x86) que le système a passé en mode utilisateur, en mode utilisateur doté d'une priorité basse (nice), en mode système, en tâche inactive, en attente d'E/S, en interruptions IRQ (hardirq) et softirq respectivement. L'interruption IRQ (hardirq) est la réponse directe à un événement matériel. Elle ne demande qu'un travail minimal pour mettre en file d'attente le travail "lourd" que la softirq doit exécuter. L'interruption softirq tourne à une priorité plus basse que l'IRQ et par conséquent sera peut-être interrompue plus fréquemment. Le total pour tous les CPU apparaît en haut alors que chaque CPU individuel est énuméré en dessous avec ses propres statistiques. L'exemple suivant étant une configuration Intel Pentium Xeon quadruple avec activation de multi-threading, il montre logiquement quatre processeurs physiques et quatre processeurs virtuels soit un total de huit processeurs. * page — Nombre de pages mémoire que le système a enregistré en entrée et en sortie. * swap — Nombre de pages échangées par le système. * intr — Nombre d'interruptions reçues par le système. * btime — Temps du démarrage, mesuré en nombre de secondes écoulées depuis le 1er janvier 1970 ; date à laquelle on fait parfois référence en tant qu'époque. ===== 5.2.28. /proc/swaps ===== Ce fichier mesure l'espace swap et son utilisation. Pour un système n'ayant qu'une seule partition swap, la sortie de ///proc/swap// peut ressembler à l'extrait ci-dessous : Filename Type Size Used Priority /dev/mapper/VolGroup00-LogVol01 partition 524280 0 -1 Bien qu'il soit possible de trouver une partie de ces informations dans d'autres fichiers du répertoire /proc/, /proc/swap fournit un instantané de chaque nom de fichier swap, du type d'espace swap, de la taille totale et de l'espace utilisé (exprimée en Ko). La colonne intitulée 'priority' est utile lorsque plusieurs fichiers swap sont en cours d'utilisation. Plus la priorité est basse, plus la probabilité que le fichier swap soit utilisé est élevée. ===== 5.2.29. /proc/sysrq-trigger ===== En utilisant la commande echo pour écrire dans ce fichier, un super-utilisateur distant peut exécuter la plupart des commandes de touche d'interrogation système (ou System Request Key) comme s'il se trouvait sur le terminal local. Pour pouvoir transmettre des valeurs à ce fichier à l'aide de la commande echo, /proc/sys/kernel/sysrq doit avoir une valeur autre que 0. Pour davantage d'informations sur la touche d'interrogation système, reportez-vous à la Section 5.3.9.3. Bien qu'il soit possible d'écrire dans ce fichier, il n'est pas possible de le lire, même en tant que super-utilisateur. ===== 5.2.30. /proc/uptime ===== Ce fichier contient des informations sur le temps de fonctionnement du système depuis le dernier redémarrage. La sortie de /proc/uptime est succincte : 350735.47 234388.90 Le premier nombre indique le nombre total de secondes de fonctionnement depuis le démarrage. Le second montre la partie de cette durée, exprimée en secondes, pendant laquelle l'ordinateur était inactif. ===== 5.2.31. /proc/version ===== Ce fichier précise les versions du noyau Linux et celle de gcc qui sont utilisées, de même que la version de Red Hat Enterprise Linux qui est installée sur le système : Linux version 2.6.8-1.523 (user@foo.redhat.com) (gcc version 3.4.1 20040714 \ (Red Hat Enterprise Linux 3.4.1-7)) #1 Mon Aug 16 13:27:03 EDT 2004 Ces informations font l'objet d'utilisations variées, y compris l'affichage des données relatives à la version lorsqu'un utilisateur se connecte.