| Red Hat Linux 7.2: Guide de référence Red Hat Linux officiel | ||
|---|---|---|
| Précédent | Chapitre 4. Le système de fichiers /proc | Suivant |
Les groupes communs d'informations sur le noyau sont regroupés en répertoires et sous-répertoires dans /proc.
Chaque répertoire /proc contient un certain nombre de répertoires nommés à l'aide d'un chiffre. Voici comment se présente une liste de ces répertoires :
[root@bleach /]# ls -l /proc total 0 dr-xr-xr-x 3 root root 0 May 8 10:56 1 dr-xr-xr-x 3 truk truk 0 May 8 10:56 1038 dr-xr-xr-x 3 root root 0 May 8 10:56 518 dr-xr-xr-x 3 rpc rpc 0 May 8 10:56 532 dr-xr-xr-x 3 rpcuser rpcuser 0 May 8 10:56 547 dr-xr-xr-x 3 root root 0 May 8 10:56 7 dr-xr-xr-x 3 daemon daemon 0 May 8 10:56 708 dr-xr-xr-x 3 root root 0 May 8 10:56 8 dr-xr-xr-x 3 xfs xfs 0 May 8 10:56 880 [root@bleach /]# |
Ces répertoires sont appelés répertoires de processus car ils font référence à un ID de processus et contiennent des informations concernant ce processus. Le propriétaire et le groupe de chaque répertoire de processus est paramétré sur l'utilisateur qui exécute le processus. Lorsque le processus est terminé, son répertoire de processus /proc disparaît. Toutefois, pendant l'exécution du processus, de nombreuses informations spécifiques à ce processus sont contenues dans les différents fichiers du répertoire de processus.
Chaque répertoire de processus contient les fichiers suivants :
cmdline — Arguments de la ligne de commande qui ont lancé le processus. La sortie du fichier cmdline pour le processus sshd ressemble à ceci :
/usr/sbin/sshd |
cpu — Informations spécifiques sur l'utilisation de chaque unité centrale du système. Un processus exécuté sur un système à double unité centrale produit une sortie semblable à ce qui suit :
cpu 11 3 cpu0 0 0 cpu1 11 3 |
cwd — Lien vers le répertoire de travail courant pour ce processus.
environ — Liste des variables d'environnement pour le processus. La variable d'environnement est fournie en majuscules et la valeur est en minuscules.
exe — Lien vers le fichier exécutable de ce processus.
fd — Répertoire qui contient tous les descripteurs de fichier pour un processus donné. Ils sont fournis en liens numérotés :
[root@bleach /]# ls -l /proc/14466/fd total 0 lrwx------ 1 root root 64 May 8 11:31 0 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 1 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 2 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 3 -> /dev/ptmx lrwx------ 1 root root 64 May 8 11:31 4 -> socket:[7774817] lrwx------ 1 root root 64 May 8 11:31 5 -> /dev/ptmx lrwx------ 1 root root 64 May 8 11:31 6 -> socket:[7774829] lrwx------ 1 root root 64 May 8 11:31 7 -> /dev/ptmx [root@bleach /]# |
maps — Topographies mémoire vers les divers fichiers exécutables et les bibliothèques associés à ce processus. Ce fichier peut être long, selon la complexité du processus. Voici comment le fichier débute pour sshd :
08048000-08080000 r-xp 00000000 03:05 226209 /usr/sbin/sshd 08080000-08082000 rw-p 00037000 03:05 226209 /usr/sbin/sshd 08082000-080c3000 rwxp 00000000 00:00 0 40000000-40016000 r-xp 00000000 03:05 304721 /lib/ld-2.2.2.so 40016000-40017000 rw-p 00015000 03:05 304721 /lib/ld-2.2.2.so 40017000-40018000 rw-p 00000000 00:00 0 40019000-4001b000 r-xp 00000000 03:05 144433 /lib/security/pam_stack.so 4001b000-4001c000 rw-p 00001000 03:05 144433 /lib/security/pam_stack.so |
mem — Mémoire retenue par le processus.
root — Lien vers le répertoire root du processus.
stat — Etat du processus.
statm — Etat de la mémoire utilisée par le processus. Voici un exemple de fichier statm :
140 72 63 22 0 50 22 |
Les sept colonnes font référence à différentes statistiques de mémoire pour le processus, soit, de droite à gauche, divers aspects de la mémoire utilisée :
Taille totale du programme, en Ko ;
Taille de portions de mémoire, en Ko ;
Nombre de pages partagées ;
Nombre de pages de code ;
Nombre de pages de données/pile ;
Nombre de pages de bibliothèque ;
Nombre de pages " sales ".
status — Etat du processus sous une forme beaucoup plus lisible que celle qui est offerte par stat ou statm. Voici un exemple de ce à quoi peut ressembler ce fichier pour sshd :
Name: sshd State: S (sleeping) Pid: 14466 PPid: 723 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 32 Groups: VmSize: 3596 kB VmLck: 0 kB VmRSS: 288 kB VmData: 552 kB VmStk: 28 kB VmExe: 224 kB VmLib: 2596 kB SigPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 8000000000001000 SigCgt: 0000000000012000 CapInh: 0000000000000000 CapPrm: 00000000fffffeff CapEff: 00000000fffffeff |
Outre le nom et l'ID du processus, l'état (tel que S (sleeping) ou R (running)) et l'ID de l'utilisateur/groupe qui exécute le processus sont disponibles, de même qu'un grand nombre d'informations détaillées sur l'utilisation de la mémoire.
Le répertoire /proc/self est un lien vers le processus en cours d'exécution. Cela permet à un processus de se contrôler lui-même sans devoir savoir son ID de processus.
Dans un environnement shell, la génération de la liste du répertoire /proc/self produit le même contenu que la génération de la liste du répertoire de processus pour ce processus.
Ce répertoire contient des informations spécifiques aux nombreux bus disponibles sur le système. Ainsi, par exemple, sur un système standard ayant des bus ISA, PCI et USB, des informations actuelles sur chacun de ces bus disponibles se trouvent dans son répertoire sous /proc/bus.
Le contenu des sous-répertoires et fichiers disponibles diffère grandement selon la configuration de votre système. Cependant, chaque répertoire pour chacun des types de bus contient au moins un répertoire pour chaque bus de ce type. Ces répertoires individuels de bus, généralement spécifiés par des chiffres, tels que 00, contiennent des fichiers binaires qui font référence aux divers périphériques disponibles sur les bus en question.
Exemple : un système ayant un bus USB auquel aucun périphérique n'est branché, a un répertoire /proc/bus/usb qui contient plusieurs fichiers :
[root@bleach /]# ls -l /proc/bus/usb total 0 dr-xr-xr-x 1 root root 0 May 3 16:25 001 -r--r--r-- 1 root root 0 May 3 16:25 devices -r--r--r-- 1 root root 0 May 3 16:25 drivers [root@thoth /]# ls -l /proc/bus/usb/001 total 1 -rw-r--r-- 1 root root 18 May 3 16:25 001 [root@bleach /]# |
Le répertoire /proc/bus/usb contient des fichiers qui détectent les différents périphériques sur les bus USB, ainsi que les pilotes nécessaires pour les utiliser. Le répertoire 001 contient tous les périphériques sur le premier (et le seul) bus USB. En examinant le contenu du fichier devices, nous constatons qu'il s'agit du concentrateur root USB sur la carte mère :
[root@bleach /]# cat /proc/bus/usb/devices T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 0.00 S: Product=USB UHCI Root Hub S: SerialNumber=d400 C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms [root@bleach /]# |
Ce répertoire contient des informations sur des pilotes spécifiques utilisés par le noyau.
Un fichier commun se trouvant à cet endroit est rtc, qui fournit une sortie provenant du pilote pour l'horloge interne du système, le dispositif qui maintient l'heure lorsque le système est éteint. Voici un exemple de ce à quoi peut ressembler /proc/driver/rtc :
rtc_time : 18:06:33 rtc_date : 2001-05-08 rtc_epoch : 1900 alarm : 02:01:19 DST_enable : no BCD : yes 24hr : yes square_wave : no alarm_IRQ : no update_IRQ : no periodic_IRQ : no periodic_freq : 1024 batt_status : okay |
Pour plus d'informations sur l'horloge interne, consultez /usr/src/linux-2.4/Documentation/rtc.txt.
Ce répertoire contient des informations spécifiques sur les systèmes de fichiers, indicateurs de fichier, inodes, dentry et parts. Ces informations sont en fait situées dans /proc/sys/fs.
Ce répertoire contient une gamme variée d'informations sur les périphériques IDE du système. Chaque canal IDE est représenté par un répertoire séparé, tel que /proc/ide/ide0 et /proc/ide/ide1. De plus, un fichier drivers est aussi disponible ; il fournit le numéro de version des divers pilotes utilisés sur les canaux IDE :
ide-cdrom version 4.59 ide-floppy version 0.97 ide-disk version 1.10 |
Plusieurs jeux de circuits fournissent également un fichier d'informations dans ce répertoire, donnant ainsi d'autres renseignements sur les lecteurs branchés via les différents canaux. Exemple : un jeu de circuits générique Ultra 33 PIIX4 d'Intel produit un fichier /proc/ide/piix qui vous indique si DMA et UDMA sont activés pour les périphériques sur les canaux IDE :
Intel PIIX4 Ultra 33 Chipset.
--------------- Primary Channel ---------------- Secondary Channel -------------
enabled enabled
--------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------
DMA enabled: yes no yes no
UDMA enabled: yes no no no
UDMA enabled: 2 X X X
UDMA
DMA
PIO |
Si vous examinez le répertoire d'un canal IDE, tel que ide0 pour le premier canal, vous obtenez des informations additionnelles. Le fichier channel indique le numéro de canal, alors que model vous indique le type de bus pour le canal (tel que pci).
Vous trouverez certaines des informations les plus utiles dans les répertoires de périphérique à l'intérieur du répertoire de canal. Chaque périphérique, tel que le disque dur ou le lecteur de CD-ROM, sur un canal a son propre répertoire, qui contient ses propres informations et statistiques. Le contenu de ces répertoires varie évidemment en fonction du type de périphérique branché. Voici quelques-uns des fichiers les plus utiles, communs à différents périphériques :
cache — Cache du périphérique.
capacity — Capacité du périphérique, en blocs de 512 octets.
driver — Pilote et version utilisés pour contrôler le périphérique.
geometry — Géométrie physique et logique du périphérique.
media — Type de périphérique, tel que disk.
model — Nom ou numéro de modèle du périphérique.
settings — Ensemble de paramètres courants du périphérique. Ce fichier contient normalement pas mal d'informations techniques utiles. Voici un exemple de fichier settings pour un disque dur IDE standard :
name value min max mode ---- ----- --- --- ---- bios_cyl 784 0 65535 rw bios_head 255 0 255 rw bios_sect 63 0 63 rw breada_readahead 4 0 127 rw bswap 0 0 1 r current_speed 66 0 69 rw file_readahead 0 0 2097151 rw ide_scsi 0 0 1 rw init_speed 66 0 69 rw io_32bit 0 0 3 rw keepsettings 0 0 1 rw lun 0 0 7 rw max_kb_per_request 64 1 127 rw multcount 8 0 8 rw nice1 1 0 1 rw nowerr 0 0 1 rw number 0 0 3 rw pio_mode write-only 0 255 w slow 0 0 1 rw unmaskirq 0 0 1 rw using_dma 1 0 1 rw |
Ce répertoire est utilisé pour régler l'affinité IRQ-CPU, qui permet de connecter un IRQ particulier à une seule unité centrale. Ou bien, vous pouvez empêcher qu'une unité centrale traite les IRQ.
Chaque IRQ a son propre répertoire, ce qui permet à chaque IRQ d'être configuré différemment par rapport aux autres. Le fichier /proc/irq/prof_cpu_mask est un masque de bit qui contient les valeurs par défaut pour le fichier smp_affinity dans le répertoire d'IRQ. Les valeurs dans smp_affinity spécifient quelles unités centrales traitent cet IRQ spécifique.
Vous trouverez plus de renseignements dans le fichier /usr/src/linux-2.4/Documentation/filesystems/proc.txt.
Ce répertoire fournit une vision exhaustive de nombreux paramètres réseau et des statistiques. Chaque fichier couvre une gamme spécifique d'informations relatives au réseau sur le système :
arp — Contient la table ARP du noyau. Ce fichier est particulièrement utile pour connecter une adresse de matériel à une adresse IP sur un système.
atm — Répertoire qui contient des fichiers avec divers réglages et statistiques sur les modes de transfert asynchrone (ATM). Ce répertoire est surtout utilisé avec le réseautage ATM et les cartes ADSL.
dev — Fournit la liste des divers périphériques réseau configurés sur le système. Ce fichier vous indique rapidement le nombre d'octets envoyés et reçus par chaque interface, le nombre de paquets entrants et sortants, le nombre d'erreurs trouvées, le nombre de paquets perdus, etc.
dev_mcast — Affiche les différents groupes de multidiffusion Layer2 qu'écoute chaque périphérique.
igmp — Fournit la liste des adresses IP de multidiffusion auxquelles s'est joint le système.
ip_fwchains — Indique toute chaîne de pare-feu actuelle.
ip_fwnames — Liste de tous les noms de chaîne de pare-feu. Par défaut, lorsque aucune chaîne de pare-feu n'est configurée, trois chaînes originales sont données :
input ACCEPT 1 0 93537 0 12626171 forward ACCEPT 1 0 0 0 0 output ACCEPT 1 0 14270 0 3796697 |
ip_masquerade — Table d'informations de masquerading.
ip_mr_cache — Liste de la cache du routeur de diffusion.
ip_mr_vif — Liste des interfaces virtuelles de diffusion.
netstat — Contient un ensemble vaste, mais détaillé, de statistiques réseau, telles que les temps morts TCP, les cookies SYN envoyés et reçus, etc.
psched — Liste des paramètres du programme d'ordonnancement global des paquets.
raw — Liste de statistiques brutes sur les périphériques.
route — Table de routage du noyau.
rt_cache — Cache de routage actuelle.
snmp — Liste de données du protocole SNMP pour différents protocoles réseau utilisés.
sockstat — Statistiques sur les prises (sockets). Exemple :
sockets: used 105 TCP: inuse 7 orphan 0 tw 0 alloc 7 mem 1 UDP: inuse 3 RAW: inuse 0 FRAG: inuse 0 memory 0 |
tcp — Informations détaillées sur les prises TCP.
tr_rif — Table de routage RIF en anneau à jeton.
udp — Informations détaillées sur les prises UDP.
unix — Liste des prises de domaine UNIX actuellement utilisées.
wireless — Liste des données d'interface sans fil.
Tout comme le répertoire /proc/ide n'existe que si un contrôleur IDE est connecté au système, le répertoire /proc/scsi n'est disponible que si vous avez une carte hôte d'interface pour petits systèmes informatiques (SCSI).
Le fichier principal est /proc/scsi/scsi, qui contient une liste de tous les périphériques SCSI reconnus. Exemple : si un système a un lecteur de CD-ROM, une unité de bande, des disques durs et un contrôleur RAID SCSI, ce fichier ressemblera à ceci :
Attached devices: Host: scsi1 Channel: 00 Id: 05 Lun: 00 Vendor: NEC Model: CD-ROM DRIVE:466 Rev: 1.06 Type: CD-ROM ANSI SCSI revision: 02 Host: scsi1 Channel: 00 Id: 06 Lun: 00 Vendor: ARCHIVE Model: Python 04106-XXX Rev: 7350 Type: Sequential-Access ANSI SCSI revision: 02 Host: scsi2 Channel: 00 Id: 06 Lun: 00 Vendor: DELL Model: 1x6 U2W SCSI BP Rev: 5.35 Type: Processor ANSI SCSI revision: 02 Host: scsi2 Channel: 02 Id: 00 Lun: 00 Vendor: MegaRAID Model: LD0 RAID5 34556R Rev: 1.01 Type: Direct-Access ANSI SCSI revision: 02 |
Cette liste fournit également le type de périphérique, de même que le nom de modèle, le fabricant et le canal/ID SCSI.
En outre, chaque pilote SCSI utilisé par le système a son propre répertoire dans /proc/scsi, qui contient des fichiers spécifiques à chaque contrôleur SCSI qui utilise ce pilote. Donc, dans le cas de l'exemple ci-dessus, les répertoires aic7xxx et megaraid sont présents car ces deux pilotes sont utilisés. Les fichiers dans chacun des répertoires contient l'éventail d'adresses E/S, les IRQ et des statistiques sur le contrôleur SCSI qui utilise le pilote. Bien que chaque contrôleur rapporte différents types (et quantités) d'information, la sortie de la plupart de ces fichiers vous sera très utile et facile à lire. Le fichier de la carte hôte SCSI Adaptec AIC-7880 Ultra, dans l'exemple, produit la sortie suivante :
Adaptec AIC7xxx driver version: 5.1.20/3.2.4
Compile Options:
TCQ Enabled By Default : Disabled
AIC7XXX_PROC_STATS : Enabled
AIC7XXX_RESET_DELAY : 5
Adapter Configuration:
SCSI Adapter: Adaptec AIC-7880 Ultra SCSI host adapter
Ultra Narrow Controller
PCI MMAPed I/O Base: 0xfcffe000
Adapter SEEPROM Config: SEEPROM found and used.
Adaptec SCSI BIOS: Enabled
IRQ: 30
SCBs: Active 0, Max Active 1,
Allocated 15, HW 16, Page 255
Interrupts: 33726
BIOS Control Word: 0x18a6
Adapter Control Word: 0x1c5f
Extended Translation: Enabled
Disconnect Enable Flags: 0x00ff
Ultra Enable Flags: 0x0020
Tag Queue Enable Flags: 0x0000
Ordered Queue Tag Flags: 0x0000
Default Tag Queue Depth: 8
Tagged Queue By Device array for aic7xxx host instance 1:
{255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}
Actual queue depth per device for aic7xxx host instance 1:
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
Statistics:
(scsi1:0:5:0)
Device using Narrow/Sync transfers at 20.0 MByte/sec, offset 15
Transinfo settings: current(12/15/0/0), goal(12/15/0/0), user(12/15/0/0)
Total transfers 0 (0 reads and 0 writes)
< 2K 2K+ 4K+ 8K+ 16K+ 32K+ 64K+ 128K+
Reads: 0 0 0 0 0 0 0 0
Writes: 0 0 0 0 0 0 0 0
(scsi1:0:6:0)
Device using Narrow/Sync transfers at 10.0 MByte/sec, offset 15
Transinfo settings: current(25/15/0/0), goal(12/15/0/0), user(12/15/0/0)
Total transfers 132 (0 reads and 132 writes)
< 2K 2K+ 4K+ 8K+ 16K+ 32K+ 64K+ 128K+
Reads: 0 0 0 0 0 0 0 0
Writes: 0 0 0 1 131 0 0 0 |
Cet écran vous permet de visualiser la vitesse de transfert des différents périphériques SCSI branchés au contrôleur en fonction de l'ID de canal, ainsi que des statistiques détaillées concernant la quantité et la taille des fichiers lus ou écrits par les périphériques. En examinant le fichier /proc/scsi/scsi, nous pouvons voir que ce contrôleur communique avec le lecteur de CD-ROM à une vitesse de 20 Mo par seconde, alors que la vitesse n'est que de 10 Mo par seconde dans le cas de l'unité de bande.
Ce répertoire est spécial et différent des autres répertoires de /proc ; non seulement est-il rempli d'informations sur le système, il vous permet aussi d'effectuer des modifications à la configuration d'un noyau en cours d'exécution.
![]() | Attention |
|---|---|
N'essayez pas d'améliorer les paramètres de votre noyau sur un système de production à l'aide des différents fichiers du répertoire /proc/sys. Il arrive parfois que la modification d'un paramètre rende le noyau instable et nécessite le redémarrage du système. Cela aurait évidemment comme effet de déconnecter tous les utilisateurs actuellement sur le système ; ayez plutôt recours à un système de développement semblable pour tester vos changements avant de les appliquer sur des ordinateurs de production. Avant de changer une valeur dans /proc/sys, assurez-vous de bien connaître les options valides de ce fichier et les résultats attendus. |
Une bonne façon pour savoir si un fichier donné peut servir à configurer le noyau ou est conçu uniquement pour fournir de l'information consiste à en faire la liste. Si le fichier peut être écrit, vous pouvez alors l'utiliser pour configurer le noyau d'une certaine manière. Voici par exemple une liste partielle de /proc/sys/fs :
[root@bleach /]# ls -l /proc/sys/fs <snip> -r--r--r-- 1 root root 0 May 10 16:14 dentry-state -rw-r--r-- 1 root root 0 May 10 16:14 dir-notify-enable -r--r--r-- 1 root root 0 May 10 16:14 dquot-nr -rw-r--r-- 1 root root 0 May 10 16:14 file-max -r--r--r-- 1 root root 0 May 10 16:14 file-nr <snip> [root@bleach /]# |
Dans cette liste, les fichiers dir-notify-enable et file-max peuvent être écrits et, par conséquent, peuvent être utilisés pour configurer le noyau. Les autres fichiers ne fournissent que des informations sur les paramètres actuels du noyau.
Pour changer une valeur dans un fichier /proc/sys il faut écrire la nouvelle valeur dans le fichier à l'aide de la commande echo. Par exemple, si vous souhaitez activer la touche d'appel système (System Request Key) sur un noyau en cours d'exécution, entrez la commande suivante :
[root@bleach /]# echo "1" > /proc/sys/kernel/sysrq |
Cela aura pour effet de changer la valeur sysrq du fichier, qui passera de 0 à 1. Par défaut, la touche d'appel système est activée dans le noyau Red Hat Linux. Cependant, la valeur 0 est passée à /proc/sys/kernel/sysrq au démarrage par rc.sysinit appelant sysctl pour passer les paramètres /etc/sysctl.conf au noyau via le répertoire /proc. Cela désactive donc la fonction de touche d'appel système, qui peut causer des problèmes de sécurité sur une console non surveillée. Toutefois, le super-utilisateur est autorisé à activer la fonction à tout moment sur un noyau en cours d'exécution si cela s'avère nécessaire.
La touche d'appel système est conçue pour vous permettre d'indiquer au noyau d'exécuter certaines opérations importantes au moyen d'une simple combinaison de touches, telles que d'arrêter ou redémarrer le système, synchroniser tous les systèmes de fichiers montés ou mettre des informations importantes sur votre console. Cette fonction est utile lorsque vous utilisez un noyau de développement ou si vous avez des blocages de système. Pour en savoir plus sur la touche d'appel système, reportez-vous à /usr/src/linux-2.4/Documentation/sysrq.txt.
Quelques fichiers de configuration /proc/sys contiennent plus d'une valeur. Placez un caractère d'espacement entre chaque valeur passée à l'aide de la commande echo, afin d'envoyer correctement les nouvelles valeurs. Exemple :
[root@bleach /]# echo "4 2 45" > /proc/sys/kernel/acct |
![]() | Remarque |
|---|---|
Toute modification de configuration effectuée en donnant de nouvelles valeurs au fichiers /proc/sys à l'aide de la commande echo disparaît lorsque le système est redémarré. Pour faire en sorte que vos modifications soient appliquées au démarrage, reportez-vous à la la section intitulée Utilisation de sysctl. |
Le répertoire /proc/sys contient plusieurs répertoires différents qui contrôlent divers aspects d'un noyau en cours d'utilisation.
Ce répertoire fournit des paramètres pour des périphériques particuliers sur le système. La plupart des systèmes ont au moins deux répertoires, soit cdrom et raid, mais les noyaux personnalisés peuvent en avoir d'autres, tels que parport, qui indique la capacité de partager un port parallèle entre plusieurs pilotes de périphérique.
Le répertoire cdrom contient un fichier appelé info, qui indique de nombreux paramètres de lecteur de CD-ROM importants :
CD-ROM information, Id: cdrom.c 3.12 2000/10/18 drive name: hdc drive speed: 32 drive # of slots: 1 Can close tray: 1 Can open tray: 1 Can lock tray: 1 Can change speed: 1 Can select disk: 0 Can read multisession: 1 Can read MCN: 1 Reports media changed: 1 Can play audio: 1 Can write CD-R: 0 Can write CD-RW: 0 Can read DVD: 0 Can write DVD-R: 0 Can write DVD-RAM: 0 |
Ce fichier peut être examiné rapidement pour découvrir les qualités d'un lecteur de CD-ROM inconnu, pour le noyau du moins. Si plusieurs lecteurs de CD-ROM sont disponibles sur le système, chaque périphérique a sa propre colonne d'informations.
De nombreux fichiers dans /proc/sys/dev/cdrom, tels que autoclose et checkmedia, peuvent être utilisés pour contrôler le lecteur de CD-ROM du système. Utilisez simplement la commande echo pour indiquer un 1 au bon fichier afin d'activer la fonction ou un 0 pour la désactiver.
Si la prise en charge RAID est compilée dans le noyau, un répertoire /proc/sys/dev/raid est disponible, qui contient au moins deux fichiers : speed_limit_min et speed_limit_max. Ces paramètres entrent en jeu de façon à ralentir ou accélérer la vitesse à laquelle le périphérique RAID est utilisé pour des tâches E/S particulièrement intensives, telles que la resynchronisation des disques.
Ce répertoire contient une gamme d'options et des informations concernant divers aspects des systèmes de fichiers : parts, indicateurs de fichier, dentry.
Le répertoire binfmt_misc est utilisé pour fournir au noyau la prise en charge pour des formats binaires variés.
Les fichiers importants dans /proc/sys/fs sont, notamment :
dentry-state — Etat de la cache du répertoire. Le fichier ressemble à ceci :
57411 52939 45 0 0 0 |
Le premier nombre indique le nombre total d'entrées dans la cache du répertoire, alors que le deuxième indique le nombre d'entrées non utilisées. Le troisième indique le nombre de secondes entre le moment où un répertoire a été libéré et le moment où il peut être redemandé et le quatrième mesure les pages actuellement demandées par le système. Les deux derniers chiffres ne sont pas utilisés et affichent uniquement un zéro.
dquot-nr — Nombre maximum d'entrées de parts de disque en cache.
file-max — Vous permet de changer le nombre maximum d'indicateurs de fichier alloués par le noyau. Si vous augmentez la valeur dans ce fichier, vous pourrez résoudre des erreurs causées par le manque d'indicateurs de fichier disponibles.
file-nr — Affiche, dans l'ordre, le nombre d'indicateurs de fichier alloués, utilisés et maximum.
overflowgid et overflowuid — Définit l'ID groupe et l'ID utilisateur fixés, respectivement, pour l'utilisation avec des systèmes de fichiers qui ne prennent en charge que des ID groupe et utilisateur 16 bits.
super-max — Contrôle le nombre maximum de superblocs disponibles.
super-nr — Affiche le nombre courant de superblocs utilisés.
Ce répertoire contient divers fichiers de configuration qui affectent directement le fonctionnement du noyau. Parmi les fichiers les plus importants, on retrouve :
acct — Contrôle la suspension de la comptabilisation de processus sur la base du pourcentage d'espace libre disponible sur le système de fichiers contenant le journal. Par défaut, ce fichier ressemble à ceci :
4 2 30 |
La deuxième valeur définit le seuil de pourcentage d'espace libre pour suspendre la journalisation, alors que la première valeur indique le pourcentage nécessaire pour reprendre la journalisation. La troisième valeur indique l'intervalle de temps en secondes entre les vérifications du système de fichier de la part du noyau pour savoir si la journalisation doit être suspendue ou reprise.
cap-bound — Contrôle les réglages de capability bounding, qui fournit la liste des capacités que tout processus du système peut exécuter. Si une capacité n'est pas incluse dans cette liste, aucun processus, peu importe ses privilèges, ne peut l'exécuter. L'objectif de base est d'augmenter la sécurité du système en s'assurant que certaines choses ne peuvent se produire, du moins jusqu'à un certain point lors du processus de démarrage.
Les nombreuses valeurs possibles dans ce cas vont au-delà des objectifs de ce manuel, veuillez alors consulter la documentation sur le noyau pour en savoir davantage.
ctrl-alt-del — Contrôle si Ctrl-Alt-Suppr redémarre correctement l'ordinateur à l'aide d' init (valeur 0) ou force un redémarrage immédiat sans synchroniser les tampons " sales " du disque (valeur 1).
domainname — Vous permet de configurer le nom de domaine du système, tel que domain.com.
hostname — Vous permet de configurer le nom d'hôte du système, tel que host.domain.com.
hotplug — Configure l'utilitaire à utiliser lorsqu'un changement de configuration est détecté par le système. Surtout utilisé avec USB et Cardbus PCI. La valeur par défaut de /sbin/hotplug ne devrait pas être modifiée, à moins que vous ne testiez un nouveau programme pour jouer ce rôle.
modprobe — Définit l'emplacement du programme à utiliser pour charger des modules du noyau lorsque nécessaire. La valeur par défaut de /sbin/modprobe signifie que kmod l'appelle pour charger un module lorsqu'un processus élémentaire du noyau appelle kmod.
msgmax — Définit la taille maximum de tout message envoyé d'un processus à un autre ; la valeur par défaut est 8192 octets. Soyez prudent lorsque vous décidez d'augmenter cette valeur car les messages en file d'attente entre les processus sont stockés dans la mémoire non échangeable du noyau ; toute augmentation de msgmax augmente également la demande de mémoire vive pour le système.
msgmnb — Définit le nombre maximum d'octets dans une file d'attente de messages. Par défaut, la valeur est 16384.
msgmni — Définit le nombre maximum d'identificateurs de file d'attente de messages. Par défaut, la valeur est 16.
osrelease — Numéro de version du noyau Linux. Ce fichier ne peut être modifié qu'en changeant la source du noyau et en recompilant.
ostype — Type de système d'exploitation. Par défaut, ce fichier est paramétré sur Linux et cette valeur ne peut être modifiée qu'en changeant la source du noyau et en recompilant.
overflowgid et overflowuid — Définit les ID groupe et utilisateur fixés, respectivement, pour l'utilisation avec des appels de système sur des architectures qui ne prennent en charge que des ID groupe et utilisateur 16 bits.
panic — Définit le retardement en secondes effectué par le noyau pour le redémarrage du système lors d'une panique de noyau. Par défaut, la valeur est réglée sur 0, ce qui désactive le redémarrage automatique après une panique.
printk — Ce fichier contrôle toute une série de paramètres relatifs à l'affichage ou la journalisation de messages d'erreur. Chaque message d'erreur rapporté par le noyau a un niveau journal (loglevel) qui lui est associé et qui définit son importance. Les valeurs de niveau journal se subdivisent dans l'ordre suivant :
0 — Urgence noyau. Le système est inutilisable.
1 — Alerte noyau. Il faut agir immédiatement.
2 — Les conditions du noyaux sont considérées comme critiques.
3 — Condition d'erreur du noyau générale.
4 — Condition d'avertissement du noyau générale.
5 — Avis du noyau d'une condition normale, mais importante.
6 — Message d'information du noyau.
7 — Messages de niveau débogage du noyau.
Quatre valeurs se trouvent dans le fichier printk :
6 4 1 7 |
Chacune de ces valeurs définit une règle différente pour traiter les messages d'erreur. La première valeur, appelée niveau journal de la console, spécifie la plus basse priorité de message qui sera affichée sur la console (notez que plus la priorité est basse, plus le numéro de niveau journal est élevé). La deuxième valeur définit le niveau journal par défaut pour les messages dépourvus de niveau journal explicite. La troisième valeur spécifie la plus basse configuration de niveau journal possible pour le niveau journal de la console. La dernière valeur définit la valeur par défaut pour le niveau journal de la console.
rtsig-max — Configure le nombre maximum de signaux POSIX en temps réel que le système peut avoir en file d'attente simultanément. La valeur par défaut est 1024.
rtsig-nr — Le nombre courant de signaux POSIX en temps réel mis en file d'attente par le noyau.
sem — Ce fichier configure les paramètres de sémaphores dans le noyau. Un sémaphore est un objet IPC System V utilisé pour contrôler l'utilisation d'un processus spécifique.
shmall — Définit la quantité totale de mémoire partagée qui peut être utilisée à un moment précis sur le système, en octets. Par défaut, cette valeur est 2097152.
shmmax — Définit la plus grande taille d'un segment de mémoire partagée autorisée par le noyau, en octets. Par défaut, cette valeur est 33554432. Toutefois, le noyau prend en charge des valeurs beaucoup plus élevées.
shmmni — Définit le nombre maximum de segments de mémoire partagée pour l'ensemble du système. Par défaut, cette valeur est 4096.
sysrq — Active la touche d'appel système si cette valeur est réglée sur autre chose que la valeur par défaut, qui est 0.
threads-max — Définit le nombre maximum de processus élémentaires (threads) devant être utilisés par le le noyau. La valeur par défaut est 4095.
version — Affiche la date et l'heure de la dernière compilation du noyau. Le premier champ dans ce fichier, tel que #3, fait référence au nombre de fois que le noyau a été construit à partir de la source.
Le répertoire random stocke un certain nombre de valeurs relatives à la génération de numéros aléatoires pour le noyau.
Ce répertoire contient des répertoires variés relatifs à des éléments réseau, tels que des protocoles et des centres d'accentuation. Diverses configurations lors de la compilation du noyau déterminent la présence ou non de différents répertoires à cet endroit, tels que appletalk, ethernet, ipv4, ipx et ipv6. Dans ces répertoires, vous pouvez ajuster les diverses valeurs réseau pour la configuration en question sur un système en cours d'exécution.
Vu la grande variété d'options réseau possibles et disponibles sous Linux et la grande quantité d'espace nécessaire pour en parler, nous ne couvrirons que les répertoires /proc/sys/net les plus communs.
Le répertoire core contient une série de paramètres qui contrôlent l'interaction entre le noyau et les couches réseau. Ses fichiers les plus importants sont :
message_burst — Dixièmes de seconde nécessaires pour écrire un nouveau message d'avertissement. Cela est utilisé pour prévenir les attaques de refus de service (DoS). La valeur par défaut est 50.
message_cost — Aussi utilisé pour prévenir les attaques de refus de service, en plaçant un " coût " sur chaque message d'avertissement. Plus la valeur de ce fichier est élevée (5 par défaut), plus il est probable que le message d'avertissement soit ignoré.
L'idée de base est qu'une personne puisse faire une attaque en bombardant votre système de requêtes qui génèrent des erreurs et remplissent vos journaux ou nécessitent toutes les ressources de votre système pour gérer la journalisation des erreurs. Les paramètres dans message_burst et message_cost sont conçus pour être modifiés en fonction des risques acceptables de votre système par rapport au besoin d'une journalisation exhaustive.
netdev_max_backlog — Définit le nombre maximum de paquets autorisés à être mis en file d'attente lorsqu'une interface spécifique reçoit des paquets plus rapidement que le noyau ne peut les traiter. La valeur par défaut de ce fichier est 300.
optmem_max — Configure la taille maximum des tampons auxiliaires autorisée par prise (socket).
rmem_default — Définit la taille par défaut en octets du tampon de réception.
rmem_max — Définit la taille maximum en octets du tampon de réception.
wmem_default — Définit la taille par défaut en octets du tampon d'envoi.
wmem_max — Définit la taille maximum en octets du tampon d'envoi.
Vu la grande utilisation de réseaux IP avec Linux, un coup d'oeil aux fichiers les plus importants dans ipv4 permet de découvrir des paramètres réseau additionnels puissants. Nombre de ces paramètres, utilisés de concert avec d'autres, sont très utiles pour prévenir des attaques contre votre système.
![]() | Avertissement |
|---|---|
Assurez-vous de savoir ce que vous faites, de même que ce que vous voulez obtenir, avant de changer l'un ou l'autre de ces paramètres. De plus, vous devriez effectuer vos changements localement car une modification erronée pourrait avoir un effet néfaste sur la connectivité à distance de votre système. |
Voici quelques-uns des fichiers les plus importants du répertoire ipv4 :
icmp_destunreach_rate, icmp_echoreply_rate, icmp_paramprob_rate et icmp_timeexeed_rate — Pour définir le délai maximum d'envoi de paquets ICMP, en centièmes de seconde sur les systèmes Intel, aux hôtes sous différentes conditions. La valeur 0 élimine tout délai, ce qui n'est pas une bonne idée.
icmp_echo_ignore_all et icmp_echo_ignore_broadcasts — Permet au noyau d'ignorer les paquets ECHO ICMP de tous les hôtes ou uniquement ceux qui proviennent des adresses de diffusion ou de multidiffusion, respectivement. Une valeur de 0 permet au noyau de répondre, alors qu'une valeur de 1 lui fait ignorer les paquets.
ip_default_ttl — Définit la durée de vie (TTL), qui limite le nombre de sauts qu'un paquet peut faire avant d'atteindre sa destination. L'augmentation de cette valeur peut réduire les performances du système.
ip_forward — Permet aux interfaces du système de réacheminer des paquets aux autres interfaces. Par défaut, ce fichier est paramétré sur 0 pour désactiver le réacheminement, mais si vous paramétrez ce fichier sur 1, le réacheminement sera activé.
ip_local_port_range — Spécifie l'éventail de ports à utiliser par TCP ou UDP lorsqu'un port local est requis. Le premier nombre est le port le plus bas à utiliser et le second est le port le plus élevé. Pour tout système pour lequel on prévoit avoir besoin de plus de ports que ceux de l'éventail paramétré par défaut (1024 à 4999), il est conseillé d'utiliser un éventail de 32768 à 61000 dans ce fichier.
tcp_syn_retries — Fournit une limite du nombre de fois que votre système retransmet un paquet SYN lorsqu'il essaie d'effectuer une connexion.
tcp_retries1 — Définit le nombre de retransmissions permises, essayant de répondre à une connexion entrante. La valeur par défaut est 3.
tcp_retries2 — Définit le nombre de retransmissions permises de paquets TCP. La valeur par défaut est 15.
Si vous désirez obtenir une liste complète des fichiers et options disponibles, consultez /usr/src/linux-2.4/Documentation/networking/ip-sysctl.txt.
De nombreux autres répertoires existent dans le répertoire /proc/sys/net/ipv4 et couvrent des sujets spécifiques. Le répertoire conf permet de configurer chaque interface du système de façon différente, ainsi que d'utiliser des paramètres par défaut pour des périphériques non configurés (dans le sous-répertoire default) et des paramètres qui écrasent toutes les configurations spéciales (dans le sous-répertoire all).
De façon à contrôler les connexions entre voisins directs, soit d'autres systèmes connectés directement à votre système, le répertoire neigh permet des configurations spéciales pour chaque interface. Cela vous permet de traiter différemment les systèmes auxquels vous vous fiez davantage en raison de leur proximité relative à votre système tout en vous laissant établir des règles strictes pour les systèmes qui se trouvent à plusieurs sauts de distance.
Le routage via IPV4 a aussi son propre répertoire, soit route. Contrairement à conf et neigh, le répertoire route contient des spécifications qui s'applique au routage avec toutes les interfaces du système. Nombre de ces paramètres, tels que max_size, max_delay et min_delay, font référence au contrôle de la taille de la cache de routage. Pour libérer la cache de routage, spécifiez simplement une valeur quelconque dans le fichier flush.
Vous trouverez plus d'informations sur ces répertoires et les valeurs possibles pour leur configuration dans /usr/src/linux-2.4/Documentation/filesystems/proc.txt.
Ce répertoire facilite la configuration du sous-système de la mémoire virtuelle (VM) du noyau Linux. Le noyau utilise de façon exhaustive et intelligente la mémoire virtuelle, que l'on appelle communément l'espace swap.
Les fichiers suivants se trouvent généralement dans le répertoire /proc/sys/vm :
bdflush — Définit différentes valeurs relatives au démon noyau bdflush.
buffermem — Vous permet de contrôler la quantité en pourcentage de la mémoire totale du système devant être utilisée comme mémoire tampon. Voici à quoi ressemble la sortie de ce fichier :
2 10 60 |
La première et la dernière valeurs définissent le pourcentage minimum et maximum de mémoire à utiliser comme mémoire tampon. La valeur au milieu indique le pourcentage de mémoire du système dédiée à la mémoire tampon à partir duquel le sous-système de gestion de la mémoire commencera à libérer la cache tampon plus que les autres types de mémoire pour compenser le manque général de mémoire libre.
freepages — Indique différentes valeurs relatives aux pages libres de la mémoire du système. Ce fichier ressemble à ceci :
223 446 669 |
La première valeur indique le nombre minimum de pages libres permises avant que le noyau ne prenne le contrôle de l'attribution de mémoire supplémentaire. La deuxième valeur indique le nombre de pages libres avant que le noyau ne commence à effectuer agressivement des échanges (swap) pour préserver les performances. La troisième valeur est le nombre de pages libres que le système essaie de maintenir en tout temps.
kswapd — Définit différentes valeurs concernant le démon noyau de swap-out, kswapd. Ce fichier contient trois valeurs :
512 32 8 |
La première valeur indique le nombre maximum de pages que kswapd essaie de libérer en une seule tentative. Plus cette valeur est élevé, plus le noyau peut agir rapidement pour libérer des pages. La deuxième valeur définit le nombre de fois minimum que kswapd essaie de libérer une page. La troisième valeur indique le nombre de pages que kswapd essaie d'écrire en une tentative. Le bon réglage de la valeur finale permet d'améliorer les performances de systèmes qui utilisent beaucoup d'espace swap en leur indiquant d'écrire les pages en gros blocs, ce qui minimise le nombre de recherches de disque.
max_map_count — Configure le nombre maximum de régions de topographie mémoire qu'un processus peut avoir. Dans la plupart des cas, la valeur par défaut, 65536, est adéquate.
overcommit_memory — Contient une valeur qui, lorsqu'elle est paramétré sur autre chose que la valeur par défaut 0, permet au noyau de sauter une vérification standard pour s'assurer qu'il y a suffisamment de mémoire avant d'en attribuer.
pagecache — Contrôle la quantité de mémoire utilisée par la cache de pages. Les valeurs dans pagecache sont exprimées en pourcentage et fonctionnent de façon semblable à buffermem pour appliquer des valeurs minimum et maximum de mémoire de cache de pages disponible.
page-cluster — Définit le nombre de pages lues en une tentative. La valeur par défaut est 4, ce qui signifie en fait 16 pages ; cette valeur est adéquate pour la plupart des systèmes.
pagetable_cache — Contrôle le nombre de tables de pages mises en cache par processeur. La première et la deuxième valeurs font référence aux nombres minimum et maximum de tables de pages à mettre de côté.
Des informations supplémentaires sur ces fichiers se trouvent dans /usr/src/linux-2.4/Documentation/sysctl/vm.txt.
Ce répertoire contient des informations sur les ressources IPC System V. Les fichiers dans ce répertoire concernent les appels IPC System V de messages, (msg), sémaphores (sem) et mémoire partagée (shm).
Ce répertoire contient des informations sur les périphériques tty disponibles et utilisés sur le système. Appelés à l'origine périphériques téléimprimeurs (ou télétypes), tout terminal basé sur les caractères est un périphérique tty.
Sous Linux, il existe trois types différents de périphérique tty. Les périphériques série sont utilisés avec les connexions série, telles que via modem ou câble série. Les terminaux virtuels créent la connexion console commune, telle que les consoles virtuelles disponibles lorsque vous appuyez sur Alt-<F> à la console système. Les pseudo-terminaux créent une communication à double sens utilisée par les applications de niveau supérieur, telles que X11.
Le fichier drivers est une liste des périphériques tty actuellement utilisés :
serial /dev/cua 5 64-127 serial:callout serial /dev/ttyS 4 64-127 serial pty_slave /dev/pts 136 0-255 pty:slave pty_master /dev/ptm 128 0-255 pty:master pty_slave /dev/ttyp 3 0-255 pty:slave pty_master /dev/pty 2 0-255 pty:master /dev/vc/0 /dev/vc/0 4 0 system:vtmaster /dev/ptmx /dev/ptmx 5 2 system /dev/console /dev/console 5 1 system:console /dev/tty /dev/tty 5 0 system:/dev/tty unknown /dev/vc/%d 4 1-63 console |
Le fichier /proc/tty/driver/serial donne la liste des statistiques d'utilisation et le statut de chaque ligne tty série.
Pour que les périphériques tty puissent être utilisés de façon semblable aux périphériques réseau, le noyau Linux applique une discipline de ligne sur les périphériques. Cela permet au pilote de placer un type spécifique d'en-tête avec chaque bloc de données transmis via un périphérique donné ; ainsi, l'extrémité distante de la connexion voit ce bloc de données comme un tout unique dans une chaîne de blocs de données. SLIP et PPP sont des disciplines de ligne courantes et sont communément utilisées pour connecter des systèmes via un lien série.
Les disciplines de ligne enregistrées sont stockées dans le fichier ldiscs et des informations détaillées sont disponibles dans le répertoire ldisc.
| Précédent | Sommaire | Suivant |
| Les fichiers du niveau supérieur dans /proc | Niveau supérieur | Utilisation de sysctl |