Le dossier /proc est organisé en répertoires et sous-répertoires virtuels. Il groupe les fichiers selon des sujets communs. En travaillant en tant que root, le résultat de la commande ls /proc
est quelque-chose comme ceci:
1 2432 3340 3715 3762 5441 815 devices modules
129 2474 3358 3716 3764 5445 acpi diskstats mounts
1290 248 3413 3717 3812 5459 asound dma mtrr
133 2486 3435 3718 3813 5479 bus execdomains partitions
1420 2489 3439 3728 3814 557 dri fb self
165 276 3450 3731 39 5842 driver filesystems slabinfo
166 280 36 3733 3973 5854 fs interrupts splash
2 2812 3602 3734 4 6 ide iomem stat
2267 3 3603 3735 40 6381 irq ioports swaps
2268 326 3614 3737 4083 6558 net kallsyms sysrq-trigger
2282 327 3696 3739 4868 6561 scsi kcore timer_list
2285 3284 3697 3742 4873 6961 sys keys timer_stats
2295 329 3700 3744 4878 7206 sysvipc key-users uptime
2335 3295 3701 3745 5 7207 tty kmsg version
2400 330 3706 3747 5109 7222 buddyinfo loadavg vmcore
2401 3318 3709 3749 5112 7225 cmdline locks vmstat
2427 3329 3710 3751 541 7244 config.gz meminfo zoneinfo
2428 3336 3714 3753 5440 752 cpuinfo misc
Les répertoires numérotés (plus d'infos sur ceux-ci plus tard) correspondent aux processus qui sont en train de s'exécuter; un de ceux-ci est spécial, il s'appele self
et c'est un lien symbolique qui pointe sur le processus courant. Certains des fichiers virtuels procurent des informations sur le matériel de l'ordinateur, comme /proc/cpuinfo, /proc/meminfo, et /proc/interrupts. D'autres fournissent des informations sur les fichiers stockés sur le disque dur (le système de fichiers), comme /proc/filesystems ou /proc/partitions. Les fichiers dans le répertoire /proc/sys sont liés aux paramètres de configuration du kernel, comme nous le verrons.
Le résultat de la commande cat /proc/meminfo
est quelque-chose comme ceci:
# cat /proc/meminfo
MemTotal: 483488 kB
MemFree: 9348 kB
Buffers: 6796 kB
Cached: 168292 kB
...plusieurs lignes supprimees...
Si vous essayez les commandes top
ou free
, vous risquez de reconnaître certains de ces précédents numéros. En fait, plusieurs utilitaires bien connus accèdent au répertoire /proc pour obtenir leurs informations. Par exemple, si vous voulez savoir quelle version du kernel vous êtes en train d'exécuter, vous pourrez essayer le programme uname -srv
, ou alors aller directement lire le fichier source en tapant cat /proc/version
(NdT: le programme cat permet d'afficher le contenu de n'importe quel fichier).
D'autres fichiers intéressants incluent:
- /proc/apm : Fournit des informations intéressantes sur l'interface de gestion de l'énergie (APM), si c'est installé.
- /proc/acpi : Un dossier similaire qui fournit beaucoup d'informations sur l'interface plus récente de gestion avancée de l'énergie (ACPI). Par exemple, pour savoir si votre ordinateur portable est connecté au réseau électrique, vous pouvez utiliser la commande suivante
cat /proc/acpi/ac_adapter/AC/state
pour obtenir soit "on line" ou "off line" (NdT: connecté ou déconnecté).
- /proc/cmdline : Montre les paramètres qui ont été passés au kernel au moment du démarrage. Dans mon cas, ils sont
root=/dev/disk/by-id/scsi-SATA_FUJITSU_MHS2040_NLA5T3314DW3-part3 vga=0x317 resume=/dev/sda2 splash=silent PROFILE=QuintaWiFi
, qui me fourni des informations sur quelle partition est la partition racine du système de fichiers, quel mode VGA utiliser, et plus. Le dernier paramètre a rapport au système de gestion du profil de configuration openSUSE
- /proc/cpuinfo : Fournit des informations sur le processeur de votre système. Par exemple, dans mon ordinateur portable,
cat /proc/cpuinfo
me donne un listing qui commence par:
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 8
model name : Mobile AMD Athlon(tm) XP 2200+
stepping : 1
cpu MHz : 927.549
cache size : 256 KB
Les informations précédentes montrent que je n'ai qu'un seul processeur, numéroté 0, de la famille 80686 (le chiffre 6 de la ligne CPU Family donne un indice), un AMD Athlon qui tourne à moins de 1 Ghz.
- /proc/loadavg : Un fichier qui montre l'utilisation du processeur, ces informations incluent l'utilisation du CPU dans la dernière minute, les 5 dernières minutes et les 10 dernières minutes, ainsi que le nombre de processus qui s'exécutent actuellement.
- /proc/stat : Donne aussi des statistiques, mais remonte jusqu'au dernier démarrage.
- /proc/uptime : Un petit fichier qui n'a que 2 nombres: depuis combien de secondes votre ordinateur est allumé et depuis combien de secondes il est inactif.
- /proc/devices : Affiche tous les périphériques actuellement configurés et montés de type périphérique de caractères et périphériques de blocs.
- /proc/ioports : Montre des informations sur les zones mémoires utilisées pour les communications d'entrées et sorties avec ces précédents périphériques.
- /proc/dma : Montre les canaux d'accès directs (DMA) utilisés actuellement.
- /proc/filesystems : Montre quels types de systèmes de fichiers qui sont supportés pqr votre kernel. Une partie de ce fichier peut ressembler à ceci:
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cpuset
...some lines snipped...
nodev ramfs
nodev hugetlbfs
nodev mqueue
ext3
nodev usbfs
ext2
nodev autofs
La première colonne montre si le système de fichiers est monté sur un périphérique de blocs. Dans mon cas, j'ai des partitions formattées en ext2 et ext3 qui sont montées.
- /proc/mounts : Montre tous les dossiers de montage utilisés par votre ordinateur (ce fichier ressemble fort à /etc/mtab). Similairement, /proc/partitions and /proc/swaps montre toutes les partitions et les partitions d'échanges (swap).
- /proc/fs : Si vous partagez des systèmes de fichiers avec NFS, alors ce répertoire contient dans ses sous-répertoires et ses fichiers /proc/fs/nfsd/exports des informations sur le système de fichier partagé et ses permissions.
- /proc/net : Vous ne pouvez pas trouver mieux comme informations sur le réseau. Décrire chacun des fichiers de ce répertoire demanderait trop d'efforts, mais il inclut /dev (chaque périphérique réseau), plusieurs fichiers liés aux iptables (firewall), statistiques sur les ports et le réseau, informations sur le réseau sans-fil, et beaucoup plus.
Il y a aussi beaucoup de fichiers liés à la RAM. J'ai déjà mentionné /proc/meminfo, mais vous avez aussi vu /proc/iomem qui vous montre comment votre mémoire RAM est utilisée par votre ordinateur et /proc/kcore qui représente la partie physique de votre mémoire RAM. Contrairement aux autres fichiers virtuels, /proc/kcore montre une taille qui est égale à votre RAM plus un léger excédent. (N'essayez pas de faire un cat sur ce fichier, parce que son contenu est binaire et va embrouiller votre écran.) Finalement, il y a beaucoup de fichiers et dossiers liés au matériel comme /proc/interrupts, /proc/irq, proc/pci (tous les matériels PCI), /proc/bus, et bien d'autres, mais ils incluent des détails très spécifiques dont la plupart des utilisateurs n'ont pas besoin.
Qu'est-ce qu'un processus?