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:
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.
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 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)
BSD 4.4 utilise un clone du procsys de Plan 9
De même, solaris utilise un clone du procsys de Plan 9.
Le /proc de linux est un dérivé du procsys de Plan 9.
/proc/PID/cwd
,/proc/PID/exe
,/proc/PID/root
/proc/PID/status
/proc/PID/task
/proc/bus
pour décrire les Bus informatique /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
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
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 logiquevendor_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 : 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