Exploration / système de fichiers proc dans Linux

Exploration / système de fichiers proc dans Linux

Aujourd'hui, nous allons jeter un coup d'œil à l'intérieur du / proc répertoire et développer une familiarité. Le / proc Le répertoire est présent sur tous Linux systèmes, quelle que soit la saveur ou l'architecture.

Une idée fausse que nous devons éclaircir immédiatement est que le / proc Le répertoire est PAS un vrai Système de fichiers, dans le sens du terme. C'est un Système de fichiers virtuel. Contenu dans le procfs sont des informations sur les processus et autres informations système. Il est cartographié à / proc et monté à botte temps.

Système de fichiers d'exploration / proc

Tout d'abord, laisse entrer dans le / proc Répertoire et jetez un coup d'œil:

# CD / Proc

La première chose que vous remarquerez, c'est qu'il y en a Fichiers de sondage familier, Et puis tout un tas de répertoires numérotés. Le répertoires numérotés représenter processus, mieux connu comme Pides, Et en eux, une commande qui les occupe. Les fichiers contiennent des informations système telles que mémory (meminfo), Informations CPU (cpuinfo), et disponible système de fichiers.

Lisez également:  Commande Linux Free pour vérifier la mémoire physique et échanger la mémoire

Jetons un coup d'œil à l'un des fichiers d'abord:

# chat / proc / meminfo
Échantillon de sortie

qui renvoie quelque chose de similaire à ceci:

MEMTOTAL: 604340 KB MEMFREE: 54240 KB Buffeurs: 18700 KB Cached: 369020 KB Swapcached: 0 KB Actif: 312556 KB Inactif: 164856 KB actif (anon): 89744 KB dans le cas (Fichier): 164496 KB INCESSABLE: 0 KB MLOCKED: 0 KB SWAPTOTAL: 0 KB Swapfree: 0 KB DIRE … 

Comme tu peux le voir, / proc / meminfo contient un tas d'informations sur la mémoire de votre système, y compris le montant total disponible (en kb) et le montant libre sur les deux premières lignes.

Exécuter la commande Cat sur l'un des fichiers dans / proc sortira leur contenu. Des informations sur tous les fichiers sont disponibles dans la page Man en exécutant:

# man 5 / proc /

Je vais vous donner un aperçu rapide sur / proc's des dossiers:

  1. / proc / cmdline - Informations sur la ligne de commande du noyau.
  2. / proc / console - Informations sur les consoles actuelles, y compris TTY.
  3. / proc / appareils - Pilotes de périphérique actuellement configurés pour le noyau en cours d'exécution.
  4. / proc / dma - Informations sur les canaux DMA actuels.
  5. / proc / fb - Appareils FrameBuffer.
  6. / proc / système de fichiersS - Systèmes de fichiers actuels pris en charge par le noyau.
  7. / proc / iomem - Carte de mémoire système actuelle pour les appareils.
  8. / proc / ioports - Régions de port enregistrées pour la communication de sortie d'entrée avec l'appareil.
  9. / proc / loadavg - Moyenne de charge du système.
  10. / proc / verrous - Fichiers actuellement verrouillés par le noyau.
  11. / proc / meminfo - Informations sur la mémoire du système (voir l'exemple ci-dessus).
  12. / Proc / Misc - DIVERS DIVERS DIVRIRS SIGNIFICATIVES POUR DIVERS MAJOR MAJOR DIPPEMENT.
  13. / proc / modules - Modules de noyau actuellement chargés.
  14. / proc / monte - Liste de toutes les montures utilisées par système.
  15. / proc / partitions - Informations détaillées sur les partitions disponibles pour le système.
  16. / proc / pci - Informations sur chaque appareil PCI.
  17. / proc / stat - Enregistrement ou diverses statistiques empêchées du dernier redémarrage.
  18. / proc / swap - Informations sur l'espace d'échange.
  19. / proc / du temps de hausse - Informations sur la disponibilité (en secondes).
  20. / proc / version - Version du noyau, version GCC et distribution Linux installée.

Dans / proc's répertoires numérotés, vous en trouverez quelques-uns des dossiers et liens. N'oubliez pas que les nombres de ces répertoires sont en corrélation avec le Piquer de la commande étant exécutée en eux. Utilisons un exemple. Sur mon système, il y a un nom de dossier / proc / 12:

# cd / proc / 12 # ls
Échantillon de sortie
ATTR COREDUPM_FILTER IO MONTS OOM_SCORE_ADJ SMAPS WCHAN AUTOGROUP CPUSET LAFENCE MountStats PageMap Stack Auxv CWD Limits Net Personalité Stat CGroup Environ Loginuid NS ROOT STATM

Si je cours:

# CAT / PROC / 12 / Statut

J'obtiens ce qui suit:

Nom: Xenwatch État: S (Sleeping) TGID: 12 PID: 12 PPID: 2 TracerPid: 0 UID: 0 0 0 0 GID: 0 0 0 0 FDSIZE: 64 Groupes: Threads: 1 SIGQ: 1/4592 Sigpnd: 0000000000000000 SHDPND : 0000000000000000 SigBlk: 0000000000000000 SigIgn: ffffffffffffffff SigCgt: 0000000000000000 CapInh: 0000000000000000 CapPrm: ffffffffffffffff CapEff: ffffffffffffffff CapBnd: ffffffffffffffff Cpus_allowed: 1 Cpus_allowed_list: 0 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 84 nonvoluntary_ctxt_switches: 0

Qu'est-ce que cela signifie? Eh bien, la partie importante est en haut. Nous pouvons voir dans le fichier d'état auquel ce processus appartient xenwatch. Son état actuel est dormant, et son processus IDENTIFIANT est 12, évidemment. Nous pouvons également voir qui dirige ceci, comme Uid et Gid sont 0, indiquant que ce processus appartient au racine utilisateur.

Dans n'importe quel répertoire numéroté, vous aurez une structure de fichiers similaire. Les plus importants et leurs descriptions sont les suivants:

  1. cmdline - ligne de commande du processus
  2. environ - variables environnementales
  3. FD - descripteurs de fichiers
  4. limites - contient des informations sur les limites du processus
  5. montures - Informations connexes

Vous remarquerez également un certain nombre de liens dans le répertoire numéroté:

  1. CWD - un lien vers le répertoire de travail actuel du processus
  2. exe - lien vers l'exécutable du processus
  3. racine - lien vers le répertoire de travail du processus

Cela devrait vous aider à vous familiariser avec le / proc annuaire. Il devrait également donner un aperçu de la façon dont un certain nombre de commandes obtiennent leurs informations, telles que durée de la baisse, lsof, monter, et ps, Juste pour en nommer quelques-uns.