Procfs - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Sur les systèmes du type Unix, procfs (process file system, système de fichiers processus en anglais) est un pseudo-système de fichiers (pseudo car dynamiquement généré au démarrage) utilisé pour accéder aux informations du noyau sur les processus. Le système de fichiers est souvent monté sur le répertoire /proc.

Puisque /proc n'est pas une arborescence réelle, il ne consomme aucun espace disque mais seulement une quantité limitée de mémoire vive. Cela aboutit à un paradoxe apparent : un fichier non vide a une taille affichée de 0 (avec ls).

procfs est supporté sur les systèmes suivants:

  • Solaris
  • BSD
  • Linux, qui étend le concept au-delà des processus : entre autres, description détaillée des composants matériels, du réseau...etc
  • IBM AIX (qui utilise l'implémentation de Linux pour une meilleure compatibilité)
  • QNX, (Unix temps réel)

Historique

UNIX 8th Edition

La version de /proc dans UNIX 8th Edition a été implémentée par Tom J. Killian, qui présenta un article intitulé Processes as Files (processus représentés comme des fichiers) à USENIX en juin 1984. Cette première version était conçue pour remplacer l'appel système ptrace utilisé pour tracer les processus.

SVR4

Roger Faulkner et Ron Gomes portèrent /proc sur SVR4, et publièrent un article appelé The Process File System and Process Model in UNIX System V à USENIX en janvier 1991. Cette version de /proc était utilisé pour assurer l'équivalent de la commande ps, mais les fichiers était accessibles seulement par les fonctions read(), write(), et ioctl().

Plan 9

Plan 9 implémente aussi un système de fichiers de processus, mais va plus loin que UNIX 8th Edition : dans la version précédente, il y avait un seul fichier par processus, alors que, avec la nouvelle version, chaque processus a plusieurs fichiers associés (chaque fichier correspond à une fonction)

4.4BSD

BSD 4.4 utilise un clone du procsys de Plan 9

Solaris

De même, solaris utilise un clone du procsys de Plan 9.

Linux

Le /proc de linux est un dérivé du procsys de Plan 9.

  • Il y a un répertoire pour chaque processus en cours (y compris les processus noyau), le nom de ce processus est le chiffre correspondant au PID (Identifiant de processus) (exemple : /proc/1 pour init)
    • /proc/PID/cwd,
    • /proc/PID/exe,
    • /proc/PID/root
    • /proc/PID/status
    • /proc/PID/task
  • Selon le type d'alimentation, il y aura soit un répertoire ACPI (sur les PC récents), soit sur APM (sur les PC anciens)
  • /proc/bus pour décrire les Bus informatique
    • USB
    • PCI
    • Pnp
  • /proc/cmdline
  • /proc/crypto
  • /proc/devices
  • /proc/diskstats
  • /proc/filesystems
  • /proc/interrupts
  • /proc/modules
  • /proc/mounts
  • /proc/net
  • /proc/partitions
  • /proc/scsi
  • /proc/slabinfo
  • /proc/swaps
  • /proc/sysvipc
  • /proc/tty
  • /proc/uptime
  • /proc/version
  • /proc/version_signature

/proc/meminfo

/proc/meminfo est un pseudo-fichier de l'implémentation de procfs dans les récents noyaux linux. Il est utilisé pour fournir les informations sur l'état courant de la mémoire du système, y compris sur la mémoire virtuelle et le cache système. C'est la principale manière d'accéder à ces informations pour les programmes de l'espace utilisateur, et est celle utilisée par de nombreux utilitaires de monitorage du système.

/proc/cpuinfo

/proc/cpuinfo est un pseudo-fichier contenant les informations sur le(s) processeur(s) du système.

Dans le cas d'un système x86, il contient les lignes suivantes :

  • processor correspond à l'identifiant utilisé par le système pour identifier le processeur logique
  • vendor_id est une chaine ce caractères utilisée pour identifier le fabricant du processeur (soit AuthenticAMD ou GenuineIntel)
  • cpu_family est un nombre donnant la version majeure du processeur :
    • Intel - Intel affirme que cpu_family n'est qu'une indication sur le processus de fabrication, pas sur la version du processeur.
CPU family Model Stepping Cache size Model name Description
3 0 0 x  ? Intel 386™ DX
3 2 0 x  ? Intel386™ SX / CX / EX
3 4 0/1 x  ? Intel386™ SL
4 0/1 x x  ? Intel 486™ DX
4 2 x x  ? Intel486™ SX
4 3 x x  ? Intel487™/ DX2 / DX2 OverDrive®
4 4 x x  ? Intel486™ SL
4 5 x x  ? IntelSX2™
4 8 x x  ? IntelDX4™/ DX4 Overdrive®
5 1 x x  ? Pentium®/Pentium OverDrive processors (60,66)
5 2 x x  ? Pentium®/Pentium OverDrive processors (75,90,100,120,133,150,166,200)
5 3 x x  ? Pentium OverDrive for 486 based systems
5 4 x x  ? Pentium processor with MMX™ technology (166,200) & OverDrive with MMX™ for Pentium (75,90,100,120,133)
6 1 x x  ? Pentium Pro
6 3 x x  ? Pentium II, model 3 and Intel Pentium II OverDrive processor
6 5 x 0  ? Intel® Celeron® model 5
6 5 x 1/2Mb  ? Pentium II Xeon, model 5
6 5 x otherwise  ? Pentium II, model 5, Pentium II Xeon with L2 Cache 512 kB
6 6 x x  ? Celeron model 6
6 7 x 1/2Mb  ? Pentium III Xeon, model 7
6 7 x otherwise  ? Pentium III, model 7 or Pentium III Xeon, model 7 with L2 Cache 512 kB
6 8 x x  ? Pentium III, model 8, Pentium III Xeon, model 8 and Intel® Celeron® model 8
6 9 x x  ? Pentium M processor and Intel® Celeron® model 9
6 10 x x  ? Pentium III Xeon, model A
6 11 x x  ? Pentium III Xeon, model B
6 13 x x  ? Intel Pentium M processor, Intel® Celeron M model D. All processors are manufactures using 90 nm process
6 14 x x  ? Intel Core™ Duo processor, Intel Core™ Solo model E. All processors are manufactures using 65 nm process
6 15 x x  ? Intel Core™2 Duo processor model F, Xeon 51xx and 53xx. All processors are manufactures using 65 nm process
15 0 x x  ? Pentium 4 and Intel Xeon processor . All processors are model 0 and manufactured using the 0.18 micrometre process
15 1 x x  ? Pentium 4, Xeon processor, Intel Xeon processor MP and Intel Celeron. All processors are model 1 and manufactured using the 0.18 micrometre process
15 2 x x  ? Pentium 4, Mobile Intel P4 - M, Xeon processor, Intel Xeon processor MP, Intel Celeron and Mobile Intel Celeron. All processors are model 2 and manufactured using the 0.13 micrometre process
15 3 x x  ? Pentium 4, Xeon processor, Intel Celeron D. All processors are model 3 and manufactured using the 90 nm process
15 4 x x  ? Pentium 4, P4 Extreme edition, Pentium D, Xeon processor, Xeon MP and Celeton D. All processors are model 4 and manufactured using the 90 nm process
15 6 x x  ? Pentium 4, Pentium Extreme edition, Pentium D, Xeon processor, Xeon MP and Celeron D. All processors are model 6 and manufactured using the 65 nm process

Voici l'exemple d'un /proc/cpuinfo sur une vm linux tournant sur z/VM:

      vendor_id      : IBM/S390      # processors   : 1      bogomips per cpu: 7668.00      features	: esan3 zarch stfle msa ldisp eimm dfp       processor 0: version = FF,  identification = 080C92,  machine = 2097      
Page générée en 0.109 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise