8 - Le répertoire /proc en détail

Le répertoire /proc est l'un des aspects les plus fascinants de Linux. C'est une fenêtre ouverte sur le cerveau du système.

 8.1 - Qu'est-ce que /proc exactement ?

Un système de fichiers virtuel :

  • Les fichiers dans /proc n'existent pas physiquement sur votre disque dur
  • Ils sont créés à la volée par le noyau Linux quand vous les lisez
  • Si vous regardez leur taille, elle affiche souvent 0 octets
  • Ils disparaissent quand vous éteignez l'ordinateur

Pourquoi est-ce intéressant ? :  C'est comme une conversation directe avec le système d'exploitation. Au lieu d'avoir des outils complexes, il suffit de lire des fichiers texte.

 8.2 - Les fichiers d'informations système

8.2.1 - /proc/cpuinfo - Informations sur votre processeur

Ce que vous y trouvez :

  • Modèle du processeur
  • Nombre de cœurs
  • Fréquence (vitesse)
  • Fonctionnalités supportées

Comment le lire :

  • cat /proc/cpuinfo
  • Exemple de ce que vous verrez :
  • processor : 0
  • model name : Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
  • cpu MHz : 3600.000
  • cache size : 12288 KB
  • cpu cores : 8

Utilité pratique : Pour vérifier quel processeur vous avez sans ouvrir le boîtier ou chercher dans les menus système.

8.2.2 - /proc/meminfo - État de la mémoire RAM

Ce que vous y trouvez :

  • Mémoire totale
  • Mémoire disponible
  • Mémoire utilisée
  • Mémoire cache
  • Mémoire swap (fichier d'échange)

Comment le lire :

  • cat /proc/meminfo

Exemple de contenu :

  • MemTotal: 16384000 kB
  • MemFree: 2048000 kB
  • MemAvailable: 8192000 kB
  • Buffers: 512000 kB
  • Cached: 4096000 kB
  • SwapTotal: 8192000 kB
  • SwapFree: 8000000 kB

Utilité pratique : Pour savoir combien de RAM vous avez et combien est utilisée. Les outils graphiques lisent ce fichier !

 

8.2.3 - /proc/version - Version du système

Ce que vous y trouvez :

  • Version du noyau Linux
  • Version du compilateur utilisé pour le créer
  • Date de compilation

Comment le lire :

  • cat /proc/version

Exemple :

  • Linux version 6.5.0-14-generic (gcc version 13.2.0) #14-Ubuntu SMP Mon Oct 2 10:34:12 UTC 2023
  • Utilité pratique : Pour connaître votre version exacte du noyau Linux.

8.2.4 - /proc/uptime - Temps de fonctionnement

Ce que vous y trouvez :

  • Depuis combien de temps l'ordinateur tourne
  • Temps passé en idle (inactivité)

Comment le lire :

  • cat /proc/uptime

Exemple :

  • 90 1234567.89
  • Le premier nombre : secondes depuis le dernier démarrage (ici environ 4 jours)

Utilité pratique : Pour savoir depuis combien de temps votre machine tourne sans redémarrage.

 

8.2.5 - /proc/loadavg - Charge système

Ce que vous y trouvez :

  • La charge moyenne du système sur 1, 5 et 15 minutes
  • Nombre de processus actifs

Comment le lire :

  • cat /proc/loadavg

Exemple :

  • 52 0.58 0.59 2/891 12345
  • 52 : charge moyenne sur 1 minute
  • 58 : charge moyenne sur 5 minutes
  • 59 : charge moyenne sur 15 minutes
  • 2/891 : 2 processus actifs sur 891 au total

Interprétation : Sur un système à 4 cœurs, une charge de 4.0 signifie que tous les cœurs sont occupés. Une charge de 0.5 signifie que le système est peu sollicité.

 

8.2.6 - /proc/filesystems - Systèmes de fichiers supportés

Ce que vous y trouvez : La liste de tous les types de systèmes de fichiers que votre noyau peut lire/écrire.

Comment le lire :

  • cat /proc/filesystems

Exemple :

  • nodev sysfs
  • nodev proc
  • ext4
  • ext3
  • vfat
  • ntfs
  • nodev tmpfs

Utilité pratique : Pour savoir si votre système peut lire des disques NTFS (Windows), exFAT (clés USB modernes), etc.

 

8.2.7 - /proc/partitions - Partitions de disque

Ce que vous y trouvez :

  • Tous vos disques durs et leurs partitions
  • Leur taille en blocs

Comment le lire :

  • cat /proc/partitions

Exemple :

  • major minor #blocks name
  • 8 0 500107608 sda
  • 8 1 524288 sda1
  • 8 2 499582976 sda2
  • 8 16 250059096 sdb
  • 8 17 250058752 sdb1
  • sda : premier disque dur
  • sda1, sda2 : partitions de ce disque
  • sdb : deuxième disque dur

Utilité pratique : Pour identifier rapidement vos disques et partitions.

8.2.8 - /proc/devices - Pilotes de périphériques chargés

Ce que vous y trouvez : Les pilotes (drivers) actuellement chargés dans le noyau, séparés en :

  • Character devices (périphériques caractères) : clavier, souris
  • Block devices (périphériques blocs) : disques durs

Comment le lire : cat /proc/devices

 

8.2.9 - /proc/modules - Modules du noyau chargés

Ce que vous y trouvez : La liste de tous les modules (morceaux de code) chargés dans le noyau.

Comment le lire :

  • cat /proc/modules

Exemple :

  • nvidia 12345678 0 - Live 0xffffffffc0000000
  • bluetooth 98765 0 - Live 0xffffffffc1000000

Utilité pratique : Pour vérifier si le pilote de votre carte graphique ou WiFi est chargé.

 

8.3 - Les répertoires numérotés - Les processus

Structure : /proc/[PID]

Chaque processus (programme en cours d'exécution) a son propre dossier dans /proc, nommé par son PID (Process ID, un numéro unique).

Exemples :

  • /proc/1 : le processus init/systemd (premier processus au démarrage)
  • /proc/1234 : le processus avec l'ID 1234
  • /proc/5678 : le processus avec l'ID 5678

 

/proc/[PID]/cmdline - Commande qui a lancé le processus

Comment le lire : cat /proc/1234/cmdline

Exemple :

  • /usr/bin/firefox--new-window
  • Vous voyez exactement quelle commande a démarré Firefox !

 

/proc/[PID]/status - État détaillé du processus

Ce que vous y trouvez :

  • Nom du processus
  • État (en cours, en attente, zombie)
  • PID et PPID (parent process ID)
  • Mémoire utilisée
  • Utilisateur qui l'a lancé

Comment le lire :

cat /proc/1234/status

Exemple :

  • Name: firefox
  • State: S (sleeping)
  • Pid: 1234
  • PPid: 1000
  • VmSize: 2048000 kB
  • VmRSS: 512000 kB

Utilité pratique : Pour débugger un programme qui pose problème ou consomme trop de mémoire.

 

/proc/[PID]/fd/ - Fichiers ouverts par le processus

Ce que vous y trouvez : Tous les fichiers que ce processus a actuellement ouverts.

Comment le lire :

  • ls -l /proc/1234/fd/

Exemple :

  • lrwx------ 0 -> /dev/pts/0
  • lrwx------ 1 -> /dev/pts/0
  • lrwx------ 2 -> /dev/pts/0
  • lrwx------ 3 -> /home/marie/document.txt
  • lrwx------ 4 -> socket:[12345]
  • 0, 1, 2 : entrée standard, sortie standard, erreur standard
  • 3 : le processus a ouvert document.txt
  • 4 : le processus utilise une connexion réseau

Utilité pratique : Pour savoir quel programme a verrouillé un fichier, ou pour comprendre ce qu'un processus fait.

 

/proc/[PID]/cwd - Répertoire de travail actuel

Ce que c'est : Un lien symbolique vers le dossier où le processus travaille actuellement.

Comment le lire :

  • ls -l /proc/1234/cwd

Exemple :

  • lrwxrwxrwx /home/marie/Documents

 

/proc/[PID]/exe - Exécutable du processus

Ce que c'est : Un lien symbolique vers le fichier exécutable qui a démarré ce processus.

Comment le lire :

  • ls -l /proc/1234/exe

Exemple :

  • lrwxrwxrwx /usr/bin/firefox

Utilité pratique : Pour savoir d'où vient exactement un processus mystérieux.

 

/proc/[PID]/environ - Variables d'environnement

Ce que vous y trouvez : Toutes les variables d'environnement du processus (comme PATH, HOME, USER).

Comment le lire : cat /proc/1234/environ | tr '\0' '\n'

  • (La commande tr remplace les caractères nuls par des retours à la ligne pour rendre le résultat lisible)
  • Exemple :
    • HOME=/home/marie
    • USER=marie
    • PATH=/usr/bin:/bin
    • LANG=fr_FR.UTF-8

 

 8.4 - Fichiers système modifiables

Certains fichiers dans /proc/sys permettent de modifier (attention : avec précaution !) le comportement du système en temps réel !

/proc/sys/vm/swappiness - Contrôle de l'utilisation du swap

Ce que c'est : Un nombre entre 0 et 100 qui contrôle l'agressivité avec laquelle le système utilise le swap.

  • : n'utiliser le swap qu'en dernier recours
  • 100 : utiliser agressivement le swap
  • Valeur par défaut : généralement 60

Comment le lire : cat /proc/sys/vm/swappiness

Comment le modifier temporairement : echo 10 | sudo tee /proc/sys/vm/swappiness

Utilité pratique : Si votre système devient lent à cause du swap, diminuer cette valeur peut aider.

 

/proc/sys/net/ipv4/ip_forward - Routage IP

Ce que c'est : Active (1) ou désactive (0) le routage de paquets réseau.

Comment le lire : cat /proc/sys/net/ipv4/ip_forward

Utilité pratique : Nécessaire si vous voulez transformer votre PC en routeur.

 

 

 8.5 - Exemples pratiques d'utilisation

Trouver quel processus utilise beaucoup de CPU

  • # Regarder la charge système
  • cat /proc/loadavg
  • # Trouver les processus gourmands
  • top
  • # ou
  • htop
  • Ces outils lisent /proc pour afficher les informations !

Voir quels programmes ont ouvert un fichier spécifique

  • # Trouver tous les processus ayant ouvert video.mp4
  • lsof /home/marie/video.mp4
  • lsof interroge /proc/[PID]/fd/ pour tous les processus.

 

Surveiller l'utilisation de la RAM en temps réel

  • watch -n 1 cat /proc/meminfo
  • Actualise l'affichage toutes les secondes.

 

Identifier un processus mystérieux

  • Imaginons que vous voyez un processus avec le PID 5678 et vous ne savez pas ce que c'est :
  • # Quel est le nom ?
  • cat /proc/5678/status | grep Name
  • # D'où vient-il ?
  • ls -l /proc/5678/exe
  • # Quelle commande l'a lancé ?
  • cat /proc/5678/cmdline
  • # Quels fichiers utilise-t-il ?
  • ls -l /proc/5678/fd/

 

Vérifier si votre système supporte la virtualisation

  • cat /proc/cpuinfo | grep -E 'vmx|svm'
  • Si quelque chose s'affiche, votre CPU supporte la virtualisation (Intel VT-x ou AMD-V).

 8.6 - Points importants à retenir

Lecture seule (la plupart du temps) :

  • La majorité des fichiers dans /proc sont en lecture seule
  • Seuls certains fichiers dans /proc/sys peuvent être modifiés

Mis à jour en temps réel :

  • Les informations sont toujours actuelles
  • Pas besoin de rafraîchir ou recharger

Pas de risque pour le disque dur :

  • Rien n'est écrit sur le disque
  • Tout est en mémoire vive

Disparaît au redémarrage :

  • Toutes les modifications sont perdues à l'extinction
  • Pour des changements permanents, il faut modifier des fichiers de configuration dans /etc

Outils qui utilisent /proc

Beaucoup d'outils familiers lisent simplement /proc :

  • top / htop : lit /proc/[PID]/stat pour chaque processus
  • free : lit /proc/meminfo
  • uptime : lit /proc/uptime et /proc/loadavg
  • lsof : explore /proc/[PID]/fd/
  • ps : parcourt tous les /proc/[PID]/

En conclusion :

  • /proc est comme un tableau de bord transparent du système. Au lieu de cacher les informations derrière des interfaces complexes, Linux donne un accès direct sous forme de fichiers lisibles.
  • C'est l'incarnation de la philosophie Linux : "tout est fichier", y compris l'état du processeur ou la liste des programmes en cours d'exécution.!

 

 

Aucun commentaire

Choix utilisateur pour les Cookies
Nous utilisons des cookies afin de vous proposer les meilleurs services possibles. Si vous déclinez l'utilisation de ces cookies, le site web pourrait ne pas fonctionner correctement.
Tout accepter
Tout décliner
En savoir plus
Consentement
Sécurité du site
Outils d'administration
Sec-access-admin
Accepter
Décliner
Sauvegarder