- Procfs
-
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[1]) 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)
Sommaire
Historique
UNIX 8th Edition
La version de /proc dans UNIX 8th Edition[2] 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[3] 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[4], mais les fichiers était accessibles seulement par les fonctions
read()
,write()
, etioctl()
[5].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/proc/cmdline
/proc/cpuinfo
/proc/crypto
/proc/devices
/proc/diskstats
/proc/filesystems
/proc/interrupts
/proc/meminfo
/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/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 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 :- Intel - Intel affirme que
cpu_family
n'est qu'une indication sur le processus de fabrication, pas sur la version du processeur[6].
- Intel - Intel affirme que
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
/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.Références
- (en) Red Hat, Inc. Tips & Tricks Featured Article: /proc/meminfo Explained, Mars 2003.
- (en) A MacFUSE-Based Process File System for Mac OS X
- (en) Access the Linux kernel using the Procfs An IBM developerWorks article by M. Tim Jones
Voir aussi
Articles connexes
Références externes
- (en) Un système de fichiers processus pour Mac OS X reposant sur MacFUSE
Notes
Wikimedia Foundation. 2010.