Linux demistifé , dossier /proc

Introduction

Une idée fausse que nous devons dissiper est que le répertoire /proc n’est pas un véritable dossier ( ou plus précisément, n’est pas un système de fichier à proprement parler) . Il s’agit d’un système de fichiers virtuel (une sorte dossier virtuel avec des fichiers virtuels). Le répertoire procfs contient des informations sur les processus et d’autres informations système. Il est mappé sur /proc et est monté au moment du démarrage.

Sous Linux, toutes les données sont stockées sous forme de fichiers. La plupart des utilisateurs sont familiers avec les deux principaux types de fichiers : texte et binaire. Mais le répertoire /proc contient un autre type de fichier appelé fichier virtuel. C’est pour cette raison que le répertoire /proc est souvent appelé système de fichiers virtuel.

$ ls /proc 

1  7   bus      cmdline  filesystems  loadavg  mounts  self  sys  uptime   version_signature
6  97  cgroups  cpuinfo  interrupts   meminfo  net     stat  tty  version

L’exécution de la commande cat sur l’un des fichiers de /proc affichera son contenu.

/proc/meminfo

/proc/meminfo contient un tas d’informations sur l’état actuelle de la mémoire de votre système. Par exemple la quantité totale disponible (MemTotal) et la quantité libre (MemFree).

$ cat /proc/meminfo

MemTotal:       32916852 kB
MemFree:        16792624 kB
Buffers:           34032 kB
Cached:           188576 kB
SwapCached:            0 kB
Active:           167556 kB
Inactive:         157876 kB
Active(anon):     103104 kB
Inactive(anon):    17440 kB
.....
.....
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       12280 kB
DirectMap4M:      897024 kB

/proc/{others files}

  • /proc/console – Informations sur les consoles actuelles, y compris le tty.
  • /proc/devices – Pilotes de périphériques actuellement configurés pour le noyau en cours d’exécution.
  • /proc/dma – Informations sur les canaux DMA actuels.
  • /proc/fb – Périphériques de tampon d’images.
  • /proc/filesystems – Systèmes de fichiers actuels pris en charge par le noyau.
  • /proc/iomem – Carte mémoire actuelle du système pour les périphériques.
  • /proc/ioports – Régions de port enregistrées pour la communication entrée-sortie avec le périphérique.
  • /proc/loadavg – Charge moyenne du système.
  • /proc/locks – Fichiers actuellement verrouillés par le noyau.
  • /proc/misc – Divers pilotes enregistrés pour divers périphériques majeurs.
  • /proc/modules – Modules du noyau actuellement chargés.
  • /proc/mounts – Liste de tous les montages utilisés par le système.
  • /proc/partitions – Informations détaillées sur les partitions disponibles sur le système.
  • /proc/pci – Informations sur chaque périphérique PCI.
  • /proc/stat – Enregistrement ou diverses statistiques conservées depuis le dernier redémarrage.
  • /proc/swap – Informations sur l’espace de pagination.
  • /proc/uptime – Informations sur le temps de fonctionnement (en secondes).
  • /proc/version – Version du noyau, version de gcc et distribution Linux installée.

/proc/{PID}

Dans les répertoires /proc, vous trouverez des dossiers numérotés. Ces numéros correspondent aux PID des processus en cours d’exécution.

$ ls /proc 

1  7  ... ... ...
6  97  ... ... ...

Ici, par exemple, 4 processus sont en cours d’exécution portant les PIDs 1,7,6 et 97. En tapant la commande ls /proc/{pid} il est possible d’afficher les fichiers et dossiers virtuels associés à un processus.

$ ls /proc/7 

attr    cmdline  environ  gid_map  mountinfo   net      oom_score_adj  setgroups  statm   uid_map
auxv    comm     exe      limits   mounts      ns       root           smaps      status
cgroup  cwd      fd       maps     mountstats  oom_adj  schedstat      stat       task

Voici une listes des fichiers les plus importants :

  • cmdline – affiche la ligne de commande du lancement du processus
  • maps – chaque ligne décrit une région de mémoire virtuelle contiguë dans un processus ou un thread.
  • environ – variables d’environnement
  • fd – descripteurs de fichiers
  • limits – contient des informations sur les limites du processus
  • mounts – informations connexes
  • cwd – un lien vers le répertoire de travail actuel du processus
  • exe – lien vers l’exécutable du processus
  • root – lien vers le répertoire de travail du processus

Si un processus souhaite accéder à ses propres informations sans connaître son PID, il peut utiliser le chemin /proc/self pour accéder à son répertoire.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *