You are on page 1of 466

Guide dinstallation et de

conguration de Linux
Christian Casteyde
Guide dinstallation et de conguration de Linux
par Christian Casteyde
Copyright 2003 Christian Casteyde
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.
A copy of the license is included in the section entitled "GNU Free Documentation License".
Permission vous est donne de copier, distribuer et modier ce document selon les termes de la licence GNU pour les documentations libres,
version 1.1 ou toute autre version ultrieure publie par la Free Software Foundation.
Une copie de cette licence est incluse dans lannexe intitule "Licence de Documentation Libre GNU".
Historique des versions
Version 2.4.1 14/06/2003 Revu par : CC
Corrections orthographiques. Mise jour pour le noyau 2.4.21 et la glibc 2.3.2. Mise jour pour gcc 3.2.3 et binutils 2.14. Mise jour pour XFree86 4.3.0. Mise jour pour KDE 3.1.2 et Qt 3.1.2. Mise jour pour Gnome 2.2.1. Corrections et complments sur la gestion des modules. Mise jour pour le support des polices TrueType pour XFree86 4.3.0.
Version 2.4.0 30/11/2002 Revu par : CC
Corrections orthographiques. Mise jour pour le noyau 2.4.20, glibc 2.3.1, binutils 2.13.1, gcc 3.2.1, XFree86 4.2.1, Qt 3.0.6, KDE 3.0.5. Suppression de la conguration des polices TrueType pour StarOfce (OpenOfce sait prsent grer les polices TrueType lui-mme). Mise jour pour quelques autres composants systme. Dplacement de la description des options de conguration du noyau de Linux en annexe. Ajout des gures. Description du super-dmon xinetd. Ajout de la compilation de Gnome 2.0.2.
Version 2.2.1 26/01/2002 Revu par : CC
Mise jour pour XFree86 4.2.0 et la Glibc 2.2.5. Mise jour pour LessTiff 0.93.18.
Version 2.2.0 13/01/2002 Revu par : CC
Mises jour diverses (noyau 2.4.17, Binutils 2.11.2, Glibc 2.2.4, Mesa 4.0.1, KDE 2.2.2, Qt 2.3.1, Samba 2.2.2). Description de la compilation de LessTif 0.93.15. Suppression du support des noyaux 2.2.x. Ajout dun bref historique de Linux et dUnix. Prcisions sur les logiciels libres et la licence GPL. Rcriture du paragraphe traitant du partitionnement. Utilisation de parted pour le redimensionnement des partitions FAT. Description du systme de chiers journalis EXT3. Description de la manire de raliser un multiboot avec NT/2000/XP et restructuration de la section traitant de LILO. Ajout de la description du GRUB. Division du chapitre de conguration en un chapitre dadministration et un chapitre de conguration du matriel. Rorganisation du chapitre de conguration du matriel. Rorganisation de lordre des chapitres, pour dcrire la compilation du noyau avant la conguration du matriel. Ajout de la section traitant de la gestion des utilisateurs et de la scurit dans le chapitre dadministration. Ajout de la conguration des priphriques SCSI, des cartes rseau, des ports parallles et srie et des cartes IEEE1394 (FireWire) dans le chapitre de conguration. Ajout dune section traitant de OpenSSH dans le chapitre traitant du rseau.
Version 2.0.2 28/04/2001 Revu par : CC
Corrections orthographiques. Conguration du protocole DHCP. Complments sur la conguration de base du systme. Mise jour du systme de chiers /dev/shm. Mise jour pour le noyau 2.4.4.
Version 2.0.1 04/04/2001 Revu par : CC
Ajout dune traduction de la FDL en franais. Corrections diverses. Mise jour pour le noyau 2.4.3. Mise jour pour la Glibc 2.2.2. Mise jour pour GCC 2.93.3. Mise jour pour XFree86 4.0.3. Mise jour pour Qt 2.3.0. Mise jour pour KDE 2.1.1. Installation de Java avec support SSL dans KDE 2.1.1. Ajout dun paragraphe pour la compilation de MESA et complments pour les cartes graphiques 3D. Suppression des symboles :, …, — et – qui ne passaient ni en HTML, ni en RTF (les symboles : et -- ne sont plus formats correctement dans le format Adobe Acrobat, mais les autres formats sont prsent corrects).
Version 2.0.0 07/01/2001 Revu par : CC
Mise jour pour le noyau 2.4.0. Mise jour pour la Glibc 2.2. Mise jour pour XFree86 4.0.2. Compilation des binutils. Compilation de OpenSSL. Mise jour pour Qt 2.2.3. Mise jour pour KDE 2.1. Restructuration complte du chapitre de conguration. Description du systme de chier virtuel /dev/. Prise en compte du Plug and Play. Conguration des cartes dacquisition vido. Prise en compte des priphriques USB. Cration dun chapitre spcique pour la conguration du rseau. Mise jour du paragraphe traitant des partages de connexion Internet pour lutilisation diptables.
Version 1.0.32 02/11/2000 Revu par : CC
Passage au format de chier SGML. Ajout des liens hypertextes. Gestion des connexions la demande sur les liaisons PPP. Conguration des liaisons entrantes et des serveurs PPP. Installation dun proxy cache. Complments et corrections diverses sur le shell et sur les pipes. Description des commandes xargs et tee. Mise jour pour Samba 2.0.7. Mise jour pour KDE 2.0.
Version 0.31 09/09/2000 Revu par : CC
Mise jour pour le noyau 2.2.17.
Version 0.30 09/07/2000 Revu par : CC
Changement du titre du document vers un titre plus gnrique permettant de traiter des sujets plus larges que ce que le titre originel ne permettait. Passage en licence FDL. Ajout de la table des matires.
Version 0.29 10/06/2000 Revu par : CC
Mise jour pour le noyau 2.2.16. Corrections et modications mineures.
Version 0.28 03/06/2000 Revu par : CC
Mise jour pour le noyau 2.2.15. Mise jour pour make 3.79.
Version 0.27 01/05/2000 Revu par : CC
Corrections orthographiques diverses.
Version 0.26 22/04/2000 Revu par : CC
Correction sur le bit sticky. Corrections mineures sur lditeur vi. Description des variables denvironnement. Achvement du paragraphe traitant de la conguration des rseaux locaux. Conguration dun partage de connexion Internet. Conguration de NFS. Conguration de Samba et description de la compilation de Samba 2.0.6. Rorganisation du chapitre de conguration du systme de base (description des chiers spciaux de priphriques, clarication de la notion de modules, ajout de la conguration du port parallle, de lhorloge, des terminaux virtuels et de la console). Complment sur le fonctionnement de XWindow. Ajout de la description des display de XWindow. Conguration de xdm et des terminaux X. Conguration du clavier de XWindow. Gestion des mcanismes de scurit de XWindow. Complments sur les lignes de modes de XFree86. Correction sur lutilisation de xvidtune. Description des ressources X. Mise jour pour la bibliothque C GNU 2.1.3. Prise en compte des localedata dans la compilation de la bibliothque C. Refonte du paragraphe traitant de limpression. Description du chier de conguration /etc/printcap.
Version 0.25 16/02/2000 Revu par : CC
Release partielle. Mise jour pour le noyau 2.2.14 et XFree86 3.3.6. Ajout pour la compilation de ttmkfdir. Corrections sur la compilation de GCC et des principaux composants du systme. Corrections sur lorganisation standard du systme de chiers Linux. Ajout sur loption read-only du chier de conguration de Lilo. Ajout dun second exemple sur les redirections. Refonte du paragraphe traitant de la conguration du rseau (prise en compte des rseaux locaux).
Version 0.24 29/01/2000 Revu par : CC
Modication et mise jour de la licence. Mise jour pour make 3.78.1. et la bibliothque crypt 2.1.2. Ajout du paragraphe sur la conguration des cartes son. Prcisions sur les modems logiciels. Description de lutilisation du serveur XWindow pour le pilote de frame buffer du noyau.
Version 0.23 03/11/1999 Revu par : CC
Mise jour pour gcc 2.95.2.
Version 0.22 01/11/1999 Revu par : CC
Ajout de lhistorique des modications. Ajout de la licence. Description des protocoles PAP et CHAP. Mise jour pour le noyau 2.2.13. Description des Modelines de X11. Ajout de lannexe sur la compilation de la bibliothque C, de XFree86 et de KDE. Autres ajouts mineurs et corrections. Corrections orthographiques.
Version 0.21 08/10/1999 Revu par : CC
Corrections orthographiques.
Version 0.20 14/07/1999 Revu par : CC
Premire version publique.
Table des matires
Remarques de lauteur ........................................................................................................................ i
1. Introduction..................................................................................................................................... 1
2. GNU, Linux et les logiciels libres................................................................................................... 5
3. Concepts de base............................................................................................................................. 9
3.1. Architecture du systme....................................................................................................... 9
3.2. Scurit et utilisateurs ........................................................................................................ 11
3.3. Fonctionnalits des systmes de chiers............................................................................ 15
3.4. Structure du systme de chiers......................................................................................... 19
4. Installation du systme de base ................................................................................................... 27
4.1. Rcupration des informations sur le matriel................................................................... 27
4.2. Sauvegarde des donnes..................................................................................................... 28
4.3. Amorage ........................................................................................................................... 29
4.4. Partitionnement du disque.................................................................................................. 30
4.4.1. Notion de partition et damorage du systme...................................................... 30
4.4.2. Plan de partitionnement ......................................................................................... 32
4.4.3. Trouver de la place pour installer le systme ........................................................ 35
4.4.3.1. Utilisation de parted.................................................................................. 36
4.4.3.2. Utilisation de ps ...................................................................................... 38
4.4.4. Utilisation de fdisk ................................................................................................ 39
4.5. Cration des systmes de chiers....................................................................................... 40
4.6. Cration de la partition de swap......................................................................................... 43
4.7. Installation des composants de base................................................................................... 44
4.8. Amorage du systme et conguration multiboot ............................................................. 45
4.8.1. Ralisation dun multiboot avec LILO.................................................................. 46
4.8.2. Ralisation dun multiboot avec le GRUB............................................................ 50
4.8.3. Ralisation dun multiboot avec NTLDR.............................................................. 53
5. Commandes Unix de base ............................................................................................................ 55
5.1. Login et dconnexion......................................................................................................... 55
5.2. Arrt et redmarrage du systme ....................................................................................... 56
5.3. Pages de manuel ................................................................................................................. 57
5.4. Oprations de base sur les rpertoires................................................................................ 59
5.5. Notions de chemins sous Unix........................................................................................... 60
5.6. Oprations de base sur les chiers ..................................................................................... 62
5.7. Autres commandes utiles ................................................................................................... 64
5.7.1. Passage en mode superviseur ................................................................................ 64
5.7.2. Changement des droits des chiers, du propritaire et du groupe......................... 64
5.7.3. Gestion des liens.................................................................................................... 65
5.7.4. Montage et dmontage dun systme de chiers................................................... 66
5.7.5. Recherche de chiers............................................................................................. 68
5.7.6. Recherche dun texte dans un chier..................................................................... 68
5.7.7. Remplacement de texte dans les chiers ............................................................... 68
5.7.8. Compression et dcompression des chiers .......................................................... 69
5.7.9. Archivage de chiers ............................................................................................. 70
5.7.10. Gestion des paquetages........................................................................................ 71
5.8. vi, lditeur de chiers de base........................................................................................... 72
5.9. Utilisation du shell bash..................................................................................................... 74
5.9.1. Contrle des processus .......................................................................................... 75
5.9.1.1. Lancement dun programme en arrire-plan............................................. 75
v
5.9.1.2. Listing des processus ................................................................................ 76
5.9.1.3. Notion de signal ........................................................................................ 76
5.9.1.4. Arrt dun processus ................................................................................. 77
5.9.1.5. Gel dun processus.................................................................................... 77
5.9.1.6. Relancement dun processus..................................................................... 78
5.9.2. Redirections........................................................................................................... 78
5.9.2.1. Principe de base ........................................................................................ 78
5.9.2.2. Redirections de donnes en entre............................................................ 79
5.9.2.3. Redirection de donnes en sortie .............................................................. 79
5.9.2.4. Insertion de documents ............................................................................. 81
5.9.3. Les tubes................................................................................................................ 82
5.9.3.1. Syntaxe des tubes...................................................................................... 82
5.9.3.2. Les tubes nomms..................................................................................... 84
5.9.3.3. La commande tee ...................................................................................... 85
5.9.3.4. La commande xargs .................................................................................. 85
5.9.4. Manipulation des variables denvironnement........................................................ 86
5.9.5. Caractre dchappement et chanes de caractres................................................ 90
5.9.6. Les substitutions .................................................................................................... 92
5.9.6.1. Gnration de chanes de caractres selon un motif ................................. 92
5.9.6.2. Substitution du nom dutilisateur.............................................................. 92
5.9.6.3. Remplacements de variables..................................................................... 93
5.9.6.4. Substitution du rsultat dune commande................................................. 95
5.9.6.5. valuation dexpressions arithmtiques.................................................... 95
5.9.6.6. Substitution de commandes ...................................................................... 96
5.9.6.7. Dcoupage en mots................................................................................... 97
5.9.6.8. Remplacement des caractres gnriques................................................. 97
5.9.7. Les expressions rationnelles .................................................................................. 98
5.9.8. Structures de contrle............................................................................................ 99
5.9.8.1. Les instructions composes....................................................................... 99
5.9.8.2. Les tests................................................................................................... 100
5.9.8.3. Le branchement conditionnel.................................................................. 104
5.9.8.4. Les boucles.............................................................................................. 104
5.9.8.5. Les itrations........................................................................................... 105
5.9.8.6. Les ruptures de squence ........................................................................ 105
5.9.8.7. Les fonctions........................................................................................... 106
5.9.8.8. Les entres / sorties de donnes.............................................................. 107
5.9.9. Les alias ............................................................................................................... 108
5.9.10. Les scripts shell ................................................................................................. 109
6. Administration du systme de base........................................................................................... 111
6.1. Sauvegarde de la conguration dinstallation.................................................................. 111
6.2. Mise lheure du systme................................................................................................ 112
6.3. Notion de niveau dexcution et amorage du systme ................................................... 115
6.4. Maintenance des systmes de chiers.............................................................................. 117
6.4.1. Vrication des systmes de chiers................................................................... 118
6.4.2. Conguration du montage des systmes de chiers............................................ 120
6.5. Gestion des utilisateurs et de la scurit .......................................................................... 123
6.5.1. Mcanismes dauthentication des utilisateurs ................................................... 123
6.5.2. Cration et suppression des utilisateurs............................................................... 126
6.5.3. Description de la bibliothque PAM ................................................................... 128
6.6. Conguration des terminaux virtuels............................................................................... 130
6.7. Conguration de la console.............................................................................................. 133
vi
6.7.1. Pages de codes et Unicode................................................................................... 133
6.7.2. Principe de fonctionnement du clavier ................................................................ 134
6.7.3. Principe de fonctionnement de lcran de la console .......................................... 136
6.7.4. Conguration du clavier ...................................................................................... 139
6.7.4.1. Dnition de scancodes .......................................................................... 139
6.7.4.2. Dnition dun plan de clavier ............................................................... 141
6.7.4.3. Modication des paramtres du clavier .................................................. 145
6.7.5. Choix de la police de caractres .......................................................................... 146
6.7.6. Conguration des paramtres du terminal........................................................... 147
6.7.7. Description des terminaux................................................................................... 148
6.7.8. Paramtrage des applications............................................................................... 152
6.7.8.1. Conguration du clavier pour la bibliothque readline .......................... 152
6.7.8.2. Conguration du clavier pour vi ............................................................. 153
6.7.8.3. Conguration du clavier pour less .......................................................... 156
6.7.9. Conguration de la souris.................................................................................... 158
6.8. Conguration de limprimante......................................................................................... 158
6.8.1. Filtres dimpression............................................................................................. 159
6.8.2. Commandes dimpression ................................................................................... 160
6.8.3. Conguration des les dimpression................................................................... 160
6.9. Conguration du lancement automatique des tches....................................................... 162
7. Notions de compilation et conguration du noyau.................................................................. 165
7.1. Notions de base ................................................................................................................ 165
7.1.1. Dnition des termes........................................................................................... 165
7.1.2. Processus de gnration....................................................................................... 169
7.2. Compilation de GCC........................................................................................................ 171
7.2.1. Prrequis .............................................................................................................. 172
7.2.2. Installation des sources........................................................................................ 172
7.2.3. Conguration....................................................................................................... 173
7.2.4. Compilation......................................................................................................... 173
7.2.5. Installation de GCC............................................................................................. 174
7.3. Compilation du noyau Linux ........................................................................................... 174
7.3.1. Installation des sources de Linux ........................................................................ 175
7.3.2. Choix des options de conguration du noyau ..................................................... 176
7.3.3. Compilation et installation du noyau................................................................... 177
7.3.4. Compilation et installation des modules.............................................................. 179
8. Conguration du matriel et des priphriques ...................................................................... 181
8.1. Gnralits sur le support matriel sous Linux................................................................ 181
8.1.1. Notion de chiers spciaux de priphriques...................................................... 181
8.1.2. Modules du noyau ............................................................................................... 183
8.2. Conguration des priphriques de masse....................................................................... 188
8.2.1. Conguration des priphriques SCSI ................................................................ 188
8.2.2. Conguration des disques durs IDE.................................................................... 189
8.2.3. Installation dun graveur de CD-ROM................................................................ 192
8.2.3.1. Notions de base sur le gravage sous Linux............................................. 192
8.2.3.2. Conguration du noyau........................................................................... 192
8.2.3.3. Conguration des modules du noyau...................................................... 194
8.2.3.4. Installation des logiciels de gravage ....................................................... 195
8.2.3.5. Utilisation des logiciels de gravage ........................................................ 195
8.3. Conguration des cartes lles .......................................................................................... 198
8.3.1. Gnralits sur les cartes ISA, Plug And Play et PCI ......................................... 199
8.3.2. Conguration des cartes son................................................................................ 202
vii
8.3.3. Installation dune carte graphique 3D ................................................................. 205
8.3.4. Installation dune carte dacquisition vido ........................................................ 207
8.3.5. Conguration des cartes rseau........................................................................... 209
8.4. Conguration des ports de communication ..................................................................... 210
8.4.1. Conguration du port parallle............................................................................ 210
8.4.2. Conguration des ports srie............................................................................... 211
8.4.3. Installation des priphriques USB..................................................................... 212
8.4.3.1. Conguration du noyau........................................................................... 213
8.4.3.2. Dtection automatique des priphriques USB...................................... 214
8.4.4. Installation des priphriques IEEE1394 ............................................................ 215
8.4.4.1. Conguration du noyau........................................................................... 216
8.4.4.2. Installation des bibliothques complmentaires ..................................... 217
9. Conguration du rseau............................................................................................................. 219
9.1. Notions de rseau TCP/IP................................................................................................ 219
9.1.1. Gnralits sur les rseaux .................................................................................. 219
9.1.2. Le protocole IP .................................................................................................... 220
9.1.3. Le protocole TCP ................................................................................................ 227
9.1.4. Les protocoles de haut niveau ............................................................................. 229
9.2. Conguration du rseau sous Linux................................................................................. 229
9.2.1. Conguration statique des interfaces rseau ....................................................... 230
9.2.2. Dnition des rgles de routage .......................................................................... 231
9.2.3. Dnition du nom de la machine......................................................................... 233
9.2.4. Rsolution des noms de domaine ........................................................................ 234
9.2.5. Utilisation des protocoles DHCP et BOOTP....................................................... 235
9.2.5.1. Autoconguration des clients DHCP et BOOTP.................................... 236
9.2.5.2. Conguration dun client DHCP au niveau utilisateur ........................... 236
9.2.6. Dnition des protocoles de haut niveau............................................................. 238
9.2.7. Les super-dmons inetd et xinetd........................................................................ 239
9.2.7.1. Le super-dmon inetd ............................................................................. 239
9.2.7.2. Le super-dmon xinetd ........................................................................... 240
9.2.8. Conguration de la scurit du rseau................................................................. 245
9.2.8.1. Limitation des services au strict minimum............................................. 246
9.2.8.2. Dnition de rgles de contrle daccs ................................................. 246
9.2.8.2.1. Restrictions daccs avec tcpd.................................................... 246
9.2.8.2.2. Restrictions daccs avec xinetd................................................. 248
9.2.8.3. Contrle des utilisateurs au niveau des services ..................................... 248
9.2.8.4. Cryptage des connexions ........................................................................ 249
9.2.8.4.1. Principes de base de cryptographie ............................................ 251
9.2.8.4.2. Principes de base de lauthentication SSH............................... 253
9.2.8.4.3. Compilation et installation dOpentSSH.................................... 254
9.2.8.4.4. Conguration dOpenSSH ct serveur ..................................... 255
9.2.8.4.5. Utilisation dOpenSSH ct client ............................................. 257
9.2.8.4.6. Cration dun tunnel SSH .......................................................... 259
9.3. Conguration de la connexion Internet ......................................................................... 260
9.3.1. Le protocole PPP................................................................................................. 260
9.3.2. Cration dune connexion Internet ................................................................... 262
9.3.3. Utilisation du mail ............................................................................................... 267
9.3.4. Les autres outils de connexion............................................................................. 267
9.4. Firewalls et partages de connexion Internet .................................................................. 268
9.4.1. Mcanismes de ltrage du noyau ........................................................................ 268
9.4.2. Translations dadresses et masquerading ............................................................ 270
viii
9.4.3. Trajet des paquets ................................................................................................ 272
9.4.4. Conguration du noyau et installation des outils ................................................ 273
9.4.5. Utilisation diptables ........................................................................................... 274
9.4.5.1. Manipulation des chanes........................................................................ 274
9.4.5.2. Manipulation des rgles .......................................................................... 275
9.4.6. Exemple de rgles................................................................................................ 277
9.4.6.1. Exemple de rgles de ltrage.................................................................. 277
9.4.6.2. Exemple de partage de connexion Internet .......................................... 278
9.4.7. Conguration des clients ..................................................................................... 278
9.5. Conguration des fonctions serveur................................................................................. 279
9.5.1. Paramtrage des connexions extrieures ............................................................. 279
9.5.2. Conguration des liaisons PPP............................................................................ 281
9.5.3. Liaison de deux ordinateurs par un cble srie ................................................... 284
9.5.4. Installation dun proxy ........................................................................................ 285
9.5.5. Conguration dun serveur DHCP...................................................................... 289
9.6. Systmes de chiers en rseau......................................................................................... 291
9.6.1. Installation dun serveur de chiers NFS ............................................................ 291
9.6.2. Conguration dun client NFS ............................................................................ 295
9.6.3. Installation dun serveur de chiers SMB........................................................... 296
9.6.4. Conguration dun client SMB........................................................................... 303
10. Installation de XWindow.......................................................................................................... 307
10.1. Gnralits sur XWindow.............................................................................................. 308
10.2. Conguration de XFree86.............................................................................................. 310
10.2.1. Gnration automatique du chier XF86Cong ............................................... 311
10.2.2. Utilisation de xf86cong................................................................................... 311
10.2.3. Utilisation de xf86cfg........................................................................................ 314
10.2.3.1. Conguration en mode graphique......................................................... 314
10.2.3.2. Conguration en mode texte................................................................. 317
10.2.4. Description du chier XF86Cong ................................................................... 319
10.2.4.1. Structure gnrale du chier XF86Cong............................................ 319
10.2.4.2. Section Files .................................................................................... 321
10.2.4.3. Section ServerFlags ........................................................................ 321
10.2.4.4. Section Module ............................................................................... 322
10.2.4.5. Section InputDevice ........................................................................ 322
10.2.4.6. Sections Device ............................................................................... 324
10.2.4.7. Sections Monitor ............................................................................. 325
10.2.4.8. Sections Modes ............................................................................... 334
10.2.4.9. Sections Screen ............................................................................... 335
10.2.4.10. Sections ServerLayout .................................................................. 336
10.2.5. Informations utilises lors du dmarrage de XFree86....................................... 337
10.2.6. Utilisation de xvidtune ...................................................................................... 338
10.3. Utilisation du pilote frame buffer du noyau................................................................... 339
10.3.1. Conguration du noyau et installation du pilote ............................................... 339
10.3.2. Conguration du serveur X............................................................................... 340
10.4. Conguration des terminaux X...................................................................................... 342
10.4.1. Principe de fonctionnement de xdm.................................................................. 342
10.4.2. Conguration de xdm........................................................................................ 342
10.4.2.1. Serveurs X locaux................................................................................. 343
10.4.2.2. Serveurs X utilisant XDMCP................................................................ 344
10.4.2.3. Paramtrage du serveur X pour utiliser le protocole XDMCP ............. 346
10.4.2.4. Fichiers dinitialisation de sessions ...................................................... 347
ix
10.4.3. Paramtrage des terminaux X............................................................................ 348
10.4.3.1. La commande xset ................................................................................ 348
10.4.3.2. Conguration de la disposition du clavier ............................................ 349
10.5. Paramtrage des applications et ressources X................................................................ 352
10.6. Gestion de la scurit sous XWindow............................................................................ 354
10.6.1. La commande xhost........................................................................................... 355
10.6.2. La commande xauth .......................................................................................... 355
10.7. Gestion des polices de caractres................................................................................... 356
10.7.1. Gestion des polices de caractres sous XWindow............................................. 357
10.7.2. Installation des polices Truetype ....................................................................... 359
10.7.2.1. Conguration du serveur X................................................................... 359
10.7.2.2. Conguration des polices Truetype pour limpression......................... 361
10.7.2.2.1. Conversion des polices Truetype en polices Adobe de Type 42361
10.7.2.2.2. Installation des polices Truetype pour GhostScript ................. 362
10.7.3. Conguration dun serveur de polices............................................................... 363
10.8. Problmes classiques rencontrs.................................................................................... 365
11. Conclusion ................................................................................................................................. 367
A. Options de conguration du noyau.......................................................................................... 369
A.1. Menu Code maturity level options ............................................................................ 369
A.2. Menu Loadable module support ................................................................................ 369
A.3. Menu Processor type and features ............................................................................. 369
A.4. Menu General setup .................................................................................................. 371
A.5. Menu Memory Technology Devices (MTD) ............................................................. 373
A.6. Menu Parallel port support ........................................................................................ 373
A.7. Menu Plug and Play conguration ............................................................................ 374
A.8. Menu Block devices .................................................................................................. 374
A.9. Menu Multi-device support (RAID and LVM) ............................................................ 376
A.10. Menu Networking options ....................................................................................... 376
A.11. Menu IP: Netlter Conguration ............................................................................ 381
A.12. Menu IPv6: Netlter Conguration ........................................................................ 384
A.13. Menu AppleTalk devices ......................................................................................... 385
A.14. Menu QoS and/or fair queueing .............................................................................. 386
A.15. Menu Network testing ............................................................................................. 386
A.16. Menu Telephony Support ........................................................................................ 386
A.17. Menu ATA/IDE/MFM/RLL support ....................................................................... 386
A.18. Menu IDE, ATA and ATAPI Block devices ............................................................ 386
A.19. Menu SCSI support ................................................................................................. 389
A.20. Menu SCSI low-level drivers .................................................................................. 390
A.21. Menu PCMCIA SCSI adapter support .................................................................... 390
A.22. Menu Fusion MPT device support .......................................................................... 390
A.23. Menu IEEE 1394 (FireWire) support (EXPERIMENTAL) .................................... 391
A.24. Menu I2O support ................................................................................................... 392
A.25. Menu Network device support ................................................................................ 392
A.26. Menu ARCnet devices ............................................................................................ 394
A.27. Menu Ethernet (10 or 100Mbit) .............................................................................. 394
A.28. Menu Ethernet (1000 Mbit) .................................................................................... 395
A.29. Menu Wireless LAN (non-hamradio) ..................................................................... 395
A.30. Menu Token ring devices ........................................................................................ 395
A.31. Menu Wan interfaces ............................................................................................... 395
A.32. Menu PCMCIA network device support ................................................................. 396
A.33. Menu ATM drivers .................................................................................................. 397
x
A.34. Menu Amateur Radio support ................................................................................. 397
A.35. Menu AX.25 network device drivers ...................................................................... 398
A.36. Menu IrDA subsystem support ................................................................................ 398
A.37. Menu Infrared-port device drivers ........................................................................... 398
A.38. Menu ISDN subsystem ........................................................................................... 398
A.39. Menu ISDN feature submodules ............................................................................. 398
A.40. Menu Passive ISDN cards ....................................................................................... 399
A.41. Menu Active ISDN cards ........................................................................................ 399
A.42. Menu Old CD-ROM drivers (not SCSI, not IDE) ................................................... 400
A.43. Menu Input Core Support ........................................................................................ 400
A.44. Menu Character devices .......................................................................................... 401
A.45. Menu I2C support ................................................................................................... 404
A.46. Menu Mice .............................................................................................................. 404
A.47. Menu Joystick support ............................................................................................ 405
A.48. Menu Watchdog cards ............................................................................................. 405
A.49. Menu Ftape, the oppy tape device driver .............................................................. 407
A.50. Menu PCMCIA character device support ............................................................... 407
A.51. Menu Multimedia devices ....................................................................................... 407
A.52. Menu Video For Linux ............................................................................................ 408
A.53. Menu Radio Adapters ............................................................................................. 408
A.54. Menu File systems ................................................................................................... 408
A.55. Menu Network File Systems ................................................................................... 409
A.56. Menu Partition Types .............................................................................................. 410
A.57. Menu Native Language Support .............................................................................. 411
A.58. Menu Console drivers ............................................................................................. 411
A.59. Menu Frame-buffer support .................................................................................... 411
A.60. Menu Sound ............................................................................................................ 412
A.61. Menu USB support .................................................................................................. 412
A.62. Menu USB Serial Converter support ....................................................................... 416
A.63. Menu Bluetooth support .......................................................................................... 416
A.64. Menu Bluetooth device drivers ............................................................................... 417
A.65. Menu Kernel hacking .............................................................................................. 417
A.66. Menu Library routines ............................................................................................. 418
B. Compilation et mise jour des principaux composants du systme ..................................... 419
B.1. Compilation de make 3.80.0............................................................................................ 419
B.2. Compilation des binutils 2.14.......................................................................................... 419
B.3. Compilation de la bibliothque C 2.3.2........................................................................... 420
B.4. Compilation de OpenSSL................................................................................................ 423
B.5. Compilation de XFree86 4.3.0 ........................................................................................ 424
B.6. Compilation de Lesstif 0.93.36 ....................................................................................... 426
B.7. Compilation de MESA 5.0.1 ........................................................................................... 426
B.8. Compilation de KDE 3.1.2.............................................................................................. 427
B.9. Compilation de Gnome 2.2.1 .......................................................................................... 430
B.10. Compilation de Samba 2.2.8a........................................................................................ 433
C. Formulaire pour la cration des lignes de mode de XFree86 ................................................ 435
D. GNU Free Documentation License........................................................................................... 439
E. Licence de documentation libre GNU...................................................................................... 445
xi
xii
Liste des tableaux
3-1. Caractristiques des liens physiques et symboliques .................................................................. 18
3-2. Hirarchie standard du systme de chiers ................................................................................. 21
5-1. Groupes de pages de man............................................................................................................ 58
5-2. Principaux signaux Unix ............................................................................................................. 77
5-3. Variables denvironnements courantes ........................................................................................ 88
5-4. Tests sur les chiers................................................................................................................... 103
9-1. Plages dadresses IP rserves pour un usage personnel .......................................................... 223
10-1. Frquence maximale des moniteurs ........................................................................................ 329
10-2. Numros des modes graphiques VESA................................................................................... 340
Liste des illustrations
3-1. Architecture des systmes GNU/Linux....................................................................................... 11
3-2. Le systme de chiers virtuel ...................................................................................................... 16
4-1. Pistes et secteurs dun disque dur................................................................................................ 31
4-2. Partitions primaires et partitions logiques ................................................................................... 32
4-3. Master boot record et secteurs de boot ........................................................................................ 32
6-1. Traitements des entres clavier.................................................................................................. 135
6-2. Traitement des caractres pour lafchage................................................................................ 138
6-3. Filtres dimpression et imprimantes PostScript......................................................................... 160
7-1. Interprtation dun programme ................................................................................................. 166
7-2. Compilation et excution dun programme............................................................................... 167
7-3. Processus de gnration dun excutable .................................................................................. 168
8-1. Chargement automatique des modules du noyau...................................................................... 186
9-1. Notion de paquet et dadresse rseau ........................................................................................ 219
9-2. Encapsulation de protocoles...................................................................................................... 220
9-3. Addresse IP et adresse de rseau............................................................................................... 222
9-4. Notion de passerelle .................................................................................................................. 224
9-5. Notion de route.......................................................................................................................... 226
9-6. Connexions TCP........................................................................................................................ 228
9-7. Algorithme de cryptage symtrique .......................................................................................... 251
9-8. Algorithme de cryptage asymtriques....................................................................................... 252
9-9. Translation dadresses avec suivi de port TCP.......................................................................... 271
9-10. Trajet des paquets dans le code de ltrage .............................................................................. 272
10-1. Notion de display..................................................................................................................... 309
10-2. Structure du chier XF86Cong............................................................................................. 320
10-3. Paramtres des lignes de mode................................................................................................ 331
xiii
xiv
Remarques de lauteur
Il se peut que certaines informations fournies dans ce document soient spciques ma distribution
de Linux. titre indicatif, jutilise une Slackware 9.0. Je me suis cependant efforc de rendre ce
document gnrique et indpendant de cette distribution, mais je ne peux pas le garantir. En parti-
culier, il est connu que la Slackware nutilise pas, par dfaut, la notion de niveaux dexcution. De
mme, certaines informations pourront tre spciques la conguration matrielle des machines que
jutilise. Nanmoins, la plupart des informations fournies ici sappliqueront toutes les distributions
de Linux. Elles permettront galement aux personnes qui nont jamais vu Linux de dbroussailler un
peu le terrain et de comprendre en profondeur comment le systme fonctionne.
Je remercie davance les gens qui pourront menvoyer des remarques concernant les imprcisions,
voire les horreurs et les neries que jaurais pu crire. Plus je recevrai de critiques constructives et
de propositions, plus ce document a de chances de samliorer. Cependant, si vous prenez le temps
de menvoyer les remarques et les erreurs que vous avez pu dtecter, je vous serais gr de vrier au
pralable quelles sont toujours dactualit dans la dernire version de ce document, que vous pourrez
trouver dans diffrents formats de chiers sur mon site Web (http://casteyde.christian.free.fr).
i
Remarques de lauteur
ii
Chapitre 1. Introduction
Linux est le noyau dun systme dexploitation libre de type Unix, crit initialement par Linus Tor-
valds en 1991 et auquel un grand nombre de programmeurs ont contribu par Internet depuis. Les
origines de tous les systmes Unix remontent la premire version dun systme dexploitation exp-
rimental dvelopp par Dennis Ritchie et Ken Thompson dans les laboratoires AT&Ts Bell Laborato-
ries en 1969. Ce systme a avant tout t dvelopp par des programmeurs, pour des programmeurs,
et reprenait un certain nombre de concepts qui avaient t dvelopps auparavant pour le systme
dexploitation Multics (abrviation de Multiplexed Information and Computing Service ), dont le
rle tait de fournir des services informatiques centraliss un grand nombre de personnes (un peu
comme le Minitel a tent de le faire par la suite). Multics na jamais rellement vu le jour, en revanche,
le systme Unix initial a engendr un grand nombre dautres systmes plus ou moins compatibles. R-
cemment, les diffrents fournisseurs de systmes Unix se sont accords pour dnir lensemble des
fonctionnalits que tous les systmes Unix doivent supporter, an de rsoudre les problmes engen-
drs par les incompatibilits existantes entre ces diffrents systmes. Le terme Unix est donc un terme
gnrique pour reprsenter lensemble de tous ces systmes, dont Linux fait partie. Pour lanecdote, la
dnomination Unix provient de la contraction de Unics (abrviation de Uniplexed Information
and Computing Service ), terme forg ironiquement pour bien signaler quUnix tait une version
allge de ce que Multics devait tre.
Bien que compatible avec les dernires spcications Unix, Linux ne contient pas une ligne du code
source du systme Unix original, ce qui en fait ce que lon appelle un clone . Cela dit, il sagit
rellement dun systme Unix part entire. En tant que tel, il dispose des fonctionnalits fournies
par les systmes Unix : il est multitche, multiutilisateur et relativement orient rseau. Vous aurez
donc, avec Linux, un systme able, fonctionnel et performant.
Linux vous permettra de raliser les oprations les plus classiques, comme effectuer un travail bu-
reautique, naviguer sur Internet, raliser lacquisition, la capture et le retraitement dimages, raliser
des animations 3D ou encore programmer. En revanche, autant vous prvenir tout de suite : nombre
de jeux ne sont tout simplement pas disponibles sous Linux, bien que les principaux titres soient rgu-
lirement ports. De mme, il nexiste pas de logiciel complet permettant de raliser lacquisition de
squences vido et den raliser le montage de manire aise. Vous ne pourrez pas non plus raliser ce
que vous faisiez avec les applications MS Windows dont il nexiste pas encore dquivalent sous Li-
nux, comme les applications de gestion et de paie utilises par nombre de professionnels indpendants
ou par des PME.
Que les choses soient claires : linstallation de Linux est une opration relativement complique, et
lusage dun systme Unix en gnral nest pas la porte de tout le monde. Mme si la qualit
des distributions actuellement disponibles sest grandement accrue ces derniers temps, au point que
nimporte qui peut installer un systme Linux viable sans trop de problmes, la conguration du sys-
tme pour obtenir un fonctionnement correct exige un travail assez important. En particulier, les dis-
tributions actuelles prouvent encore quelques difcults pour optimiser les priphriques exotiques,
et souvent seules les fonctionnalits de base sont correctement congures aprs une installation clas-
sique. Par ailleurs, la plupart des applications sont dveloppes par des groupes de programmeurs
indpendants, et bien que ce soit justement le rle des distributions de raliser lintgration de tous
ces composants dans un environnement homogne, celle-ci nest pas forcment parfaite. Les outils
de conguration des distributions vous permettront sans doute de congurer votre systme de base
simplement, mais pour aller au-del, il faudra sans doute intervenir manuellement.
Nanmoins, il faut reconnatre que celui qui installe Linux partir dune distribution sur un ordinateur
assez vieux (cest--dire un ordinateur qui ne dispose pas des derniers priphriques et cartes gra-
phiques la mode), ou dont les constituants sont de marque courante, obtient rapidement un systme
fonctionnel et capable de raliser la plupart des oprations quil dsire. En particulier, celui qui utilise
1
Chapitre 1. Introduction
son ordinateur pour travailler (jentends par l crire des lettres, les imprimer, naviguer sur Internet
pour rcuprer des informations, ou programmer) peut parfaitement se contenter de linstallation par
dfaut. Ce type de situation ne convient pas tout le monde : la plupart des gens disposent de cartes
graphiques rcentes (surtout depuis lavnement des jeux 3D) ou de priphriques spciques. Tout le
monde ne se place pas uniquement dans le cadre dune utilisation professionnelle, et il est absurde de
disposer dune carte son et de ne pas pouvoir lutiliser. Et cest l que le bt blesse ! Si lon dsire que
Linux reconnaisse ces matriels exotiques, il va falloir mettre les mains dans le cambouis et avoir une
bonne dose de patience. Ce problme de conguration apparat malheureusement principalement pour
les particuliers, qui souvent disposent de machines htroclites et absolument non standards. Dans le
cadre dune entreprise, il existe des personnes qualies pour rsoudre ce type de problme, mais ce
sont des informaticiens et, de plus, les machines sont souvent homognes, ce qui permet dapporter
des solutions gnriques.
En conclusion, il faut tre informaticien ou amateur trs clair pour installer Linux sur une machine
de particulier et pour le congurer de manire optimale. La situation est dautant plus grave que la
plupart des gens ne connaissent pas Linux, et quil est toujours difcile dapprendre et de prendre de
nouvelles habitudes. Je veux dire par l que mme une tche trs simple raliser peut prendre un
certain temps, car tout simplement on ne la jamais faite. Celui qui a install trois fois MS Windows
sait parfaitement le faire prsent, et il pense que cest relativement facile. Et pourtant, il ralise
souvent des tches dune complexit qui dpasse, l aussi, le commun des mortels.
Heureusement, et cest l la force de Linux, ces oprations ne doivent tre effectues quune seule
fois. On na absolument pas besoin de changer la conguration chaque instant, comme cest le cas
sous MS Windows, parce que le systme est globalement beaucoup plus stable. Il ne plante quasiment
jamais, les applications ne peuvent pas le corrompre, et sa qualit supprime le besoin permanent de
mettre jour une partie du systme. En clair, quand on en a un qui fonctionne, on le garde, non
pas parce que cest un enfer installer et congurer, mais tout simplement parce que ce nest pas
ncessaire de le changer.
En rsum, on peut afrmer que :
Linux est un systme simple installer sur des machines standards ;
sa conguration sur une machine plus exotique requiert parfois une intervention manuelle ;
dans la plupart des cas, cette intervention nest pas trs difcile raliser ;
cependant, elle peut drouter les personnes qui ne lont jamais effectue ;
mais le jeu en vaut la chandelle, parce que le systme est rellement solide.
Lobjet de ce document est de donner les connaissances de base ncessaires linstallation de Linux
sur un ordinateur de particulier ou un petit serveur. Il est suppos que lutilisateur a dj utilis un autre
systme dexploitation, par exemple MS Windows. Cependant, aucune notion avance dinformatique
nest ncessaire. Tout sera expliqu au fur et mesure des besoins et, si ncessit est, des complments
dinformation seront donns pour permettre la comprhension des oprations effectuer. Nanmoins,
les notions qui seront abordes ici ne seront pas simples, et il est possible que la plupart des personnes
qui nont pas une grande habitude de linformatique aient quelques difcults les assimiler. Cela
dit, vaincre sans peine, on triomphe sans gloire, et linstallation de Linux vous procurera le plaisir
dapprendre.
Ce document est structur en neuf parties distinctes, qui correspondent essentiellement aux grandes
tapes que vous suivrez pour installer et utiliser Linux. La premire partie a pour but de clarier un
peu les notions ayant trait aux logiciels libres. Elle tente dexpliquer pourquoi ces logiciels existent, et
pourquoi ils font partie des meilleurs logiciels actuels. La deuxime partie dcrit les concepts de base
de la plupart des systmes dexploitation Unix. Elle ne traite pas de linstallation proprement parler,
2
Chapitre 1. Introduction
mais sa lecture est recommande pour tous ceux qui nont jamais vu un tel systme. La troisime partie
dcrit linstallation du systme de base de Linux. lissue de cette partie, vous devez disposer dun
systme fonctionnel, utilisable mais non optimis et ne permettant pas forcment dutiliser tous vos
priphriques. La quatrime partie constitue un petit cours dUnix pour les nouveaux utilisateurs de
ce type de systme, et la cinquime partie traite des oprations dadministration et de maintenance de
base des systmes Unix. Bien que, comme les deux premires parties, ces deux parties ne traitent pas
de linstallation proprement parler, leur lecture est vivement recommande. La sixime partie donne
les notions de base sur les mcanismes de compilation et dcrit la manire de faire pour compiler la
dernire version de GCC, le compilateur C/C++ du projet GNU. Elle dcrit galement la technique
utiliser pour compiler et installer un nouveau noyau dans le systme, opration indispensable pour
obtenir un noyau optimis qui colle la machine. La conguration des diffrents types de matriel
et leur prise en charge au niveau du noyau sera dcrite ensuite dans la septime partie. La huitime
partie traite de la conguration du rseau sous Linux. Le rseau est rellement lun des aspects les
plus importants de Linux, et ncessite donc une attention toute particulire. Enn, la neuvime et
dernire partie vous dcrit la procdure dinstallation de XWindow, lenvironnement graphique de
Linux. Linstallation des polices TrueType y est aussi prsente.
3
Chapitre 1. Introduction
4
Chapitre 2. GNU, Linux et les logiciels libres
Vous entendrez souvent parler de la licence GPL , du projet GNU et de la Free Software
Foundation dans le monde de Linux. Pour bien comprendre ce quest la Free Software Foundation
et ce que signie la licence GPL, il est ncessaire den faire une brve prsentation.
La Free Software Foundation est une organisation dont le but est de dvelopper des logiciels libres.
Le terme de libre signie clairement que chacun peut faire ce quil veut du logiciel, y compris
le modier. La vente nest absolument pas interdite, et il faut donc faire la distinction entre libre
et gratuit. Cela tant dit, les logiciels libres sont souvent de facto gratuits, car ils sont librement
redistribuables par quiconque en possde une copie.
La libert de modier les logiciels libres implique naturellement que leur code source, cest dire le
texte de leur programme tel quil a t saisi par ses auteurs, soit librement accessible et modiable.
Les logiciels libres sont donc qualis de logiciels Open Source , ce qui signie en anglais que les
sources du programme sont disponibles. Attention cependant, tous les logiciels Open Source ne sont
pas forcment libres, car il nest pas toujours possible de modier ce code source et de le redistribuer
librement (ventuellement gratuitement). Ainsi, nombre dditeurs de logiciels propritaires publient
leur code source sans pour autant donner de droits supplmentaires ceux qui les lisent. Certains
dentre eux jouent dailleurs explicitement sur cette confusion. De plus, la plupart des journalistes
anglosaxons font cette confusion et, de ce fait, occultent tous les avantages des logiciels libres. Vous
trouverez de plus amples informations sur la notion de code source dans le Chapitre 7.
Il faut bien comprendre que le fait de diffuser un logiciel sous une licence libre ne prive absolument
pas son auteur de ses droits. Il en reste lauteur et, en tant que tel, conserve les droits dauteurs sur son
travail. Il ne fait que concder la libert dexploiter ce travail aux autres. Cest en cela que les logiciels
libres se dmarquent du domaine publique, dont les logiciels ne sont plus soumis aucun droit.
An de protger les logiciels libres et leurs auteurs, la Free Software Foundation a rdig la licence
GPL (abrviation de langlais General Public License ). Cette licence stipule que le logiciel libre
peut tre redistribu, utilis, modi librement, pourvu que celui qui en bncie accorde les mmes
droits ceux qui il fournit les copies du logiciel, quil lait modi ou non. En dautre termes, elle
garantit que la libert des uns sarrte l o commence celle des autres. Cette licence empche donc
lalination du logiciel et sa transformation en logiciel propritaire, de quelque manire que ce soit.
Cela implique que tout logiciel libre modi par une autre personne que son auteur reste libre, et
le restera jamais. Ainsi, il est impossible quune socit commerciale puisse un jour sapproprier
un logiciel libre, mme si elle lamliore. Si vous dsirez lire la licence GPL, vous pouvez en trou-
ver une copie dans le chier /usr/src/linux/COPYING une fois que vous aurez install Linux.
La FSF a galement rdig dautres licences plus adaptes aux bibliothques de programmes et aux
documentations libres. Ainsi, la licence LGPL ( Lesser General Public License ) permet dutiliser
les bibliothques de programmes dans des programmes propritaires, et la licence FDL ( Free Do-
cumentation License ) permet de diffuser des documentations libres. titre dexemple, ce guide est
distribu sous licence FDL, dont vous trouverez une tradution franaise en annexe.
La licence GPL a t crite initialement pour le projet GNU de la Free Software Foundation, dont
le but est de raliser un systme Unix libre et indpendant des Unix commerciaux. Prcisons ici que
le terme Unix caractrise un ensemble de systmes dexploitation, qui disposent tous peu prs
des mmes fonctionnalits et proposent dy accder de la mme manire. Le projet GNU est toujours
en cours, puisque la Free Software Foundation a dj crit la plupart des utilitaires Unix, mais que le
cur du systme (ce que lon appelle le noyau) est toujours en cours de ralisation. Pour information,
ce noyau se nomme Hurd .
Cependant, dautres noyaux sont disponibles, avec lesquels les commandes GNU peuvent tre utili-
ses. Parmi ces noyaux, il existe bien entendu Linux, qui a t crit par le Finlandais Linus Torvalds
lorsquil tait tudiant, et amlior par des programmeurs du monde entier sur Internet. Linux est
5
Chapitre 2. GNU, Linux et les logiciels libres
un noyau parmi tant dautres, ceci prs quil est, lui aussi, distribu sous la licence GPL, bien que
nayant rien avoir avec la Free Software Foundation.
Cela signie quil serait en fait plus exact de parler du systme GNU/Linux que de Linux tout
court. Sous cette dnomination, il est clair que ce systme est constitu des outils GNU fonctionnant
sur le noyau Linux. Cest donc un ensemble de logiciels libres provenant de plusieurs sources dis-
tinctes. Cependant, il est trs courant dentendre parler de Linux tout court, par abus de langage et
par souci de simplicit. Bien entendu, cette dnomination est proscrite sur les sites Internet de la Free
Software Foundation, qui devient trs susceptible ce sujet.
Prcisons que la licence GPL nest pas la seule licence permettant de distribuer des logiciels libres. Il
existe dautres licences, dont les termes sont peu prs similaires. Par exemple, la licence BSD (un
autre systme Unix libre) exige galement la distribution des sources, mais permet lappropriation
des sources par des socits commerciales. De mme, la licence X, sous laquelle est diffuse
lenvironnement graphique X11 quutilise Linux, est une licence libre. Quelques outils fournis avec
Linux sont distribus avec dautres licences plus rares.
Les logiciels libres disposent davantages indniables par rapport aux logiciels propritaires ou
ferms . Je vais tenter de donner ici une liste non exhaustive de ces avantages :
les programmes distribus sous licence libre ont souvent t crits par des passionns du domaine
applicatif auquel ils appartiennent. Les logiciels libres disposent donc souvent des dernires fonc-
tionnalits la mode et sont donc gnralement extrmement comptitifs sur ce plan ;
du fait du grand nombre possible dintervenants sur les sources des logiciels libres, un grand
nombre de possibilits techniques peuvent tre explores, et cest souvent la meilleure qui est s-
lectionne. Cest une forme de slection naturelle de la meilleure solution. Ainsi, sur le long terme,
les logiciels libres sont les plus efcaces en terme de performances ;
toujours du fait du grand nombre dintervenants, et surtout de par la possibilit de consulter et de
modier librement le code source, le cycle de dtection/identication/correction des bogues est
trs court. Les logiciels libres sont donc parmi les plus ables qui se font. On peut considrer quun
logiciel libre utilis par un grand nombre de personnes est virtuellement sans bogue connu,
puisque si tel tait le cas il serait immdiatement corrig ;
la possibilit de repartir dune base de source existante permet de raliser des dveloppements
beaucoup plus rapidement que dans un modle ferm. Les logiciels libres sont donc galement
ceux qui se dveloppent le plus rapidement cot xe, et sont certainement les plus rentables en
terme de cot global pour la collectivit ;
an de garantir linteroprabilit entre les diffrents intervenants du monde du logiciel libre, chacun
svertue respecter les standards. Les logiciels libres sont donc les plus ouverts, non seulement
en terme de code source, mais galement au niveau des formats de chiers et des protocoles de
communication. Cela garantie une interoprabilit optimale et labsence de mauvaise surprise ;
professionnellement parlant, la disponibilit du code source fournit une garantie de fonctionnement
que lon ne peut pas retrouver ailleurs. En cas de problme, il est toujours possible de sen sortir,
ventuellement en recourant des comptences externes pour adapter le logiciel ses propres
besoins ;
enn, la disponibilit du code source garantit une prennit absolue du logiciel, ce quaucune so-
cit commerciale vendant des logiciels propritaires ne peut ou ne veut faire.
Mais laspect le plus important des logiciels libres est sans doute le fait quils garantissent la libert des
utilisateurs par rapport aux diteurs de logiciels. Le respect des standards, louverture des formats de
documents et des protocoles de communication garantissent une interoprabilit absolue, qui permet
6
Chapitre 2. GNU, Linux et les logiciels libres
ainsi chacun de rester libre de ses choix pour sa solution informatique. Il nest que trop courant de
voir les diteurs de logiciels enfermer leurs clients dans une dpendance vis vis deux, simplement
en leur faisant utiliser des produits ferms et inutilisables sans leur concours. Le pire est sans doute que
cette dpendance est transitive (le fait pour un auteur dutiliser un produit implique que ses lecteurs le
possdent galement) et durable (on ne peut faire de mise jour que chez le mme diteur de logiciel).
Bien que cela ne se situe pas au mme niveau philosophique, la question du nancement se pose
galement de manire rcurrente. Il nest en effet pas vident, en premire analyse, de dterminer les
raisons qui poussent un auteur ou une entreprise rendre ainsi public son savoir faire, au risque de se
le faire tout simplement voler. Les particuliers font souvent cela par amusement ou pour faire valoir
leur savoir-faire. Les entreprises quant elles peuvent nancer le dveloppement de certains logiciels
libres soit parce quelles lutilisent en interne, soit parce quelles en vivent de manire drive (par
vente de produits drivs ou de services complmentaires par exemple). Certaines socits prfrent
galement repartir dun logiciel libre qui satisfait 80% de leurs besoins, et de dvelopper les 20%
restants. Le cot total de dveloppement dune solution compltement propritaire serait en effet
beaucoup plus lev. Dans ce cas, les dveloppeurs de logiciels libres sont avant tout leurs propres
utilisateurs... Cela dit, il faut tre clair ce sujet : le logiciel libre rapporte moins que le logiciel
propritaire, tout simplement parce quon ne peut pas pressurer le client de la mme manire.
Enn, pour information, le terme GNU est labrviation de langlais GNUs Not Unix . Cette
curieuse phrase rappelle que le projet GNU est de raliser un systme Unix diffrent des autres. Vous
remarquerez que cette dnition est rcursive, cest--dire quelle utilise le mot GNU elle-mme.
Cela doit tre attribu au got des dveloppeurs de la Free Software Foundation pour ce genre de
dnition inniment rcursive. Vous ne saurez sans doute jamais les raisons qui les ont pousss
choisir la lettre G dans leur dnition. Cela tant, GNU se prononce gnou en anglais, et vous
trouverez donc souvent la reprsentation dun gnou sur les sites Internet de GNU.
7
Chapitre 2. GNU, Linux et les logiciels libres
8
Chapitre 3. Concepts de base
Ce chapitre dcrit les principes de base quil faut connatre pour bien comprendre Linux. Les infor-
mations qui sont donnes ici ne sont pas rellement spciques Linux. Elles sappliquent souvent
aux systmes Unix en gnral. Il est donc recommand de lire ce chapitre, surtout si lon na ja-
mais vu ni utilis un systme Unix. En particulier, les utilisateurs chevronns de Windows risquent
dtre lgrement drouts. Larchitecture du systme sera prsente, ainsi que la scurit et la notion
dutilisateur. Viendront ensuite les descriptions des principales fonctionnalits du systme de chiers
et de sa structure.
3.1. Architecture du systme
Comme tout logiciel dune certaine taille, Linux est dune grande complexit. Tous les systmes
dexploitation rcents sont constitus dun grand ensemble de composants qui interagissent et dont
la mise en place peut tre soit indispensable au bon fonctionnement du systme, soit facultative, soit
tout simplement inutile tant donns la conguration matrielle et les besoins de lutilisateur. Cette
complexit implique un grand nombre derreurs, danomalies et de dysfonctionnements possibles. En
effet, pour quun systme informatique fonctionne correctement, il faut tout prvoir pour donner une
action approprie tous les vnements possibles. Cela nest pas humainement ralisable quand le
systme devient trop complexe.
Pour rsoudre ce problme, il est courant de subdiviser le systme en composants indpendants, dont
le mauvais fonctionnement potentiel ne peut perturber que partiellement les autres parties du sys-
tme. Des points de synchronisation partir desquels le systme peut reprendre un fonctionnement
normal aprs une erreur sont prvus. Ces points de synchronisation permettent simplement dassurer
la viabilit du systme, mme en cas derreur inopine. Pour quelques systmes, le seul point de syn-
chronisation est le point de dpart, savoir le dmarrage de lordinateur. De tels systmes doivent
donc souvent tre redmarrs, parfois pour une cause mineure (erreur dun logiciel, modication de
la conguration du systme, ajout dun composant au systme). Ce nest pas le cas de Linux, qui dans
le pire des cas dtruit le composant qui a gnr lerreur sans toucher aux autres parties du systme.
Le point de synchronisation de Linux est donc le redmarrage dune partie du systme uniquement,
ce qui assure ainsi une grande stabilit du systme complet.
Il va de soi que, lorsquun composant se plante, ceux qui lutilisent risquent fort de se retrouver dans
un tat derreur assez difcile grer. Cela peut souvent provoquer leur propre perte. Par consquent,
plus un composant est utilis, plus il doit tre able. Or il est un composant la base de tout dans
Linux : le noyau ( kernel en anglais). Cest le cur du systme, et en fait cest prcisment le
systme Linux. Heureusement, ce composant est dune trs, trs grande abilit, et il nest pas rare de
voir un systme Linux fonctionner plusieurs mois ou annes sur des serveurs. Cette abilit provient
du modle de dveloppement de Linux, qui est ouvert tout le monde (chacun peut rcuprer, lire,
modier, complter ou corriger le noyau condition de savoir bien programmer). partir dune
taille critique en terme de nombre dutilisateurs, taille que Linux a atteinte, il existe sufsamment
de dveloppeurs pour dtecter et corriger les erreurs. Ainsi, ds quune erreur est dtecte, elle est
souvent corrige dans les jours qui suivent, ce qui assure une grande qualit.
Le noyau gre quasiment tout (mmoire, disques, systmes de chiers, rseau, clavier, droits des
utilisateurs, etc.), mais il nest pas exploitable tel quel. Il nest par exemple pas capable doffrir une
interface utilisateur permettant de lui donner les commandes quil doit excuter. Ces oprations sont
du ressort dautres modules dvelopps par la Free Software Foundation. Parmi ces modules, on
trouve le shell (ce qui signie grosso modo environnement utilisateur ). Le shell est capable de
lire des commandes saisies au clavier, de les excuter et dafcher leurs rsultats lcran. En gnral,
les programmes capables de raliser ces oprations sont appels des interprteurs de commandes.
9
Chapitre 3. Concepts de base
Mais le shell est bien plus que cela, car il peut tre programm, et il peut grer les processus (en
arrter un, en lancer un autre, etc.).
En fait, les commandes que le shell peut excuter sont en nombre trs rduit. La plupart des com-
mandes sont tout simplement dautres programmes. Les programmes que lon peut utiliser dans le
shell sont des programmes dits en ligne de commande , parce quils sont propres tre utiliss
dans les lignes de commandes que lon saisit au clavier dans le shell. Ces programmes sont, encore
une fois, dvelopps soit par la Free Software Foundation, soit par des bnvoles, toujours sous la
licence GNU. Toutes ces commandes sont des commandes compatibles Unix. Ces commandes sont
absolument essentielles pour pouvoir utiliser le systme, mais elles sont assez rbarbatives et peu
dutilisateurs acceptent de sen contenter.
Cest pour cela quune couche graphique a t dveloppe, pour introduire une interface graphique
plus conviviale (mais cependant lgrement moins puissante en termes de fonctionnalits) : XWin-
dow. Encore une fois, cette couche logicielle est constitue de plusieurs composants, dont la base est
le serveur X. Le serveur X est un programme capable de fournir les services graphiques (do le nom
de serveur) aux autres applications. Plusieurs implmentations concurrentes existent. Lune delles est
particulirement utilise sous Linux, puisquelle est libre (comme tout le reste) : XFree86. vrai dire,
un serveur X ne fait pas grand chose dautre que de raliser des afchages sous les ordres dautres
programmes. Dautres composants permettent donc dobtenir des fonctionnalits de plus haut niveau.
Le gestionnaire de fentres ( Window Manager en anglais) est le composant qui se place juste au-
dessus du serveur X. Il est en charge, comme son nom lindique, de grer les fentres des applications
graphiques sous X. Cest le gestionnaire de fentres qui prend en charge la gestion des dcorations
des fentres de premier niveau (cest--dire des fentres principales des programmes). Par exemple,
il soccupe dafcher les bords, la barre de titre, les boutons de rduction et de restauration, etc.
des fentres. Cest galement lui qui soccupe du positionnement des fentres, et qui donc permet
lutilisateur de dplacer et de rduire les fentres des applications graphiques. Lutilisateur est libre
dutiliser le gestionnaire de fentres quil dsire, selon ses propres gots et ses dsirs, la diffrence
est souvent une pure question de style.
Il existe des environnements graphiques complets qui, en plus dun gestionnaire de fentres souvent
extrmement puissant, fournissent la plupart des outils classiques que lon est en droit dattendre
dun systme graphique moderne. Ainsi, ces environnements comprennent des diteurs, des outils
de conguration, des navigateurs Internet, des logiciels multimdia... En plus de ces applications, ils
fournissent un cadre standard pour les applications graphiques qui savent communiquer avec eux.
Ce cadre permet damliorer lintgration des diverses applications entre elles, et cest la raison pour
laquelle on appelle souvent ces environnements des gestionnaires de bureau. KDE et Gnome sont des
exemples de tels environnements de travail.
Enn, au-dessus de toutes ces couches logicielles, on trouve les applications X, qui sont aussi diverses
que varies (traitement de texte, tableurs, logiciels de dessin...). Quelques-unes de ces applications
sont simplement des front-end dapplications en ligne de commande, cest--dire des interfaces
graphiques des programmes non graphiques existants. Ce concept permet davoir un composant
unique, et plusieurs interfaces diffrentes pour ce composant, et en plus de rendre indpendante la
fonctionnalit de linterface utilisateur. Encore une fois, la stabilit en est dautant plus accrue.
Bon nombre dapplications pour XWindow sont libres, ou utilisables librement des ns non com-
merciales. Cela signie quun particulier a le droit de les utiliser tant quil ne sen sert pas pour un
travail quil revendra. Comme cest le cas de la plupart des particuliers, on peut considrer quil est
actuellement possible, avec Linux, davoir un environnement logiciel complet, able et performant...
pour un prix de revient minime.
En rsum, un systme GNU/Linux est structur de la manire suivante :
le noyau Linux ;
10
Chapitre 3. Concepts de base
les programmes en ligne de commande et le shell ;
le serveur XWindow ;
le gestionnaire de fentres et le gestionnaire de bureau ;
les applications XWindow.
Figure 3-1. Architecture des systmes GNU/Linux
Il nest pas vident dtablir un parallle avec MS Windows, puisque ce systme est rellement mo-
nolithique. Cependant, on peut considrer que le noyau Linux correspond aux modules KERNEL ou
IO.SYS de Windows, que le shell correspond aux interprteurs de commandes COMMAND.COM
ou CMD.EXE, que les programmes en ligne de commande correspondent aux programmes DOS ou
console classiques (xcopy, fdisk, format...), que le serveur X correspond au couple (pilote de carte
graphique, GDI), que le gestionnaire de fentres correspond au module USER, et le gestionnaire
de bureau lexplorateur, les fonctionnalits dOLE et aux programmes fournis avec Windows. La
diffrence essentielle vient du fait que le shell est peine programmable sous Windows, que les com-
mandes DOS ont tendance accder aux ressources de la machine directement sans passer par le
noyau, que le pilote de carte graphique, la GDI et le module USER sont tous intgrs dans le sys-
tme au lieu den tre spars (ce qui multiplie les chances de crash du systme complet), et que la
plupart des applications Windows ne peuvent fonctionner que dans lenvironnement graphique. Elles
sont donc entranes par le systme lorsque les modules graphiques de Windows plantent (je nai
dailleurs jamais vu un processus DOS survivre un crash de linterface graphique de Windows).
En conclusion :
les systmes Unix, donc Linux, sont trs structurs, plus simples utiliser, congurer, maintenir
et dvelopper ;
ils sont trs stables, car les composants de haut niveau ninterfrent pas sur les composants de bas
niveau ;
ils sont faciles personnaliser, puisque lutilisateur a le choix des outils chaque niveau ;
Linux a de plus la particularit dtre parfaitement modiable, puisque si lon sait programmer, on
peut personnaliser les composants du systme ou en rajouter ;
et il nest pas propritaire, cest--dire que lon nest pas dpendant dune socit ditrice de logiciel
pour rsoudre un problme donn.
En bref, cest la voie de la vrit.
11
Chapitre 3. Concepts de base
3.2. Scurit et utilisateurs
Linux est un systme multiutilisateur. Cela signie que plusieurs personnes peuvent utiliser
lordinateur simultanment (et pas uniquement les unes la suite des autres), et que le systme
se charge de faire respecter la loi entre elles. Les ressources de la machine sont ainsi partages
quitablement, tant au niveau de la puissance de calcul quau niveau de la mmoire, du disque, des
imprimantes...
videmment, une question se pose : comment plusieurs utilisateurs peuvent-ils se partager le clavier
et lcran ? La rponse est simple : ils ne le peuvent pas. Par consquent, il ny a que trois solutions
possibles : soit on connecte lordinateur dautres claviers et dautres crans (on appelle un couple
clavier/cran un terminal ), soit on accde au systme par lintermdiaire dun autre ordinateur via
le rseau, soit les utilisateurs lancent tour tour leurs programmes. La dernire solution ncessite que
les programmes ne soient pas interactifs : ils doivent tre capable de fonctionner sans intervention de
celui qui les a lancs.
La premire hypothse nest pas srieuse pour un particulier, il est dailleurs assez difcile de connec-
ter un terminal supplmentaire sur un PC (cest ralisable, soit en connectant un terminal ddi lun
des ports srie, soit en ajoutant une carte graphique PCI et en connectant un deuxime clavier et
une deuxime souris, par exemple sur le port USB, et en utilisant une version modie de XFree86.
Ce nest donc pas une opration la porte du commun des mortels.). La deuxime solution, en re-
vanche, est nettement plus envisageable. Il est parfaitement possible quun particulier dispose de deux
PC connects en rseau, et que deux membres de la mme famille cherchent utiliser des ressources
de la mme machine (par exemple, une imprimante ou tout autre priphrique, un programme install
sur un seul ordinateur, des chiers personnels, etc.). Quant la troisime solution, elle est du domaine
du quotidien, mme pour un ordinateur sans rseau et avec un seul utilisateur. En effet, certains pro-
grammes sont lancs par le systme pour effectuer des tches de maintenance, et fonctionnent au nom
de ladministrateur de la machine.
Il va de soi que pour tre multiutilisateur, le systme doit satisfaire certains critres :
il doit tre multitche, cest--dire quil doit tre capable de faire fonctionner plusieurs programmes
simultanment sur la mme machine, en partageant les ressources de celle-ci ;
il doit tre able, car un arrt du systme peut dranger un nombre arbitraire de personnes, y
compris celles qui ne sont pas proximit de lordinateur ;
il doit tre sr, car il ne faut pas que les erreurs ou les malveillances dun utilisateur ne puissent
dranger les autres.
Le multitche est assur au niveau du noyau. Chaque programme en cours dexcution (on les appelle
processus ) fonctionne dans sa propre zone de mmoire, qui est compltement contrle par le
noyau. Les ressources du processeur sont partages entre les processus, et il est impossible lun
dentre eux de monopoliser la mmoire, le disque ou quoi que ce soit. Les processus doivent toujours
passer par le noyau pour effectuer une opration, ce qui permet un contrle absolu.
La abilit est galement assure au niveau du noyau. Les zones de mmoire utilises par chaque
processus (encore appeles espaces dadressage ) sont bien distinctes et bien identies par le
noyau. Cela implique quil est impossible un processus de perturber le fonctionnement dun autre
processus. Ainsi, si un processus fait une faute, il est purement et simplement termin par le noyau.
Cela est sans appel : le noyau est le seul matre bord.
Enn, la scurit est assure par le noyau et par le systme de chiers. Au niveau du noyau, chaque
utilisateur est identi de manire unique par un numro dans le systme. Ce numro est utilis pour
vrier les droits de lutilisateur, ou, autrement dit, ce quil peut faire. Les droits des utilisateurs
12
Chapitre 3. Concepts de base
comprennent la possibilit de lire ou crire un chier, daccder ou non une ressource ou dexcuter
un programme. Il est galement possible de crer un ou plusieurs groupes dutilisateurs, et de
donner des droits particuliers ces groupes. Tous les utilisateurs qui font partie de ce groupe recevront
les droits du groupe. Ainsi, des classes dutilisateurs peuvent tre facilement dnies, et ces classes
peuvent se voir attribuer un peu plus de privilges que les utilisateurs normaux selon les ncessits. Il
existe toutefois un utilisateur spcial, qui a tous les droits : ladministrateur du systme ( root en
anglais). Aucune restriction ne sapplique cet utilisateur, car il doit tre capable de grer le systme,
linstaller, larrter, le mettre jour si ncessaire, et de dnir les utilisateurs et leurs droits.
Au niveau du systme de chiers, la scurit est assure par le stockage dinformations additionnelles
pour chaque chier ou rpertoire. Ces informations permettent de connatre :
le numro de lutilisateur qui possde le chier ou le rpertoire. En gnral, le propritaire est
simplement celui qui la cr. Cependant, ladministrateur peut changer le propritaire dun chier
tout moment ;
le numro du groupe auquel appartient le chier ou le rpertoire. Tout chier ou rpertoire appar-
tient un groupe unique, qui est utilis pour calculer les droits des utilisateurs faisant partie de ce
groupe. Par dfaut, un chier nouvellement cr par un utilisateur appartient au groupe des utili-
sateurs users , ce qui convient dans la majorit des cas (attention, ce comportement varie selon
les systmes). Lutilisateur peut toutefois donner ses chiers nimporte quel groupe dont il fait
partie ;
les droits daccs au chier ou au rpertoire pour le propritaire, pour les utilisateurs faisant partie
du groupe auquel appartient le chier ou le rpertoire, et pour tous les utilisateurs en gnral. Ces
droits comprennent le droit de lecture (reprsent par la lettre r, pour Read only ), le droit
dcriture (reprsent par la lettre w, pour Writeable ), le droit dexcution (reprsent par la
lettre x, pour eXecutable ) et quelques attributs supplmentaires (qui seront dtaills plus loin).
Il nest sans doute pas inutile de prciser un peu le fonctionnement des droits dans le systme de
chiers. Le droit de lecture correspond la possibilit douvrir et de consulter un chier, ou de lister
le contenu dun rpertoire. Le droit dcriture correspond la possibilit de modier un chier, ou de
crer ou supprimer un chier dun rpertoire. Enn, le droit dexcution correspond la possibilit
dexcuter un chier contenant un programme, ou dentrer dans un rpertoire. On notera par exemple
quil est possible dobtenir la liste des chiers dun rpertoire sans pouvoir sy dplacer, ou encore
de modier un chier sans pouvoir le lire. On prendra garde galement que le fait davoir le droit
dcriture sur un chier ne donne pas le droit de le supprimer (cependant, on peut le vider !). Pour
cela, il faut avoir le droit dcriture sur le rpertoire contenant ce chier. Comme on le voit, les droits
daccs aux chiers et aux rpertoires sont trs souples.
Ces droits sont attribus sparment pour le propritaire, le groupe et les autres utilisateurs (cest--
dire les utilisateurs qui ne font pas partie du groupe auquel appartient le chier). Il est donc possible
de donner par exemple tous les droits au propritaire dun chier, et seulement le droit de lecture
aux autres utilisateurs. Cette conguration est celle qui est choisie par dfaut lors de la cration dun
chier, elle assure que seul le propritaire peut modier ou excuter ce chier, tout en laissant la
possibilit aux autres de le lire. Ce choix privilgie la scurit des donnes de chacun en laissant le
maximum de libert aux autres. Si plusieurs personnes doivent travailler sur les mmes chiers, il
suft de les regrouper dans un groupe, de donner les chiers sur lesquels ils doivent travailler ce
groupe, et de donner les droits dcriture aux membres de ce groupe sur ces chiers.
La scurit du systme est transitive, cela signie que tout programme lanc par un utilisateur
sexcute en son nom et reoit donc les droits de cet utilisateur. Le processus correspondant se voit
donc attribuer les mmes restrictions que lutilisateur qui la lanc. Il dispose galement des droits
du groupe auquel le chier du programme appartient. Il existe toutefois quelques exceptions cette
13
Chapitre 3. Concepts de base
rgle, pour les programmes dont le comportement est bien connu et quil est impossible de dtourner
de leur fonction initiale. Cest notamment le cas de quelques commandes systmes (comme
passwd, qui permet de changer de mot de passe), qui peuvent tre lances par les utilisateurs et qui
sexcutent toutefois au nom du systme (dans le compte root). Il est donc impossible un utilisateur
de violer les rgles de scurit du systme. Pour parvenir ce comportement, il faut utiliser des
attributs spciaux sur les chiers de ces programmes. Les attributs spciaux sont dcrits ci-dessous.
Le premier attribut spcial est le bit setuid (qui est labrviation de langlais SET User
IDentier ). Il ne peut tre plac quau niveau des droits du propritaire sur le chier. Il permet
dindiquer que le chier est excutable, et que lorsque le programme quil contient est lanc par un
utilisateur, le processus correspondant sexcute avec les droits du propritaire du chier et non pas
avec ceux de lutilisateur qui la lanc. Cependant, le systme conserve tout de mme le numro
de lutilisateur rel qui a lanc le processus, ce qui fait que le programme peut savoir par qui il
a t lanc et au nom de qui il sexcute. Un processus dispose donc toujours de deux numros
dutilisateur :
le numro de lutilisateur rel ( real user id en anglais), qui est le numro de lutilisateur qui a
lanc le programme ;
le numro de lutilisateur effectif ( effective user id en anglais), qui est le numro de lutilisateur
avec les droits duquel le processus fonctionne.
Le bit setuid permet donc simplement daffecter le numro du propritaire du chier au numro
dutilisateur effectif du processus lorsquil est lanc. Le fait de conserver le numro de lutilisateur
rel permet au programme de raliser des vrications de scurit additionnelles. Par exemple, la
commande passwd, qui permet de changer le mot de passe dun utilisateur, a besoin des droits de
lutilisateur root pour enregistrer le nouveau mot de passe. Il dispose donc du bit setuid pour que tous
les utilisateurs puissent lutiliser. Cependant, mme sil sexcute au nom de lutilisateur root, il ne
doit pas permettre nimporte qui de changer le mot de passe des autres utilisateurs : seul lutilisateur
root a le droit de faire cette opration. Il utilise donc le numro de lutilisateur rel qui a lanc la
commande pour savoir si cest bien lutilisateur root qui la lanc.
Le bit setuid est lattribut le plus couramment utilis, essentiellement pour certaines commandes sys-
tmes. Il est reprsent par la lettre s (comme Setuid ), et il remplace le droit dexcution (x)
des chiers pour le propritaire des chiers (rappelons que le bit setuid implique que le chier est
excutable). Il na aucune signication pour les rpertoires.
Le deuxime attribut spcial est le bit setgid (qui est labrviation de langlais SET Group
IDentier ). Ce bit fonctionne un peu de la mme manire que le bit setuid, ceci prs quil xe
le numro de groupe effectif du processus lanc celui de son chier excutable. Cet attribut est
galement reprsent par la lettre s, et remplace le droit dexcution (x) pour les utilisateurs du
groupe auquel appartient le chier excutable. De plus, et contrairement au bit setuid, ce bit a une
signication pour les rpertoires. Un rpertoire disposant du bit setgid permet de faire en sorte que
tous les chiers qui sont crs dans ce rpertoire se voient automatiquement attribus le mme groupe
que le rpertoire. Ce bit est relativement peu utilis.
Enn, le troisime et dernier attribut spcial est le bit sticky . Cet attribut remplace lattribut ex-
cutable pour les autres utilisateurs que le propritaire du chier ou du rpertoire et les membres du
groupe auquel il appartient. Contrairement aux bits setuid et setgid, il est reprsent par la lettre t
(pour sTickky ). Sa signication est assez spciale : elle permet de faire en sorte que les pro-
grammes restent chargs en mmoire aprs leur terminaison, ce qui permet de les relancer plus ra-
pidement. An de ne pas consommer la mmoire de manire permanente, le code du programme
est plac automatiquement dans le swap sil nest toujours pas relanc aprs un certain temps, mais
mme dans ce cas, tous les calculs de chargement sont dj effectus. Le lancement des programmes
14
Chapitre 3. Concepts de base
marqus de ce bit sera donc toujours acclr. Sachez cependant ne pas abuser du bit sticky car la
mmoire (mme virtuelle) est encore une ressource rare. Pour les rpertoires, sa signication est tota-
lement diffrente : elle permet de restreindre les droits des utilisateurs sur les rpertoires ayant ce bit
positionn. Ce bit fait en sorte que mme si un utilisateur dispose des droits dcriture sur le rper-
toire, il ne peut pas supprimer tous les chiers de ce rpertoire. Les seuls chiers quil est autoris
supprimer sont ses propres chiers. Bien entendu, il est toujours possible dajouter des chiers dans
le rpertoire en question.
En pratique, les utilisateurs nont pas se soucier des attributs des chiers, et en fait mme
ladministrateur laisse souvent les attributs par dfaut, car ils correspondent la majorit des besoins
de scurit. Ladministrateur a cependant le contrle total sur les droits daccs aux chiers, sur le
propritaire et le groupe de chaque chier. Il est galement le seul utilisateur capable de crer un
autre utilisateur ou un groupe, ainsi que de les dtruire.
Les questions qui se posent videmment sont les suivantes. Est-ce quun particulier a besoin de tout
cela ? Ces fonctionnalits ne sont-elles pas rserves aux serveurs ? Est-ce quon ne risque pas de
perdre beaucoup de temps pour dnir les droits pour chaque utilisateur et pour chaque ressource du
systme ? La gestion de la scurit ne consomme-t-elle pas trop de ressources ? Ces questions sont
lgitimes, mais en fait, il est trs intressant mme pour un particulier de disposer de ces fonctionnali-
ts. En effet, la scurit permet tout simplement de protger le systme contre ses propres erreurs. Qui
na pas effac un jour un chier important ou dplac le rpertoire Windows en bougeant lgrement
la souris lors dun double clic effectu trop lentement ? Avec Linux, on peut faire nimporte quoi,
on est certain que le systme restera intact. Dailleurs la rgle essentielle, mme pour un ordinateur
utilis par une seule personne, est de toujours crer un compte utilisateur normal et de ne jamais
travailler sous le compte root. Cette scurit est telle que Linux est le systme dexploitation idal
pour apprendre linformatique quelquun : savoir que le systme protge tout ce qui est important
permet aux dbutants de prendre des initiatives sans crainte. Quant aux ventuels revers de mdaille,
ils sont absents : la gestion de la scurit ne consomme quasiment aucune ressource, et sa congura-
tion est lmentaire. Toutes les distributions sinstallent de telle sorte que le systme se protge des
utilisateurs, et que ceux-ci soient indpendants les uns des autres.
En rsum :
le multitche est un confort indniable. Il est apprciable de pouvoir utiliser son ordinateur mme
lorsquil est en train de faire une tche longue en arrire-plan ;
la abilit est videmment indispensable. Il est rassurant de se dire que mme si un processus trs
gourmand en ressources fonctionne en arrire-plan, il ne perturbera pas les autres processus ;
la scurit permet de se protger de ses propres erreurs, pour un cot minimal. Il suft de conserver
les paramtres par dfaut du systme et de ne plus sen soucier !
3.3. Fonctionnalits des systmes de chiers
Il est srement bon de revenir sur les fonctionnalits fournies par les systmes de chiers Unix. En
effet, peu dutilisateurs savent exactement quels sont les services quils peuvent fournir en gnral,
et beaucoup croient que les systmes de chiers savent juste stocker des donnes dans des chiers
organiss dans une hirarchie de rpertoires. Heureusement, ils permettent de faire beaucoup mieux
que cela ! En fait, les systmes de chiers des systmes Unix sont trs puissants. Ils assurent la fois
fonctionnalits, performances et abilit.
15
Chapitre 3. Concepts de base
Pour commencer, il faut prciser que Linux ne travaille pas directement avec les systmes de -
chiers physiques. En effet, il interpose systmatiquement un systme de chiers intermdiaire, nom-
m Virtual File System ( VFS en abrg), qui permet aux applications daccder diffrents
systmes de chiers de manire indpendante de leur nature et de leur structure interne. Le systme de
chiers virtuel ne fait pas grand chose en soi : il se contente de transfrer les requtes des applications
vers les systmes de chiers rels. Il fournit donc une interface bien dnie pour les applications, que
celles-ci doivent utiliser. Les systmes de chiers rels, quant eux, doivent simplement fournir les
services dont le systme de chiers virtuel a besoin. Tous les systmes de chiers rels ne disposent
toutefois pas forcment de toutes les fonctionnalits demandes par le systme de chiers virtuel.
Dans ce cas de conguration, la requte de lapplication dsirant effectuer lopration manquante
chouera tout simplement.
Comme on peut le constater, cette architecture est modulaire. Et comme on la vu pour larchitecture
du systme en gnral, cela apporte beaucoup de bnces. Les plus vidents sont indiqus ci-
dessous :
Linux est capable de grer plusieurs systmes de chiers rels. La seule condition est quils doivent
tous fournir les services de base exigs par le systme de chiers virtuel ;
les applications peuvent utiliser plusieurs de ces systmes de chiers rels de manire uniforme,
puisquelles nutilisent que le systme de chiers virtuel. Cela simplie leur programmation, et
permet dviter autant de bogues potentiels ;
chaque systme de chiers rel tant indpendant des autres, il ne perturbe pas leur fonctionnement.
En particulier, un systme de chiers corrompu ne corrompt pas les autres.
Figure 3-2. Le systme de chiers virtuel
Avec cette architecture, un grand nombre de systmes de chiers ont t dvelopps pour Linux.
Parmi ces systmes de chiers, on retrouve les plus connus, savoir :
le systme de chiers EXT2, qui est le systme de chiers natif de Linux ;
le systme de chiers EXT3, qui est une volution du systme de chiers EXT2 capable de prendre
en charge galement les mcanismes de journalisation (EXT3 est donc plus tolrant aux pannes
matriel et aux coupures de courant que EXT2) ;
le systme de chiers ReiserFS, qui supprime la notion de bloc disque et qui est journalis (cest-
-dire quil supporte les arrts intempestifs du systme suite une panne de courant ou tout autre
vnement contre lequel le systme ne peut rien faire) ;
les systmes de chiers FAT, FAT32 et FAT32X (utiliss par les systmes DOS et Windows) ;
le systme de chiers NTFS (utilis par Windows NT, Windows 2000 et XP), en lecture seule pour
linstant ;
16
Chapitre 3. Concepts de base
le systme de chiers ISO9660, qui est utilis par tous les CD-ROM. Les extensions permettant de
grer les noms longs sont galement gres. Ces extensions comprennent en particulier le systme
de chiers Joliet (extensions de Microsoft pour Windows 95) et Rock Ridge (extensions utilises
par tous les systmes Unix) ;
le systme de chiers NFS (utilis pour distribuer sur un rseau un systme de chiers).
Linux gre galement dautres systmes de chiers utiliss par dautres systmes dexploitation (Unix
ou non). Il permet mme dintgrer un pseudo systme de chiers gnr par le noyau. Ce systme
de chiers est compltement ctif : sa structure et ses chiers sont gnrs dynamiquement par le
noyau lorsquune application y accde. Il est principalement utilis par les applications pour lire des
informations que le noyau met leur disposition, ainsi que pour changer dynamiquement certains
paramtres du noyau en les crivant simplement dans les chiers.
Le systme de chiers natif de Linux EXT2 est de loin le systme de chiers le plus fonctionnel, le
plus able et le plus courant, car il a t hautement optimis. Les principales fonctionnalits de EXT2
sont les suivantes :
les accs aux chiers sont rapides, mme plus rapides que les systmes de chiers bass sur la FAT
sous Windows, qui pourtant ne grent pas les droits des utilisateurs ni les autres fonctionnalits
avances des systmes de chiers Unix ;
la fragmentation des chiers est quasiment inexistante. En fait, la fragmentation des chiers est
si faible que lon peut lignorer en pratique. Cela provient de lalgorithme que EXT2 utilise pour
allouer les blocs du disque dur lors de lcriture dans un chier : il cherche tout simplement donner
systmatiquement les blocs les plus proches. Pour donner un ordre de grandeur de la fragmentation
des chiers sur une partition de 800 Mo, aprs installation, suppression, manipulation dun grand
nombre dapplications et de petits chiers, le tout ralis par plusieurs processus fonctionnant en
mme temps, elle reste infrieure 1% sur 57571 chiers (sur un total de 249856 chiers que le
systme de chiers pourrait contenir) ;
quant la abilit, elle est gre grce un stockage redondant des principales structures de don-
nes internes. Ainsi, si une erreur apparat dans le systme de chiers, les parties dfectueuses
peuvent tre reconstitues partir des informations sauvegardes. Cette rparation est ralise au-
tomatiquement chaque redmarrage de la machine si ncessaire.
Nous allons maintenant voir les quelques fonctionnalits additionnelles que EXT2 supporte. Notez
bien ici que dautres systmes de chiers Unix peuvent fournir ces fonctionnalits, mais quil ne sera
question ici que de EXT2 par souci de simplication.
La premire fonctionnalit intressante est le support des droits daccs aux chiers pour les utili-
sateurs et pour les groupes. La gestion de ces droits est un impratif sous Unix. Comme on la dj
vu, ces droits comprennent les droits daccs en lecture, en criture et en excution, plus les attributs
spciaux des chiers. Ces droits sont xs indpendamment pour lutilisateur propritaire du chier,
le groupe dutilisateur propritaire du chier, et tous les autres utilisateurs.
Une autre fonctionnalit intressante est la possibilit de raliser des liens sur des chiers ou des
rpertoires. Un lien est une rfrence un chier ou un rpertoire existant, qui peut tre manipul
exactement comme sa cible. Il existe deux sortes de liens : les liens physiques, qui sont rellement
une rfrence sur les donnes du chier au niveau de la structure mme du systme de chiers, et
les liens symboliques, qui ne sont rien dautre quun chier additionnel contenant les informations
ncessaires pour retrouver la cible.
Les liens physiques prsentent les inconvnients de ne pas pouvoir rfrencer des rpertoires, et de ne
pouvoir rfrencer que des objets du mme systme de chiers que celui dans lequel ils sont crs.
La limitation sur les rpertoires permet dviter de construire des cycles dans la structure du systme
17
Chapitre 3. Concepts de base
de chiers. Quant la limitation la frontire des systmes de chiers, elle est obligatoire puisque les
liens physiques sont grs directement au niveau de la structure du systme de chiers. En revanche,
ils prsentent des avantages certains :
le dplacement des cibles ne les perturbe pas si celles-ci restent dans le mme systme de chiers,
parce que dans ce cas les donnes ne sont pas dplaces sur le disque ;
la suppression de la cible ne dtruit pas le lien physique. Tous les liens physiques sur un chier
partagent la mme structure de donnes du systme de chiers, et celle-ci nest rellement dtruite
qu la destruction du dernier lien physique.
En fait, toute entre de rpertoire est un lien physique sur le contenu du chier. Le fait davoir plu-
sieurs liens physiques sur les mmes donnes correspond disposer de plusieurs entres de rpertoire
donnant accs aux mmes donnes dans le systme de chiers. Il serait possible de crer des liens
physiques dans un systme de chiers FAT, mais ils seraient interprts comme des rfrences croi-
ses par les outils de vrication de disque. Le systme de chiers FAT de Linux interdit donc la
cration des liens physiques, tout comme le font DOS et Windows.
Les liens symboliques, quant eux, permettent de rfrencer des chiers ou des rpertoires se trouvant
dans dautres systmes de chiers que le leur. Cest pour cette raison quils sont trs couramment
utiliss (en fait, les liens physiques ne sont quasiment pas utiliss, parce quil est trs courant de
faire un lien sur un rpertoire, ce que seuls les liens symboliques savent faire). En revanche, ils sont
extrmement dpendants de leur cible : si elle est supprime ou dplace, tous les liens symboliques
qui sy rfrent deviennent invalides.
La rfrence sur le chier ou le rpertoire cible contenue dans les liens symboliques peut tre soit rela-
tive lemplacement de leur cible, soit absolue dans le systme de chiers. Chacune de ces mthodes
a ses avantages et ses inconvnients : les liens symboliques qui contiennent des rfrences relatives ne
sont pas briss lors dun dplacement de la cible, pourvu quils soient dplacs galement et restent
la mme position relative par rapport celle-ci dans la hirarchie du systme de chiers. En revanche,
ils sont briss sils sont dplacs et que la cible ne lest pas. Les liens symboliques utilisant des r-
frences absolues sont systmatiquement briss lorsque la cible est dplace, mais ils restent valides
lorsquils sont eux-mmes dplacs. Comme en gnral cest le comportement que lon recherche,
les liens symboliques sont toujours crs avec des rfrences absolues, mais vous tes libre de faire
autrement si vous en ressentez le besoin. Sachez cependant que dplacer une source de donnes nest
jamais une bonne ide. Le tableau suivant rcapitule les avantages et les inconvnients des diffrents
types de liens :
Tableau 3-1. Caractristiques des liens physiques et symboliques
Fonctionnalit Liens physiques Liens symboliques
Rfrence
relative
Rfrence
absolue
Peuvent tre dplacs Oui Avec la cible Oui
Suivent la cible Oui Si dplacs avec elle Non
Grent la suppression de la
cible
Oui Non Non
Peuvent rfrencer des cibles
sur un autre systme de chiers
Non Oui Oui
18
Chapitre 3. Concepts de base
Fonctionnalit Liens physiques Liens symboliques
Rfrence
relative
Rfrence
absolue
Peuvent rfrencer des
rpertoires
Non Oui Oui
Le systme de chiers EXT2 donne galement la possibilit de grer des chiers presque vides
( sparse les en anglais) et les quotas. Ces deux fonctionnalits sont relativement peu utilises
par les particuliers, elles ne sont mentionnes ici quan dtre complet. Les chiers presque vides
sont des chiers contenant des donnes spares par de grands espaces vides. Il est inutile de stocker
ces espaces vides sur le disque, aussi EXT2 signale-t-il simplement que ce chier contient des trous,
et il ne stocke que les donnes relles et la position des trous avec leur taille. Cela constitue une
conomie de place non ngligeable. Les applications classiques des chiers presque vides sont les
bases de donnes, qui utilisent souvent des chiers structurs contenant relativement peu de donnes
effectives. Les quotas quant eux permettent dattribuer un espace disque xe chaque utilisateur.
Ce nest rellement utile que pour les serveurs.
Note : Le systme de chiers EXT3, compltement compatible avec le systme de chiers EXT2,
supporte galement une fonctionnalit avance qui permet de le rendre encore plus able : la
journalisation. La journalisation consiste crire sur le disque toutes les oprations en cours
chaque instant. Ainsi, lorsquun redmarrage intempestif se produit, le systme peut ramener
rapidement la structure de donnes du systme de chiers dans un tat cohrent. La journalisa-
tion accrot donc encore la abilit du systme de chiers.
3.4. Structure du systme de chiers
Il est ncessaire de dnir un peu les termes qui vont tre utiliss dans cette section, car les systmes
de chiers Unix sont trs diffrents des systmes de chiers du DOS et de Windows. La connaissance
de ce vocabulaire est ncessaire pour la comprhension de la structure du systme de chiers de
Linux.
Comme la plupart des systmes de chiers, les systmes de chiers Unix sont structurs hirarchi-
quement, et regroupent les chiers dans des rpertoires. Il existe un rpertoire racine qui contient tous
les chiers soit directement, soit indirectement dans ses sous-rpertoires. Cest de ce rpertoire que
dbutent tous les chemins possibles dans le systme de chiers. Chaque chier ou rpertoire a un
nom qui permet aux utilisateurs du systme de lidentier. Le seul rpertoire qui na pas de nom est
le rpertoire racine. Les systmes de chiers Unix nont pas les mmes limitations sur les noms que
les systmes de chiers FAT et FAT32. Les noms des chiers et des rpertoires peuvent tre trs longs
(jusqu 256 caractres par nom), et ils prennent en compte la casse des lettres.
Les chiers contiennent des donnes au sens large, ce peut tre des documents (texte, image, lm,
son), des programmes, des donnes utilises par le systme ou tout autre type de donne imaginable.
En fait, les rpertoires sont eux-mmes des chiers spciaux, interprts par le systme diffrem-
ment des autres chiers. Les donnes stockes dans les rpertoires sont simplement les entres de
rpertoires, qui caractrisent et permettent davoir accs aux autres chiers et aux autres rpertoires.
Les noms de rpertoires et de chiers sont spars par un caractre spcial. Ce caractre est tradition-
nellement, sous Unix, la barre oblique de division (nomme slash en anglais) : /. Les utilisateurs
du DOS et de Windows prendront garde ici au fait que Microsoft a prfr la barre oblique inverse
19
Chapitre 3. Concepts de base
(nomme backslash en anglais) \, rendant ainsi tous ses systmes incompatibles avec les sys-
tmes Unix, et gnrant ainsi beaucoup de problmes supplmentaires l o il ntait pas ncessaire
den avoir (sincrement, le cot de cette nerie, ainsi que celle des marqueurs de n de ligne dans les
chiers textes, doit atteindre des sommes astronomiques dans tous les projets de portage ou de dve-
loppement dapplications portables). Comme le rpertoire racine na pas de nom, il peut tre accd
directement avec un simple slash :
/
La qualication complte dun chier se fait en prcisant le nom du rpertoire chaque niveau et en
sparant par des slashes chacun de ces noms. Cette qualication porte le nom de chemin daccs
( path en anglais). Lexemple suivant vous montre lallure dun chemin daccs typique sous Unix :
/home/dupond.jean/lettres/professionnelles/marketing/ventes1999.sdw
La longueur maximale dun chemin daccs est de 4 ko dans le systme de chiers EXT2.
Les utilisateurs du DOS et de Windows constateront ici que les chemins daccs Unix ne comportent
pas de spcication de lecteur. Les systmes de chiers Unix sont dits mono-ttes, ce qui signie
quils nont quun seul point de dpart : le rpertoire racine (alors que les systmes Microsoft sont
multi-ttes, puisquils ont un point de dpart par lecteur et par partition). Le fait de navoir quun
seul point de dpart est beaucoup plus simple et permet, encore une fois, dcrire les programmes
plus simplement et donc avec moins de bogues potentiels. Je sens tout de suite venir la question de la
part des habitus du DOS : Mais alors, comment spcie-t-on le lecteur que lon veut utiliser ? .
Cette question a deux rponses. Premirement, on naccde pas aux lecteurs, mais aux systmes de
chiers. Les utilisateurs du DOS devront donc rapprendre quun lecteur reprsente un priphrique
physique, et quil est possible quil contienne plusieurs systmes de chiers. Ils devront galement
se rendre compte quun systme de chiers nest pas ncessairement stock sur un lecteur : il peut
tre stock dans un chier (cest le cas par exemple pour les images disques de CD-ROM), accessible
par le rseau (cest le cas des systmes de chiers rseau, Network File System en anglais),
ou encore gnr par un composant du systme (cest le cas des systmes de chiers virtuels du
noyau). La question na donc pas beaucoup de sens telle quelle. Cependant, le problme de laccs aux
systmes de chiers se pose malgr tout. La rponse ce problme-ci est cette fois la suivante : pour
accder un systme de chiers, il faut raliser une opration que lon nomme le montage . Cette
opration associe le rpertoire racine de ce systme de chiers lun des rpertoires de larborescence
existante. Ce rpertoire est couramment appel point de montage . Par exemple, il est courant de
monter le lecteur de disquette dans le rpertoire /floppy/. Ainsi, si la disquette contient le chier
ventes1999.sdw, ce chier sera accessible grce au chemin suivant :
/floppy/ventes1999.sdw
Cette solution permet daccder tous les systmes de chiers de la mme manire, partir dun seul
rpertoire racine, que ces systmes de chiers soient EXT2, FAT, ISO9660, NTFS ou Amiga... En
pratique, cest nettement plus simple.
Lopration de montage peut raliser bien plus doprations quune simple association dun systme
de chiers un point de montage. En effet, elle peut gnrer les oprations suivantes :
chargement des pilotes pour ce systme de chiers ;
20
Chapitre 3. Concepts de base
allocation des zones de mmoire pour les entres/sorties en mmoire ;
masquage des chiers et des rpertoires ventuellement prsents avant le montage dans le rpertoire
utilis comme point de montage.
On prendra en particulier garde toujours dmonter les systmes de chiers pour les lecteurs amo-
vibles. Linux utilise en effet des zones de la mmoire que lon appelle les tampons ( buffers en
anglais), pour y stocker les donnes des systmes de chiers monts, et il ncrit ces donnes que
lorsque cest ncessaire. Ce mcanisme permet dacclrer les lectures et les critures sur les disques,
mais a linconvnient de ncessiter une requte de vidange des tampons (opration que lon appelle
sync ) avant de retirer le lecteur ou avant dteindre le systme. Si on ne le fait pas, des donnes
seront certainement perdues. Le systme effectue le sync lorsquil sarrte (par lune des commandes
halt, shutdown ou reboot), mais il ne le fait pas si on coupe le courant brutalement. Cest pour cela
quil faut toujours arrter le systme proprement. De manire similaire, Linux empche ljection des
CD-ROM tant quils sont monts. En revanche, il ne peut rien faire pour les lecteurs de disquettes,
cest lutilisateur de prendre garde les dmonter avant de retirer la disquette.
Deux derniers points auxquels les utilisateurs de DOS et Windows devront faire attention :
les chiers ne sont pas identis par leur extension. Un nom de chier peut contenir un ou plusieurs
points, et une extension peut tre arbitrairement longue. En particulier, un nom de chier peut
commencer par un point. Dans ce cas, ce chier sera considr comme cach par les programmes,
et on ne les verra que si on le demande explicitement ;
les systmes de chiers Unix font la distinction entre les majuscules et les minuscules. Il faut donc
prendre garde la manire dont on crit les noms de chiers et de rpertoires. Cependant, la plupart
des rpertoires et des chiers ont un nom crit compltement en minuscules.
Nous allons prsent nous intresser lorganisation du systme de chiers de Linux. Ce systme de
chiers contient un certain nombre de rpertoires et de chiers standards, qui ont chacun une fonction
bien dnie. Cette structure standard permet de grer tous les systmes Linux de manire homogne :
les programmes savent o trouver ce dont ils ont besoin. Ils sont donc portables dun systme un
autre, et les utilisateurs ne sont pas dpayss lorsquils changent de machine (en fait, cette structure
est peu prs la mme pour tous les systmes Unix, ce qui donne encore plus de poids largument
prcdent).
Cette organisation standard du systme de chiers a t conue de telle manire que les donnes et les
programmes sont placs chacun leur place, et quils puissent tre facilement intgrs dans un rseau.
Lintgration dans un rseau sous-entend que les chiers des programmes peuvent tre partags par
les diffrentes machines de ce rseau, ce qui permet dconomiser beaucoup de place. De plus, il est
possible daccder la plupart des ressources du systme grce une interface uniforme. En parti-
culier, il est possible daccder tous les priphriques installs sur lordinateur par lintermdiaire
de chiers spciaux, et on peut rcuprer des informations sur le systme mises disposition par le
noyau simplement en lisant des chiers gnrs par un pseudo systme de chiers. Le tableau suivant
dcrit les principaux lments de larborescence du systme de chiers de Linux.
Tableau 3-2. Hirarchie standard du systme de chiers
Rpertoire Signication
21
Chapitre 3. Concepts de base
Rpertoire Signication
/ Rpertoire racine. Point de dpart de toute la hirarchie du systme de
chiers. Le systme de chiers contenant ce rpertoire est mont
automatiquement par le noyau pendant lamorage du systme. Ce
systme de chiers est appel systme de chiers racine ( root en
anglais).
/boot/ Rpertoire contenant le noyau de Linux et ses informations de symboles.
Ce rpertoire est parfois le point de montage dun systme de chiers de
trs petite taille, ddi au noyau. Dans ce cas, il est recommand que le
systme de chiers correspondant soit mont en lecture seule. On notera
que sur certains systmes, le noyau reste plac dans le rpertoire racine.
Cette technique nest pas recommande, car on ne peut pas monter en
lecture seule la partition racine en utilisation normale du systme.
/boot/vmlinuz Noyau comprim de Linux. Les noyaux comprims se dcompriment
automatiquement lors de lamorage du systme. Sur certains systmes, le
noyau est encore plac dans le rpertoire racine du systme de chiers.
/boot/System.map Fichier systme contenant la liste des symboles du noyau. Ce chier est
utilis par certains programmes donnant des renseignements sur le
systme. En particulier, il est utilis par le programme top
(programme qui indique la liste des principaux processus actifs) an de
donner le nom de la fonction du noyau dans lequel un processus se trouve
bloqu lorsquil est en attente de la n dune opration que le noyau doit
excuter pour lui.
/dev/ Rpertoire contenant tous les chiers spciaux permettant daccder aux
priphriques. Sous Linux, la plupart des priphriques sont accessibles
au travers de chiers spciaux, grce auxquels lenvoi et la rception des
donnes vers les priphriques peuvent tre raliss de manire uniforme.
Il existe un tel chier pour chaque priphrique, et ils sont tous placs
dans ce rpertoire. Les distributions installent souvent dans ce rpertoire
les chiers spciaux pour la plupart des priphriques, mme sils ne sont
pas physiquement prsents dans la machine. Dans ce cas, les oprations
sur les chiers spciaux des priphriques non installs seront tout
simplement refuses par le noyau. Une autre possibilit est dutiliser un
systme de chiers virtuel, gr directement par le noyau. Le rpertoire
/dev/ ne contient dans ce cas que les chiers spciaux des priphriques
pour lesquels le noyau dispose dun gestionnaire intgr ou charg
dynamiquement. Quelle que soit la technique utilise, ce rpertoire doit
tre imprativement plac dans le systme de chiers racine.
/sbin/ Rpertoire contenant les commandes systmes ncessaires lamorage
et rserves ladministrateur. Ce rpertoire doit tre imprativement
plac dans le systme de chiers racine. En gnral, seul ladministrateur
utilise ces commandes.
/bin/ Rpertoire contenant les commandes systmes gnrales ncessaires
lamorage. Ce rpertoire doit tre imprativement plac dans le systme
de chiers racine. Tous les utilisateurs peuvent utiliser les commandes de
ce rpertoire.
/lib/ Rpertoire contenant les bibliothques partages ( DLL en anglais,
pour Dynamic Link Library ) utilises par les commandes du systme
des rpertoires /bin/ et /sbin/. Ce rpertoire doit tre imprativement
plac dans le systme de chiers racine.
22
Chapitre 3. Concepts de base
Rpertoire Signication
/lib/modules/ Ce rpertoire contient les modules additionnels du noyau. Les modules
sont des composants logiciels du noyau, mais qui ne sont pas chargs
immdiatement pendant la phase damorage du systme. Ils peuvent en
revanche tre chargs et dchargs dynamiquement, lorsque le systme
est en fonctionnement. Il est fortement recommand que ce rpertoire soit
plac dans le systme de chiers racine.
/etc/ Rpertoire contenant tous les chiers de conguration du systme. Ce
rpertoire doit tre imprativement plac dans le systme de chiers
racine.
/etc/X11/ Rpertoire contenant les chiers de conguration de lenvironnement
graphique XWindow. Dans certaines distributions, ces chiers sont placs
directement dans le rpertoire /etc/, mais ce nest pas une technique
recommandable.
/etc/opt/ Rpertoire contenant les chiers de conguration des applications.
/tmp/ Rpertoire permettant de stocker des donnes temporaires. En gnral,
/tmp/ ne contient que des donnes trs phmres. Il est prfrable
dutiliser le rpertoire /var/tmp/. En effet, le rpertoire /tmp/ ne
dispose pas ncessairement de beaucoup de place disponible.
/usr/ Rpertoire contenant les chiers du systme partageables en rseau et en
lecture seule.
/usr/bin/ Rpertoire contenant la plupart des commandes des utilisateurs.
/usr/sbin/ Rpertoire contenant les commandes systmes non ncessaires
lamorage. Ces commandes ne sont normalement utilises que par
ladministrateur systme.
/usr/lib/ Rpertoire contenant les bibliothques partages de tous les programmes
de /usr/bin/ et /usr/sbin/ et les bibliothques statiques pour la
cration de programmes.
/usr/include/ Rpertoire contenant les chiers den-ttes du systme pour le
compilateur C/C++. Les chiers de ce rpertoire sont utiliss pour raliser
des programmes dans les langages de programmation C et C++.
/usr/X11R6/ Rpertoire contenant X11R6 et ses applications. Ce rpertoire contient
des sous-rpertoires bin/, lib/ et include/, o se trouvent les
excutables de XWindow, les bibliothques et les chiers den-ttes pour
crer des programmes pour XWindow en C et C++.
/usr/src/ Rpertoire contenant les chiers sources du noyau et des applications de
la distribution. Normalement, ce rpertoire ne doit contenir que le code
source des applications dpendantes de la distribution que vous utilisez.
/usr/src/linux/ Sources du noyau de Linux. Il est vivement recommand de conserver les
sources du noyau de Linux sur son disque, an de pouvoir changer la
conguration du systme tout moment.
23
Chapitre 3. Concepts de base
Rpertoire Signication
/usr/local/ Rpertoire contenant les programmes dextension du systme
indpendants de la distribution. Ce nest toutefois pas le rpertoire
dinstallation des applications, que lon installera en gnral dans le
rpertoire /opt/. local ne signie pas ici que les programmes qui se
trouvent dans ce rpertoire ne peuvent pas tre partags sur le rseau,
mais plutt que ce sont des extensions du systme quon ne trouve donc
que localement sur un site donn. Ce sont donc les extensions qui ne font
pas partie de la distribution de Linux utilise, et qui doivent tre
conserves lors des mises jour ultrieures de cette distribution. Ce
rpertoire contient les sous-rpertoires bin/, lib/, include/ et src/,
qui ont la mme signication que les rpertoires du mme nom de /usr/,
ceci prs quils ne concernent que les extensions locales du systme,
donc indpendantes de la distribution.
/var/ Rpertoire contenant toutes les donnes variables du systme. Ce
rpertoire contient les donnes variables qui ne pouvaient pas tre places
dans le rpertoire /usr/, puisque celui-ci est normalement accessible en
lecture seule.
/var/tmp/ Rpertoire contenant les chiers temporaires. Il est prfrable dutiliser ce
rpertoire plutt que le rpertoire /tmp/.
/var/opt/ Rpertoire contenant les donnes variables des applications.
/var/log/ Rpertoire contenant les traces de tous les messages systme. Cest dans
ce rpertoire que lon peut consulter les messages derreurs du systme et
des applications.
/var/spool/ Rpertoire contenant les donnes en attente de traitement. Les travaux
dimpression en cours, les mails et les fax en attente dmission, les
travaux programms en attente dexcution sont tous stocks dans ce
rpertoire.
/var/locks/ Rpertoire contenant les verrous sur les ressources systme. Certaines
ressources ne peuvent tre utilises que par une seule application (par
exemple, un modem). Les applications qui utilisent de telles ressources le
signalent en crant un chier de verrou dans ce rpertoire.
/var/cache/ Rpertoire contenant les donnes de rsultats intermdiaires des
applications. Les applications qui doivent stocker des rsultats
intermdiaires doivent les placer dans ce rpertoire.
/opt/ Rpertoire contenant les applications. Cest dans ce rpertoire que les
applications qui ne font pas rellement partie du systme doivent tre
installes. Les applications graphiques devraient tre installes dans ce
rpertoire. Cest en particulier le cas des gestionnaires de bureau. Les
seules applications graphiques considres comme faisant partie du
systme sont les applications de X11, qui sont donc stockes dans
/usr/X11R6/. Il est recommand que ce rpertoire soit plac sur un
systme de chiers en lecture seule, et que les applications utilisent le
rpertoire /var/opt/ pour travailler.
/home/ Rpertoire contenant les rpertoires personnels des utilisateurs. Il est bon
de placer ce rpertoire dans un systme de chiers indpendant de ceux
utiliss par le systme.
24
Chapitre 3. Concepts de base
Rpertoire Signication
/root/ Rpertoire contenant le rpertoire personnel de ladministrateur. Il est
donc recommand que le rpertoire personnel de ladministrateur soit
plac en dehors de /home/ pour viter quun problme sur le systme de
chiers des utilisateurs ne lempche de travailler. Toutefois, il est
important que ladministrateur puisse travailler mme si les rpertoires
/root/ et /home/root/ ne sont pas prsents. Dans ce cas, son
rpertoire personnel sera le rpertoire racine.
/mnt/ Rpertoire rserv au montage des systmes de chiers non-permanents
(CD-ROM, disquettes, etc.). Ce rpertoire peut contenir plusieurs
sous-rpertoires pour chaque priphrique amovible, an de permettre
den monter plusieurs simultanment. Notez quil est assez courant de
disposer de liens symboliques dans la racine rfrenant les principaux
systmes de chiers, an den simplier laccs. Par exemple, il est
courant davoir un rpertoire /floppy/ rfrenant le lecteur de
disquette et un rpertoire /cdrom/ rfrenant le lecteur de CD-ROM.
/lost+found/ Rpertoire contenant les donnes rcupres lors de la rparation dun
systme de chiers endommag. Ces donnes sont crites par les
utilitaires de vrication et de rparation des systmes de chiers
lorsquils trouvent des informations qui ne peuvent tre rattaches aucun
chier existant, ainsi, il est possible de rcuprer ces informations si elles
ne sont pas dans un tat de dtrioration trop avanc.
/proc/ Rpertoire contenant le pseudo systme de chiers du noyau. Ce pseudo
systme de chiers contient des chiers permettant daccder aux
informations sur le matriel, la conguration du noyau et sur les
processus en cours dexcution.
Note : Les informations donnes ici peuvent ne pas tre correctes pour votre distribution. En effet,
certaines distributions utilisent une structure lgrement diffrente. Les informations donnes ici
sont conformes la norme de hirarchie de systmes de chiers version 2.0 ( FHS en anglais).
Vous pouvez consulter ce document pour une description exhaustive du systme de chiers de
Linux.
Vous avez pu constater que les rpertoires bin/, lib/, include/ et src/ apparaissent rgulirement
dans la hirarchie du systme de chiers. Cela est normal : les rpertoires sont classs par catgorie
dapplications et par importance. Les rpertoires bin/ contiennent en gnral les programmes, et les
rpertoires lib/ les bibliothques partages par ces binaires. Cependant, les rpertoires lib/ peuvent
aussi contenir des bibliothques statiques, qui sont utilises lors de la cration de programmes. En
gnral, tous les systmes Unix fournissent en standard un compilateur pour raliser ces programmes.
Dans le cas de Linux, ce compilateur est gcc (pour GNU C Compiler ). La cration dun
programme ncessite que lon dispose des chiers sources, qui contiennent le programme crit dans
un langage de programmation, des chiers den-ttes, qui contiennent les dclarations de toutes les
fonctions utilisables, et des chiers de bibliothques statiques, contenant ces fonctions. Ces diffrents
chiers sont stocks respectivement dans les rpertoires src/, include/ et lib/. Les notions de
sources et de compilation seront dcrites en dtail dans le Chapitre 7.
25
Chapitre 3. Concepts de base
26
Chapitre 4. Installation du systme de base
Maintenant que vous connaissez tout des grands principes de Linux (et de la plupart des systmes
Unix), vous devez brler dimpatience de linstaller et de commencer exploiter toutes ses possi-
bilits. Cependant, il faut ne pas tomber dans le travers de ceux qui veulent imprativement utiliser
une fonctionnalit sous prtexte quelle est disponible. Il se peut que vous ayez envie de les essayer,
parce que vous en avez t priv depuis longtemps. Ce comportement est tout fait normal, mais vous
allez devoir refrner vos envies, pour deux raisons. La premire est quil va falloir installer Linux au
pralable, et la deuxime est quil ne faut pas faire un sac de nuds avec vos donnes. Vous pourrez
exprimenter loisir, mais il faudra rester srieux ds que vous toucherez au systme. Comprenez
bien que linstallation et la conguration de Linux doivent se faire pas pas. Griller les tapes peut se
rvler tre une erreur, car cela rendrait les choses plus compliques quelles ne le sont.
La conguration minimale supporte par Linux est un 386 avec au minimum 12 Mo de mmoire vive.
Il va de soi quavec un tel foudre de guerre, vous ne pourrez pas aller bien loin, et une conguration
minimale plus raisonnable serait plutt un 486DX2 66MHz avec au moins 32Mo de mmoire. La
quantit de mmoire est de loin le facteur le plus important, et si vous voulez utiliser lenvironnement
graphique X11, il faut au minimum compter sur 64 Mo de mmoire vive. Vous pourrez donc parfai-
tement transformer un vieux 486 ou pentium en routeur ou en Firewall avec partage de connexion
Internet par exemple. Vous naurez donc certainement aucun problme avec les ordinateurs puissants
qui se vendent actuellement.
4.1. Rcupration des informations sur le matriel
Avant de commencer quoi que ce soit, vous devriez rcuprer le maximum de donnes concernant
votre matriel. En effet, ces informations peuvent tre particulirement utiles pour diagnostiquer la
cause des ventuels problmes de conguration du matriel que vous pourriez rencontrer. Vous aurez
aussi peut tre spcier certains paramtres matriels lors de linstallation et, dans le pire des cas,
lors du premier dmarrage de Linux. Les informations dont vous aurez certainement besoin sont les
suivantes :
type de processeur, avec sa marque et ventuellement sa vitesse ;
type de carte mre, avec sa marque et imprativement son chipset ;
type de branchement de la souris (srie, PS/2, USB, interface bus propritaire) ;
nombre de ports srie, ainsi que leurs paramtres (ports dentre/sortie, lignes dinterruption) ;
nombre de ports parallles, ainsi que leurs paramtres (ports dentre/sortie, lignes dinterruption) ;
si vous disposez dun contrleur SCSI, marque et modle de ce contrleur (modle du chipset de
la carte SCSI) ;
sinon, nom du contrleur de disque IDE (regardez sur le chipset de la carte mre !) ;
types de disques durs (IDE, IDE UltraDMA 33, 66 ou 100, SCSI), ainsi que leurs taille et leur
position dans le systme (contrleurs auxquel ils sont connects, numros dunits logiques SCSI) ;
types de lecteurs ou de graveur de CD-ROM ou de DVD (IDE, ATAPI, SCSI, connect sur carte
son) et le type de leur branchement sils sont externes (port parallle, SCSI ou USB) ;
nom, modle et marque de la carte graphique, type de chipset utilis par cette carte et taille de sa
mmoire vido ;
27
Chapitre 4. Installation du systme de base
nom, modle et marque de lcran, avec ses frquences de balayage horizontales et verticales, sa
bande passante et les frquences recommandes par le constructeur pour les diffrentes rsolutions ;
type de carte son (ISA, PCI, PnP) ainsi que le nom du chipset utilis par cette carte ;
type de carte rseau (ISA, PCI, PnP) ainsi que le nom de son chipset ;
type de modem (interne, externe) et, si le modem est interne, sa nature (modem complet ou mula-
tion).
Vous pouvez obtenir ces informations en consultant la documentation fournie avec votre ordinateur,
les sites Web des constructeurs des diffrents composants, les informations fournies par le programme
de conguration du BIOS ou afches directement par le BIOS au dmarrage de la machine, ou tout
simplement en ouvrant le botier de la machine et en regardant ce quil y a lintrieur. Vous pouvez
galement rcuprer les informations indiques dans la conguration de MS Windows si celui-ci est
install.
Il se peut que vous nayez pas besoin de ces informations et que linstallation se passe sans problmes.
Cependant, si daventure Linux exige que vous les connaissiez, mieux vaut pouvoir lui rpondre.
Note : Bien que cela soit assez rare, certains composants ou priphriques additionnels peu-
vent ne pas tre grs par Linux, faute davoir un gestionnaire de priphriques adquat (cet
tat de fait est en gnral d une rtention dinformations de la part des fabricants, qui em-
pchent ainsi les dveloppeurs de Linux dcrire les gestionnaires de priphriques dans de
bonnes conditions). Cest en particulier le cas de nombre de priphriques bas de gamme conus
pour ne fonctionner quavec MS Windows, ou de quelques priphriques exotiques. Les Win-
modems ont une triste rputation ce sujet (il sagit de modems incomplets, dont une partie
du traitement de signal est report dans un logiciel spcique Windows), ainsi que des impri-
mantes dites GDI , qui ne comprennent que les commandes graphiques de Windows. Vous
pourrez galement avoir des problmes avec des cartes de numrisation vido analogiques
ainsi que certaines cartes de dcompression MPEG. Certaines marques se distinguent par le
fait quelles refusent obstinment de dvelopper des gestionnaires de priphriques pour leur
matriel ou, pire encore, de fournir les informations ncessaires aux dveloppeurs de Linux pour
crire ces gestionnaires sous licence libre. Il est donc recommand, comme toujours, de bien
se renseigner auprs des vendeurs et des groupes de discussion avant tout achat de matriel...
Vous pourrez trouver une liste (non exhaustive) de matriel test sous Linux dans la liste de
matriel compatible Linux (http://www.linuxdoc.org/HOWTO/Hardware-HOWTO/). La Linux Hard-
ware Database (http://lhd.datapower.com/) vous permettra galement deffectuer une recherche
sur nimporte quel type de matriel et sur nimporte quel modle trs facilement. Il existe dautres
sites ralisant priodiquement des tests sur le matriel rcent, comme par exemple LinuxHard-
ware (http://www.linuxhardware.org).
4.2. Sauvegarde des donnes
Linstallation du systme de base est lopration la plus dlicate, puisquil faut travailler au niveau le
plus bas. La moindre erreur peut provoquer une catastrophe, ce qui peut aller jusqu recommencer
compltement linstallation. Si vous installez Linux pour la premire fois sur votre ordinateur, ou sil
ny a pas dautre systme dexploitation install dessus, vous en serez quitte pour quelques heures
perdues. Sinon, ce qui est le plus craindre, cest la perte totale de vos donnes, y compris celles des
autres systmes installs ! Donc :
IL FAUT DONC FAIRE UNE SAUVEGARDE DE VOS DONNES !
28
Chapitre 4. Installation du systme de base
La manire de procder dpend bien entendu des systmes dexploitation ventuellement dj ins-
talls. Gnralement, il sagit de Microsoft Windows. Si vous disposez dun lecteur de bande, le
problme de la sauvegarde est trs simple : vous navez qu faire une sauvegarde complte. Dans
le cas contraire, vous allez sans doute devoir trier vos chiers an didentier ceux auxquels vous
tenez rellement, et les recopier sur un support physique able (vitez absolument les disquettes, ils
sont lents et nont jamais t ables). Vous pouvez par exemple faire un CD de sauvegarde si vous
disposez dun graveur de CD.
En fait, lidal est tout simplement de disposer dun autre disque dur, que lon pourra consacrer
compltement linstallation de Linux. Ainsi, vous pourrez exprimenter tout loisir, sans craindre
de perdre vos prcieuses donnes. De plus, linstallation de Linux sur un disque vierge est nettement
plus facile que sur un disque o Windows est dj install, parce que vous navez pas dgager de
la place pour son installation. Prenez toutefois garde au fait que Linux restera capable daccder aux
donnes de votre premier disque dur, et que toute erreur de manipulation peut dtruire les donnes qui
sy trouvent. Par exemple, si vous ne spciez pas le bon disque dur lors de la cration des systmes
de chiers, vous perdrez nouveau toutes vos donnes. Lachat dun tiroir peut tre la vraie solution,
car vous naurez alors quun seul disque un instant donn dans votre ordinateur. Toutefois, cette
technique a linconvnient de ne pas vous permettre daccder aux donnes de votre disque Windows
partir de Linux.
4.3. Amorage
Pour commencer votre installation, vous devez avant tout dmarrer votre ordinateur sous Linux. La
mthode la plus simple est certainement de mettre le CD damorage de votre distribution dans le
lecteur de CD et de redmarrer lordinateur. Il faut que votre BIOS soit congur pour amorcer le
systme sur le lecteur de CD pour que cette solution fonctionne. Si votre BIOS ne vous permet pas de
le faire, il ne vous reste plus qu utiliser lune des disquettes fournies avec votre distribution. Dans
tous les cas, Linux doit se lancer, et le programme dinstallation doit dmarrer. Suivez les indications
fournies avec votre distribution pour cette tape.
Le noyau de Linux qui est fourni avec votre distribution est un noyau qui a t spcialement conu
pour dmarrer correctement sur le plus grand nombre de machines possibles. Il contient donc les
pilotes ( drivers en anglais) pour votre disque dur, ainsi que pour dautres types de disques. Il se
peut mme que plusieurs noyaux vous aient t livrs avec votre distribution. Chacun de ces noyaux
permet de dmarrer sur un certain type dordinateur. Lorsquil se lance, Linux tente de dtecter le
matriel de votre ordinateur. Seuls les pilotes correspondant votre matriel sactivent, les autres sont
tout simplement ignors. Il se peut cependant que Linux ne dtecte pas vos disques durs. Cela peut
arriver surtout pour les disques SCSI. Dans ce cas, soit il faut changer de noyau, soit il faut utiliser des
pilotes additionnels, qui peuvent tre chargs la demande. Ces pilotes sont appels des modules
du noyau. Ces modules sont en gnral accessibles directement sur le CD-ROM ou la disquette de
dmarrage, ou sur une disquette complmentaire. Si Linux ne dtecte pas vos disques durs, vous serez
oblig dindiquer les modules charger au programme dinstallation. Si cela ne fonctionne toujours
pas, vous devrez ramorcer votre systme avec un noyau plus adapt votre matriel. Pour cela,
vous aurez sans doute besoin de crer une disquette damorage pour ce noyau, et de lutiliser la
place de votre lecteur de CD. En gnral, les distributions fournissent un petit utilitaire DOS nomm
RAWRITE.EXE qui permet de crer une disquette damorage partir dun noyau trs simplement.
Il sutilise avec la ligne de commande suivante :
rawrite image lecteur:
29
Chapitre 4. Installation du systme de base
o image est limage dune des disquettes damorage (que vous trouverez sur le CD damorage de
votre distribution), et lecteur est le lecteur de disquette utilis (en gnral, A: ). Vous pouvez
aussi consulter la documentation de votre distribution pour savoir comment indiquer au noyau les
modules quil doit charger, ou comment crer une disquette de dmarrage pour un autre noyau.
Dans la majorit des distributions, les outils ncessaires linstallation sont placs sur un disque vir-
tuel en mmoire aprs le dmarrage de Linux. Cest en particulier le cas du programme dinstallation.
Cela est normal, puisque Linux nest pas encore install, dune part, et que ces outils ne tiennent
pas facilement sur une disquette, dautre part. Ces outils sont donc souvent comprims. Vous devez
malgr tout avoir dj accs aux priphriques de votre ordinateur, en particulier aux disques, pour
poursuivre votre installation.
4.4. Partitionnement du disque
La deuxime opration aprs le dmarrage du systme est le partitionnement du disque dur. Cette
tape est de loin la plus dangereuse, mais elle est absolument ncessaire. Elle ne pose pas de pro-
blmes lorsquon installe Linux sur une machine neuve, mais peut tre dlicate si un autre systme
dexploitation est dj install ou doit tre install en parallle. Cette section dcrit les principes de
base du partitionnement, la manire de rcuprer de la place sur un disque dur et lopration de parti-
tionnement proprement dite.
4.4.1. Notion de partition et damorage du systme
Une partition est, comme son nom lindique, une partie dun disque dur. Les partitions permettent
de diviser lespace de stockage des disques durs en zones indpendantes de taille restreinte, et dans
lesquelles diffrents systmes ou diffrentes donnes peuvent tre stockes de manire totalement
indpendante. Lopration de partitionnement est lopration de cration des diffrentes partitions
dun disque dur.
Linstallation de plusieurs systmes dexploitation ncessite souvent dallouer une partition chaque
systme, car les systmes dexploitation ne comprennent gnralement pas le format des systmes de
chiers les uns des autres. Il est galement parfois ncessaire, pour un mme systme, de dnir plu-
sieurs partitions, qui seront utilises des ns spciques. Par exemple, Linux fonctionne nettement
mieux si on lui attribue une partition de swap (dite aussi partition dchange ) pour stocker
des donnes peu utilises qui se trouve en mmoire, lorsquil a besoin de plus de mmoire quil nen
est physiquement installe sur la machine. De mme, il est possible de crer plusieurs partitions pour
sparer les donnes utilisateurs des programmes, ce qui permet de faciliter les mcanismes de sauve-
garde dune part, et dassurer une plus grande scurit des donnes lors des oprations de maintenance
du systme dautre part.
Sur les machines de type PC, chaque disque dur peut tre dcoup en quatre partitions dites
primaires . La position, la taille et le type de ces partitions sont enregistres dans le premier
secteur du disque dur, que lon appelle souvent le Master Boot Record ( MBR en abrg).
Le MBR ne contient que quatre entres pour la dnition des partitions, do la limite de
quatre partitions primaires. Le type des partitions est un code numrique qui indique le systme
dexploitation capable de lutiliser et sa nature (partition de swap ou systme de chiers par
exemple). titre dexemple, Linux utilise principalement deux types de partition : les partitions de
swap (numro 82) et les partitions pour les systmes de chiers (type 83).
La dnition des partitions se fait donc en donnant leur adresse de dpart, leur taille et leur type.
Ladresse de dpart et la longueur des partitions sont exprimes en secteurs. Un secteur est lunit
de base pour les donnes des disques durs, qui correspond un bloc de 512 octets utiles (auxquels
30
Chapitre 4. Installation du systme de base
sajoutent bien entendu dventuels octets de contrle derreur, mais qui ne sont manipuls que par
le disque dur lui-mme et par son contrleur, et que lon ne peut donc pas utiliser pour y stocker des
donnes). Cela dit, certains systmes (ceux de Microsoft) ne permettent pas une telle nesse dans la
dnition des partitions et ncessitent de travailler au niveau du cylindre.
Note : Pour comprendre ce quest un cylindre, il faut savoir que les donnes des disques durs
sont stockes sur les faces magntiques de plateaux en rotation, au dessus (et en dessous)
desquelles les ttes de lecture/criture du disque se dplacent radialement. Les donnes sont
donc crites en cercles concentriques sur les diffrents plateaux en raison de leur rotation sous
les ttes de lecture (contrairement aux microsillons et aux CD, il sagit bien ici de cercles et non
dune spirale car les ttes de lecture/criture restent une position xe pendant la rotation des
plateaux). On appelle ces cercles des pistes ( track en anglais). Chaque tte accde
donc une piste et une seule un instant donn, sur laquelle les secteurs sont enregistrs.
Comme toutes les ttes sont solidaires (elles se dplacent ensemble lorsque lune dentre elles
doit changer de piste), les diffrentes pistes des diffrents plateaux sont accdes simultan-
ment. Lensemble de ces pistes, situs un rayon donn pour tous les plateaux, constitue ce que
lon appelle un cylindre . Les paramtres des disques durs sont donc exprims en termes de
nombre de ttes, de cylindres et de secteurs par piste.
Figure 4-1. Pistes et secteurs dun disque dur
Vous remarquerez souvent que le nombre de ttes est impair, alors quen gnral, un plateau a
deux faces... Cela est d au fait que les fabricants de disques durs conservent toujours une face
dun plateau pour y crire des donnes de contrle permettant aux ttes de lecture/criture de
se positionner ou pour y placer des pistes complmentaires en cas de zones dfectueuses sur la
surface de lun des autres plateaux.
Bien entendu, la limitation quatre partitions seulement est extrmement contraignante, aussi la no-
tion de partition tendue a-t-elle t introduite. Une partition tendue est une partition primaire
spciale, dans laquelle il est possible de dnir jusqu 64 sous-partitions. Ces sous-partitions sont
appeles des partitions logiques . Les donnes ne sont jamais stockes dans la partition tendue
elle-mme, mais dans ses partitions logiques. On ne peut dnir quune seule partition tendue sur un
disque donn, mais cela nempche pas davoir des partitions primaires normales ct de celle-ci. Il
est donc recommand, lorsque lon cre la quatrime partition, de crer une partition tendue et non
une partition primaire, an de se rserver la possibilit de crer de nouvelles partitions ultrieurement.
Il faut toutefois savoir que certains systmes ne peuvent pas tre installs sur des partitions logiques
31
Chapitre 4. Installation du systme de base
(notamment DOS et Windows 9x/Millenium), bien quils soient capables dy accder une fois quils
ont dmarr.
Figure 4-2. Partitions primaires et partitions logiques
Outre la table des partitions primaires, le MBR contient un petit programme appel le bootstrap
loader qui permet de charger le premier secteur dune des partitions primaires. Ce secteur est com-
munment appel le secteur de boot , parce quil contient le programme capable de charger le
systme dexploitation. La partition dont le secteur de boot est charg par le bootstrap loader est ap-
pele la partition active . Il ne peut y avoir quune seule partition active chaque instant : celle du
systme dexploitation principal.
Gnralement, le programme stock sur le secteur de boot dune partition a pour but de charger le
systme dexploitation qui y est install. Cependant, pour certains systmes dexploitation, ce pro-
gramme est trs volu et permet de lancer dautres systmes dexploitation, ventuellement installs
sur dautre partitions ou dautres disques durs. Ces programmes sont alors appels des gestionnaires
damorage . Linux dispose de deux gestionnaires damorage trs puissants : le GRUB et LI-
LO. Windows NT, 2000 ou XP disposent galement dun gestionnaire damorage capable de lancer
dautres systmes dexploitation : NTLDR.
Pour rsumer, lors du dmarrage dun PC, le BIOS charge le MBR du premier disque dur en m-
moire et excute le bootstrap loader. Celui-ci cherche ensuite charger le secteur de boot de la par-
tition active, et excute le gestionnaire damorage qui sy trouve. Ce gestionnaire peut donner accs
aux diffrents systmes dexploitation, quils soient situs sur dautres partitions ou mme dautres
disques durs. La manire dont chaque systme est lanc dpend bien sr du systme. Il faut donc, en
gnral, lancer chaque systme dexploitation avec son propre chargeur. Cependant, on peut toujours
utiliser un gestionnaire damorage dun autre systme en rusant quelque peu : il suft dindiquer
ce gestionnaire de charger le secteur de boot de la partition dinstallation du systme que lon dsire
lancer si celui-ci nest pas pris en charge directement. Dans ce cas, le gestionnaire damorage ne fait
que passer la main au chargeur de lautre systme. La manire de procder pour installer LILO, le
GRUB ou NTLDR sera dcrite dans la Section 4.8.
Figure 4-3. Master boot record et secteurs de boot
32
Chapitre 4. Installation du systme de base
4.4.2. Plan de partitionnement
Avant de se lancer dans lopration de partitionnement proprement dite, il faut tablir un plan de
partitionnement. Cela consiste tout simplement dterminer la taille et la nature de chaque partition
dans le systme. Il est normal, sur un systme o seul Linux sera utilis, de disposer dau moins trois
partitions :
une partition de swap, que Linux utilisera pour y stocker temporairement des donnes lorsquil
aura besoin de rcuprer un peu de place en mmoire. Il est recommand de placer cette partition
au dbut du disque (cest dire au plus prs du cylindre 0, l o le taux de transfert est le plus
rapide) ;
une partition pour le systme de chiers racine (point de montage /), dans laquelle doit se trouver
lensemble des chiers du systme. Cette partition doit se trouver dans les 1024 premiers cylindres
pour que le BIOS puisse y accder et charger le gestionnaire damorage du systme ;
une partition devant contenir les donnes des utilisateurs (point de montage /home/).
Lavantage davoir une partition spare pour toutes les donnes des utilisateurs est considrable,
puisque dans ce cas on peut mettre jour le systme ou le rinstaller compltement sans avoir
faire de sauvegarde de ses donnes. De plus, les chiers de conguration importants peuvent tre
sauvegards sur cette partition avant la rinstallation, ce qui est extrmement pratique. Ce type de
partitionnement est prendre srieusement en considration, surtout pour les machines de particuliers,
sur lesquelles un grand nombre de programmes peuvent tre installs simplement pour les tester. Il
nest donc pas rare, dans ces conditions, davoir refaire une installation complte pour nettoyer
rapidement le systme.
Toutefois, si lon ne dispose pas de beaucoup de place sur le disque, il est possible de regrouper la
partition racine et la partition contenant les donnes utilisateurs. Un mauvais dimensionnement de ces
partitions aura dans ce cas de moins lourdes consquences (si une partition est pleine, on ne peut pas
facilement utiliser lespace restant sur les autres partitions).
Si votre machine est destine accueillir plusieurs systmes dexploitation, il est vivement recom-
mand de crer au moins une partition FAT ou FAT32. Cette partition permettra en effet dchanger
des donnes entre Linux et les autres systmes dexploitation, car les systmes de chiers FAT sont
reconnus par tous les systmes dexploitation courants. Notez que si Windows NT4 doit tre install,
vous devrez crer une partition FAT plutt quune partition FAT32, car Windows NT ne reconnat pas,
sans programmes additionnels, les partitions FAT32. Ce problme ne se pose plus pour Windows 2000
et pour XP. Notez galement que bien que Linux sache parfaitement lire les partitions NTFS (utilises
par Windows NT4, Windows 2000 et par XP), lcriture sur ces partitions est exprimentale et nest
donc pas conseille. Inversement, aucun systme Windows ne sait lire les systmes de chiers Linux,
quels quils soient. Avoir une partition FAT est donc incontournable dans ce cas de conguration.
Si la machine doit tre dune abilit absolue ou si vous tes soumis des contraintes dexploitation
fortes, vous pouvez opter pour des solutions radicales qui consistent sparer les donnes
dexploitation (normalement situes dans le rpertoire /var/) des chiers des programmes, et de les
placer dans une partition ddie. Vous pourrez alors ne monter que cette partition en lecture/criture.
Ainsi, en cas de crash systme, seule la partition contenant les donnes dexploitation devra tre
rpare, ou lextrme rigueur rinitialise compltement par les scripts de dmarrage.
Rien ne vous empche de crer dautres partitions si vous le dsirez. Sachez cependant que les sys-
tmes de chiers de Linux ne sont pas aussi limits que les systmes de chiers FAT et FAT32 en
ce qui concerne les tailles maximales des partitions et que, par consquent, crer une multitude de
partitions nest pas ncessaire et nest certainement pas une bonne ide. La cration de partitions
33
Chapitre 4. Installation du systme de base
supplmentaires peut malgr tout savrer ncessaire, par exemple pour y installer dautres systmes
dexploitation. Dans ce cas, vous aurez certainement crer une partition tendue et des partitions
logiques.
La grande difcult dans ltablissement du plan de partitionnement est de bien dterminer ses be-
soins en place disque, aussi bien pour les programmes que pour les donnes et le swap. Cependant,
dune manire gnrale, on peut considrer que ce qui est le plus important pour un particulier, ce
sont ses donnes, et que le systme ne va pas prendre des dizaines de giga-octets sur le disque ! Si
vous dcidez de placer les programmes et les donnes utilisateurs dans deux partitions spares, vous
pouvez envisager le plan de partitionnement suivant :
une partition de swap : deux fois la mmoire vive de lordinateur si vous ne disposez pas de beau-
coup despace disque, 256 Mo sinon. Il est inutile de consacrer plus de place que cela, car il est trs
rare davoir besoin de plus de 384 Mo de mmoire virtuelle (la mmoire virtuelle est la somme de
la mmoire libre et de la taille des partitions ou chiers dchange). Notez que la rgle du double
de la mmoire vive est tout fait empirique. Elle se base sur le principe que si le systme a besoin
de plus de swap, cest que de toutes faons il nest pas dimensionn pour ce quon lui demande de
faire. Cela dit, vous pouvez mettre autant de swap que vous le dsirez si vous en avez rellement
besoin (par exemple pour manipuler de trs grandes photos ou des chiers de trs grande taille).
Si vous avez un gros disque, vous pouvez utiliser une trs grande partition de swap : elle ne sera
quasiment pas utilise, mais le jour o vous en aurez besoin, elle sera l. Aprs tout, abus de bien
ne nuit pas... Sachez toutefois que de toutes faons, si un jour il fallait plus de mmoire virtuelle,
vous pourriez crer un chier dchange temporaire ;
une partition racine, contenant le systme, les programmes et les chiers de conguration : environ
2 Go. Il est possible de travailler avec 1 Go, mais on nest vraiment pas laise avec XWindow
ou si lon dsire compiler des programmes rcuprs sur Internet (ce qui est assez courant). Il est
inutile de dpasser les 3 Go pour cette partition, si lon a besoin de plus de place, cest que le
rpertoire des donnes de travail /var/ devient trop gros et dans ce cas on a intrt le placer
sur une partition qui lui est ddie. Notez que lon a intrt placer cette partition au dbut du
disque pour deux raisons : premirement, cest cet endroit que le disque dur est le plus rapide, et
deuximement, certains BIOS ne sont pas capables daccder aux cylindres de numro suprieur
1024 et ne peuvent donc pas accder au gestionnaire damorage du systme sil est install sur
cette partition ;
une partition pour les rpertoires personnels des utilisateurs : le reste de lespace disponible sur le
disque moins, bien entendu, lespace ncessaire aux partitions des autres systmes dexploitation
et celui dune ventuelle partition de sauvegarde ou dchange de donnes ;
enn, si ncessaire, une partition de sauvegarde ou dchange de donnes entre les diffrents sys-
tmes dexploitation si lon dsire raliser une conguration multiboot. Cette partition devra tre
en FAT16 si les autres systmes ne supportent pas les partitions de type FAT32 (par exemple DOS,
Windows 95 premire dition ou Windows NT4), mais on prfrera tout de mme la FAT32 si pos-
sible (Windows 95OSR2 ou plus, ou Windows 2000 ou XP). Cette partition pourra faire environ
1 Go, soit la taille ncessaire pour stocker une image disque de CD-ROM plus quelques chiers
complmentaires. Elle pourra tre de taille suprieure si un autre systme dexploitation y est ins-
tall.
Note : La partition du systme dont on utilise le gestionnaire damorage doit tre place de
prfrence avant le cylindre 1024. En effet, certains BIOS ne peuvent pas accder aux cylindres
suivants, et le bootstrap loader ne peut donc pas charger le gestionnaire damorage du systme
dans ce cas. Cela signie que la deuxime partition doit tre la partition du systme dexploitation
34
Chapitre 4. Installation du systme de base
principal (cela a en plus lavantage de donner les accs disque les plus rapides pour les chiers
de ce systme).
Notez que ce plan de partitionnement utilise les quatre entres de la table des partitions, et
ne permet donc pas den ajouter une complmentaire. Si lon dsire installer un autre systme
dexploitation, on pourra le faire sur la partition FAT (auquel cas on pourra lui consacrer plus dun
giga-octet), soit sur un deuxime disque dur. Si cela ne savre pas possible (par exemple parce
que lon veut installer Windows NT, Windows 2000 ou XP sur une partition NTFS tout en conser-
vant la partition FAT), on devra crer une partition tendue. Je prconise dans ce cas de placer
les deux dernires partitions (la partition dchange et la partition des rpertoires personnels des
utilisateurs) dans des partitions logiques de cette partition tendue, ce qui laisse libre la troisime
partition primaire pour un autre systme dexploitation. Bien entendu, ce plan de partitionnement
est une suggestion et vous tes absolument libre den choisir un autre. Je ne le fournis que
pour aider ceux qui ne savent pas comment effectuer leur partitionnement prcisment. Il devrait
convenir pour tous les disques de plus de 4 Go, qui sont monnaie courante prsent.
En fait, il est possible dinstaller Linux sur une partition FAT, mme si elle est partage avec
un autre systme dexploitation, laide dune extension de ce systme de chiers nomme
UMSDOS . Cependant, cette opration nest pas prvue par la plupart des distributions en
standard, et on commence l sortir des sentiers battus. Autant dire que linstallation risque de
se compliquer srieusement. De plus, ce choix est fondamentalement mauvais, parce que :
le systme de chiers FAT est support par Linux, mais nest pas optimis. Il est donc environ
deux fois plus lent que les systmes de chiers natif EXT2 ou ReiserFS ;
le systme de chiers UMSDOS simule un systme de chiers Unix sur la FAT en rajoutant
des chiers dinformations complmentaires, ce qui est encore plus lent ;
le systme de chiers FAT nest intrinsquement pas sr, car il ne prvoit aucun moyen de
dupliquer les donnes ;
votre systme Linux est alors la merci des innombrables virus du monde Windows ;
les systmes de chiers de Linux sont plus performants quun systme de chiers FAT32,
mme lorsquon lutilise sous Windows 95.
Cela dit, il faut se faire une raison, si lon installe Linux, cest pour lutiliser. La solution la plus
simple pour ceux qui hsitent encore est peut tre de disposer dun tiroir et dun deuxime disque
dur.
4.4.3. Trouver de la place pour installer le systme
Lun des problmes les plus courants lors dune nouvelle installation est labsence de place dispo-
nible sur le disque dur pour placer une partition Linux. Ce problme na hlas pas de solution : il
faut supprimer une autre partition appartenant un autre systme, ou en rduire une. Souvent, rduire
une partition revient sauvegarder les donnes, la supprimer, la recrer avec une taille infrieure
et restaurer les donnes. Certains outils commerciaux permettent de rduire des partitions directe-
ment, mais ils se vendent souvent pour le prix dun disque dur neuf (je ne peux donc rellement pas
conseiller de les acheter, sauf si vous avez plusieurs disques durs dont les partitions doivent tre re-
dimensionnes ou dplaces !). De plus, Linux dispose galement dun outil similaire qui, bien quil
soit encore en phase de dveloppement, permet dj de raliser la plupart des oprations que lon peut
avoir faire sur les partitions FAT et les partitions EXT2 de Linux. Il sagit du programme parted,
que nous dcrirons ci-aprs. De mme, il existe un programme DOS permettant de rduire la taille
dune partition FAT, moyennant quelques prcautions complmentaires. Bien entendu, il va de soi que
si lon doit dplacer ou modier une partition, il faut faire au pralable des sauvegardes de toutes les
donnes de cette partition...
35
Chapitre 4. Installation du systme de base
Lorsquon installe Linux sur un ordinateur sur lequel un autre systme dexploitation est dj prsent,
ce systme est trs souvent un systme Microsoft (DOS, Windows 9x ou Windows NT/2000/XP).
La plupart de ces systmes utilisent le systme de chiers FAT sur leur partition. Or ce systme de
chiers est relativement primaire et il est donc possible de redimensionner et de dplacer facilement
les partitions sur lesquelles il est utilis. En revanche, si le systme de chiers utilis est de type
NTFS (ce systme de chiers nest disponible quavec Windows NT, Windows 2000 ou XP), aucune
mthode simple ne permet de le redimensionner.
Il est possible que votre distribution dispose dun outil graphique permettant de manipuler les par-
titions existantes pendant la phase dinstallation. Ce type doutil pourra tre utilis pour dgager de
la place pour Linux, ventuellement en rduisant une partition existante. Nous ne dcrirons cepen-
dant pas ces outils ici, car ils sont spciques chaque distribution. En revanche, nous prsenterons
les deux principales techniques permettant de redimensionner une partition, la premire fonctionnant
sous Linux et la deuxime sous DOS.
4.4.3.1. Utilisation de parted
Lutilitaire GNU parted est le standard en ce qui concerne les manipulations de partitions sous Linux.
Cet outil sutilise en ligne de commande, et peut donc tre utilis partir dun terminal en mode texte
pendant la phase dinstallation, si votre distribution linclut avec ses outils dinstallation standards. Si
ce nest pas le cas, vous pourrez rcuprer limage dune disquette de boot Linux contenant cet outil
ladresse ftp://ftp.gnu.org/gnu/parted/bootdisk/partboot.img. Cette image pourra tre copie sur une
disquette laide de lutilitaire DOS RAWRITE.EXE, de la mme manire que les disquettes de boot
de votre distribution peuvent tre cres. La manire de procder a t dcrite dans la Section 4.3.
Une fois que vous aurez dmarr Linux et obtenu un terminal fonctionnel, vous pourrez lancer parted
avec la simple commande suivante :
parted disque
o disque est lidentiant du disque dur sur lequel la partition modier se trouve. Comme on la
vu prcdemment, tous les priphriques sont accessibles par lintermdiaire de chiers spciaux pla-
cs dans le rpertoire /dev/. Le nom des chiers spciaux correspondants vos disques peut varier
selon leur nature. Ainsi, les disques et les lecteurs de CD IDE sont accessibles par lintermdiaire
des chiers spciaux /dev/hda, /dev/hdb, /dev/hdc, etc. Ces chiers permettent daccder res-
pectivement au disque matre du premier contrleur IDE, au disque esclave de ce mme contrleur,
puis au disque matre du deuxime contrleur IDE puis au disque esclave du deuxime contrleur
IDE, etc. Ainsi, si vous ne disposez que dun disque, il doit normalement tre connect sur le premier
contrleur IDE et tre matre. Dans ce cas, vous y accderez par le chier spcial /dev/hda. Pour les
disques SCSI, les noms sont lgrement diffrents : ils sont nomms /dev/sda, /dev/sdb, etc. La
modication des partitions du premier disque dur IDE se fera donc laide de la commande suivante :
parted /dev/hda
Note : partir de la version 2.4.0 du noyau de Linux, le rpertoire /dev/ peut tre gnr par
le noyau, dans un systme de chiers virtuel. Lorganisation de ce rpertoire est dans ce cas dif-
frente de lorganisation classique, et les noms de chiers spciaux correspondants aux disques
peuvent tre diffrents de ceux indiqus ci-dessus. Par exemple, le chemin du chier spcial per-
mettant daccder au premier disque IDE sera /dev/ide/host0/bus0/target0/disc. Comme
vous pouvez le constater, la reprsentation de la machine dans le systme de chiers virtuels
est plus structure, mais galement plus complique. An de simplier ces mcanismes, il est
dusage de placer des liens symboliques dans le rpertoire /dev/ permettant daccder aux
chiers spciaux de priphriques avec leurs anciens noms. Vous naurez donc normalement
36
Chapitre 4. Installation du systme de base
pas vous soucier de savoir si votre noyau utilise ou non le systme de chiers virtuels /dev/,
et les chemins utiliss dans la suite de ce document seront les chemins classiques. Vous devrez
faire la traduction vers les chemins du systme de chiers virtuels vous-mme si vous ne voulez
pas utiliser ces liens symboliques.
parted dispose de plusieurs commandes permettant de modier les partitions. lheure actuelle, il
ne permet rellement de travailler que sur les partitions FAT et les partitions contenant un systme de
chiers EXT2, EXT3 ou ReiserFS. Seul les fonctionnalits de manipulation des partitions FAT nous
intressent ici, car nous devons rduire une partition FAT.
La premire commande indispensable est la commande print, qui permet dafcher la table des par-
titions du disque courant. Les informations afches par cette commande se prsentent de la manire
suivante :
Disk geometry for /dev/hda: 0.000-32634.492 megabytes
Disk label type: msdos
Minor Start End Type Filesystem Flags
1 0.031 32632.031 primary FAT lba
Comme vous pouvez le constater, les partitions sont dcrites raison dune ligne par partition. Cette
ligne contient le numro de la partition (les quatre premiers numros tant affects aux partitions
primaires), les points de dpart et de n de ces partitions, exprims en mgaoctets, le type de la
partition, le systme de chiers de cette partition, et des indications complmentaires.
Note : Comme il la dj t expliqu ci-dessus, les partitions sont gnralement dcrites en
terme de cylindres. parted prfre utiliser le mgaoctet comme unit, ce qui est gnralement
plus clair. Il prend compltement en charge la traduction des informations de taille en termes plus
physiques, en tenant compte des ventuels problmes dalignement aux limites de cylindre. Son
utilisation est donc relativement directe.
La commande qui nous intresse le plus ensuite est la commande resize, qui permet de redimensionner
une partition. Cette commande utilise la syntaxe suivante :
resize partition dbut fin
o partition est le numro de la partition tel quil est prsent dans la premire colonne des infor-
mations de la commande print, dbut est la nouvelle position o la partition commencera et fin est
la nouvelle limite de cette partition. Comme vous pouvez le constater, il est possible de rduire une
partition aussi bien par son dbut que par sa n ! La seule contrainte est, bien entendu, que cette parti-
tion reste sufsamment grande pour contenir lensemble de ses donnes. Par exemple, pour rduire de
8 Go la premire partition du disque dur de lexemple prcdent an dy placer la partition de swap
et les systmes de chiers, on utiliserait la commande suivante :
resize 1 8192 32632.031
Note : Lopration de redimensionnement peut prendre un certain temps. En effet, parted doit d-
placer les donnes qui se trouveraient en dehors de la partition aprs son redimensionnement si
aucune mesure spciale ntait prise, et il doit reconstruire compltement la FAT de cette partition
pour quelle soit cohrente avec le nouvel emplacement de ces donnes.
37
Chapitre 4. Installation du systme de base
Il est impratif de dsactiver la limite utilisateur concernant la taille maximale des chiers manip-
uls avant deffectuer la moindre opration sur les partitions. En effet, cette limite pourrait em-
pcher parted daccder aux donnes situes au-del dune certaine position dans la partition.
Pour dsactiver cette limite, il faut taper la commande suivante avant de lancer parted :
ulimit -f unlimited
Si vous dsirez dplacer une partition plutt que de la redimensionner, vous pouvez utiliser la com-
mande move :
move partition dbut
o partition est le numro de la partition et dbut est son nouvel emplacement de dpart, exprim
en mgaoctets. De mme, si vous dsirez copier une partition, la commande cp devra tre utilise.
Cette commande suit la syntaxe suivante :
cp [disque] source destination
o disque est le disque dur o se trouve la partition source, source est le numro de cette partition,
et destination est le numro de la partition destination. La partition destination est toujours situe
sur le disque dur courant (cest--dire celui qui a t indiqu en ligne de commande lors du lancement
de parted ou celui spci par la commande select de parted).
Enn, une fois que toutes les manipulations sur les partitions auront t effectues, vous pourrez
quitter parted avec la simple commande quit. Vous pourrez obtenir la liste des autres commandes
acceptes par parted en tapant la commande help.
4.4.3.2. Utilisation de ps
ps (abrviation de langlais First Interactive Partition Splitter ) est un utilitaire similaire parted,
ceci prs quil fonctionne sous DOS et quil ne permet que de rduire la limite suprieure dune
partition FAT. De plus, cet utilitaire est incapable de rorganiser le systme de chiers lissue de
la rduction de la taille de la partition. Il est donc ncessaire de dfragmenter le systme de chiers
avant dutiliser ce programme, an de placer toutes ses donnes au dbut de la partition.
Note : Vriez bien les options du dfragmenteur de systme de chiers que vous utilisez :
quelques outils consolident bien lespace libre mais placent certains chiers la n de la partition
FAT pour laisser plus de place aux chiers les plus utiliss au dbut du disque, an doptimiser
le dbit de donnes sur ces chiers (cest notamment le cas avec le dfragmenteur de Norton).
Il faut imprativement dsactiver ce type doption avant de rduire la partition, faute de quoi vous
perdriez dnitivement les chiers qui se trouvent la n de la partition et votre FAT serait dans
un tat incohrent.
Une fois la dfragmentation ralise, ps peut tre utilis pour rduire la taille de la partition FAT. La
plupart des distributions de Linux fournissent des utilitaires DOS sur leur CD-ROM dinstallation, g-
nralement dans le rpertoire dosutils. Cest l que vous pourrez sans doute trouver ps. Attention,
vous devrez imprativement utiliser la version 2.0 de ps pour manipuler les FAT32 et FAT32X.
La rduction de la taille dune partition se fait en modiant la variable qui contient la taille de la
partition dans la table des partitions. Pour cela, vous devrez simplement lancer ps. Celui-ci vous
prsentera alors la liste des disques durs installs sur votre systme, et vous devrez lui indiquer le
38
Chapitre 4. Installation du systme de base
disque sur lequel la partition rduire se trouve. Il vous demandera ensuite la partition que vous dsi-
rez rduire, puis le cylindre auquel cette partition devra se terminer. Lorsque vous aurez dtermin la
nouvelle taille de cette partition, vous devrez presser la touche c pour poursuivre. ps vous deman-
dera alors conrmation avant dcrire sur disque les nouvelles informations de partition. Si vous tes
sr de vous, vous pouvez rpondre par lafrmative en pressant la touche y.
Note : Contrairement parted, ps ne reconstruit pas la table dallocation des chiers (la FAT )
aprs avoir rduit la taille de la partition, ce qui fait que cette dernire est trop grosse pour cette
nouvelle taille aprs rduction. Cela nest pas gnant, seuls quelques mgaoctets seront perdus
sur la partition FAT dans la FAT elle-mme. Cette technique a en revanche lavantage dtre
extrmement rapide.
4.4.4. Utilisation de fdisk
Le partitionnement en soi peut se faire soit directement laide du fdisk de Linux, soit par
lintermdiaire du programme dinstallation de la distribution correspondante. Il est recommand
dutiliser ce programme dinstallation, qui vous guidera et vous indiquera comment raliser cette
opration. Si toutefois vous dsirez utiliser fdisk, il vaut mieux faire attention ce que vous faites.
Pour lancer fdisk, il suft de taper la commande suivante en ligne de commande :
fdisk disque
o disque est le chier spcial de priphrique reprsentant le disque que vous dsirez partitionner.
Si vous voulez partitionner le disque matre du premier contrleur IDE, vous devrez donc taper :
fdisk /dev/hda
Si vous ne spciez aucun disque en paramtre fdisk, il prendra par dfaut le disque /dev/sda, ou
/dev/hda si aucun disque SCSI nest install.
fdisk est un programme trs peu interactif. Il attend que vous lui communiquiez les commandes
excuter en tapant sur une lettre. Les diffrentes commandes possibles peuvent tre afches avec la
commande m.
Lorsque vous crez une partition, vous devez utiliser la commande n, puis indiquer son type avec
les commandes p (pour primary ) pour une partition primaire ou e (pour extended ) pour une
partition tendue. Vous devrez ensuite donner son numro dans la table des partitions, puis indiquer
le dbut et la n de la partition. Par dfaut, lunit utilise par fdisk est le cylindre. Il est recommand
de conserver cette unit, surtout si lon utilise un systme qui ne sait manipuler que les cylindres.
Toutefois, on peut changer cette unit grce la commande u et utiliser le secteur comme unit.
Si vous avez cr une partition tendue, celle-ci sera utilise pour y stocker des partitions logiques.
Pour pouvoir les crer, il faut encore utiliser la commande n, et choisir le type de partition logique
avec la commande l (pour logical ). Les partitions logiques sont numrotes avec les nombres 5 et
suivants. La cration des partitions logiques se fait exactement de la mme manire que les partitions
primaires, en spciant leur dbut et leur n, soit en cylindres, soit en secteurs selon lunit courante.
Une fois les partitions cres, vous pouvez spcier leur type laide de la commande t (pour
type ). Cette commande demande successivement le numro de la partition modier et la valeur
de son identicateur en hexadcimal. Rappelons que les identicateurs utiliser pour Linux sont
83 pour les partitions de systmes de chiers Linux, et 82 pour les partitions de swap. La liste des
39
Chapitre 4. Installation du systme de base
valeurs admissibles peut tre obtenue laide de la commande l. Par dfaut, le fdisk de Linux cre
des partitions Linux natives, de code 83.
Lorsque vous aurez compltement dni vos partitions, il ne vous restera plus qu activer la partition
qui contiendra le gestionnaire damorage. La slection de la partition active se fait avec la commande
a de fdisk. Cest donc sur cette partition que le chargeur du MBR ira chercher le gestionnaire
damorage du systme lancer.
Note : Thoriquement, il est tout fait possible dinstaller le gestionnaire damorage dun sys-
tme directement sur le MBR, mais procder de cette manire est trs dconseill. En effet,
certains systmes dexploitation (notamment tous les systmes de Microsoft) crasent systma-
tiquement le MBRlorsquils sinstallent, dtruisant ainsi le chargeur dun autre systme qui y serait
ventuellement install. Cela implique que si lon dsire installer un gestionnaire damorage
autre que celui des systmes Microsoft sur le MBR, il faut le faire aprs linstallation de ces sys-
tmes. En pratique, cela veut dire que dans ce cas, on doit installer Linux aprs Windows ou le
DOS.
Notez quil nest toutefois pas toujours faisable dinstaller le gestionnaire damorage sur le
secteur de boot de la partition de son systme, en particulier si cette partition ne se trouve pas
sur le premier disque dur de la machine. En effet, la plupart des BIOS sont incapables dutiliser
les MBR des autre disques durs. Dans ce cas, on peut soit crer une partition de dmarrage de
petite taille (quelques mga-octets, un cylindre au maximum) au dbut du disque et sur laquelle
on installera le gestionnaire damorage et ventuellement quelques outils de rparation en
cas de coup dur, soit installer le gestionnaire damorage directement sur le MBR du premier
disque dur. Dans ce cas, on devra faire particulirement attention lordre dinstallation des
systmes dexploitation. De manire gnrale, il faut toujours installer les systmes Microsoft
en premier (respectivement dans lordre suivant si lon veut viter les problmes : DOS,
Windows 9x/Millenium et Windows NT4/2000/XP). Nous verrons plus loin comment installer le
gestionnaire damorage de Linux et faire une conguration multiboot avec les principaux autres
systmes dexploitation existants.
4.5. Cration des systmes de chiers
Une fois le disque correctement partitionn, il faut crer les systmes de chiers. Cette opration
nest pas ncessaire pour les partitions de swap, cependant il faut le faire pour les autres partitions.
Attention ! Dans le monde du DOS et de Windows, la cration dun systme de chiers est lopration
de formatage dune partition. Le terme de formatage est trs mal employ dans ce sens, car il ny
a strictement rien voir entre le formatage dun disque, qui est lopration consistant enregistrer
des marques sur le support magntique pour dnir les pistes et les secteurs du disque, et la cration
du systme de chiers dune partition, qui consiste enregistrer les structures de donnes permettant
de retrouver les chiers dans cette partition. Le formatage est normalement effectu par le fabricant
du disque, et a lieu avant le partitionnement. En effet, partitionner un disque suppose quil existe dj
des pistes et des secteurs sur le disque. Cest pour cette raison que lon ne parlera ici que de cration
de systmes de chiers.
La cration des systmes de chiers EXT2 et EXT3 se fait avec la mme commande, savoir la
commande mke2fs. La cration des autres systmes de chiers se fait gnralement de la mme ma-
nire que pour ces systmes, mais avec des outils diffrents. Par exemple, la cration dun systme
de chiers ReiserFS se fait laide de loutil mkreiserfs. ReiserFS constitue une alternative possible
EXT3 car, tout comme EXT3, il prend en charge les mcanismes de journalisation qui assurent la
cohrence du systme de chiers mme en cas darrt intempestif de lordinateur. Cependant, ce sys-
40
Chapitre 4. Installation du systme de base
tme de chiers est encore jeune et na certainement pas t dbogu autant que EXT3, qui sappuie
sur la base de code du vieux systme de chiers EXT2. Sachez galement que ReiserFS, contraire-
ment EXT2 et EXT3, ne se comporte pas encore trs bien si le disque dur a des secteurs physiques
dfectueux. La suite de cette section ne traitera que des systmes de chiers EXT2 et EXT3, consul-
tez la documentation de votre distribution et les pages de manuel des outils des autres systmes de
chiers pour plus de dtails sur la mthode utiliser pour les crer.
An de pouvoir utiliser mke2fs correctement, il est ncessaire de dnir quelques termes, et
dexpliquer quelles notions dEXT2 et dEXT3 ils se rfrent.
Premirement, le systme de chiers EXT2 travaille, comme la plupart des systmes de chiers, avec
des blocs de taille xe ( clusters en anglais). Cela signie que lallocation de lespace disque se
fait par multiples de la taille de ces blocs : il est impossible de demander seulement une partie dun
bloc. Cette technique prsente des avantages et des inconvnients. Essentiellement, lavantage est la
rapidit engendre par la simplication des mcanismes dallocation et de libration despace disque.
Linconvnient majeur est videmment quon perd de la place pour tous les chiers qui ne tiennent pas
dans un nombre entier de blocs, puisquil faut allouer un bloc supplmentaire qui sera partiellement
utilis. En moyenne, on perd la moiti dun bloc par chier, ce qui ne peut tre rduit quen limitant
la taille des blocs une valeur relativement faible.
Note : EXT2 et EXT3 grent lallocation et la libration des blocs de manire toujours trouver
le meilleur bloc allouer pour crer un chier. Ainsi, il limite la fragmentation des chiers son
strict minimum, ce qui rend inutiles les programmes de dfragmentation de systmes de chiers.
Deuximement, EXT2 et EXT3 utilisent des structures de donnes appeles inodes pour dnir
les chiers. Un inode contient la plupart des informations dun chier, savoir :
son propritaire et son groupe ;
ses droits daccs ;
ses dates de cration, modication, accs ;
les blocs quil utilise ;
dautres informations utilises par EXT2.
Ces inodes sont stocks dans une table du systme de chiers, ce qui permet daccder trs rapidement
toutes ces informations et de retrouver galement trs simplement le ou les blocs contenant les
donnes du chier. Le problme est ici que cette table a un nombre dentres limit, ce qui implique
un nombre limit de chiers dans le systme de chiers. Plus cette table est grande, plus le nombre
de chiers que lon pourra crer sera grand, et inversement. Il faut donc trouver un compromis entre
la taille de cette table et le nombre de chiers que lon est susceptible de crer. Il va de soi quen
gnral, les grandes partitions contiennent plus de chiers, mais que la table dinodes peut galement
avoir une taille suprieure sans que cela soit drangeant. Par consquent, il est relativement courant de
dnir le taux dinode par bloc ou, autrement dit, la proportion dinodes dans la partition par rapport
sa taille.
Toutes ces informations (blocs libres et inodes) sont sauvegardes plusieurs endroits dans la parti-
tion, ce qui permet de disposer en permanence de copies de la structure du systme de chiers. De
cette manire, il est relativement simple de rparer un systme de chiers endommag, mme si les
donnes sont dtruites en raison dune erreur matrielle (secteurs dfectueux sur le disque dur par
41
Chapitre 4. Installation du systme de base
exemple). Chacune de ces copies sappelle un groupe de blocs. Chaque groupe de blocs contient un
bloc particulier, le super bloc , qui contient la description de son groupe.
Lors de la cration du systme de chiers, il est ncessaire dindiquer la taille dun bloc en octets.
Cette taille doit imprativement tre un multiple de la taille dun secteur du support physique de
donnes, parce que les blocs ne peuvent contenir quun nombre entier de secteurs. Pour un disque
dur, la taille des secteurs est xe 512 octets, ce qui fait que la taille dun bloc est au moins de
512 octets. De mme, il faut spcier le nombre dinodes de la partition. Il est possible de spcier
ce nombre soit directement, ou dindiquer seulement le nombre doctets de la partition par inode.
Le nombre total dinodes utilis sera alors calcul partir de ce nombre doctets et de la taille de la
partition. Bien entendu, le nombre maximal dinodes possibles est le nombre total de blocs, puisque
tout chier non vide requiert au moins un bloc et que chaque inode caractrise un chier. Si vous ne
savez pas quelles valeurs prendre, vous pouvez utiliser des blocs de 1024 octets (2 secteurs), et un
rapport de 4096 octets par inode (donc de 4 blocs de 1 Ko par inode).
Le systme de chiers EXT3 gre, en plus de tout ce que sait faire le systme de chiers EXT2, un
journal contenant les oprations raliser de manire transactionnelle sur le disque dur. Ces opra-
tions sont excutes de telle sorte que la structure du systme de chiers reste cohrente en toutes
circonstances. Cela implique que le systme de chiers est toujours valide, mme si une panne de
courant se produit pendant une opration disque.
La syntaxe de la commande mke2fs est donne ci-dessous :
mke2fs [-j] fichier
o fichier est le nom du chier spcial de priphrique reprsentant la partition sur laquelle le
systme de chiers doit tre cr. Ce nom est le nom du disque dur, sufx du numro de la partition.
Les numros de partitions commencent 0, si bien que la premire partition du premier disque dur
IDE sera rfrence par le chemin /dev/hda0. Loption -j quant elle est facultative. Lorsquelle
est utilise, le systme de chiers cr est un systme de chiers EXT3. Il est recommand dutiliser
cette option pour tous les systmes de chiers dont on voudra garantir la cohrence, par exemple
pour les systmes de chiers devant contenir des documents ou des informations importantes. Sachez
cependant que la journalisation peut dgrader sensiblement les performances de votre ordinateur,
aussi pouvez-vous vous en passer sur les partitions pour lesquelles un dbit lev est ncessaire (par
exemple pour les partitions devant servir manipuler des chiers vido).
Note : Le systme de chiers EXT3 utilise les mmes structures de donnes que le systme de
chiers EXT2. Il est donc parfaitement compatible avec ce dernier, et un systme de chiers EXT3
peut tre utilis comme un systme de chiers EXT2. En ralit, les mcanismes de journalisation
peut tre activs ou non lors de lopration de montage du systme de chiers, en fonction du
type de systme de chiers indiqu la commande de montage. Nous dtaillerons la manire de
monter les systmes de chiers dans la Section 5.7.4 et dans la Section 6.4.2.
Pour les mmes raisons, il est possible de convertir un systme de chiers EXT2 en systme
de chiers EXT3 a posteriori, laide de loption -j de la commande tune2fs. Cette commande
permet dactiver et de dsactiver des fonctionnalits complmentaires pour ces systmes de
chiers, dont la journalisation fait partie.
Invoque sans autres options, la commande mke2fs prend des valeurs par dfaut pour tous les para-
mtres du systme de chiers cr, mais vous pouvez galement spcier dautres valeurs. La taille
des blocs peut tre indique en octets avec loption suivante :
mke2fs [-j] -b taille fichier
42
Chapitre 4. Installation du systme de base
o taille reprsente la taille dun bloc en octets. De mme, le nombre doctets par inode peut tre
prcis avec lune des options -i :
mke2fs [-j] -i octets fichier
o octets est le rapport de la taille de la partition en octets par le nombre dinodes crer. Il est
possible dindiquer directement ce nombre avec la commande suivante :
mke2fs [-j] -N nombre fichier
Enn, sachez que loption -c permet de demander mke2fs deffectuer une vrication des secteurs
dfectueux du disque dur avant de crer le systme de chiers. Il est fortement recommand dutiliser
cette option lors de la premire cration dun systme de chiers.
4.6. Cration de la partition de swap
En cas de manque de mmoire vive, Linux peut utiliser une partie du disque dur pour y stocker les
donnes temporairement inutilises an de librer de lespace mmoire. Cette opration permet de
continuer travailler, mme si la machine ne dispose pas de sufsamment de mmoire vive pour
excuter tous les processus dont elle a la charge. Linconvnient de cette mthode est videmment la
dgradation des performances, mais cest un bon compromis si lon considre le prix du mga-octet
de mmoire par rapport celui des disques durs dune part, et le fait quil vaut mieux parvenir faire
son travail, mme lentement, que de ne pas le faire du tout.
Lespace disque consacr par Linux pour ce stockage temporaire est appel swap , du terme an-
glais to swap qui fait rfrence lchange des donnes de la mmoire vers le disque dur (et
inversement, lorsquelles sont recharges en mmoire). Linux est capable de grer plusieurs formes
de swap. Il est capable dutiliser des chiers dchange, qui sont stocks dans un systme de chiers,
ou les partitions de swap. Ces dernires ont lavantage dtre bien plus rapides, puisque le noyau na
pas se proccuper de la structure du systme de chiers lors des oprations de swap (qui, rappelons-
le, constituent dj un ralentissement notable de la machine). En revanche, elles ont linconvnient
majeur dtre trs contraignantes, puisquelles ncessitent de rserver une partition pour le swap de
manire permanente. Cependant, il est tout fait acceptable de consacrer 128 ou 256 Mo de disque dur
pour une partition de swap de nos jours. Linux est capable de grer jusqu 8 partitions de swap dont
la taille peut aller jusqu 2 Go chacune, plus les chiers dchange que lon peut rajouter ultrieure-
ment. Nous ne dcrirons que la manire de crer une partition de swap, car les chiers dchange ne
constituent plus le meilleur compromis avec les tailles de disques que lon rencontre de nos jours.
Bien entendu, le programme dinstallation de votre distribution prend certainement dj en charge la
cration des partitions de swap. Il est donc recommand, encore une fois, dutiliser ce programme,
mme si la description qui suit vous permettra de comprendre ce dont il sagit.
Les partitions de swap peuvent tre cres, comme toutes les partitions, laide du programme fdisk.
En fait, la seule distinction entre une partition de swap et une partition rserve un systme de
chiers est tout simplement son identicateur. Comme on la dj vu lors du partitionnement du
disque, lidenticateur utilis pour les partitions de systmes de chiers Linux est 83, et celui pour
les partitions de swap est 82. Vous devrez donc affecter cet identicateur votre partition de swap
lorsque vous partitionnerez votre disque dur. Il est recommand de placer la partition de swap au dbut
du disque dur, car cest cet emplacement que le taux de transfert est le plus lev (et donc cest cet
emplacement quon obtiendra les meilleures performances en cas de manque de mmoire vive).
43
Chapitre 4. Installation du systme de base
Une fois cre, la partition de swap peut tre prpare pour que le noyau puisse lutiliser. Cette pr-
paration revient peu prs formater un systme de chiers, ceci prs que les structures de donnes
crites dans la partition de swap sont beaucoup plus simples car il ne sagit plus ici de stocker une
arborescence complte de chiers. La commande mkswap permet de prparer les partitions pour tre
utilises en tant que partition de swap. Elle sutilise selon la syntaxe suivante :
mkswap -c partition
o partition est la partition prparer pour le swap. Notez que, en ralit, mkswap peut tout aussi
bien travailler sur un chier que sur une partition.
Lorsque la partition aura t prpare pour le swap, il est possible de demander Linux de lutiliser
avec la commande suivante :
swapon partition
o partition est la partition de swap utiliser. Cette zone de swap est alors automatiquement prise
en compte par le systme. La commande suivante permet darrter le swapping sur une partition :
swapoff partition
Normalement, vous naurez jamais utiliser ces commandes manuellement. Le programme
dinstallation de votre distribution congure le swap, et fait en sorte que les partitions de swap sont
charges automatiquement lors du dmarrage de la machine. Notez cependant que cette mthode de
conguration dynamique permet dajouter temporairement un chier dchange si les besoins sen
font sentir, sans avoir redmarrer la machine.
4.7. Installation des composants de base
Si vous tes arriv jusquici, vous avez ni les oprations les plus risques et sans doute les plus
difciles. Dans les premiers jours de Linux, il fallait installer la main les diffrents composants du
systme, voire les recompiler soi-mme. Heureusement, toutes les distributions actuelles disposent
aujourdhui de programmes dinstallation du systme de base, qui simplient beaucoup le travail. Les
oprations que vous allez raliser prsent sont donc plus simples, et certainement moins dange-
reuses.
Lordre logique est videmment de commencer par les couches les plus basses du systme, donc
en particulier le noyau. Cependant, il faut galement installer le shell et les outils complmentaires,
puisque sans eux on ne peut strictement rien faire de ce noyau. Cet ensemble de programme constitue
ce que lon appelle le systme de base. Je suggre de congurer correctement le systme ce stade,
avant de se lancer dans laventure XWindow. Cest videmment cette partie qui sera la plus difcile
raliser. Linstallation de XWindow ne devrait alors pas causer de problme majeur. Une fois ces
oprations ralises, vous pourrez installer les applications. En gnral, lorsque le systme est bien
congur, linstallation des applications est une tche relativement facile et se fait rapidement. Ce
document ne traitera pas en dtail de linstallation des applications, car il y en a trop pour que lon
puisse donner des informations valides pour toutes les applications. Quelques rgles gnrales seront
malgr tout donnes, car elles peuvent sappliquer pour certaines applications.
Toutes les distributions organisent les diffrents composants logiciels quelles fournissent en paque-
tages ( package en anglais). Ainsi, linstallation du systme se fait par groupes homognes de
chiers, et le regroupement dans un paquetage est gnralement une dpendance forte (en pratique,
ce sont les chiers dune mme application). En installant un paquetage, on installe nalement un
44
Chapitre 4. Installation du systme de base
logiciel particulier. Cependant, certains paquetages dpendent dautres paquetages, par exemple, les
paquetages contenant le systme de base sont videmment utiliss par tous les autres paquetages. Les
programmes dinstallation grent relativement bien les dpendances et les conits entre paquetages,
si bien que linstallation peut maintenant se faire sans trop de problmes.
An dorganiser un peu tous ces paquetages, les distributions les trient souvent par sries . Une s-
rie nest rien dautre quun ensemble de paquetages regroups par domaine fonctionnel. Cela signie
que lon peut facilement retrouver un paquetage donn, en allant le chercher dans la srie contenant
tous les paquetages fonctionnellement proches. Le regroupement des paquetages en sries ne signie
absolument pas que tous les paquetages de la srie doivent tre installs pour obtenir une fonctionna-
lit donne, mais que les logiciels qui sy trouvent ont plus ou moins trait cette fonctionnalit. En
fait, il peut mme y avoir redondance ou conit entre deux paquetages dune mme srie. Dans ce
cas, il faut choisir lun ou lautre, selon ses besoins personnels.
Certains paquetages sont indispensables pour le systme, dautres sont purement optionnels. Mais la
plupart des paquetages sont simplement les paquetages des applications, et vous devrez faire le tri
et choisir ceux qui vous intressent parce quil est impensable dinstaller tous les paquetages (une
distribution de Linux peut faire 5 ou 6 CD-ROM, en tenant compte du systme, des applications et
des sources). Les seuls paquetages quil faut imprativement installer sont les paquetages de la srie
de base. En gnral, cette srie porte le nom A, ou AAA, ou quelque chose de similaire, an quelle
puisse toujours tre en tte de liste dans les programmes dinstallation. Cette srie comprend au moins
les paquetages des commandes Unix de base, du shell, du programme dinstallation et de tous les -
chiers ncessaires au fonctionnement du systme (chiers de conguration, scripts et bibliothques
partages). Tant que les programmes de cette srie sont intacts et fonctionnels, le systme est utili-
sable. Sil en manque, les problmes peuvent survenir tout moment : de labsence ou lindisponibilit
de la documentation limpossibilit complte de dmarrer le systme.
Le choix des paquetages installer est crucial mais non dnitif. En effet, si vous avez install un
paquetage dont vous navez pas ou plus besoin, rien ne vous empche de le supprimer par la suite. De
mme, si vous vous apercevez que vous avez oubli dinstaller un paquetage dont vous avez besoin,
vous pouvez linstaller ultrieurement.
Il nest pas possible de donner ici la liste des paquetages que vous devez installer, car cette liste
dpend beaucoup trop de la distribution que vous possdez. Il est conseill de lire le manuel de cette
distribution ou de bien lire les crans daides du programme dinstallation. Cependant, les paquetages
dont vous aurez certainement besoin pour poursuivre linstallation sont sans doute les suivants :
paquetage du systme de base ;
paquetage du compilateur GCC ;
paquetage du rseau ;
paquetage de XWindow ;
paquetage de documentation ;
paquetages susceptibles de faire fonctionner votre matriel (carte son, serveur XWindow appropri
votre carte graphique...).
Gardez lesprit que dans le monde du logiciel libre, les programmes sont souvent distribus sous la
forme de chiers sources et que vous aurez sans doute besoin des outils de dveloppement pour les
compiler et les installer. Veillez donc inclure dofce tous ces outils, mme si vous ne dsirez pas
programmer personnellement. Bien entendu, vous pourrez revenir ultrieurement dans le programme
dinstallation et rinstaller un paquetage si vous lavez oubli pendant la phase dinstallation.
45
Chapitre 4. Installation du systme de base
4.8. Amorage du systme et conguration multiboot
Lorsque vous aurez install votre systme de base, vous devrez faire en sorte quil puisse dmarrer.
Pour cela, il existe plusieurs possibilits, les principales tant les deux suivantes :
soit vous dmarrez partir dune disquette ou dun CD damorage ;
soit vous utiliser un gestionnaire damorage.
Il va de soi que cest la deuxime solution qui est recommande. Cependant, la premire solution
pourra tre utile si daventure votre MBR se trouvait tre cras ou endommag. Seule lutilisation
des gestionnaires damorage de Linux et de Windows NT/2000 et XP sera dcrite ici.
Le gestionnaire damorage le plus utilis sous Linux se nomme LILO (pour LInux LOader ).
LILO permet de dmarrer un grand nombre de systmes, dont DOS, Windows 95/98/Millenium, Win-
dows NT/2000/XP et OS/2. Linux dispose galement dun autre gestionnaire damorage galement
trs performant : le GRUB (abrviation de langlais GRand Unied Bootloader ). Vous tes libre
de choisir celui que vous voulez. Le GRUB est quelque peu plus moderne que LILO, mais le choix du
gestionnaire damorage est ici une question de got. Windows NT, Windows 2000 et Windows XP
disposent galement dun gestionnaire damorage nomm NTLDR , capable de dmarrer dautres
systmes dexploitation. Vous aurez donc galement la possibilit dutiliser ce gestionnaire la place
de LILO ou du GRUB si un de ces systmes est install sur votre machine.
Quel que soit le gestionnaire damorage que vous dsirez utiliser, il vous faudra activer la partition
sur laquelle il est install. Cette opration peut tre ralise laide de lutilitaire fdisk et a dj t
dcrite dans la Section 4.4. Cela permettra au bootstrap loader de slectionner le secteur de boot de
cette partition et de lancer le gestionnaire damorage qui y est install. Bien entendu, cela suppose
que ce gestionnaire soit install sur cette partition, ce qui est normalement le cas (rappelons quil nest
en gnral pas conseill dinstaller le gestionnaire damorage directement sur le MBRdu disque dur).
4.8.1. Ralisation dun multiboot avec LILO
LILO est un gestionnaire damorage extrmement performant, puisquil permet de dmarrer Linux
comme tout autre systme dexploitation trs simplement, en donnant le nom du systme lancer lors
de lamorage. Il est bien entendu possible de lancer un systme par dfaut, et de donner un temps
dattente avant de choisir ce systme si lutilisateur nintervient pas.
LILO est constitu de deux parties. La premire partie peut sinstaller sur le secteur damorage
principal du disque dur ou sur le secteur de boot de nimporte quelle partition. Comme on la dj
indiqu plus haut, il est fortement recommand dinstaller cette partie de LILO sur le secteur de boot
de la partition racine de Linux, an dviter quelle ne soit crase par le DOS ou par une quelconque
version de Windows installe ultrieurement. La deuxime partie de LILO est enregistre directement
dans la partition Linux. Elle contient les informations ncessaires pour pouvoir charger les diffrents
systmes dexploitation grs. Bien entendu, la premire partie est capable de retrouver directement
la deuxime sur le disque dur de manire autonome car, lors de lamorage, les systmes de chiers
de Linux ne sont pas encore chargs.
LILO utilise le chier de conguration /etc/lilo.conf pour y retrouver tous ses paramtres de
conguration. Ce chier contient la description des diffrents systmes dexploitation que LILO doit
proposer au dmarrage. Vous pourrez consulter ce chier avec un des nombreux diteurs de chiers
texte prsents sur toute installation de Linux. Toutefois, si vous installez Linux pour la premire fois,
il est possible que vous nen connaissiez aucun et que vous soyez un peu perdu. Cela est normal, et
dans ce cas je vous recommande de vous familiariser un peu avec le systme et lenvironnement uti-
lisateur avant de vous lancer dans ldition de ce chier. Il existe bon nombre dditeurs graphiques
46
Chapitre 4. Installation du systme de base
ou en mode texte et il est hors de question de tous les dcrire ici. Toutefois, toutes les distribu-
tions Linux installent un diteur historique, jai nomm laffreux vi . Cet diteur nest pas du tout
convivial pour les nouveaux utilisateurs, mais il dpannera toujours quand tous les autres seront in-
utilisables ou inaccessibles. En fait, on nit mme par lapprcier lusage... La manire dutiliser
vi sera dcrite ultrieurement, dans le chapitre donnant les notions de base dUnix la Section 5.8.
Vous devriez donc jeter un coup dil cette section si vous dsirez modier immdiatement le -
chier /etc/lilo.conf, ou revenir ultrieurement la prsente section une fois que vous vous serez
familiaris avec un autre diteur.
Quoi quil en soit, les options les plus importantes du chier /etc/lilo.conf sont les suivantes :
loption boot, qui permet dindiquer sur quel secteur damorage LILO doit sinstaller. Cette op-
tion suit la syntaxe suivante :
boot = destination
o destination est le nom dun chier spcial de priphrique sur lequel LILO va sinstaller. Ce
nom peut identier un disque dur (comme par exemple /dev/hda), auquel cas LILO va sinstaller
sur le MBR de ce disque (cest--dire sur le MBR du premier disque du premier contrleur de
disques IDE dans notre exemple), ou une partition (comme /dev/hda2). Dans ce cas, LILO
sinstalle sur le secteur de boot de cette partition (la deuxime partition du premier disque dur
IDE dans notre exemple). Rappelons quil est recommand dinstaller LILO sur le secteur de boot
de la partition racine de Linux ;
loption read-only permet de demander au noyau de monter le systme de chiers racine en
lecture seule lors du dmarrage. Cette option est ncessaire pour que les scripts de dmarrage du
systme puissent effectuer les vrications du systme de chiers de cette partition si ncessaire.
La partition sera remonte en lecture et en criture une fois ces vrications ralises ;
loption prompt, qui permet LILO de demander le systme lancer chaque dmarrage. Cette
option force donc lapparition du message dinvite de LILOau dmarrage : LILO boot: auquel
on pourra rpondre en tapant le nom de la conguration lancer ;
loption timeout, qui permet de xer un dlai au del duquel LILO lancera la premire congu-
ration dnie dans le chier lilo.conf. La syntaxe de cette option est la suivante :
timeout = diximes
o diximes est le nombre de diximes de seconde attendre avant le lancement du systme ;
loption keytable, qui donne la possibilit de spcier un chier de tradution des codes de ca-
ractre envoys par le BIOS (qui suppose gnralement que le clavier utilise la disposition dun
clavier amricain) en les codes de caractre qui seraient envoys par un BIOS localis. Cette option
permet donc de rednir la disposition des touches du clavier pour prendre en compte les claviers
non-amricains. La syntaxe de cette option est la suivante :
keytable = fichier
o fichier est le chemin sur un chier de traduction de clavier pour LILO. Un tel chier peut
tre gnr par le script keytab-lilo.pl laide des chiers de dnition des claviers de Linux
(gnralement installs dans le rpertoire /usr/lib/kbd/keymaps/). La ligne de commande
utiliser pour ce script est la suivante :
keytab-lilo.pl us local > fichier
o us est le nom du chier de dnition de clavier Linux pour la disposition utilise par le BIOS
(donc, effectivement, la disposition dun clavier amricain en gnral), local est le nom du chier
de dnition de clavier pour la disposition du clavier rellement utilise, et fichier est le nom
du chier de traduction des codes gnrer. Par exemple, la cration de ce chier pour le clavier
franais se ferait avec la commande suivante :
47
Chapitre 4. Installation du systme de base
keytab-lil.pl us fr-latin1 > /boot/fr-latin1.klt
Remarquez que cette technique de traduction de clavier souffre dun inconvnient majeur, puisque
les combinaisons de touches qui ne sont pas valides dans la disposition amricaine des claviers ne
peuvent pas tre converties. Si lune de ces combinaisons doit tre utilise, il faut abandonner lide
dutiliser loption keytable.
La suite du chier lilo.conf dcrit les diffrentes congurations que LILO peut lancer. Les sections
de conguration permettant de charger Linux ont le format suivant :
image = noyau
root = root_device
label = nom
o noyau est le chemin complet sur le noyau de Linux charger, root_device est le nom complet
du chier spcial de priphrique contenant le systme de chier racine et nom est le nom de la
conguration tel quil devra tre saisi linvite de LILO. Lexemple donn ci-dessous permet de
charger le noyau /boot/vmlinuz en utilisant la partition /dev/hda2 comme partition racine :
image = /boot/vmlinuz
root = /dev/hda2
label = linux
Si vous dsirez crer une section de conguration permettant de lancer un autre systme dexploitation
que Linux (DOS ou Windows par exemple), vous pouvez utiliser la possibilit de passer le relai au
chargeur de ces systmes, quil sagisse dun simple secteur de boot ou dun gestionnaire damorage
complet. Cela se fait avec la syntaxe suivante :
other = partition
table = disque
loader = relai
label = nom
o partition est la partition sur laquelle le secteur de boot de lautre systme est install, disque
est le disque dur contenant la table des partitions utilise par ce systme, relai est le nom dun
chargeur spcial permettant de simplement passer la main au chargeur du systme, et nom est le nom
de la conguration. Le chargeur utiliser pour demander LILO de passer le relai au chargeur de
lautre systme dexploitation est le chargeur contenu dans le chier chain.b de LILO. Ce chier
se trouve gnralement dans le rpertoire /boot/, aussi doit-on spcier /boot/chain.b pour le
champ relai.
Note : Prenez garde au fait que Windows NT/Windows 2000/XP installent NTLDR dans la pre-
mire partition laquelle il savent accder en gnral. Donc, si un DOS ou Windows 95, Windows
98 ou Millenium est install en premier, ils installeront NTLDR dans la partition de ces systmes.
Dans ce cas, la conguration permettant de lancer le DOS ou le Windows 95, Windows 98 ou
Millenium qui se trouve sur cette partition risque fort de lancer NTLDR qui proposera, son tour,
de lancer les diffrents systmes dexploitation Microsoft installs.
Cela peut tre relativement gnant et peut tre corrig en dplaant NTLDR sur la partition de
Windows NT/Windows 2000/XP et en reconstruisant les secteurs de boot des diffrentes partition
pour que leur chargeurs soccupent de leurs systmes respectifs, mais il sagit l dune opration
extrmement technique dune part, et qui ne concerne absolument pas Linux dautre part. Cela
ne sera donc pas dcrit dans ce document. Il existe toutefois des documents sur Internet qui
48
Chapitre 4. Installation du systme de base
dcrivent la manire de procder et je vous invite vous y rfrer (avec une prudence extrme
cependant).
Lexemple donn ci-dessous permet de donner la possibilit de charger Linux ou Windows NT, en
lanant Linux par dfaut au bout de 10 secondes. Windows NT est install sur la troisime partition,
et Linux utilise la deuxime et la quatrime partition respectivement pour y stocker sa partition racine
et la partition des rpertoires personnels des utilisateurs. LILO est ici install sur la partition racine de
Linux :
# Exemple de fichier de configuration /etc/lilo.conf :
# Options gnrales :
boot = /dev/hda2
read-only
prompt
timeout=100
keytable = /boot/fr-latin1.klt
# Premire configuration (Linux) :
image = /boot/vmlinuz
root = /dev/hda2
label = linux
# Deuxime configuration (NT) :
other = /dev/hda3
table = /dev/hda
loader = /boot/chain.b
label = NT
Linstallation de LILO est trs simple une fois que lon a crit le chier lilo.conf. En effet, il suft
tout simplement de taper la commande suivante :
lilo [-L]
Loption -L permet de demander LILO dutiliser le mode dadressage LBA pour accder au disque
dur pendant la phase damorage. Cette option est ncessaire si vous disposez dun grand disque dur
et que certaines partitions disposant de systmes lancer sont situes au del du cylindre 1024. Il est
recommand de lutiliser systmatiquement tant donn les tailles des disques durs actuels.
Note : Comprenez bien que si votre BIOS est incapable dutiliser le mode LBA ou le si bootstrap
loader est incapable dutiliser ce mode, cette option ne vous sera daucune utilit. En effet, dans
ce cas, le bootstrap loader ne parviendrait mme pas charger le secteur de boot de la partition
Linux. Cest pour cette raison quil a t recommand de placer la partition du systme principal
en de de cette limite des 1024 cylindres. Cette limitation est donc bien une limitation du BIOS,
mais vous ne devriez plus rencontrer ce genre de problme que sur de vieilles machines sur
lesquelles un nouveau disque dur de grande capacit a t install.
Si lilo signale une erreur, il vaut mieux ne pas insister et corriger le chier lilo.conf.
Lorsque la machine dmarre, LILO afche son invite de dmarrage : LILO boot:
49
Chapitre 4. Installation du systme de base
Il attend ici que vous indiquiez le nom du systme que vous dsirez dmarrer. Vous devez ici taper le
nom du systme charger et valider : LILO boot:linux
Si vous ne tapez rien, et que vous avez donn un dlai dattente dans le chier de conguration de
LILO, la premire conguration sera lance automatiquement aprs ce dlai.
LILO permet de spcier des paramtres de dmarrage complmentaires pour Linux la suite du
nom de la conguration qui permet de le lancer. Ces paramtres servent principalement renseigner le
noyau sur la conguration matrielle (en particulier les ports dentre/sortie et les lignes dinterruption
des priphriques non Plug and Play), pour le cas o il ne parviendrait pas les dterminer automa-
tiquement. Lun des paramtres les plus intressants est sans doute mem, qui permet dindiquer au
noyau la taille de la mmoire vive dont dispose lordinateur. Ce paramtre peut tre ncessaire si vous
disposez de plus de 64 Mo de mmoire, parce que les fonctions du BIOS ne permettent pas dindiquer
les tailles de mmoire plus grandes (la plupart des BIOS rcents nont toutefois plus ce problme). Par
exemple, si votre ordinateur dispose de 256 Mo de mmoire, vous devrez taper la ligne de paramtres
suivante au dmarrage : LILO boot:linux mem=256M
Bien entendu, il est possible denregistrer ces paramtres dans le chier de conguration de LILO
an de ne pas avoir les saisir chaque dmarrage. Pour cela, il suft dindiquer le paramtre de
dmarrage du noyau dans une ligne append de la section de conguration de Linux :
append="paramtre"
Ainsi, la section de conguration de Linux du chier lilo.conf exemple donn ci-dessus pourrait
tre remplace par celle-ci sur une machine disposant de 256 Mo de mmoire :
# Premire configuration (Linux) :
image = /boot/vmlinuz
root = /dev/hda2
label = linux
append="mem=256M"
La liste des paramtres que lon peut fournir au noyau est relativement grande et ne sera pas dcrite
ici. Les plus utiles seront prsents en temps et en heure, notamment dans le chapitre dcrivant la
conguration du systme.
4.8.2. Ralisation dun multiboot avec le GRUB
Le GRUB (abrviation de langlais GRand Unied Bootloader ) est le gestionnaire damorage
dvelopp par la Free Software Foundation pour amorcer le noyau Hurd du projet GNU. Il est capable
de faire dmarrer tous les systmes utilisant un protocole de dmarrage standard initialement dni
pour le Hurd. Bien entendu, il sait aussi amorcer les systmes Linux, qui nutilisent pas ce protocole,
ainsi que la plupart des autres systmes dexploitation en passant le relai leurs propres gestionnaires
damorage.
En fait, le GRUB fournit la possibilit de contrler totalement lamorage de son systme par
lintermdiaire dun interprteur de commandes simpli. Il est possible, par lintermdiaire de cet
interprteur de commandes, deffectuer nombre doprations dans le but de charger un noyau de
systme dexploitation et de lamorcer. Bien entendu, ces commandes peuvent tre crites dans un
chier de conguration an dautomatiser le processus de chargement.
50
Chapitre 4. Installation du systme de base
Le GRUB est normalement install dans le rpertoire /boot/grub/. Ce rpertoire contient, outre les
chiers binaires du GRUB lui-mme, son chier de conguration. Ce chier se nomme normalement
menu.lst, en raison du fait quil permet de dnir les diffrentes congurations correspondantes aux
systmes dexploitation charger et qui apparatront dans le menu de dmarrage lors de lamorage
de la machine.
Contrairement LILO, qui enregistre lemplacement des chiers des diffrents noyaux charger dans
une liste de blocs du disque dur, le GRUB sait interprter les systmes de chiers classiques de Linux.
En particulier, il est capable de retrouver son chier de conguration et les chiers images des noyaux
Linux dans les systmes de chiers FAT, EXT2/EXT3 et ReiserFS. Cette particularit fait quil nest
pas ncessaire, lorsquon modie le chier de conguration menu.lst, de rinstaller le GRUB.
Tout comme le chier de conguration de LILO, le chier menu.lst se compose dune partie conte-
nant les options globales et dune ou plusieurs parties contenant la description des diffrents systmes
dexploitation proposer au dmarrage. Les options gnrales les plus utiles sont les suivantes :
loption default, qui permet de spcier la conguration par dfaut charger. Cette option doit
tre suivi du numro de cette conguration. Les congurations sont numrotes partir de 0, dans
leur ordre dapparition dans le chier de conguration ;
loption timeout, qui permet de spcier le dlai dattente avant que la conguration par dfaut
spcie par loption default ne soit lance.
Les congurations spciques aux systmes dexploitation suivent la syntaxe suivante :
title titre
root partition
kernel noyau options
o titre est le titre de la conguration tel quil doit apparatre dans le menu de dmarrage du GRUB,
partition est la partition dans laquelle se trouve le noyau charger, et noyau est le chemin sur le
chier image de ce noyau dans cette partition. Attention, ce chemin est dni dans la partition elle-
mme et peut donc tre diffrent du chemin utilis sous Linux. En effet, il faut dnir ce chemin par
rapport au point de montage de la partition, faute de quoi le GRUB ne retrouverait pas le chier image
du noyau charger.
Comme le GRUB nest pas un chargeur spcique Linux mais a t crit au contraire avec comme
principal objectif une gnricit absolue, la manire de spcier la partition dans laquelle le noyau
se trouve utilise une syntaxe diffrente de celle utilise sous Linux. Cette syntaxe, propre au GRUB
donc, est la suivante :
(hdn,m)
o n est le numro du disque dans lordre numr par le BIOS de la machine et m est le numro
de la partition. Ce dernier numro est facultatif (ainsi que la virgule qui le prcde), ce qui permet
de rfrencer un disque complet et non une partition. La numrotation des disques et des partitions
commence toujours 0 dans le GRUB, ce qui fait que la premire partition du premier disque est
rfrence par (hd0,0), la deuxime partition du premier disque par (hd0,1), la premire partition
du deuxime disque par (hd1,0), etc.
Tout comme avec LILO, il est possible de spcier des options de dmarrage qui devront tres fournies
au noyau. Ces options devront tre spcies immdiatement aprs le nom de limage du noyau.
Comme vous pouvez le constater, la dnition dune conguration de dmarrage pour un systme
Linux est trs simple, puisquil suft quasiment de donner la ligne de commande pour lancer ce
51
Chapitre 4. Installation du systme de base
noyau ! Par exemple, pour charger le noyau /boot/vmlinuz dun systme situ sur la deuxime
partition du premier disque, la conguration suivante doit tre dnie :
title Linux
root (hd0,1)
kernel /boot/vmlinuz mem=256M
Cet exemple prsente galement comment spcier la taille de la mmoire disponible dans la machine
(cela nest normalement pas ncessaire avec les BIOS rcents et avec le GRUB).
Bien entendu, le GRUB est capable de charger le secteur de boot dune partition an de passer le relai
au gestionnaire damorage dun autre systme dexploitation. Pour cela, il faut utiliser la commande
chainloader, plutt que la commande kernel, dans la description de la conguration de dmarrage
de ce systme. La forme gnrale dune conguration de ce type est donc la suivante :
title titre
root partition
chainloader +1
Le +1 qui suit la commande chainloader indique au GRUB de charger le premier secteur de la par-
tition indique par la commande root et dexcuter le gestionnaire damorage normalement stock
dans ce secteur. Comme pour les congurations Linux, la syntaxe utilise pour spcier la partition
o ce secteur est situ est la syntaxe du GRUB et non celle utilise sous Linux.
Le chier de conguration dexemple suivant correspond au chier de conguration de LILO vu
dans la section prcdente. Il permet de dmarrer un Linux install sur la deuxime partition ou un
Windows NT install sur la troisime partition du premier disque dur de la machine :
# Exemple de fichier de configuration /boot/grub/menu.lst :
# Options gnrales :
default 0
timeout 10
# Premire configuration (Linux) :
title Linux
root (hd0,1)
kernel /boot/vmlinuz root=/dev/hda2 mem=256M
# Deuxime configuration (NT) :
title NT
root (hd0,2)
chainloader +1
Linstallation du GRUB sur une nouvelle machine ne pose quant elle pas de problme particu-
lier. Il suft de sassurer que le chier de conguration menu.lst se situe bien dans le rpertoire
/boot/grub/, de mme que les chiers binaires du GRUB. Ces chiers sont respectivement les -
chiers stage1, stage2 et tous les chiers *_stage1_5. Sils ne sy trouvent pas, vous pourrez les
copier partir du rpertoire /usr/share/grub/i386-pc/, dans lequel le programme dinstallation
du GRUB les place par dfaut.
Lorsque tous les chiers sont en place, il ny a plus qu lancer le GRUB en mode interactif avec la
commande suivante :
grub
52
Chapitre 4. Installation du systme de base
et dnir le secteur o il doit installer son chier damorage principal stage1 (cest--dire dans
le secteur de boot dune partition ou directement sur le MBR du premier disque dur). Pour cela, vous
devrez utiliser les deux commandes suivantes :
root source
setup destination
source est ici la partition o est install le GRUB (il sagit donc de la partition o se trouvent le
rpertoire /boot/grub/), et destination est le disque dur ou la partition dont le premier secteur
doit recevoir le code damorage du GRUB. Ces deux informations doivent suivre la syntaxe utilise
par le GRUB pour spcier les disques durs et les partitions. Par exemple, pour installer le GRUB sur
le secteur de boot de la deuxime partition du premier disque dur, on utilisera les deux commandes
suivantes :
root (hd0,1)
setup (hd0,1)
Cet exemple suppose que le GRUB est galement install dans cette partition. Si ce nest pas le cas
pour vous, vous devrez modier la partition spcie dans la commande root. Vous pourrez quitter le
grub avec la commande quit une fois linstallation termine.
4.8.3. Ralisation dun multiboot avec NTLDR
Le gestionnaire damorage de Windows NT, Windows 2000 et XP se nomme NTLDR . Ce ges-
tionnaire damorage permet de dmarrer ces systmes, bien entendu, mais galement les autres sys-
tmes dexploitation les plus courants, dont Linux. Cette section ne traitera bien entendu que de la
manire dutiliser NTLDR pour dmarrer Linux, pour de plus amples informations sur la manire
dajouter les autres systmes dexploitation, veuillez consulter la documentation de Microsoft.
Tout comme LILO, NTLDR dispose dun chier de conguration qui permet de dcrire les diffrentes
options de son menu de dmarrage. Il sagit du chier boot.ini, qui est normalement plac la
racine du disque o NTLDR est install. Il sagit donc gnralement du rpertoire racine du disque
C:\.
Le chier boot.ini contient la dnition du systme dexploitation lancer par dfaut et du dlai
dattente attendre avant de le slectionner. Ces deux informations sont crites dans la section [boot
loader] du chier et sont introduites respectivement par les options default et timeout. La valeur
de loption default doit tre lune des entres de la section [operating systems], qui contient
la dnition de tous les systmes dexploitation que NTLDR devra proposer au dmarrage.
La syntaxe des entres pour les systmes dexploitation dans la section [operating systems] est
la suivante :
emplacement = "Nom"
o emplacement est la description de lemplacement o se trouve le systme dexploitation, et Nom
est le nom avec lequel ce systme devra apparatre dans le menu de dmarrage de NTLDR. Cette syn-
taxe est trs simple, mais pour les systmes NT4, Windows 2000 et XP, la dnition de lemplacement
du systme est assez complique. En effet, elle ncessite de dnir compltement le disque physique
et sa partition, ainsi que le rpertoire du systme. Pour les autres systmes dexploitation, le plus
simple est de spcier un chier contenant limage du secteur de boot de leur partition, et de laisser
leur chargeur prendre en charge leur amorage.
53
Chapitre 4. Installation du systme de base
Pour cela, il faut bien entendu disposer dun tel chier. Il faut donc copier le premier secteur de la
partition du systme dans un chier accessible NTLDR, donc, en pratique, situ dans le rpertoire
C:\. Vous pourrez extraire le contenu du secteur de boot de votre partition Linux avec la commande
suivante sous Linux :
dd if=/dev/hda3 of=linux.sec bs=512 count=1
Cette commande suppose que LILO ait t install sur la partition /dev/hda3. Elle permet de lire
un bloc de 512 octets de la troisime partition du premier disque dur et de lenregistrer dans le chier
linux.sec. Vous pourrez ensuite transfrer ce chier dans le rpertoire C:\ de Windows, soit en
passant par une partition FAT, soit tout simplement laide dune disquette (rappelons que le systme
de chiers NTFS nest utilisable quen lecture seule sous Linux).
Une fois ce chier obtenu, vous pourrez simplement ajouter la ligne suivante dans votre chier
boot.ini :
C:\linux.sec="Linux"
Le contenu de votre chier boot.ini devrait alors ressembler ceci :
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professionnel" /fastdetect
C:\linux.sec="Linux"
Vous devriez alors pouvoir dmarrer Linux directement partir du menu de dmarrage de NTLDR.
Note : Prenez soin utiliser un nom court pour le chier contenant le secteur de Linux (cest-
-dire un nom ne comprenant pas plus de huit caractres et une extension dau plus trois car-
actres). En effet, Windows, mme dans ses versions les plus rcentes, a toujours du mal
prendre en charge les noms longs et il se peut que le gestionnaire damorage NTLDR ne puisse
pas localiser le chier si vous ne respectez pas cette rgle.
54
Chapitre 5. Commandes Unix de base
Si vous tes parvenu installer les paquetages de la srie de base, vous disposez dun systme Linux
fonctionnel. Flicitations ! Maintenant, il va falloir le congurer... Autant vous prvenir tout de suite :
cette opration demande beaucoup de temps et de patience, moins davoir une machine vraiment
standard et une chance phnomnale. Mais pour cela, il va falloir que vous appreniez les commandes
Unix de base et la manire dutiliser un systme Linux en ligne de commande (cest--dire en mode
texte, sans XWindow).
5.1. Login et dconnexion
Comme il la dj t dit, Linux est un systme multiutilisateur. Il faut donc que chacun sidentie
pour que le systme puisse fonctionner correctement. Cette opration est ralise lors de lopration
dite de login (du verbe anglais to log in , qui signie senregistrer dans le systme). Le lo-
gin consiste essentiellement taper son nom dutilisateur, valider, et rpondre ventuellement la
demande de mot de passe de la part du systme.
Le login doit tre la premire opration effectuer. Il est impossible daccder au systme dune autre
manire, et la vrication du mot de passe fournit lauthenticit de lutilisateur qui se logue. Ainsi,
le systme sait en permanence au nom de quelle personne il effectue les oprations demandes. Cette
opration est la base des mcanismes de scurit et de personnalisation du systme pour chaque
utilisateur.
Il existe deux types de login. Le plus courant est le login en mode texte, qui peut tre fait directement
sur le poste local ou travers un rseau. Le systme vous invite vous identier avec la ligne suivante :
login:
Dautres informations peuvent tre afches avant le mot login, qui peuvent vous renseigner sur
la nature du systme. Quoi quil en soit, vous devez taper votre nom dutilisateur (que lon appelle
simplement login ), ou root si vous dsirez vous connecter en tant quadministrateur. Le systme
vous demande alors le mot de passe avec la ligne suivante :
password:
Bien entendu, vous ne devrez jamais oublier votre mot de passe administrateur. Si toutefois cela
vous arrive, vous naurez plus quune seule solution : dmarrer lordinateur partir dune disquette
systme, et faire le mnage dans le chier de mots de passe. Cette opration nest jamais trs agrable
raliser. Conclusion : noubliez jamais votre mot de passe.
Le deuxime type de login est le login graphique, sous X11. Ce type de login a en gnral lieu sur
un terminal X (cest--dire un terminal graphique). La procdure peut varier selon lenvironnement
utilis, mais le principe reste toujours le mme : il faut fournir son nom dutilisateur et son mot de
passe.
55
Chapitre 5. Commandes Unix de base
Si, comme la plupart des gens, vous ne cherchez pas utiliser votre ordinateur distance travers
un rseau, vous vous connecterez quasiment toujours en local. Linux fournit, pour lutilisateur local,
plusieurs terminaux virtuels. Cela signie quil est possible de se connecter plusieurs fois dans le
systme dans des terminaux diffrents. Pour passer dun terminal virtuel un autre, il suft de taper les
combinaisons de touches ALT+DROITE ou ALT+GAUCHE, o DROITE et GAUCHE sont respectivement
les ches du curseur droite et gauche. Il est galement possible daccder un terminal donn laide
de la combinaison de touches ALT+Fn, o Fn est lune des touches de fonction F1, F2, F3, etc. La
plupart des distributions utilisent au moins quatre terminaux virtuels, plus un terminal X. Le terminal
X est le terminal graphique, qui fonctionne sous XWindow. Vous noterez sans doute que lorsquon
est sous XWindow, les combinaisons ALT+Fn ont une autre signication. Elles ne peuvent donc pas
tre utilises pour basculer vers les terminaux en mode texte. Pour remdier ce problme, une autre
combinaison de touches a t dnie, spcialement pour XWindow : CTRL+ALT+Fn. Il suft donc
simplement dutiliser la touche CTRL en plus de la touche ALT.
Lutilisation des terminaux virtuels est trs pratique, mme pour un seul utilisateur. En effet, ceux-ci
permettent de lancer plusieurs programmes simplement, raison dun par terminal virtuel, et de sy
retrouver ainsi plus facilement. Pour ceux qui ne connaissent pas les systmes Unix, il est recommand
de jouer un peu avec les terminaux virtuels an de simuler la prsence de plusieurs utilisateurs. Ils
auront ainsi un aperu de la puissance de ces systmes.
Lorsquon a ni de travailler, il faut se dconnecter. Cette opration est trs simple pour les terminaux
non graphiques, puisquil suft de taper la commande suivante :
logout
Si daventure cette commande ne fonctionnait pas, vous pourrez utiliser la commande exit ou la
combinaison de touches CTRL+d, qui terminent le shell courant (y compris le shell de login).
Pour les terminaux X, le processus de dconnexion dpend de lenvironnement utilis. Il faut ttonner
un peu, et normalement on trouve une option de menu du style logout ou dconnexion . Vous
pouvez par exemple cliquer sur le bouton droit de la souris sur le bureau de lenvironnement de travail,
an dappeler un menu contextuel. Dans bien des cas, ce menu contient une option de dconnexion.
Il est trs important de se dconnecter et de ne jamais laisser une session ouverte. En effet, cette
ngligence peut vous coter cher, car une personne mal intentionne pourrait trs bien utiliser ce
terminal vos dpends. Il aurait tous vos droits, et effectuerait ses oprations en votre nom. La scurit
du systme garantissant que vous seul pouvez vous connecter sous ce nom, grce au mot de passe,
vous seriez donc responsable des agissements de lintrus. Bien entendu, ce genre de considration na
pas autant dimportance pour un particulier que dans une entreprise ou une collectivit quelconque.
5.2. Arrt et redmarrage du systme
Il faut bien comprendre que Linux, tout comme la plupart des systmes dexploitation modernes, ne
peut pas tre arrt en teignant directement lordinateur, comme on le faisait autrefois avec le DOS.
En effet, la plupart des systmes dexploitation utilisent une partie de la mmoire de lordinateur pour
y stocker temporairement les donnes qui ont t lues partir du disque et celles qui doivent y tre
crites. Cette zone de mmoire constitue ce quon appelle un tampon ( buffer en anglais), et elle
sert acclrer les accs aux priphriques plus lents, que sont les disques durs et lecteurs de CD-
ROM. Il va de soi quune requte de lecture sur des donnes dj situes en mmoire est inniment
plus rapide que si elles ne sy trouvaient pas. Il est en revanche plus difcile de comprendre pourquoi
les requtes dcriture doivent tre diffres. La raison est la suivante : le systme prfre diffrer
56
Chapitre 5. Commandes Unix de base
lcriture physique sur le disque parce quune autre requte dcriture dans la mme zone du disque
peut trs bien avoir lieu ultrieurement. Si les donnes qui nont pas t crites sont ainsi modies
par une requte ultrieure, il nest plus ncessaire de les crire, et ainsi le systme peut conomiser
un temps prcieux en ne le faisant pas. Si les donnes crire sont contigus celles dune requte
prcdente, le systme peut les crire en bloc, ce qui est toujours plus rapide que de faire plusieurs
critures partielles (notamment parce que les ttes de lecture du disque nont pas tre dplaces).
Enn, si les donnes qui doivent tre crites font lobjet dune requte de lecture, il va de soi quelles
sont immdiatement accessibles. On voit que cette stratgie permet de travailler beaucoup plus vite.
De facto, Linux utilise toute la mmoire vive libre pour ses tampons dentres / sorties, ce qui en fait
un systme extrmement performant. Le gain en performances peut facilement atteindre un facteur 3
ou 4.
Le problme majeur est videmment que si lon teint lordinateur brutalement, les donnes dont
lcriture a t diffre sont perdues. Pire, parmi ces donnes, il est probable quil y ait des informa-
tions vitales pour le systme de chiers, ce qui fait quil risque fort dtre endommag. Les systmes
de chiers journaliss comme EXT3 et ReiserFS sont labris de ce type derreur en raison de laccs
transactionnel aux structures de donnes du systmes de chiers quils utilisent, et le systme parvient
gnralement rparer les autres systmes de chiers lors de la vrication qui est lance au red-
marrage suivant de la machine, mais il est inutile de prendre des risques. Tout cela signie quil est
impratif de prvenir le systme avant de larrter, pour quil puisse crire les donnes situes dans
ses tampons.
Larrt du systme est une opration qui est du ressort de ladministrateur. On ne peut donc le raliser
que sous le compte root. Plusieurs commandes sont disponibles, les plus simples sont donnes ci-
dessous :
halt, qui permet darrter le systme.
reboot, qui permet de le redmarrer.
Ces commandes sont en fait des scripts permettant deffectuer les oprations darrt et de redmarrage
du systme rapidement. Si elles ne sont pas disponibles sur votre distribution, vous devrez sans doute
utiliser la commande gnrique suivante :
shutdown [-r] now
o loption -r permet de demander un redmarrage et non un arrt simple.
Il est galement possible que votre gestionnaire de bureau vous donne le moyen darrter lordinateur
par lintermdiaire de linterface graphique de X11. La technique utiliser dpend videmment de
lenvironnement que vous aurez install, et elle ne sera pas dcrite ici. Consultez la documentation de
votre distribution pour plus de dtails ce sujet. De plus, la plupart des distributions provoquent un
redmarrage de la machine lorsquon appuie sur les touches CTRL+ALT+SUPPR simultanment dans
un terminal virtuel.
5.3. Pages de manuel
Maintenant que vous savez lessentiel pour conserver votre systme en bon tat, nous allons traiter
des autres commandes Unix. Parmi elles, il en est qui sont certainement fondamentales : ce sont les
commandes qui permettent dobtenir de laide !
57
Chapitre 5. Commandes Unix de base
Chaque commande Unix a une page de manuel qui la dcrit. Ces pages sont trs souvent crites en
anglais, mais elles sont trs prcises et fournissent toutes les informations dont on peut avoir besoin.
Pour afcher la page de manuel dune commande, il suft dutiliser la commande suivante :
man page
o page est la page de manuel de la commande sur laquelle on cherche des informations. En gnral,
le nom de la page de manuel est le mme que celui de la commande. Par exemple, pour afcher laide
sur la commande cp, il suft de taper :
man cp
Lorsquune page de man est afche, il est possible de faire dler son texte laide des touches du
curseur. Pour quitter laide, il suft dappuyer sur la touche q.
Les pages de man sont classes en groupes de pages thmatiques, chaque groupe tant identi g-
nralement par un numro ou une lettre. Si la page de man afche ne correspond pas celle d-
sire, cest quune page homonyme dun autre groupe a t utilise. Dans ce cas, il faut prciser
lidenticateur du groupe de pages de manuel avant le nom de la page afcher :
man groupe page
o goupe est lidenticateur du groupe auquel la page de manuel appartient. Les principaux groupes
sont les suivants :
Tableau 5-1. Groupes de pages de man
Identicateur Type de pages de manuel
1 Commandes utilisateur
2 Appels systmes (programmation en C)
3 Fonctions de la bibliothque C
4 Description des chiers spciaux
5 Description des chiers de conguration
6 Jeux et programmes divers
7 Programmes systmes divers
8 Administration systme
Si vous ne savez pas dans quel groupe se trouve une page de manuel, vous pouvez utiliser loption
-k, qui permet dafcher lensemble des pages disponibles portant ce nom :
man -k commande
Lidenticateur du groupe est en gnral prcis entre parenthses, la suite du nom de la page de
manuel.
Il se peut galement que vous recherchiez de laide sur un sujet donn, mais que vous ne connaissiez
pas le nom exact de la page de manuel qui en parle. Pour ce genre de recherche, vous pourrez uti-
liser le programme apropos, qui recherchera toutes les pages de manuel qui contiennent un mot cl
58
Chapitre 5. Commandes Unix de base
particulier. Ce programme sutilise avec la syntaxe suivante :
apropos mot
o mot est le mot cl rechercher dans toutes les pages de manuel.
La commande man est la commande daide standard sur tous les systmes Unix. Cependant, Linux
utilise un grand nombre de commandes crites sous la licence GNU, et qui utilisent un format daide
spcique GNU. Laide pour ces commandes peut tre obtenue par la commande suivante :
info commande
Il se peut que les deux mthodes fonctionnent. Dans ce cas, la page de man sera certainement moins
rcente que la page dinfo, car la commande que vous utilisez est sans aucun doute une commande
GNU, qui a t fournie avec sa page dinformation. Il est donc recommand de lire plutt la page
dinformation GNU.
Le format daide GNU est plus riche que celui de man, puisquil permet de naviguer dans le systme
daide laide de liens hypertextes. Ces liens sont organiss hirarchiquement, avec des chapitres et
des sous-chapitres. Chaque chapitre dispose dune forme de table des matires constitue de menus,
qui permettent daccder aux sous-chapitres. Les menus se distinguent du texte normal par un ast-
risque ( * ) en dbut de ligne dans la table des matires. Les commandes clavier suivantes pourront
vous tre utiles pour naviguer dans la hirarchie du systme daide de GNU :
la touche de tabulation permet de passer au lien hypertexte suivant ;
la touche n (pour Next ) permet de passer au chapitre suivant ;
la touche p (pour Previous ) permet de revenir au chapitre prcdent ;
la touche u (pour Up ) permet de remonter dun niveau dans le systme daide et datteindre la
table des matires rfrenant le chapitre courant.
Enn, la commande q permet de quitter le systme daide.
5.4. Oprations de base sur les rpertoires
Ce paragraphe va vous dcrire les oprations de base quil faut savoir faire pour manipuler les rper-
toires du systme de chiers.
La premire commande est videmment celle qui permet de lister le contenu dun rpertoire. Elle
dispose dun grand nombre doptions :
ls [options] [fichier]
o fichier est le nom dun chier ou dun rpertoire que lon dsire lister. Si ce paramtre est
absent, ls afchera tous les chiers du rpertoire courant. Les principales options sont -l, qui permet
dafcher des informations tendues (notamment les propritaires, les groupes, les droits, la taille et
ventuellement les liens), et -a, qui permet dafcher tous les chiers, y compris les chiers cachs
(ceux dont le nom commence par un point).
La deuxime commande est celle qui permet de changer de rpertoire courant. Sa syntaxe est trs
simple :
59
Chapitre 5. Commandes Unix de base
cd [chemin]
o chemin est un chemin de rpertoire Unix valide. Ce chemin est constitu des noms des rpertoires
et sous-rpertoires successifs, spars par des barres obliques / . Si aucun chemin nest spci,
cette commande change le rpertoire courant pour le rpertoire personnel de lutilisateur. Par exemple,
pour aller dans le rpertoire dinstallation de XWindow, il faut taper la commande suivante :
cd /usr/X11
La notion de chemin sera dtaille dans le paragraphe suivant. cd est labrviation de langlais
Change Directory .
La troisime commande permet de crer un rpertoire :
mkdir chemin
o chemin est le chemin spciant le rpertoire crer. Si le chemin ne contient que le nom du rper-
toire crer, celui-ci est cr dans le rpertoire courant et devient donc un sous-rpertoire. mkdir
est labrviation de langlais MaKe DIRectory ).
La commande pour supprimer un rpertoire est la suivante :
rmdir chemin
Pour supprimer un rpertoire, il faut quil soit vide (cest--dire quil ne contienne ni chier, ni rper-
toire). rmdir est labrviation de langlais ReMove DIRectory .
Enn, voici une commande dont vous ne vous servirez normalement que trs peu, voire pas du tout.
Elle permet dafcher le rpertoire courant :
pwd
Cette commande nest a priori pas trs utile, car le shell afche toujours le rpertoire courant sur la
plupart des distributions. Cependant, le chemin afch par le shell tant relatif au rpertoire personnel
de lutilisateur lorsquon se trouve dans un sous-rpertoire de celui-ci, la commande pwd peut tre
utile lorsquon dsire obtenir un chemin absolu sur le rpertoire courant. pwd est labrviation
de langlais Print Working Directory . Cette commande est galement utilise par les scripts pour
dterminer le rpertoire partir duquel ils sont excuts.
5.5. Notions de chemins sous Unix
Les chemins Unix permettent de qualier compltement un rpertoire ou un chier sur le disque.
Pour cela, ils utilisent les noms de ces rpertoires et de ces chiers, et ils les combinent pour indiquer
comment atteindre la cible dans le systme de chiers. Classiquement, les chemins sont spcis
par la squence des rpertoires dans lesquels il faut aller pour trouver cette cible. Cette squence est
donne par la suite des noms des rpertoires, spars par un caractre spcial. Sous Unix, ce caractre
est la barre oblique ( / ). Le rpertoire racine na pas de nom, et peut donc tre rfrenc par une
barre oblique seule.
60
Chapitre 5. Commandes Unix de base
Les chemins peuvent tre absolus (cest--dire quils peuvent partir du rpertoire racine) ou rela-
tifs (cest--dire quil peuvent partir du rpertoire courant). Si lon utilise un chemin relatif, il faut
savoir que le rpertoire courant est dsign par un point ( . ), et que le rpertoire parent du r-
pertoire courant est dsign par deux points successifs ( .. ). Ainsi, si lon est dans le rpertoire
/usr/local/bin, on peut accder au rpertoire /usr/X11/bin avec les deux chemins suivants :
/usr/X11/bin
ou :
../../X11/bin
Le premier chemin est absolu, parce quil part directement du rpertoire racine. Le deuxime chemin
est relatif, car il part du rpertoire courant.
Note : Il va de soi que les chemins relatifs ne sont valides, sauf coup de chance, que dans le
rpertoire dans lequel ils sont crits, alors que les chemins absolus sont toujours valables. En
revanche, si des rpertoires sont dplacs ensemble, les chemins relatifs entre ces rpertoires
restent valides, mais les chemins absolus deviennent faux. Toutefois, ces considrations ne con-
cernent pas un utilisateur de base.
La plupart des shells sont capables deffectuer ce que lon appelle la compltion automatique des
commandes. La compltion automatique permet de ncrire quune partie des noms de chiers ou de
rpertoires et de demander au shell de complter ces noms. Cela peut se faire de deux manires. La
premire solution, qui est aussi la plus simple, consiste taper le dbut du nom, puis dutiliser une
touche spciale qui permet de demander au shell de le complter. Si vous utilisez le shell bash (bash
est le shell de prdilection sur les systmes Linux), cette touche est la touche de tabulation. Ainsi, si
vous tapez :
cd /ho
et que vous appuyez sur la touche de tabulation, bash compltera cette ligne de la manire suivante :
cd /home/
Pour cela, il regarde la liste des chiers et des rpertoires qui commencent par ho dans le rpertoire
racine. Normalement, il ne sy trouve que le rpertoire /home/, et cest ce nom que bash utilise. Il
va de soi quil ne faut pas quil y ait ambigut sur un nom partiel. Par exemple, si vous tapez la
commande suivante :
cd /usr/l
et que vous demandiez au shell de complter le nom, il ne pourra pas choisir quel rpertoire utili-
ser entre /usr/lib/ et /usr/local/. Dans ce cas, il mettra un petit bip signalant lerreur. En
appuyant une fois de plus sur la touche de tabulation, bash afche la liste des choix possibles et
vous propose de terminer la ligne de commande en saisissant des caractres supplmentaires an de
rsoudre lambigut.
61
Chapitre 5. Commandes Unix de base
La deuxime solution est dutiliser les caractres gnriques du shell. Ces caractres permettent de
dsigner nimporte quel caractre, ou nimporte quelle squence de caractres. Ils sont dsigns res-
pectivement par un point dinterrogation ( ? ) et par un astrisque ( * ). Ainsi, si lon tape la
commande suivante :
cd /ho*
le shell ira directement dans le rpertoire /home/, car le caractre gnrique * peut tre remplac
par la squence de caractres me . Il est galement possible dcrire :
cd /?ome
et dans ce cas le caractre gnrique ? sera remplac par h . Encore une fois, il ne faut pas
quil y ait ambigut. Dans le cas contraire, le comportement varie selon le shell. En gnral, il essaie
de rsoudre lambigut au mieux en analysant la suite du chemin, et sil ne peut pas, il afche un
message derreur.
Note : Ces caractres gnriques sont interprts directement par le shell et non par la com-
mande qui les reoit en paramtres. Tout nom de chier contenant un caractre gnrique est
remplac par la liste des chiers qui correspondent au motif donn. Sil nexiste quun seul chier
dans cette liste, il est possible dutiliser les commandes comme cd, qui ne prennent quun seul
paramtre. Mais il est possible dutiliser les commandes acceptant plusieurs paramtres, mme
sil y a plusieurs chiers dans cette liste. Ainsi, la commande suivante :
ls *txt
permet de lister tous les chiers dont le nom se termine par txt . Il ne peut videment pas y
avoir dambigut dans ce cas.
Si on doit passer un paramtre comprenant lun des caractres gnriques interprts par le
shell une commande particulire, on devra prxer les caractres gnriques dun caractre
dchappement pour signaler au shell quil ne doit pas linterprter. Ce caractre dchappement
est la barre oblique inverse ( \ ). Il est galement possible de passer les paramtres entre
guillements " , car le shell ninterprte pas les caractres gnriques dans les chanes de
caractres. Par exemple, pour crer un rpertoire ?, on utilisera la commande suivante :
mkdir \?
5.6. Oprations de base sur les chiers
Vous aurez sans doute afcher le contenu dun chier. Pour cela, la commande la plus approprie
est certainement la commande less :
less fichier
Cette commande afche le contenu du chier et vous permet de le faire dler avec les ches du
curseur. Lorsque vous dsirez terminer la visualisation, il suft de taper la touche q (pour quitter
less). Pour information, le nom de la commande less provient dun trait dhumour sur une commande
62
Chapitre 5. Commandes Unix de base
Unix plus classique, la commande more. Cette commande effectue peu prs le mme travail que
less, mais elle nafche le texte que page par page. Pour passer la page suivante, il faut appuyer
sur la barre despace. Quant lorigine du nom de la commande more, cest quelle afche le mot
more au bas de lcran pour indiquer quil y a encore du texte visualiser, et quil faut appuyer
sur la barre despace pour lire la suite.
La commande less permet galement deffectuer une recherche dans le chier en cours ddition. Pour
cela, il suft de taper une commande de recherche de less. Cette commande commence par une barre
oblique, suivie du texte chercher. Par exemple, pour rechercher la chane de caractres local
dans un chier en cours de visualisation avec less, il suft de taper :
/local
Lorsque vous voudrez rechercher loccurrence suivante du motif de recherche, vous pourrez appuyer
sur la touche n (pour Next en anglais). Pour rechercher loccurrence prcdente, il suft de taper
la touche N (en majuscule, cette fois).
Il est encore plus probable que vous aurez diter un chier. Cette opration peut se faire relativement
facilement grce un diteur simpli, vi. Cet diteur nest pas franchement ce qui se fait de plus
convivial, cependant, il existe sur toutes les plates-formes Unix dune part, et il est sufsamment
lger pour pouvoir fonctionner sur un systme minimal. Il est donc recommand de savoir se servir
de vi, ne serait-ce que dans le cas o votre systme ne serait pas compltement fonctionnel. En clair,
quand tout va mal, on peut compter sur vi ! vi sera dcrit plus loin dans la Section 5.8, car il dispose
dun grand nombre de commandes et il ne serait pas opportun de les dcrire ici.
En gnral, la cration dun chier se fait avec vi, bien que dautres commandes puissent crer des
chiers. En revanche, pour supprimer un chier, il nexiste quune seule commande :
rm chemin
o chemin est le chemin complet permettant daccder au chier supprimer. Il est possible de sp-
cier plusieurs chiers la commande rm. Dans ce cas, ils seront tous supprims. rm est galement
capable de supprimer tous les chiers dun rpertoire, ainsi que ses sous-rpertoires. Dans ce cas,
elle dtruit toute une branche de larborescence du systme de chiers. Pour cela, il suft dutiliser
loption -r (pour rcursif ) avant le chemin du rpertoire supprimer.
Attention ! : La commande rm ne demande aucune conrmation avant de supprimer les chiers !
Dautre part, les chiers supprims sont irrmdiablement perdus (il ny a pas de commande
undelete ou autre commande similaire). Vriez donc bien ce que vous avez tap avant de
valider une commande rm (surtout si vous tes sous le compte root). Il peut tre judicieux de
forcer la commande rm demander conrmation avant la suppression des chiers, laide de
son option -i. On pourra pour cela dnir un alias rm -i pour la commande rm dans le chier
dinitialisation du shell (cest--dire le chier .bashrc pour le shell bash). La notion dalias sera
dcrite dans la Section 5.9.9.
La copie dun chier se fait avec la commande cp, dont la syntaxe est donne ci-dessous :
cp fichiers rpertoire
o fichiers est la liste des chiers copier, et rpertoire est le rpertoire destination dans lequel
ces chiers doivent tre copis.
Enn, le dplacement des chiers se fait avec la commande mv, comme indiqu ci-dessous :
63
Chapitre 5. Commandes Unix de base
mv source destination
o source est le nom du chier source et destination est le nom du rpertoire destination. Notez
que mv est une commande trs puissante, puisquelle permet galement de dplacer des rpertoires
et de renommer des chiers et des rpertoires. Pour renommer un chier ou un rpertoire, il suft
dindiquer le nouveau nom de ce chier ou de ce rpertoire la place de destination.
5.7. Autres commandes utiles
Pour terminer ce petit cours dUnix, nous allons dcrire quelques-unes des autres commandes dUnix
parmi les plus utiles. Elles sont utilises moins souvent que les commandes vues prcdemment, mais
vous apprendrez certainement trs vite vous en servir, car elles sont trs pratiques.
5.7.1. Passage en mode superviseur
Si vous tes prudent, vous avez sans doute cr un compte utilisateur juste aprs avoir install votre
systme de base, et vous ne travaillez plus que dans ce compte. Cette technique est prudente, cepen-
dant, elle pose un problme vident : vous ne pouvez pas y faire votre travail dadministrateur. Cest
pour cela que la commande su a t cre. Cette commande permet de changer son identit dans le
systme :
su [utilisateur]
o utilisateur est lutilisateur dont on veut prendre lidentit. Par dfaut, si aucun utilisateur nest
spci, le changement didentit se fait vers lutilisateur root. Bien entendu, il va de soi que la
commande su demande le mot de passe avant dobtemprer...
5.7.2. Changement des droits des chiers, du propritaire
et du groupe
La commande permettant de changer les droits dun chier ou dun rpertoire est la suivante :
chmod droits fichier
o fichier est le chier ou le rpertoire dont on dsire changer les droits, et droits est une chane
de caractres permettant de spcier les nouveaux droits. Cette chane commence par une lettre indi-
quant le groupe dutilisateurs auquel le droit doit tre appliqu, dun caractre + ou - indiquant si le
droit doit tre ajout ou supprim, et dune lettre indiquant le droit que lon est en train de manipuler.
La premire lettre peut prendre les valeurs suivantes :
u pour le champ utilisateur , cest--dire le propritaire du chier ;
g pour le champ groupe , cest--dire tous les utilisateurs faisant partie du groupe du chier ;
o pour le champ other , cest--dire pour tous les utilisateurs qui ne sont ni propritaires, ni
membres du groupe du chier ;
a pour tous les champs sans distinction, donc pour tous les utilisateurs.
64
Chapitre 5. Commandes Unix de base
Les droits sont identis par lun des caractres suivants :
r pour le droit de lecture ;
w pour le droit dcriture ;
x pour le droit dexcution ;
s pour les bits setuid et setguid ;
t pour le bit sticky.
Ainsi, la commande suivante :
chmod g+w toto
permet de donner le droit dcriture sur le chier toto tous les membres du groupe auquel ce chier
appartient.
Les droits daccs ont dj t dcrits en dtail ci-dessus dans le chapitre concernant les notions
gnrales sur Unix.
Le changement de propritaire dun chier ne peut tre ralis que par ladministrateur du systme.
Cette opration se fait laide de la commande suivante :
chown utilisateur fichier
o utilisateur est le nom de lutilisateur qui doit devenir propritaire du chier, et fichier est
le chier devant changer de propritaire.
Le changement de groupe peut tre ralis par nimporte quel utilisateur, mais on ne peut donner un
chier qu lun des groupes dont on est membre. Cette opration se fait laide de la commande
suivante :
chgrp groupe fichier
o groupe est le nom du groupe qui doit tre affect au chier, et fichier est le chier devant
changer de groupe. Bien entendu, ladministrateur peut affecter un chier nimporte quel groupe
dutilisateur.
5.7.3. Gestion des liens
La commande pour crer un lien est ln. Cette commande utilise la syntaxe suivante :
ln [-s] source lien
o source est le nom du chier ou du rpertoire source auquel le lien doit se rfrer, et lien est le
nom du lien. Loption -s permet de crer un lien symbolique. Par dfaut, ce sont des liens physiques
qui sont crs. Rappelons quil est impossible de crer des liens physiques sur des rpertoires.
Lorsquon liste des chiers, on peut demander lafchage dinformations complmentaires sur les
liens. Pour cela, il suft dutiliser loption -l de la commande ls. Ainsi, la commande suivante :
ls -l lien
permet dafcher les informations sur le lien lien, et en particulier le chier ou le rpertoire cible de
ce lien.
65
Chapitre 5. Commandes Unix de base
La suppression des liens se fait exactement comme celle dun chier. La destination nest pas affecte
en gnral, sauf si le lien est un lien physique et constitue la dernire rfrence au chier point par
le lien.
Les liens symboliques nont pas de droits daccs ni de propritaires, les informations de scurit de
la cible sont utilises lorsquon accde au lien.
5.7.4. Montage et dmontage dun systme de chiers
Comme il la t vu dans le chapitre expliquant les gnralits sur Unix, les systmes de chiers ne
sont pas accessibles directement. Ils doivent subir une opration que lon nomme le montage. De la
mme manire, il faut penser dmonter les systmes de chiers avant dteindre la machine ou de
retirer le support dans le cas des supports amovibles, faute de quoi les donnes non crites seront
dnitivement perdues.
Heureusement, il y a la possibilit denregistrer les systmes de chiers les plus utiliss pour que le
systme les monte et les dmonte automatiquement au dmarrage et larrt du systme. Cependant,
cet automatisme nest disponible que pour les systmes de chiers xes, et il est ncessaire de monter
soi-mme les systmes de chiers sur disques amovibles (comme les disquettes et les CD-ROM).
Lopration permettant de monter un disque suit la syntaxe suivante :
mount [-t type] fichier base
o fichier est le chier contenant le systme de chiers monter (en gnral, il sagit dun chier
spcial de priphrique, mais ce peut galement tre une image disque), et base est le point de
montage, cest--dire le rpertoire partir duquel le systme de chiers doit tre accd. Loption
-t permet dindiquer le type du systme de chiers, mais en gnral, il nest pas ncessaire de le
prciser. En effet, le noyau sait reconnatre la plupart des systmes de chiers automatiquement. Pour
information, les systmes de chiers les plus utiliss sont les suivants :
ext2 pour les systmes de chiers EXT2 ;
ext3 pour les systmes de chiers EXT3. Il est ncessaire davoir cr le journal du systme de
chiers au pralable, avec loption -j de la commande mke2fs ou de la commande tune2fs ;
iso9660 pour les CD-ROM (quils soient avec extensions Joliet ou Rock Ridge ou en mode ISO
9660 pur) ;
msdos pour les systmes de chiers FAT normaux ;
vfat pour les systmes de chiers FAT32 ;
umsdos pour les systmes de chiers UMSDOS (extension au DOS pour permettre les fonctionna-
lits des systmes de chiers Unix).
Si le rpertoire de montage nest pas vide, les chiers qui sy trouvent sont masqus par le systme de
chiers mont. Il est donc recommand de ne monter les systmes de chiers que dans des rpertoires
vides.
La commande permettant de dmonter un systme de chiers est beaucoup plus simple :
umount fichier
ou :
66
Chapitre 5. Commandes Unix de base
umount base
o fichier est le chier contenant le systme de chiers dmonter, et base est le rpertoire dans le-
quel ce systme de chiers est mont. On peut utiliser lun ou lautre de ces paramtres, la commande
umount se dbrouillera pour retrouver lautre automatiquement. On notera quil est impossible de
dmonter un systme de chiers qui est en cours dutilisation par quelquun. En particulier, il ne faut
pas tre dans le rpertoire servant de point de montage pour pouvoir dmonter un systme de chiers,
car dans ce cas on est en train de lutiliser.
La commande mount peut prendre diverses options pour le montage des systmes de chiers. Par
exemple, elle permet de monter des systmes de chiers en lecture seule, ou de monter des systmes
de chiers placs dans des images disques. Ces options sont introduites par loption de ligne de
commande -o, et doivent tre spares les unes des autres par des virgules. Par exemple, pour monter
un systme de chiers ISO9660 en lecture seule, on utilisera la ligne de commande suivante :
mount -t iso9660 -o ro fichier base
Une autre option utile pour le montage des CD-ROMs est sans doute loption session, qui permet
dindiquer le numro de la session monter dans le cas des CD-ROMs multisessions. Par exemple,
pour monter la deuxime session dun CD-ROM multisession, on utilisera une ligne de commande
telle que celle-ci :
mount -t iso9660 -o ro,session=2 fichier base
Vous pourrez trouver la liste des options acceptes par chaque systme de chiers dans la page de
manuel de la commande mount.
Le systme de chiers EXT3 prend des options supplmentaires par rapport au systme de chiers
EXT2, qui permettent de contrler la manire dont la journalisation des oprations sur disque est ra-
lise. Avec EXT3, le journal peut tre utilis pour stocker toutes les oprations concernant la structure
de donnes mme du systme de chiers (cest--dire ce que lon appelle les mta-donnes du
systme de chiers) et les oprations concernant les donnes des chiers elles-mmes. La diffrence
est importante et il faut bien la comprendre. Si lon choisit de ne journaliser que les mta-donnes
du systme de chiers, les informations concernant les rpertoires, les chiers et les droits daccs
seront toujours dans un tat cohrent. En revanche, les donnes stockes dans les chiers eux-mmes
peuvent tre a priori fausses la suite dun redmarrage impromptu. Si, en revanche, on dcide de
stocker galement les informations concernant les donnes des chiers dans le journal, le contenu
des chiers sera galement garanti, au dtriment dune perte de performances notable. Le mode de
fonctionnement utiliser est spci laide de loption data du systme de chiers, qui doit donc
tre xe lors de lopration de montage. Cette option peut prendre lune des trois valeurs suivantes :
journal, qui permet deffectuer une journalisation complte des mta-donnes et des donnes des
chiers. Il est donc garanti que le contenu des chiers est toujours cohrent, tout comme lest le
systme de chiers. Cette option procure le maximum de scurit, mais cest galement celle qui
pnalise le plus les performances du systme (les donnes sont crites deux fois, une fois dans le
journal, et une fois sur disque) ;
ordered, qui est loption par dfaut et qui permet de ne journaliser que les mta-donnes, mais
qui garantit galement que les tampons dcriture sont vids avant chaque journalisation dune
opration disque. Tout comme avec loption journal, il est garantit que le systme de chiers
est dans un tat cohrent. Les donnes des chiers seront galement cohrentes avec les structures
de donnes du systme de chiers. Cependant, rien ne garantit que le contenu des chiers sera
lui aussi cohrent en interne, car mme si les donnes sont crites avant toute modication du
systme de chiers, aucun contrle nest effectu pour que les critures soient ralises dans lordre
67
Chapitre 5. Commandes Unix de base
dans lequel les applications les ont effectues. Cela dit, les performances sont meilleures quavec
loption journal, tout en garantissant une scurit quasi totale des chiers ;
writeback, qui permet de ne journaliser que les mta-donnes du systme de chiers. Le contenu
des chiers peut donc tre incorrect, voire mme contenir des donnes alatoires la suite dun arrt
brutal du systme, mais le systme de chiers est toujours dans un tat correct. Cette option permet
donc simplement de rendre facultative la vrication et la rparation des systmes de chiers EXT2
au redmarrage. Les performances sont quasiment aussi bonnes que pour le systme de chiers
EXT2.
Il est possible denregistrer les valeurs par dfaut de toutes ces options dans le chier de conguration
/etc/fstab. Ce chier contient, entre autres, le rpertoire de montage, le type du systme de chiers
et le chier de priphrique utiliser pour chaque systme de chiers. De cette manire, il est possible
dutiliser la commande mount de manire simplie, en ne prcisant que le rpertoire servant de point
de montage ou le chier spcial de priphrique. Le chier /etc/fstab sera dcrit plus en dtail dans
la Section 6.4.2.
Enn, il est possible de monter un systme de chiers plusieurs fois, ventuellement avec des options
diffrentes, dans diffrents points de montage.
5.7.5. Recherche de chiers
Il vous sera sans doute ncessaire de rechercher des chiers selon un critre donn dans toute une
arborescence de rpertoires. Pour cela, vous utiliserez la commande nd. Cette commande est trs
puissante, mais dispose dune syntaxe assez complique :
find rpertoire -name nom -print
o rpertoire est le rpertoire partir duquel la recherche doit commencer et nom est le nom du
chier rechercher. Ce nom peut contenir des caractres gnriques du shell, mais dans ce cas doit
tre plac entre guillemets an dviter que ce dernier ne les interprte.
nd accepte dautres options de recherche que le nom (partie -name de la ligne de commande),
et peut effectuer dautres actions que lafchage du chemin des chiers trouvs (partie -print ).
Consultez les pages de manuel pour plus dinformations ce sujet.
5.7.6. Recherche dun texte dans un chier
La recherche dune chane de caractres dans un ou plusieurs chiers peut se faire laide de la
commande grep. Cette commande prend en premier paramtre le texte rechercher, puis la liste des
chiers dans lequel ce texte doit tre trouv :
grep texte fichiers
Le texte peut tre plac entre guillemets si ncessaire (en particulier, sil contient des espaces ou des
caractres interprts par le shell, comme * et ?). grep accepte un grand nombre doptions, qui ne
seront pas dcrites ici. Consulter les pages de manuel pour plus dinformation ce sujet.
68
Chapitre 5. Commandes Unix de base
5.7.7. Remplacement de texte dans les chiers
Le remplacement de texte dans un chier peut tre effectu de manire automatique, cest--dire sans
avoir ouvrir le chier dans un diteur, grce la commande sed (abrviation de langlais Stream
Editor ). Cette commande est en fait un utilitaire de manipulation de ux de donnes, qui permet
deffectuer des traitements plus gnraux que le simple remplacement de texte, mais cest malgr tout
pour cette opration quelle reste la plus utilise.
sed peut travailler la vole sur un ux de donnes textuelles, que ce ux provienne de lentre
standard ou dun chier. Par dfaut, il crit le rsultat de son travail sur le ux de sortie standard. Les
oprations quil doit effectuer sur le ux de donnes peuvent tre spcies de diffrentes manires,
soit en fournissant un chier script laide de loption -f, soit directement sur la ligne de commande,
avec loption -e. La syntaxe utilise pour appeler sed est donc typiquement la suivante :
sed -e "commandes" fichier > rsultat
ou :
sed -f script fichier > rsultat
o fichier est le chier sur lequel sed doit travailler, et rsultat est le chier devant recevoir le
ux de donnes modies. Notez que cette commande utilise une redirection du ux de sortie standard
dans un chier. Ce type de redirection sera dcrit en dtail dans la Section 5.9.2.
sed peut effectuer un grand nombre de commandes diffrentes et est rellement un outil trs puissant.
Cependant, nous ne verrons ici que la commande qui permet deffectuer un remplacement de texte.
Cette commande utilise la syntaxe suivante :
s/texte/remplacement/options
o texte est le texte rechercher, remplacement est le texte de remplacement, et options est un
jeu doptions exprimant la manire dont le remplacement doit tre fait. Les options sont spcies
laide de simple caractres, les plus utiles tant sans doute g, qui permet deffectuer un remplacement
global (au lieu de ne remplacer que la premire occurrence du texte rencontre dans chaque ligne), et
I, qui permet deffectuer une recherche sans tenir compte de la casse des caractres.
Par exemple, la ligne de commande suivante :
sed -e "s/bonjour/bonsoir/g" test.txt > modif.txt
permet de remplacer toutes les occurrences de la chane de caractres bonjour par la chane de
caractres bonsoir dans le texte du chier test.txt, et denregistrer le rsultat dans le chier
modif.txt.
Note : Il ne faut pas utiliser le mme nom de chier pour le chier source et le chier de rsultat.
En effet, sed lit le chier source la vole, et effectuer une redirection sur ce chier pendant
son traitement provoquerait la perte irrmdiable de son contenu. Pour rsoudre ce problme, on
pourra utiliser un nom de chier temporaire, et craser le chier original par ce chier une fois la
commande sed excute.
69
Chapitre 5. Commandes Unix de base
5.7.8. Compression et dcompression des chiers
Linux fournit un grand nombre de programmes de compression de chiers. Le meilleur est sans
doute bzip2, et le plus compatible sans doute compress. Cependant, le plus utilis et le plus courant,
surtout pour la distribution des sources, reste incontestablement gzip. Nous allons dcrire brivement
comment comprimer et dcomprimer des chiers avec gzip et bzip2 dans ce paragraphe.
La compression dun chier se fait de manire lmentaire :
gzip fichier
o fichier est le chier comprimer. Aprs avoir effectu son travail, gzip renomme le chier
comprim en fichier.gz . La compression dun chier avec bzip2 utilise exactement la mme
syntaxe, ceci prs quil faut remplacer gzip par bzip2. De plus, le nom du chier comprim porte
lextension .bz2 au lieu de .gz. Le chier obtenu est donc nomm fichier.bz2 .
La dcompression dun chier se fait laide de la commande suivante :
gunzip fichier.gz
ou
bunzip2 fichier.bz2
selon quil a t comprim avec gzip ou bzip2. Aprs dcompression, lextension complmentaire
.gz ou .bz2 est supprime du nom de chier.
5.7.9. Archivage de chiers
Larchivage de chiers se fait classiquement sous Unix avec le programme tar (abrviation de
langlais Tape ARchiver ). Ce programme permet simplement de regrouper tous les chiers quil
doit archiver dans un seul chier structur en blocs. Il a t initialement crit pour permettre des
archivages sur bandes ou sur tout autre priphrique de stockage de masse, mais il est galement
utilis pour crer des chiers archives contenant toute une arborescence.
La syntaxe de tar est trs simple :
tar options archive [fichiers]
o options sont les options qui indiquent lopration effectuer et comment elle doit tre rali-
se, archive est le nom de larchive qui doit tre cre ou le nom du chier de priphrique du
priphrique darchivage, et fichiers est la liste des chiers archiver.
Les options de tar que vous utiliserez le plus souvent sont les suivantes :
cvf pour crer une archive ;
tvf pour lister le contenu dune archive ;
xvf pour restaurer le contenu dune archive.
Par exemple, pour archiver le contenu du rpertoire courant dans le chier archive.tar, vous utili-
serez la ligne de commande suivante :
tar cvf archive.tar *
70
Chapitre 5. Commandes Unix de base
De plus, pour extraire le contenu de larchive archive.tar, vous utiliserez la commande suivante :
tar xvf archive.tar
Note : Loption z permet deffectuer une compression des donnes archives ou une dcom-
pression des donnes restaures la vole. tar utilise gzip et gunzip pour la compression et la
dcompression. De mme, loption y permet de comprimer larchive la vole avec bzip2. Cette
option est mois courante et varie selon les versions de tar utilises.
Si lon utilise un signe ngatif (-) la place du nom de larchive, tar enverra le rsultat de la
compression vers la sortie standard. Cela peut tre utilis pour des oprations avances. Un
exemple sera donn dans la Section 5.9.2.
5.7.10. Gestion des paquetages
La plupart des distributions actuelles utilisent le format de chier rpm ( Redhat Package
Manager ) pour leurs paquetages. Ce format de chier a t introduit par la distribution Redhat,
mais a t licenci sous la licence GNU, ce qui a permis aux autres distributions de lutiliser. Ces
chiers encapsulent tous les chiers des paquetages, ainsi que des informations permettant de grer
les dpendances entre les paquetages, leurs versions, la manire de les installer dans le systme, de
les supprimer ou de les mettre jour facilement.
Les chiers rpmpeuvent tre manipuls laide du programme rpm. Il est probable que le programme
dinstallation de votre distribution vous vite davoir manipuler cet outil vous-mme. Cependant, les
principales commandes de rpm seront dcrites ici, an que vous puissiez lutiliser en cas de besoin.
Le programme rpm utilise une syntaxe trs classique :
rpm options [paquetage]
Les options indiquent les oprations effectuer. La premire option est bien entendu loption -i, qui
permet linstallation dun paquetage :
rpm -i paquetage
La mise jour dun paquetage dj install se fait laide de loption -U :
rpm -U paquetage
La suppression dun paquetage se fait laide de loption -e :
rpm -e paquetage
71
Chapitre 5. Commandes Unix de base
La commande permettant dobtenir les informations (auteur, description, version) sur un paquetage
contenu dans un chier rpm est la suivante :
rpm -qi -p paquetage
Enn, la commande pour lister tous les chiers dun paquetage contenu dans un chier rpm est la
suivante :
rpm -ql -p paquetage
Cette commande afche les chemins complets, ce qui permet de savoir dans quel rpertoire chaque
chier sera install.
Il existe beaucoup dautres options disponibles. Cependant, leur description dpasserait le cadre de ce
document. Vous pouvez toujours consulter la page de manuel rpm si vous dsirez plus dinformations.
5.8. vi, lditeur de chiers de base
Vous serez oblig, lorsque vous effectuerez la conguration de votre systme, dditer les chiers de
conguration (classiquement, ces chiers sont placs dans le rpertoire /etc/). Ces modications
peuvent tre ralises avec nimporte quel diteur a priori, et il est mme conseill dutiliser votre
diteur favori. Cependant, il faut savoir se servir de vi, parce que cest le seul diteur qui sera toujours
install, et qui fonctionnera en toutes circonstances. Le prix payer pour cette abilit est un nombre
restreint de fonctionnalits. En fait, vi est trs puissant, mais il ne sembarrasse pas de superu, ce
qui en fait certainement lditeur le moins convivial du monde. Ce paragraphe vous donnera la liste
des principales commandes de vi. Cette liste ne sera toutefois pas exhaustive, car vous nutiliserez
certainement pas vi dans la vie courante.
Pour diter un chier avec vi, il suft de passer le nom de ce chier en ligne de commande :
vi fichier
Il est possible de passer plusieurs chiers dans la ligne de commande, et vi les ditera les uns aprs
les autres. Cependant, il faut savoir que vi ne permet de travailler que sur deux chiers la fois, et
quil nest pas facile de passer de lun lautre. Par consquent, il est conseill de nditer quun seul
chier la fois.
vi est un diteur qui fonctionne dans plusieurs modes diffrents : le mode ddition, dans lequel le
texte peut tre modi, le mode de commande, dans lequel des commandes particulires peuvent
tre donnes, et le mode de visualisation, dans lequel le chier ne peut tre que visualis. Par d-
faut, vi est en mode de visualisation, et il faut utiliser une commande ddition pour passer en mode
ddition. Quand on est en mode ddition, on peut revenir au mode de visualisation en appuyant sur
la touche Echap (ou Esc, selon votre clavier). Cette touche a aussi une signication dans le mode de
commande : elle annule la saisie de la commande en cours. Par consquent, lorsquon est perdu et que
lon ne sait plus dans quel mode on se trouve (ce qui arrive fatalement un moment donn), il suft
dappuyer sur cette touche. On sait alors quon se trouve en mode de visualisation.
72
Chapitre 5. Commandes Unix de base
Le dplacement du curseur en mode de visualisation se fait avec les touches du curseur. Cependant, si
votre clavier nest pas bien congur, ces touches peuvent ne pas fonctionner. Cest pour cette raison
que vi fournit un jeu de touches alternatif :
la touche h permet de dplacer le curseur vers la gauche ;
la touche l permet de dplacer le curseur vers la droite ;
la touche j permet de dplacer le curseur vers le bas ;
la touche k permet de dplacer le curseur vers le haut.
Le curseur est bien entendu dplac automatiquement lors de la saisie du texte en mode ddition.
Le passage en mode ddition peut se faire avec lune des commandes suivantes :
la touche i permet de passer en mode dinsertion (le texte saisi sinsre avant le caractre sur lequel
le curseur est positionn) ;
la touche a permet de passer en mode dajout de caractres (le texte saisi sinsre aprs le caractre
sur lequel le curseur est positionn) ;
la touche A permet de placer le curseur en n de ligne et de passer en mode dajout de caractres ;
la touche o permet de crer une nouvelle ligne aprs la ligne o se trouve le curseur et de passer en
mode ddition sur cette nouvelle ligne ;
la touche O permet de crer une nouvelle ligne avant la ligne o se trouve le curseur et de passer en
mode ddition sur cette nouvelle ligne.
La cration dune nouvelle ligne peut donc tre faite avec les commandes o et O, mais il est possible
de couper une ligne en deux, ou de passer la ligne simplement en tapant sur la touche Entre en
mode ddition. Inversement, la commande J permet de supprimer un saut de ligne en n de ligne et
de placer ainsi le texte de la ligne suivante la suite du texte de la ligne courante.
La suppression dun caractre se fait avec la touche Suppr (ou Del, selon le clavier) ou la touche
de retour arrire (dite touche Backspace). Cependant, encore une fois, vi fournit un jeu de touches
alternatif permettant de travailler avec un clavier mal congur :
la commande x permet deffacer le caractre situ sous le curseur ;
la commande dd permet deffacer la ligne o se trouve le curseur ;
la commande dw permet deffacer le mot o se trouve le curseur.
Le texte qui a t supprim est plac dans ce que lon appelle un buffer. Le contenu du buffer peut
tre insr nimporte quel endroit du chier grce la commande p. Ainsi, il est possible de faire un
couper/coller en effaant la ligne dsire et en appuyant sur la touche p lemplacement destination.
La commande u permet dannuler la dernire opration effectue, et la commande U permet de la
r-excuter.
La commande yy permet de copier la ligne courante dans le buffer. Cette commande est donc utilise
pour effectuer des copier/coller, en combinaison avec la commande p.
Les commandes de vi peuvent tre rptes un certain nombre de fois, en spciant ce nombre avant
de les crire. Ainsi, pour supprimer 3 lignes, il sufra de taper la commande suivante :
3dd
73
Chapitre 5. Commandes Unix de base
Dans ce cas, ces trois lignes sont galement places dans le buffer. La mme technique peut tre
utilise pour copier/coller plusieurs lignes en une seule opration.
Enn, vi accepte un certain nombre de commandes gnrales lorsquil est en mode de commande. Ce
mode est activ ds que lon appuie sur la touche deux points (:) dans le mode de visualisation. Les
commandes gnrales les plus utiles sont dcrites ci-dessous :
la commande :q permet de quitter vi. Si le chier en cours ddition a t modi, vi refusera de
se terminer sans lenregistrer. Si lon veut malgr tout sortir sans lenregistrer, il faudra utiliser la
commande :q! ;
la commande :w permet denregistrer le chier courant. Pour enregistrer ce chier et quitter vi, la
commande :wq peut tre utilise ;
la commande :help sujet permet dobtenir de laide sur le sujet sujet ;
la commande :!commande permet dexcuter la commande du shell commande . Cela peut tre
pratique pour effectuer une opration dans le shell sans avoir quitter vi. Cela dit, il sera sans doute
plus efcace dutiliser un autre terminal virtuel.
Comme vous lavez constat, vi est rellement une horreur utiliser. Malgr tout, il permet de faire
tout ce dont on a besoin pour diter un chier. Il dispose mme de puissantes fonctionnalits que
mme les traitements de texte volus ne sont pas capables de faire. Elles ne seront cependant pas
dcrites ici, car cela dpasserait le cadre de la simple installation de Linux. Vous pourrez toujours
consulter laide de vi pour de plus amples informations.
5.9. Utilisation du shell bash
Le shell est lenvironnement utilisateur en mode texte sous Linux. Cest le programme qui se charge de
lire et dexcuter les commandes que lutilisateur saisit. Classiquement, le shell est utilis de manire
interactive, cest--dire que lutilisateur dialogue avec le systme par lintermdiaire du shell. Il saisit
les commandes, et le shell les excute et afche les rsultats. Le shell le plus couramment utilis sous
Linux est sans aucun doute bash. En tout cas, cest le shell par dfaut que la plupart des distributions
utilisent. Il est donc conseill de connatre un petit peu ce que ce shell est capable de raliser, et
comment. Le shell bash est une volution du shell sh, utilis par quasiment tous les systmes Unix.
Son nom provient de labrviation de langlais Bourne Again SHell , ce qui signie quil sagit
effectivement dune nouvelle variante du shell sh.
Au temps des interfaces graphiques complexes et sophistiques, il peut paratre archaque de vouloir
encore utiliser des lignes de commandes pour utiliser un ordinateur. Cest en partie vrai, mais il faut
savoir que les shells Unix sont extrmement puissants et que les interfaces graphiques ne permettent
toujours pas, mme lheure actuelle, de raliser toutes les tches faisables avec un shell. Dautre
part, il est souvent plus efcace de taper une simple commande dans un shell que de rechercher un
outil graphique et de parcourir les divers menus, puis de choisir les options de la commande dsire
avant de valider. Des ergonomes ont dmontr, et des graphistes du monde entier le conrmeront, que
la souris nest pas le priphrique dentre le plus prcis et le plus facile utiliser pour manipuler les
objets de lenvironnement utilisateur. La plupart des programmeurs utilisent encore bon nombre de ce
quon appelle des raccourcis clavier pour excuter des commandes, mme dans les environnements
utilisateurs graphiques.
74
Chapitre 5. Commandes Unix de base
Quoi quil en soit, le shell est bien plus quun interprteur de commande. Il sagit rellement dun
environnement de programmation, permettant de dnir des variables, des fonctions, des instructions
complexes et des programmes complets, que lon appelle des scripts shell. Les sections suivantes ont
pour objectif de vous montrer les principales caractristiques du shell, sans pour autant prtendre vous
apprendre la programmation des scripts shell. La lecture de cette section pourra donc tre diffre dans
un premier temps. Toutefois, elle pourra tre bnque ceux qui dsirent comprendre les scripts de
conguration utiliss par leur distribution, ou tout simplement ceux qui sont curieux de nature.
5.9.1. Contrle des processus
Un des avantages des lignes de commandes par rapport aux environnements graphiques est la facilit
avec laquelle elles permettent de contrler les processus. Ce paragraphe dcrit les principales m-
thodes pour lancer et arrter un processus, ainsi que pour lui fournir les donnes sur lesquelles il doit
travailler et rcuprer ses rsultats.
5.9.1.1. Lancement dun programme en arrire-plan
Le lancement normal dun programme se fait en tapant sa ligne de commande et en appuyant sur la
touche de validation. Le shell ne rendra pas la main et ne permettra pas de lancer un autre programme
tant que le processus en cours ne sera pas termin. Cependant, vous pouvez fort bien dsirer lancer en
arrire-plan une commande dont la dure dexcution peut tre trs longue et continuer travailler.
Aprs tout, Linux est multitche... Eh bien, rien de plus facile !
Pour lancer une commande en arrire-plan, il faut :
sassurer que la commande aura toutes les informations ncessaires pour travailler sans intervention
de lutilisateur (ou, autrement dit, que la commande nest pas interactive) ;
ajouter une esperluette (caractre & ) la n de la ligne de commande.
Par exemple, la commande suivante :
cp /cdrom/kernel/linux-2.4.9.tar.gz . &
copiera larchive du noyau 2.4.9 du CD-ROM vers le rpertoire courant, et sexcutera en arrire-plan.
Lorsquune commande est lance en arrire-plan, le shell afche deux nombres qui permettront de
lidentier par la suite. Le premier nombre, indiqu entre crochets, est le numro de job du shell.
Ce numro sert identier les commandes du shell de manire unique. Un job est donc en ralit une
commande du shell, simple ou complexe. Le deuxime numro est le numro de processus ( PID ,
pour Process IDentier ) dans le systme du processus matre du job. Le PID est un numro unique
dans le systme, qui permet didentier de manire unique les processus en cours. Ces deux nombres
permettront de manipuler les processus, avec les commandes que lon verra plus tard.
Il ne faut pas confondre les numros de job avec les numros de processus. Premirement, un nu-
mro de job nest unique que dans un shell donn, et na aucune signication au niveau du systme
complet, alors que le numro de processus est attribu par le systme chaque programme en cours
dexcution. Ensuite, une mme commande du shell peut lancer plusieurs processus conjointement.
Dans ce cas, il y a bien videmment plusieurs numros de processus, mais un seul et unique job.
Ce genre de situation se produit par exemple lors de lutilisation dune redirection du ux de sortie
standard dun processus vers le ux dentre standard dun autre processus.
75
Chapitre 5. Commandes Unix de base
Le numro de processus afch par le shell lors du lancement dune ligne de commande complexe
reprsente le PID du processus matre de la commande, cest--dire, en pratique, le dernier processus
dune srie de redirections ou le processus du shell excutant les commandes complexes. Cela signie
que dans tous les cas de conguration, ce PID est celui du processus qui contrle lensemble des
oprations effectues par la ligne de commande. Cest donc par ce processus que lon peut manipuler
la commande complte, par exemple pour linterrompre.
Il est possible de retrouver le PID du processus matre dune commande partir du numro de job
correspondant du shell. Cela se fait simplement, en utilisant lexpressions suivante :
%job
o job est le numro du job dont on cherche le PID. Ainsi, dans toutes les commandes dcrites
ci-dessous, le PID peut tre utilis directement, ou tre remplac par le numro du job prx du
caractre de pourcentage.
5.9.1.2. Listing des processus
Il nest pas ncessaire de retenir tous les numros de jobs et tous les PID des processus en cours
dexcution. Il existe en effet des commandes permettant dobtenir la liste des processus et des jobs.
La plus simple utiliser est bien videmment la commande du shell pour obtenir la liste des jobs avec
leurs lignes de commandes. Pour obtenir cette liste, il suft de taper la commande suivante :
jobs
qui afche, dans lordre, le numro de job, ltat du processus correspondant, et la ligne de commande.
Une autre commande, plus bas niveau, permet dobtenir des informations plus compltes directement
partir du systme. Il sagit de la commande ps, dont la syntaxe est donne ci-dessous :
ps [options]
Les options les plus utiles sont sans doute x, qui permet de demander lafchage de toutes les com-
mandes en cours dexcution et non pas seulement les processus en cours dexcution dans le shell
o la commande ps est excute, et a, qui permet dobtenir lafchage de toutes les commandes, pour
tous les utilisateurs connects. Ces deux options peuvent tre cumules, et la commande suivante :
ps ax
afche donc toutes les commandes en cours dexcution sur le systme.
Les informations les plus intressantes afches par ps sont le PID du processus, qui est donn par le
premier nombre afch, et la ligne de commande, qui est la dernire information afche. Pour plus
de dtails sur la commande ps, veuillez consulter la page de manuel correspondante.
5.9.1.3. Notion de signal
Dans un systme Unix, tous les processus peuvent recevoir des messages, envoys soit par
lutilisateur, soit par un autre processus, soit par le systme. Ces messages sont appels signaux. La
plupart des signaux sont envoys par le systme pour indiquer au processus quil a fait une faute
et quil va tre termin. Cependant, ce nest pas toujours le cas : certains signaux sont envoys
uniquement dans le cadre de la communication entre les processus, et certains autres ne peuvent
mme pas tre capts par le processus et sont traits directement par le systme. Nous nentrerons
76
Chapitre 5. Commandes Unix de base
pas en dtail dans la gestion des signaux ici, car cela nous emmnerait trop loin. Cependant, la
manire denvoyer un signal un processus partir du shell sera dcrite.
Lenvoi dun signal se fait avec la commande kill, avec la syntaxe suivante :
kill [-signal] PID
o signal est une option qui permet de prciser le signal qui doit tre envoy, et PID est le numro
du processus qui doit le recevoir. Les numros de signaux les plus importants sont dcrits dans le
tableau ci-dessous :
Tableau 5-2. Principaux signaux Unix
Numro de
signal
Signication
15 Signal de terminaison de processus.
9 Signal de destruction inconditionnelle de processus.
19 Signal de suspension de processus.
18 Signal de reprise dexcution dun processus suspendu.
Lorsquaucun signal nest spci, le signal 15 de terminaison est utilis par dfaut. Ce signal de-
mande au processus en cours dexcution de se terminer immdiatement. Il peut tre capt par le
processus, pour lui donner une chance denregistrer les donnes sur lesquelles il travaillait et de lib-
rer les ressources quil utilisait. Pour certains processus, cela ne fonctionne pas, et il faut utiliser le
signal de destruction du processus laide de la commande suivante :
kill -9 PID
Attention cependant cette commande : le processus est immdiatement dtruit, sans autre forme de
procs. Il peut donc sensuivre une perte de donnes, nen abusez donc pas trop.
5.9.1.4. Arrt dun processus
Tout processus lanc en ligne de commande peut tre arrt immdiatement sous Linux. Pour cela,
deux mthodes sont disponibles. La premire consiste taper la combinaison de touches CTRL+C
lorsque le processus est en cours dexcution interactive (cest--dire lorsquil na pas t lanc en
arrire-plan). Sil a t lanc en arrire-plan, on peut soit le ramener en avant-plan (avec la commande
fg, que lon verra plus loin) avant dutiliser CTRL+C, soit lui envoyer le signal de terminaison laide
de la commande kill vue prcdemment. Dans le cas dune ligne de commande, le signal de termi-
naison est transmis au processus matre de la ligne de commande, et est ensuite propag lensemble
des processus ls de ce processus. Cela signie que tous les processus invoqus dans le cadre de cette
commande sont galement arrts.
5.9.1.5. Gel dun processus
Il est possible de geler un processus en cours dexcution, cest--dire de le suspendre, sans pour
autant larrter dnitivement. Cela peut tre utilis pour librer un peu les capacits de calcul, lorsque
77
Chapitre 5. Commandes Unix de base
ce processus consomme trop de ressources par exemple. Pour cela, deux mthodes sont possibles :
soit on utilise la combinaison de touches CTRL+Z, lorsque le processus est en avant-plan ;
soit on envoie le signal 19 au processus (signal STOP ) laide de la commande kill.
La premire mthode est recommande pour les processus lancs par une ligne de commande com-
plexe, car le signal STOP est envoy au processus matre de la commande, et est propag lensemble
des processus ls de ce processus. Cela signie que tous les processus invoqus dans le cadre de
cette commande sont galement gels. La deuxime mthode est plus bas niveau, et permet de geler
nimporte quel processus que lon a lanc.
5.9.1.6. Relancement dun processus
Un processus suspendu peut tre relanc soit en avant-plan, soit en arrire-plan. Pour relancer un
processus en avant-plan, il faut utiliser la commande suivante :
fg [PID]
o PID est le PID du processus relancer en avant-plan. Si ce paramtre nest pas spci, le dernier
processus stopp sera relanc en arrire-plan. fg est labrviation de langlais foreground , ce
qui signie avant-plan . Il faut attendre que ce processus se termine pour entrer de nouvelles
commandes. Par consquent, on ne peut lancer en avant-plan quun seul processus.
De mme, pour lancer un processus en arrire-plan, il faut utiliser la commande bg, qui est
labrviation de langlais background . Cette commande sutilise de la mme manire que la
commande fg :
bg [PID]
Le relancement dun processus suspendu peut galement se faire en lui envoyant le signal 18 laide
de la commande kill.
5.9.2. Redirections
Pour pouvoir lancer un programme en arrire-plan, il est ncessaire quil nait pas besoin de demander
des donnes lutilisateur. En effet, lorsquil est en arrire-plan, la saisie de ces donnes ne peut pas
se faire, puisque le shell les interprterait comme une nouvelle commande. De plus, tout afchage en
provenance dune commande en arrire-plan apparat sur la console tel quel, et risque de se mlanger
avec lafchage des autres programmes ou mme avec la commande en cours ddition. Cest pour
rsoudre ces problmes que le mcanisme des redirections a t introduit.
5.9.2.1. Principe de base
Le mcanisme des redirections a pour but de transfrer les donnes provenant dun ux vers les
donnes dun autre ux. Il se base sur la notion de descripteur de chier, utilise par la plupart des
systmes Unix. Un descripteur de chier est un numro utilis par les programmes pour identier les
chiers ouverts. Les descripteurs 0, 1 et 2 sont respectivement affects dofce au ux dentre stan-
78
Chapitre 5. Commandes Unix de base
dard (nomm stdin ), au ux de sortie standard ( stdout ) et au ux derreur standard ( stderr ),
qui en gnral apparat galement sur lcran.
Les descripteurs de chiers dun processus sont gnralement hrits par tous ses processus ls. Cela
signie que, lors de leur lancement, ces processus peuvent utiliser tous les descripteurs de chiers
mis leur disposition par leur pre. Dans le cas des lignes de commande, les processus ls sont les
processus lancs par le shell, et les descripteurs de chiers hrits sont donc les descripteurs de chiers
du shell. Cest de cette manire que le shell peut manipuler les descripteurs de chiers des processus
quil lance : il effectue dabord les redirections sur ses propres descripteurs de chiers, puis il lance
le processus ls avec ces redirections actives. Le mcanisme est donc compltement transparent pour
les processus ls.
Le mcanisme des redirections permet en fait dinjecter dans un descripteur de chier des donnes
provenant dun autre descripteur ou dun chier identi par son nom, et denvoyer les donnes prove-
nant dun descripteur de chier dans un autre descripteur ou dans un chier identi par son nom. Si
lon utilise les descripteurs de chiers des ux dentre / sortie standards, on peut excuter nimporte
quelle commande interactive en arrire-plan.
5.9.2.2. Redirections de donnes en entre
Pour injecter des donnes provenant dun chier dans le descripteur de chier n dun processus, il
suft dajouter la ligne suivante la n de la commande permettant de lancer ce processus :
n<fichier
o fichier est le nom du chier dont les donnes doivent tre injectes dans le descripteur n. Dans
cette syntaxe, le descripteur peut ne pas tre prcis. Dans ce cas, le shell utilisera le descripteur
0, et les donnes du chier seront donc envoyes dans le ux dentre standard du processus. Par
exemple, supposons que lon dsire utiliser une commande nomme search , et que cette com-
mande demande un certain nombre dinformations lors de son excution. Si lon sait lavance les
rponses aux questions qui vont tre poses, on peut crer un chier de rponse (nomm par exemple
answer.txt ) et alimenter la commande search avec ce chier. Pour cela, on utilisera la ligne de
commande suivante :
search < answer.txt
Il est galement possible dinjecter des donnes provenant dun autre descripteur de chier dans un
descripteur de chier. On utilisera pour cela la syntaxe suivante :
n<&s
o n est toujours le descripteur de chier du processus excuter dans lequel les donnes doivent tre
injectes, et s est un descripteur de chier contenant les donnes sources injecter. Par dfaut, si n
nest pas prcis, le ux dentre standard du processus sera utilis.
5.9.2.3. Redirection de donnes en sortie
Inversement, il est possible denregistrer les donnes crites par un processus dans un de ses descrip-
teurs de chier dans un chier. Pour cela, on utilisera loprateur > avec la syntaxe suivante :
n>fichier
79
Chapitre 5. Commandes Unix de base
o n est le numro du descripteur de chier du processus enregistrer, et fichier est le nom du
chier dans lequel les donnes doivent tre stockes. Par dfaut, si n nest pas spci, le descrip-
teur du ux de sortie standard sera utilis (descripteur 1). Par exemple, si la commande prcdente
afche des rsultats et que lon dsire les stocker dans le chier result.txt , on utilisera la ligne de
commande suivante :
search < answer.txt >result.txt
Notez que cette commande dtruira systmatiquement le contenu du chier result.txt et le rempla-
cera par les informations provenant du ux de sortie standard du processus search . Il est possible
de ne pas vider le chier result.txt et dajouter les informations en n de chier, en utilisant
loprateur >> la place de loprateur >. Ainsi, la commande suivante :
search < answer.txt >>result.txt
aura pour effet dajouter la n du chier result.txt les informations afches par le processus
search .
Le ux derreur standard, qui correspond normalement lcran et qui permet dafcher les messages
derreur, peut tre redirig avec loprateur 2>, de la mme manire que loprateur > est utilis
pour le ux de sortie standard (puisque cest le descripteur de chier utilis par dfaut par loprateur
>). Par exemple, si lon veut envoyer les messages derreurs ventuels de la commande prcdente
vers le priphrique nul (cest--dire le priphrique qui nen fait rien) pour ignorer ces messages, on
utilisera la ligne de commande suivante :
search <answer.txt >result.txt 2> /dev/null
Une telle ligne de commande est compltement autonome, et peut tre lance en arrire-plan, sans
aucune intervention de lutilisateur :
search <answer.txt >result.txt 2> /dev/null &
Il est galement possible deffectuer une redirection des donnes provenant dun descripteur de chier
du processus vers un autre descripteur de chier de ce processus. On utilisera pour cela la syntaxe
suivante :
n>&d
o n est le descripteur de chier dont les donnes doivent tre rediriges, et d le descripteur de chier
destination. Cette syntaxe est souvent utilise pour rediriger le ux derreur standard vers le ux
dentre standard, lorsquon veut rcuprer les erreurs et les messages dexcution normale dans un
mme chier. Par exemple, si lon veut rediriger le ux de sortie et le ux derreurs de la commande
search dans un mme chier, on utilisera la ligne de commande suivante :
search <answer.txt >result.txt 2>&1
80
Chapitre 5. Commandes Unix de base
Cette ligne de commande utilise deux redirections successives pour les donnes afches par la com-
mande search : la premire redirige le ux de sortie standard vers un chier, et la deuxime le ux
derreur standard vers le ux de sortie standard. Notez que lordre des redirections est important. Elles
sont appliques de gauche droite. Ainsi, dans la commande prcdente, le ux de sortie standard
est redirig vers le chier result.txt , puis le ux derreur standard est inject dans le ux de sortie
standard ainsi redirig.
Note : Il est galement possible dutiliser un autre descripteur de chier que les descripteurs des
ux standards. Cependant, il est ncessaire, dans ce cas, douvrir ce descripteur dans le shell
avant de lancer la commande. Cela peut se faire laide de la syntaxe suivante :
n<>fichier
o n est un numro de descripteur de chier non encore utilis, et fichier est un nom de chier.
Ce nouveau descripteur de chier pourra tre utilis dans les commandes prcdentes, an de
faire manipuler le chier fichier par les processus ls de manire transparente.
Les descripteurs de chiers ouverts de cette manire le restent dune commande sur lautre
dans le shell. Cela implique que toutes les donnes crites dans ces descripteurs de chiers sont
ajoutes automatiquement la n des chiers manipuls par ces descripteurs. Ce comportement
est diffrent de la redirection vers un chier effectue par loprateur >, qui ouvre chaque fois
le chier en criture son dbut et qui supprime donc toutes les donnes dj existantes. Il ny
a donc pas doprateur >>& pour ajouter des donnes un descripteur de chier, car cela na
pas de sens.
Les descripteurs de chiers peuvent galement tre manipuls directement, par lintermdiaire
de chiers virtuels du rpertoire /dev/fd/. chaque descripteur de chier (y compris les descrip-
teurs pour les ux dentre/sortie standards !) y correspond un chier dont le nom est le numro
du descripteur. Par exemple, le chier /dev/fd/2 correspond au ux derreur standard.
En fait, le rpertoire /dev/fd/ est un lien symbolique vers le rpertoire /proc/self/fd/ du sys-
tme de chiers virtuel /proc/. Ce systme de chiers est gr par le noyau directement, et
permet daccder aux informations sur le systme et les processus. Il contient en particulier un
sous-rpertoire portant le nom du PID de chaque processus existant dans le systme, et chacun
de ces rpertoires contient lui-mme un sous-rpertoire fd/ o sont reprsents les descrip-
teurs de chiers ouvert par le processus correspondant. Le systme de chiers /proc/ contient
galement un lien symbolique self/ pointant sur le sous-rpertoire du processus qui cherche
louvrir. Ainsi, /proc/self/fd/ est un chemin permettant chaque processus daccder ses
propres descripteurs de chiers.
En pratique, la manipulation directe des descripteurs de chiers nest rellement intressante
que pour les ux standards, dont les numros de descripteurs sont xes et connus de tous les
programmes. Pour les autres descripteurs, cette technique est souvent inutilisable ou inutile, sauf
lorsquon utilise des programmes sachant manipuler des descripteurs de numros bien dter-
mins.
5.9.2.4. Insertion de documents
Il existe un dernier oprateur de redirection, qui nest utilis en pratique que dans les scripts shell. Cet
oprateur permet dinsrer directement un texte complet dans le ux dentre standard, sans avoir
placer ce document dans un chier part. Cette technique permet donc de stocker des donnes avec le
code des scripts shell, et de navoir ainsi quun seul chier contenant la fois le script et ses donnes.
Cet oprateur est loprateur <<, il sutilise selon la syntaxe suivante :
<<EOF
81
Chapitre 5. Commandes Unix de base
texte
.
.
.
EOF
o texte est le contenu du texte insrer, et EOF est un marqueur quelconque qui sera utilis seul
sur une ligne an de signaler la n du texte.
Par exemple, il est possible de crer un chier test.txt de la manire suivante :
cat <<fin >test.txt
Ceci est un fichier texte saisi directement dans le shell.
On peut crire tout ce que lon veut, et utiliser les fonctions dditions
de ligne du shell si lon veut.
Pour terminer le fichier, il faut taper le mot "fin" tout seul, au dbut
dune ligne vide.
fin
5.9.3. Les tubes
Les redirections sont trs pratiques lorsquil sagit dinjecter un chier dans le ux dentre standard
dun processus, ou inversement de rediriger le ux standard dune commande vers un chier, mais
elles ont justement le dfaut de devoir utiliser des chiers. Il est des situations o lon dsirerait
injecter le rsultat dune commande dans le ux dentre standard dune autre commande, sans passer
par un chier intermdiaire. Cela est heureusement ralisable, grce ce que lon appelle les tubes .
5.9.3.1. Syntaxe des tubes
Pour rediriger le rsultat dune commande dans le ux dentre dune autre commande, il faut utiliser
loprateur |. Cet oprateur reprsente un tuyau canalisant les donnes issues dune commande vers
le ux dentre standard de la commande suivante, do le nom de pipe en anglais (ce qui signie
tuyau ou tube ). Loprateur tube sutilise de la manire suivante :
on crit la premire commande, qui doit fournir les donnes la deuxime commande ;
on crit loprateur tube ;
on crit la deuxime commande, qui doit lire les donnes provenant de la premire.
La commande se trouvant la gauche de loprateur tube doit tre complte, avec ses autres redirec-
tions ventuelles. La redirection dans un tube seffectue aprs les autres types de redirections vues
prcdemment.
Le systme contrle lexcution des processus qui se trouvent aux deux bouts dun tube, de telle sorte
que le transfert de donnes puisse toujours se faire. Si le processus source a trop de donnes, il est g
par le systme dexploitation en attendant que le processus consommateur ait ni de traiter les donnes
dj prsentes. Inversement, si le processus source est trop lent, cest le processus consommateur qui
attendra patiemment que les donnes soient disponibles.
Les tubes sont utiliss trs couramment, ne serait-ce que pour afcher page par page le contenu dun
rpertoire. La commande suivante effectue un tel travail :
ls | less
82
Chapitre 5. Commandes Unix de base
Ici, le rsultat de la commande ls est redirig vers la commande less, qui permet dafcher page par
page (et de revenir en arrire dans ces pages) la liste des chiers du rpertoire courant.
Prenons un exemple un peu plus complexe. Supposons que lon veuille archiver et comprimer un
rpertoire. Il est possible darchiver ce rpertoire avec la commande tar, puis de comprimer le chier
archive rsultant :
tar cvf archive.tar *
gzip archive.tar
Cette mthode est correcte, mais souffre dun dfaut : elle utilise un chier intermdiaire, qui peut
prendre beaucoup de place disque. Une mthode plus conome consiste lancer tar et gzip en pa-
rallle, et rediriger la sortie standard de lun dans le ux dentre de lautre. Ainsi, il ny a plus de
chier temporaire, et la place consomme sur le disque est minimale :
tar cv * | gzip > archive.tar.gz
La premire commande demande tar darchiver tous les chiers du rpertoire et denvoyer le rsultat
dans le ux standard de sortie. Le pipe redirige ce ux standard vers le ux dentre standard de gzip.
Celui-ci comprime les donnes et les met vers son ux standard de sortie, qui est lui-mme redirig
vers le chier archive.tar.gz. Aucun chier temporaire na t utilis, et on a ainsi conomis
lespace disque de larchive complte non comprime, cest--dire environ la taille complte du r-
pertoire archiver. Ce genre de considration peut tre trs important lorsque le disque dur commence
tre plein...
Note : En fait, la commande tar de GNU permet de comprimer la vole les donnes archiver,
permettant dviter de se prendre la tte comme on vient de le faire. Pour cela, il suft dutiliser
loption z dans la ligne de commande de tar. Ainsi, la ligne de commande suivante fournit le
mme rsultat :
tar cvfz archive.tar.gz *
Mais cette solution ne fonctionne pas avec les versions non GNU de tar, qui ne supportent pas
cette option.
Un autre exemple pratique est le dplacement de toute une arborescence de chiers dun systme
de chiers un autre. Vous ne pourrez pas y parvenir laide de la commande mv, car celle-ci ne
fait que modier la structure du systme de chiers pour dplacer les chiers et les rpertoires, elle
ne peut donc pas fonctionner avec deux systmes de chiers. Vous ne pouvez pas non plus utiliser
la commande cp, car celle-ci ne prendra pas en compte les dates des chiers, leur propritaire et
leur groupe, ainsi que les liens symboliques et physiques. Il faut donc imprativement utiliser un
programme darchivage. La mthode suivre est donc de crer une archive temporaire, puis de se
dplacer dans le rpertoire destination, et enn dextraire larborescence de larchive :
cd source
tar cvf archive.tar *
cd destination
tar xvf source/archive.tar
83
Chapitre 5. Commandes Unix de base
rm source/archive.tar
Malheureusement, cette technique ncessite beaucoup de place disque, puisque larchive temporaire
est stocke directement sur disque. De plus, elle est assez lente, car toutes les donnes copier sont
recopies sur le disque dur, et relues ensuite, pour nalement tre dtruites... La vraie solution est de
raliser un tube entre les deux processus tar invoqus. Dans ce cas, le transfert se fait simplement via
la mmoire vive :
cd source
tar cv * | (cd destination ; tar xvf -)
La commande utiliser est cette fois un peu plus complique, car la commande dextraction des
chiers ncessite un changement de rpertoire. Il faut donc utiliser une commande multiple du shell.
Ces commandes sont constitues de plusieurs autres commandes spares par des points virgules. La
premire commande effectue ici est le changement de rpertoire, et la deuxime est lextraction par
tar de larchive qui lui est transfre par le ux dentre standard (reprsent ici par -). Ces deux
commandes sont mises entre parenthses, car loprateur | du tube est prioritaire sur loprateur ;
de concatnation des commandes du shell. Si vous trouvez que cela est un peu compliqu, je vous
laccorde. Cependant, la commande qui utilise le tube consomme deux fois moins despace disque et
est deux fois plus rapide que la commande qui nen utilise pas. Je vous invite mesurer le gain de
temps sur un rpertoire contenant un grand nombre de donnes (utilisez la commande time !).
5.9.3.2. Les tubes nomms
Les tubes crs par loprateur | constituent ce que lon appelle des tubes anonymes, car ils sont
crs directement par le shell pour une commande donne. Il est possible de crer manuellement des
tubes en leur donnant un nom, et de les utiliser a posteriori dans plusieurs commandes. Ces tubes
constituent ce que lon appelle des tubes nomms.
En fait, les tubes nomms sont des chiers spciaux, que lon cre dans un systme de chier capable
de les grer. Les seules oprations ralisables sont lcriture et la lecture, sachant que les donnes
crites en premier seront forcment les premires donnes lues. Cest ce comportement qui a donn
leur nom ces chiers, que lon appelle des FIFO (abrviation de langlais First In First Out ).
De plus, la quantit de donnes en transit dans ces chiers est souvent trs rduite, ce qui fait que
ces donnes sont toujours places dans la mmoire cache du systme. Ainsi, bien quil sagisse de
chiers, aucune criture ou lecture sur disque na lieu lors de lutilisation dun pipe.
Les tubes nomms sont crs par la commande mkfo, dont la syntaxe est la suivante :
mkfifo nom
o nom est le nom du tube nomm. Notez que cette commande chouera sur les systmes de chiers
incapables de grer les tubes nomms.
Une fois cr, le chier de tube peut tre utilis comme nimporte quel chier dans les redirections
que lon a vues dans la section prcdente. Par exemple, la redirection suivante :
ls | less
peut tre rcrite pour utiliser un tube nomm temporaire de la manire suivante :
84
Chapitre 5. Commandes Unix de base
mkfifo /tmp/tempfifo
ls > /tmp/tempfifo
less < /tmp/tempfifo
La destruction dun tube nomm se fait comme nimporte quel chier, laide de la commande rm.
5.9.3.3. La commande tee
La commande tee est un petit programme permettant denregistrer les donnes quil reoit dans son
ux dentre standard dans un chier et de les renvoyer simultanment vers son ux de sortie standard.
Elle est couramment utilise, en conjonction avec les tubes, pour dupliquer un ux de donnes. Sa
syntaxe est la suivante :
tee fichier
o fichier est le nom du chier dans lequel le ux dentre standard doit tre enregistr.
Supposons par exemple que lon dsire rediriger tous les messages (derreur ou non) de la commande
ls /proc/1/* dans un chier result.txt, tout en continuant les visualiser sur lcran. Pour cela, on
utilisera la commande suivante :
ls -l /proc/1 2>&1 | tee result.txt
lissue de cette commande, le chier result.txt contiendra une copie des donnes qui ont t
mises par la commande ls -l /proc/1 2>&1.
5.9.3.4. La commande xargs
La commande xargs permet dappeler une autre commande, en passant en paramtre les donnes
quelle reoit dans le ux dentre standard. Sa syntaxe est la suivante :
xargs commande
o commande est la commande que xargs doit excuter. xargs construira une ligne de commande
complte pour cette commande, en utilisant comme paramtres les donnes issues du ux dentre
standard. Une fois cette ligne de commande construite, xargs lexcutera. Par exemple, la commande
suivante :
ls -l
peut tre excute galement de la manire suivante :
xargs ls
et en tapant la chane de caractres -l suivie du caractre de n de chier CTRL+D.
La commande xargs est une commande extrmement utile lorsquelle est utilise conjointement avec
les tubes, parce quelle permet dutiliser le rsultat dune commande en tant que paramtre pour
une autre commande. Ce mcanisme est donc complmentaire de celui des pipes, puisque ceux-ci
permettaient dutiliser le rsultat dune commande pour alimenter le ux dentre standard dune
autre commande.
85
Chapitre 5. Commandes Unix de base
Un exemple plus utile que le prcdent permettra de mieux comprendre comment on utilise la com-
mande xargs. Supposons que lon dsire trouver tous les chiers dune arborescence complte dont
lextension est .txt et contenant la chane de caractres test . La liste des chiers de larborescence
peut tre dtermine simplement laide de la commande nd, et la recherche du texte dans les -
chiers se fait naturellement laide de la commande grep. On utilisera xargs pour construire la ligne
de commande pour grep, partir du rsultat fourni par la commande nd :
find -name "*.txt" | xargs grep -l "test"
Cette commande est plus simple et plus efcace que la commande quivalente :
find -name "*.txt" -exec grep -l "test" {} \;
parce que grep nest excut quune seule fois (alors que loption -exec de la commande nd
lexcute pour chaque chier trouv).
5.9.4. Manipulation des variables denvironnement
Les systmes Unix permettent de dnir un environnement dexcution pour chaque programme
en cours dexcution. Lenvironnement est un ensemble de paramtres, que lon appelle les va-
riables denvironnement, qui permettent de modier le comportement du programme. Ces variables
contiennent une valeur de type chane de caractres, dont la signication est propre chaque variable.
Il est dusage que les noms des variables denvironnement soient crits compltement en majuscules,
mais ce nest pas une obligation.
Chaque programme est susceptible de reconnatre un certain nombre de variables denvironnement qui
lui sont propres, mais il existe galement des variables standards que tous les programmes utilisent.
Cest notamment le cas de la variable denvironnement PATH, qui contient la liste des rpertoires
dans lesquels le systme doit rechercher les programmes excuter. Cette variable permet donc de
lancer les programmes en tapant simplement leur nom, et de laisser le systme rechercher le chier
de ce programme dans chacun des rpertoires indiqus dans cette variable.
Par dfaut, les programmes sont lancs avec lenvironnement du programme qui les lance, cest--
dire dans la plupart des cas lenvironnement dexcution du shell. Les programmes peuvent galement
dnir de nouvelles variables denvironnement, qui seront ainsi accessibles par les programmes quils
lanceront eux-mmes.
Comme tout programme, le shell dispose dun environnement, quil utilise pour stocker ses propres
variables. En effet, comme nous lavons dj signal plus haut, le shell est bien plus quun interpr-
teur de commande : il est compltement programmable. Et en tant quinterprteur dun langage de
programmation, il fournit la possibilit de dnir des variables de ce langage. Les variables du shell
sont donc galement des variables denvironnement, mais le shell ne les communique pas par dfaut
aux programmes quil lance. Pour tre plus prcis, le shell utilise deux environnements diffrents :
son propre environnement, qui contient les variables denvironnement locales la session du shell
en cours ;
lenvironnement dexcution, dont les variables denvironnement sont transmises aux programmes
que le shell lance.
86
Chapitre 5. Commandes Unix de base
Il est trs facile de dnir une variable du shell. Pour cela, il suft de lui affecter une valeur, laide
de la syntaxe suivante :
variable=valeur
o variable est le nom de la variable dnir, et valeur est la valeur que lon dsire lui affecter.
Notez quil nest pas ncessaire de fournir une valeur. Dans ce cas, la variable ainsi dnie sera vide.
Par exemple, la ligne suivante :
BONJOUR="Bonjour tout le monde \!"
permet de dnir la variable BONJOUR. Notez que la valeur est encadre entre guillemets, car elle
contient des espaces. Notez galement que le caractre point dexclamation (!) est prcd dun ca-
ractre dchappement antislash (\), car il a une signication particulire pour le shell. Ce caractre
dchappement permet simplement de signaler au shell quil ne doit pas interprter le caractre qui le
suit, et fait donc en sorte que le point dexclamation fasse partie de la chanes de caractres affecter
la variable. Bien entendu, le caractre antislash tant lui-mme un caractre spcial pour le shell, il
doit lui-mme tre prx dun autre antislash si lon dsire lutiliser dans une chane de caractres.
La valeur dune variable peut tre rcupre simplement en prxant le nom de la variable du symbole
dollar ($). Ainsi, la commande suivante permet dafcher le contenu de la variable BONJOUR :
echo $BONJOUR
Les variables ainsi dnies ne font partie que de lenvironnement du shell, elles ne sont donc pas ac-
cessibles aux programmes que le shell lance. Donc, si lon relance un nouveau shell avec la commande
suivante :
bash
et que lon essaie de lire le contenu de la variable BONJOUR avec la commande echo, on obtient
une chane vide. Cela est normal, puisque le deuxime shell (cest--dire celui qui est en cours
dexcution) nutilise pas le mme environnement que le premier shell. Vous pouvez quitter le nou-
veau shell avec la commande suivante :
exit
Ds lors, vous serez nouveau dans le shell initial, et la variable BONJOURsera nouveau accessible.
Pour rendre une variable du shell accessible aux programmes que celui-ci peut lancer, il faut lexporter
dans lenvironnement dexcution. Cela peut tre ralis avec la commande export :
export variable
o variable est le nom de la variable du shell exporter dans lenvironnement dexcution.
La syntaxe prcdente exporte de manire permanente les variables du shell. Mais il existe galement
une autre syntaxe, qui permet de ne dnir des variables denvironnement que pour lenvironnement
dexcution dune seule commande. Cette syntaxe consiste simplement prxer la commande
excuter par la dnition de ladite variable. Par exemple, la commande suivante :
BONSOIR="Bonsoir tout le monde \!" bash
87
Chapitre 5. Commandes Unix de base
permet de lancer un shell et de lui communiquer la variable denvironnement BONSOIR. Cette va-
riable ne sera dnie que pour ce programme, si lon quitte ce shell avec un exit, la variable BONSOIR
ne sera plus dnie.
Une variable peut tre dtruite tout instant laide de la commande unset. Cette commande prend
en paramtre le nom de la variable supprimer. Par exemple, la commande suivante supprime notre
variable :
unset BONJOUR
Vous pouvez tout moment visualiser lensemble des variables dnies avec la commande set. Le ta-
bleau donn ci-dessous vous prsentera les variables denvironnement les plus utilises, que la plupart
des programmes utilisent pour permettre lutilisateur de modier leur comportement :
Tableau 5-3. Variables denvironnements courantes
Nom Signication
HOME Chemin du rpertoire personnel de lutilisateur.
USER Nom de login de lutilisateur. Cette information est galement
disponible au travers de la variable denvironnement LOGNAME.
TERM Type de terminal utilis. La valeur de cette variable sert aux
applications pour dterminer les caractrisques du terminal et ses
fonctionnalits an doptimiser leur afchage. La valeur de cette
variable est souvent linux sur les consoles Linux, et xterm dans les
mulateurs de terminal graphiques sous X11. Nous verrons lutilit
de cette variable plus en dtail dans la Section 6.7.7.
SHELL Chemin sur le chier de programme du shell actuellement utilis.
Sous Linux, il sagit souvent du shell bash.
PATH Liste des rpertoires dans lesquels les programmes excuter seront
recherchs. Cette liste ne doit pas contenir le rpertoire courant (.)
pour des raisons de scurit de base (il suft de placer un cheval de
troie portant le nom dune commande classique dans un rpertoire
pour que lutilisateur le lance sans sen rendre compte).
LD_LIBRARY_PATH Liste des rpertoires dans lesquels les bibliothques dynamiques
seront recherches si elles ne sont pas trouvables dans les rpertoires
classiques des bibliothques de programme du systme.
C_INCLUDE_PATH Liste des rpertoires dans lesquels le compilateur C recherchera les
chiers den-tte lors de la compilation des chiers sources C. Cette
liste doit contenir les rpertoires additionnels, qui ne sont pas dj
pris en compte automatiquement par le compilateur C.
CPLUS_INCLUDE_PATH Liste des rpertoires dans lesquels le compilateur C++ recherchera
les chiers den-tte lors de la compilation des chiers sources
C/C++. Cette liste doit contenir les rpertoires additionnels, qui ne
sont pas dj pris en compte automatiquement par le compilateur
C++.
88
Chapitre 5. Commandes Unix de base
Nom Signication
LIBRARY_PATH Liste des rpertoires dans lesquels les bibliothques utiliser lors de
ldition de liens des programmes doivent tre recherches. Cette
variable nest utilise que par les outils de dveloppement lors de la
compilation de chiers sources et elle ne doit pas tre confondue
avec la variable denvironnement LD_LIBRARY_PATH, qui indique
la liste des rpertoires dans lequel lditeur de liens dynamiques
recherchera les bibliothques dynamiques utilises par les
programmes lors de leur chargement. Les notions de chiers sources
et de compilation seront dtailles dans le Chapitre 7.
TMPDIR Rpertoire des chiers temporaires. Par dfaut, le rpertoire des
chiers temporaires est le rpertoire /tmp/, mais il est possible den
changer grce cette variable denvironnement.
TZ Dnition de la zone horaire de lutilisateur. Le systme travaillant
exclusivement en temps universel, chaque utilisateur peut dnir sa
propre zone horaire pour obtenir lafchage des dates et des heures
dans son temps local. Le format de cette variable denvironnement
est assez complexe. Il est constitu de plusieurs champs spars par
des espaces, reprsentant successivement le nom du fuseau horaire
(au moins trois caractres), le dcalage ajouter lheure universelle
pour obtenir lheure locale, le nom du fuseau horaire pour lheure
dt, le dcalage pour lheure dt, et les dates de dbut et de n de
lheure dt. Les dcalages horaires doivent tre exprims avec un
+ pour les fuseaux horaires placs louest de Greenwich, - pour
ceux situs lest. Les dates de dbut et de n de la priode dheure
dt peuvent tre exprims de deux manires diffrentes. La
premire mthode est dindiquer le numro du jour dans lanne
aprs la lettre J. Ce numro ne doit pas tenir compte du 29 fvrier,
mme pour les annes bissextiles. La deuxime mthode est
dindiquer le mois de lanne, la semaine du mois et le jour de la
semaine, spars par des ., et aprs la lettre M. Les mois sont
compts de 1 12, les semaines de 1 5 et les jours de 0 6, 0 tant
le dimanche. Seul le premier champ est obligatoire, et il est possible
dutiliser les noms de fuseaux horaires dnis par la bibliothque C.
En France, on utilise normalement le fuseau CES (temps dEurope
centrale).
LANG Nom de la locale utiliser par dfaut pour les paramtres
dinternationalisation des applications. Cette valeur sera utilise pour
les paramtres qui nen dnissent pas une explicitement. Elle doit
tre compose de deux codes deux caractres, le premier indiquant
la langue, et le deuxime le pays (car plusieurs pays peuvent parler la
mme langue, et un pays peut avoir plusieurs langues nationales).
Pour la France, on utilise normalement la valeur fr_FR . Cette
valeur peut tre rednie par lune des variables denvironnement
dcrites ci-dessous.
LC_MESSAGES Nom de la locale utiliser pour dterminer la langue des messages.
La valeur par dfaut est spcie par la variable denvironnement
LANG.
89
Chapitre 5. Commandes Unix de base
Nom Signication
LC_TYPE Nom de la locale utiliser pour dterminer les rgles de classication
des caractres. La classication des caractres permet de dire si un
caractre est un chiffre ou non, sil est en majuscule ou en minuscule,
etc. La valeur par dfaut est spcie par la variable denvironnement
LANG.
LC_COLLATE Nom de la locale utiliser pour dterminer les rgles de comparaison
des caractres. La comparaison des caractres est utilise pour les tris
lexicographiques (tri par ordre alphabtique par exemple). La valeur
par dfaut est spcie par la variable denvironnement LANG.
LC_MONETARY Nom de la locale utiliser pour dterminer lemplacement et le
caractre reprsentant le symbole montaire du pays. La valeur par
dfaut est spcie par la variable denvironnement LANG.
LC_NUMERIC Nom de la locale utiliser pour dterminer les conventions locales
dcriture des nombres (sparateur dcimal, format de la virgule,
etc.). La valeur par dfaut est spcie par la variable
denvironnement LANG.
En rsum, le shell utilise les variables denvironnement du systme pour grer ses propres variables,
et permet de les exporter vers lenvironnement dexcution quil communique aux commandes quil
lance. Un grand nombre de variables denvironnement classiques sont reconnues par les programmes.
Elles servent paramtrer leur comportement. Nous reverrons ultrieurement quelques-unes de ces
variables lors de la conguration du systme de base.
5.9.5. Caractre dchappement et chanes de caractres
Un certain nombre de caractres sont interprts par le shell dune manire spciale. Nous en avons
dj vu quelques-uns pour les redirections et les tubes, mais il en existe dautres. Par consquent, il
faut utiliser une syntaxe particulire lorsquon dsire utiliser un de ces caractres dans une commande
du shell sans quil soit interprt par le shell. Pour cela, il suft de faire prcder ces caractres
du caractre dchappement antislash (caractre de la barre oblique inverse, \). Ce caractre permet
dindiquer au shell que le caractre suivant doit tre trait tel quel et ne doit pas tre interprt avec
son sens habituel. Par exemple, pour crer un rpertoire nomm <, on utilisera la commande suivante :
mkdir \<
Bien entendu, le caractre antislash peut lui-mme tre prcd dun autre antislash, lorsquon veut
lutiliser en tant que caractre normal.
Le caractre dchappement antislash permet galement, lorsquil est plac en n de ligne, de suppri-
mer le saut de ligne qui le suit. Cela signie quil permet de rpartir une commande trop longue sur
plusieurs lignes, des ns de lisibilit. Vous trouverez quelques exemples de cette notation plus loin
dans ce document, pour prsenter des commandes trop longues pour tenir sur une page A4.
Il peut tre relativement fastidieux de devoir taper des antislashs dans les chanes de caractres qui
contiennent beaucoup de caractres interprtables par le shell. Cest pour cela que le shell permet de
dnir des chanes de caractres dont il ignore le contenu lors de lanalyse syntaxique. Ces chanes de
caractres sont simplement donnes entre guillemets simples (caractre ). Par exemple, la commande
suivante :
90
Chapitre 5. Commandes Unix de base
MESSAGE=La syntaxe est A | B
permet daffecter la chane de caractres La syntaxe est A | B, contenant des espaces et le ca-
ractre | normalement utilis par le shell pour les tubes, dans la variable denvironnement MESSAGE.
Note : Une chane de caractres commence par un guillemet et se termine par un guillemet. Les
chanes de caractres ne peuvent donc pas contenir de guillemet, mme prcd dun caractre
dchappement.
On veillera ne surtout pas confondre les guillemets simples (caractre ) avec les guillemets
inverses (caractre ). Ces deux caractres se ressemblent en effet normment dans certaines
polices de caractres, mais ont nanmoins une signication trs diffrente. Le premier sert
dnir des chanes de caractres, et le deuxime excuter une commande et en inclure le
rsultat dans une autre commande. Nous verrons plus loin comment utiliser ce type de guillemets.
Les guillemets simples sont donc trs pratiques pour crire simplement une chane de caractres, mais
ne permettent pas de bncier des fonctionnalits de substitutions du shell, comme par exemple le
remplacement dune variable par sa valeur dans la chane de caractres. De plus, elles ne peuvent pas
contenir de guillemets simples, puisque cest leur caractre de terminaison. Cest pour ces raisons que
le shell donne la possibilit de dnir des chanes de caractres plus souples, laide des guillemets
doubles (caractre "). Dans ces chanes de caractres, la plupart des caractres normalement interpr-
ts par le shell ne le sont plus, comme pour les chanes de caractres utilisant les guillemets simples.
Cependant, les caractres spciaux $, et \ conservent leur signication initiale. Il est donc possible,
par exemple, dutiliser des variables denvironnement dans les chanes de caractres de ce type :
echo "Mon nom est $USER"
Le caractre dchappement antislash peut toujours tre utilis, en particulier pour insrer un caractre
de guillemets doubles dans une chane de caractres. En effet, ce caractre marquerait la n de la
chane de caractres sil ntait pas prcd dun antislash.
Note : Remarquez que les guillemets et les caractres dchappement ne sont utiliss que pour
lanalyse de la ligne de commande. Une fois toutes les chanes de caractres et toutes les sub-
stitutions traites, les guillemets et les caractres dchappement inutiles sont supprims. En
pratique, ce sont tous les caractres dchappement et les guillemets qui restent aprs traite-
ment de la ligne de commande et qui ne font pas partie du rsultat dune des substitutions. Ainsi,
la commande suivante :
echo "Bonjour tout le monde"
a pour but de passer la chane de caractres Bonjour tout le monde en tant que premier (et
unique) paramtre de la commande echo, puis de lexcuter. Les guillemets ne font pas partie
de la chane de caractres, ils ont t supprims par le shell et seul le contenu de la chane sera
effectivement afch.
Notez que la commande prcdente est trs diffrente de celle-ci :
echo Bonjour tout le monde
mme si le rsultat est le mme. En effet, cette dernire commande passe les chanes de carac-
tres Bonjour, tout, le et monde en tant que paramtres (4 au total) la commande echo, alors
que lutilisation des guillemets permet de passer toute la phrase en un seul paramtre. On peut
91
Chapitre 5. Commandes Unix de base
voir la diffrence en utilisant plus dun espace entre chaque mot : les espaces superus ne sont
conservs que dans la premire commande.
5.9.6. Les substitutions
Lune des fonctionnalits les plus puissantes du shell est sans doute sa capacit effectuer des sub-
stitutions dexpressions par leur valeur. Lune des substitutions les plus courantes est sans doute le
remplacement dune variable par sa valeur, mais le shell peut faire beaucoup plus que cela. Les lignes
de commandes peuvent tre crites en utilisant diffrents types dexpressions spciales, qui seront
remplaces par leur valeur par le shell avant lexcution de la commande. Ces expressions permettent
de spcier des motifs de chane de caractres, dexprimer des chemins partiels sur des chiers ou
des rpertoires, de rcuprer la valeur des variables du shell, et de calculer des expressions mathma-
tiques, voire dinclure le rsultat dune autre commande dans la ligne de commande en cours.
Les mcanismes des substitutions dcrits ci-dessous sont prsents par ordre de priorit dcroissante.
Cela signie que si une expression substituable contient elle-mme une autre expression substituable
de priorit infrieure, cette expression sera remplace aprs la substitution de lexpression contenante.
5.9.6.1. Gnration de chanes de caractres selon un motif
Il est possible de demander au shell de gnrer une srie de chanes de caractres selon un motif
simple. Ce motif est toujours constitu dun prxe, suivi dune partie variable, suivie dun sufxe.
La partie variable du motif est celle qui subira les substitutions pour gnrer une liste de chanes
de caractres commenant par le prxe suivi du rsultat de la substitution et se terminant par le
sufxe. Cette partie variable doit tre spci entre accolades, et prend la forme dune liste de valeurs
possibles pour chaque substitution, spares par des virgules. Par exemple, la commande suivante :
ls test{0,1,2,3,4}
sera transforme par le shell en la commande suivante :
ls test0 test1 test2 test3 test4
Note : Ceux qui se souviennent un peu de leurs mathmatiques se diront quil sagit l dune
factorisation. Cest rigoureusement exact.
5.9.6.2. Substitution du nom dutilisateur
Le caractre tilde (~) est remplac par le nom de lutilisateur courant ou, dfaut de nom, par le
chemin sur le rpertoire personnel de cet utilisateur. Il est possible de spcier un autre utilisateur en
donnant le nom de login de cet autre utilisateur immdiatement aprs le caractre tilde. Par exemple,
la commande suivante :
cp *.txt ~jean
92
Chapitre 5. Commandes Unix de base
permet de copier tous les chiers dextension .txt dans le rpertoire personnel de lutilisateur jean.
5.9.6.3. Remplacements de variables
Comme il la dj t indiqu plus haut, la valeur des variables du shell et des variables
denvironnement peut tre rcupre en prxant le nom de la variable par le caractre dollar ($).
En fait, cette criture est lune des formes les plus simples que peuvent prendre les substitutions de
paramtres. En effet, il est possible de remplacer lexpression par une partie seulement de la valeur
de la variable, ou une par une autre valeur calcule partir de celle de la variable.
En pratique, les expressions utilises par les substitutions de variables peuvent tre relativement com-
pliques, et il peut tre ncessaire de les isoler du reste de la ligne de commande laide daccolades.
La syntaxe exacte complte de ce type de substitution est donc la suivante :
${expression}
o expression est lexpression qui dnit la chane de remplacement utiliser.
Si cette expression est un nom de variable, ce sera le contenu de cette variable qui sera utilis pour la
substitution. Il est possible de fournir une valeur par dfaut pour le cas o cette variable ne contient
rien ou nest pas dnie. Pour cela, on utilisera la syntaxe suivante :
${variable:-valeur}
o valeur est la valeur par dfaut utiliser dans ce cas. Notez que la variable reste indnie aprs
la substitution. Pour xer la valeur de la variable cette valeur par dfaut en plus deffectuer la
substitution, on utilisera plutt la syntaxe suivante :
${variable:=valeur}
valeur a toujours la mme signication dans cette syntaxe.
Il est parfois prfrable dafcher un message derreur plutt que de donner une valeur par dfaut
lorsquune variable nest pas dnie. Cela peut se faire avec la syntaxe suivante :
${variable:?message}
o message est le message afcher dans le cas o la variable variable est non dnie ou de valeur
nulle.
Si lon veut tester si une variable est non dnie et renvoyer une valeur spcique si elle est dnie,
on utilisera la syntaxe suivante :
${variable:+valeur}
o valeur est la valeur renvoyer si la variable est dnie. Si la variable nest pas dnie, la substi-
tution sera faite avec la chane de caractres vide (lexpression complte sera donc supprime).
Le shell permet galement de faire la substitution avec une sous-chane de la valeur de la variable,
partir dune position donne et dune longueur. La syntaxe utiliser est donne ci-dessous :
${variable:position:longueur}
o position est la position laquelle commence la sous-chane extraire, et longueur est le
nombre de caractres extraire. Ce dernier champ est facultatif (on ne mettra pas non plus les deux-
points prcdents si on dcide de ne pas spcier de longueur). Si on ne le prcise pas, la sous-chane
extraite sera constitue du reste de la valeur de la variable partir de la position indique. La position
93
Chapitre 5. Commandes Unix de base
quant elle doit tre positive ou nulle. Une valeur ngative indique un point de dpart correspondant
au nombre de caractres correspondant partir de la droite de la valeur de la variable. Si lon veut
obtenir la longueur dune chane de caractres contenue dans une variable, on utilisera cette syntaxe :
${#variable}
o variable est toujours le nom de la variable.
Il est galement possible de considrer que la valeur dune variable est une chane de caractre pr-
xe dune autre chane de caractres particulire. Le shell permet dextraire la chane de caractres
principale, en supprimant ce prxe. Pour raliser cette opration, on utilisera lune des syntaxes
suivantes :
${variable#prfixe}
ou :
${variable##prfixe}
o variable est la variable contenant la chane de caractres traiter, et prfixe est le prxe
supprimer.
En fait, le prxe peut tre spci laide dun motif de caractres. Ce motif peut correspondre
une partie plus ou moins grande de la valeur de la variable. Dans ce cas, il y a plusieurs manires
dinterprter ce motif, et donc plusieurs choix de prxes possibles supprimer. La premire syntaxe
devra tre utilise lorsquon dsire supprimer le plus petit prxe possible correspondant au motif.
La deuxime syntaxe, quant elle, permettra de supprimer le prxe le plus long. Par exemple, si la
variable VAR contient la chane de caractres abbbc, la commande suivante :
echo ${VAR#a*b}
afchera la chane de caractres bbc, car le plus petit prxe correspondant au motif a*b est ab.
Inversement, la commande :
echo ${VAR##a*b}
utilisera le prxe le plus long, savoir abbb. Le rsultat de cette substitution sera donc la chane de
caractres c. La syntaxe des motifs de caractres utiliss ici sera prcise dans la Section 5.9.7.
Le shell fournit une syntaxe similaire pour extraire des sufxes de la valeur des variables. Cette
syntaxe utilise simplement le caractre % au lieu du caractre #. Comme pour les prxes, le fait de
doubler ce caractre implique que le sufxe le plus long correspondant au motif sera utilis, alors que
lutilisation dun seul % permet de choisir le sufxe le plus court. Ainsi, la commande :
echo ${VAR%b*c}
afchera la chane de caractres abb, alors que la commande :
echo ${VAR%%b*c}
nafchera que a.
Pour terminer ce tour dhorizon des remplacements de variables, nous allons voir les possibilits de
recherche et de remplacement du shell dans les chanes de caractres contenues dans des variables.
La syntaxe suivante :
94
Chapitre 5. Commandes Unix de base
${variable/motif/remplacement}
permet de rechercher la plus grande sous-chane de caractres correspondant au motif motif dans
la chane contenue dans la variable variable, et de remplacer cette sous-chane par la chane de
caractres remplacement. Par exemple, si la variable VAR contient la chane de caractres abab, la
commande suivante :
echo ${VAR/b/d}
afchera la chane de caractres adab.
Ce remplacement nest donc effectu quune seule fois. Si lon veut que toutes les occurrences du
motif soient remplaces par la chane de remplacement, il suft de doubler le premier / :
${variable//motif/remplacement}
Dans les deux syntaxes, la prsence du champ remplacement est facultative. Cela permet de suppri-
mer purement et simplement les sous-chanes de caractres qui correspondent au motif.
La syntaxe des motifs sera dtaille dans la Section 5.9.7. Cependant, une prcision doit tre signale :
si le motif commence par le caractre #, il sera obligatoirement recherch au dbut de la chane
de caractres contenue dans la variable. De mme, si le motif commence par le caractre %, il sera
obligatoirement recherch la n de cette chane. Ces deux notations permettent dobtenir le mme
effet que les suppressions de prxes et de sufxes prsentes plus haut.
5.9.6.4. Substitution du rsultat dune commande
Le shell peut valuer une commande apparaissant dans une expression an de la remplacer par son
rsultat. Il existe deux syntaxes pour raliser ce type de substitutions. La premire, et la plus classique
(voire historique), utilise des guillemets inverses :
commande
o commande est la commande devant tre remplace par son rsultat (cest--dire ce quelle enverra
ce rsultat sur le ux standard de sortie). Pour donner un exemple, la commande suivante :
kill cat /var/pid/p.pid
a pour rsultat de lancer un signal SIGTERM au processus dont le PID est stock dans le chier
/var/pid/p.pid. La commande cat est utilise pour afcher le contenu de ce chier, et elle est
substitue par ce contenu. En n de compte, la commande kill est appliqu au PID afch par cat.
La deuxime syntaxe utilisable est la suivante :
$(commande)
o commande est toujours la commande excuter et substituer. La diffrence entre ces deux syn-
taxes est que, dans le premier cas, les caractres $, et \ sont toujours interprts par le shell et
doivent tre prcds dun antislash sils doivent apparatre tels quels dans la commande substituer,
alors que, dans le deuxime cas, on peut utiliser tous les caractres sans protection particulire (sauf,
bien entendu, la parenthse fermante, puisquelle marque la n de la commande).
95
Chapitre 5. Commandes Unix de base
5.9.6.5. valuation dexpressions arithmtiques
En gnral, le shell ne manipule que des chanes de caractres. Cependant, il est capable dvaluer des
expressions mathmatiques simples faisant intervenir des entiers. Pour cela, il faut utiliser la syntaxe
suivante :
$((expression))
o expression est lexpression valuer.
Les expressions mathmatiques peuvent contenir tous les oprateurs classiques du langage C : addi-
tion, soustraction, multiplication et division. Il existe en plus un oprateur dlvation la puissance,
reprsent par une double toile (**). Les oprateurs de dcalage binaires vers la gauche (<<) et
la droite (>>) sont galement utilisables, ainsi que les oprateurs de manipulation de bits & ( ET
binaire ), | ( OU binaire ), ^ ( OU binaire exclusif ) et ~ ( ngation binaire ).
Comme en C, les comparaisons logiques peuvent galement tre values, elles ont la valeur 1 lorsque
lexpression qui les utilise est vraie, et 0 dans le cas contraire. Les oprateurs disponibles sont ==, <,
<=, >, >= et !=. Les tests peuvent tre composs laide des oprateurs && ( ET logique ) et ||
( OU logique ).
Les divers oprateurs daffectation du langage C +=, -=, etc. sont galement disponibles.
5.9.6.6. Substitution de commandes
Nous avons dj vu quil tait possible de rcuprer le rsultat dune commande pour linsrer dans
une ligne de commande. Cette technique sapparente ce quil est possible de faire avec la commande
xargs et un pipe. De la mme manire, le shell fournit une substitution permettant dobtenir des
fonctionnalits similaires celles fournies par les pipes nomms. Cette substitution est la substitution
de commande.
La syntaxe utilise par les substitutions de commandes est similaire celle des redirections
classiques :
<(command)
ou :
>(command)
o command est la commande substituer.
La premire syntaxe permet de lancer une commande en arrire-plan en redirigeant son ux standard
de sortie vers un descripteurs de chiers du shell. Le rsultat de cette substitution est le nom du chier
/dev/fd/n permettant de lire les donnes crites par la commande dans ce descripteur de chier. En
pratique, on utilise donc cette substitution en lieu et place dun chier dentre pour une commande
normale. La deuxime commande permet de lancer galement une commande en arrire-plan, mais
en redirigeant le ux dentre standard de cette commande cette fois. Il est alors possible de fournir
les donnes ncessaires cette commande en crivant dans le chier /dev/fd/n dont le nom est
fourni par le rsultat de la substitution.
Ces deux commandes permettent donc de simplier lusage des pipes nomms, en vitant davoir
crer un chier de tube nomm manuellement et davoir lancer les deux commandes devant se servir
de ce tube pour communiquer. Ainsi, la commande suivante :
cat <(ls)
96
Chapitre 5. Commandes Unix de base
est fonctionnellement quivalente la srie de commandes suivante :
mkfifo /tmp/lsfifo
ls > /tmp/lsfifo
cat /tmp/lsfifo
rm /tmp/lsfifo
Les substitutions de commandes sont donc nettement plus pratiques et plus sres, car elles nimposent
pas la cration dun chier de pipe nomm dont le nom peut tre choisi arbitrairement.
5.9.6.7. Dcoupage en mots
Les rsultats provenant des substitutions vues prcdemment sont systmatiquement dcomposs en
srie de mots par le shell avant de poursuivre le traitement de la ligne de commande. Cela signie
que les rsultats de substitutions sont analyss pour identier les mots quils contiennent, en se basant
sur la notion de sparateur. Par dfaut, les sparateurs utiliss sont lespace, le caractre de tabulation
et le retour de ligne, mais il est possible de spcier des sparateurs diffrents laide de la variable
denvironnement IFS (abrviation de langlais Internal Field Separator ).
Par exemple, le rsultat de la commande ls dans la commande suivante :
echo ls
est une chane de caractres contenant la liste des chiers du rpertoire courant, chacun tant spar
du suivant par un caractre de saut de ligne. La substitution du rsultat de cette commande est donc
soumise au dcoupage en mots, et chaque caractre de retour la ligne est interprt comme un
sparateur. Par consquent, cette chane de caractres est transforme en une liste de mots, chacun
de ces mots tant un des noms de chiers renvoys par la commande ls. Au nal, la commande echo
est appele, avec comme paramtres ces noms de chiers, raison dun par paramtre. Les noms de
chiers sont donc afchs sur une seule ligne.
Note : Ce dcoupage en mot est effectu automatiquement par le shell la suite des substitutions
vues prcdemment. Cela signie en particulier que sil ny a pas de substitution, il ny a pas de
dcoupage en mots non plus.
5.9.6.8. Remplacement des caractres gnriques
Si, aprs avoir appliqu toutes les formes de substitutions prcdentes, le shell trouve des caractres
gnriques * et ? dans lexpression en cours de traitement, il interprtera la partie de lexpression
contenant ces caractres comme un motif reprsentant des chemins de chier Unix. Les caractres * et
? auront donc le comportement que lon a dj dcrit dans la Section 5.5. Ce motif sera donc remplac
par autant de chemins Unix lui correspondant que possible. Rappelons que le caractre gnrique
* reprsente 0 ou plusieurs caractres quelconques, et que le caractre gnrique ? reprsente un
caractre et un seul. Les chemins gnrs sont classs par ordre alphabtique.
Il est possible galement de restreindre le jeu de caractres utilis par le shell pour rechercher les
noms de chiers correspondants au motif. Pour cela, il faut lui indiquer un ensemble de caractres ou
de plages de caractres utilisables, spars par des virgules, et entre crochets. Les plages de caractres
sont spcies en indiquant le premier et le dernier caractre, spars par un tiret. Par exemple, la
commande suivante :
97
Chapitre 5. Commandes Unix de base
ls [a-c,m-t]*.txt
permet dafcher tous les chiers dont le nom commence par les lettres a, b, c et les lettres allant de
m t, et dont lextension est .txt. Vous trouverez de plus amples renseignements sur la syntaxe de
ces motifs dans la Section 5.9.7.
Sauf paramtrage pour indiquer explicitement de faire le contraire, le shell ignore systmatiquement
les rpertoires . et .. dans les substitutions. Cela est trs important. En effet, une commande utilisant
le caractre gnrique * ne sappliquera pas, par dfaut, sur le rpertoire courant et le rpertoire parent.
Paramtrer bash pour quil prenne en compte ces rpertoires peut tre extrmement dangereux, surtout
avec une commande telle que rm -f *, qui dans ce cas effacerait galement les rpertoires parents
en plus du contenu du rpertoire courant !
5.9.7. Les expressions rationnelles
Les substitutions de variables et de noms de chiers utilisent des motifs pour identier des chanes
de caractres. Ces motifs peuvent tre reconnus dans plusieurs chanes de caractres diffrentes, car
ils contiennent une ou plusieurs parties variables qui pourront reprsenter chacune une sous-chane
des chanes qui vrient ce motif. Par exemple, le motif a*b reprsente toute chane de caractres
commenant par un a et se terminant par un b. La sous-chane situe entre ces deux caractres peut
tre quelconque, et constitue la partie variable du motif.
La syntaxe utilise pour dnir les motifs de chanes de caractres dans le shell bash est un sous-
ensemble dun langage plus complexe permettant de dcrire ce que lon appelle les expressions ra-
tionnelles (lusage dit galement expressions rgulires ). Le langage des expressions rationnelles
est relativement compliqu, mais extrmement puissant. Ce langage permet didentier avec prci-
sion des sous-chanes de caractres dans un chane de caractres laide des parties variables des
expressions rationnelles, et permet ventuellement de remplacer ces sous-chanes par des chanes de
substitutions. Malheureusement, la description des expressions rationnelles pourrait prendre plusieurs
pages, aussi ne verrons-nous ici que expressions utilisables dans les substitutions du shell bash.
Comme vous lavez sans doute dj devin au travers des exemples prcdents, le caractre * permet
didentier une quelconque chane de caractres, y compris la chane vide. Utilis dans les expressions
rationnelles, il constitue la partie variable principale de ces expressions. De la mme manire, le
caractre ? reprsente un et un seul caractre quelconque. Ce caractre sera donc utilis quand on
dsirera contrler la taille de la partie variable dune expression rationnelle, ventuellement en le
rptant un certain nombre de fois.
Les deux caractres de substitutions prcdents peuvent contenir nimporte quel caractre, ce qui
peut parfois ne pas tre assez restrictif dans la dnition dun motif. Le shell fournit donc une syntaxe
plus volue, permettant de dnir prcisment le jeu de caractre auquel un caractre du motif doit
appartenir. Cette syntaxe consiste simplement donner la liste des caractres du jeu de caractres
entre crochets :
[...]
Les points de suspension reprsentent ici lensemble des caractres qui peuvent apparatre dans le
motif ainsi dni. Notez que dans le cas dune suite de caractres, il suft de spcier le premier et le
dernier caractre, et de les sparer par un trait dunion (caractre -). Ainsi, le motif suivant :
[a-egt]
reprsente nimporte lequel des caractres de a e, plus les caractres g et t.
98
Chapitre 5. Commandes Unix de base
Note : Pour spcier le caractre - lui-mme, il suft de le placer tout seul au dbut ou la n
de la liste de caractres spcie entre les crochets. De mme, pour spcier le caractre ]
lui-mme (normalement utilis pour marquer la n du jeu de caractres), il faut le placer au dbut
de la liste, juste aprs le crochet ouvrant.
Pour nir, sachez que le shell bash est galement capable de prendre en charge des expressions ration-
nelles plus complexes que celles prsentes ici. Cependant, ces expressions ne sont pas actives par
dfaut, et ne sont donc accessibles quen activant une option complmentaire du shell. Ces extensions
ne seront pas dcrites ici, mais vous pouvez consulter la page de manuel de bash si vous dsirez en
savoir plus ce sujet.
5.9.8. Structures de contrle
Tout langage de programmation digne de ce nom dispose de structures de contrles volues permet-
tant de contrler lexcution du programme, de raliser des boucles et de structurer lensemble dun
programme. Le shell nchappe pas la rgle, et fournit la plupart des constructions classiques. Cette
section a pour but dexposer leurs syntaxes.
5.9.8.1. Les instructions composes
Dans le langage du shell, une instruction se termine soit par un retour la ligne (non prcd dun
antislash), soit par un point-virgule. Les instructions peuvent tre pourtant trs complexes, car elles
peuvent contenir des tubes et des redirections. En fait, une instruction peut peu prs tre dnie
comme tant une ligne de commande normale du shell.
Le shell permet bien entendu de raliser des instructions composes, an de regrouper plusieurs
traitements dans un mme bloc dinstructions. La mthode la plus simple pour raliser un bloc
dinstructions est tout simplement de les regrouper sur plusieurs lignes, ou de les sparer par des
points-virgules, entre accolades. Par exemple, les instructions suivantes constituent un bloc
dinstructions :
{
cd /tmp
rm *.bak
}
Notez que laccolade fermante est considre comme une instruction part entire. Cela signie que
si lon ne met pas laccolade fermante sur une ligne indpendante, il faut faire prcder linstruction
prcdente dun point-virgule. De mme, il faut le faire suivre dun autre point-virgule sil ne se
trouve pas la n dune ligne.
Les instructions des instructions composes cres laide des accolades sont excutes au sein du
shell courant. Les variables quelles dnissent, ainsi que les changements de rpertoires, sont donc
toujours valides lissue de lexcution de ces instructions. Si cela nest pas dsirable, on pourra crer
des instructions composes laide de parenthses. Les instructions seront alors excutes dans un
autre shell, lanc pour loccasion, et elles nauront donc pas deffet de bord imprvu dans le shell
appelant. Par exemple, le rpertoire courant lissue de linstruction compose prcdente est le
rpertoire /tmp/, alors que linstruction compose suivante :
(
cd /tmp
99
Chapitre 5. Commandes Unix de base
rm *.bak
)
ne change pas le rpertoire courant.
Note : On ne confondra pas les instructions composes utilisant des parenthses et les substi-
tutions de rsultat de commande. Les instructions composes renvoient le code derreur de la
dernire instruction excute, alors que le rsultat des substitutions est ce que la commande a
crit sur son ux de sortie standard.
Le shell permet galement de raliser des instructions composes conditionnelles, o lexcution de
chaque instruction de linstruction compose est conditionne par le rsultat de linstruction prc-
dente. Ces instructions composes sont dnies laide des oprateurs || et &&. La syntaxe de ces
oprateurs est la mme :
command1 || command2
command1 && command2
o command1 et command2 sont deux commandes du shell (composes ou non). Avec loprateur
||, la commande command2 nest excute que si le code de retour de la commande command1 est
non nul, ou, autrement dit, si cette commande ne sest pas excute correctement. Inversement, avec
loprateur &&, la commande command2 nest excute que si la premire commande sest excute
correctement (et renvoie donc un code de retour nul). Par exemple, la commande suivante :
rm *.txt 2> /dev/null || echo "Aucun fichier supprimer"
permet deffacer tous les chiers dextension .txt, ou dafcher le message derreur Aucun
fichier supprimer sil nexiste pas de chier ayant une telle extension.
Les instructions composes peuvent tre utilises comme nimporte quelle commande normale. En
particulier, elles peuvent tre utilises dans des commandes plus complexes, par exemple comme
destination dun tube. Cest ce que faisait lexemple de dplacement de toute une arborescence dans
la Section 5.9.3.1.
5.9.8.2. Les tests
Sous Unix, chaque processus reoit plusieurs valeurs en paramtres et renvoie un code de retour.
La plupart des paramtres sont passs en ligne de commande, et sont rcuprs directement par le
processus, mais dautres paramtres peuvent tre fournis par le processus appelant par lintermdiaire
de variables denvironnement et de descripteurs de chiers. Le code de retour, quant lui, est un
entier signalant si lexcution du processus sest termine correctement ou si des erreurs ont eu lieu.
Si les codes derreurs varient grandement dun programme un autre, la valeur 0 signie toujours, et
ce quel que soit le programme, que lexcution sest droule correctement.
Il est possible de tester le code de retour dune commande avec linstruction if. La syntaxe la plus
simple pour un test est la suivante :
if commande ; then
action
fi
o commande est la commande dont on dsire tester le code de retour, et action est la commande
excuter si ce code vaut 0 (cest--dire, si la commande commande sest excute correctement).
100
Chapitre 5. Commandes Unix de base
Il peut paratre rducteur de ne pouvoir tester que le code de retour dune commande. Mais en fait,
cest une fonctionnalit trs puissante du shell, car elle permet de raliser tous les types de tests
imaginables. En effet, il existe une commande spciale, [, qui permet de raliser divers types de tests
sur les paramtres quon lui passe, et dajuster son code derreur en consquence. Par exemple, pour
tester lgalit dune variable denvironnement avec une chane de caractres, on utilisera la syntaxe
suivante :
if [ $variable == valeur ] ; then
action
fi
Notez que dans cette syntaxe, le test effectu est une commande complte. Cela implique quil faut
mettre une espace entre chaque paramtre, et en particulier entre le nom de la commande ([), le pre-
mier oprande ($variable), loprateur utilis (==), le deuxime oprande (valeur) et le caractre
de marque de n de test (]).
La commande [ est capable deffectuer tous les tests standards. Par dfaut, elle considre que les
deux oprandes du test sont des chanes de caractres, et elle utilise lordre lexicographique pour
les comparer. Les tests dgalit et dingalit sont effectus respectivement avec les oprateurs ==
et !=. Les oprateurs dantriorit dans lordre lexicographique sont < et <=, et les oprateurs de
postriorit sont > et >=. Notez que lutilisation de ces oprateurs peut tre relativement pnible,
parce que les caractres < et > sont interprts par le shell en tant que redirections. Par consquent,
il faut souvent les prcder du caractre dchappement antislash.
Lordre lexicographique convient dans la plupart des cas, mais il nest pas trs appropri pour la
comparaison de valeurs numriques. Par exemple, le test suivant :
if [ -1 \< -2 ] ; then
echo "-1 est plus petit que -2"
fi
est vri, car le caractre 1 prcde le caractre 2 dans lordre lexicographique. La commande [
fournit donc la possibilit dutiliser une autre syntaxe pour comparer les entiers. Cette syntaxe utilise
les options lt et gt respectivement pour les tests dinfriorit stricte et de supriorit stricte, et les
options le et ge respectivement pour les tests dinfriorit et de supriorit ou dgalit. Ainsi, le
test :
if [ $i -gt 3 ] ; then
echo "$i est suprieur 3"
fi
permet de comparer la valeur entire de la variable i avec le nombre 3.
Nous avons vu dans la Section 5.9.8.1 que les oprateurs || et && permettent de tester le code de
retour dune commande, et quen fonction de la valeur de ce code de retour, dexcuter ou non la
commande suivante. La syntaxe de ces oprateurs provient en fait de la possibilit de les employer
pour effectuer des tests complexes avec linstruction if. Par exemple, pour effectuer un ET logique
entre deux tests, on utilisera la syntaxe suivante :
if [ $i == "A" ] && [ $j -lt 3 ] ; then
echo "i contient la lettre \"A\" et j contient un nombre infrieur 3"
fi
101
Chapitre 5. Commandes Unix de base
Notez que la deuxime commande [ nest excute que si le premier test est vri. Lutilisation de
loprateur || se fait selon le mme principe. Il est bien entendu possible de regrouper plusieurs
commandes de test ensemble, laide de parenthses.
Comme dans la plupart des langages informatiques, linstruction if peut prendre une forme plus
complexe pour traiter les cas o le test nest pas vri. Ainsi, pour excuter une action spcique
pour le cas o le test serait faux, on peut utiliser la syntaxe suivante :
if commande ; then
action1
else
action2
fi
o commande est toujours la commande dont le code de retour sera test, action1 est laction qui doit
tre ralise si cette commande a renvoy le code de retour 0, et action2 la commande excuter
dans le cas contraire. De mme, si lon veut enchaner des tests, on utilisera le mot cl elif. La
syntaxe gnrale du test est donc la suivante :
if commande1 ; then
action1
elif commande2 ; then
action2
elif commande3 ; then
...
else
actionn
fi
Note : Pour des raisons doptimisation, le shell peut simuler le comportement du programme [, et
viter ainsi de le lancer chaque fois quil a faire un test. Cependant, le principe originel tait
bien celui dcrit ci-dessus. Cette description, bien que ntant plus tout fait exact, permet de
mieux comprendre la syntaxe du shell.
Il est possible de rcuprer la valeur du code de retour de la dernire commande excute grce
la variable spciale $?. Cependant, il est trs rare davoir manipuler cette valeur directement, car
les structures de contrle du shell telles que if permettent deffectuer les actions qui simposent
sans avoir la connatre.
Pour ceux qui savent programmer en C, sachez que le code de retour est la valeur renvoye par
la fonction C exit ou par linstruction return de la fonction principale main. Les paramtres de
la ligne de commande, quant eux, sont rcuprables par lintermdiaire des paramtres de la
fonction principale main.
Il ne faut pas oublier que la fonction premire du shell est de permettre les manipulations de chiers. Il
nest donc pas tonnant que la commande [ permette galement de raliser tous les tests imaginables
sur les chiers. Ces tests vont de lexistence dun chier au test de sa nature et de ses attributs, en
passant par les tests sur lidentit de son propritaire et de son groupe. La syntaxe gnrale de ces
tests est la suivante :
if [ option fichier ] ; then
.
.
.
102
Chapitre 5. Commandes Unix de base
fi
o option est une option de la commande [ dcrivant la proprit teste, et fichier est le nom du
chier sur lequel le test doit porter.
Les principales options utilisables dans les tests sur les chiers sont rcapitules dans le tableau ci-
dessous :
Tableau 5-4. Tests sur les chiers
Option Signication
-e Test dexistence dun chier ou dun rpertoire.
-d Test dexistence dun rpertoire.
-f Test dexistence dun chier normal.
-s Test dexistence dun chier et vrication que sa taille est non nulle.
-L Test dexistence dun lien symbolique.
-b Test dexistence dun chier spcial de priphrique de type bloc (disque dur,
CD-ROM, lecteur de cassettes, etc.).
-c Test dexistence dun chier spcial de priphrique de type caractre (port
srie, port parallle, carte son...).
-p Test dexistence dun tube.
-r Test dexistence du chier et daccessibilit en lecture de ce chier.
-w Test dexistence du chier et daccessibilit en criture de ce chier
-x Test dexistence du chier et de possibilit dexcution de ce chier.
-g Test dexistence du chier et de prsence du bit setgid sur ce chier.
-u Test dexistence du chier et de prsence du bit setuid sur ce chier
-k Test dexistence du chier et de prsence du bit sticky sur ce chier.
-O Test dexistence du chier et dappartenance de ce chier lutilisateur effectif
courant.
-G Test dexistence du chier et dappartenance de ce chier au groupe effectif
courant.
-N Test dexistence du chier et de modication de ce chier depuis la dernire
fois quil a t lu.
Note : Ce tableau nest pas exhaustif, mais les options les plus importantes et les plus utilises
sy trouvent.
Vous pourrez vous rafrachir la mmoire sur les notions de bit setuid, setgid et sticky, ainsi que
sur les notions dutilisateur et de groupe effectifs en relisant la Section 3.2.
La commande [ accepte galement les options -nt et -ot, qui permettent respectivement de tester si
un chier est plus rcent ou plus vieux quun autre, en se basant sur les dates de dernire modication
de ces chiers. Ces deux oprateurs sutilisent avec la syntaxe suivante :
if [ fichier1 option fichier2 ] ; then
.
.
.
103
Chapitre 5. Commandes Unix de base
fi
o fichier1 et fichier2 sont les deux chiers sur lesquels la comparaison doit porter, et option
est lune des options -nt ou -ot.
5.9.8.3. Le branchement conditionnel
Lorsquon veut effectuer diffrentes oprations selon la valeur dune variable, linstruction if peut
devenir trs lourde utiliser. En effet, si le nombre de valeurs diffrentes est grand, elle peut conduire
crire un grand nombre de tests. Le shell fournit donc une instruction de branchement conditionnel,
qui permet de spcier quelle action doit tre prise pour chaque valeur de la variable.
Le branchement conditionnel sutilise de la manire suivante :
case valeur in
( motif1 | motif2 | ... ) commande1 ;;
( motifn | motifn+1 | ... ) commande2 ;;
.
.
.
esac
o motif1, motif2... motifn+1 sont des motifs spciant les valeurs possibles pour la valeur
valeur, et commande1, commande2, etc. sont les commandes excuter pour les valeurs de ces
motifs.
La commande excute est la premire commande pour laquelle la variable correspond lun de ses
motifs correspondants. Une fois excute, la recherche se termine, et lexcution reprend la suite du
branchement conditionnel. Par exemple ce branchement conditionnel :
case $i in
( *.txt ) echo "$i est un fichier texte" ;;
( *.gz ) echo "$i est comprim avec gzip" ;;
( *.tar ) echo "$i est une archive" ;;
esac
afche la nature du chier dont le nom est stock dans la variable i partir de son extension.
Le code de retour du branchement conditionnel est 0 si la variable ne correspond aucun des motifs,
ou le code de retour de la commande excute sinon.
5.9.8.4. Les boucles
Il existe deux types de boucles : le while et le until. La syntaxe des boucles while est la suivante :
while commande ; do
action
done
o commande est une commande dont le code de retour est utilis comme critre de la n de la boucle,
et action est linstruction (compose ou non) excute chaque itration de la boucle. Comme
on le voit, le shell utilise le mme principe pour les boucles que pour les tests pour valuer une
condition. Tant que la commande commande renvoie un code de retour gal 0, linstruction action
est excute.
Linstruction until utilise la mme syntaxe que linstruction while :
104
Chapitre 5. Commandes Unix de base
until commande ; do
action
done
ceci prs que linstruction action est excute tant que la commande commande renvoie un code
de retour non nul. Linstruction until utilise donc simplement le test inverse de celui de linstruction
while.
Bien entendu, il est possible dutiliser la commande [ pour effectuer des tests plus complexes que le
simple test du code de retour dune commande. Par exemple, la boucle suivante calcule la somme des
dix premiers entiers :
result=0
i=0
while [ $i -le 10 ] ; do
result=$(($result + $i))
i=$(($i + 1))
done
echo $result
5.9.8.5. Les itrations
Les itrations sont des boucles qui sexcutent pour chaque lment dun ensemble donn. Le shell
gre les itrations par lintermdiaire de linstruction for. La syntaxe de cette instruction est la
suivante :
for variable [ in ensemble ] ; do
action
done
o variable est un nom de la variable utilise pour litration, ensemble est lensemble des valeurs
que peut prendre cette variable, et action est la commande (simple ou compose) excuter pour
chaque valeur de cette variable.
Le principe des itrations est trs simple. Pour chaque valeur indique dans lensemble des valeurs, la
commande est excute, avec la valeur en question accessible dans la variable utilise pour litration.
Par exemple, la commande suivante :
for i in *.txt ; do
mv $i ${i/%.txt/.doc}
done
permet de renommer tous les chiers portant lextension .txt en chier du mme nom, mais avec
lextension .doc.
Il nest pas ncessaire de prciser lensemble des valeurs que peut prendre la variable. Dans ce cas,
lensemble utilis sera celui de tous les paramtres du script ou de la fonction. Nous verrons plus loin
comment raliser des fonctions et des scripts, ainsi que la manire de rcuprer leurs paramtres.
105
Chapitre 5. Commandes Unix de base
5.9.8.6. Les ruptures de squence
Il est parfois ncessaire de modier lordre dexcution dans les boucles et les itrations du shell. Par
exemple, il est souvent ncessaire de sortir de la boucle courante, soit parce quon ne peut plus la
continuer dans de bonnes conditions, soit parce que le traitement est termin. Cest notamment le cas
lorsquune erreur se produit, ou lorsquon recherche une valeur spcique en itrant sur les valeurs
possibles dun ensemble.
Le shell fournit donc les instructions break et continue, qui permettent respectivement de sortir
de la boucle courante et de passer directement litration suivante. Ces deux commandes peuvent
tre utilises aussi bien lintrieur des boucles while et until que dans les itrations crites avec
linstruction for. Par exemple, le calcul de la somme des dix premiers entiers aurait pu tre crit de
la manire suivante :
result=0
i=0
while true ; do
result=$(($result + $i))
i=$(($i + 1))
if [ $i ==11 ] ; then break ; fi
done
echo $result
Les instructions break et continue peuvent prendre un paramtre entier indiquant le niveau
dimbrication de la boucle sur laquelle elles sappliquent. Ce paramtre doit imprativement tre
suprieur sa valeur par dfaut, cest--dire 1. Ainsi, pour sortir directement dune double boucle
lorsquon est dans le corps de la boucle la plus imbrique, on utilisera la commande suivante :
break 2
5.9.8.7. Les fonctions
Le langage du shell est un langage procdural. Cela signie que lon peut crer des fonctions pour
regrouper des sries dinstructions couramment excutes. La syntaxe permettant dcrire de telles
fonctions est la suivante :
function nom () {
instructions
}
o nom est le nom de la fonction, et instructions est la liste des commandes excuter dans cette
fonction.
Vous constaterez quil ny a pas de dclaration des paramtres de cette fonction. Cest normal : les
paramtres des fonctions sont passs implicitement dans les variables denvironnement $1, $2, $3,
etc. En fait, comme nous le verrons plus loin, cette syntaxe est galement celle utilise pour rcuprer
les paramtres de la ligne de commande des scripts shell. Cela signie que les paramtres du script
ne sont pas accessibles dans le corps dune fonction, puisquils sont masqus par les paramtres de la
fonction.
Les autres variables utilises dans les fonctions sont des variables globales. Celles qui sont dclares
dans une fonction sont donc galement globales, et restent accessibles mme aprs lexcution de
106
Chapitre 5. Commandes Unix de base
cette fonction. Si lon veut dnir des variables locales, on prcdera la dnition de la variable du
mot cl local :
local variable=valeur
o variable est le nom de la variable locale, et valeur est sa valeur.
Les fonctions peuvent retourner une valeur numrique en code de retour. Cette valeur peut tre indi-
que laide de linstruction return. Par exemple, la fonction suivante calcule la somme des entiers
de 0 la valeur de lentier quelle reoit en paramtre :
function somme () {
local result=0
local i=0
while [ $i -le $1 ] ; do
result=$(($result + $i))
i=$(($i + 1))
done
return $result
}
Ce code derreur pourra tre rcupr par lappelant dans la variable denvironnement $? :
somme 10
echo $?
5.9.8.8. Les entres / sorties de donnes
Tout langage de programmation qui se respecte dispose de possibilits dentre / sortie pour permettre
la communication avec lutilisateur de manire interactive, et le shell nchappe pas la rgle.
Nous avons dj vu la commande echo dans bon nombre des exemples qui prcdaient, et vous avez
sans doute devin quil sagissait l de la commande qui permet dafcher du texte lcran. Son
utilisation est des plus simples, puisquelle se contente denvoyer sur le ux de sortie standard une
chane de caractres contenant tous les paramtres quelle reoit, spars par des espaces. Nous ne
nous attarderons donc pas sur cette commande, qui na pas d vous poser de problmes jusqu
prsent.
Il ne nous reste donc plus qu voir la manire de demander lutilisateur de saisir une valeur. Avec
bash, la demande de saisie des donnes se fait classiquement laide de la commande read. Cette
commande lit une ligne sur le ux dentre standard, la dcoupe en une ou plusieurs donnes et place
les rsultats dans les variables denvironnement quelle reoit en paramtre. La syntaxe de read est
donc la suivante :
read variable1 variable2 ... variablen
o variable1, variable2, etc. sont les noms des variables denvironnement dans lesquelles les
rsultats de la saisie doivent tre placs.
La commande read utilise les sparateurs indiqus dans la variable denvironnement IFS pour d-
couper la ligne lue dans le ux dentre standard. Si le nombre de variables spci est infrieur au
nombre de mots de cette ligne aprs dcoupage, les premires variables denvironnement reoivent
107
Chapitre 5. Commandes Unix de base
les premiers mots, et la dernire reoit le reste de la commande. Par exemple, la commande suivante :
read MOT RESTE
permet de lire le premier mot dune ligne dans la variable denvironnement MOT et de placer le reste
dans la variable RESTE.
La commande read dispose dune syntaxe simplie, qui ne prend aucun paramtre. Dans ce cas,
la ligne lue dans le ux dentre standard est place telle quelle dans la variable denvironnement
REPLY. Il est la charge du programmeur danalyser son contenu.
Le shell dispose galement dune instruction volue permettant de raliser des menus simplis :
linstruction select. Cette instruction construit un menu partir dun certain nombre de choix,
chaque choix tant prcd par un numro, et demande lutilisateur de taper le numro de son
choix. Elle affecte alors la valeur du choix correspondant une variable denvironnement, et excute
une commande pour le traitement du choix. La syntaxe gnrale de linstruction select est donne
ci-dessous :
select variable in liste ; do
action
done
o variable est le nom de la variable devant recevoir la valeur choisie par lutilisateur, liste est
la liste des valeurs que cette variable peut prendre, et action est la liste des instructions excuter
pour chaque choix effectu.
Si le choix de lutilisateur est incorrect, la variable de contrle reoit la valeur nulle. Le programmeur
peut rcuprer la valeur saisie par lutilisateur dans la variable denvironnement REPLY et effectuer
un traitement derreur appropri.
Linstruction select est une boucle. Le menu est repropos aprs chaque excution de laction
action. La sortie de cette boucle ne peut se faire que si un caractre de n de chier (CTRL +
D) est lu sur le ux dentre standard, ou si une option de menu spcique est propose pour quitter
cette boucle. Vous trouverez un exemple de menu simpli ci-dessous :
select LU in A B C D Sortir; do
case $LU in
("A") echo "Vous avez choisi A" ;;
("B") echo "Vous avez choisi B" ;;
("C") echo "Vous avez choisi C" ;;
("D") echo "Vous avez choisi D" ;;
("Sortir") break ;;
esac
done
5.9.9. Les alias
Il est incontestable que certaines commandes peuvent avoir une grande complexit, et il peut tre
fastidieux de les retaper compltement chaque fois que lon en a besoin. Dautre part, la saisie dune
longue ligne de commande multiplie les risques de faire une faute de frappe et davoir corriger la
commande. Cela peut au mieux faire perdre son temps lutilisateur, et au pire lnerver.
108
Chapitre 5. Commandes Unix de base
Le shell fournit donc un mcanisme pour donner un nom simpli aux commandes complexes : le
mcanisme des alias. Les alias reprsentent en fait des chanes de caractres complexes, et sont rem-
placs automatiquement par le shell lorsquil analyse les lignes de commandes. Cest un mcanisme
plus souple que celui des variables denvironnement, et qui permet de dnir des macro-commandes
plus facilement quavec les fonctions du shell.
Pour crer un alias, vous devrez utiliser la syntaxe suivante :
alias nom=chane
o nom est le nom de lalias, et chane est la chane de caractres reprsente par cet alias. Par
exemple, pour faire un alias nomm beep permettant de faire un bip sonore, on pourra utiliser la
commande suivante :
alias beep="echo $\a"
Cet alias pourra tre simplement utilis simplement en tapant beep en ligne de commande.
Vous pouvez visualiser la liste des alias existant simplement laide de la commande alias, appele
sans paramtres. Je vous recommande de consulter cette liste, pour vous donner une ide des alias
courants, qui se rvlent gnralement trs utiles.
La suppression des alias se fait laide de la commande unalias. Sa syntaxe est la suivante :
unalias nom
o nom est le nom de lalias supprimer.
Note : Les alias ne sont remplacs par la chane de caractres quils reprsentent que lorsque
le shell analyse la ligne de commande. Cela signie que les dnitions dalias ne sont valides
quaprs validation de cette ligne. On vitera donc de dnir des alias dans la dclaration dune
instruction compose, car cet alias ne sera pas disponible lintrieur de son propre bloc
dinstructions.
Par dfaut, les alias ne sont disponibles que dans les shells interactifs. Ils ne peuvent donc pas
tre utiliss dans les scripts shell. La notion de script shell est dtaille dans la Section 5.9.10.
5.9.10. Les scripts shell
Pour linstant, toutes les fonctionnalits de bash, aussi puissantes soient-elles, ne constituent que
linterface dun interprteur de commandes puissant. Mais nous avons dit que le shell tait vritable-
ment un langage de programmation. Cela signie quil est possible dcrire des programmes com-
plexes en langage shell, simplement en stockant plusieurs commandes dans un chier. On appelle ces
chiers des scripts shell.
Lcriture dun script shell nest pas plus complique que de taper les commandes du programme les
unes la suite des autres dans un shell interactif. La seule diffrence est que les scripts shell peuvent
tre rejous plusieurs fois, recevoir des paramtres en ligne de commande et renvoyer un code de
retour.
Tout script shell est en fait un chier texte sur lequel on a mis les droits dexcution. Il contient les dif-
frentes commandes quil doit excuter. Sa premire ligne est trs importante, elle permet dindiquer
au shell excutant quelle est la nature du chier. La syntaxe de cette ligne est la suivante :
109
Chapitre 5. Commandes Unix de base
#!shell
o shell est le chemin absolu sur le shell ou linterprteur de commande capable dexcuter ce
script. En pratique, pour bash, on utilisera toujours la ligne suivante :
#!/bin/bash
Les paramtres des scripts shell sont accessibles exactement comme des paramtres de fonction. On
rcuprera donc le premier paramtre avec lexpression $1, le deuxime avec lexpression $2, le
troisime avec lexpression $3, etc.
Le code de retour dun shell pourra tre x laide de la commande exit. Par exemple :
exit 0
Ce code de retour pourra tre rcupr par lappelant laide de lexpression $?.
Nous nirons pas plus loin dans la description du shell bash, car ce nest pas le but de ce document.
Vous pouvez vous rfrer un bon livre dUnix ou aux pages de manuel si vous dsirez approfondir
le sujet. Comme vous avez d vous en rendre compte dans cette section, les shells Unix sont des
vritables langages de programmation, qui dpassent de trs loin les interprteurs de commandes
du type DOS. De plus, il existe plusieurs autres langages dont nous navons pas parl ici, chacun
tant conu souvent pour raliser un certain type de tche (administration systme, manipulation de
chiers textes, cration de pages Web dynamiques, cration dinterfaces utilisateur en mode fentr,
pilotage dapplications, etc.). Si vous vous y intressez, vous verrez que le sujet est rellement vaste
et passionnant.
110
Chapitre 6. Administration du systme de
base
Un certain nombre doprations que lon peut faire avec un systme Unix ne rentrent pas dans le cadre
dune utilisation quotidienne, mais sont destines plutt ladministration du systme lui-mme. Ces
oprations peuvent tre ralises laide de commandes Unix spciales, gnralement rserves
ladministrateur du systme, ou peuvent tre ralises en modiant les chiers de conguration du
systme.
Il est trs probable que le programme dinstallation ou le programme de conguration de votre distri-
bution vous permette deffectuer ces tches de manire relativement aise ou conviviale. Lutilisation
de ces programmes est trs simple, puisquen gnral il suft de rpondre quelques questions et les
modications sont effectues automatiquement pour vous. Il est fortement recommand de toujours
essayer les programmes de ce type en premier lieu, car eux seuls connaissent les spcicits de chaque
distribution. Cela dit, ces programmes ne peuvent pas tout prvoir, parce que Linux est un systme
capable deffectuer un grand nombre de tches trs diversies dune part, et parce que ce que vous
voulez en faire personnellement ne correspond pas forcment un standard prdtermin dautre part.
Cette partie dcrira donc le mcanisme gnral damorage des systmes Linux et les commandes
dadministration les plus importantes. Les principaux chiers de conguration permettant de modier
le comportement du systme seront galement dcrits an de permettre un usage courant de Linux
dans de bonnes conditions. Les notions les plus avances concernant ladministration systme ne
seront en revanche pas abordes, car cela dpasserait le cadre de ce document. Les lecteurs les plus
intresss pourront toujours se rfrer un guide dadministration Unix.
Ladministration du systme est un peu moins sensible que son installation. En effet, les seuls risques
que lon encourt sont de dtruire les chiers de conguration du systme, et donc de devoir les recrer
manuellement. Il ny a pas de manipulation de partitions ou de systme de chiers crer, aussi le
risque de perdre des donnes est-il nettement plus faible. Cependant, les oprations dadministration
se feront sous le compte root, ce qui implique une prudence extrme. Cest pour cette raison que nous
allons commencer par sauvegarder lensemble des chiers de conguration, an de pouvoir revenir
ltat initial aprs installation, sans repasser par la case dpart.
6.1. Sauvegarde de la conguration dinstallation
La sauvegarde de la conguration du systme est une opration facile raliser. En effet, tous les
chiers de conguration sont placs dans le rpertoire /etc/. Par consquent, il suft de faire une
archive des chiers de ce rpertoire et de ses sous-rpertoires. Cette opration peut tre ralise avec
la commande suivante :
tar cvfz /root/install.conf.tar.gz /etc/*
Cette commande crera une archive nomme install.conf.tar.gz dans le rpertoire personnel
de ladministrateur systme. On notera que, pour certaines distributions, quelques chiers de congu-
ration sont placs dans le rpertoire /sbin/init.d/. Pour ces distributions, on utilisera donc plutt
la commande suivante :
tar cvfz /root/install.conf.tar.gz /etc/* /sbin/init.d/*
111
Chapitre 6. Administration du systme de base
De cette manire, si lon a un gros problme avec la conguration de la machine, on peut revenir
simplement la conguration utilise juste aprs linstallation du systme avec la simple commande
suivante :
tar xvfz /root/install.conf.tar.gz
commande que lon excutera dans la racine du systme de chiers.
Cette commande crasera tous les chiers existants par ceux de la sauvegarde. Les chiers qui ont t
ajouts depuis cette sauvegarde seront bien entendu conservs.
Il est galement recommand de faire une sauvegarde identique celle-ci une fois que lon aura russi
congurer le systme correctement et que, thoriquement, il ny aura plus toucher aux chiers de
conguration. Cette sauvegarde devra tre place sur une disquette ou un support amovible que lon
conservera en lieu sr.
6.2. Mise lheure du systme
Les systmes dexploitation utilisent lheure pour un certain nombre de tches. En particulier, les
chiers disposent de plusieurs dates (date de cration, date daccs et date de dernire modication),
qui sont utilises par diffrents programmes. Les programmes de sauvegarde en font videmment
partie, parce quils se basent sur les dates de modication des chiers pour dterminer quels sont
les chiers qui doivent tre sauvegards depuis la dernire sauvegarde (cas des sauvegardes dites
incrmentales ). Les programmes de maintenance sont galement lancs des dates prcises, et
les applications normales des utilisateurs peuvent utiliser la date systme pour lintgrer dans leurs
documents. En clair, il est important que votre systme soit lheure.
En fait, il existe deux horloges dans votre systme. La premire horloge, qui est lhorloge de rfrence
pour toutes les oprations effectues dans le systme, est lhorloge dite systme . Cette horloge
est maintenue par le noyau grce un compteur qui est incrment rgulirement, sur la base dune
interruption matrielle. La prcision de ce compteur est a priori la mme que celle de linterruption
du timer matriel. Sur les PC, cette interruption a lieu, par dfaut, 18,6 fois par seconde, ce qui donne
pour la plus petite unit de temps mesurable environ 1/20 de seconde (cependant, la plupart des sys-
tmes reprogramment la frquence de cette interruption 100 Hz environ). La deuxime horloge
est lhorloge matrielle, qui est lhorloge qui maintient lheure de votre ordinateur pendant quil est
teint. Cette horloge est couramment appele lhorloge CMOS, parce quelle est gre par un compo-
sant CMOS qui stocke toutes les informations permanentes du BIOS.
Pour rpondre immdiatement une question (dsormais sans objet), prcisons que Linux na au-
cun problme vis--vis des dates critiques du changement de millnaire. En effet, les systmes Unix
nutilisent quun seul format de date au niveau application : le nombre de secondes coules depuis
le 01/01/1970 0 heure. Ce compteur est stock sur 32 chiffres binaires sur la plupart des machines
et passe donc allgrement le cap de lan 2000. En fait, le dbordement de ce compteur est prvu pour
2038, mais naura jamais lieu car lapparition des processeurs 64 bits va porter, dici l, la taille de
ce compteur 64 bits. Cela tant, il est possible que certaines applications mal crites nutilisent pas
ce format de date, et ne soient donc pas compatibles. Heureusement, ce cas de gure est trs rare
sous Unix. Bien entendu, le problme reste entier si lhorloge matrielle de votre PC nest pas com-
patible. Dans ce cas, la solution la plus simple est de rgler lheure systme chaque dmarrage,
manuellement ou laide de scripts de correction de la date renvoye par lhorloge matrielle.
La valeur du compteur de lhorloge systme est toujours interprte en temps universel ( UTC en
anglais, abrviation de Universal Time Coordinated ), cest--dire le temps de rfrence valide dans
le monde entier. Ce temps ne comprend pas les fuseaux horaires ni les rglementations concernant les
heures dhiver et dt. Cette convention est utilise partout dans le systme, ce qui est la condition
112
Chapitre 6. Administration du systme de base
sine qua non pour que tous les ordinateurs du monde utilisent la mme date et la mme heure. Ainsi,
deux ordinateurs connects Internet peuvent communiquer sans se poser de questions quant leurs
localisations respectives, ce qui simplie beaucoup les choses. Notez galement que le fait de compter
le temps en secondes permet de saffranchir des conventions de dcoupage du temps et des calendriers
utiliss dans chaque pays.
Bien entendu, les dates prsentes lutilisateur doivent tre traduites en temps local, corrig des
carts pour lheure dt et lheure dhiver. Cela est ralis par tous les programmes qui doivent
afcher ces dates (par exemple, les simples commandes ls et date). Cette conversion est effectue par
le systme en fonction du fuseau horaire et des plages de validit des horaires dt et dhiver.
La solution la plus simple pour rgler la date et lheure de votre machine est donc de rgler lhorloge
matrielle sur le temps universel, et de dnir le fuseau horaire dans lequel elle se trouve, pour que
le systme puisse calculer lheure locale. Malheureusement, les systmes dexploitation de Microsoft
ne voient pas la chose de la mme manire. Ils attendent que lhorloge matrielle soit rgle lheure
locale. Par consquent, si Linux est install sur un ordinateur disposant dj de Windows, vous devrez
rgler lheure de votre ordinateur en temps local. A priori, cela ne fait aucune diffrence, le systme
tant galement capable de calculer le temps universel partir de lheure locale et de la zone horaire.
Cependant, cela a un inconvnient : il est ncessaire de mettre lheure lhorloge systme en cas de
dplacement de la machine, et chaque changement dhoraire dt ou dhiver. Bien sr, Windows est
suppos tre capable de mettre jour lheure matrielle en observation avec lheure dt / dhiver .
Mais il utilise pour cela des rgles qui sont xes dnitivement dans le systme et qui ne peuvent
pas tre mises jour avec les rglementations locales (par exemple, la rgle de changement dheure a
t modie en 1996, si bien que Windows 95 na jamais pu fonctionner correctement sur ce point...).
Quoi quil en soit, la mise lheure dun systme Linux requiert la dnition de la zone horaire,
la mise lheure du systme et la mise lheure de lhorloge matrielle. La dnition de la zone
horaire est primordiale et doit avoir lieu avant toute autre opration, car le rglage des horloges dpend
videmment de cette zone.
Les zones horaires sont dnies par un ensemble de rgles, qui comprennent chacune la priode de
validit de la rgle (en gnral avec une date de dpart et une date de n) et la diffrence entre le
temps universel et le temps local lorsque cette rgle sapplique (gestion des horaires dt et dhiver
compris). Toutes ces rgles portent le nom de la zone gographique dans laquelle elles sont valides.
Vous pourrez trouver des exemples de dnitions de rgles (ainsi que lhistorique des conventions
concernant le temps) dans le rpertoire timezone des sources de la bibliothque C GNU.
Les chiers de rgles des zones horaires doivent tre compils avec le programme zic et installs dans
le rpertoire /usr/share/zoneinfo. Normalement, votre systme dispose de la totalit des rgles,
dj compiles, des diffrentes zones horaires du monde. Le programme zic permet galement de
dnir la zone horaire active. Cette opration se fait dans les chiers de dmarrage de votre systme,
avec une commande similaire la suivante :
zic -l zone
o zone est le chemin relatif du chier de dnition des rgles de la zone horaire locale, par rapport
au rpertoire de base /usr/share/zoneinfo. Pour les systmes situs en France mtropolitaine, la
commande utilise est donc celle-ci :
zic -l Europe/Paris
Une fois la zone horaire xe, il est possible de rgler lhorloge systme. Il existe deux solutions pour
cela. La premire solution est dutiliser la commande systme date. Cette commande, appele sans
paramtres, permet dobtenir la date systme, exprime en temps local. Mais elle permet galement
113
Chapitre 6. Administration du systme de base
de modier la date et lheure systme avec loption -s. La syntaxe complte utilise est donne ci-
dessous :
date -s "MM/JJ/AAAA HH:MM:SS"
Il nest pas ncessaire de prciser lanne si celle-ci ne doit pas tre change. De mme, vous pouvez
ne donner que lheure, si la date du jour est correcte. En revanche, vous devez obligatoirement prciser
lheure si vous changez la date. Notez que lheure doit tre donne en temps local, moins que
loption -u ne soit prcise. Le systme rglera son horloge en temps universel automatiquement,
selon les rgles de zones horaires en vigueur qui ont t indiques par zic. Vous pouvez obtenir
lheure exacte en appelant le 3699.
La deuxime solution est celle qui est utilise au dmarrage du systme. Elle consiste initialiser
lhorloge systme partir de lhorloge matrielle. Cette opration se fait normalement laide de la
commande clock (qui en fait est un lien symbolique vers hwclock, mais la commande Unix tradi-
tionnelle est clock). La syntaxe de cette commande est la suivante :
clock [-u] -s | -w | -a
Loption -s permet dinitialiser lhorloge systme partir de la date et de lheure stockes dans
lhorloge matrielle. Cest typiquement cette commande qui est utilise dans les scripts de dmarrage
du systme. Loption -w permet de raliser lopration inverse, cest--dire sauvegarder la date et
lheure de lhorloge systme dans lhorloge matrielle. Elle nest en gnral utilise quaprs avoir
remis lheure lhorloge systme. Loption -a permet, quant elle, de corriger lavance ou le retard
que lhorloge matrielle peut prendre.
Ce dernier point mrite quelques explications complmentaires. En fait, lhorloge matrielle nest pas
extrmement prcise, et peut se dcaler petit petit de lheure relle. Heureusement, ce dcalage est
constant, ce qui fait quil est possible de le mesurer et de le prendre en compte. Le programme clock
utilise le chier /etc/adjtime pour enregistrer de combien est ce dcalage an de pouvoir effectuer
les corrections. Le principe de fonctionnement est le suivant :
lors du premier rglage de lhorloge matrielle (avec loption -w), il enregistre linstant de ce r-
glage dans le chier /etc/adjtime ;
lors des rglages suivants, il calcule le temps qui sest coul depuis le rglage prcdent, et le
dcalage entre lheure de lhorloge matrielle et lheure laquelle celle-ci aurait d se trouver.
Il enregistre ce dcalage et met jour la date de mise lheure (pour pouvoir refaire ce calcul
ultrieurement) ;
lorsquon lappelle avec loption -a, clock ajuste lhorloge matrielle. Pour cela, il regarde la date
courante, calcule le temps coul depuis la dernire mise lheure ou le dernier ajustement, en d-
duit lavance ou le retard de lhorloge matrielle, et la remet lheure en consquence. Il enregistre
galement la date de cet ajustement comme nouvelle date de mise lheure, an de ne pas faire
deux fois lajustement pour cette priode la prochaine fois.
De cette manire, il est possible de maintenir lhorloge systme une valeur proche de la ralit (sans
ce genre de mcanisme, il est courant de prendre 5 minutes dcart en trois ou quatre mois, ce qui est
dj considrable).
Les scripts dinitialisation de votre systme doivent donc certainement contenir au moins les deux
lignes suivantes aprs le rglage de la zone horaire :
114
Chapitre 6. Administration du systme de base
# Ajuste lhorloge matrielle :
clock -a
# Initialise lhorloge systme :
clock -s
Dans tous les cas, loption -u permet dindiquer que lhorloge matrielle est rgle en temps universel.
Si votre machine ne dispose pas dautre systme que Linux, il est recommand de procder ainsi et
dutiliser systmatiquement cette option.
Note : Il est important de dnir la zone horaire avec zic avant dutiliser clock. En effet, si lhorloge
matrielle est rgle en temps local, clock ne pourra pas dterminer lheure en temps universel.
Dautre part, clock initialise la structure de zone horaire interne noyau, que celui-ci utilise notam-
ment pour lcriture des dates en temps local sur les systmes de chiers FAT (Eh oui, les dates
des chiers des systmes de chiers FAT sont enregistres en temps local...).
Sachez galement que lhorloge systme peut galement se dcaler sensiblement sur de longues
priodes. videmment, ce phnomne ne peut se dtecter que si le systme reste actif suff-
isamment longtemps, ce qui en pratique ne se produit que dans les serveurs (noubliez pas que
Linux peut fonctionner des mois sans interruption...). Si vous tes intress par la manire de
resynchroniser lhorloge systme pour de telles congurations, vous devriez vous intresser la
diffusion du temps sur le rseau Internet avec le protocole NTP ( Network Time Protocol ).
En gnral, la resynchronisation de lheure systme doit se faire progressivement an de ne pas
perturber la ligne du temps pour les applications. Cela peut tre fait avec le programme adjtimex.
6.3. Notion de niveau dexcution et amorage du
systme
La plupart des systmes Unix utilisent la notion de niveau dexcution. Un niveau dexcution est un
mode de fonctionnement dans lequel un certain nombre de services sont accessibles. En gnral, il
existe 7 niveaux dexcution, dont seulement trois fournissent des services bien dnis pour quasiment
toutes les distributions de Linux.
Le niveau 0 correspond larrt du systme, et aucun service nest disponible ( part le redmarrage
de la machine bien entendu...). Le fait de passer dans le niveau dexcution 0 correspond donc
arrter le systme. Le niveau 6 correspond au redmarrage de la machine. Le fait de passer dans
le niveau dexcution 6 revient donc arrter et redmarrer la machine. Le niveau dexcution 1
correspond au mode de fonctionnement monoutilisateur (encore appel mode de maintenance). Ce
niveau dexcution fournit les services de base pour un seul utilisateur (normalement ladministrateur
du systme). Dans ce niveau dexcution, ladministrateur peut changer la conguration et effectuer
les tches de maintenance les plus critiques (par exemple, vrier le systme de chiers racine). La
signication des autres niveaux dexcution dpend de la distribution que vous utilisez mais en gnral
le niveau dexcution 2 correspond au mode multiutilisateur avec rseau mais sans XWindow, et le
niveau dexcution 3 ou 4 correspond au mode multiutilisateur avec login graphique sous XWindow.
Les autres niveaux restent votre disposition.
Le programme en charge de grer les niveaux dexcution est le programme init. Ce programme
est le premier programme lanc par le noyau aprs quil a t charg et dmarr par le gestionnaire
damorage ( savoir, en gnral, LILO ou le GRUB). Ce programme ne peut pas tre dtruit ou
arrt, et cest rellement le processus pre de tous les autres dans le systme. Le rle fondamental
dinit est de grer les changements de niveau dexcution, mais il soccupe galement des tches de
115
Chapitre 6. Administration du systme de base
base concernant la gestion des autres processus. En particulier, il permet de supprimer les processus
zombies.
Note : Un processus zombie est un processus qui vient de se terminer et dont aucun proces-
sus na lu le code de retour. De tels processus apparaissent gnralement lorsque leur processus
pre se termine avant eux car, gnralement, cest toujours le processus pre qui lit le code de
retour de ses processus ls.
Il suft dutiliser la syntaxe suivante pour forcer le changement de niveau dexcution :
init niveau
o niveau est le niveau dexcution atteindre. Cela dit, cette manire de faire est assez rare, car
en gnral on na pas besoin de changer de niveau dexcution, sauf pour arrter et redmarrer la
machine. Mais pour ces oprations, les commandes shutdown, halt et reboot sont dj disponibles.
Le niveau dexcution dans lequel le systme doit se placer lors de son dmarrage peut galement
tre prcis en paramtre du noyau lors du dmarrage. Vous devrez donc utiliser une commande sem-
blable celle-ci : LILO boot:linux niveau si vous utilisez LILO, ou kernel noyau niveau
si vous utilisez le GRUB pour dmarrer le noyau noyau Linux dans le niveau dexcution niveau.
Ainsi, pour passer en mode monoutilisateur (cest--dire le mode de maintenance), il suft de taper la
commande suivante lamorage de LILO :
LILO boot:linux 1
ou la commande suivante sur la ligne de commande interactive du GRUB :
kernel /boot/vmlinuz 1
Note : Il est galement possible dutiliser le paramtre single, qui est synonyme du niveau
dexcution 1.
Le comportement dinit est dni dans le chier de conguration /etc/inittab. Ce chier contient
la description des niveaux dexcution, le niveau par dfaut dans lequel le systme se place au dmar-
rage, et les actions quinit doit effectuer lorsque certains vnements arrivent. En particulier, il est
indiqu quels sont les scripts qui doivent tre excuts lors du changement de niveau dexcution.
Il est fortement, mais alors trs fortement dconseill de toucher au chier /etc/inittab pour des
raisons bien videntes. Vous trouverez de plus amples renseignements dans les pages de manuel dinit
et dinittab.
Lorsquon change de niveau dexcution, ainsi quau dmarrage du systme, des scripts de con-
guration sont appels. Comme on la vu, ces scripts sont spcis dans le chier /etc/inittab.
En gnral, ils sont tous placs dans le rpertoire /etc/rc.d/ (ou /sbin/init.d/, selon votre
distribution). Ce rpertoire contient donc :
le script excut lors du dmarrage du systme ;
les scripts excuts lors de la sortie dun niveau dexcution ;
116
Chapitre 6. Administration du systme de base
les scripts excuts lors de lentre dans un niveau dexcution.
Le script appel lors du dmarrage du systme est en gnral spci directement dans
/etc/inittab. Vous pouvez y ajouter les commandes spciques votre systme, comme par
exemple les commandes de conguration du matriel. Ce chier nest excut quune seule fois et
est plac directement dans /etc/rc.d/ (ou dans /sbin/init.d/).
En revanche, les scripts appels lors du changement de niveau dexcution sont souvent placs dans
des sous-rpertoires du rpertoire rc.d ou init.d. Ils sont classs raison dun rpertoire par niveau
dexcution. Ces sous-rpertoires portent le nom de rc0.d, rc1.d, rc2.d, etc. pour les diffrents ni-
veaux dexcution. En fait, un seul script est excut par init lorsquon change de niveau dexcution,
et ce script se charge dexcuter les bons scripts dans les sous-rpertoires de rc.d ou init.d. Clas-
siquement, ce script principal est appel avec le numro du niveau dexcution en paramtre, et il
commence par appeler les scripts de sortie du niveau dexcution courant, puis les scripts dentre
dans le nouveau niveau dexcution.
La distinction entre les scripts dentre et de sortie dans chaque rpertoire rc?.d se fait par la pre-
mire lettre du script. Sur certaines distributions, la lettre K correspond aux scripts de sortie et la
lettre S au script dentre (ces deux lettres correspondent respectivement aux mots anglais Kill
et Start ). De plus, lordre dans lequel ces scripts doivent tre excuts est indiqu par le nombre
suivant cette lettre dans le nom du script. Cela dit, ces conventions peuvent varier selon votre distri-
bution. Consultez votre documentation pour plus de dtails ce sujet.
Il est assez courant que les rpertoires rc?.d ne contiennent que des liens symboliques vers les
chiers de scripts, et que ceux-ci soient tous placs directement dans le rpertoire /etc/rc.d/
(ou /sbin/init.d/). La raison en est quun mme script peut tre utilis pour diffrents niveaux
dexcution, et quil na donc pas de raison dtre dans le rpertoire dun niveau plutt que celui dun
autre.
De mme, il est assez courant que chacun de ces scripts gre la fois lentre et la sortie du niveau
dexcution, selon le paramtre quil reoit lors de son appel. Parmi les paramtres les plus courants,
on retrouve les suivants :
start, pour le dmarrage du service correspondant ;
stop, pour son arrt.
Ce sont les deux paramtres que le script de contrle de changement de niveau dexcution (celui
appel par init et enregistr dans /etc/inittab) utilisera lors de lentre et de la sortie du niveau
dexcution. Il existe dautres paramtres, comme par exemple restart, pour redmarrer le service
correspondant.
De cette manire, vous pouvez ajouter ou supprimer des services simplement dans chaque niveau
dexcution. Il suft dcrire un chier script capable de prendre en paramtre laction raliser sur
le service (start ou stop), de le placer dans /etc/rc.d/ (ou /sbin/init.d/) et de crer les
liens dans les sous-rpertoires /etc/rc.d/rc?.d/ (ou /sbin/init.d/rc?.d/). Ds lors, votre
service sera arrt ou redmarr selon le niveau dexcution dans lequel passera le systme.
La rdaction des scripts shells de conguration dpasse largement le cadre de ce document, de mme
que la conguration du comportement du systme chaque changement de niveau dexcution. La
description qui tait donne ici permet simplement davoir une ide plus claire de la manire dont le
systme se comporte au dmarrage et larrt. Consultez la documentation de votre distribution pour
plus de dtails ce sujet.
117
Chapitre 6. Administration du systme de base
6.4. Maintenance des systmes de chiers
La gestion des systmes de chiers par Linux est extrmement volue, car il est capable de prendre
en charge plusieurs types de systmes de chiers diffrents. Ces systmes de chiers doivent subir
lopration de montage avant de pouvoir tre utiliss. Le montage est lopration qui consiste as-
socier un rpertoire au point dentre dun systme de chiers. Les donnes de ce systme sont alors
accessibles partir de ce rpertoire. Lopration de montage permet de raliser une abstraction du
support des systmes de chiers, qui peuvent donc se trouver aussi bien sur disque quen mmoire
ou que sur un rseau, mais peut se rvler ennuyante pour les systmes de chiers couramment utili-
ss. Cest pour cette raison quil existe un mcanisme de montage automatique pour les systmes de
chiers les plus utiliss.
Cette section vous prsentera les oprations de base sur les systmes de chiers sur disque, car ce sont
les plus courants. Vous y trouverez la description de la manire de procder pour vrier un systme
de chiers et pour monter automatiquement les systmes de chiers les plus utiliss au dmarrage
du systme. En revanche, la description des systmes de chiers rseau sera donne dans le chapitre
traitant de la conguration rseau.
6.4.1. Vrication des systmes de chiers
La vrication des systmes de chiers est une opration que lon ne devrait jamais avoir faire. Il
y a plusieurs raisons cela. Premirement, si lon arrte le systme correctement avant dteindre
la machine, les systmes de chiers sont dmonts et ils sont dans un tat correct. Deuximement,
les systmes de chiers Unix sont rputs pour tre trs ables. Troisimement, une vrication p-
riodique est faite par le systme au bout dun certain nombre de dmarrages. Quatrimement, si un
systme de chiers nest pas dmont correctement avant larrt du systme, celui-ci sera vri au-
tomatiquement au dmarrage suivant, ce qui fait quil ny a pas lieu de le faire soi-mme. Enn, pour
les systmes de chiers journaliss tels que EXT3 ou ReiserFS, cette opration peut tre ralise trs
rapidement laide des informations qui sont stockes dans le journal des transactions du systme de
chiers.
Toutefois, mme le meilleur systme du monde ne saurait tre labri des secteurs dfectueux du
disque dur sur lequel il est install. Il est donc parfois ncessaire deffectuer une vrication manuelle
des systmes de chiers, et il faut savoir le faire mme quand plus rien ne fonctionne.
Un systme de chiers ne se manipule que lorsquil est dmont. Cela pose videmment quelques
problmes pour le systme de chiers racine, puisquon ne peut pas accder aux outils de vrication
sans le monter. Pour ce systme de chiers, il ny a donc que deux possibilits :
soit on utilise une disquette de dmarrage contenant les outils de vrication et de rparation des
systmes de chiers ;
soit on monte le systme de chiers racine en lecture seule.
La deuxime solution est la seule ralisable si lon ne dispose pas de disquette de dmarrage. Par
consquent, cest cette mthode qui sera dcrite ici.
La premire tape consiste passer en mode mono utilisateur, an de sassurer que personne ni
aucun programme naccde au systme de chiers racine en criture. Pour cela, il suft de taper la
commande suivante :
init 1
qui fait passer le systme dans le niveau dexcution 1. On peut galement passer le paramtre single
au noyau lors de lamorage du systme, comme il la t expliqu dans le paragraphe prcdent.
118
Chapitre 6. Administration du systme de base
Ensuite, il faut sassurer que le systme de chiers racine est en lecture seule, ce qui se fait avec la
commande suivante :
mount -n -o remount,ro /
Loption remount permet de dmonter et de remonter le systme de chiers racine, et loption ro
indique quil doit tre remont en lecteur seule ( ro signie Read Only ). Les options sont
spares par des virgules (attention, il ne faut pas insrer despace). De plus, loption -n indique
mount quil ne doit pas crire dans le chier /etc/mtab lorsquil aura remont le systme de chiers,
parce que ce chier sera alors galement en lecture seule et quon ne pourra pas y crire. Ce chier est
utilis par mount pour mmoriser les systmes de chiers qui sont monts, an de pouvoir en donner
la liste (ce que la commande mount fait lorsquelle est appele sans paramtres) et de permettre la
commande umount de vrier que les systmes de chiers dmonter ne le sont pas dj.
Note : Normalement, le noyau monte toujours le systme de chiers racine en lecture seule lors
de lamorage. Ce sont les scripts de dmarrage du systme, lancs par init, qui le remontent
en lecture / criture sil est dans un tat correct. Il est donc fortement probable, si votre systme
ne dmarre plus correctement, que le systme de chiers racine soit dj en lecture seule aprs
un dmarrage en mode de maintenance. La commande prcdente nest donc dcrite qu titre
indicatif.
Lorsque le systme de chiers racine sera mont en lecture seule, on pourra utiliser le programme
fsck an de le vrier et ventuellement le rparer. En ralit, ce programme ne fait rien dautre que
dappeler un programme spcique pour chaque systme de chiers. Par exemple, pour les systmes
de chiers EXT2 et EXT3, fsck appelle le programme e2fsck, qui est capable de vrier et de rparer
ce type de systme de chiers.
La ligne de commande utiliser pour vrier un systme de chiers avec fsck est la suivante :
fsck -a fichier
o fichier est le chier spcial du priphrique ou le chier image contenant le systme de chiers
vrier. Il faut donc, gnralement, spcier la partition sur laquelle le systme de chiers racine se
trouve. Loption -a demande fsck deffectuer les ventuelles corrections automatiquement en cas
derreur sur le systme de chiers ainsi vri, sans conrmation de la part de lutilisateur.
Il est galement possible de demander la vrication de tous les systmes de chiers enregistrs dans
le chier de conguration /etc/fstab. Pour cela, il faut ajouter loption -A :
fsck -a -A
La syntaxe du chier de conguration /etc/fstab sera dcrite dans la section suivante.
Il nest videmment plus ncessaire de spcier le chier spcial du priphrique contenant le systme
de chiers vrier, puisque tous les systmes de chiers enregistrs dans le chier /etc/fstab
seront vris.
Si le disque dur contient des secteurs dfectueux, il peut tre ncessaire de les marquer comme tels
dans les structures du systme de chiers an de ne pas les utiliser par la suite. De manire gnrale,
la recherche de ces blocs peut tre faite laide du programme badblocks. Cette commande effectue
un test de lecture de tous les blocs du disque sur lequel le systme de chiers se trouve, et gnre
une liste des blocs dfectueux. Vous pouvez lappeler directement et fournir cette liste au programme
e2fsck laide de son option -l, mais le plus simple est encore de demander e2fsck dappeler
119
Chapitre 6. Administration du systme de base
badblocks lui-mme. Pour cela, il suft de lui passer loption -c, ce qui se fait en faisant prcder
cette option dun double-tiret dans la ligne de commande de fsck :
fsck -a -- -c priphrique
Note : Loption -c est spcique e2fsck et peut ne pas fonctionner avec dautres systmes de
chiers. En particulier, certains systmes de chiers ne sont pas capable de grer correctement
les blocs dfectueux des disques durs. Cest le cas du systme de chiers ReiserFS.
Le programme badblocks peut galement effectuer un test dcriture sur le disque dur, si on lui
communique loption -w. Il va de soi que ce type de test est destructif, car toutes les donnes du
disque sont alors crases par des motifs particuliers. Il ne faut donc jamais utiliser cette option
sur un systme de chiers existant !
De manire gnral, il vaut mieux prvenir que gurir, aussi est-il recommand dutiliser la com-
mande badblocks au moins une fois avant dutiliser un systme de chiers. Cette vrication peut
tre ralise de manire automatique lors de la cration du systme de chiers laide de loption -c
de la commande mke2fs.
Une fois que vous aurez termin la vrication du systme de chiers, vous pourrez le remonter en
lecture et criture avec la commande suivante :
mount -n -o remount,rw /
Cette commande est similaire celle que lon a vue pour monter le systme de chiers en lecture seule,
ceci prs que loption rw est utilise la place de loption ro. Cette option permet de remonter le
systme de chiers en lecture et en criture ( rw est labrviation de langlais Read Write ).
6.4.2. Conguration du montage des systmes de chiers
Le montage des systmes de chiers est une opration assez fastidieuse. Heureusement, elle peut
tre automatise pour les systmes de chiers situs sur les disques xes, et simplie pour les sys-
tmes de chiers amovibles. Pour cela, il faut enregistrer ces systmes de chiers dans le chier de
conguration /etc/fstab.
Ce chier contient une ligne pour chaque systme de chiers. Ces lignes contiennent plusieurs champs
spars par des espaces. Les informations suivantes sont enregistres dans ces champs :
le chier spcial permettant daccder au systme de chiers ;
le rpertoire servant de point de montage par dfaut ;
le type du systme de chiers ;
les options de montage pour ce systme de chiers ;
un entier indiquant si le systme de chiers doit tre sauvegard ;
un entier indiquant lordre que ce systme de chiers doit avoir dans la liste des systmes de chiers
vrier.
120
Chapitre 6. Administration du systme de base
Grce ces informations, lemploi de la commande mount est plus simple :
mount priphrique
ou :
mount rpertoire
o priphrique est le chier spcial de priphrique contenant le systme de chiers monter,
et rpertoire est le rpertoire servant de point de montage indiqu dans le chier /etc/fstab. Il
est possible dutiliser indiffremment le chier spcial de priphrique ou le rpertoire du point de
montage.
Le type du systme de chiers est lun des types disponibles accepts par la commande mount.
Consultez la page de manuel de cette commande pour plus de renseignements ce sujet. Les princi-
pales options disponibles pour le montage sont les suivantes :
loption defaults, qui permet de choisir les options par dfaut pour ce systme de chiers ;
loption auto, qui permet de faire en sorte que le systme de chiers soit mont automatiquement
au dmarrage du systme ;
loption user, qui permet dautoriser le montage de ce systme de chiers par les utilisateurs ;
loption ro, qui permet de monter le systme de chiers en lecture seule ;
loption rw, qui permet de monter le systme de chiers en lecture et criture ;
loption exec, qui permet dautoriser lexcution des chiers excutables sur ce systme de
chiers ;
loption uid=utilisateur, qui permet de spcier le numro utilisateur de lutilisateur pro-
pritaire du rpertoire racine de ce systme de chiers ;
loption gid=groupe, qui permet de spcier le numro groupe du groupe dutilisateurs auquel
le rpertoire racine du systme de chiers appartient ;
loption mode=valeur, qui permet de xer les droits sur le rpertoire racine du systme de chiers
monter. La valeur valeur est donne en octal ;
loption umask=valeur, qui permet de xer les droits sur les chiers qui ne sont pas grs par le
systme de chiers. La valeur valeur est donne en octal.
Par dfaut, les utilisateurs nont pas le droit de monter et de dmonter les systmes de chiers.
Loption user permet de dsactiver cette protection. Elle peut tre utile pour permettre le montage
et le dmontage des disquettes et des CD-ROM. De mme, lexcution des chiers excutables nest
par dfaut pas autorise sur les systmes de chiers. Cette restriction permet dviter lexcution de
programmes placs sur des systmes de chiers de systmes dexploitation diffrents. Elle peut tre
leve grce loption exec.
Tous les systmes de chiers disposant de loption auto seront monts automatiquement au dmar-
rage du systme par la commande mount -a. Les autres systmes de chiers sont montables manuel-
lement, avec les autres options indiques dans le chier /etc/fstab.
Les options ro et rw permettent dindiquer mount si le systme de chiers doit tre mont en
lecture seule ou en lecture et criture. Les systmes de chiers devant tre rpars doivent tre monts
en lecture seule si lon ne peut pas les dmonter (cest le cas notamment du systme de chiers racine).
Il en va de mme pour les CD-ROM, car on ne peut bien entendu pas crire dessus.
121
Chapitre 6. Administration du systme de base
Les options uid et gid permettent de spcier le propritaire et le groupe du rpertoire racine du
systme de chiers monter. Par dfaut, cest lutilisateur root qui devient propritaire de ce systme
de chiers.
Enn, loption mode permet de spcier les droits daccs sur tous les chiers du systme de chiers
monter. Loption umask permet quant elle de xer les droits qui ne sont pas grs par le systme de
chiers. Ce peut tre utile pour les systmes de chiers FAT et FAT32. Il est ainsi possible de donner
les droits de lecture et dexcution pour les chiers de ces systmes avec une valeur de masque nulle.
Cela permet de monter les systmes de chiers FAT et FAT32 de telle sorte que tous les chiers ap-
partiennent lutilisateur root par dfaut, et de donner cependant tous les droits tous les utilisateurs
sur ces chiers. On prendra garde ces options, car elles permettent quiconque dcrire des chiers
sous le nom de root, et donc constituent un grave dfaut dans la scurit du systme.
Les deux derniers champs de /etc/fstab spcient des options pour des programmes annexes.
Lavant-dernier contrle le comportement du programme de sauvegarde dump, et le dernier celui du
programme de vrication de systme de chiers fsck. Consultez les pages de manuel pour plus de
dtails ce sujet.
Si vous disposez de systmes de chiers FAT ou FAT32, vous pourrez monter ces partitions automati-
quement lors du dmarrage du systme. Comme les systmes de chiers bass sur la FAT ne peuvent
pas grer les droits des utilisateurs, vous allez devoir faire un choix pour xer ces droits une valeur
raisonnable. Vous pouvez par exemple donner le droit de lecture tous les utilisateurs, mais le droit
dcriture uniquement ladministrateur systme. La ligne ajouter dans le chier /etc/fstab sera
alors la suivante :
/dev/partition rpertoire vfat auto,exec 0 0
o partitition est la partition contenant le systme de chiers FAT, et rpertoire est le rper-
toire servant de point de montage pour cette partition. Cette ligne permettra de monter automatique-
ment ce systme de chiers en tant que FAT32 au dmarrage du systme. Les chiers binaires seront
excutables, bien quils ne soient pas stocks sur un systme de chiers EXT2. Si vous voulez laisser
les droits dcriture aux utilisateurs, vous pouvez utiliser la ligne suivante la place de celle indique
ci-dessus :
/dev/partition rpertoire vfat auto,umask=0 0 0
Cette ligne permet de monter le systme de chiers FAT en laissant les droits dexcution et dcriture
aux utilisateurs. Cependant, aucun chier excutable de ce systme de chiers ne pourra tre lanc,
car loption exec na pas t prcise.
Par ailleurs, certaines distributions spcient des options incorrectes pour le systme de chiers
/dev/pts/ dans le chier /etc/fstab. Veuillez vous assurer que la ligne utilise pour ce systme
de chiers est bien identique la ligne suivante :
none /dev/pts devpts auto,gid=5,mode=620 0 0
Si ce nest pas le cas, certains mulateurs de terminaux dvelopps rcemment ne fonctionneront
pas correctement. Le systme de chiers /dev/pts/ est en effet un systme de chiers virtuel, gr
directement par le noyau, dans lequel des chiers spciaux de priphriques utiliss par les mulateurs
de terminaux sont placs. Si les droits ne sont pas correctement xs sur le rpertoire racine de ce
systme de chiers, les mulateurs de terminaux utilisant cette fonctionnalit ne pourront se connecter
au systme que sous le compte root. Il faut donc imprativement corriger cette ligne, si vous voulez
que les utilisateurs normaux puissent utiliser ces mulateurs. Notez galement quil faut que tout le
122
Chapitre 6. Administration du systme de base
monde ait les droits dcriture et de lecture sur le chier spcial de priphrique /dev/ptmx pour que
les utilisateurs non privilgis puissent utiliser ce systme de chiers virtuel.
Vous devrez galement ajouter le systme de chiers virtuel /dev/shm/ dans votre chier
/etc/fstab. Ce systme de chiers permet aux applications qui le dsirent dutiliser des segments
de mmoire partage de manire compatible avec la norme POSIX, par exemple pour raliser des
communications inter-processus. Ce systme de chiers permet en effet de crer des chiers qui sont
directement stocks dans la mmoire virtuelle et qui peuvent tre ouverts par plusieurs processus
simultanment, ce qui permet dutiliser les fonctionnalits classiques de partage de chiers pour
partager des zones de mmoire entre plusieurs processus. Ce type de communication peut tre utilis
par des processus courants, aussi faut-il vous assurer que la ligne suivante se trouve bien dans la
chier fstab :
tmpfs /dev/shm tmpfs defaults 0 0
Bien entendu, vous devrez crer le point de montage /dev/shm/ si celui-ci nexiste pas avant de
monter ce systme de chiers virtuels.
Enn, si vous utilisez des priphriques USB, vous pouvez monter le systme de chiers virtuel
/proc/bus/usb/ en ajoutant la ligne suivante dans le chier fstab :
none /proc/bus/usb usbdevfs defaults 0 0
Cette ligne doit tre place aprs celle qui effectue le montage du systme de chiers virtuel /proc/.
6.5. Gestion des utilisateurs et de la scurit
La rgle de scurit numro un sous Unix est de ne jamais travailler dans le compte root. En ef-
fet, ce compte dispose de tous les droits, et la moindre erreur de la part de lutilisateur dans ce
compte peut endommager non seulement ses propres donnes, mais galement lensemble du systme
dexploitation. De plus, le fait de ne pas travailler sous le compte root restreint un seul utilisateur
les dgts que pourraient faire un ventuel virus ou programme dfectueux.
Lune des premires tapes dans linstallation dun systme est donc de crer un compte utilisateur
normal, qui devra tre utilis pour le travail quotidien. Le compte root ne doit donc tre rserv quaux
tches dadministration, et toute opration ralise sous cette identit doit tre contrle deux fois
avant dtre effectivement lance. Les programmes dinstallation des distributions demandent donc
toujours un mot de passe pour protger le compte root et le nom et le mot de passe pour au moins un
compte utilisateur standard aprs une nouvelle installation.
Ces mmes programmes dinstallation peuvent tre utiliss par la suite pour ajouter de nouveaux
utilisateurs dans le systme. Il est dailleurs recommand de les utiliser ds quune telle opration
doit tre effectue. Cela dit, il est bon de connatre la manire dont les utilisateurs sont grs dans les
systmes Unix, aussi une approche plus bas niveau sera-t-elle adopte dans cette section.
6.5.1. Mcanismes dauthentication des utilisateurs
La scurit des systmes Unix repose fondamentalement sur les mcanismes dauthentication des
utilisateurs. Ces mcanismes visent sassurer que chacun est bien celui quil prtend tre, an de
donner chacun les droits daccs aux diffrents services du systme en fonction de ses privilges.
Laccs aux services du systme repose donc sur deux oprations essentielles : lidentication et
lauthentication. Lopration didentication consiste annoncer qui lon est, an de permettre
123
Chapitre 6. Administration du systme de base
au systme de dterminer les droits auxquels on a droit, et lopration dauthentication consiste
prouver quon est bien celui quon prtend tre. Le systme refuse ses services tout utilisateur
inconnu (cest--dire qui sest identi sous un nom inconnu) ou qui na pas pass avec succs la
phase dauthentication.
En interne, les systmes Unix identient les utilisateurs par un numro qui est propre chacun, son
UID (abrviation de langlais User IDentier ), mais il existe une correspondance entre cet
UID et un nom dutilisateur plus humainement lisible. Ce nom est classiquement appel le login ,
en raison du fait que cest la premire chose que le systme demande lorsquon cherche accder
ses services, pendant lopration dite de login.
Lauthentication des utilisateurs se fait classiquement par mot de passe, bien que dautres mca-
nismes soient possibles en thorie. Laccs au systme se passe donc toujours de la manire suivante :
le systme demande lutilisateur son nom (cest--dire son login) ;
il demande ensuite son mot de passe ;
il vrie la validit du couple (login / mot de passe) pour dterminer si lutilisateur a le droit de
lutiliser ;
et, si lutilisateur est connu et sest correctement authenti, le programme qui a ralis
lauthentication prend lidentit et les privilges de lutilisateur, xe son environnement et ses
prfrences personnelles, puis lui donne accs au systme.
Lexemple classique de ces oprations est tout simplement lopration de login sur une console : le
programme getty de gestion de la console demande le nom de lutilisateur, puis passe ce nom au
programme login qui lauthentie en lui demandant son mot de passe. Si lauthentication a russi,
il prend lidentit de cet utilisateur et lance son shell prfr. La suite des oprations dpend du shell.
Sil sagit de bash, le chier de conguration /etc/profile est excut (il sagit donc du chier de
conguration dans lequel toutes les options communes tous les utilisateurs pourront tre places par
ladministrateur), puis les chiers de conguration ~/.bash_profile et ~/.bashrc sont excuts.
Ces deux chiers sont spciques chaque utilisateur et permettent chacun dentre eux de spcier
leurs prfrences personnelles. Le chier ~/.bash_profile nest excut que lors dun nouveau
login, alors que le chier ~/.bashrc est excut chaque nouveau lancement de bash.
Bien entendu, ces oprations ncessitent que des informations relatives aux utilisateurs soient stockes
dans le systme. Historiquement, elles taient effectivement stockes dans le chier de conguration
/etc/passwd. Cela nest, en gnral, plus le cas. En effet, cette technique se rvle peu pratique
lorsque plusieurs ordinateurs en rseau sont accds par des utilisateurs itinrants. Dans ce genre de
conguration, il est courant de recourir un service rseau permettant de rcuprer les informations
concernant les utilisateurs partir dun serveur centralis. Plusieurs solutions existent actuellement
(NIS, LDAP, etc.), mais elles fonctionnent toutes plus ou moins selon le mme principe. De plus,
mme pour des machines isoles, le chier /etc/passwd ne contient plus que les informations
publiques sur les utilisateurs. Les informations utilises pour lauthentication sont dsormais
stockes dans un autre chier de conguration, qui nest lisible que pour lutilisateur root : le -
chier /etc/shadow. La raison premire de procder ainsi est dviter que des utilisateurs malicieux
puissent casser les mots de passe.
Note : Les mots de passe nont jamais t stocks en clair dans le chier passwd. Le mcanisme
dauthentication repose en effet sur une fonction de cryptage sens unique, qui ne dispose
donc pas de fonction inverse permettant de dcrypter un mot de passe crypt. Lorsquun util-
isateur saisit son mot de passe, celui-ci est crypt de la mme manire que lorsquil la dni
initialement, et cest le rsultat du texte crypt qui est compar avec ce qui se trouve dans le
124
Chapitre 6. Administration du systme de base
chier /etc/passwd ou le chier /etc/shadow. Ainsi, il est ncessaire de connatre le mot de
passe en clair pour authentier lutilisateur, mais aucun moment ce mot de passe nest stock
sur le disque dur.
Cela dit, mme si le dcryptage des mots de passe est quasiment impossible, la connaissance
des mots de passe crypts peut tre dune aide prcieuse. Un intrus potentiel peut essayer de
crypter tous les mots de passe possibles et imaginables laide dun dictionnaire ou de mots de
passe probablement choisis par les utilisateurs peu inventifs, et comparer le rsultat de tous ces
mots de passe crypts avec ce qui se trouve dans le chier de mot de passe. Sil y a une cor-
respondance, lintrus pourra pntrer le systme et tenter dutiliser dautres failles pour acqurir
les droits de lutilisateur root. Cette technique, dite attaque du dictionnnaire, est tout fait ral-
isable, dune part parce que la puissance des machines actuelles permet de crypter un nombre
considrable de mots de passe la seconde, et dautre part parce que bon nombre de personnes
utilisent des mots de passe triviaux (leur date de naissance, le nom de leur chien, etc.) facilement
devinables et testables. Cest pour cette raison que le chier de conguration /etc/shadow a
t introduit : tant lisible uniquement par lutilisateur root, un pirate ne peut pas comparer ses
mots de passe crypts avec ceux du systme. Il doit donc les essayer un un, ce qui peu en
dcourager plus dun...
La technique dauthentication par mot de passe peut paratre relativement primitive, lheure o les
cartes puce sont lgions et o lon commence voir apparatre des scanners dempreintes digitales.
En fait, cest une bonne solution, mais qui ne saurait en aucun cas tre exhaustive en raison des
problmes mentionns ci-dessus. Lidal est donc dutiliser plusieurs systmes dauthentication en
srie, ce qui laisse libre cours un grand nombre de possibilits.
Il est vident que la technique des mots de passe traditionnellement utilise sur les systmes Unix
nvoluera pas aisment vers de nouveaux mcanismes dauthentication. Cest pour cela que les
programmes devant raliser une opration dauthentication ou de gestion des utilisateurs de manire
gnrale ont t modis pour utiliser la bibliothque PAM (abrviation de langlais Pluggable
Authentication Modules ). Cette bibliothque permet de raliser les oprations didentication et
dauthentication de manire externe aux programmes qui lutilisent, et se base pour ces oprations
des chiers de conguration et des modules dynamiquement chargeables. Ainsi, grce la biblio-
thque PAM, ladministrateur peut dnir avec prcision les diffrentes oprations ralises pour
identier et authentier les utilisateurs, sans avoir modier les programmes qui ont besoin de ces
fonctionnalits. De plus, il est possible dajouter de nouveaux modules au fur et mesure que les
besoins voluent, et de les intgrer simplement en modiant les chiers de conguration.
De nos jours, la plupart des distributions utilisent la bibliothque PAM. Bien entendu, il existe des mo-
dules qui permettent de raliser les oprations didentication et dauthentication Unix classiques, et
ce sont ces modules qui sont utiliss par dfaut. Nous verrons le format des chiers de conguration
de la bibliothque PAM plus en dtail dans les sections suivantes.
Note : Les mcanismes dcrits ici ne sont srs que dans le cadre dune connexion sur un terminal
local. Cela dit, il faut bien prendre conscience que la plupart des applications rseau sont de
vritables passoires ! En effet, ils utilisent des protocoles qui transmettent les mots de passe en
clair sur le rseau, ce qui implique que nimporte quel pirate peut les capter en moins de temps
quil nen faut pour le dire. Les protocoles applicatifs suivants sont rputs pour tre non srs
et ne devront donc JAMAIS tre utiliss sur un rseau non sr (et donc, plus forte raison, sur
Internet) :
TELNET, qui permet deffectuer des connexions distance :
FTP, qui permet de transfrer et de rcuperer des chiers sur une machine distante ;
POP3, qui permet de consulter son mail ;
125
Chapitre 6. Administration du systme de base
SMTP, qui permet denvoyer des mails un serveur de messagerie ;
X, qui permet aux applications graphiques dafcher leurs fentres sur un terminal X.
Cette liste nest pas exhaustive mais regroupe dj les protocoles rseau des applications les
plus utilises.
La scurisation de ces protocoles ne peut se faire quen les encapsulant dans un autre protocole
utilisant un canal de communication crypt. Lun des outils les plus courant pour cela est sans
doute ssh. Cet outil sera dcrit dans la Section 9.2.8.4 du chapitre traitant du rseau.
6.5.2. Cration et suppression des utilisateurs
La cration dun nouvel utilisateur est une opration extrmement facile. Il suft simplement de lui
crer un rpertoire personnel dans le rpertoire /home/ et de le dnir dans le chier de conguration
/etc/passwd. Si votre systme utilise les shadow passwords, ce qui est probable, il faut galement
dnir cet utilisateur dans le chier de conguration /etc/shadow. De plus, il faut ajouter cet utili-
sateur dans au moins un groupe dutilisateurs dans le chier /etc/group.
Le chier de conguration /etc/passwd est constitu de plusieurs lignes, raison dune ligne par
utilisateur. Chaque ligne est constitue de plusieurs champs, spars par deux points (caractre :).
Ces champs contiennent respectivement le login de lutilisateur, son mot de passe crypt, son identi-
ant numrique, lidentiant numrique de son groupe principal, son nom complet ou un commen-
taire, le chemin de son rpertoire personnel et le chemin sur son interprteur de commandes favori.
Si le champ du mot de passe contient un astrisque, le compte est dsactiv. Sil est vide, le mot de
passe est stock dans le chier /etc/shadow.
Le chier de conguration /etc/shadow a une syntaxe similaire celle de /etc/passwd, mais
contient les champs suivants : le login de lutilisateur, son mot de passe crypt, le nombre de jours
depuis que le mot de passe a t dni (compts partir du premier janvier 1970), le nombre de jours
aprs cette date attendre avant que le mot de passe puisse tre chang, le nombre de jours au del
duquel le mot de passe doit obligatoirement tre chang, le nombre de jours avant la date dexpiration
de son mot de passe pendant lesquels lutilisateur doit tre averti que son mot de passe va expirer,
le nombre de jours attendre avant de dsactiver le compte aprs lexpiration du mot de passe, et le
nombre de jours depuis que le compte est dsactiv, compts depuis le premier janvier 1970. Il est
possible de supprimer lobligation pour les utilisateurs de changer rgulirement de mot de passe en
donnant un nombre de jours minimum suprieur au nombre de jours maximum avant le changement
de mot de passe.
Enn, le chier de conguration /etc/group, dans lequel les groupes dutilisateurs sont dnis, ne
dispose que des champs suivants : le nom du groupe, son mot de passe (cette fonctionnalit nest
plus utilise), son identiant numrique, et la liste des utilisateurs qui y appartiennent, spars par des
virgules.
Bien entendu, tous ces champs ne doivent pas tre modis la main. La commande useradd permet
de dnir un nouvel utilisateur simplement. Cette commande suit la syntaxe suivante :
useradd [-c commentaire] [-d rpertoire] [-e expiration] [-f inactivit] \
[-g groupe] [-G groupes] [-m [-k modle]] [-p passe]
[-s shell] [-u uid [-o]] login
126
Chapitre 6. Administration du systme de base
Comme vous pouvez le constater, cette commande prend en paramtre le login de lutilisateur, cest-
-dire le nom quil devra utiliser pour sidentier sur le systme, et un certain nombre doptions
complmentaires. Ces options sont rcapitules dans le tableau suivant :
Option Signication
-c Permet de dnir le champ commentaire du chier de mot de passe.
-d Permet de xer le rpertoire personnel de lutilisateur.
-e Permet de xer la date dexpiration du compte. Cette date doit tre spcie au
format AAAA-MM-JJ.
-f Permet de dnir le nombre de jours avant que le compte ne soit dsactiv une fois
que le mot de passe est expir. La valeur -1 permet de ne jamais dsactiver le
compte.
-g Permet de dnir le groupe principal auquel lutilisateur appartient. Il sagit
souvent du groupe users.
-G Permet de donner la liste des autres groupes auxquels lutilisateur appartient. Cette
liste est constitue des noms de chacun des groupes, spars par des virgules.
-m Permet de forcer la cration du rpertoire personnel de lutilisateur. Les chiers du
modle de rpertoire personnel stocks dans le rpertoire /etc/skel/ sont
automatiquement copis dans le nouveau rpertoire. Si ces chiers doivent tre
copis partir dun autre rpertoire, il faut spcier celui-ci laide de loption -k
-p Permet de donner le mot de passe initial du compte. Cette option ne doit jamais tre
utilise, car le mot de passe apparat dans la ligne de commande du processus et
peut tre lue par un utilisateur mal intentionn. On xera donc toujours le mot de
passe initial de lutilisateur laide de la commande passwd.
-s Permet de spcier le shell par dfaut utilis par lutilisateur.
-u Permet de spcier lUID de lutilisateur. Cette valeur doit tre unique en gnral,
cependant, il est possible de forcer lutilisation dun mme UID pour plusieurs
utilisateurs laide de loption -o. Cela permet de crer un deuxime compte pour
un utilisateur dj existant.
Lajout dun groupe se fait avec la commande groupadd, qui suit la syntaxe suivante, beaucoup plus
simple que celle de useradd :
groupadd [-g GID [-o]] nom
o nom est le nom du groupe et GID son numro. Il nest normalement pas possible de dnir un
groupe avec un identiant numrique dj attribu un autre groupe, sauf si lon utilise loption -o.
De la mme manire, la suppression dun utilisateur peut se faire manuellement en effaant son r-
pertoire personnel et en supprimant les lignes qui le concernent dans les chiers /etc/passwd,
/etc/shadow et /etc/group. Il est galement possible dutiliser la commande userdel. Cette com-
mande utiliser la syntaxe suivante :
userdel [-r] login
o login est le nom de lutilisateur. Loption -r permet de demander userdel deffacer rcursive-
ment le rpertoire personnel de lutilisateur, ce quelle ne fait pas par dfaut. Il existe galement une
commande groupdel pour supprimer un groupe dutilisateurs (cette commande supprime le groupe
seulement, pas les utilisateurs qui y appartiennent !).
127
Chapitre 6. Administration du systme de base
Note : Comme pour la plupart des autres oprations dadministration systme, il est fortement
probable que loutil de conguration fourni avec votre distribution dispose de toutes les fonction-
nalits ncessaires lajout et la suppression des utilisateurs. Il est recommand dutiliser cet
outil, car il peut effectuer des oprations dadministration complmentaires que les outils stan-
dards neffectuent pas forcment, comme la dnition des comptes mail locaux par exemple.
6.5.3. Description de la bibliothque PAM
La bibliothque PAM permet de centraliser toutes les oprations relatives lidentication et
lauthentication des utilisateurs. Ces tches sont en effet dportes dans des modules spcialiss
qui peuvent tre chargs dynamiquement dans les programmes qui en ont besoin, en fonction de
paramtres dnis dans des chiers de conguration. Le comportement des applications peut donc
tre parfaitement dni simplement en ditant ces chiers.
La bibliothque PAM permet une trs grande souplesse dans ladministration des programmes ayant
trait la scurit du systme et devant raliser des oprations privilgies. Il existe dj un grand
nombre de modules, capables de raliser une multitude de tches diverses et varies, et que lon
peut combiner loisir pour dnir le comportement de toutes les applications utilisant la bibliothque
PAM. Il est hors de question de dcrire chacun de ces modules ici, ni mme de donner la conguration
des programmes qui utilisent PAM. Cependant, nous allons voir les principes gnraux permettant de
comprendre comment les modules de la bibliothque sont utiliss.
Initialement, toute la conguration de PAM se faisait dans le chier de conguration
/etc/pam.conf. Ce chier contenait donc la dnition du comportement de chaque programme
utilisant la bibliothque PAM, ce qui ntait pas trs pratique pour ladministration et pour les mises
jour. Les informations de chaque programme ont donc t spares en plusieurs chiers distincts,
raison dun chier par application, tous stocks dans le rpertoire /etc/pam.d/. Il est fort probable
que votre distribution utilise cette solution, aussi le format du chier /etc/pam.conf ne sera-t-il
pas dcrit.
Certains modules utilisent des chiers de conguration pour dterminer la manire dont ils doivent se
comporter. Ces chiers de conguration sont tous stocks dans le rpertoire /etc/security/. Les
modules de PAM eux-mmes sont, quant eux, stocks dans le rpertoire /lib/security/.
Le principe de fonctionnement est le suivant. Lorsquun programme dsire raliser une opration
relative lauthentication dun utilisateur, il sadresse la bibliothque PAM pour effectuer cette
opration. La bibliothque recherche dans le rpertoire /etc/pam.d/ le chier de conguration
correspondant cette application (il porte gnralement le nom de lapplication elle-mme),
puis dtermine les modules qui doivent tre chargs dynamiquement dans lapplication. Si le
chier de conguration dune application ne peut pas tre trouv, le chier de conguration
/etc/pam.d/other est utilis, et la politique de scurit par dfaut qui y est dnie est utilise.
Quel que soit le chier de conguration utilis, chaque module est utilis en fonction des
paramtres qui y sont stocks. Les modules peuvent, sils en ont besoin, utiliser leurs propres
chiers de conguration, qui se trouvent dans le rpertoire /etc/security/. Ces chiers portent
gnralement le nom du module avec lextension .conf. Par exemple, le chier de conguration du
module limits, qui prend en charge les limites dutilisation des ressources systme pour chaque
utilisateur, est le chier /etc/security/limits.conf.
Les chiers de conguration des applications sont constitus de lignes dnissant les diffrents mo-
dules qui doivent tre chargs, le contexte dans lequel ils sont chargs, et comment doit se comporter
lapplication en fonction du rsultat de lexcution des oprations ralises par ces modules. Lordre
des lignes est important, puisquelles sont analyses les unes aprs les autres. Chaque ligne est consti-
128
Chapitre 6. Administration du systme de base
tue de trois colonnes. La premire colonne indique le cadre dutilisation du module. La deuxime
colonne indique le comportement que doit adopter la bibliothque PAM en fonction du rsultat ren-
voy par le module aprs son excution. Enn, la troisime colonne donne le chemin daccs complet
au module, ventuellement suivi des options qui doivent lui tre communiques pour son excution.
Les modules peuvent tre utiliss dans lun des contextes suivants :
auth, qui est le contexte utilis par les programmes qui demandent lauthentication de lidentit
de utilisateur ;
account, qui est le contexte utilis par les programmes qui dsirent obtenir des informations sur
lutilisateur (rpertoire personnel, shell, etc.)
password, qui est le contexte utilis par les applications qui cherchent revalider lauthentication
de lutilisateur. Les programmes comme passwd par exemple, qui demandent le mot de passe de
lutilisateur avant den xer un nouveau, sont susceptibles dutiliser ce contexte ;
session, qui est le contexte utilis par les applications lorsquelles effectuent les oprations de
gestion douverture et de fermeture de session. Ce contexte peut tre utilis pour raliser des tches
administratives, comme lenregistrement de lutilisateur dans la liste des utilisateurs connects ou
le chargement des prfrences personnelles de lutilisateur par exemple.
Une mme application peut dnir plusieurs jeux de rgles pour plusieurs contextes diffrents, et
certains modules peuvent tre utiliss dans plusieurs contextes diffrents galement. Cependant, lors-
quune application ralise une demande la bibliothque PAM, cette demande nest excute que
dans le cadre dun contexte bien dni. Attention cependant, une mme application peut effectuer
plusieurs oprations successivement dans des contextes diffrents. Par exemple, le programme lo-
gin peut utiliser le contexte auth pour valider lidentit de lutilisateur, puis le contexte account
pour dterminer le rpertoire personnel de lutilisateur, et enn le contexte session pour enregistrer
lutilisateur dans le journal des utilisateurs connects.
Le comportement de la bibliothque PAM en fonction du rsultat de lexcution des modules dpend
de ce qui est spci dans la deuxime colonne des lignes de ces modules. Les options qui peuvent y
tre utilises sont les suivantes :
required, qui permet dindiquer que le succs de lopration effectue par le module est nces-
saire pour que lopration effectue dans le contexte spci dans la premire colonne de la ligne
russisse. Un chec sur cette ligne ne provoque pas larrt de lanalyse du chier de conguration,
ce qui permet dappeler dautres modules, par exemple pour gnrer des traces dans les chiers
de traces du systme. Cependant, quel que soit le comportement des modules suivants, lopration
demande par le programme appelant chouera ;
requisite, qui permet dindiquer que le succs de lopration effectue par le module est n-
cessaire, faute de quoi lopration ralise par le programme appelant choue immdiatement. Les
autres modules ne sont donc pas chargs en cas dchec, contrairement ce qui se passe avec
loption required ;
sufficient, qui permet dindiquer que le succs de lexcution du module garantira le succs de
lopration demande par le programme appelant. Les modules suivants seront chargs malgr tout
aprs lappel de ce module, sauf sil sagit de modules de type required ;
optional, qui permet dindiquer que le rsultat du module ne doit tre pris en compte que si aucun
autre module ne peut dterminer si lopration est valide ou non. Dans le cas contraire, le module
est charg, mais son rsultat est ignor.
129
Chapitre 6. Administration du systme de base
titre dexemple, nous pouvons prsenter deux implmentations possibles du chier de congura-
tion par dfaut /etc/pam.d/other. Une conguration extrmement sre interdira laccs toute
fonctionnalit fournie par un programme nayant pas de chier de conguration. Dans ce cas de
conguration, on utilisera un chier comme celui-ci :
auth required /lib/security/pam_warn.so
auth required /lib/security/pam_deny.so
account required /lib/security/pam_deny.so
password required /lib/security/pam_warn.so
password required /lib/security/pam_deny.so
session required /lib/security/pam_deny.so
Nous voyons que toutes les oprations de type authentication ou de revalidation de lidentit sont
dabord traces dans les chiers de traces du systme, puis dclares comme interdites. Une telle
conguration peut tre un peu trop restrictive car, en cas derreur dans un chier de conguration
dune application, laccs cette application peut tre interdit systmatiquement. Une autre congu-
ration, plus permissive, cherchera utiliser les mcanismes didentication et dauthentication Unix
classiques. Cela se fait avec les modules pam_unix_auth, pam_unix_acct, pam_unix_passwd et
pam_unix_session :
auth required /lib/security/pam_unix_auth.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_unix_passwd.so
session required /lib/security/pam_unix_session.so
Les autres chiers de conguration ne seront pas dcrits ici, car ils dpendent de chaque application et
de chaque distribution. Vous pouvez consulter ceux qui sont installs sur votre systme si vous dsirez
en savoir plus.
Nous ne dcrirons pas non plus la syntaxe des chiers de conguration des diffrents modules, car cela
dpasserait largement le cadre de ce document. Cela dit, la plupart de ces chiers sont parfaitement
comments et leur modication ne devrait pas poser de problme particulier. titre dexemple, on
peut prsenter le cas du module de gestion des limites des ressources consommes par les utilisateurs.
Si lon dsire restreindre le nombre de processus que les utilisateurs peuvent lancer, on pourra ajouter
la ligne suivante dans le chier /etc/security/limits.conf :
@users hard nproc 256
Il faudra galement demander le chargement de ce module dans les chiers de conguration des
applications fournissant un accs au systme. Pour cela, on ajoutera une ligne telle que celle-ci la
n de leur chier de conguration :
session required /lib/security/pam_limits.so
Il est galement possible de limiter le nombre de login de chaque utilisateur, la quantit de mmoire
quil peut consommer, la dure de connexion autorise, la taille maximum des chiers quil peut
manipuler, etc. Vous trouverez de plus amples renseignements sur la conguration des modules de
PAM dans le guide dadministration de PAM pour Linux, que lon trouvera avec les sources de PAM
(http://www.kernel.org/pub/linux/libs/pam/).
130
Chapitre 6. Administration du systme de base
6.6. Conguration des terminaux virtuels
Un terminal est, comme son nom lindique, un quipement qui se trouve au bout dune connexion un
ordinateur et qui permet de travailler sur lordinateur. Un terminal comprend gnralement un clavier
et un cran (graphique pour les terminaux X), et parfois une souris. Initialement, les terminaux taient
des priphriques passifs connects sur un port srie de lordinateur. Cette architecture permettait de
partager une mme unit centrale avec plusieurs utilisateurs. De nos jours, la plupart des terminaux
sont simplement dautres ordinateurs du rseau, qui se connectent laide dun programme que lon
appelle mulateur de terminal . Lmulateur de terminal se contente de simuler un terminal rel
et permet de se connecter toute machine grant des terminaux clients. Du point de vue du systme,
tous les utilisateurs sont connects via des terminaux, quils soient physiques ou muls.
Les connexions locales sont donc ralises par lintermdiaire dun terminal local, la console. La
console est tout simplement le priphrique prenant en charge le clavier et lcran. Ce priphrique est
gr directement par le noyau, et mule un modle de terminal standard, le VT102. En fait, la console
nest utilise directement en tant que terminal de login quen mode monoutilisateur (cest--dire en
mode maintenance). En mode multiutilisateur, la console est partage entre plusieurs terminaux dits
virtuels , parce quils simulent la prsence de plusieurs terminaux sur la mme console. Ces ter-
minaux virtuels se partagent le clavier et lcran, mais seulement un de ces terminaux peut accder
la console chaque instant : celui qui traite les caractres saisis au clavier et qui ralise lafchage.
Pour pouvoir passer dun terminal virtuel un autre, il faut utiliser une squence de touches spciale,
comme par exemple ALT+Fn (ou CTRL+ALT+Fn si vous tes sous XWindow), o Fn est lune des
touches de fonction du clavier. Si lon utilise cette combinaison avec la touche F1, on accdera au
premier terminal virtuel. Avec la touche F2, ce sera le deuxime, avec F3, le troisime, etc.
Il est donc possible de simuler la prsence de plusieurs crans et claviers sur une mme machine,
ce qui est trs pratique lorsquon commence lancer plusieurs programmes en mme temps (cela
ncessite videmment de se connecter plusieurs fois sur des terminaux diffrents). Bien entendu, la
conguration du clavier et la police de caractres utilise sont communs tous les terminaux virtuels,
puisquils utilisent tous la mme console.
La plupart des distributions utilisent au moins quatre terminaux virtuels, plus ventuellement un ter-
minal pour le serveur X. Mais il est possible de dnir dautres terminaux, quils soient graphiques
ou non. Nous allons maintenant voir comment modier le nombre de terminaux virtuels disponibles.
Lutilisation des terminaux avec XWindow sera traite dans le chapitre traitant de la conguration de
XWindow.
Chaque terminal virtuel utilise un chier spcial de priphrique du rpertoire /dev/. Le nomde ce -
chier commence toujours par tty et est complt par le numro du terminal. Ainsi, le chier spcial
de priphrique /dev/tty1 correspond au premier terminal virtuel, accessible avec la combinaison
de touches CTRL+ALT+F1, le chier spcial de priphrique /dev/tty2 correspond au deuxime
terminal virtuel, etc. Linux peut grer jusqu 64 terminaux virtuels, cependant, il est ncessaire de
dnir dautres combinaisons de touches pour accder aux terminaux 13 et suivants (puisquil nexiste
que 12 touches de fonctions). Il serait possible dutiliser les combinaisons de touches ALT+DROITE
et ALT+GAUCHE pour les atteindre, mais dune part ce ne serait pas trs pratique, et dautre part, vous
ne devriez pas avoir besoin de plus de quatre ou cinq terminaux virtuels. Nous nutiliserons donc ici
que les douze premiers terminaux virtuels.
Les terminaux virtuels sont crs par le noyau la demande, ds quun processus cherche y accder.
Ainsi, le systme nalloue les ressources utilises pour la gestion de ces terminaux que lorsque cela
est ncessaire. Les terminaux peuvent tre crs par diffrents processus, et leur emploi nest pas
restreint la simple connexion des utilisateurs. Par exemple, il est possible dafcher un message sur
un terminal simplement en crivant dans son chier spcial de priphrique. Ainsi, si vous tapez la
commande suivante sous le compte root :
131
Chapitre 6. Administration du systme de base
echo Coucou > /dev/tty11
la chane de caractres Coucou devrait apparatre sur le terminal virtuel 11.
En gnral, les terminaux virtuels sont utiliss soit pour afcher les messages du systme, soit pour
permettre aux utilisateurs de se connecter, soit pour XWindow. Les terminaux peuvent donc tre
attribus diffrents programmes, selon lemploi quon leur rserve. Il faudra cependant bien prendre
garde au fait que les terminaux ne sont pas partageables entre tous les processus. Ainsi, on ne devra
pas essayer de lancer un serveur X sur un terminal utilis par un processus de connexion en mode
texte.
Pour crer des terminaux de login, il suft de demander au systme de lancer les processus de
connexion sur chaque terminal dsir. Ce travail est la charge du processus fondamental du systme :
init. La dnition des terminaux de login se fait donc dans le chier de conguration /etc/inittab.
Si vous regardez le contenu de ce chier, vous trouverez quelques lignes semblables la suivante :
1:2345:respawn:/sbin/getty 9600 tty1 linux
2:2345:respawn:/sbin/getty 9600 tty2 linux
etc.
Ces lignes indiquent init que plusieurs processus getty doivent tre lancs sur les diffrents terminaux
virtuels. Le programme getty est le programme qui vous demande votre nom dutilisateur sur les
terminaux virtuels. Plus prcisment, getty initialise le terminal, demande le nom dutilisateur et lance
le programme login en lui fournissant le nom saisi, an que celui-ci demande le mot de passe de cet
utilisateur.
Si vous dsirez rajouter des terminaux de login votre conguration, vous devrez donc rajouter
des lignes de ce genre dans le chier /etc/inittab. En fait, ces lignes sont constitues de quatre
champs :
le premier champ est le numro de la ligne. En pratique, ce numro doit tre celui du terminal
virtuel qui sera utilis par getty ;
le champ suivant ( 2345 ) contient les numros des niveaux dexcution dans lesquels cette ligne
est valide. Ces numros doivent tre spcis les uns la suite des autres, sans sparateur. Dans
lexemple donn ci-dessus, ces lignes sont valides dans les niveaux dexcution 2 5 compris,
cest--dire tous les niveaux dexcution classiques ;
le troisime champ indique init des options pour le lancement du programme getty. Dans
lexemple donn ci-dessus, le programme getty doit tre relanc immdiatement ds quil se
termine. Cela est le comportement dsir, puisque la terminaison de getty correspond la
dconnexion de lutilisateur courant, et quil faut laisser la possibilit de se reconnecter aux
suivants ;
le dernier champ indique le programme lancer et ses options de ligne de commande. Dans notre
cas, il sagit de /sbin/getty. Les options indiques sont la vitesse de la ligne de communication
utilise, le nom du terminal sur lequel getty doit travailler et son type (ici, ce sont des terminaux de
type linux ).
Vous pouvez bien entendu vous baser sur les lignes existantes pour en crer de nouvelles. Lopration
est trs simple : il suft de renumroter les lignes et les terminaux virtuels utiliss. Prenez garde
cependant ne pas affecter getty un terminal utilis par XWindow. Il est recommand deffectuer
ces modications dans le niveau dexcution 2 pour ne pas tre gn par XWindow.
Une fois les modications ajoutes, vous pourrez demander init de relire son chier de conguration
avec la commande suivante :
132
Chapitre 6. Administration du systme de base
init Q
Ds lors, les nouveaux terminaux sont prts tre utiliss.
6.7. Conguration de la console
Comme nous venons de le voir, tous les terminaux virtuels utilisent la mme console. La suite logique
des oprations est donc de voir comment on ralise la conguration de celle-ci... Nous allons donc
voir dans ce chapitre la manire de paramtrer le clavier et lafchage du texte lcran.
Pour cela, il est ncessaire de bien comprendre les mcanismes mis en uvre pour le traitement des
codes mis par le clavier dune part, et pour lafchage des symboles des lettres partir de leurs codes
dautre part. Ces mcanismes sont relativement volus et complexes, mais permettent de paramtrer
avec prcision la disposition des touches du clavier, le comportement des applications et lallure des
symboles afchs lcran.
Le plus simple pour comprendre le fonctionnement de la console est encore de voir les diffrentes
tapes entrant en ligne de compte de lappui sur une touche jusqu laction correspondant cet appui.
Notez bien que cette action nest pas forcment lafchage dune lettre lcran : cela dpend de
lapplication qui a trait lvnement correspondant lappui sur la touche. Il est toutefois ncessaire
de prsenter auparavant quelques notions sur la manire dont les caractres sont reprsents dans les
programmes.
6.7.1. Pages de codes et Unicode
De par leur nature de calculateurs, les ordinateurs nont jamais t conus pour manipuler nativement
du texte. Cela signie quils nont aucune notion de caractre ou de symbole : pour eux, tout est nu-
mrique. Par consquent, il a fallu trouver le moyen de reprsenter les caractres humains sous une
forme numrique an de pouvoir raliser des programmes de manipulation de texte. Cette reprsen-
tation est effectue en associant chaque caractre un numro donn, t en travaillant directement sur
ces numros. Par exemple, le caractre A est classiquement reprsent par le nombre 65, la lettre B
par le nombre 66, etc. Lopration consistant effectuer cette association sur chaque caractre dun
texte constitue ce que lon appelle lencodage du texte. Plusieurs manire de raliser cet encodage
ont t inventes, mais lun des standards les plus utiliss est lencodage ASCII. Lorsquil a t cr,
lencodage ASCII codait les caractres sur 7 bits. Depuis, il a t tendu pour utiliser 8 bits, ce qui
fait que chaque caractre est dornavant cod sur un octet. Ainsi, il est possible de reprsenter 256
caractres diffrents avec un octet, ce qui est sufsant pour toutes les langues occidentales.
Cependant, le standard ASCII initial ne spciait que lencodage des caractres utiliss en anglais,
tout simplement parce que les Amricains parlent anglais. videmment, cela ne convenait pas pour
les pays qui utilisent des lettres accentues, cest--dire pour quasiment tout le monde. Il a donc
fallu dnir dautres conventions que celle initialement utilise, an dassocier des codes numriques
aux caractres utiliss par les autres pays. Ces conventions constitue ce que lon appelle une page
de codes. Chaque pays est donc susceptible dutiliser une page de codes qui lui est spcique. Par
exemple, la page de codes 437 reprsente lencodage utilis aux tats-Unis, et la 850 celle utilise en
France.
Historiquement, les pages de codes nont pas t immdiatement standardises, ce qui a conduit
la prolifration de pages diffrentes et parfois incompatibles. Ainsi, les pages de codes utilises en
France sont les pages de codes 850 sous DOS, 1252 sous Windows, ISO 8859-1 et ISO 8859-15 sous
Unix. Ces deux dernires constituent la norme actuelle, et sont celles qui doivent tre utilises de
133
Chapitre 6. Administration du systme de base
prfrence. La norme ISO 8859-1 est galement connue sous le nom latin-1, et la norme ISO 8859-15
sous le nom latin-0. La norme latin-0 est une extension de la latin-1, qui ne prvoyait pas le codage
de certains caractres europens (comme le o e dans lo franais) et le symbole de lEuro.
Le dfaut majeur de lASCII et de ses drivs est de travailler sur des nombres 8 bits. Si le nombre de
256 caractres diffrents convient pour la plupart des pays occidentaux, ce nest pas le cas de quelques
autres pays, qui utilisent un nombre de symboles de trs loin suprieur 256. Cest notamment le cas
du Japon et de la Chine, qui ne peuvent pas encoder tous leurs idogrammes sur des nombres 8 bits.
Il a donc fallu introduire dautres types dencodages, plus riches, permettant de satisfaire aux besoins
de tout le monde.
Aprs des tentatives infructueuses dencodages taille variable (un ou plusieurs octets selon le carac-
tre cod), Unicode a t introduit et normalis sous le nom ISO 10646. Unicode est une convention
de codage universelle des caractres, qui utilise pour cela des nombres 32 bits (il existe galement
une version plus ancienne qui nutilise que 16 bits). Chaque caractre est reprsent par un nombre
et un seul, comme pour lASCII. Cependant, avec ses 16 ou 32 bits, le jeu de caractres Unicode
est sufsamment large pour coder tous les caractres de toutes les langues du monde. Bien entendu,
tous les codes ne sont pas utiliss, et le jeu de caractre Unicode est discontinu. Pour des raisons de
compatibilit, les 256 premiers caractres Unicode sont les mmes que ceux dnis dans la norme
ISO 8859-1 (ce qui rend malheureusement non compatible la norme ISO 8859-15, plus complte).
Les autres caractres sont affects dautres plages de codes, qui sont parfaitement dnies. Ainsi,
lutilisation dUnicode permettra, terme, de navoir plus quune seule page de codes pour tous les
pays.
Malheureusement, Unicode est une volution relativement rcente, et la plupart des programmes tra-
vaillent encore avec des caractres 8 bits, ce qui rend lutilisation dUnicode prmature. Linux, quant
lui, est capable de grer lUnicode. Cependant, pour des raisons dconomie de place, il ne lutilise
pas directement. Il prfre en effet utiliser lencodage UTF-8 (abrviation de langlais Unicode
Tranfer Format ). Cet encodage est un encodage taille variable, qui permet dencoder les caractres
Unicode avec de un six octets selon leur emplacement dans la page de codes Unicode.
6.7.2. Principe de fonctionnement du clavier
En gnral, les claviers envoient une srie de codes lunit centrale lorsquon appuie sur une touche.
Certaines touches gnrent un seul code, dautres peuvent en produire jusqu une dizaine. Ces codes,
que lon appelle scancode, sont rcuprs par le pilote du clavier dans le noyau de Linux, et consti-
tuent le dbut du traitement des saisies clavier. Les scancodes permettent normalement de dterminer
avec certitude lvnement qui sest produit, pour peu que lon connaisse parfaitement le type de cla-
vier utilis. Malheureusement, ils sont spciques chaque modle de clavier, et il est difcilement
concevable pour un programme de prendre en charge les particularits de tous les claviers existants.
De plus, qui peut prvoir aujourdhui combien de touches les claviers du futur auront, et quels scan-
codes ceux-ci utiliseront ?
Linux effectue donc un travail duniformisation en interprtant les scancodes et en les traduisant en
dautre codes, les keycodes. Ces codes sont toujours les mmes, quel que soit le clavier utilis. Les
keycodes simplient le traitement des donnes provenant du clavier en dnissant un code de touche
unique chacune des touches du clavier. Les keycodes sont galement souvent appels les codes de
touches virtuelles, car ils correspondent aux scancodes dun clavier virtuel uniforme et commun
toutes les plates-formes. La gestion des vnements clavier par lintermdiaire des keycodes est donc
beaucoup plus aise, car il ny a plus se soucier ici que de ce clavier virtuel. La correspondance entre
les scancodes, donc les touches physiques, et les keycodes, ou codes de touches virtuelles, est dnie
dans le pilote du clavier. La plupart des claviers courants sont pris en charge et, en gnral, peu de
personnes ont besoin de modier ce type dinformation. Toutefois, an de permettre lintgration des
134
Chapitre 6. Administration du systme de base
claviers futurs, il est possible de complter la table de conversion des scancodes en codes de touches
virtuelles.
Linterprtation des keycodes est une opration relativement complique et peu commode cause du
grand nombre de dispositions de clavier existantes et, pour chaque type de clavier, des diffrentes
dclinaisons existantes en fonction des langages des divers pays qui les utilisent. Cest pour cela
quune autre association, qui permet de dnir le comportement obtenir pour chaque combinaison
de codes de touches virtuelles, a t introduite. Cette correspondance est dcrite dans un chier que
lon appelle couramment le plan de clavier (ou keymap en anglais). Les keymaps contiennent donc,
pour chaque touche ou combinaison de touches virtuelles utilise, la dnition dune action effectuer
ou dun code de caractre renvoyer. Ces codes sont renvoys en ASCII, cods selon la page de codes
dnie dans le plan de clavier. Cependant, certaines touches ne sont pas associes une lettre ASCII
et ne peuvent donc pas tre reprsentes par des codes simples. Cest le cas, par exemple, des touches
du curseur et des touches de suppression du clavier. Ces touches sont donc signales aux programmes
laide de squences de codes appeles les codes dchappement. Les codes dchappement sont
en ralit des squences de codes ASCII dont le premier est le code du caractre dchappement
Escape (dont le numro est 27, quelle que soit la page de codes utilise). Ces squences sont donc
utilises typiquement pour signaler aux programmes qui les lisent quun traitement particulier doit
tre effectu, comme par exemple le dplacement du curseur.
Figure 6-1. Traitements des entres clavier
Les programmes peuvent peuvent travailler nimporte lequel des trois niveaux de traitement que
lon vient de dcrire. Les programmes qui rcuprent directement les scancodes travaillent en mode
raw (ce qui signie en anglais que les donnes sont brutes ). Ils nutilisent donc pas la traduction
en codes de touches virtuelles et doivent ncessairement connatre les caractristiques physiques des
claviers quils veulent supporter. Cest le cas par exemple des serveurs X. Les programmes qui uti-
lisent les keycodes travaillent dans le mode nomm medium raw ou keycode. Cependant, la plupart
des programmes travaillent avec les codes issus du plan de clavier, qui sont normaliss et font bn-
cier dune plus grande portabilit (y compris avec dautres systmes Unix que Linux). Dans ce cas,
on dit quils travaillent en mode ASCII, ou xlate (abrviation de langlais translate , ce qui signie
traduction ).
Note : En fait, la console peut galement travailler en Unicode, dans le mode UTF-8. Ce mode
permet de travailler directement en Unicode, si vous le dsirez. Cependant, vous devrez vous
135
Chapitre 6. Administration du systme de base
assurer dans ce cas que tous les programmes que vous utilisez sont capables de fonctionner
avec un encodage taille variable.
Dans tous les cas, les programmes lisent les donnes provenant du clavier sur la console, par
lintermdiaire du chier spcial de priphrique /dev/console. En fait, ces programmes ne savent
pas quils lisent les donnes du clavier local. Pour eux, ces donnes semblent provenir dun terminal
VT102, et ils traitent ces donnes comme celles provenant de nimporte quel terminal. Cela signie
que ces donnes semblent provenir dune ligne de communication, laquelle le terminal local est
connect. Et qui dit ligne de communication, dit paramtres de transmission des informations sur
la ligne ! Les caractres issus de la keymap peuvent donc subir un traitement supplmentaire, en
fonction des paramtres de la ligne de communication (virtuelle) utilise par la console. Cependant,
il nest en gnral pas ncessaire de modier ces paramtres, puisque la ligne de communication
utilise est bien entendue idale (quitte tre virtuelle, autant tre idale, non ?).
Gloups !? Que cest compliqu ! Cest effectivement la rexion que vous tes en droit de vous faire.
Cependant, si lon prend un peu de distance par rapport ce mcanisme en trois passes, on comprend
son intrt. Premirement, la contrainte initiale est la complexit des scancodes. Sur ce point, il ny
a rien dire. Grce aux keycodes, il nest plus ncessaire de se soucier du modle de clavier utilis.
Ensuite, grce aux keymaps, il est possible de faire lassociation entre les keycodes et les lettres crites
sur les touches du clavier. Ainsi, la disposition du clavier, ainsi que les raccourcis claviers, peuvent tre
compltement paramtrs. Enn, les applications qui grent les touches spciales du clavier peuvent
interprter les codes dchappement, qui sont ceux renvoys par le terminal de la console. Dans tous
les cas, les programmes qui lisent les donnes du clavier considrent que ces donnes proviennent
dun terminal classique. Ils nont donc pas besoin de faire des hypothses sur lorigine des donnes,
et leur programmation en est dautant plus simple.
Passons maintenant aux travaux pratiques. La commande kbd_mode permet de dterminer le mode
de fonctionnement du clavier. Si vous lessayez partir dune console, vous verrez que le clavier est en
mode ASCII. Inversement, si vous tapez cette commande partir dune session X, vous constaterez
que XWindow utilise le clavier en mode raw, et gre donc les scancodes lui-mme. Vous pouvez
galement visualiser les codes renvoys dans les trois modes de fonctionnement du clavier avec la
commande showkey. Lance avec loption -s, elle permet dafcher les scancodes lors de lappui
sur chaque touche. Vous pourrez constater que toutes les touches ne renvoient pas le mme nombre
de codes. Vous pourrez utiliser loption -k pour visualiser les keycodes renvoys par le noyau lors
de lappui et du relchement des touches. Enn, si vous utilisez loption -a, vous verrez les codes de
touches ASCII. Vous pourrez constater que les touches spciales renvoient des squences de codes
dchappement.
Note : Notez galement que certaines touches renvoient des caractres de contrle (nots ^A
^Z). Ces caractres correspondent en fait aux codes ASCII allant de 1 26 et ne sont pas
des squences dchappement. Ils peuvent galement tre gnrs avec les combinaisons de
touches CTRL+A CTRL+Z. Si vous ne me croyez pas, tapez la commande ls dans une console et
tapez la combinaison de touches CTRL+M (celle affecte la touche Entre). Vous verrez, cest
comme si vous aviez tap Entre !
Le programme showkey ne peut pas tre lanc sous XWindow, parce que celui-ci gre lui-mme
le clavier. showkey se termine de lui-mme au bout de dix secondes aprs la dernire frappe,
ou lors de lappui de la squence de touches CTRL+D sil est en mode ASCII.
136
Chapitre 6. Administration du systme de base
6.7.3. Principe de fonctionnement de lcran de la console
Il est temps maintenant de passer au mcanisme dafchage des caractres sur lcran. Comme vous
avez pu le voir dans les paragraphes prcdent, le fait dappuyer sur une touche ne fait rien dautre
que de fournir des codes numriques aux programmes. Contrairement ce que vous pourriez penser,
les codes de ces touches ne sont pas forcment transmis directement lcran (heureusement, com-
ment taperiez-vous votre mot de passe labri des regards indiscrets sinon ?). En fait, lafchage des
caractres lcran est un des paramtres de la ligne du terminal, que lon nomme echo. Pour la plu-
part des programmes, lcho automatique est dsactiv. Pour dautres ce sont les applications qui, en
fonction des codes quelles lisent sur la console, effectuent une action. Mais la majorit de ces actions
ncessitent effectivement dafcher des rsultats sur le moniteur. Pour raliser cela, les programmes
crivent les donnes afcher dans le chier spcial de priphrique de la console.
Comme nous lavons vu, la console de Linux se comporte comme un terminal local. Cela implique
que les applications qui dsirent crire des donnes doivent les envoyer par la ligne de communication
via laquelle elles sont connectes ce terminal. Tout comme les scancodes du clavier, les caractres
envoys la console par les applications subissent un traitement impos par les paramtres de la ligne
de communication virtuelle utilise. Bien entendu, ce traitement est encore une fois minimal, puisque
cette ligne est idale. Notez que les programmes nen savent absolument rien car, pour eux, tout se
passe comme sils crivaient sur un terminal rel. Quoi quil en soit, le ux de caractres arrive au
niveau du gestionnaire de la console aprs ce traitement de base.
Comme nous lavons dj dit plus haut, la console Linux mule un terminal VT102, et recherche donc
les codes de contrle et les squences dchappement de ces consoles. Ces codes dchappement sont
classiquement utiliss pour effectuer des oprations sur la console, comme par exemple le dplace-
ment du curseur, la prise en compte de la couleur et des attributs des caractres afchs, leffacement
de lcran, etc. Pour information, tous les codes de la console sont dcrits dans la page de manuel
console_codes.
Les codes qui ne sont pas reconnus comme tant des codes dchappement sont traits en tant que
caractres normaux. Le gestionnaire de la console doit donc dterminer quel caractre doit tre impri-
m lcran pour chaque code fourni par lapplication. Cela nest pas une opration facile, parce que
les polices de caractres, qui contiennent la dnition de la reprsentation graphique des caractres,
nutilisent pas forcment la page de codes active dans le systme. Cela signie que les caractres
dnis dans la police napparaissent pas forcment dans le mme ordre que celui de la page de codes,
et pour cause : une police peut parfaitement tre utilisable dans plusieurs pays diffrents ! Cela com-
plique donc un peu plus les choses, puisquil faut utiliser une table de conversion entre la page de
codes du texte afcher et lencodage propre de la police.
An de raliser cette conversion, le gestionnaire de la console Linux commence par convertir tous les
caractres quil reoit en Unicode . Si la console est en mode UTF-8, cette opration est immdiate,
car lUTF-8 est un encodage Unicode. En revanche, si la console est en mode ASCII, cette opration
ncessite lemploi dune table de conversion. Linux dispose de quatre tables de conversion :
la premire table permet de faire la conversion entre la page de codes ISO 8859-1 et Unicode (cette
conversion est, par dnition, immdiate) ;
la deuxime table permet de faire la conversion entre les codes graphiques des terminaux VT100 et
Unicode ;
la troisime table permet deffectuer la conversion entre la page de codes 437 et Unicode ;
et la quatrime et dernire table est rserve lusage personnel de lutilisateur.
137
Chapitre 6. Administration du systme de base
La dernire table est trs utile, car elle permet de dnir une nouvelle table de conversion si ncessaire.
Par dfaut, elle convertit les codes reus en codes Unicode spciaux, qui reprsentent les codes utiliss
par la police de caractres charge. Ainsi, lorsque cette table est utilise, les codes reus par la console
seront utiliss directement pour localiser les caractres dans la police de caractres. Cela ne peut
fonctionner que si les applications utilisent le mme encodage que la police de caractres courante.
Linux dispose de deux jeux de caractres, nomms respectivement G0 et G1, qui permettent de s-
lectionner la table de conversion utiliser. Par dfaut, ces jeux de caractres pointent respectivement
sur la premire et la deuxime table de conversion, mais cela peut tre modi laide de codes
dchappement. Seul un jeu de caractres est actif un moment donn. Par dfaut, il sagit du jeu G0,
ce qui implique que la table de conversion utilise par dfaut est la table ISO 8859-1 vers Unicode. Il
est galement possible de changer de jeu de caractres, laide dun code de contrle. Ce mcanisme
ne sera pas dcrit plus en dtail ici, car il ne nous sera pas utile.
Note : En fait, la recherche des codes de contrle est effectue a posteriori, aprs la conversion
en Unicode.
Dans tous les cas, les codes envoys par lapplication sont donc convertis en Unicode (16 bits). Ils
peuvent donc tre reconvertis aisment dans lencodage utilis par la police de caractre charge en
mmoire vido. Par dfaut, cette opration est triviale, et lencodage cible est donc lencodage ISO
8859-1, sauf si la quatrime table de conversion a t utilise. Dans ce cas en effet, lencodage cible
est le mme encodage que celui utilis par lapplication (tout se passe donc comme si rien ne stait
pass). Enn, la dernire opration est tout simplement lcriture du code dans la mmoire vido. Ce
code est utilis par la carte graphique comme index dans la police de caractre, et le caractre ainsi
localis est afch.
Figure 6-2. Traitement des caractres pour lafchage
Gloups !? Que cest compliqu ! a ne va pas recommencer ? Eh si ! Mais, encore une fois, ce
mcanisme permet de rendre indpendant les applications des polices de caractres. Chacun peut
utiliser lencodage quil dsire, et grce un petit passage en Unicode, tous les caractres nissent
par tre reprsents par le bon symbole lcran... En fait, le passage par Unicode donne la possibilit
de dnir les tables de conversion des polices uniquement par rapport Unicode, et non par rapport
138
Chapitre 6. Administration du systme de base
tous les encodages possibles que les applications peuvent utiliser. Cela permet donc lutilisation de
polices de caractres diverses et varies, sans avoir modier les applications.
6.7.4. Conguration du clavier
Bien que les distributions modernes fournissent les outils ncessaires la conguration correcte du
clavier, vous aurez peut-tre intervenir pour le personnaliser selon vos propres dsirs. La congura-
tion du clavier comprend la dnition des scancodes, la dnition du plan de clavier, et le rglage de
la vitesse de rptition et de la touche de verrou numrique.
6.7.4.1. Dnition de scancodes
La dnition des scancodes est une opration qui ncessite une bonne connaissance du fonction-
nement du clavier des PC. Heureusement, rares sont les personnes qui disposent de claviers non
standards, cest--dire, en pratique, de claviers disposant de plus de 105 touches. Notez que Linux
reconnat parfaitement les touches Windows qui ont t introduites par Microsoft, et il ny a
donc pas lieu de dnir leurs scancodes. Cependant, les claviers les plus rcents disposent de touches
Internet ou Multimedia , qui ne sont pas encore reconnues par Linux en standard. Lutilisation
de ces touches se traduit donc simplement par un message derreur dans les traces systmes. Si vous
disposez dun tel clavier, et que vous dsirez utiliser ces touches, vous allez devoir les dnir dans la
table des scancodes du noyau.
Pour raliser cette opration, il faut avant tout dterminer les scancodes envoys par le clavier lors
de lappui sur la touche dnir. Comme nous lavons indiqu plus haut, les scancodes peuvent tre
visualiss avec loption -s de showkey :
showkey -s
Les scancodes sont exprims en hexadcimal, cest--dire en base 16. Dans cette base, les lettres A
F reprsentent les chiffres manquants la base 10, cest--dire les chiffres ayant respectivement pour
valeur 10, 11, 12, 13, 14 et 15.
En gnral, le clavier envoie un scancode lors de lappui sur une touche, puis le mme scancode
augment de 128 lors de son relchement. Le nombre de 128 provient du fait que le bit de poids fort
du scancode est mis un lors du relchement de la touche. Ainsi, la touche A des claviers franais
renvoie le scancode 16 lors de lappui, soit 0x10 en hexadcimal, et le scancode 144, soit 0x90, lors
du relchement (notez que la valeur 128 se note 0x80 en hexadcimal, et que lon a bien 0x90 = 0x10
+ 0x80).
Cependant, certaines touches renvoient des scancodes plus complexes. Ces touches sont gnralement
des touches qui ont t ajoutes aprs la dnition des premiers claviers PC, et qui ont sensiblement
le mme rle quune touche dj prsente. Cest exactement le cas de la touche CTRL de droite par
rapport la touche CTRL de gauche. Pour cette raison, les scancodes de ces touches sont les mmes
que ceux de certaines touches classiques , mais ils sont prcds du prxe 0xE0, qui indique quil
sagit dune touche tendue. Par exemple, la touche CTRL de gauche (cest--dire la premire touche
de contrle qui ait t utilise) utilise le scancode 0x1D lappui, et le scancode 0x9D au relchement.
La touche CTRL de droite renvoie donc la squence suivante lappui :
0xE0 0x1D
et la squence suivante au relchement :
139
Chapitre 6. Administration du systme de base
0xE0 0x9D
Lintrt de procder ainsi est que les vieux programmes, incapables de grer les codes de touches
tendus, ignoraient purement et simplement le code 0xE0. Ainsi, ils confondaient les deux touches
CTRL, ce qui est le comportement dsir.
Dautres touches tendues utilisent des squences de scancodes variables. Par exemple, les touches du
curseur (entre la touche Entre et le pav numrique) ont t ajoutes pour simplier le dplacement
du curseur lcran. Initialement, on nutilisait que les touches du pav numrique, en combinaison
de la touche Majuscule de droite si le verrou numrique tait enclench. Par consquent, la squence
de scancodes gnre lors de lutilisation de la touche Flche Haute du pav numrique tait 0x48
si le verrou numrique ntait pas enclench, et 0x2A 0x48 sinon (soit le scancode de la touche
Majuscule de gauche suivi du scancode de la touche 8 du pav numrique). Lors du relchement, la
squence tait inverse (et augmente de 128) : 0xC8 ou 0xC8 0xAA selon ltat du verrou numrique.
La touche Flche Haute tendue renvoie donc deux squences de scancodes diffrents selon ltat
du verrou numrique 0xE0 0x48 ou 0xE0 0x2A 0xE0 0x48.
Lors du relchement, la squence suivante complexe 0xE0 0xC8 ou 0xE0 0xC8 0xE0 0xAA est
mise selon ltat du verrou numrique. Notez que ltat du verrou numrique est maintenu en interne
par llectronique du clavier, indpendamment de ltat de la diode lumineuse du verrou numrique.
Celui-ci peut en effet tre enclench sans que la diode soit allume, si le programme de gestion du
clavier ne synchronise pas le clavier et sa diode.
Enn, pour couronner le tout, certaines touches spciales utilisent une squence de scancodes sp-
ciques. Par exemple, la touche Pause ne renvoie que la squence 0xE1 0x1D 0x45 0xE1 0x9D
0xC5 lappui. Elle utilise donc le prxe 0xE1 au lieu de 0xE0, et simule lappui et le relchement
immdiat des touches CTRL + Verrou Numrique (ce qui tait la manire de provoquer la pause
avant lintroduction de la touche Pause).
Comme vous pouvez le constater, tout cela est trs compliqu. Heureusement, le noyau fait le mnage
pour vous et limine les touches suivantes :
les touches non tendues sont traites immdiatement (scancodes 0x01 0x58) ;
la touche Pause est gre automatiquement ;
les codes 0x2A et 0xAA de la touche Majuscule de droite sont automatiquement limins.
Grce ce traitement, les seuls scancodes que vous manipulerez sont les scancodes simples non
connus, et les scancodes prcds du prxe 0xE0.
Lassociation dun scancode inconnu un keycode se fait laide de lutilitaire setkeycodes. Sa
syntaxe est la suivante :
setkeycodes scancode keycode
o scancode est le numro du scancode, exprim en hexadcimal et sans le prxe 0x , et
keycode est bien entendu le numro de keycode attribuer cette touche. Les numros de scan-
codes peuvent tre simples (par exemple 48) ou prcds de leur prxe (par exemple E048). Les
numros de keycodes doivent tre exprims en dcimal, et doivent tre compris entre 1 et 127.
Par exemple, mon clavier dispose de 12 touches Multimdia supplmentaires, dont les scancodes
ne sont pas reconnues par le noyau. La touche Arrt du son gnrant les scancodes suivants
lappui :
0xE0 0x20
140
Chapitre 6. Administration du systme de base
je peux lui associer le keycode 119 avec la commande suivante :
setkeycodes E020 119
Il va de soi quil faut sassurer que chaque keycode nest utilis quune fois ( moins, bien entendu, de
vouloir que plusieurs touches aient le mme comportement). Pour cela, vous aurez sans doute besoin
de voir les correspondances entre scancodes et keycodes. La commande suivante vous donnera la liste
de ces correspondances :
getkeycodes
Les keycodes sont prsents raison de huit par ligne. Le scancode de la touche dcrite par le premier
lment de chaque ligne est afch en tte de la ligne. Les autres scancodes peuvent tre dduits en
ajoutant le numro de la colonne dans laquelle se trouve chaque keycode au numro du scancode du
premier keycode.
6.7.4.2. Dnition dun plan de clavier
Comme nous lavons expliqu dans les paragraphes prcdents, les plans de clavier dnissent les as-
sociations entre les keycodes et les caractres ou les squences dchappement renvoys par le clavier.
Les plans de clavier permettent galement de dnir des squences de composition, an dobtenir de
nouveaux caractres en composant les actions de plusieurs touches.
La dnition dun plan de clavier est donc constitue de trois parties. La premire partie dcrit les
symboles accessibles pour certaines touches du clavier. Par exemple, les symboles accessibles pour la
touche A peuvent tre les caractres a, A, et , laide des touches de majuscule et AltGr.
La deuxime partie permet daffecter des chanes de caractres certaines touches particulires. Cette
partie peut contenir par exemple la dnition de touches de raccourci pour les commandes les plus
utilises. En pratique cependant, elles sont souvent utilises pour dnir des squences dchappement
pour les touches de fonction et les touches du curseur, squences qui seront interprtes ensuite par les
applications. Enn, la dernire partie permet de dnir les compositions de touches pour obtenir des
caractres qui nauraient t accessibles autrement que par des combinaisons de touches compliques.
Pour chaque touche normale du clavier, il est possible de dnir jusqu 256 symboles diffrents. Ces
symboles sont slectionns grce des touches de modication du comportement de base des autres
touches, comme par exemple la touche Ctrl ou la touche Alt Gr. Linux est capable de grer des
combinaisons de touches faisant intervenir jusqu huit touches de modication diffrentes en plus
de la touche affecte (remarquez quavec dix doigts, on peut encore y parvenir !). Ces touches sont
rcapitules dans le tableau suivant :
Touche de
modication
Valeur Description
Shift 1 Touches de passage en majuscule (situes au dessus des touches
Ctrl sur les claviers franais).
altgr 2 Touche Alt Gr, situe droite de la barre despacement.
control 4 Touches Ctrl, situes aux extrmits infrieures du clavier.
alt 8 Touche Alt, situe gauche de la barre despacement.
141
Chapitre 6. Administration du systme de base
Touche de
modication
Valeur Description
shiftl 16 Touche de majuscule de gauche.
shiftr 32 Touche de majuscule de droite.
ctrll 64 Touche Ctrl de gauche.
ctrlr 128 Touche Ctrl de droite.
Chaque touche dispose dun code numrique qui est une puissance de deux. Lorsquelles sont utilises
dans une combinaison avec une touche donne, la somme de ces valeurs est calcule pour dterminer
le numro du symbole dans la liste des symboles associs la touche. Comme on peut le voir, toutes
les valeurs possibles allant de 0 255 sont ralisables selon la combinaison de touches utilise, ce qui
permet donc de dnir effectivement 256 symboles diffrents pour chaque touche du clavier.
Cependant, les touches Shift et Ctrl sont utilises plusieurs fois dans le tableau, prcisment trois
fois, la premire ne faisant pas de distinction entre la touche de droite et la touche de gauche. En
pratique donc, toutes les combinaisons ne sont pas ralisables. Mais en ralit, les touches de contrle
du clavier sont des touches comme les autres, et peuvent tre places nimporte o dans le plan de
clavier. Il est donc parfaitement possible de raliser une distinction entre les touches Majuscule,
Majuscule Droite et Majuscule Gauche (et de mme pour les touches Ctrl). Par exemple, on
peut associer la touche Majuscule la touche Echap, ce qui permet de faire la distinction entre les
trois variantes de touches de majuscules... Heureusement, il nest pas ncessaire daller jusque l. Les
plans de clavier nutilisent en pratique que les quatre premires touches de contrle, qui sont celles
que vous connaissez.
La dnition des symboles accessibles pour une touche utilise la syntaxe suivant :
keycode = symbole symbole symbole ...
o keycode est le keycode qui identie la touche en question, et symbole est un des symboles accep-
ts dans les plans de clavier. Vous pourrez obtenir la liste des symboles utiliss grce la commande
suivante :
dumpkeys --long-info
Vous pourrez voir par exemple les symboles A, B, C, etc. qui reprsentent les lettres classiques, ainsi
que des symboles spciaux comme exclamdown, hyphen, cedilla, etc. pour les lettres non alpha-
btiques. Il existe galement des symboles pour les touches spciales comme Backspace, Delete,
Escape. Enn, le symbole VoidSymbol permet de signaler labsence de symbole pour la combinai-
son de touches considre.
En thorie, il faut dnir la liste des 256 symboles accessibles pour chaque touche. Le premier sym-
bole est donc le symbole obtenu par appui direct de la touche, le deuxime est celui obtenu par
la combinaison Majuscule + Touche, le troisime celui de la combinaison AltGr + Touche, le
quatrime par Majuscule + AltGr + Touche, etc. videmment, il est trs fastidieux de dnir
ces 256 possibilits. Pour simplier le format des plans de clavier, il est possible de ne spcier que
les combinaisons utilises, ce qui rduit en pratique quatre colonnes de symboles un plan de clavier
franais. De plus, les derniers symboles sont facultatifs sils sont tous VoidSymbol. Vous pouvez
indiquer au dbut du plan de clavier les valeurs des combinaisons de touches de modications qui
seront effectivement utilises avec la syntaxe suivante :
keymaps valeurs
142
Chapitre 6. Administration du systme de base
o valeurs est la liste des valeurs ou des plages de valeurs des combinaisons de touches utilises.
Les lments de cette liste sont spars par des virgules, et les plages de valeurs sont indiques par
leurs premire et dernire valeurs, spares par un tiret.
Vous pouvez galement utiliser une autre syntaxe, qui permet de ne modier que les symboles associs
certaines combinaisons de touches. Cette syntaxe est trs utile lorsque vous ne dsirez modier que
quelques affectations de touches :
modificateur keycode = symbole
Dans cette syntaxe, modificateur est la liste des modicateurs devant intervenir dans la combinai-
son de touches, et keycode et symbole sont toujours le keycode de la touche et le symbole gnrer.
Les modicateurs autoriss sont les noms des touches de modication indiques dans le tableau ci-
dessus, plus le modicateur plain, qui signie quaucune touche de modication nest utilise. Par
exemple, la ligne suivante :
plain keycode 16 = q
permet daffecter le symbole q la touche A de votre clavier, et la ligne :
alt keycode 30 = a
permet daffecter le symbole a la combinaison de touches Alt + Q (nessayez surtout pas ces deux
exemples, vous deviendriez fou).
Note : Par dfaut, les symboles utilisables dans les plans de clavier sont les symboles du jeu de
caractres ISO 8859-1. Dautres encodages sont utilisables, mais celui-ci convient parfaitement
pour un clavier franais.
Comme nous lavons dit plus haut, la deuxime partie dun plan de clavier permet daffecter des
chanes de caractres certaines touches. Cela est facilement ralisable, avec la syntaxe suivante :
string symbole = "chane"
o symbole est le nom dun des symboles affect prcdemment une touche, et chane est une
chane de caractres. Les chanes de caractres tant dlimites par des guillemets anglais ( " ),
ceux-ci ne peuvent pas tre utiliss en tant que caractres de ces chanes. Pour rsoudre ce problme,
on peut utiliser un antislash comme caractre dchappement :
\"
Vous pouvez galement spcier des caractres directement laide de leur valeur en base huit,
laide de la syntaxe suivante :
\0valeur
o valeur est la valeur du caractre. Bien entendu, lantislash tant utilis comme caractre
dchappement, il doit lui-mme tre prcd dun caractre dchappement si lon dsire lutiliser
dans une chane de caractres :
143
Chapitre 6. Administration du systme de base
\\
Ainsi, si lon veut faire en sorte que la touche F4 afche la chane de caractres Coucou , il suft
dutiliser la ligne suivante dans le plan de clavier :
string F4 = "Coucou"
Bien entendu, les chanes de caractres les plus utiles sont celles qui dnissent les squences
dchappement pour les touches spciales. Par exemple, la dnition de la touche Page Haut est la
suivante :
string PageUp = "\033[5~"
Vous pouvez reconnatre ces squences dchappement la prsence du caractre octal 033, soit 27 en
dcimal, qui nest rien dautre que le caractre Escape dans le jeu de caractres ISO 8859-1. Ne vous
inquitez par pour linstant de la forme apparemment complique de ces squences dchappement,
nous verrons plus loin comment elles sont utilises.
Enn, les plans de clavier contiennent la dnition des compositions. Les compositions de touches
sont accessibles laide dune touche spciale dite de composition, dont le symbole est Compose dans
le plan de clavier (il est donc ncessaire que ce symbole soit affect lune des touches du clavier
pour utiliser les compositions). Lorsquon appuie sur la touche de composition, le clavier attend deux
autres touches, dont les caractres serviront de base au caractre compos. Par exemple, les caractres
^ et a donne le caractre compos .
Les compositions utilisent la syntaxe suivante :
compose caractre caractre to rsultat
o caractre est un des deux caractres composer et rsultat est le caractre rsultant de la
composition. Notez bien que les compositions se font sur les caractres, et pas sur les touches. Elles
sont donc actives quel que soit la mthode obtenue pour gnrer ces caractres (combinaison de
touches ou touches simples).
Note : Le noyau dnit la plupart des compositions ncessaires pour le jeu de caractres ISO
8859-1. Ne les cherchez donc pas en vain dans votre plan de clavier, vous ne les trouverez pas
forcment...
Dune manire gnrale, vous pourrez trouver de plus amples renseignements concernant les
plans de clavier dans la page de man keymaps.
Il est long et difcile de crer un plan de clavier de toutes pices. Heureusement, encore une fois,
cette description ntait que didactique. Vous naurez certainement mme pas modier votre plan de
clavier (sauf si vous voulez faire des expriences), car des plans de claviers prdnis sont four-
nis avec toutes les distributions. Ces plans de clavier sont en gnral stocks dans le rpertoire
/usr/lib/kbd/keymap. Pour les claviers de PC franais, je vous conseille tout particulirement
le plan de clavier fr-latin0.map.gz du sous-rpertoire i386/azerty. Ce plan de clavier permet
daccder toutes les touches utilises par le franais, plus la plupart des touches utilises en Europe.
Il utilise lencodage ISO 8859-15, an davoir accs aux rares caractres manquants dans lencodage
ISO 8859-1.
144
Chapitre 6. Administration du systme de base
Le chargement dun plan de clavier est trs simple. Il suft de taper la commande suivante sous le
compte root :
loadkeys keymap
o keymap est le nom du chier contenant le plan de clavier utiliser. Si lon ne spcie pas de
chier, loadkey attend que vous tapiez la spcication des touches directement. Vous pourrez valider
en gnrant le caractre EOF (abrviation de End Of File , ce qui signie Fin de chier ) laide
de la combinaison de touche CTRL + D, ou abandonner avec le classique CTRL + C.
En gnral, les distributions utilisent la commande loadkey dans les chiers dinitialisation du sys-
tme, pour charger le plan de clavier que vous avez choisi linstallation ds le dmarrage. Il est
recommand de ne modier le plan de clavier courant que par lintermdiaire du programme de
conguration du systme fourni avec votre distribution.
6.7.4.3. Modication des paramtres du clavier
Il nous faut encore voir deux petits utilitaires permettant de xer quelques paramtres du clavier
pour nir notre tour dhorizon de ce priphrique. Le premier de ces outils permet de manipuler
ltat des diodes lumineuses qui indiquent si le verrou numrique, le verrou des majuscules ou larrt
dlement sont actifs. Cet utilitaire se nomme logiquement setleds, et il permet non seulement de
xer ltat de ces diodes, mais galement ltat du clavier. Rappelons en effet que les diodes peuvent
tre dsynchronises par rapport ltat rel du clavier. Ce cas de gure peut se produire si lon passe
dun terminal X un terminal en mode console, tout simplement parce que les serveurs X ne savent
pas comment dterminer ltat du clavier sur une console an de le restaurer.
La syntaxe de setleds est la suivante :
setleds -D num | caps | scroll
o num, caps et scroll sont des options permettant de prciser respectivement ltat des verrous
numriques, majuscules et dlement. Ces options sont de la forme +num, -num pour le verrou num-
rique, et de forme similaire pour les autres verrous. Comme leur syntaxe lindique, elles permettent
denclencher ou de dsenclencher ltat des verrous correspondants du clavier.
Ltat des verrous du clavier est conserv par chaque terminal virtuel, indpendamment les uns des
autres. Cette commande devra donc tre rpte pour tous les terminaux virtuels utiliss. Loption -D
permet de rendre les changements permanents pour le terminal slectionn. Ainsi, si ce terminal est
rinitialis, la modication sera conserve. Cest en gnral leffet dsir. Sachez quil est galement
possible deffectuer une modication temporaire, et de ne modier que lafchage des diodes (sans
changer ltat des verrous).
Il est recommand de placer les quelques lignes suivantes dans les chiers dinitialisation de votre
systme an dactiver le verrou numrique pour tous les terminaux, si votre distribution ne vous
permet pas de le faire par lintermdiaire de son programme de conguration :
INITTTY=ls /dev/tty[1-9] /dev/tty1[0-2]
for tty in $INITTTY; do
setleds -D +num < $tty
done
Ces lignes appellent la commande setleds sur les terminaux virtuels 1 12.
145
Chapitre 6. Administration du systme de base
Le deuxime utilitaire est kbdrate. Sa fonction est de xer les paramtres de dlai dattente avant
rptition lorsquon maintient une touche enfonce, ainsi que la vitesse de rptition utilise une fois
que ce dlai dattente est dpass. Sa syntaxe est elle aussi trs simple :
kbdrate -s -r taux -d dlai
o taux est le taux de rptition, et dlai est le dlai dattente avant le dbut des rptitions de la
touche enfonce. Loption -s indique kbdrate de ne pas afcher de messages pendant lexcution
de la commande. Les dlais dattente spcis peuvent tre de 250, 500, 750 ou 1000 millisecondes.
Les taux de rptition utilisables vont de 2 30 caractres par seconde. Toutefois, les claviers ne
peuvent pas accepter toutes les valeurs intermdiaires pour le taux de rptition. Vous trouverez la
liste exhaustive des valeurs admissibles dans la page de manuel kbdrate.
6.7.5. Choix de la police de caractres
Par dfaut, la police de caractres utilise par Linux est la police enregistre dans la carte graphique.
Cette police convient pour lafchage des textes anglais, car elle utilise la page de codes 437. Il est
donc souhaitable, sinon recommand, de changer de police de caractres la fois pour bncier dun
encodage adapt la langue franaise, et pour bncier damliorations esthtiques ventuelles.
Linux est fourni avec un certain nombre de chiers de polices, qui sont normalement installes dans
le rpertoire /usr/lib/kbd/consolefonts. Comme vous pourrez le constater si vous y jetez un
coup dil, ce rpertoire contient un grand nombre de polices, utilisant divers encodages. Les polices
les plus utiles pour un ordinateur situ en France sont sans doute les polices iso01*, lat1-* et
lat0-*. Cette dernire police utilise lencodage ISO 8859-15, et contient donc tous les symboles
utiliss en Europe. Il est recommand, mais non ncessaire, dutiliser une des polices encodes en
ISO 8859-1 ou en ISO 8859-15, avec un plan de clavier appropri. Par exemple, le plan de clavier
fr-latin0.map.gz pourra tre utilis avec la police de caractres lat0-16.psfu.gz.
Les polices de caractres sont charges aisment avec lutilitaire setfont. La syntaxe de ce programme
est trs simple :
setfont police
o police est le chier de police charger. Si vous ne spciez aucun chier de police, la police par
dfaut sera charge.
Notez que les chiers de polices peuvent utiliser un encodage particulier spcique, qui ne corres-
pond aucune des tables de conversion prdnies du noyau. Pour ces polices, il est ncessaire de
spcier des tables de conversion qui leurs sont propres. Ces tables permettent de convertir les codes
des caractres reus par la console en codes Unicode spciaux. Tous ces codes appartiennent une
plage de codes Unicode rserve au systme, et que Linux utilise pour dnir les codes qui permet-
tront daccder directement aux caractres de la police. Lassociation entre les codes de caractres de
lapplication et leurs descriptions dans la police de caractres est donc ralise grce ces tables de
conversion.
Vous pouvez charger une table de conversion spcique laide de lutilitaire mapscrn. Cet utilitaire
prend en ligne de commande un chier contenant la table de conversion, et charge cette dernire dans
la quatrime table de conversion du noyau (cest--dire la table rserve lutilisateur) :
mapscrn fichier
(o fichier est le chier contenant la description de la table de conversion).
146
Chapitre 6. Administration du systme de base
Notez que lutilitaire mapscrn charge la table de conversion, mais ne sassure pas que le jeu de
caractres courant utilise cette table. Par consquent, vous aurez sans doute utiliser les codes
dchappement \033(K et \033)K pour faire pointer respectivement les jeux de caractres G0 et
G1 sur la quatrime table. Ces codes dchappement peuvent tre saisis laide de la commande cat :
cat
Il vous faudra alors taper sur la touche Echap, puis saisir (K ou )K , et enn signaler la
n de chier avec un CTRL + D. Faites bien attention ce que vous fates : en cas derreur, le jeu de
caractres utilis peut rendre lcran totalement illisible. Si cela devait se produire, vous devrez taper
laveugle la commande reset. Cette table sassure que le jeu de caractres actif est le jeu de caractres
G0, et que celui-ci utilise la premire table de conversion. Vous pourrez galement recharger la police
par dfaut laide de setfont.
Heureusement, la plupart des polices de caractres contiennent galement la table de conversion
utiliser, et setfont effectue tout le travaille en une seule passe. Il charge la police de caractres dans la
carte graphique, puis sa table de conversion dans le noyau, et sassure enn que le jeux de caractres
G0 soit actif et utilise cette table. Ainsi, lutilisation de mapscrn est devenue facultative.
La dernire tape dans la conguration de la police de caractres est le chargement de la table de
conversion Unicode vers les indices des caractres dans la police. Cette table est essentielle, puisque
cest elle qui indique lemplacement des caractres de la police utiliser pour chaque code Unicode.
Ces tables dpendent donc de lencodage utilis par la police de caractres.
Le chargement des tables de conversion est ralise par le programme loadunimap. La syntaxe de ce
dernier est la mme que celle de mapscrn :
loadunimap fichier
o fichier est un chier de conversion appropri. Vous trouverez de tels chiers dans le rpertoire
/usr/lib/kbd/consoletrans. Les chiers proposs permettent dutiliser les polices de caractres
encodes selon les encodages les plus courants.
Bien entendu, certaines polices disposent de leur propre table dencodage. Encore une fois,
lutilisation de loadunimap est rendue facultative par setfont, qui se charge deffectuer tout le
travail. Cest notamment le cas pour les polices fr-latin0.psfu.gz et fr-latin1.psfu.gz,
dont le u en n dextension indique la prsence de la table de conversion Unicode.
6.7.6. Conguration des paramtres du terminal
La conguration du gestionnaire de la console ne concerne proprement parler que les plans de
clavier et les polices de caractres. Pour les applications, tout se passe comme si elles accdaient un
terminal comme les autres, donc par lintermdiaire dune ligne de communication. En gnral, les
lignes de communication utilises pour les terminaux sont des lignes srie, cest--dire des lignes sur
lesquelles les donnes sont envoyes sous la forme de petits paquets de 5 8 bits, et contrles par
dautres bits ventuellement facultatifs (bit de stop et bit de parit). Il va de soi que tous les terminaux
ne sont pas identiques, et quun certain nombre de paramtres doivent tre dnis tant au niveau des
terminaux quau niveau des lignes de communication utilises.
Ces paramtres peuvent tre xs avec la commande stty. Leur nombre interdit ici une description
exhaustive, dautant plus que pour un terminal local, ils sont tous initialiss des valeurs par dfaut
147
Chapitre 6. Administration du systme de base
correctes, et vous naurez pas les modier. Vous pouvez toutefois consulter la page de manuel de
stty pour de plus amples renseignements ce sujet.
Si vous tes curieux, vous pourrez obtenir tout moment la liste des paramtres de la ligne de com-
munication dun terminal avec loption -a de stty :
stty -a
Comme vous pourrez le constater, le nombre des options utilises est assez impressionnant. Sont
dnis, entre autres, les paramtres de vitesse de communication de la ligne (option speed), le format
des donnes transfres sur la ligne (option parodd pour la parit impaire, option cs8 pour des
paquets 8 bits, etc.), la gomtrie du terminal (options rows et columns), les caractres de contrle
affects un certain nombre dactions (comme, par exemple, le caractre ^Z , accessible par la
combinaison de touches CTRL + Z, qui permet de suspendre lexcution du programme utilisant la
ligne, et le caractre ^C , qui permet de le tuer) et des options de gestion des caractres transfrs
(par exemple, echo fait en sorte que tout caractre entrant est immdiatement r-mis sur la console,
ce qui permet de voir ce que lon tape).
Parmi ces paramtres, les plus intressants sont sans doute ceux dnissant les actions associes aux
diffrentes touches de contrle. Vous pourrez modier ces paramtres avec la syntaxe suivante :
stty action caractre
o action est lune des actions gres par stty, comme par exemple susp pour suspendre le processus
en cours, intr pour le tuer, etc. Remarquez que laction kill na rien voir avec la gestion des
signaux des processus. Elle permet simplement deffacer la ligne courante du terminal.
6.7.7. Description des terminaux
Le dernier maillon de la chane de gestion des caractres est bien entendu les applications. La plu-
part des applications sont capables de traiter les caractres simples comme les lettres de lalphabet,
les chiffres et la ponctuation. Cependant, il nen va pas de mme pour les codes dchappement des
terminaux. Comme nous lavons vu, certaines touches sont programmes pour renvoyer des codes
dchappement dans le plan de clavier. Mais le gestionnaire de la console est galement capable
dinterprter certains codes dchappements, an deffectuer des actions spciques. Par exemple,
les touches du curseur mettent des codes dchappement spciaux, et il est du ressort de chaque
programme de reconnatre ces codes et dagir en consquence. De mme, les programmes peuvent
envoyer des codes dchappement la console pour dplacer le curseur afch, effacer lcran, effec-
tuer un dlement, etc.
Le malheur, cest que les codes dchappement utilisables diffrent selon les terminaux utiliss. Les
terminaux les plus standards sont les terminaux VT100 et VT102 (la console Linux en fait partie).
Cependant, les programmes ne peuvent pas savoir, a priori, quels codes dchappement doivent tre
utiliss pour effectuer telle ou telle action.
Cest pour ces diverses raisons que les systmes Unix disposent dune base de donne de dnition
des terminaux. Cette base de donne contient tous les codes dchappement que chaque type de ter-
minal est capable de grer, dcrits dune manire uniforme. Ainsi, les programmes dsirant grer
correctement les terminaux nont qu consulter cette base de donnes pour interprter et rcuprer
les codes dchappement utiliss par le terminal. Historiquement, la dnition des terminaux tait
ralise dans le chier de conguration /etc/termcap. Ce chier est obsolte et a t remplac
par la base de donnes terminfo, que tous les programmes modernes doivent prsent utiliser. Ce-
148
Chapitre 6. Administration du systme de base
pendant, le chier de conguration /etc/termcap a t conserv par compatibilit avec les vieux
programmes qui lutilisent encore.
Le chier termcap comprend une ligne pour chaque type de terminal dcrit. Cette ligne est constitue
dun certain nombre de champs, spars par le caractre :. Le premier champ de chaque ligne
contient la description du terminal que cette ligne dcrit. Les champs suivants sont des dnitions des
variables contenant les squences dchappement du terminal.
Les informations descriptives du terminal sont les suivantes :
le nom abrg du terminal ;
le nom complet du terminal ;
les autres noms sous lesquels le terminal est galement connu ;
la description dtaille du terminal (toujours en dernier).
Ces informations sont spares les unes des autres par une barre verticale (|).
Viennent ensuite les dnitions des variables. Chaque variable est dnie selon la syntaxe suivante :
variable=squence
o variable est le nom de la variable, et squence est la squence dchappement associe cette
variable. Notez que certaines variables ne prennent pas de paramtres, et que leur prsence dans la
description du terminal signale simplement un comportement particulier de celui-ci. Notez galement
que pour les variables numriques, le caractre dgalit est remplac par un caractre dise (#).
Un certain nombre de variables peuvent tre dnies pour chaque terminal. Ce sont ces variables
qui sont utilises par les programmes pour retrouver les squences dchappement du terminal. Par
consquent, les noms de ces variables sont xs une fois pour toutes, et elles reprsentent toujours
la mme fonctionnalit. La liste des fonctionnalits est, encore une fois, trs grande, et les variables
utilisables sont listes exhaustivement dans la page de manuel termcap.
Note : Il est vident que les lignes du chier /etc/termcap peuvent devenir trs longues. Il est
donc possible de les taler sur plusieurs lignes physiques, en insrant le caractre de continuation
de ligne antislash (\). Aprs chaque retour la ligne, il faut utiliser une indentation laide du
caractre de tabulation.
Vous trouverez ci-dessous un exemple de dnition de terminal :
lx|linux|Console Linux:\
:do=^J:co#80:li#25:cl=\E[H\E[J:sf=\ED:sb=\EM:\
:le=^H:bs:am:cm=\E[%i%d;%dH:nd=\E[C:up=\E[A:\
:ce=\E[K:cd=\E[J:so=\E[7m:se=\E[27m:us=\E[36m:ue=\E[m:\
:md=\E[1m:mr=\E[7m:mb=\E[5m:me=\E[m:is=\E[1;25r\E[25;1H:\
:ll=\E[1;25r\E[25;1H:al=\E[L:dc=\E[P:dl=\E[M:\
:it#8:ku=\E[A:kd=\E[B:kr=\E[C:kl=\E[D:kb=^H:ti=\E[r\E[H:\
:ho=\E[H:kP=\E[5~:kN=\E[6~:kH=\E[4~:kh=\E[1~:kD=\E[3~:kI=\E[2~:\
:k1=\E[[A:k2=\E[[B:k3=\E[[C:k4=\E[[D:k5=\E[[E:k6=\E[17~:\
:k7=\E[18~:k8=\E[19~:k9=\E[20~:k0=\E[21~:K1=\E[1~:K2=\E[5~:\
:K4=\E[4~:K5=\E[6~:\
:pt:sr=\EM:vt#3:xn:km:bl=^G:vi=\E[?25l:ve=\E[?25h:vs=\E[?25h:\
:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:\
:r1=\Ec:r2=\Ec:r3=\Ec:
149
Chapitre 6. Administration du systme de base
Cette ligne permet de dnir le terminal associ la console Linux. Vous pourrez par exemple re-
connatre le nombre de colonnes et de lignes (variables co et li), ainsi que les codes dchappement
associs aux touches du curseur (variable ku, kd, kr et kl respectivement pour les touches haut, bas,
droite et gauche). Par exemple, la variable cl donne la squence dchappement utilisable pour effa-
cer lcran et faire revenir le curseur en haut gauche (squence dchappement Esc [ H Esc [
J ). Comme il la dj t dit plus haut, la liste complte des variables peut tre obtenue en consultant
la page de manuel termcap, et ce chier ne sera pas dcrit plus en dtail ici.
La base de donnes terminfo a t introduite pour combler certaines limitations du chier termcap.
Si le principe de fonctionnement est presque le mme, les informations fournies tiennent compte des
terminaux plus rcents et de nouvelles fonctionnalits. Cela signie en pratique que de nouvelles
variables ont t dnies pour dcrire les nouveaux terminaux. Inversement, certaines variables de
termcap ont disparu parce quelles devenaient obsoltes, et ont t remplaces par des variables qui-
valentes de terminfo.
La principale diffrence entre terminfo et termcap est que la description des terminaux nest plus
stocke dans un chier de conguration en mode texte. Toutes les donnes sont dsormais stockes
dans des chiers binaires, qui peuvent tre gnrs laide du programme tic. Ces chiers binaires
sont usuellement placs dans les sous-rpertoires du rpertoire /usr/share/terminfo/. En fait,
le nombre de chiers de description est tellement grand quils ont t regroups par ordre alphab-
tique. Ainsi, le rpertoire /usr/share/terminfo contient des sous-rpertoires dont les noms sont
les premires lettres des chiers de description, et chaque chier de description est situ dans le r-
pertoire correspondant. Par exemple, le chier de description des terminaux Linux se nomme tout
simplement linux. Comme la premire lettre de son nom est l, il est stock dans le rpertoire
/usr/share/terminfo/l/, avec les descriptions de tous les autres terminaux dont le nom com-
mence par l.
Note : En fait, les chiers de description de terminaux peuvent tre placs un autre emplace-
ment que lemplacement par dfaut. Les bibliothques de programme utilisant les informations de
terminfo cherchent en effet en premier dans le chemin rfrenc par la variable denvironnement
TERMINFO, puis dans le rpertoire .terminfo du rpertoire de lutilisateur. Ce nest que si ces
deux recherches chouent quelles utilisent les informations du rpertoire par dfaut.
Comme nous lavons dit, les chiers de description sont des chiers binaires, qui ont t compils
laide du compilateur tic. Cependant, vous pouvez parfaitement visualiser le contenu de ces chiers
ou comparer deux chiers laide de lutilitaire infocmp. Par exemple, vous pouvez visualiser sous
une forme lisible les informations du chier de description des terminaux Linux avec la commande
suivante :
infocmp linux
Vous obtiendrez certainement un rsultat semblable ceci :
#Reconstructed via infocmp from file: /usr/lib/terminfo/l/linux
linux|linux console,
am, bce, eo, mir, msgr, xenl, xon,
colors#8, it#8, pairs#64,
acsc=+\020\,\021-\030.^Y0\333\004a\261f\370g\361h\260i\316j\\
331k\277l\32m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\\
363z\362{\343|\330}\234~\376,
150
Chapitre 6. Administration du systme de base
bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?25h,
dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG,
ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G, kbs=\177, kcbt=\E[Z,
kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
rmacs=\E[10m, rmir=\E[4l, rmpch=\E[10m, rmso=\E[27m,
rmul=\E[24m, rs1=\Ec, sc=\E7, setab=\E[4%p1%dm,
setaf=\E[3%p1%dm,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;\
%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
sgr0=\E[m, smacs=\E[11m, smir=\E[4h, smpch=\E[11m,
smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR,
u7=\E[6n, u8=\E[?6c, u9=\E[c, vpa=\E[%i%p1%dd,
Comme vous pouvez le constater, le format de ces informations est similaire celui de celles qui
sont enregistres dans le chier /etc/termcap. Les principales diffrences sont que les diffrents
champs sont spars par des virgules (,) au lieu du caractre deux points (:), et quil est possible
de les rpartir sur plusieurs lignes physiques (il est donc inutile dutiliser le caractre antislash en n
de ligne physique pour indiquer la continuation de la ligne logique). De plus, le nom des variables
utilises dans les chiers terminfo nest pas le mme a priori. Cependant, le principe dutilisation de
ces variables reste le mme, chacune dentre elles permet de dnir une des fonctionnalits gres par
le terminal et de dnir la squence dchappement ncessaire lobtention de cette fonctionnalit si
ncessaire. Vous pourrez trouver la liste exhaustive des variables utilisables dans la page de manuel
terminfo. Le format des chiers de conguration de terminfo ne sera donc pas dcrit plus en dtail
dans ce document.
Quils utilisent des bibliothques bases sur termcap ou terminfo, les programmes doivent tous
connatre le nom du terminal courant pour rcuprer les informations qui permettent de lutiliser dans
ces bases de donnes. Cest prcisment ce quoi sert la variable denvironnement TERM. Cette
variable contient en permanence le nom du terminal courant, que les programmes peuvent utiliser
comme index dans les bases de donnes termcap ou terminfo. Ainsi, si vous dsirez travailler sur
un terminal Linux, vous pourrez xer le type de terminal correct avec la commande suivante :
export TERM=linux
La liste des noms de terminaux utilisables peut tre obtenue en lisant directement le chier termcap.
Cette liste peut tre obtenue plus facilement pour terminfo, laide de lutilitaire toe (abrviation
de langlais Table Of terminfo Entry ).
151
Chapitre 6. Administration du systme de base
Bien entendu, vous naurez dnir la valeur de TERM que si cette variable denvironnement nest
pas correctement dnie, ce qui est trs rare. En fait, cela ne peut se produire que lors dune connexion
distance sur un autre ordinateur, dont les terminaux ne sont pas de type Linux.
6.7.8. Paramtrage des applications
En thorie, la description du terminal courant fournie par les bases de donnes termcap ou terminfo
est sufsante pour faire fonctionner correctement la plupart des applications. En particulier, les pro-
grammes qui utilisent les bibliothques de fonctions de manipulation des terminaux sont capables
dutiliser ces informations. Cest le cas par exemple de tous les programmes qui utilisent les biblio-
thques curses ou ncurses , car celles-ci sappuient sur la base de donnes terminfo.
Cependant, certaines applications utilisent un mcanisme plus simple (mais moins souple) pour grer
les terminaux. Pour ces applications, une conguration spcique doit tre effectue, souvent pour
chaque terminal, en prcisant les codes dchappement utiliser dans leurs chiers de conguration.
On remarquera la prsence du shell bash , de lditeur vi et du programme de pagination
less dans cette catgorie de logiciels. Comme ce sont les logiciels les plus couramment utiliss, il
est indispensable dindiquer comment les congurer pour une utilisation correcte.
6.7.8.1. Conguration du clavier pour la bibliothque readline
Un certain nombre dapplications, dont le shell bash , utilisent la libraire GNU readline pour
obtenir les lignes de commandes saisies par lutilisateur. Tous ces programmes peuvent donc tre
congurs de la mme manire, grce au chier de conguration de la bibliothque readline.
Cette bibliothque recherche son chier de conguration en premier lemplacement indiqu par la
variable denvironnement INPUTRC. Si cette variable denvironnement nest pas dnie, le chier de
conguration ~/.inputrc est lu pour dterminer les squences dchappement utiliser. Il est donc
recommand de crer un chier de conguration gnral /etc/inputrc et de dnir la variable
denvironnement INPUTRC an de dnir des paramtres communs tous les utilisateurs. Vous
pouvez galement recopier ce chier dans les rpertoires personnels de tous les utilisateurs sous le
nom .inputrc.
Ainsi, si vous voulez grer correctement le clavier franais sous le shell bash, vous devrez vous assurer
que les lignes suivantes sont places dans votre chier inputrc :
# Active la gestion du huitime bit des caractres
# (par exemple pour les caractres accentus) :
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
# Dfinit les codes dchappement associs aux touches du curseur :
"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line
"\e[5~": history-search-backward
"\e[6~": history-search-forward
"\e[C": forward-char
"\e[D": backward-char
"\e[A": previous-history
"\e[B": next-history
152
Chapitre 6. Administration du systme de base
# Redfinit les codes dchappement pour lmulateur de terminal xterm :
$if term=xterm
"\e[1~": history-search-backward
"\e[4~": set-mark
"\e[H": beginning-of-line
"\e[F": end-of-line
$endif
Ce chier commence par autoriser le traitement des caractres dont le bit meta , cest--dire le
huitime bit, est positionn. Cest en particulier le cas de tous les caractres accentus dans les prin-
cipales pages de codes ; ces options sont donc ncessaires pour pouvoir utiliser ces caractres dans
le shell. La suite du chier dnit les actions associes chaque code dchappement du terminal.
Le caractre dchappement est reprsent ici par la chane de caractres \e . Comme les codes
dchappement sont diffrents pour la console et pour les mulateurs de terminaux de XWindow, il
est ncessaire de les rednir en fonction de la nature du terminal.
6.7.8.2. Conguration du clavier pour vi
Lditeur en ligne de commande vi nest pas rput pour tre agrable utiliser. Cela provient essen-
tiellement de sa distinction entre les mode de commande, ddition et de visualisation. Mais cela nest
pas sufsant pour le rendre hassable : la torture psychologique impose par la mauvaise gestion du
curseur vient souvent bout des plus rsistants. Heureusement, Linux fournit un clone nettement plus
puissant et qui permet de rsoudre ces problmes : vim.
Lditeur vim peut bien entendu tre parfaitement compatible avec vi an ne pas drouter les habitus
de vi. Mais il dispose en plus de fonctionnalits avances qui en font un outil extrmement congu-
rable, et il est possible de le rendre nettement plus ergonomique que son anctre. Malheureusement,
il faut reconnatre que la plupart des distributions fournissent un vim brut de fonderie , ce qui fait
que seuls ceux qui se lancent dans la lecture de son aide peuvent parvenir lutiliser correctement.
Les options qui sont proposes ici sont donc donnes simplement titre indicatif, mais permettront
peut-tre de rendre vim un peu plus ergonomique.
Les options de conguration de vim sont stockes dans deux chiers. Le premier chier est le -
chier de conguration commun tous les utilisateurs, vimrc. Ce chier peut tre plac soit dans le
rpertoire /etc/, soit dans le rpertoire /usr/share/vim/, selon votre distribution. Le deuxime
chier est le chier de prfrences personnelles de chaque utilisateur, et se nomme .vimrc. Il est
normalement plac dans le rpertoire personnel de lutilisateur.
Plusieurs types doptions peuvent tre indiques dans ces chiers de conguration. Les premires
associent les actions effectuer aux codes dchappement gnrs par les touches du curseur. Les
autres spcient simplement le comportement de lditeur et le paramtrage de ses principales fonc-
tionnalits. Vous trouverez ci-dessous les principales options que vous pourrez ajouter votre chier
de conguration vimrc. Ces options rendront sans doute lutilisation de vim beaucoup plus agrable.
" Exemple doptions de configuration pour vim.
" Notez que les commentaires sont introduits ici
" par des guillemets anglais (") et non
" par des dises (#), contrairement aux fichiers de configuration
" de la plupart des autres applications.
" viter tout pris la compatibilit avec vi, qui est insupportable :
set nocompatible
153
Chapitre 6. Administration du systme de base
" Dfinir les touches du clavier :
" Gestion du curseur en mode de visualisation :
map ^[OA k
map ^[[A k
map ^[OB j
map ^[[B j
map ^[OD h
map ^[[D h
map ^? h
map ^H h
map ^[OC l
map ^[[C l
map ^[[2~ i
map ^[[3~ x
map ^[[1~ 0
map ^[OH 0
map ^[[H 0
map ^[[4~ $
map ^[OF $
map ^[[F $
map ^[[5~ ^B
map ^[[6~ ^F
map ^[[E ""
map ^[[G ""
map ^[OE ""
" Gestion du pav numrique en mode de visualisation :
map ^[Oo :
map ^[Oj *
map ^[Om -
map ^[Ok +
map ^[Ol +
map ^[OM ^M
map ^[Ow 7
map ^[Ox 8
map ^[Oy 9
map ^[Ot 4
map ^[Ou 5
map ^[Ov 6
map ^[Oq 1
map ^[Or 2
map ^[Os 3
map ^[Op 0
map ^[On .
" Gestion du pav numrique en mode insertion :
map! ^[Oo :
map! ^[Oj *
map! ^[Om -
map! ^[Ok +
map! ^[Ol +
map! ^[OM ^M
map! ^[Ow 7
map! ^[Ox 8
154
Chapitre 6. Administration du systme de base
map! ^[Oy 9
map! ^[Ot 4
map! ^[Ou 5
map! ^[Ov 6
map! ^[Oq 1
map! ^[Or 2
map! ^[Os 3
map! ^[Op 0
map! ^[On .
" Gestion du curseur dans les modes dinsertion et de commande :
map! ^[[H <Home>
map! ^[OH <Home>
map! ^[[F <End>
map! ^[OF <End>
map! ^[OA <Up>
map! ^[OB <Down>
map! ^[OC <Right>
map! ^[OD <Left>
map! ^[[3~ <Delete>
map! ^[OE <Space>
" Dfinir les autres options globales :
" Paramtrage des touches Backspace et Delete :
set t_kb=^?
set t_kD=ESC[3~
" Faire en sorte que le "backspace" efface mme les sauts de lignes :
set bs=2
" Utiliser lindentation automatique dans les fichiers C et C++
" (pour les programmeurs) :
set cindent
" Utiliser la coloration syntaxique pour les principaux langages
" de programmation :
set background=dark
if &t_Co > 1
syntax on
endif
" Signaler les correspondances de parenthses, accolades et crochets :
set showmatch
" Rappeler le mode de fonctionnement courant :
set showmode
Vous constaterez que certains caractres de contrle sont utiliss dans ce chier de conguration,
dont le caractre de contrle ^[ , qui reprsente le caractre dchappement. Ces caractres sont
reprsents avec la notation classique ^C , o C est la lettre utiliser avec la touche CTRL
pour obtenir ce caractre. Ces notations ne font que reprsenter les caractres de contrle, et doivent
tre remplaces par les caractres quelles reprsentent dans le chier de conguration. Pour saisir
ces caractres spciaux, vous devrez passer en mode insertion dans vi, puis utiliser la combinaison
155
Chapitre 6. Administration du systme de base
de touches CTRL+V. Ce raccourci permet dindiquer vi quil doit insrer les codes dchappement
directement issus du clavier, sans les interprter. Vous pourrez alors taper la squence de touches
gnrant le caractre de contrle ou la squence dchappement dsire. Par exemple, vous pourrez
obtenir le caractre ^H en tapant la combinaison de touches CTRL+H, et le caractre ^? en ap-
puyant sur la touche Backspace (retour arrire). Les caractres dchappement peuvent tre gnrs
par la touche Echap ou directement par les touches du curseur.
Note : En fait, vous pouvez galement utiliser les chanes de caractres \e et <Esc>
pour reprsenter le caractre dchappement. Mais certaines options ne fonctionnent pas avec
ces notations, et je vous les dconseille.
Vous pouvez bien entendu ajouter dautres options dans ce chier de conguration. En pratique, toutes
les options utilisables dans le mode de commande de vim peuvent tre xes dnitivement dans ce
chier. Vous obtiendrez de laide sur ces options grce la commande :help de vim.
6.7.8.3. Conguration du clavier pour less
Le programme de pagination less est naturellement bien plus agrable utiliser que son anctre more,
puisquil permet de revenir sur les pages dj consultes. Cependant, il peut le devenir encore plus si
lon sarrange pour quil reconnaisse les touches du curseur.
Le programme less lit ses informations de conguration dans un chier binaire dont lemplacement
est spci par la variable denvironnement LESSKEY. Si cette variable denvironnement nest pas
dnie, less utilise le chier de conguration .less du rpertoire personnel de lutilisateur. Ce chier
binaire contient les associations entre les squences dchappement du terminal et les actions effec-
tues par less. Il est gnr par le compilateur lesskey, partir dun chier de conguration textuel
classique.
Ce chier de conguration comprend plusieurs sections, qui permettent de dnir les touches utili-
ses en mode de commande, les touches utilises en mode ddition de lignes (par exemple dans une
commande de recherche), et enn les variables denvironnement utilises par less. Vous trouverez
ci-dessous un exemple de chier de conguration pour less. Vous trouverez de plus amples rensei-
gnements sur les actions qui peuvent tre associes aux squences dchappement et aux caractres
de contrle dans la page de manuel lesskey.
# Exemple de fichier de configuration pour less
# Premire section :
#command
\e[B forw-line
\e[A back-line
\e[6~ forw-scroll
\e[5~ back-scroll
\177 back-screen
^H back-screen
\e[3~ back-screen
\e[2~ visual
\e[1~ goto-line
\eOH goto-line
\e[4~ goto-end
\eOF goto-end
\eOM forw-line
156
Chapitre 6. Administration du systme de base
# Deuxime section :
#line-edit
\177 backspace
^H backspace
\e[3~ delete
\e[1~ home
\e[H~ home
\eOH home
\e[4~ end
\e[F~ end
\eOF end
\e[5~ up
\e[6~ down
\e[2~ insert
\e[E insert
\e[G insert
\eOE insert
\eOo insert :
\eOj insert *
\eOm insert -
\eOk insert +
\eOl insert +
\eOM insert
\eOw insert 7
\eOx insert 8
\eOy insert 9
\eOt insert 4
\eOu insert 5
\eOv insert 6
\eOq insert 1
\eOr insert 2
\eOs insert 3
\eOp insert 0
\eOn insert .
# Troisime section :
#env
LESSCHARSET=latin1
Conformment un usage courant, les commentaires sont introduits par le caractre dise (#) dans
ce chier de conguration. Cependant, certains commentaires sont utiliss pour identier le dbut des
trois sections du chier. Il sagit des commentaires #command , #line-edit et #env . Il
ne faut donc surtout pas supprimer ces commentaires dans votre chier de conguration.
Encore une fois, le caractre dchappement est symbolis par la chane de caractre \e . De
mme, les caractres de contrle sont reprsents par la notation classique ^C , o C est la touche
utilise en combinaison avec CTRL pour gnrer ce caractre de contrle. Notez que, contrairement au
chier de conguration /etc/vimrc, ces notations peuvent tre utilises directement dans le chier
de conguration de less.
157
Chapitre 6. Administration du systme de base
Ce chier de conguration pourra tre compil avec le programme lesskey an de gnrer le chier
binaire utilis par less. Pour cela, il faudra simplement utiliser la syntaxe suivante :
lesskey fichier
o fichier est le nom du chier de conguration compiler. Le chier binaire gnr est par dfaut
celui rfrenc par la variable denvironnement LESSKEY. Si cette variable nest pas dnie, un
chier .less sera cr dans le rpertoire personnel de lutilisateur.
6.7.9. Conguration de la souris
Linstallation de la souris est une opration trs simple raliser. La seule chose importante est de
bien connatre les diffrents types de souris et de ne pas les confondre. Autrefois, la plupart des souris
taient des souris connectes sur le port srie (souris srielles). Aujourdhui, ces souris se font de
plus en plus rares, et le port de prdilection est le port PS/2. Ce port a t introduit par IBM dans ses
ordinateurs PS/2 et est quelque peu plus pratique que le port srie, car il dnit une interface standard
pour toutes les souris. De plus, il permet de dgager un des ports srie, ce qui simplie la conguration
des modems. Le port PS/2 ressemble au port clavier du mme type, et en fait on peut se tromper et
brancher la souris la place du clavier et inversement. Il ne faut surtout pas confondre les souris PS/2
avec les souris Bus, qui ont t vendues autrefois et que lon ne trouve quasiment plus prsent. Ces
souris pouvaient se connecter sur des cartes spciales voire, parfois, sur la carte graphique.
Pour que linstallation de la souris se fasse correctement, il faut sassurer que les options concernant la
souris ait bien t dnies dans la conguration du noyau de Linux. Cela nest pas ncessaire pour les
souris srie. Vous pouvez consulter la Section 7.3 pour plus de dtails sur la conguration du noyau.
Lorsque cette tape est faite, il ne reste plus qu indiquer au programme de gestion de la souris quel
type de souris il a affaire. Ce programme, nomm gpm, permet dutiliser la souris en mode texte. La
conguration de la souris pour XWindow sera vue dans le Chapitre 10.
La conguration de gpm se fait normalement par lintermdiaire du programme de conguration de
votre distribution. Lorsquon nutilise pas XWindow, gpm est lanc automatiquement au dmarrage.
Il se peut que votre programme de conguration vous demande le type de souris utiliser. Dans ce
cas, il faut choisir le bon type, faute de quoi gpm ne fonctionnera pas correctement. Attention, si
vous dsirez utiliser une souris molette (souris disposant dune petite roue entre les deux boutons,
et permettant de faire dler le contenu des fentres), le type de souris utiliser est imps2 et non
simplement ps2 . Pour avoir la liste des types de souris grs par gpm, il suft de le lui demander
avec la ligne de commande suivante :
gpm -t help
Normalement, vous aurez utiliser gpm avec la ligne de commande suivante :
gpm -t type -m /dev/mouse
o type est le type de la souris que gpm doit utiliser et /dev/mouse est un lien vers le chier spcial
de priphrique grant votre souris.
158
Chapitre 6. Administration du systme de base
6.8. Conguration de limprimante
Le sous-systme dimpression de Linux est emprunt un autre systme Unix clbre, BSD. Les
commandes utilisateurs sont donc les mmes, et son fonctionnement repose sur les mmes principes.
En gnral, les imprimantes sont connectes au port parallle de lordinateur (sauf les imprimantes
professionnelles, qui disposent dune interface rseau). Il est donc ncessaire que la conguration du
port parallle soit correcte. Dans la suite, nous supposerons que limprimante est connecte sur le port
/dev/lp0 (premier port parallle, soit lquivalent de LPT1 sous DOS).
6.8.1. Filtres dimpression
Il est possible denvoyer directement un chier imprimer limprimante, en le recopiant directement
sur le chier spcial de priphrique de limprimante. Cette technique peut parfaitement convenir pour
un chier texte simple, mais elle pose quelques problmes. Premirement, elle ne fonctionne quavec
des chiers que limprimante peut comprendre, donc des chiers contenant des instructions qui lui
sont spciques. Mais le problme le plus important est sans doute le fait que cette technique nest
pas utilisable lorsque plusieurs programmes ou plusieurs utilisateurs dsirent envoyer un chier en
mme temps limprimante.
Le sous-systme dimpression utilise donc un mcanisme de les dattente pour les impressions
( spool en anglais). Tous les travaux dimpression soumis sont placs dans une le dattente, et
attendent leur tour pour tre envoys limprimante associe cette le. Une fois que limpression
est termine, les travaux sont supprims de la le. Ainsi, un seul programme accde limprimante :
le sous-systme dimpression. Notez quil est possible de dnir plusieurs les dattentes sur une
mme imprimante, selon la nature du travail effectuer. Par exemple, une le peut se charger des do-
cuments textes, et une autre des documents graphiques. Bien entendu, le sous-systme dimpression
contrle tous les accs limprimante et assure quun seul document est en cours dimpression
chaque instant.
Dautre part, le sous-systme dimpression donne la possibilit de spcier la nature des chiers
imprimer, an de les traduire dans un langage comprhensible par limprimante. Ce travail de conver-
sion est ralis par un ensemble de programmes que lon appelle les ltres. Un ltre nest en fait rien
dautre quun programme qui reoit un chier en entre et qui fournit la traduction de ce chier dans
un autre format en sortie. Les distributions Linux sont fournies avec un certain nombre de ltres qui
permettent de grer la plupart des formats de chiers utiliss.
Parmi ces formats de chiers, il en est un qui est plus important que les autres : PostScript. PostScript
est un langage de description de pages invent par Adobe, et que nombre dimprimantes laser com-
prennent. En fait, il sagit dun vritable langage de programmation, qui permet de programmer les
priphriques dont la vocation est dafcher ou dimprimer des documents. Techniquement parlant,
PostScript permet dobtenir une qualit dimpression irrprochable, car cest limprimante elle-mme
qui dessine la page imprimer. Le problme est que toutes les imprimantes ne comprennent pas
forcment le langage PostScript, notamment les imprimantes jet dencre. Pour ces imprimantes,
il faut donc un ltre particulier, capable de convertir le PostScript dans le langage graphique de
limprimante. Linux utilise pour cela un interprteur PostScript . Un interprteur PostScript est
un programme capable de comprendre les chiers PostScript et de les convertir dans le format com-
pris par limprimante. Linterprteur couramment utilis sous Linux est GhostScript, parce que cest
un logiciel libre (cependant, la version courante est toujours commerciale). Il est galement capable
dafcher les chiers PostScript sous XWindow, et de grer la plupart des imprimantes du march.
La plupart des autres ltres ont donc pour vocation de convertir un chier en PostScript. Lavantage de
cette technique est que toutes les imprimantes apparaissent comme tant des imprimantes PostScript
pour les programmes dsirant imprimer. Ainsi, leur programmation est beaucoup plus simple, puis-
159
Chapitre 6. Administration du systme de base
quils nont quun seul format grer. Bon nombre dapplications gnrent directement des chiers
PostScript, qui sont donc envoys directement GhostScript pour limpression dnitive.
Figure 6-3. Filtres dimpression et imprimantes PostScript
Comme on le voit, pour Linux, le langage dimpression universel est le langage PostScript. Bien
entendu, cela est idal si lon dispose effectivement dune imprimante PostScript, mais mme dans le
cas contraire, les impressions se font parfaitement grce GhostScript.
6.8.2. Commandes dimpression
La commande dimpression sous Linux est la commande lpr (abrviation de langlais Laser
PRinter ). Cette commande est trs simple utiliser, comme le montre la syntaxe suivante :
lpr fichier
o fichier est le nom du chier imprimer. Cette commande se contente de placer le chier
imprimer dans un rpertoire affect la le dattente des travaux dimpression. Le travail dimpression
est ensuite effectu par le dmon lpd, qui fait passer chaque chier imprimer travers la srie de
ltres pour le convertir dans le langage de limprimante, puis qui alimente limprimante.
La liste des travaux dimpression en attente peut tre consulte avec la commande lpq. Chaque travail
en attente porte un numro, grce auquel on peut le manipuler. Entre autres oprations, il est possible
de labandonner laide de la commande lprm.
Enn, pour consulter et contrler ltat des les dimpression, on peut utiliser la commande lpc. Cette
commande peut prendre des options en ligne de commande an de prciser lopration effectuer.
Par exemple, loption status permet dobtenir ltat de chacune des les dimpression. Les autres
options permettent darrter le travail en cours, de le suspendre, de dsactiver limprimante pour les
travaux suivants, et inversement de relancer les travaux dimpression sur cette le.
160
Chapitre 6. Administration du systme de base
6.8.3. Conguration des les dimpression
Les distributions modernes fournissent toutes un outil permettant deffectuer la conguration du sous-
systme dimpression. Il est videmment recommand dutiliser ces outils, car le rsultat est assur et
la vie en est dautant plus facile. De plus, les distributions peuvent fournir des ltres complmentaires
que seuls ces outils connaissent et sont capables dinstaller. Toutefois, il est bon de savoir quels sont
les mcanismes mis en uvre lors de limpression dun document. Nous allons donc nous y intresser
brivement dans ce paragraphe.
Le dmon lpd utilise le chier de conguration /etc/printcap pour dterminer lensemble des
les dimpression existantes et quel ltres doivent tre utiliss. Chaque le est dcrite par une ligne
et une seule de ce chier. Ces lignes sont constitues de divers champs, spars par des deux points
(:). Comme ces lignes peuvent tre relativement longues, elles peuvent tre rparties sur plusieurs
lignes physiques en plaant le caractre dchappement \ la n de chaque ligne, sauf la dernire.
Le premier champ de la description dune le dattente est une liste des noms sous lesquels cette
le sera connue. Les diffrents noms sont crits les uns la suite des autres, spars par une barre
verticale (caractre |).
Les champs suivants dcrivent limprimante utiliser, ainsi que les options gnrales de la le
dattente. Ces champs utilisent tous la mme syntaxe :
option = valeur
Il existe un grand nombre doptions, nombre dentre elles sont facultatives. Cependant, il est impratif
que le dmon lpd puisse trouver limprimante utiliser. Par consquent, il faut lui fournir au moins
lune des deux srie doptions suivantes :
loption lp permet de spcier le chier spcial de priphrique auquel limprimante est
connecte ;
les options rm et rp permettent de spcier respectivement le nom dun serveur dimpression dis-
tant ( remote en anglais) et de limprimante utiliser sur ce serveur ( remote printer ).
Le dmon lpd doit galement connatre le rpertoire dans lequel les travaux en attente seront stocks
(rpertoire dit de spool ). Ce rpertoire peut tre dni avec loption sd.
Dautres options peuvent tre utiles, comme sh (cette option ne prend pas de valeur), qui permet de
supprimer la page de garde au dbut de chaque impression, et mx, qui permet de spcier la taille maxi-
male des travaux dimpression soumis. Cette dernire option permet de xer des quotas dimpression
selon la taille des documents, an de donner la possibilit aux autres documents dtre imprims.
Cette option utilise une syntaxe particulire :
mx#taille
o taille est la taille maximale autorise, exprime en kilo-octets. Le fait de spcier une taille
nulle permet de supprimer ce contrle.
Lexemple ci-dessous correspond la dnition dune le dattente locale lmentaire :
ascii|lp:lp=/dev/lp:sd=/var/spool/lpd/ascii:mx#0:sh
Comme vous pouvez le constater, il ny a aucune spcication des ltres dimpression utiliser dans
cet exemple. Les travaux sont donc directement envoys limpression, sans traduction pralable.
Il est donc ncessaire quils soient dj au format de limprimante. Si lon veut utiliser des ltres
161
Chapitre 6. Administration du systme de base
dimpression, il faut utiliser lune des options if, cf, df, gf, nf, rf, tf ou vf. Chacune de ces
options permet de spcier la ligne de commande dun ltre dimpression spcique. Le choix du
ltre utilis pour un travail dimpression est effectu lors de lappel la commande lpr, laide dune
option en ligne de commande. Le ltre if est le ltre par dfaut, il ny a donc besoin daucune option
pour lutiliser. Les autres ltres peuvent tre slectionns respectivement avec les options -c, -d, -g,
-n, -f, -t et -v.
Comme on le voit, le sous-systme dimpression ne reconnat pas automatiquement le format de
chier utilis. Dautre part, le nombre de ltres utilisables est limit 8, ce qui peut ne pas sufre tant
donn la prolifration des formats de chiers. Pour rsoudre ce problme, les distributions utilisent
souvent un ltre gnrique (utilis en tant que ltre par dfaut) qui, lui, est capable de reconnatre le
format du chier imprimer et de le diriger vers un autre ltre ou une srie de ltres. Comme on la vu
ci-dessus, lultime ltre utilis est en gnral linterprteur GhostScript. Ainsi, il ny a plus de limite
sur le nombre de ltres utilisables, et les ltres sont slectionns automatiquement en fonction de la
nature du document imprimer. Malheureusement, ces ltres volus ne sont pas standards, et chaque
distribution est susceptible de fournir sa propre version. Cest pour cette raison quil est recommand
dutiliser les programmes de conguration fournis par ces distributions pour installer limprimante.
6.9. Conguration du lancement automatique des
tches
Il est possible de dclencher lexcution de certaines oprations intervalles rguliers sous Linux.
Ces oprations sont dnies pour le systme et pour chaque utilisateur. Elles sont enregistres
dans des chiers de conguration indiquant le moment o elles doivent tre dclenches, et
quelle action elles doivent raliser. Les oprations dnies pour le systme sont stockes dans
le chier de conguration /etc/crontab. Des commandes additionnelles peuvent tre
dnies dans les rpertoires /etc/cron.d/, /etc/cron.daily/, /etc/cron.weekly/ et
/etc/cron.monthly/. Par ailleurs, les chiers de conguration des utilisateurs sont stocks dans
le rpertoire /var/cron/tab/, sous le nom de chaque utilisateur. Il est bien entendu possible
dditer ces chiers en tant que root, mais ce nest pas recommand. En effet, la commande crontab
permet dinstaller, de supprimer et de consulter les chiers crontab de chaque utilisateur, et ce de
manire sre.
La commande crontab peut tre utilise pour afcher le contenu du chier de conguration de
lutilisateur qui lappelle, laide de loption -l :
crontab -l
Elle permet galement de supprimer ce chier, laide de loption -r :
crontab -r
Enn, loption -e permet dditer le chier crontab, laide de lditeur spci dans la variable
denvironnement VISUAL ou EDITOR. Par dfaut, lditeur vi sera utilis.
En tant quadministrateur du systme, il est possible de modier les paramtres pour nimporte quel
utilisateur. Pour cela, il faut prciser le login de lutilisateur avec loption -u. Il est recommand
162
Chapitre 6. Administration du systme de base
dutiliser galement loption -u si lon a effectu un su, car la commande crontab peut ne pas pouvoir
dterminer lutilisateur qui la appel dans ce cas.
Le format des chiers crontab est sufsamment riche pour permettre de spcier avec nesse les
conditions dexcution des oprations programmes. En gnral, le dbut du chier contient la d-
nition de variables denvironnement utilises par crontab. La suite du chier est rserve aux
commandes programmes. Chaque programmation est ralise sur une ligne du chier crontab. Les
lignes contiennent 5 champs spciant la date et lheure laquelle la commande doit tre excute,
un nom dutilisateur ventuel et la commande elle-mme. Le nom dutilisateur ne doit tre spci
que dans le chier /etc/crontab, qui dnit les commandes du systme. Il spcie alors au nom de
quel utilisateur la commande doit tre excute. Pour les chiers crontab propres chaque utilisateur,
il nest bien entendu pas ncessaire dindiquer ce nom.
Les 5 champs de la partie dcrivant la date dexcution de la commande fournissent respectivement
les informations suivantes :
les minutes (comprises entre 0 et 59) ;
les heures (comprises entre 0 et 23) ;
le jour dans le mois (compris entre 0 et 31) ;
le mois (compris entre 0 et 12, ou indiqu par les trois premires lettres du nomdu mois en anglais) ;
le jour dans la semaine (compris entre 0 et 7, ou indiqu par les trois premires lettres du nom du
jour en anglais).
Les numros de mois 0 et 12 correspondent Janvier, et les numros de jours 0 et 7 correspondent au
Dimanche.
La commande sera excute chaque fois que le jour, le mois, lheure et les minutes du systme
correspondront avec ces 5 champs. Il suft que lune des spcications du jour corresponde pour que
la commande soit excute (cest--dire quelle est excute une fois pour le jour du mois et une fois
pour le jour de la semaine si ces deux champs sont spcis).
Il est possible dutiliser un intervalle de valeurs pour chacun de ces champs, en indiquant la premire
et la deuxime valeur, spares dun tiret. Il est galement possible de faire une liste de valeurs et
dintervalles, en sparant chaque donne par une virgule. Si lon veut spcier toutes les valeurs
possibles pour un champ, on peut utiliser le caractre *. Enn, il est possible dindiquer que la
commande doit tre excute toutes les n valeurs pour chaque champ. Pour cela, il suft de faire
suivre le champ dune barre oblique de division (/) et du nombre n. Ainsi, si lon trouve lexpression
*/3 pour les heures, la commande sera excute toutes les trois heures.
La spcication de la commande doit tre faite sur une seule ligne. Le caractre de pourcentage (%)
a une signication spciale, sauf sil est prcd dun antislash (\). Les donnes qui suivent le pre-
mier pourcentage sont passes telles quelles dans lentre standard de la commande. Les caractres
pourcentages suivants sont interprts comme des saut de lignes (donc une validation). Ainsi, la com-
mande suivante :
rm -i file.txt%y%
permet de supprimer le chier file.txt et de rpondre y la commande rm. Le caractre y est
pass ici dans le ux dentre standard de rm.
Comme vous pouvez le voir, le chier /etc/crontab du systme permet de programmer des op-
rations priodiques, comme les sauvegardes, la destruction des chiers temporaires, ou toute autre
tche de maintenance. Ne vous tonnez donc pas si votre ordinateur semble sactiver tout seul rgu-
lirement, heure xe (par exemple, sur le coup de 11 heures ou minuit). Cest le fonctionnement
163
Chapitre 6. Administration du systme de base
normal de votre systme, qui soccupe de toutes les tches mnagres quil sest rserv pour une
heure o normalement tout le monde dort...
Les utilisateurs peuvent galement dnir leur propre crontab pour effectuer les oprations prio-
diques quil dsirent. Par exemple, ils peuvent programmer une commande qui leur rappellera un
rendez-vous.
164
Chapitre 7. Notions de compilation et
conguration du noyau
Ce chapitre prsente les notions de base de compilation et de chiers sources de programmes. Il
est certain que le lecteur de ce document na pas forcment lintention de programmer sous Linux,
cependant, il est ncessaire de connatre les notions qui vont tre dcrites ici. En effet, il nest pas rare,
voire il est mme courant, davoir recompiler une application lorsquon travaille avec Linux. Cela
nest pas tonnant, quand on sait que toute bonne installation passe par la recompilation du noyau de
Linux ! La raison de cet tat de fait provient sans nul doute du fait que la licence GNU impose de
fournir les chiers sources aux utilisateurs dune part, et que le langage C et Unix sont historiquement
fortement lis.
Nous allons commencer par donner la dnition des notions de base et les tapes intervenant dans
le processus de gnration des chiers binaires des programmes. Nous verrons ensuite comment ins-
taller (et compiler !) la suite de compilateurs GCC du projet GNU, et nous prsenterons les tapes
intervenant dans la compilation et linstallation dun nouveau noyau. Ces informations pourront tre
utiles pour la lecture du chapitre traitant de la conguration du matriel puisque, bien souvent, la prise
en charge dun priphrique ncessite la compilation de ses pilotes au niveau du noyau.
7.1. Notions de base
7.1.1. Dnition des termes
Le langage naturel est le langage que les tres humains utilisent pour communiquer, soit oralement,
soit par crit. Le langage naturel est trs riche : il utilise des constructions grammaticales et syn-
taxiques complexes, et il dispose dun vocabulaire trs tendu. Il permet donc dexprimer la plupart
des ides humaines, et cest bien sa fonction. En revanche, il nest pas rigoureux, dans le sens o il
laisse la porte ouverte un grand nombre dambiguts. Ce qui nest pas dit est souvent sous-entendu,
et cest donc pratiquement entre les mots que se trouve le sens du discours. Il nest ainsi pas rare
de pouvoir interprter une mme phrase diffremment, selon le contexte socioculturel, gographique
ou temporel dans lequel elle est dite. Les jeux de mots utilisent cette caractristique merveille. La
consquence est que lon ne peut pas utiliser facilement le langage naturel pour dcrire rigoureuse-
ment, voire mathmatiquement, quelque chose.
Un langage formel est, au contraire, un langage restreint, qui ne dispose que de trs peu de construc-
tions syntaxiques et dun vocabulaire trs limit. La caractristique principale des langages formels
est quils sont rigoureux, une expression ou une phrase donne peut tre valide selon les rgles de
syntaxe qui doivent tre respectes. Tout texte crit dans un langage formel est donc soit valide, soit
invalide.
En dnissant une association entre les constructions dun langage formel et un jeu de concepts limit,
il est possible de donner une smantique un langage formel. Cette smantique donne la possibilit de
qualier de vraie ou de fausse les assertions crites dans le langage formel (on notera quune
expression peut tre valide du point de vue de la syntaxe mais smantiquement fausse).
Un langage formel permet donc dexprimer avec prcision, sans aucune ambigut possible, une ide
base sur les concepts quil utilise. Les notations mathmatiques constituent un langage formel par
excellence.
165
Chapitre 7. Notions de compilation et conguration du noyau
Note : Par exemple, lexpression mathmatique x=1 est toujours valide, cest une simple
quation. En revanche, elle nest pas toujours vraie, cela dpend de la valeur de x. En particulier,
si x reprsente 3, on a 3 = 1 , ce qui est valide, mais faux. Notez bien la diffrence.
Un langage de programmation est un langage formel qui permet de dnir les tches quun ordinateur
doit effectuer, et de dcrire les objets informatiques sur lesquels il doit travailler. Un langage de
programmation est donc un code, et tout programme doit tre crit dans un tel langage. Pratiquement,
les langages de programmation sont des langages trs simples, disposant de constructions du type si
... alors ... ou pour chaque ... fait ... . Les programmes tant crits avec de tels
langages, il est clair quun programme ne fait que ce qui a t crit : ni plus, ni moins. Il faut donc
tout dire lordinateur quand on crit un programme, ce qui en gnral est relativement fatigant et
compliqu. Cest le prix payer pour la rigueur de linformatique : lordinateur ne se trompe jamais,
parce quil ne fait quobir aux ordres donns dans un langage formel (donc prcis). Celui qui se
trompe, cest en gnral le programmeur, et assez couramment lutilisateur.
Note : Notez quun programme est un texte valide sil vrie la grammaire du langage formel dans
lequel il est crit. Cela ne lempchera pas de faire nimporte quoi si on lexcute. Un programme
vrai est donc un programme syntaxiquement correctement crit et qui en plus fait ce que lon
dsire quil fasse. Il ny en a pas beaucoup... surtout que dans bien des cas, on ne sest jamais
pos clairement la question de savoir ce que doivent faire les programmes que lon crit !
Le C est un langage de programmation relativement simple, qui se trouve sur tous les types
dordinateurs et de systmes dexploitation. Les programmes sont plus difcile crire en C que
dans dautres langages de programmation, mais ils sont plus performants. Le C est trs utilis pour
crire les systmes dexploitation : le noyau Linux lui-mme est crit en C. Le C++ est un langage
plus volu, qui est driv du C. Il est beaucoup plus riche, et il permet dcrire des programmes plus
compliqus et de les faire voluer plus facilement. Bien que plus lents que ceux crits en C, les
programmes crits en C++ sont toujours trs performants par rapport ceux crits dans dautres
langages.
Les programmes sont en gnral crits dans un certain nombre de chiers. Ces chiers sont appels
les chiers sources, du fait quils sont lorigine du programme. Le texte de ces chiers est appel le
code source, ou plus simplement le code.
Il va de soi que le code source est crit dans un langage de programmation, qui nest pas comprhen-
sible tel quel par le matriel de lordinateur. Pour excuter un programme partir de son code source,
il ny a que deux solutions :
disposer dun autre programme, nomm interprteur, capable de lire le code source et deffectuer
les oprations dcrites dans le code source ;
disposer dun autre programme, nomm compilateur, capable de traduire le code source en langage
binaire, qui sera alors directement excutable par lordinateur.
Les programmes interprts sont fatalement relativement lents, puisque linterprteur doit analyser en
permanence les chiers sources pour le traduire en opration excuter la vole.
166
Chapitre 7. Notions de compilation et conguration du noyau
Figure 7-1. Interprtation dun programme
En revanche, les programmes compils sont beaucoup plus rapides lexcution, puisque la phase
danalyse du code source a t ralise au pralable et se fait en dehors de la phase dexcution. Ces
programmes peuvent donc sexcuter nativement, sans tre ralenti par linterprteur.
Figure 7-2. Compilation et excution dun programme
Note : Si vous avez bien suivi, on se trouve face au problme de luf et de la poule. En effet, les
interprteurs et les compilateurs sont eux-mmes des programmes crits dans un langage infor-
matique. Quel est donc le premier compilateur ou interprteur ? Ce problme a effectivement d
tre rsolu au dbut de linformatique, de la manire la plus simple : les premiers programmeurs
entraient directement le langage machine en binaire dans les ordinateurs (via les cblages ou les
cartes perfores...). Quand on sait le travail que cela reprsentait, et le nombre derreurs que cela
a pu gnrer, on comprend facilement pourquoi les compilateurs et les interprteurs font partie
des tous premiers programmes qui ont t dvelopps...
Dans les systmes Unix, les deux types de programmes existent. Les programmes interprts consti-
tuent ce que lon appelle des scripts. Le systme utilise le shell pour les interprter. La plupart des
oprations dadministration du systme utilisent des scripts, car il est toujours plus facile dcrire et
de tester un script que dcrire un programme en C. Les programmes compils sont notamment le
noyau lui-mme, le shell, les commandes de base et les applications. Ce sont eux qui en n de compte
effectuent le travail, et ils sont souvent appels partir de scripts. Nous avons dj vu des exemples
de scripts lors de la conguration du systme. Pour linstant, nous allons nous intresser au langage
C et au processus de compilation.
167
Chapitre 7. Notions de compilation et conguration du noyau
La compilation est lopration qui consiste lire un chier source et le traduire dans le langage
binaire du processeur. Ce langage est absolument incomprhensible par les tres humains, cepen-
dant, il existe un langage de programmation qui permet de coder directement le binaire : il sagit de
lassembleur.
En gnral, le processus de compilation gnre un chier binaire pour chaque chier source. Ces -
chiers binaires sont nomms chiers objets, et porte de ce fait lextension .o (ou .obj dans les
systmes Microsoft). Comme un programme peut tre constitu de plusieurs chiers sources, il faut
regrouper les chiers objets pour gnrer le chier excutable du programme, chier que lon appelle
galement le chier image en raison du fait que cest le contenu de ce chier qui sera charg en m-
moire par le systme pour lexcuter et quil contient donc limage sur disque des instructions des
programmes en cours dexcution. Lopration de regroupement des chiers objets pour constituer
le chier image sappelle ldition de liens, et elle est ralise par un programme nomm le linker
(diteur de liens en franais). Ce programme regarde dans tous les chiers objets les rfrences par-
tielles aux autres chiers objets et, pour chaque lien ainsi trouv, il complte les informations
ncessaires pour en faire une rfrence complte. Par exemple, un chier source peut trs bien utili-
ser une fonctionnalit dun autre chier source. Comme cette fonctionnalit nest pas dnie dans le
chier source courant, une rfrence partielle est cre dans le chier objet lors de sa compilation,
mais il faudra tout de mme la terminer en indiquant exactement comment accder la fonctionnalit
externe. Cest le travail de lditeur de liens, lorsquil regroupe les deux chiers objets.
Certains chiers objets sont ncessaires pour tous les programmes. Ce sont notamment les chiers ob-
jets dnissant les fonctions de base, et les fonctions permettant daccder au systme dexploitation.
Ces chiers objets ont donc t regroups dans des bibliothques (galement couramment appeles
librairies ), que lon peut ainsi utiliser directement lors de la phase ddition de liens. Les chiers
objets ncessaires sont alors lus dans la bibliothque et ajouts au programme en cours ddition de
liens. Les bibliothques portent souvent lextension .a (ou .lib dans les systmes Microsoft).
Figure 7-3. Processus de gnration dun excutable
Malheureusement, la solution consistant stocker dans des bibliothques les fonctions les plus uti-
lises souffre de la duplication du code contenu dans ces bibliothques dans tous les programmes,
do une perte de place considrable. De plus, la mise jour dune bibliothque ncessite de refaire
ldition de liens de tous les programmes qui lutilisent, ce qui nest pas ralisable en pratique. Cest
pour cela que les bibliothques dynamiques ont t cres : une bibliothque dynamique nest pas
incluse dans les chiers des excutables qui lutilisent, mais reste dans un chier spar. Les biblio-
thques sont regroups dans un rpertoire bien dni du systme de chiers, ce qui permet de les
partager entre diffrents programmes. Ainsi, la mise jour dune bibliothque peut se faire sans avoir
toucher tous les programmes qui lutilisent. Le problme est cependant que ldition de liens reste in-
168
Chapitre 7. Notions de compilation et conguration du noyau
complte, parce que les rfrences aux objets des bibliothques dynamiques sont toujours externes. Il
existe donc un programme spcial, lditeur de liens dynamiques ( ld , pour Link Dynamically ),
qui rsout les dernires rfrences incompltes lors du chargement de chaque programme. Les biblio-
thques dynamiques portent lextension .so (pour Shared Object ), ou .dll dans les systmes
Microsoft (pour Dynamic Link Library ).
videmment, le chargement des programmes est un peu plus lent avec les bibliothques dynamiques,
puisquil faut raliser ldition de liens dynamiques lors de leur lancement. Cependant, ce processus
a t optimis, et les formats de chiers binaires utiliss contiennent toutes les informations prcal-
cules pour faciliter la tche de lditeur de liens dynamiques. Ainsi, la diffrence de performance est
devenue peine dcelable.
7.1.2. Processus de gnration
Classiquement, les chiers sources C et C++ se divisent en deux grande catgories :
les chiers den-tte, qui contiennent les dclarations des symboles du programme ;
les chiers C (ou C++), qui contiennent leurs dnitions.
Le fait de faire cette distinction entre la dclaration (qui consiste dire : telle chose existe ) et la
dnition (qui consiste dcrire la chose prcdemment dclare) permet de faire en sorte que lon
peut utiliser les chiers objets sans avoir les chiers sources. En effet, la dclaration permet de raliser
les rfrences partielles dans les programmes, tandis que les chiers objets contiennent bien entendu
la dnition binaire de ce qui a t dclar.
Pour compiler un programme, on na donc rellement besoin que de trois types de chiers :
les chiers de dclaration du systme et des bibliothques de base ;
les chiers des bibliothques de base eux-mmes ;
les chiers source (de dclaration et de dnition) du programme compiler.
En C et C++, les chiers sources de dclaration portent lextension .h (plus rarement .hpp
pour les chiers de dclaration C++), et les chiers de dnition portent lextension .c pour les
programmes crits en C et .C (ou .cpp , ou encore .c++ ) pour les programmes crits en
C++.
Il va de soi que la ralisation dun programme peut ncessiter la cration dun grand nombre de
chiers, tous plus ou moins dpendants les uns des autres. Pour pouvoir sy retrouver plus facilement,
les programmeurs utilisent un programme spcial : make. Ce programme est capable de raliser
toutes les oprations ncessaires la cration des chiers excutables dun programme partir de
ses chiers sources. Pour cela, il utilise un chier contenant la dnition des oprations raliser,
ainsi que la description des dpendances entre les diffrents chiers sources. Ce chier est appel le
chier makele. Grce make, lutilisateur de base que vous tes va pouvoir compiler la plupart des
programmes sans avoir la moindre notion de programmation.
En gnral, la compilation dun programme passe par les tapes suivantes :
rcupration des chiers sources du programme ;
conguration du programme pour lenvironnement courant ;
appel make pour la compilation ;
169
Chapitre 7. Notions de compilation et conguration du noyau
appel make pour linstallation.
La premire tape est lmentaire et va de soi.
La deuxime tape se fait souvent en appelant un script dans le rpertoire dinstallation des chiers
sources. Ce script se nomme souvent congure, et peut tre appel avec la ligne de commande
suivante :
./configure
partir du rpertoire o se trouvent les chiers sources. Ce script effectue tous les tests sur le systme
et lenvironnement de dveloppement, et gnre le chier makele. Le programme congure est en
gnral fourni avec les logiciels GNU. Il permet de dterminer lenvironnement logiciel et systme
et de gnrer le chier makele et des chiers den-ttes contenant la dnition de quelques options
du programme. Dans quelques cas particuliers, vous aurez utiliser des options de congure an de
prciser certains paramtres. Loption --host permet dindiquer le type de la machine cible, dans le
cas o congure ne parvient pas le dterminer automatiquement :
--host=machine
o machine est la description de votre machine. Pour les PC fonctionnant sous Linux, cette des-
cription est de la forme ix86-pc-linux-gnu , o le x reprsente le numro de la gn-
ration du processeur du PC. Par exemple, pour un Pentium ou un AMD K6, la description sera
i586-pc-linux-gnu . Loption --enable-shared permet de gnrer des bibliothques dy-
namiques lors de la compilation. Cela procure un gain de place vident. Enn, loption --prefix
permet de prciser le rpertoire de base dans lequel le programme sera install a priori. Cette option
sutilise de la manire suivante :
--prefix=rpertoire
o rpertoire est le rpertoire de base de linstallation. La connaissance de ce rpertoire est utile
aux autres programmes pour localiser les composants qui vont tre installs. Dans la plupart des cas, la
valeur par dfaut du prxe convient, mais il est parfois ncessaire de le modier. Cest en particulier
le cas lorsque vous dsirez mettre jour un programme dj install et que votre distribution nutilise
pas le rpertoire par dfaut. Dans ce cas, il convient dindiquer le rpertoire de base dans lequel ce
programme a t install, an de le remplacer au lieu de le dupliquer dune part, et an que les autres
programmes puissent trouver la nouvelle version la place de lancienne dautre part.
La troisime tape est trs simple aussi. Il suft de taper la commande suivante :
make
toujours dans le rpertoire o se trouvent les chiers sources.
Enn, la dernire tape se fait en tapant la commande suivante :
make install
Bien entendu, ces diffrentes tapes varient parfois avec le logiciel installer. Cependant, il existe
quasiment toujours un chier texte indiquant comment effectuer ces oprations dans le rpertoire des
chiers sources. Ce chier porte souvent le nom de readme , install , ou quelque chose de
similaire.
170
Chapitre 7. Notions de compilation et conguration du noyau
Avec les notions que vous venez de voir, vous devriez pouvoir compiler quasiment tous les pro-
grammes que vous pourrez rcuprer sous la forme de chiers sources. Un dernier dtail cependant :
la compilation est une opration trs gourmande en ressources. Cela signie quelle peut consommer
beaucoup de ressources processeur, de mmoire, de disque et de temps. Pour des gros programmes,
il nest pas rare de passer jusqu une heure de compilation, mme sur une machine rcente. Notez
galement que les facteurs limitants dans les compilations sont souvent la rapidit du processeur et
du disque dur, ainsi que la quantit de mmoire vive disponible.
7.2. Compilation de GCC
La clef de vote du processus de compilation est bien entendu la suite de compilateurs GCC du
projet GNU. Cette suite comprend un compilateur pour les languages C, C++, Objective C, Fortran,
Java et Ada. La plupart des distributions fournissent ces outils sur leur CD dinstallation, mais ne les
installent pas par dfaut. Il est toutefois recommand dinstaller au moins le compilateur C/C++ et les
outils de dveloppement associs, ainsi que les chiers den-tte des bibliothques de base du systme
(bibliothque C, en-ttes de XWindow, des bibliothques utilitaires et des bibliothques de base des
environnements graphiques Gnome et KDE).
Le choix de la version de GCC utilise est extrmement important, car la stabilit et les performances
du systme en dpendront directement. De plus, certains programmes exigeront une version spcique
du compilateur pour tre compils, soit parce quils nont t tests quavec cette version par les
dveloppeurs, soit parce quils utilisent une fonctionnalit qui nest disponible que dans les versions
rcentes de GCC.
La versions stable de GCC reconnue par le plus grand nombre de dveloppeurs est sans aucun doute
la version 3.2.3. Cette version ne posera certainement pas de problmes aux possesseurs de PC base
de processeur x86. De toutes les versions antrieures, seule la version 2.95.3 est rellement utilisable.
Les versions intermdiaires ont toutes souffert de bugs graves et ne doivent donc pas tre utiliss. En
pratique, on utilisera de prfrence la version 3.2.3 pour les raisons suivantes :
elle permet de compiler de programmes pour les processeurs les plus rcents, tels que les IA-64
dIntel, les x86-64 dAMD et les PowerPC dIBM ;
elle permet dutiliser les instructions spciques des processeurs les plus rcents, mme
darchitecture x86 ;
la bibliothque standard C++ fournie avec cette version respecte nettement mieux la norme C++
que les versions antrieures, et elle permet dutiliser les caractres Unicode dans les programmes
C++ ;
elle dispose des dernires optimisations ajoutes GCC.
On prendra garde au fait que certaines distributions utilisent rgulirement des versions non stabilises
des programmes de base tels que GCC ou la bibliothque C. Cest en particulier le cas de la Redhat et
de toutes ses drives, telle la Mandrake par exemple. Ces distributions ont jadis utilis une version
non stabilise de gcc (les fameuses versions 2.96 et 2.97), et prsent utilisent une version spciale
de la bibliothque C et du noyau de Linux pour un meilleur support des programmes multithreads.
Tout cela est fort dommageable, car les paquetages binaires de ces distributions sont systmatique-
ment incompatibles avec ceux des autres dune part, et il est quasiment impossible denvisager une
compilation correcte dun programme avec ces distributions dautre part. En pratique, les possesseurs
de distributions Redhat et drives sabstiendront donc de faire une mise jour manuelle de GCC, de
171
Chapitre 7. Notions de compilation et conguration du noyau
la bibliothque C ou mme du noyau, car les les programmes installs sur leur machine risqueraient
de ne plus fonctionner. Les utilisateurs de ces distributions devrait faire une mise jour complte de
leurs distributions dans ce cas.
Note : En ce qui concerne les numros de version, il faut savoir que le dernier chiffre carac-
trise souvent le numro de correctif. Plus ce chiffre est lev, moins le programme a de chances
de comporter de bogues. En pratique, on vitera gnralement dinstaller systmatiquement les
dernires versions des logiciels lorsque ces versions sont les premires dune nouvelle srie.
Ainsi, un programme de version x.y.0 est certainement peu able. Il faudra attendre au moins
la version x.y.1 ou mieux la x.y.2, pour pouvoir lutiliser sereinement. Sachez galement que le
numro intermdiaire sert, pour certains logiciels, indiquer les versions de dveloppement.
Cest par exemple le cas du noyau de Linux, pour lequel les numros de version impairs corre-
spondent aux versions de dveloppement et les numros pairs aux versions stables. Ce nest pas
le cas pour la bibliothque C ou GCC. On notera que GCC 3.2.0 correspond en fait une version
3.1.1 avec un nouveau format binaire pour le C++, et nest donc pas proprement parler une
nouvelle version. La version 3.3 de GCC est dj disponible, mais on ne lutilisera toutefois pas
pour les raisons indiques ci-dessus : comme toute version en x.y.0, elle est certainement truffe
derreurs de jeunesse.
Certaines documentations rfrencent galement la version 1.1.2 du compilateur EGCS (abrvia-
tion de Experimental GNU Compilation System ). Ces documentations sont obsoltes : EGCS
ne doit plus tre utilis. Il sagit de la version de dveloppement de GCC 2.95, qui est donc
prsent relativement ancienne.
7.2.1. Prrequis
moins que vous ne russissiez mettre la main sur une version de GCC dj compile pour Linux,
vous ne disposerez que des sources. Les sources de GCC peuvent tre rcupres sur Internet sur le
site de GCC (http://gcc.gnu.org). Ces sources sont fournies sous la forme dune archive au format
tar-gzip. Le nom de cette archive est gcc-3.2.3.tar.gz .
Un autre prrequis est bien entendu que vous disposiez galement dun compilateur C sur votre sys-
tme. Ce compilateur peut trs bien tre une ancienne version de GCC, mais il est impratif de dis-
poser dun compilateur C correct. Le code de GCC a t crit pour pouvoir tre compil de manire
minimale avec la plupart des compilateurs C existants. Il faut galement que ce compilateur porte le
nom de cc ou gcc et soit dans lun des rpertoires de la variable denvironnement PATH, ou
que la variable CC ait t dnie avec le chemin absolu du compilateur.
7.2.2. Installation des sources
Lorsque vous aurez install le compilateur C natif de votre systme, vous devrez dcomprimer les
sources de GCC. Cela doit se faire avec la commande suivante :
tar xvfz archive
o archive est le nom de larchive comprime contenant ces sources. Dans notre cas, ce doit tre
gcc-3.2.3.tar.gz. Cette commande a pour consquence de crer larborescence des rpertoires
des sources de GCC dans le rpertoire o elle a t excute.
Une fois cette opration effectue, il est conseill de crer un autre rpertoire, ailleurs que dans le
rpertoire des sources de GCC, dans lequel la compilation aura lieu. Dans toute la suite, nous suppo-
172
Chapitre 7. Notions de compilation et conguration du noyau
serons que le rpertoire des sources se nomme srcdir, et que le rpertoire de compilation se nomme
objdir.
7.2.3. Conguration
Ltape suivante est daller dans le rpertoire de compilation et de lancer le programme de congura-
tion de GCC dans ce rpertoire. Cela peut tre ralis avec les commandes suivantes :
cd objdir
srcdir/configure [options]
Comme on la vu ci-dessus, le programme de conguration congure peut recevoir des options en
ligne de commande. Il est recommand de fournir loption --enable-__cxa_atexit, qui permet
de rendre GCC compatible avec la version 3 de la norme inter-vendeurs spciant le format des in-
terfaces binaires pour les compilateurs C++, et donc de garantir la compatibilit binaire ascendante
avec les versions futures de GCC. Cela vous permettra dviter davoir recompiler toutes les bi-
bliothques C++ lors des mises jours ultrieures de GCC. Il est galement recommand dutiliser
loption --enable-long-long, qui ajoute le support du type de donnes long long, qui permet de
manipuler des donnes 64 bits sur les machines 32 bits comme les PC.
Normalement, le programme de conguration dtecte le type de machine et le systme utilis. Cepen-
dant, cette dtection peut chouer si les types de machines indiqus pour les diffrents composants
du systme ne sont pas identiques. Dans ce cas, il vous faudra spcier la machine hte laide de
loption --host. La ligne de commande pour la conguration sera alors la suivante :
srcdir/configure --enable-__cxa_atexit \
--enable-long-long --host=hte
o hte est de la forme ix86-pc-linux-gnu .
Le nombre de compilateurs fournis avec la suite de compilateurs GCC est impressionnant. Cependant,
seuls les compilateurs C et C++ sont rellement essentiels. Aussi est-il possible de ne prendre en
charge que certains langages laide de loption --enable-languages. Cette option doit tre suivie
des noms des langages pour lesquels le compilateur doit tre cr, spars par des virgules. Ainsi,
on peut ninstaller que les compilateurs C/C++ et Java en ajoutant loption suivante la ligne de
commande :
--enable-languages=c,c++,java
Enn, si votre distribution utilise le compilateur GCC comme compilateur de base du systme, et
que vous dsirez remplacer la version de votre distribution par la version que vous allez compiler,
il faut changer le rpertoire dinstallation de GCC. Normalement, GCC sinstalle dans le rpertoire
/usr/local/ ce qui fait quil ne remplace pas la version de votre distribution. Vous devez donc
spcier les rpertoires de base pour linstallation. Pour cela, il suft dajouter les options suivantes :
--prefix=/usr
la ligne de commande de congure.
173
Chapitre 7. Notions de compilation et conguration du noyau
7.2.4. Compilation
La compilation de GCC peut ensuite tre ralise. Autant vous prvenir tout de suite : cest une
opration trs longue, qui de plus demande beaucoup despace disque. Il faut au moins prvoir 200
Mo despace disque, et une bonne demi-heure sur une machine 500 Mhz. Cela est d la technique
employe par GCC lors de la compilation. La plupart des compilateurs C ne sont pas capables de
compiler GCC avec toutes ses fonctionnalits. Cest pour cela que la compilation se passe en trois
tapes :
une version allge de GCC est compile avec le compilateur natif dans une premire passe ;
cette version est utilise pour compiler la version complte de GCC ;
la version complte est utilise pour se recompiler, an de tester les diffrences entre les deux
versions compltes.
Ainsi, GCC se compile lui-mme !
Ces trois oprations peuvent tre excutes laide dune seule commande :
make bootstrap
Cette commande doit tre excute partir du rpertoire de compilation objdir.
7.2.5. Installation de GCC
Lorsque la compilation sest termine, vous pouvez installer GCC. Il est recommand de supprimer le
compilateur que vous avec utilis pour compiler GCC, sauf si, bien entendu, il sagissait dj de GCC.
En effet, il nest pas ncessaire de le conserver, puisque vous utiliserez dsormais GCC. Linstallation
de GCC est, encore une fois, trs simple :
make install
Cette commande installe GCC ainsi que la bibliothque standard C++.
7.3. Compilation du noyau Linux
La compilation du noyau est une spcicit des systmes libres, qui nest possible que parce que
lon dispose des sources du noyau. Cependant, mme pour certains Unix commerciaux, il est possible
deffectuer une dition de liens, les modules du noyau tant fournis sous la forme de chiers objets. La
compilation ou ldition de liens du noyau est une opration technique qui peut surprendre un habitu
des systmes ferms que sont par exemple Windows ou OS/2. Cependant, elle permet dobtenir un
noyau trs petit, optimis pour la machine sur laquelle il tourne, et donc la fois conome en mmoire
et performant. Il est donc recommand deffectuer cette compilation : pourquoi conserver un monstre
capable de grer des priphriques qui ne sont pas et ne seront jamais installs sur votre systme ?
La compilation du noyau de Linux ncessite de disposer des dernires sources du noyau (version
2.4.21. au 13/06/2003) et dun compilateur. Il est vident que le compilateur idal est le compilateur
GCC. La version recommande par les dveloppeurs du noyau est la 2.95.3, mais les versions rcentes
semblent fonctionner correctement. Je supposerai dans la suite de ce document que vous disposez de
la dernire version du noyau, savoir la version 2.4.21.
174
Chapitre 7. Notions de compilation et conguration du noyau
La compilation du noyau nest pas trs difcile. Elle ncessite cependant de rpondre correctement
aux questions de conguration. Les erreurs peuvent tre multiples, et souvent fatales. Il est donc for-
tement conseill de disposer dune disquette de dmarrage an de rparer le systme en cas derreur.
Par ailleurs, il faut toujours conserver le dernier noyau utilisable en sauvegarde dans le rpertoire
/boot/. Il faut galement ajouter une entre spciant ce noyau dans le programme de dmarrage
(lilo), an de pouvoir slectionner lancien noyau en cas derreur. Ces oprations seront dcrites en
dtail plus loin.
La compilation du noyau se passe en quatre tapes :
installation des chiers sources ;
rponse aux questions de conguration ;
compilation et installation du noyau ;
compilation et installation des modules.
7.3.1. Installation des sources de Linux
Les sources du noyau peuvent tre trouves sur le site kernel.org (http://www.kernel.org). Il est pos-
sible de rcuprer les sources compltes, sous la forme dune archive comprime denviron 24 Mo.
Toutefois, si lon dispose dj dune version complte des chiers sources, il est envisageable de ne
tlcharger que les chiers diffrentiels de cette version la version courante (ce que lon appelle
classiquement des patches ).
Note : Les utilisateurs des distributions Redhat drives (telle que la Mandrake par exemple)
doivent imprativement utiliser les sources fournies par leur distribution. En effet, les noyaux
de ces distributions sont patchs mort pour utiliser des fonctionnalit non stabilises de la
version de dveloppement du noyau de Linux, et sans lesquelles la plupart des programmes
et la bibliothque C elle-mme ne fonctionneraient plus. Je dconseille aux utilisateurs de ces
distributions de se lancer dans laventure dune quelconque compilation dun des composants
systme.
Il est recommand dinstaller les sources du noyau dans un autre rpertoire que celui o se trouvent les
chiers sources de votre distribution, car ceux-ci contiennent les chiers den-tte Cqui ont t utiliss
pour gnrer la bibliothque C du systme et sont donc ncessaires la compilation des programmes.
Le remplacement des chiers sources du noyau imposerait donc, en toute rigueur, de recompiler la
bibliothque C du systme (en pratique cependant, il est rare que les en-ttes du noyau soient modis
au point de gnrer des incompatibilits, du moins dans une mme srie de noyaux). Cette opration
est extrmement technique, risque et longue, il est donc logique que lon sen dispense. Les plus
motivs trouveront en annexe la manire de procder pour recompiler la bibliothque C.
Gnralement, les chiers sources de Linux sont installs dans le rpertoire /usr/src/linux/.
On devra donc renommer temporairement le rpertoire originel avant dinstaller les sources du
nouveau noyau, ou au moins en faire une sauvegarde. Une autre solution est dinstaller les chiers
du noyau dans un rpertoire /usr/src/linux<version>/ et dutiliser un lien symbolique
/usr/src/linux/ pour slectionner la version que lon veut compiler. Cela permet de conserver
plusieurs jeux de sources de versions diffrentes, et de travailler sur la version courante dans le
rpertoire /usr/src/linux/ facilement. Les commandes suivantes permettront dextraire les
sources dans le rpertoire ddi au sources de Linux. Elles supposent quil existe dj un lien
symbolique /usr/src/linux/ vers le rpertoire devant acceuillir ces chiers sources :
175
Chapitre 7. Notions de compilation et conguration du noyau
cd /usr/src
rm linux
mkdir linux-2.4.21
ln -s linux-2.4.21 linux
tar xvfz linux-2.4.21.tar.gz
Une fois le nouveau noyau compil et install, on pourra rtablir la dpendance de la bibliothque C
sur les chiers den-tte de lancien noyau en rtablissant le lien symbolique sa valeur initiale.
Si lon dispose dj dune version complte des chiers sources, et que lon dsire appliquer un patch,
il faut dcomprimer le chier de patch avec la commande suivante :
gunzip fichier.gz
o fichier.gz reprsente le chier de patch comprim (en supposant quil ait t comprim laide
de gzip). Lapplication du patch se fait de la manire suivante :
patch -p0 < fichier
Cette commande doit tre lance partir du rpertoire /usr/src/. Elle suppose que les chiers
sources de Linux pourront tre trouves dans le rpertoire ./linux/. Dans cette ligne de commande,
fichier reprsente le nomdu chier de patch prcdemment dcomprim, et loption -p0 indique au
programme patch dutiliser les noms de rpertoires relatifs au rpertoire courant ( savoir ./linux/).
Si les sources sont installes dans un autre rpertoire, il faudra modier loption -px passe en para-
mtre au programme patch, o x est le nombre de niveaux de rpertoires ignorer pour lapplication
du patch. Consultez la page de manuel patch pour plus de dtails sur cette option.
Il est recommand de tlcharger au moins une fois lensemble des sources du noyau, et de ne pas
utiliser les sources fournies avec la distribution que vous utilisez. En effet, certaines distributions mo-
dient les sources et on ne peut donc pas leur appliquer les patches standards. Toutefois, les chiers
sources fournis avec les distributions contiennent souvent dautres patches non encore intgrs of-
ciellement dans le noyau. Si lune des fonctionnalits apportes par ces patches est utilise, on devra
se contenter des sources de la distribution.
7.3.2. Choix des options de conguration du noyau
La conguration du noyau peut se faire lancienne avec la commande suivante :
make config
Cette commande pose une srie de questions auxquelles il faut pouvoir rpondre correctement du
premier coup. On na pas le droit lerreur ici, faute de quoi il faut tout reprendre zro.
Il est nettement plus convivial dutiliser la version Tcl/Tk sous X11. Cette version donne laccs aux
diffrentes options sans un ordre quelconque, et ne prsente que les options ralisables tant donnes
celles dj xes. Cette mthode est videmment la mthode conseille. Pour lutiliser, il suft de
taper la commande suivante :
make xconfig
176
Chapitre 7. Notions de compilation et conguration du noyau
Si lon ne dispose pas encore de X11, ce qui est probablement le cas lors dune premire installation,
on peut utiliser la version texte avec menu en tapant la commande suivante :
make menuconfig
Quelle que soit la mthode utilise, il faut rpondre par Y (pour Yes ), N (pour No ) ou M
(pour Module ) lorsque cest possible. Y et M incluent la fonctionnalit courante dans le noyau,
N la supprime. M permet dutiliser la fonctionnalit en tant que module du noyau. En gnral,
lutilisation des modules permet dallger le noyau car les fonctionnalits sont charges et dcharges
dynamiquement. Cependant, les fonctionnalits ncessaires au dmarrage de Linux, comme les ges-
tionnaires de disques et systmes de chiers par exemple, ne doivent en aucun cas tre places dans
des modules, car alors le systme ne pourrait pas dmarrer.
Le choix des options de conguration est rellement trs large, car celles-ci couvrent un ensemble de
fonctionnalits trs large. La description exhaustive de ces options est la fois fastidieuse et inutile,
car vous nutiliserez pas tous les gestionnaires de priphriques et toutes les fonctionnalits de Linux
avec un mme ordinateur. Il sagit donc de rpondre aux questions appropries pour votre congura-
tion, mais de le faire avec rigueur : la moindre erreur de conguration peut empcher votre systme
de fonctionner correctement, voire lempcher de dmarrer tout simplement. Vous trouverez une des-
cription rapide des principales options de conguration dans lAnnexe A. Les options les plus utiles
seront galement dcrites lorsque cela sera ncessaire dans le chapitre de conguration du matriel.
7.3.3. Compilation et installation du noyau
Une fois la conguration du noyau ralise, la compilation peut tre lance. Pour cela, il suft de
lancer les trois commandes suivantes dans le rpertoire /usr/src/linux :
make dep
make clean
make bzImage
La premire commande gnre les dpendances entre les chiers du noyau. Ces dpendances sont uti-
lises par les chiers makele. La deuxime commande effectue le mnage ncessaire pour supprimer
tous les chiers objets pouvant rsulter dune prcdente compilation. Cette opration est ncessaire
an dviter de mlanger des chiers ayant t compils avec des options de conguration diffrentes.
Enn, la troisime commande lance la compilation et ldition de liens proprement dite.
Une fois la compilation acheve, il faut installer le nouveau noyau. Cette opration ncessite beaucoup
de prudence, car si le noyau nouvellement cr nest pas bon, le systme ne redmarrera pas. Cest
pour cela quil est conseill de conserver toujours deux versions du noyau, dont on est sr que lune
dentre elle fonctionne parfaitement. En pratique, cela revient conserver la version originale du
noyau install par votre distribution. Pour cela, il faut en faire une copie de sauvegarde.
En gnral, le noyau est install dans le rpertoire /boot/ (ou dans le rpertoire racine pour les
anciennes versions de Linux). Il porte souvent le nom de vmlinuz. Pour le sauvegarder, il suft donc
de taper par exemple la commande suivante :
cp vmlinuz vmlinuz.old
177
Chapitre 7. Notions de compilation et conguration du noyau
Il faut galement indiquer au gestionnaire damorage quil faut quil donne maintenant la possibilit
de dmarrer lancienne version du noyau sous ce nouveau nom. Pour LILO, il suft dditer le chier
/etc/lilo.conf et dy ajouter une nouvelle conguration. En pratique, cela revient dupliquer
la conguration du noyau actuel et changer simplement le nom du noyau charger (paramtre
image de la conguration dans /etc/lilo.conf) et le nom de la conguration (paramtre
label ). Vous devrez aussi rajouter loption prompt si elle ny est pas dj, an que LILO
vous demande la conguration lancer chaque dmarrage. Dans notre exemple, le nom du noyau
utiliser pour la conguration de sauvegarde sera vmlinuz.old. De mme, si la conguration initiale
de Linux porte le nom linux , vous pouvez utiliser le nom oldlinux pour la conguration de
sauvegarde.
Une fois le chier lilo.conf mis jour, il faut vrier que lon peut bien charger lancien systme.
Pour cela, il faut rinstaller LILO et redmarrer la machine. La rinstallation de LILO se fait exac-
tement de la mme manire que son installation, simplement en linvoquant en ligne de commande :
lilo
Si LILO signale une erreur, vous devez corriger immdiatement votre chier lilo.conf et le rins-
taller.
Pour le GRUB, la dnition dune nouvelle conguration se fait galement en dupliquant la congu-
ration initiale et en changeant le nom de loption de menu du GRUB et le chemin sur le chier du
noyau sauvegard. Veillez galement bien ajouter une option timeout pour avoir la moindre chance
de slectionner la conguration lancer. Tout cela doit tre effectu dans le chier de conguration
/boot/grub/menu.lst. Contrairement LILO, il nest pas ncessaire de rinstaller le GRUB pour
que les modications de ce chier soient prises en compte au dmarrage suivant.
Vous pourrez alors redmarrer redmarrer la machine avec la commande suivante :
reboot
Le gestionnaire damorage utilis vous propose alors de choisir le systme dexploitation lancer. Il
faut ici slectionner la conguration de sauvegarde pour vrier quelle est accessible et fonctionne
bien. Le systme doit alors dmarrer en utilisant la copie sauvegarde du noyau. Si cela ne fonctionne
pas, on peut toujours utiliser le noyau actuel en slectionnant le noyau initial et en corrigeant la
conguration du gestionnaire damorage.
Lorsque vous vous serez assur que le systme peut dmarrer avec la sauvegarde du noyau,
vous pourrez installer le nouveau noyau. Son image a t cre par make dans le rpertoire
/usr/src/linux/arch/i386/boot/, sous le nom bzImage. Linstallation se fait donc
simplement par une copie dans /boot/ en crasant le noyau actuel vmlinuz :
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz
Il faut galement copier le chier System.map du rpertoire /usr/src/linux/ dans le rpertoire
/boot/ :
cp System.map /boot
178
Chapitre 7. Notions de compilation et conguration du noyau
Ce chier contient la liste de tous les symboles du nouveau noyau, il est utilis par quelques utilitaires
systmes.
Si vous utiliser LILO, il vous faudra le rinstaller nouveau pour quil prennent en compte le nouveau
noyau. Cela se fait avec la mme commande que celle utilise prcdemment :
lilo
Cette opration nest en revanche pas ncessaire avec le GRUB.
Encore une fois, il faut redmarrer la machine avec la commande suivante :
reboot
et vrier que le nouveau noyau fonctionne bien. Sil ne se charge pas correctement, cest que les
options de conguration choisies ne sont pas correctes. Il faut donc utiliser le noyau sauvegard,
vrier ses choix et tout recommencer. Attention cependant, cette fois, il ne faut pas recommencer la
sauvegarde du noyau puisque cette opration craserait le bon noyau avec un noyau dfectueux.
Si le nouveau noyau dmarre correctement, il ne reste plus qu installer les modules.
7.3.4. Compilation et installation des modules
Si le systme a redmarr correctement, on peut compiler les modules et les installer. Il nest pas
ncessaire de prendre les mmes prcautions pour les modules que pour le noyau. Il suft donc ici de
lancer la commande suivante dans le rpertoire /usr/src/linux/ :
make modules
Les modules slectionns lors de la conguration sont alors compils, il ne reste alors plus qu les
installer.
Au pralable, il est recommand de dcharger tous les modules prsents en mmoire. Cette opration
peut tre ralise avec les commandes suivantes :
modprobe -ar
lsmod
rmmod module
rmmod module
...
Notez que certains modules ne se dchargent pas automatiquement, il faut donc excuter rmmod sur
ces modules manuellement. Linstallation des modules est alors trs simple, puisquil suft de lancer
la commande suivante dans le rpertoire /usr/src/linux/ :
make modules_install
Les modules sont installs dans le rpertoire /lib/module/version/, o version est le numro
de version du noyau courant. Il est possible que des modules dautres versions du noyau existent dans
179
Chapitre 7. Notions de compilation et conguration du noyau
leurs rpertoires respectifs. Si vous nen avez plus besoin, vous pouvez les effacer. Attention cepen-
dant si vous avez install des modules additionnels non fournis avec le noyau dans ces rpertoires,
vous pourriez encore en avoir besoin.
Comme on la dj vu, les modules sont utiliss par le chargeur de module du noyau, grce
la commande modprobe. Cette commande a besoin de connatre les dpendances entre les
modules an de les charger dans le bon ordre. Il faut donc imprativement mettre jour le chier
/lib/modules/version/modules.dep chaque fois que lon installe les modules, laide de la
commande suivante :
depmod -a
Note : La commande depmod -a est excute automatiquement lors de linstallation des mod-
ules du noyau. Toutefois, elle devra tre excute manuellement si lon installe des modules non
fournis avec le noyau.
Les modules doivent tre installs aprs avoir install le noyau et redmarr le systme, faute
de quoi la commande depmod peut ne pas trouver trouver tous les symboles utiliss par les
modules dans le noyau en cours dexcution.
180
Chapitre 8. Conguration du matriel et des
priphriques
Ce chapitre prsente les concepts ncessaires linstallation de cartes lles additionnelles et la
conguration des priphriques complmentaires sous Linux. La procdure dinstallation des disques
durs, graveurs, cartes son, cartes graphiques, cartes vido et cartes rseau sera donc dcrite, ainsi que
la manire de les congurer pour obtenir un fonctionnement correct sous Linux.
8.1. Gnralits sur le support matriel sous Linux
Comme il la dj t expliqu dans les chapitres prcdents, Linux gre tous les priphriques comme
des chiers spciaux. De plus, la plupart des gestionnaires de priphriques peuvent tre chargs
dynamiquement, sous la forme de modules du noyau. Cette section prsentera donc les notions de
base concernant les chiers spciaux de priphriques, les modules du noyau ainsi que leurs rles
respectifs dans la conguration dun nouveau matriel.
8.1.1. Notion de chiers spciaux de priphriques
La notion de chier spcial de priphrique simplie normment lutilisation du matriel par les pro-
grammes dapplication, puisque la plupart des oprations sur un priphrique reviennent simplement
raliser une criture ou une lecture. videmment, lcriture sur un chier spcial de disque permet
denregistrer les donnes sur ce disque, et la lecture permet de les rcuprer. Mais cela ne sarrte pas
l ! Par exemple, la communication avec le modem se fait simplement en crivant et en lisant les don-
nes sur le chier spcial du port srie sur lequel le modem est connect. De mme, jouer un chier
son revient simplement lcrire dans le chier spcial qui gre la carte son. Il est mme possible
daccder la mmoire vido par lintermdiaire dun chier spcial de priphrique...
Bien entendu, certaines fonctionnalits avances des priphriques ne peuvent pas tre accdes sim-
plement par une une criture ou une lecture dans un chier spcial. Le systme fournit donc aux
applications dautres moyens daccder ces fonctionnalits, par lintermdiaire dappels systmes
spciques (pour ceux qui sont intresss par la programmation systme, cet appel systme est ralis
par la fonction ioctl, dont le nom provient de labrviation de langlais Input / Output ConTroL ).
videmment, cette mthode nest utilise que par les programmes qui connaissent bien le fonctionne-
ment du gestionnaire du priphriques, car ils doivent spcier une requte que seul ce gestionnaire
comprend en gnral. Quoi quil en soit, les requtes de ce type utilisent elles aussi un descripteur de
chier spcial de priphrique, ce qui fait que tous les accs au matriel ont lieu par lintermdiaire
de ces chiers.
Il existe deux principaux types de chiers spciaux de priphriques. Le premier type correspond
aux priphriques de type bloc, dont les donnes ne peuvent tre lues que par blocs (cest le cas des
disques durs, des lecteurs de CD et de disquettes en particulier). Le deuxime type correspond aux
priphriques de type caractre, dont les donnes peuvent tre lues caractre par caractre (cartes
son, ports srie, etc.). En plus de son type, chaque chier spcial de priphrique est caractris
par deux codes permettant didentier le type et le modle du priphrique auquel il donne accs.
Ces deux codes portent le nom de code majeur et de code mineur. Comme nous le verrons plus
tard, cest par lintermdiaire de ces codes que le noyau est capable de retrouver le gestionnaire de
priphriques utiliser pour satisfaire aux requtes des clients qui accdent un chier spcial de
priphrique. Il y a donc, en gnral, une association unique entre ces codes et les gestionnaires de
priphriques. La liste des codes majeurs et mineurs dj affects des priphriques est donne
181
Chapitre 8. Conguration du matriel et des priphriques
dans le chier /usr/src/linux/Documentation/devices.txt (ce chier vous donnera donc
une ide des priphriques qui peuvent tre ou qui seront grs par Linux).
Les chiers spciaux de priphriques sont tous stocks dans le rpertoire /dev/. En gnral, ce
rpertoire contient un grand nombre de chiers spciaux de priphriques, mme pour des priph-
riques inexistants sur votre machine. Ces chiers sont installs automatiquement par les distributions,
qui laissent au noyau le soin de signaler que le priphrique est absent lorsquun programme tente
daccder un chier spcial auquel aucun matriel ne correspond. Les chiers fournis par les dis-
tributions sont donc, en thorie, susceptibles de couvrir toutes les gammes de priphriques courants,
et vous naurez pas toucher au rpertoire /dev/. Cependant, si vous devez crer un chier spcial
de priphrique vous-mme, vous devrez utiliser la commande mknod. Sa syntaxe est relativement
simple :
mknod fichier type majeur mineur
o fichier est le nom du chier spcial de priphrique crer, type est une lettre indiquant le
type du chier spcial (c pour les chiers de type caractre et b pour les chiers de type bloc), et
majeur et mineur sont les codes majeur et mineur du priphrique.
Depuis la version 2.4.0 du noyau, il est galement possible que le rpertoire /dev/ contienne un
systme de chiers virtuel, gr par le noyau. Ce systme de chiers est peupl automatiquement
par le noyau avec les chiers spciaux de priphriques de tous les priphriques dtects lors de
linitialisation du systme. Cette technique permet de rsoudre plusieurs problmes concernant les
chiers spciaux de priphriques. Le plus vident pour lutilisateur est que seuls les chiers spciaux
des priphriques effectivement prsents apparaissent dans le rpertoire /dev/, ce qui limine la
prsence de tous les chiers spciaux inutiles.
Le gros avantage du systme de chiers virtuel /dev/ est que les chiers spciaux sont crs par les
gestionnaires de priphriques eux-mmes. Cela implique que lassociation entre les chiers spciaux
et les gestionnaires de priphriques du noyau qui en ont la charge est directe, et ne ncessite plus
dutiliser les codes majeurs et mineurs. Cela a plusieurs consquences :
il ny a plus besoin davoir recours une autorit centrale pour obtenir les valeurs de codes mineurs
et majeurs. Les chiers spciaux de priphriques continuent davoir des codes majeurs et mineurs
bien quils ne soient plus ncessaires, mais les valeurs de ces codes sont attribues dynamiquement
de manire unique par le noyau lorsque les gestionnaires de priphriques sinitialisent. Il ny a
donc plus de risques de conit entre deux priphriques ;
la limitation du nombre de priphriques due au nombre limit de codes majeurs et mineurs nexiste
plus (il suft de consulter la liste du chier /usr/src/linux/Documentation/devices.txt
pour constater quil reste peu de codes libres pour les priphriques venir) ;
les performances sont suprieures, puisque la recherche du gestionnaire de priphriques associ
un chier spcial de priphrique na plus lieu ;
la conguration du systme en est simplie.
Par ailleurs, le systme de chiers virtuel est beaucoup plus structur que le rpertoire /dev/ clas-
sique, car les chiers spciaux de priphriques sont classs par type et par nature. Ce systme de
chiers constitue donc une image logique et cohrente de larchitecture matrielle de lordinateur.
Ainsi, la recherche dun priphrique est beaucoup plus facile. En revanche, les chemins sur les -
chiers spciaux de priphriques sont nettement plus longs que les chemins classiques. Par exemple,
le chier spcial de priphrique /dev/hda1 permettant daccder la premire partition du premier
disque IDE sera accessible avec le chemin /dev/ide/host0/bus0/target0/lun0/part1 dans
le systme de chiers virtuel.
182
Chapitre 8. Conguration du matriel et des priphriques
Ce changement dans la structure du rpertoire /dev/ est un changement de taille, propre empcher
la plupart des applications systme de fonctionner normalement. Cest pour rsoudre ce problme que
le dmon devfsd a t crit. Ce dmon, sil est lanc juste aprs que le systme de chiers virtuel a t
cr (donc, en pratique, dans les premiers scripts de dmarrage du systme), surveille la cration des
chiers spciaux de priphriques dans le systme de chiers virtuel et permet ainsi deffectuer des
actions spciques lorsquun gestionnaire de priphriques senregistre ou se dcharge du noyau. Les
actions effectuer sont spcies dans le chier de conguration /etc/devfsd.conf. Par dfaut,
le dmon devfsd cre des liens symboliques portant les noms des anciens chiers spciaux de pri-
phriques vers les chiers du systme de chiers virtuel. Ainsi, les anciennes applications peuvent
continuer utiliser les anciens noms de chiers spciaux pour accder aux priphriques. La suite
de ce document utilisera donc les noms de chiers spciaux de priphriques classiques. Vous de-
vrez faire la transcription pour toutes les commandes manipulant les priphriques si vous utilisez le
systme de chiers virtuel avec sa nouvelle structure.
Note : Un dmon est un processus qui tourne en arrire plan dans le systme. Les dmons fonc-
tionnent souvent dans le compte root et offrent des services de base que les autres programmes
utilisent. Le terme dmon provient de la traduction littrale daemon , ce qui signie ange
en ralit. Le dmon se place donc en tant quintermdiaire entre Dieu (cest--dire le noyau) et
les hommes (cest--dire les applications normales). Le terme daemon a t ensuite clairci
et dni comme lacronyme de langlais Disk And Execution MONitor .
Mme si votre distribution utilise le systme de chiers virtuel /dev/, il se peut que vous ayez
crer des chiers spciaux manuellement. Cela peut tre ncessaire pour crer un chier spcial de
priphrique pour un gestionnaire qui ne gre pas encore le systme de chiers virtuel /dev/. La
syntaxe utiliser est strictement la mme que dans le cas des chiers spciaux classiques.
Je vous invite consulter la page de manuel de la commande mknod si vous devez crer vous-mme
un chier spcial de priphrique. Ce ne sera normalement pas ncessaire. Vous pouvez galement
obtenir de plus amples informations sur le dmon devfsd et son chier de conguration dans la page
de manuel devfsd.
8.1.2. Modules du noyau
Les modules du noyau sont des bibliothques que lon peut charger dans le noyau lorsque celui-ci a
besoin dune certaine fonctionnalit. Une fois chargs, les modules font partie intgrante du noyau
et ajoutent leurs fonctions celles existantes. Ces bibliothques sont normalement stockes dans le
rpertoire /lib/modules/version/, o version est le numro de version du noyau pour lequel
ces modules ont t crs. Beaucoup de fonctionnalits du noyau peuvent tre congures pour tre
utilises sous la forme de modules. Certains pilotes ne fonctionnent que sous la forme de modules,
aussi faut-il savoir les manipuler.
Les modules peuvent tre chargs manuellement laide des commandes insmod et modprobe. mod-
probe est un peu plus volue, car elle gre les dpendances entre les modules et est capable de
charger les modules utiliss par le module demand. Leur utilisation est des plus simple :
insmod module
ou :
modprobe module
o module est le nom du module charger.
183
Chapitre 8. Conguration du matriel et des priphriques
En ralit, la commande modprobe appelle la commande insmod pour chaque module qui doit tre
charg, dans lordre des dpendances des modules. De cette manire, chaque module peut tre charg
sans problmes, car toutes les fonctionnalits quil utilise sont dj prsentes dans le noyau lors de son
chargement. La commande modprobe va chercher les informations de dpendances dans le chier
modules.dep, situ dans le rpertoire /lib/module/version/. Ce chier utilise une syntaxe trs
simple, et spcie pour chaque module les modules dont il dpend. Bien quil puisse parfaitement tre
crit la main, cela ncessiterait davoir une connaissance approfondie des modules du noyau. Cest
donc pour cela que loutil depmod a t crit. Cet outil permet de gnrer le chier modules.dep
automatiquement, pourvu quon lappelle avec loption -a en ligne de commande :
depmod -a
Il faudra donc appeler cette commande aprs chaque installation ou suppression de module dans le
systme.
La liste de modules qui ont t chargs peut tre obtenue aisment avec la commande lsmod :
lsmod
Enn, la commande rmmod permet de dcharger un module, avec la ligne de commande suivante :
rmmod module
La plupart des modules peuvent prendre un certain nombre doptions lors de leur chargement.
Ces options sont en quelque sorte lquivalent des options que lon communique au noyau lors de
lamorage, pour prciser par exemple la conguration matrielle utilise. Toutes ces options sont
dnies dans le chier de conguration/etc/modules.conf. Lors du chargement dun module,
modprobe consulte ce chier et passe les paramtres indiqus au module charger.
Les options des modules sont spcies dans le chier module.conf laide du mot cl options,
suivi du nom du module pour lequel ces options sont dnies, lui-mme suivi des paramtres de
chargement du module. La syntaxe est donc la suivante :
options module paramtres
La liste des paramtres que lon peut passer un module dpend bien videmment du module. Vous
pouvez obtenir la liste des options supportes par un module laide de loption -p de la commande
modinfo :
modinfo -p module
Nous verrons par la suite des exemples de passage de paramtres pour les modules les plus courants.
Le chier module.conf permet galement de dnir des oprations complmentaires qui doivent
tre effectues lors du chargement et du dchargement dun module. Ces oprations sont introduites
par les mots cls pre-install, post-install, pre-remove ou post-remove. Selon le mot cl
utilis, elles sont excutes respectivement avant et aprs le chargement du module, et avant et aprs
son dchargement. Ces quatre mots cls utilisent tous la mme syntaxe :
xxx-install module opration
184
Chapitre 8. Conguration du matriel et des priphriques
o xxx-install est le mot cl indiquant les conditions dapplication de lopration, module est le
nom du module pour lequel une opration complmentaire doit tre effectue, et opration est la
ligne de commande de lopration en question.
Ainsi, si le port parallle est utilis pour accder un priphrique ncessitant une opration
dinitialisation quelconque, celle-ci peut tre excute aprs le chargement du module laide du
mot cl post-install :
post-install parport_pc initperiph
(en supposant que la commande initperiph permet dinitialiser le priphrique en question). vi-
demment, ce type dopration dpend du matriel connect sur le port parallle, mais le principe est
l.
Dans la plupart des cas, ces options sont facultatives, car modprobe utilise un jeu de valeurs par
dfaut qui permettent dutiliser les modules mme si le chier de conguration modules.conf est
absent. Vous pouvez visualiser ces options en renommant le chier de conguration modules.conf
et en tapant la commande suivante :
modprobe -c
Cette commande vous permettra galement de recrer un nouveau chier de conguration si
daventure vous perdiez celui fourni avec votre distribution.
Il nest normalement pas ncessaire dutiliser ces commandes pour charger les modules. En effet,
il est possible de faire en sorte que les modules soient chargs la demande, lorsquune de leurs
fonctionnalits est demande au niveau du noyau. Pour cela, le noyau utilise lui-mme la commande
modprobe pour charger les modules, ce qui assure la gestion correcte des dpendances entre les
modules. chaque fois que le noyau a besoin dune fonctionnalit qui nest pas encore charge, il
effectue une requte modprobe en lui demandant de charger le module manquant.
Le nom du module dont le noyau demande le chargement modprobe dpend videmment de la
fonctionnalit demande et ne correspond pas forcment un nom de module existant. modprobe
doit donc faire la correspondance entre le nom de module demand par le noyau et le nom dun
module rel. Cest encore une fois dans le chier de conguration /etc/modules.conf que cette
correspondance est stocke. Par exemple, lorsque le noyau dsire accder au port parallle, il utilise
la commande suivante :
modprobe -k parport_lowlevel
o parport_lowlevel est le nom que le noyau utilise pour rfrencer le port parallle. Ce nom est
identique quelle que soit la plate-forme sur laquelle le noyau fonctionne, quil sagisse dun PC, dun
Mac ou dune station de travail Sun. Sur les ordinateurs dont larchitecture est de type PC, le vritable
module utiliser est le module parport_pc. Il faut donc donner indiquer lassociation entre les noms
parport_lowlevel et parport_pc dans le chier modules.conf.
Cette association est ralise par la dnition dun certain nombre dalias de modules rels. Chaque
alias est introduit par le mot cl alias, dont la syntaxe est donne ci-dessous :
alias nom module
o nom est le nom de lalias, et module est le nom du module rel. Lorsque la commande modprobe
est appele avec le nom dun alias en paramtre, elle commence par rechercher le nom du module rel
185
Chapitre 8. Conguration du matriel et des priphriques
dans le chier modules.conf, puis elle le charge en mmoire. Pour le port parallle, on aura donc la
dnition suivante dans le chier modules.conf :
alias parport_lowlevel parport_pc
Figure 8-1. Chargement automatique des modules du noyau
Loption -k passe en paramtre modprobe par le noyau nest quant elle utilise que par le noyau.
Elle permet de marquer le module comme tant automatiquement dchargeable, lorsque plus per-
sonne nutilisera ses fonctionnalits. Cette technique permet de minimiser la consommation mmoire
du noyau sur les machines dont les ressources sont trs limites. Les modules qui sont chargs auto-
matiquement par le noyau sont en effet marqus comme tant automatiquement dchargeables, et on
peut effectivement les supprimer laide de la commande suivante :
modprobe -r
Cette commande dcharge les modules inutiliss automatiquement, dans lordre inverse de leur
chargement. Cette commande respecte donc les dpendances entre modules, et seuls les modules
inutiliss sont rellement dchargs. Il est recommand de placer cette commande dans le chier
/etc/crontab de votre systme, an que les modules inutiliss soient dchargs intervalle de
temps rgulier. Vous aurez donc sans doute placer une ligne telle que celle-ci :
*/2 * * * * root modprobe -r
dans votre chier /etc/crontab. Le dchargement des modules inutiliss aura lieu toutes les deux
minutes.
Vous pouvez constater que le mcanisme dalias permet de rendre le noyau indpendant des modules
utiliss, puisque lassociation entre le nom du module utilis par le noyau et le module rel et ses
paramtres est maintenu dans le chier de conguration modules.conf. Linconvnient de cette
186
Chapitre 8. Conguration du matriel et des priphriques
mthode est en revanche quil faut connatre les noms de modules utiliss par le noyau. Ces noms sont
assez variables et dpendent de la fonctionnalit demande. Toutefois, les noms utiliss par le noyau
peuvent facilement tre dtermins pour les modules grant les chiers spciaux de priphriques.
En effet, il est possible de construire un nom unique pour chaque chier spcial de priphrique, qui
pourra tre utilis par le noyau pour spcier le module capable de grer les fonctionnalits de ce
chier. La manire de construire ces noms varie selon que le chier spcial de priphrique accd,
et selon quil sagit dun chier rel ou dun chier du systme de chiers virtuel /dev/ du noyau.
Sil sagit dun vrai chier spcial de priphrique, il est parfaitement identi par sa nature (disque,
priphrique de type caractre, interface rseau...) et ses deux codes majeur et mineur. Le noyau peut
donc construire un nom partir de ces informations. Ainsi, pour un chier spcial de priphrique
de type caractre, le nom gnr par le noyau est en gnral de la forme char-major-xxxx .
Pour les priphriques de type bloc, il est de la forme block-major-xxxx . Les caractres xxxx
identient le code majeur de ce priphrique, plus rarement son code mineur. Par exemple, pour les
cartes son, le nom de module char-major-14 sera utilis, parce que les cartes sons utilisent toutes
le code majeur 14. Le code mineur nest actuellement pas utilis pour les cartes son.
Mme si les noms de modules sont toujours construit plus ou moins selon ce schma pour les chiers
spciaux de priphriques rels, il reste difcile de dterminer le nom exact du module associ un
chier spcial de priphrique. Par exemple, nous avons vu que le nom de module utilis pour le port
parallle (accessible via le chier spcial de priphrique /dev/lp0) est parport_lowlevel. De
mme, le nom utilis pour les interfaces rseau de type Ethernet est eth0, eth1, etc. Il nest donc
pas toujours vident de savoir quel est le nom que le noyau utilisera. Le plus simple dans ce cas est
encore de regarder dans la conguration utilise par modprobe laide de son option -c.
En revanche, si le chier spcial de priphrique est un chier virtuel, le mcanisme de nommage
est compltement diffrent. En effet, le systme de chiers virtuel /dev/ cre les chiers spciaux
de priphriques la demande, lorsque les gestionnaires de priphriques senregistrent au niveau du
noyau. Il nest donc pas possible de dterminer les codes majeurs et mineurs des chiers spciaux
de priphriques si les modules qui les grent ne sont pas chargs, parce que ces chiers nexistent
pas encore dune part, et parce que ces codes sont dtermins dynamiquement et ne sont donc jamais
xes dautre part.
Le chargement des modules la demande est en fait ralis par le dmon devfsd, que nous avons
dj dcrit dans la Section 8.1.1. Outre la cration des liens symboliques permettant daccder aux
chiers spciaux de priphriques sous leur nom classique, ce dmon est capable deffectuer des ac-
tions diverses lorsquun vnement se produit dans le systme de chiers virtuel /dev/. Toutes ces
actions sont dcrites dans le chier de conguration /etc/devfsd.conf. En particulier, il est pos-
sible deffectuer une action lorsquun programme recherche un chier spcial de priphrique dans le
systme de chiers, chose que tous les programmes qui utilisent les chiers spciaux de priphriques
font, ne serait-ce que pour pouvoir les ouvrir. Cest lors de cette recherche que le dmon devfsd va
demander le chargement du module correspondant au chier spcial de priphrique demand.
Pour que ce mcanisme fonctionne, il faut avant tout lactiver. Cela se fait simplement en ajoutant la
ligne suivante dans le chier devfsd.conf :
LOOKUP .* MODLOAD
qui signie que le chargement dynamique de module (action MODLOAD ) doit tre effectue lors-
quune recherche (vnement LOOKUP ) a lieu dans le systme de chiers virtuel /dev/, et ce
pour nimporte quel nom de chiers spcial de priphrique (expression rguire .* , qui repr-
sente nimporte quelle squence de caractres).
Bien entendu, les noms de module utiliss par le dmon devfsd ne peuvent pas se baser sur les codes
majeur et mineur du chier spcial de priphrique pour les raisons que lon a indiqu ci-dessus.
187
Chapitre 8. Conguration du matriel et des priphriques
Mais pourquoi faire compliqu quand on peut faire simple ? Le dmon devfsd ne sembarrasse pas
de dtails, et demande tout simplement le chargement du module dont le nom est exactement le
chemin du chier spcial de priphrique recherch ! Il suft donc tout simplement de dnir les alias
correspondant dans le chier modules.conf pour ventuellement trouver le bon nom de module
charger.
En fait, le dmon devfsd utilise un autre chier de conguration, le chier /etc/modules.devfs,
an de simplier lcriture du chier modules.conf. Ce chier lui permet dassocier un ensemble de
noms de chiers spciaux de priphriques un seul module. Par exemple, tous les ports srie dune
machine utilisent, en gnral, le mme gestionnaire, bien quils soient accessibles par lintermdiaire
des chiers spciaux de priphriques /dev/ttySn, o n est le numro du port srie (0 pour le port
COM1, 1 pour le port COM2, etc.). Le chier modules.devfs regroupe donc tous les noms de
modules /dev/ttyS* en un seul nom de module, savoir serial. Cest donc ce nom l qui sera
communiqu modprobe pour le chargement du module de gestion des ports srie.
De manire gnrale, vous naurez pas modier les chiers devfsd.conf et modules.devfs, car
ceux fournis avec les distributions conviennent parfaitement. En revanche, vous modierez certaine-
ment le chier modules.conf. Il sagit l dun opration dlicate, car elle ncessite de bien connatre
les mcanismes de nommage utiliss par le noyau, les noms des modules rels et leurs paramtres de
conguration. En gnral, vous trouverez les informations sur les entres ajouter ou modier dans
le chier daide du module correspondant, que vous pourrez trouver dans les sources du noyau (dans
le rpertoire /usr/src/linux/Documentation/).
Quoi quil en soit, la modication de modules.conf peut gnrer de nouvelles dpendances entre
les modules. Il est donc ncessaire dexcuter la commande depmod -a aprs chaque modication de
ce chier.
8.2. Conguration des priphriques de masse
Les priphriques de masse sont les priphriques permettant de manipuler de grandes quantit de
donnes. Il sagit gnralement des priphriques connects sur bus SCSI, des disques durs et lecteurs
de CD/DVD, des graveurs et des scanners.
8.2.1. Conguration des priphriques SCSI
Les priphriques de qualit sont gnralement connects sur bus SCSI, en raison des capacits de
celui-ci en termes de dbit et de performances. En particulier, les disques durs SCSI restent privilgis
sur les systmes haut de gamme comme les serveurs par exemple, parce que le bus SCSI permet
dutiliser plusieurs priphriques simultanment.
Sous Linux, les priphriques SCSI sont accds par lintermdiaire des chiers spciaux de priph-
rique /dev/sdx pour les disques durs ou /dev/scdn pour les lecteurs ou les graveurs de CD-ROM,
o x est la lettre dnissant le disque dur et n est le numro du lecteur ou du graveur de CD-ROM.
Les autres priphriques SCSI sont accds par lintermdiaire des chiers spciaux de priphriques
SCSI gnriques, savoir les chiers /dev/sgn. Notez que certains priphriques pourront tre utili-
ss par lun ou lautre de ces chiers spciaux, selon la fonctionnalit laquelle on cherche accder.
Par exemple, les programmes de gravage utilisent les chiers spciaux de priphriques /dev/sgn
pendant le gravage, alors que la simple lecture dun CD avec un graveur se fait via le chier spcial
de priphrique /dev/scdn correspondant.
La prise en charge des priphriques SCSI se fait au niveau du noyau pour les fonctionnalits de base.
En ralit, la conguration des priphriques SCSI se restreint celle de la carte SCSI utilise. Les
188
Chapitre 8. Conguration du matriel et des priphriques
fonctionnalits de plus haut niveau sont relgues au niveau applicatif. Par exemple, la prise en charge
des diffrents graveurs SCSI du march est ralise par les logiciels de gravage eux-mmes, de mme
que la prise en charge des diffrents scanners lest par les logiciels dacquisition dimage.
La gestion des contrleurs SCSI au niveau du noyau se fait par lintermdiaire des options du menu
SCSI support du programme de conguration du noyau. Outre loption SCSI support que
lon activera bien videmment, ce menu comprend les options suivantes, que lon choisira en fonction
du type des priphriques SCSI utiliser :
SCSI disk support , pour les disques durs SCSI ;
SCSI tape support , pour les lecteurs de cartouches SCSI. Les possesseurs de lecteurs
de cartouches OnStream SC-x0 devront plutt utiliser loption SCSI OnStream SC-x0 tape
support , car le gestionnaire de priphriques standard nest pas capable de les prendre en
charge ;
SCSI CD-ROM support , pour les lecteurs de CD-ROM SCSI ;
SCSI generic support , pour les autres priphriques dont lutilisation requiert lutilisation
dun programme applicatif spcique. Il sagit ici des graveurs de CD, des scanners et autres pri-
phriques spciaux.
Certains priphriques SCSI disposent de plusieurs numros dunits logiques sur leur bus. Il peut
donc tre ncessaire, pour ces priphriques, dactiver loption Probe all LUNs on each SCSI
device an de pouvoir les utiliser correctement. Les autres options ne sont pas essentielles, consul-
tez leur aide pour plus de dtails leur sujet.
En plus des options gnrales de la prise en charge du SCSI, il est impratif de slectionner le gestion-
naire de priphriques capable de piloter votre contrleur SCSI. Cela peut tre fait dans le sous-menu
SCSI low-level drivers . Vous devrez y activer la prise en charge pour votre matriel, aucune rgle
ne peut donc tre dnie ce niveau. Consultez la documentation de votre matriel pour dterminer
le gestionnaire de priphriques adquat utiliser.
Une fois la conguration du noyau effectue, vous navez plus qu le compiler et linstaller pour
pouvoir utiliser vos priphriques. La manire de procder a t dcrite en dtail dans la Section 7.3.
8.2.2. Conguration des disques durs IDE
Les disques durs IDE ont longtemps souffert dun gros dfaut par rapport aux disques SCSI : celui de
ne pas pouvoir effectuer des oprations sans lintervention du processeur. En effet, lenvoi des don-
nes aux disques se faisaient classiquement par de nombreuses critures dans les ports dentre/sortie
des contrleurs de disques, obligeant ainsi le systme consacrer une part importante des ressources
processeur uniquement pour les accs disque. Ce dfaut a t corrig avec la monte en puissance du
mode DMA (abrviation de langlais Direct Memory Access ). Le mode DMA des priphriques
IDE existe depuis les tous dbuts de larchitecture PC, mais les premiers contrleurs DMA ntaient
pas capables de suivre la cadence des disques dur, mme des plus anciens. Il na donc malheureuse-
ment pas t utilis pendant longtemps, jusqu ce quune nouvelle technologie soit mise au point :
lUltra DMA. La plupart des jeux de composants des cartes mres modernes sont prsent capables
de grer lUltra DMA, dont les frquences de bus les plus courantes sont 33, 66 et 100MHz.
Note : Mme si les interfaces IDE ont prsent rduit lcart avec les interfaces SCSI au niveau
du taux de transfert des donnes, elles ont toujours un train de retard par rapport elles. En
effet, les priphriques SCSI sont dune part capables de communiquer entre eux sur leur bus,
dchargeant ainsi totalement le processeur de ce travail de transfert des donnes, et dautre
189
Chapitre 8. Conguration du matriel et des priphriques
part capables de traiter plusieurs requtes dafle sans lintervention du processeur. Ces fonc-
tionnalits dchargent le bus systme, mais sont galement extrmement utiles pour les sys-
tmes dexploitation multitches. Ceux-ci peuvent en effet envoyer plusieurs commandes aux
priphriques et effectuer dautres traitements pendant quelles sexcutent en asynchrone. Les
disques SCSI ont donc un taux doccupation du processeur et du bus systme nettement moin-
dre, et permettent aux systmes tels que Linux datteindre un degr de ractivit ingal avec
les disques IDE classiques. Cela dit, les priphriques IDE cotent nettement moins cher que les
priphriques SCSI, et cest sans doute l la clef de leur succs.
Par dfaut, Linux utilise les disques durs en mode de compatibilit, cest dire quil nactive pas
lUltra DMA pour les accs aux disques. Les performances du systme en sont donc grandement
rduites au niveau des accs disque. Ceci se remarque particulirement lors des gros transferts de
donnes, car le cache disque gr par Linux peut ne plus tre sufsant pour acclrer les oprations
destination du disque. Notez cependant que pour une utilisation courante, les mcanismes de cache du
systme sont tellement puissants que vous ne pourriez dtecter aucun dsagrment (jai par exemple
pu travailler pendant plus de quatre mois sur ma machine avant de mapercevoir que mes disques
taient mal congurs). Toutefois, puisquon peut faire mieux, autant congurer correctement les
contrleurs IDE...
Les contrleurs IDE peuvent tre congurs grce lutilitaire hdparm. Comme son nom lindique,
cet utilitaire permet de modier les paramtres des disques durs et des contrleurs IDE. Il permet
galement de tester les performances de votre conguration, et peut donc servir doutil de diagnostic
trs utile. La mesure du dbit de votre sous-systme disque (sans les mcanismes de cache du systme)
peut tre en effet ralise facilement avec la commande suivante :
hdparm -t priphrique
o priphrique est le chier spcial de priphrique de votre disque dur.
Note : Si vous obtenez des valeurs infrieures ou gales 3 Mo/s, vous avez rellement un
problme de conguration. Les premiers disques UltraDMA 33 peuvent atteindre facilement 8
10 Mo/s, les disques UltraDMA 66 atteignent facilement 17 22 Mo/s, et les disques les plus
rcents en UltraDMA 100 peuvent aller encore bien au del.
Faites bien attention ne pas utiliser loption -T la place de loption -t. En effet, vous mesureriez
le dbit dans le sous-systme disque complet de Linux, avec ses mcanismes de cache. Vous
obtiendriez alors des taux de transfert nettement plus grands (dix fois plus au moins), qui ne
reprsenteraient pas le taux de transfert rel de votre interface IDE.
Lactivation de lUltraDMA avec hdparm se fait simplement avec loption -d. Cette option prend en
paramtre un entier pouvant valoir 0 ou 1, selon que lUltraDMA doit tre activ ou non. Cependant,
cette option peut ne pas tre sufsante pour les disques modernes, pour lesquels il faut galement
prciser le mode de transfert utiliser. Ce mode peut tre indiqu laide de loption -X, qui prend en
paramtre un nombre dont la valeur est le numro du mode plus une constante identiant le type de
transfert utilis. Les transferts de type PIO (cest dire le mode dans lequel le processeur effectue lui-
mme les transferts par lintermdiaire des ports dentre / sortie) utilisent la constante 8, les transferts
de type DMA simple utilisent la constante 32, et les transferts en UltraDMA utilisent la constante 64.
Ainsi, la slection du mode UltraDMA mode 2 pour le disque matre du premier contrleur IDE se
fait avec la commande suivante :
hdparm -d1 -X66 /dev/hda
190
Chapitre 8. Conguration du matriel et des priphriques
La valeur 66 utilise ici signie donc que les transfers se font en UltraDMA (constante 64), mode 2
(valeur 2).
Le choix des modes de fonctionnement dpend bien entendu du matriel install sur votre ordinateur.
Cependant, la ligne de commande de lexemple prcdent conviendra dans la plupart des cas.
Note : Pour que lUltraDMA soit utilisable, il faut bien entendu que les pilotes IDE de votre noyau
Linux le grent. Gnralement, les noyaux des distributions en sont capables, mais si daventure
ce ntait pas le cas, vous devriez recompiler votre noyau. Les options activer dans le pro-
gramme de conguration du noyau sont les options suivantes du menu ATA/IDE/MFM/RLL
support :
Generic PCI IDE chipset support du menu IDE, ATA and ATAPI Block devices ;
Generic PCI bus-master DMA support ;
Use PCI DMA by default when available .
Vous devrez galement activer le support pour les jeux de composants utiliss par votre carte
mre.
Lutilitaire hdparm permet galement de xer dautres paramtres des contrleurs IDE. En particu-
lier, il est possible dactiver et de dsactiver le mode 32 bits de ces contrleurs laide de loption
-c. Comme pour loption -d, loption -c prend en paramtre un indicateur pouvant valoir 0 ou 1 et
permettant dactiver ou de dsactiver le mode 32 bits du contrleur. Notez que certains contrleurs ne
supportent pas correctement le mode de fonctionnement 32 bits et peuvent perdre des donnes si vous
lactivez.
Note : Prenez garde lorsque vous utilisez la commande hdparm. Si vous spciez des
paramtres incorrects ou non pris en charge par votre matriel, vous pouvez fort bien bloquer
compltement vos contrleurs IDE, et planter ainsi le systme en un temps trs court. Si
daventure cela se produisait, il faudrait attendre un peu de temps, jusqu ce que le systme
saperoive de la mauvaise conguration des contrleurs et les rinitialisent avec leurs
paramtres initiaux. Vous pouvez dtecter ce genre de rinitialisation dans les messages du
noyau, que vous pouvez tout moment afcher avec la commande dmesg. Sachez toutefois
que le risque de corruption du systme de chiers en cas de mauvaise conguration reste bien
rel, et quil vaut mieux un systme lgrement plus lent quun systme qui dtruit vos donnes
en un temps record.
Lorsque vous aurez trouv les paramtres optimaux de vos contrleurs de disque, vous pourrez de-
mander au systme de conserver ces paramtres par dfaut en ajoutant loption -k1 dans la ligne de
commande de hdparm. Par exemple, pour congurer de manire permanente le premier disque IDE
en UltraDMA mode 2 et en accs 32 bits, il faut utiliser la commande suivante :
hdparm -c1 -d1 -X66 -k1 /dev/hda
Note : Prenez garde toutefois au fait que les rinitialisations du contrleur en cas derreur repren-
dront systmatiquement les mmes paramtres, ce qui peut rellement bloquer compltement
votre sous-systme disque (et planter irrmdiablement votre systme). Dans ce cas, il ne vous
restera plus que le redmarrage brutal, avec les risques de pertes de donnes qui en dcoulent.
191
Chapitre 8. Conguration du matriel et des priphriques
La conguration des disques durs et des contrleurs IDE pourra galement tre ajoute dans le script
de dmarrage de votre systme. Ce script est gnralement plac dans le rpertoire /etc/rc.d/ ou
dans le rpertoire /sbin/init.d/ selon votre distribution. Bien entendu, il faut rellement tre sr
de la commande de conguration utilise, car elle sera excute systmatiquement chaque dmar-
rage.
8.2.3. Installation dun graveur de CD-ROM
Linux dispose de tous les logiciels permettant de graver des CD-ROM, et ce avec la plupart des gra-
veurs disponibles sur le march. Il permet de copier des CDet de crer des images disques. Cependant,
il nest pas encore possible dutiliser le gravage par paquet, qui permet dutiliser les graveurs de CD
comme des priphriques amovibles. Cette fonctionnalit est en effet encore ltude, elle sera sans
doute disponible sous peu.
8.2.3.1. Notions de base sur le gravage sous Linux
Originellement, tous les graveurs de CD utilisaient linterface SCSI. Ce nest que plus tard que les
graveurs sur port parallle et les graveurs IDE ATAPI sont apparus. Actuellement, les graveurs ex-
ternes connects sur port parallle sont de moins en moins vendus. Les graveurs IDE font une belle
perce, mais les graveurs SCSI restent incontournables pour les vielles machines dont on nest pas sr
des performances au niveau des disques. Les logiciels de gravage doivent donc tre capable dutiliser
nimporte quel type de graveur, ce qui nest pas simple. Cest pour cette raison quils utilisent tous
linterface SCSI, aussi bien pour des raisons historiques que pour des raisons techniques. Cela ne
signie pas quil est impossible dutiliser les graveurs ATAPI, car le protocole de communication
ATAPI nest rien dautre quune traduction des commandes IDE en commandes SCSI au niveau ma-
triel.
Lutilisation dun graveur de CD SCSI ne posera donc pas de problme et se fera de manire directe.
En revanche, les graveurs de CD IDE ATAPI devront tre accds par lintermdiaire dun mulateur
SCSI, qui traduira les commandes SCSI en commandes ATAPI correspondantes. Cet mulateur est
gr au niveau du noyau de Linux. Le problme est quil est impossible dactiver la fois le support
des CD-ROM IDE ATAPI et lmulateur SCSI pour les priphriques IDE dans un mme noyau. On
devra donc faire le choix entre les deux solutions suivantes :
soit on nutilise que linterface SCSI pour accder aux lecteurs de CD, et on ne risque aucun conit ;
soit on active les deux fonctionnalits sous la forme de modules, et on nutilise quune seule des
interfaces chaque instant.
La premire solution est videmment la plus simple (et surtout la plus sre). La deuxime solu-
tion permet dutiliser ses lecteurs de CD-ROM IDE ATAPI normalement avec leur interface native,
sauf lorsquon dsire graver un CD. Comme il ny a pas de cas o linterface SCSI est infrieure
linterface IDE en termes de performances et de fonctionnalits, cette mthode est dconseille.
8.2.3.2. Conguration du noyau
Vous allez encore une fois avoir effectuer des choix de conguration dans le noyau pour activer
la gestion des priphriques SCSI capables de piloter votre graveur. Les questions concernant les
192
Chapitre 8. Conguration du matriel et des priphriques
graveurs de CD-ROM sont rcapitules ci-dessous :
Include IDE/ATA-2 CDROM support
Cette option permet dactiver la gestion des lecteurs de CD IDE ATAPI. Vous ne devez pas
rpondre cette question par Y, faute de quoi vous ne pourrez pas utiliser votre graveur de
CD. Il vous est en revanche possible de rpondre par M, pour nactiver la fonctionnalit qu la
demande, sous la forme de module. La rponse recommand est N, moins que vous ne sachiez
ce que vous faites. En effet, si vous activez cette fonctionnalit, vous risquez davoir des conits
avec lmulation SCSI. Ce problme sera dtaill plus loin.
SCSI emulation support
Cette option permet dactiver la gestion des priphriques IDE ATAPI par lintermdiaire de
commandes SCSI. Cest cette option qui va vous permettre dutiliser votre graveur de CD IDE
avec les programmes qui ne peuvent grer que des graveurs SCSI. Vous pouvez rpondre N
cette question si vous nutilisez ni lecteur de CDROM SCSI ni graveur SCSI. Dans tous les
autres cas, il est recommand de rpondre Y cette question an daccder votre matriel via
linterface SCSI. Vous pouvez activer cette fonctionnalit sous la forme de module en rpondant
par M cette question, cette solution est recommande si vous avez activ la gestion des CD-
ROM IDE ATAPI dans la question prcdente.
Loopback device support
Cette option permet dactiver une fonctionnalit permettant dutiliser un chier comme un p-
riphrique normal. Elle est trs utile pour tester les images de CD, car il suft simplement de
monter le chier image comme un priphrique loopback . Il est donc recommand dactiver
cette fonctionnalit, que lon dispose dun graveur SCSI ou IDE. Cette fonctionnalit peut tre
active sous la forme de module ou non, la rponse recommande est Y.
SCSI support
Cette option permet dactiver la gestion des priphriques SCSI dans votre noyau. Il va de soi
quil faut lactiver, que lon dispose dun graveur SCSI ou IDE. Cette fonctionnalit peut tre
active sous forme de module ou non. La rponse recommande est Y.
SCSI CD-ROM support
Cette option permet dactiver la gestion des lecteurs de CD SCSI. Il faut lactiver, que lon
dispose dun graveur SCSI ou IDE. Il est impratif dutiliser les modules si vous avez activ la
gestion des lecteurs IDE. Vous pouvez intgrer cette fonctionnalit au noyau sans risque sinon.
Cette dernire solution est la mthode recommande, aussi est-il conseill de rpondre Y cette
question.
Enable vendor-specific extensions (for SCSI CDROM)
Cette option permet dautoriser lemploi dextensions au protocole SCSI dnies par les fabri-
cants de matriels. Certains graveurs utilisent de telles extensions, cest en particulier le cas des
graveurs de CD HP. Toutefois, si vous ne disposez pas dun tel graveur, il est peu probable que
vous ayez activer cette fonctionnalit. La rponse recommande est donc N.
SCSI generic support
Cette option permet dutiliser le priphrique SCSI avec des commandes non standards, ce qui
requiert lemploi de programmes capables de communiquer directement avec les priphriques
SCSI. Cest le cas pour les graveurs, qui seront pilots directement par les logiciels de gravage.
193
Chapitre 8. Conguration du matriel et des priphriques
Il faut donc activer cette fonctionnalit, que lon dispose dun graveur SCSI ou IDE. La rponse
recommande est Y.
Probe all LUNs on each SCSI device
Cette option permet, lorsquon dispose de priphriques SCSI capables de grer plusieurs num-
ros dunit logiques, de leur demander tous ces numros. Ce type de priphrique est assez rare,
et en gnral chaque priphrique nutilise quun et un seul numro dunit logique. Il ne faut
donc pas, en gnral, activer cette fonctionnalit. La rponse recommande pour cette question
est donc N.
Enn, il faut choisir le pilote bas niveau permettant de grer son graveur de CD. Pour les graveurs
IDE ATAPI, la couche dmulation sufra et il est inutile de slectionner un autre pilote. En revanche,
pour les graveurs SCSI, il faut choisir le pilote appropri.
Une fois cette conguration effectue, il ne reste plus qu compiler le noyau et les modules et les
installer. La manire de procder a t dcrite dans la section traitant de la compilation du noyau.
8.2.3.3. Conguration des modules du noyau
Vous aurez sans doute modier le chier de conguration /etc/modules.conf si vous avez activ
certaines fonctionnalits SCSI sous la forme de modules, an de charger les modules ncessaires
lorsquune commande sera effectue sur lun des chiers spciaux de priphriques SCSI. Si toutes
les fonctionnalits SCSI sont intgres au noyau, cette tape est bien entendue facultative. Les chiers
spciaux utiles pour les priphriques blocs SCSI sont les chiers scdx et sgx, o x est le numro
du priphrique. Les chiers spciaux du premier groupe sont de type bloc, et permettent daccder
aux lecteurs de CD SCSI. Les chiers du deuxime groupe en revanche sont de type caractre, et
permettent daccder aux priphriques SCSI de manire gnrique. Les codes majeurs pour ces deux
groupes de chiers spciaux sont respectivement 11 et 21, il faut donc ajouter les entres du chier
modules.conf pour les modules nomms block-major-11 et char-major-21. Normalement,
ces entres sont dj prsentes dans le chier fourni par votre distribution. Cependant, vous aurez
ajouter les lignes suivantes si vous utilisez un graveur de CD IDE ATAPI :
post-install sr_mod modprobe -k ide-scsi
aprs la ligne indiquant le module charger pour les priphriques blocs de code majeur 11, et :
post-install sg modprobe -k ide-scsi
pour les priphriques SCSI gnriques, de code majeur 21.
Ces deux lignes permettent de demander au noyau de charger galement le module ide-scsi lorsque
lun des modules SCSI est charg. Le module ide-scsi est le module qui se charge deffectuer
lmulation SCSI pour les priphriques IDE ATAPI.
Il va de soi que lorsque vous aurez utilis un des chiers de priphrique SCSI, le module ide-scsi
sera charg. Vous ne pourrez donc plus utiliser le module ide-cd, qui permet daccder aux lecteurs
IDE par leur interface ATAPI. De mme, si vous montez votre lecteur de CD par lintermdiaire du
chier spcial de priphrique IDE correspondant, le module ide-cd sera charg. Vous ne pourrez
donc plus utiliser le module dmulation SCSI. La solution est donc, dans ce cas, de dcharger les
modules inutiliss laide de la commande rmmod. Il est vident que comme vous navez pas besoin
dutiliser linterface IDE de vos lecteurs de CD dans la plupart des cas, le plus simple est simplement
de toujours utiliser lmulation SCSI et ainsi dviter tout conit. Dans ce cas, vous pourrez rpondre
194
Chapitre 8. Conguration du matriel et des priphriques
par N la question Include IDE/ATA-2 CDROM support de la conguration du noyau, surtout
si vous ne matrisez pas Linux ou si navez pas bien assimil le fonctionnement des modules.
8.2.3.4. Installation des logiciels de gravage
Lorsque le noyau aura t correctement congur et install, il ne vous restera plus qu installer les
logiciels de gravage. Les logiciels indispensables sont les suivants :
cdrecord, qui permet de piloter le graveur de CD et deffectuer les tches ncessaires pour le
gravage ;
mkisofs, qui permet de crer des images disques ISO 9660, ventuellement avec les extensions
Joliet (CD Windows 95), Rock Ridge (CD Unix) ou HFS (CD Macintosh) ;
cdda2wav, qui permet dextraire les donnes numriques des CD audio.
Vous pourrez vrier que votre conguration fonctionne correctement avec la commande suivante :
cdrecord -scanbus
Cette commande recherche tous les priphriques SCSI du systme. Vous devrez normalement y
trouver, en plus de vos autres priphriques SCSI, votre graveur de CD.
8.2.3.5. Utilisation des logiciels de gravage
Nous allons prsent voir les commandes permettant de faire les principales oprations ayant trait au
gravage des CDs. Bien que ce document soit consacr linstallation de Linux et non son utilisation,
elles vous permettront de tester si tout fonctionne correctement.
La copie directe dun CD peut se faire avec la commande suivante :
cdrecord -dummy -v dev=bus,ID,lun speed=n -isosize /dev/scdx
o bus reprsente le bus SCSI sur lequel le graveur est branch, ID le numro de priphrique du
graveur sur ce bus SCSI et lun son numro dunit logique ( Logical Unit Number . Le numro du
bus SCSI et le numro de priphrique peuvent tre obtenus avec la commande cdrecord -scanbus
prsente ci-dessus. Le numro dunit logique est, dans la majorit des cas, 0. Le nombre n doit
ici valoir le facteur multiplicateur de la vitesse de gravage. Vous pouvez essayer avec des valeurs
faibles pour commencer, an dtre sr que tout se passe bien. Le chier de priphrique /dev/scdx
indiqu dans la ligne de commande de cdrecord doit bien entendu tre le chier de priphrique SCSI
du lecteur de CD utilis pour lire le CD-ROM. Loption -isosize permet de demander cdrecord
de lire la taille de la piste graver dans le systme de chiers ISO9660 du CD source. Enn, loption
-dummy permet de faire toutes les oprations en conservant le laser du graveur teint, ce qui revient
faire un test. Si vous voulez rellement graver votre CD, il suft de supprimer cette option.
Il va de soi que si vous ne disposez pas dun lecteur de CD en plus de votre graveur, vous ne pouvez
pas utiliser la commande prcdente. Dans ce cas, vous devrez faire une image disque en extrayant
toutes les donnes du CD source. Cela peut tre ralis avec la commande suivante :
dd if=/dev/scdx of=image
195
Chapitre 8. Conguration du matriel et des priphriques
o /dev/scdx est le chier spcial de priphrique SCSI du lecteur utilis pour faire limage (donc,
si vous ne disposez que dun graveur, cest le chier spcial de priphrique SCSI de votre graveur),
et image est le chier image qui doit tre cr.
Le gravage dune image disque peut tre ralis avec la commande suivante :
cdrecord -dummy -v dev=bus,ID,lun speed=n -data image
o les options sont les mmes que dans les commandes prcdentes.
Si vous dsirez crer une image disque partir des chiers de votre disque dur, vous pouvez utiliser
mkisofs. Ce programme permet de crer une image disque ISO9660, avec les extensions Rock Ridge
pour activer les fonctionnalits des systmes de chiers Unix (noms de chiers plus longs, liens sym-
boliques, droits daccs...), et ventuellement les extensions Joliet utilises par les systmes Windows
95, Windows NT, Windows 2000 et XP (noms de chiers longs Microsoft). Le prix payer pour cette
amlioration est la perte de quelques centaines de kilo octets, ce qui est drisoire tant donn le gain
en portabilit. La ligne de commande utiliser pour crer une image disque est la suivante :
mkisofs [-J][-r | -R][-hfs | -apple] [-C dbut,fin [-M disque]] \
[-V "nom"] -o image rpertoires
Les options -r ou -R, -J et -hfs ou -apple permettent respectivement dutiliser les extensions
Rock Ridge, Joliet ou HFS (pour les disques devant tre lus sur les Macintosh). Il est possible de faire
des images disque hybrides, qui pourront tre lues sur plusieurs systmes dexploitation diffrents. La
seule contrepartie est la perte de quelques dizaines de kilo-octets, ce qui est drisoire. La distinction
entre loption -r et loption -R est que -r modie les attributs des chiers Unix an que le CD puisse
tre utilis sur un autre ordinateur que celui sur lequel le CD a t cr. En particulier, le propritaire
et le groupe des chiers voient leurs valeurs xes 0. Loption -V permet de xer le nom du volume
dans limage. Il est possible de placer ce nom entre guillemets. Cette fonctionnalit est intressante si
ce nom comprend des espaces.
Il est possible de crer des CD multisessions condition de spcier lemplacement de cette session
lors de la cration de limage disque. Cela se fait avec loption -C de mkisofs. Cette option prend
en paramtre le numro du secteur de dbut et le numro du secteur de n de la session la suite de
laquelle la nouvelle session doit tre crite, spars par des virgules. Si lon veut galement importer
la session prcdente (cest--dire permettre laccs aux donnes des sessions prcdentes comme
si elles taient galement prsentes dans la session crire), il faut utiliser loption -M, laquelle il
faut indiquer le chier spcial de priphrique du lecteur contenant le disque dont la session doit tre
importe.
La dtermination des secteurs de dbut et de n de la session prcdente peut tre difcile, mais
cdrecord est capable dobtenir cette information avec la commande suivante :
cdrecord dev=bus,ID,lun -msinfo
Appel ainsi, cdrecord afche les secteurs de dbut et de n de la dernire session du disque du
lecteur spci par son option dev, directement dans le format attendu par mkisofs.
Loption -o de mkisofs permet de spcier le nom du chier image qui doit tre cr. Les paramtres
suivant loption -o constituent la liste des rpertoires et des chiers qui doivent tre insrs dans le
CD-ROM. Par dfaut, chaque rpertoire ou chier indiqu en paramtre est plac dans le rpertoire
racine du CD-ROM, et larborescence des sous-rpertoires est respecte. Cependant, il est possible
de placer un des rpertoires ou chiers indiqus en paramtre dans un autre rpertoire du CD-ROM,
laide de la syntaxe suivante :
196
Chapitre 8. Conguration du matriel et des priphriques
destination=source
o destination est le rpertoire destination du CD-ROM, et source le rpertoire ou le chier
source ajouter limage disque. De mme, il est possible dexclure certains sous-rpertoires de
limage disque laide de loption -x :
-x rpertoire
Les sous-rpertoires du rpertoire indiqu seront galement supprims de limage disque.
Vous pouvez tester votre image disque en la montant par lintermdiaire du priphrique loopback. Il
faut pour cela que vous ayez activ la gestion de ce priphrique dans la conguration du noyau. La
commande utiliser pour monter ce type de priphrique est lgrement plus complique que pour
les systmes de chiers classiques :
mount -t iso9660 -o ro,loop=/dev/loop0 image /cdrom
o image est le nom de votre chier image tester. Cette commande monte le systme de chiers
de cette image dans le rpertoire /cdrom. La commande umount peut tre utilise pour dmonter ce
systme de chiers, et elle sutilise alors exactement comme pour les autres systmes de chiers.
Lorsque votre image disque est satisfaisante, vous pouvez la graver avec la premire ligne de com-
mande suivante :
cdrecord -v dev=bus,ID,lun speed=n -multi -data image
Vous noterez la prsence de loption -multi, qui permet de demander cdrecord de crer un disque
multisession. Bien entendu, vous pouvez vous passer de cette option si votre disque nest pas multi-
session.
La cration dune image disque ncessite davoir une place disque gale la taille de la session
ajouter, ce qui peut tre contraignant. Sur les systmes sufsamment puissants, il est possible de
crer limage disque et de la graver la vole en crant un tube entre mkisofs et cdrecord. Dans
ce cas, il ne faut pas donner de nom limage disque dans la ligne de commande de mkisofs, et
utiliser loption - dans la ligne de commande de cdrecord pour lui demander de prendre les donnes
sur son entre standard. Malheureusement, cette technique nest pas utilisable facilement pour les
disques multisessions, parce que la lecture des informations de la session prcdente peut se faire en
mme temps que le dbut du gravage. Pour rsoudre ce problme, il faut utiliser loption -waiti
de cdrecord, qui lui demande dattendre larrive des premires donnes dans le tube avant douvrir
le chier spcial de priphrique du graveur. La ligne de commande complte devient alors assez
complexe, comme vous pouvez en juger :
mkisofs -r -M priphrique -C cdrecord dev=bus,ID,lun -msinfo \
fichiers | cdrecord -v dev=bus,ID,lun speed=vitesse -multi -waiti -
Les commandes prsentes ci-dessus ne permettent pas de travailler avec des CD audio. Pour extraire
les donnes audio dun CD, vous devrez utiliser le programme cdda2wav :
cdda2wav [-H] -B nom [-tdbut[+fin]] -O wav -D bus,ID,lun
Loption -H permet dviter la cration des chiers dinformation .inf sur les pistes extraites par cd-
da2wav. Loption -B permet dutiliser le nom nom complt dun numro pour les chiers son crs.
Les pistes seront donc stockes dans des chiers portant les noms nom_01, nom_02, etc. Loption
-t permet dindiquer la piste dbut et la piste fin an de slectionner les pistes dont les donnes
197
Chapitre 8. Conguration du matriel et des priphriques
audio doivent tre extraites. Si la piste de n nest pas prcise, toutes les pistes depuis la piste de
dbut jusqu la dernire piste du CD seront extraites. De mme, si la piste de dbut nest pas prcise,
lextraction commencera partir de la premire piste. Loption -O permet dindiquer le type de chier
de sortie, wav indique ici que les chiers crs seront au format WAV des chiers son de Windows.
Il est galement possible dutiliser le type de chier raw, avec lequel les chiers seront prts tre
gravs tels quels. Enn, loption -D permet de spcier le priphrique SCSI utiliser pour lire les
donnes audio. Ce priphrique est slectionn par le numro du bus SCSI sur lequel il se trouve, son
numro de priphrique dans ce bus et son numro dunit logique.
Le gravage des pistes audio peut tre ralis avec la commande suivante :
cdrecord -dummy -v dev=bus,ID,lun speed=n -nofix -audio piste1.wav \
piste2.wav ...
Loption -nofix permet ici dviter de fermer la session. Elle doit tre utilise si lon dsire rajouter
des pistes audio sur le CD-ROM ultrieurement. Si, en revanche, elle est omise, cdrecord fermera
automatiquement la session aprs lcriture de la dernire piste, et plus aucune donne ne pourra tre
ajoute. La commande suivante vous permettra de xer le disque a posteriori :
cdrecord -dummy -v dev=bus,ID,lun speed=n -fix
Enn, si vous disposez dun graveur de CD rinscriptible, vous pourrez utiliser la commande suivante
pour effacer un CDRW :
cdrecord -dummy -v dev=bus,ID,lun -blank=fast
o bus,ID,lun reprsente toujours le priphrique SCSI utiliser en tant que graveur.
Il est peu probable que vous ayiez utiliser ces commandes directement, car il existe de nombreux
programmes graphique capable de les piloter de manire conviviale (xcdroast, gcombust, cdbakeo-
ven, kreatecd, koncd, etc.). Il est vivement recommand den installer un et de lutiliser. Ils sont
relativement simples demploi et leur utilisation ne devrait pas poser de problme particulier.
8.3. Conguration des cartes lles
Il existe un grand nombre de cartes lles sur le march, dont les plus courantes sont sans doute
les cartes graphique, les cartes son et les cartes rseau. Toutes ces cartes permettent dajouter des
fonctionnalits de manire modulaire une machine, en les enchant dans les emplacements prvus
cet effet sur la carte mre.
Les cartes les plus vielles que lon peut encore rencontrer sont les cartes ISA. La conguration de
ces cartes a toujours t extrmement difcile, en raison des nombreux conits matriels quelles
provoquaient entre elles et avec les ressources de la carte mre. Le standard Plug and Play a t
introduit pour limiter ces problmes par la suite, mais ce nest quavec larrive des cartes PCI que
lon a enn pu commencer brancher nimporte quoi nimporte comment dans un ordinateur (cela
dit, ce nest pas encore la panace parce que lon est toujours oblig dteindre lordinateur...). Enn,
les cartes graphiques ne se connectent plus de nos jours ni sur les ports PCI, ni sur les ports ISA, pour
des raisons de performances et de dbit de donnes. Elles utilisent un port spcial, le port AGP. Cela
198
Chapitre 8. Conguration du matriel et des priphriques
ne pose cependant pas de problme de conguration spcial (du moins si lon se contente dune seule
carte graphique).
Ce chapitre traite de la manire de congurer les cartes ISA et PCI en gnral, et donne des informa-
tions plus dtailles pour chacun des types courants de cartes lles.
8.3.1. Gnralits sur les cartes ISA, Plug And Play et PCI
Larchitecture initiale des PC a trs mal vieilli et souffre actuellement de dfauts majeurs qui nuisent
leur dveloppement. Sans parler des goulots dtranglement sur les diffrents bus systmes qui
ne suivent plus les vitesses des processeurs actuels, la plupart des priphriques sont obligs de se
restreindre des protocoles de communication obsoltes pour conserver une compatibilit ascendante.
Lune des limitations majeurs de cette architecture est le nombre incroyablement restreint de lignes
dinterruption permettant un priphrique de signaler au processeur quil a besoin de lintervention
de son gestionnaire pour poursuivre son travail, et la quasi absence des possibilits daccs directs la
mmoire, qui impose lutilisation du processeur pour raliser de simples transferts de donnes entre
les priphriques et la mmoire.
Ces ressources limites, en plus de pnaliser les performances, posent des problmes vidents
dextensibilit. En effet, qui dit ressource limit dit quil est impossible de connecter plus de
priphriques intelligents que ce que larchitecture matrielle autorise. Linstallation de plusieurs
cartes ISA grant chacune une interruption ou un canal DMA tait rellement un casse-tte il y a
encore peu de temps. Cest pour rsoudre ces problmes de conguration du matriel que le standard
Plug and Play a t dvelopp. Ce standard tablit un protocole de communication matriel
permettant au BIOS de congurer automatiquement les priphriques ISA en vitant les conits sur
les ressources partages (le plus souvent, les lignes dinterruption).
Ce protocole a soulag bien des gens, mais suppose un support spcique de la part du systme
dexploitation, puisque les paramtres matriels de chaque carte Plug and Play ne sont pas xs dun
dmarrage lautre de la machine. Il faut donc que le systme soit ou capable de rcuprer ces
paramtres, ou de refaire la conguration du matriel. Cette deuxime solution est souvent impose
par le fait que bon nombre de BIOS sont bogus et effectuent une mauvaise conguration des cartes
Plug and Play.
Le Plug and Play a t une amlioration sensible, mais na pas rsolu les problmes concernant les
ressources limites des PC. Heureusement, depuis lavnement du bus PCI, ces limitations se sont
estompes. En effet, le bus PCI permet non seulement aux priphriques de sautocongurer et de se
dclarer dans le systme PCI, mais galement de partager une mme ligne dinterruption et de prendre
le contrle du bus mmoire. Ainsi, il ny a virtuellement plus aucune difcult pour installer une carte
PCI dans un ordinateur (si vous avez le choix, prenez systmatiquement des priphriques PCI). Ne
croyez pas pour autant que le bus PCI soit idal, cest loin dtre le cas. En effet, il ne permet pas
lajout et la suppression de cartes chaud (cest--dire lorsque le systme est allum), et fonctionne
dsormais une vitesse bien trop faible compte tenu de la vitesse des processeurs, cartes graphiques
et circuits mmoire. Il est donc appel disparatre sous peu lui-aussi.
Les priphriques PCI sont les plus courants actuellement. Le sous-systme PCI de Linux permet de
les utiliser directement, sans conguration particulire. Les priphriques ISA, en revanche, peuvent
tre plus difciles congurer. Sils ne sont pas Plug and Play, il ny a pas dautre choix que de spci-
er leurs paramtres matriels directement, soit lors de la compilation du noyau, soit laide doptions
de boot lorsque le systme dmarre, soit laide doptions dans le chier /etc/modules.conf si
leur gestionnaire est compil sous forme de module. La premire solution est la plus technique, puis-
quelle ncessite de recongurer et de recompiler le noyau, les deux autres relvent de la conguration
simple.
199
Chapitre 8. Conguration du matriel et des priphriques
Les cartes ISA Plug and Play constituent un cas part car, comme il la t dit ci-dessus, la plupart
des BIOS Plug and Play sont bogus et les initialisent mal. Il est donc ncessaire que le systme les
initialise lui-mme, et dtermine par la mme occasion leur conguration matrielle. En pratique,
il existe deux possibilits pour effectuer ces deux oprations. La premire possibilit est de laisser
le noyau faire tout le travail de conguration des cartes et dallocation des ressources. La deuxime
possibilit est deffectuer la conguration des cartes ISA Plug and Play au niveau applicatif dans les
scripts de dmarrage du systme. Cette solution est relativement technique, et ne doit tre utilise que
lorsquon dsire contrler nement les ressources alloues par les priphriques dans le systme.
Si lon dsire utiliser les fonctionnalits Plug and Play du noyau, il ny a strictement rien faire. Linux
se charge simplement dinitialiser automatiquement les cartes ISAPlug and Play lors du dmarrage du
systme, de leur attribuer les paramtres matriels adquats, et de communiquer ces paramtres aux
gestionnaires de priphriques. Il prendra galement en charge la gestion des conits avec les autres
priphriques, quils soient ISA non Plug and Play ou PCI. Par consquent, vous naurez aucune
conguration spcique effectuer.
Mais Linux fournit galement la possibilit de contrler soi-mme les ressources alloues chaque
priphrique, pour ceux qui veulent avoir la matrise totale de leur matriel ou ceux qui ont une con-
guration tellement spcique quelle ncessite un paramtrage manuel. Dans ce cas, linitialisation
des cartes ISA Plug and Play ne se fera pas lors du dmarrage du noyau, mais plutt ultrieurement.
En gnral, on effectue cette tche dans les scripts dinitialisation du systme, mais ce nest pas une
obligation. Quoi quil en soit, comme lattribution des ressources aux cartes est diffre, les gestion-
naires de priphriques ne peuvent pas tre inclus dans le noyau. Il est donc ncessaire dutiliser les
modules du noyau pour ces gestionnaires. Les paramtres matriels pourront alors tre communiqus
simplement ces gestionnaires lors du chargement des modules, laide doptions dans le chier de
conguration /etc/modules.conf.
La conguration manuelle des cartes ISA Plug and Play se fait classiquement laide des outils
isapnp . Parmi ces outils se trouve le programme isapnp, que lon utilise pour initialiser les cartes
ISA Plug and Play. Cet utilitaire utilise les informations qui se trouvent crite dans le chier de
conguration /etc/isapnp.conf pour dterminer les plages dentre/sortie, les canaux DMA et
les lignes dinterruption utiliser pour chaque carte.
La rdaction manuelle du chier isapnp.conf nest pas une tche aise. Heureusement, cela peut
tre ralis automatiquement, laide dun autre utilitaire nomm pnpdump. Celui-ci afche la liste
des diffrentes possibilits de conguration pour chaque priphrique ISA Plug and Play. Cette liste
est afche exactement sous une forme exploitable par isapnp, ce qui fait quil est trs simple de crer
un chier de conguration correct en faisant une redirection de sa sortie standard dans un chier :
pnpdump > /etc/isapnp.conf
Le chier de conguration ainsi cr contient les diffrentes congurations possibles. Cependant, elles
sont toutes commentes, et aucun priphrique ISA ne sera congur sans intervention supplmen-
taire. Il va donc falloir diter ce chier et retirer les commentaires devant les options de conguration
qui vous intressent. Les lignes de commentaires commencent toutes par un caractre dise (#). Il
suft donc deffacer ce caractre pour les dcommenter. Vous devez choisir les options dcommen-
ter de telle manire quaucun conit dadresse, dinterruption ou de canal DMA nexiste dans votre
systme. Pour chaque priphrique, plusieurs possibilits sont offertes, mais vous ne devez retirer les
commentaires que devant les lignes dune seule de ces possibilits. Les zones dcommenter sont
clairement identies dans le chier isapnp.conf gnr par pnpdump, il vous suft donc deffectuer
le choix de la conguration utiliser. Enn, il ne faut pas oublier de retirer le commentaire devant la
ligne suivante :
200
Chapitre 8. Conguration du matriel et des priphriques
(ACT Y)
la n des diffrentes options de conguration pour chaque carte correctement congure, faute de
quoi elle ne sera pas active lors de lappel isapnp.
En gnral, il est souhaitable dappeler la commande isapnp chaque dmarrage du systme, dans
un des scripts de dmarrage. Vous devrez donc inclure une ligne telle que celle-ci :
/sbin/isapnp /etc/isapnp.conf
dans le chier de dmarrage principal de votre systme. Ce chier peut se trouver dans le rpertoire
/etc/rc.d/ (ou dans /sbin/init.d/ selon la distribution que vous utilisez). La plupart des dis-
tributions permettent de paramtrer lappel cette commande laide dune option de conguration
modiable laide de leur programme de conguration. Consultez la documentation de votre distri-
bution pour plus de dtails ce sujet.
Une fois que vous aurez dtermin la conguration correcte pour vos priphriques dans le chier
/etc/isapnp.conf, vous pourrez charger les modules du noyau grant ces priphriques. Cela
peut ncessiter la modication du chier /etc/modules.conf. An de limiter les risques derreur,
vous devriez procder comme suit :
dterminer le chier spcial de priphrique utilis par les applications pour accder votre
priphrique ;
dterminer le nom du module que le noyau tentera de charger lorsquun programme tentera
dutiliser ce chier spcial de priphrique ;
rechercher la ligne dnissant lalias pour ce nom de module, an de savoir quel est le module qui
sera effectivement charg par modprobe. Vous pouvez galement trouver ce nom dans la docu-
mentation de la conguration du noyau pour le gestionnaire du priphriques que vous congurez,
ou en regardant directement dans le rpertoire dinstallation des modules /lib/modules/ ;
ajouter ventuellement la ligne options module paramtres permettant de spcier les
paramtres de chargement paramtres pour le module module ;
ajouter ventuellement les lignes pre-install , post-install , pre-remove et
post-remove permettant deffectuer des actions complmentaires avant et aprs le chargement
du module, ainsi quavant et aprs son dchargement.
Comme il la t indiqu dans la Section 8.1.2, la dtermination des noms de modules utiliss par le
noyau pour les requtes de chargement automatique nest pas facile. Si vous utilisez le systme de
chiers virtuel /dev/, ce nom est exactement le chemin complet du chier spcial de priphrique.
En revanche, si vous utilisez les chiers spciaux de priphriques classiques, vous aurez sans doute
vous servir du type, du code majeur et du code mineur de ce chier spcial de priphrique. Vous
pourrez obtenir ces informations laide de la commande ls -l chier, o fichier est le nom du
chier spcial de priphrique. Le type de ce chier est indiqu dans le premier caractre des droits
du chiers. Le caractre c indique que le priphrique est un priphrique de type caractre, et le
caractre b indique quil sagit dun priphrique de type bloc. Les numros de codes majeur et
mineur quant eux sont indiqus juste aprs les informations concernant le propritaire et le groupe
du chier, gnralement gaux root ;
Dans tous les cas, il est fortement recommand de lire la documentation du module grant
votre priphrique Plug and Play. Cette documentation est en gnral situe dans le rpertoire
/usr/src/linux/Documentation/.
201
Chapitre 8. Conguration du matriel et des priphriques
Pour tester si les modications que vous avez effectues sont correctes, vous pouvez essayer de char-
ger le module avec la commande suivante :
modprobe module
o module est le nom du module charger. Vous pouvez galement vrier que ce module se charge
bien lorsquune requte sur le chier spcial de priphrique correspondant est effectue, avec par
exemple la commande suivante :
echo Coucou > /dev/priphrique
o priphrique est le chier spcial de priphrique tester. Vous pouvez voir si le module sest
correctement charg en demandant la liste des modules chargs laide de la commande lsmod. Cette
commande vous indique galement ltat de chaque module, ainsi que le nombre de fois quil est
utilis et par qui. Si un module est marqu uninitialized , vous avez de fortes chances de
devoir redmarrer lordinateur et de revoir votre conguration, car un module qui se trouve dans cet
tat est inutilisable et peut parfois mme refuser de se dcharger.
8.3.2. Conguration des cartes son
La plupart des cartes son vendues actuellement sont des cartes PCI, qui se congurent relativement
aisment. Cependant, il existe encore un bon nombre de cartes son ISA, dont la conguration peut
tre plus technique, surtout si elles ne sont pas Plug and Play. De plus, les fonctionnalits fournies
par les gestionnaires de son de Linux varient dans de larges proportions, selon le matriel utilis. En
particulier, toutes les cartes son ne sont pas capables de grer la restitution des chiers MIDI, et celles
qui le grent ncessitent parfois une conguration particulire. Cependant, il est possible dutiliser un
convertisseur logiciel de chiers MIDI en chiers son classiques an de jouer ce type de chier mme
avec une carte son classique.
La premire tape lors de la conguration de votre carte son sera la slection du gestionnaire de
priphriques utiliser dans le programme de conguration du noyau. En ce qui concerne les cartes
son, les options de conguration se trouvent dans le menu Sound . Ce menu permet de choisir
les pilotes utiliser en fonction du matriel install. Ils sont classs en deux catgories : les pilotes
classiques (premire partie des options du menu) et les pilotes OSS (options du sous-menu OSS
sound modules ). OSS ( Open Sound System ) est une spcication dinterface de programmation
permettant laccs aux cartes son. Cette interface est en passe de devenir le standard dans le monde
Unix. Cest un produit commercial, mais linterface en soi est libre de droits et une implmentation
libre en est fournie dans le noyau de Linux. Vous devez ici choisir le gestionnaire de priphriques
qui convient le mieux votre matriel. Si vous avez le choix entre les pilotes classiques et les pilotes
OSS, choisissez les pilotes OSS car ils sont plus courants et vous naurez aucun problme utiliser
votre carte son avec la plupart des logiciels.
Lerreur la plus classique que lon peut faire ici est de supposer que lon possde une carte compa-
tible Sound Blaster alors que ce nen est pas une. Je tiens prciser que quasiment aucune carte dite
compatible sous Windows ne lest sous Linux. La compatibilit sous Linux, cest le fait davoir
quasiment la mme lectronique ou du moins les mmes interfaces au niveau matriel. Sous Windows,
la compatibilit nexiste quau niveau des interfaces fournies par le pilote de la carte son. Par cons-
quent, il vous faut savoir exactement de quel nature est votre carte son, et non ce que vous avez retenu
des arguments commerciaux du fabricant. Notez en particulier que certaines cartes Sound Blaster ne
sont pas compatibles Sound Blaster (Creative Labs est renomm en ce qui concerne les incompati-
bilits entre les diffrents modles de cartes son). Cest notamment le cas pour les cartes sons SB64
PCI et SB128 PCI, qui sont en ralit des cartes son ESS1370 ou ESS1371, et dont llectronique est
202
Chapitre 8. Conguration du matriel et des priphriques
fabrique par la socit Ensoniq (cette socit a t rachete par Creative Labs, qui vend ces cartes
en sappuyant sur son image de marque et qui sme ainsi la confusion sur le march). En conclusion,
si vous ne voulez pas essayer plusieurs pilotes et recompiler le noyau jusqu ce que vous trouviez
le bon, renseignez-vous bien sur la nature de votre carte son (si possible avant de lacheter, au moins
an de savoir exactement ce que vous aurez). Vous pouvez galement taper la commande lspci an
de voir les priphriques rellement prsents sur le bus PCI. La commande systme dmesg peut ga-
lement vous tre utile. Elle permet de rafcher la liste des messages gnrs par le noyau lors de son
amorage.
Lorsque vous aurez choisi le gestionnaire de priphriques adquat, vous aurez le choix entre le
compiler lintrieur du noyau (en choisissant loption Y) ou le compiler sous forme de module (en
choisissant loption M). En pratique, il est plus simple de compiler les gestionnaires de priphriques
lintrieur du noyau pour les cartes PCI et les cartes ISA Plug and Play. En effet, Linux attribuera
automatiquement les lignes dinterruptions, les ports dentre/sortie et les canaux daccs direct
la mmoire pour ce type de matriel. Cette conguration nest donc pas faire, et votre carte son
fonctionnera immdiatement.
Cest gnralement galement le bon choix pour les vielles cartes son ISA qui ne sont pas Plug and
Play. En effet, pour ces cartes sons, la conguration logicielle est trs simple, puisquon ne peut pas
les congurer du tout. Bien entendu, il faut que vous ayez rsolu manuellement les conits possibles
de matriel de votre ordinateur, mais cela ne concerne pas Linux. Pour ces cartes, il faut bien entendu
indiquer au noyau les paramtres matriels (IRQ, DMA et ports dentre/sortie) lors de la congura-
tion.
Il se peut toutefois que vous ne puissiez pas spcier ces paramtres matriels dans les menus de
conguration de Linux. Bien quen thorie il soit possible de modier les chiers sources de Linux
directement pour indiquer ces paramtres, ce nest pas la porte du commun des mortels. Par cons-
quent, on utilisera les modules du noyau, et les options matrielles seront indiques dans le chier
de conguration /etc/modules.conf. Notez que cest galement de cette manire que vous devrez
procder si vous dsirez congurer vous-mme lallocation des ressources pour les cartes son ISA
Plug and Play, ou, autrement dit, si vous prfrez utiliser loutil isapnp au lieu des fonctionnalits
Plug and Play du noyau.
Ces oprations vous permettront de faire fonctionner votre carte son pour toutes les oprations de base,
savoir la lecture et lenregistrement de chiers son, le rglage du volume sonore et ventuellement la
lecture des CD audio par lintermdiaire de votre carte son (si, bien entendu, vous avez reli la sortie
audio de votre lecteur de CD lentre auxiliaire de votre carte son). Vous ne pourrez cependant pas
lire les chiers MIDI sans raliser les oprations dcrites ci-dessous.
Les chiers MIDI sont des chiers ne contenant que les partitions des morceaux enregistrs. Ils ne
contiennent pas les donnes audio numriques comme cest le cas pour les chiers son classiques ou
les pistes de CD audio. Cela explique leur taille rduite, mais pose un problme pour leur restitution.
En effet, la lecture dun chier MIDI suppose que votre carte son dispose dun jeu de sons numriss
dans sa mmoire an de pouvoir reconstituer le signal sonore partir des informations du chier
MIDI. Ces sons sont couramment appels des patches , et ils peuvent tre enregistrs soit en dur
dans la mmoire de la carte son, soit chargs lors de son initialisation. Il va de soi que certaines cartes
son ne disposent pas des fonctionnalits ncessaires la lecture des chiers MIDI. Dans ce cas, il
faut utiliser un programme externe capable de synthtiser le son partir de patches enregistrs sur le
disque dur et denvoyer les donnes audio ainsi cres la carte son pour la lecture.
Pour les cartes son qui ne disposent pas des patches en mmoire morte, il est ncessaire dutiliser
un programme an de les charger dans la mmoire de la carte. Il va de soi que ce programme est
spcique la carte son et doit tre install. Par exemple, pour les cartes Sound Blaster AWE, ce
programme se nomme sfxload. Ce programme peut tre trouv soit sur le site de Creative Labs
(http://www.opensource.creative.com/), soit http://members.tripod.de/iwai/awedrv.html. Vous trou-
203
Chapitre 8. Conguration du matriel et des priphriques
verez galement les chiers de patches utilisables avec les cartes son AWE sur ce site. Vous pouvez
utiliser le chier de dnition des patches de Creative, que vous trouverez normalement soit sur une
installation de Windows avec une carte son AWE, soit sur vos CD dinstallation, soit sur Internet. Le
chier fourni par Creative se nomme synthgm.sbk.
Pour charger les patches dans la mmoire de la carte, il suft dutiliser la commande suivante :
sfxload /usr/lib/synthgm.sbk
(en supposant que le chier de patches soit plac dans le rpertoire /usr/lib/). Vous pourrez placer
cette commande dans les scripts de dmarrage de votre systme ou dans une option de chargement
du module awe_wave qui gre la lecture des chiers midi. Vous trouverez ci-dessous un exemple
doptions du chier /etc/conf.modules permettant le chargement correct des modules dune carte
son Sound Blaster AWE :
# Chargement des modules de son :
alias char-major-14 sb
options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
options adlib_card io=0x388
# Chargement automatique du module de lecture des fichiers MIDI :
post-install sb /sbin/modprobe -k midi
alias midi awe_wave
# Chargement des patches en mmoire :
post-install awe_wave /usr/local/bin/sfxload /usr/lib/synthgm.sbk
Pour les cartes son ne disposant pas de la possibilit de lire les chiers MIDI, il ne reste que la solution
de lmulation logicielle. Vous pourrez dans ce cas recourir au programme nomm Timidity .
Timidity est un programme de lecture de chiers MIDI trs complet, paramtrable et capable dutiliser
des banques de son externes varies. De plus, le moteur de Timidity est utilis par de nombreux autres
programmes, en particulier par le lecteur KMidi de KDE.
Lauteur originel de Timidity ne le maintient plus. Cependant, dautres programmeurs ont pris le re-
lais et lont amlior pour en faire la version Timidity++. Cette dernire version peut tre trouve
sur Internet sur le site de Timidity (http://www.goice.co.jp/member/mo/timidity/). Larchive que vous
rcuprerez ne contient pas forcment le programme : il peut ne sagir que des chiers sources per-
mettant de le gnrer. Les notions de chiers sources et de compilation de programmes excutables
seront expliques en dtail dans le chapitre suivant. En attendant, si vous rcuprez les sources, vous
pourrez suivre les indications donnes ci-dessous pour compiler et installer Timidity.
Timidity peut utiliser diffrentes interfaces utilisateur, accessibles via diffrentes bibliothques. Il est
recommand dutiliser linterface Tcl/Tk, car cette interface fonctionne aussi bien sous XWindow
quen mode texte. Pour cela, il suft de congurer les sources avec la ligne de commande suivante :
./configure --enable-dynamic --enable-tcltk=dynamic
Une fois cela fait, vous pourrez gnrer lexcutable avec la commande suivante :
make
et linstaller avec la commande :
204
Chapitre 8. Conguration du matriel et des priphriques
make install
Cela installera Timidity dans le rpertoire /usr/local/bin/.
La deuxime tape est bien entendu dinstaller les chiers de patches. Timidity utilise des
patches pour les cartes son Gravis Ultrasound. Vous pourrez trouver des archives contenant
de tels patches sur Internet trs facilement. En particulier, la collection de patches EAWPATS
(http://www.stardate.bc.ca/eawpatches/html/default.htm) ralise par Eric A. Welsh est trs
complte, quoiquun peu grosse pour un tlchargement. Cette collection a de plus lavantage dtre
prcongure pour lemploi avec Timidity.
Lorsque vous aurez install les chiers de patches, vous devrez indiquer Timidity leur emplace-
ment dans le systme de chiers. Cette information doit tre stocke dans le chier de conguration
timidity.cfg du rpertoire /usr/local/share/timidity/. Vous pourrez vous inspirer du -
chier fourni avec la collection de patches EAWPATS. Cependant, vous aurez modier les chemins
indiqus dans ce chier, car il a t crit pour la version Windows de Timidity. Le premier rpertoire
indiquer est celui des bibliothques. Il faut ici simplement remplacer la ligne dir c:\timidity
par la ligne dir /usr/local/lib/timidity . Notez que cette ligne est facultative et peut
tre commente si vous navez pas dplac ce rpertoire. Le deuxime rpertoire est plus important,
puisque cest le rpertoire dinstallation des patches. Il sagit cette fois de remplacer la ligne dir
c:\eawpats par la ligne dir rpertoire , o rpertoire est le rpertoire o vous avez
extrait les chiers patches.
Une fois que vous aurez termin ces modications, vous pourrez lire un chier MIDI simplement en
utilisant la ligne de commande suivante :
timidity fichier
o fichier est le nom du chier MIDI lire. Si vous dsirez utiliser linterface graphique de Timi-
dity, vous navez qu ajouter loption -ik la ligne de commande prcdente.
Linstallation de KMidi ne pose pas de problme particulier, puisquil est fourni avec KDE et que
KDE est normalement inclus dans toute bonne distribution. La seule opration que vous ayez faire
est simplement de modier le chier de conguration de KMidi pour lui indiquer lemplacement des
chiers de patches. Or comme KMidi est bas sur les sources de Timidity, il utilise le mme chier
de conguration timidity.cfg que Timidity. Ce chier est normalement situ dans le rpertoire
/base/kde/share/apps/kmidi/config/, o base reprsente le rpertoire de base dinstallation
de KDE. Vous naurez donc qu rpter les oprations faites sur le chier de conguration de Timi-
dity avec le chier de conguration de KMidi.
8.3.3. Installation dune carte graphique 3D
De nos jours, toutes les cartes graphiques disposent dune acclration matrielle non seulement pour
les oprations graphiques en 2D, mais galement pour le calcul de scnes en 3D. Ce dveloppement
des cartes 3D a t principalement pouss pour les jeux, mais ces fonctionnalits sont galement trs
utiles pour les applications de modlisation et de conception.
La manire dont les oprations graphiques en 3D sont ralises dpend videmment du modle de
carte graphique utilise, car il nexiste pas de standard au niveau matriel. Comme il est impen-
sable que les applications qui dsirent utiliser les fonctionnalits 3D des ordinateurs modernes aient
prendre en compte le type de carte utilise, des interface logicielles standards ont t dnies.
205
Chapitre 8. Conguration du matriel et des priphriques
De toutes ces interfaces, Linux nen gre quune seule : OpenGL. Cette interface a t dnie par
Silicon Graphics pour ses stations de travail haut-de-gamme et sest impose comme tant la norme
en la matire pour ce qui est de la 3D. Cette interface a lavantage dtre ouverte et disponible sur la
plupart des systmes, quils soient de type Unix ou non.
La prise en charge de linterface OpenGL est ralise en deux endroits sous Linux. La partie principale
rside dans le serveur X qui, comme nous lavons dj signal, nest rien dautre que le programme
fournissant les services graphiques aux autres applications sous Unix. Cette partie est implmente
par une extension de linterface de programmation XWindow, que lon nomme tout simplement GLX.
Cependant, le serveur X ne peut pas tout faire lui tout seul car, pour des raisons de performances, il
lui faut accder directement au matriel lors du rendu de scnes 3D. Il sappuie donc pour cela sur un
module du noyau, dont le but est de contrler les accs au ressources matrielles et de garantir ainsi
la stabilit globale du systme.
La conguration des fonctionnalits 3D des cartes graphiques sous Linux ncessite donc dintervenir
la fois dans le noyau et au niveau du serveur X. Pour ce qui est du noyau, il faut tout dabord sassurer
que les fonctionnalits daccs direct au matriel sont bien supportes. Ces fonctionnalits sont cou-
ramment appeles DRI , ce qui est labrviation de langlais Direct Rendering Infrastructure .
Pour activer les fonctionnalits DRI, vous devrez, dans la conguration du noyau, valider loption
Direct Rendering Manager du menu Character devices , ainsi que le type de carte graphique
utilise (3Dfx, 3dlabs, ATI Rage 128 ou ATI Radeon, chipset i810 ou Matrox G200/G400).
Note : Les fonctionnalits 3D des cartes graphiques bases sur les puces NVidia ne sont pas
supportes directement par XFree86 et par le noyau. En revanche, NVidia fournit un pilote pour
Linux pour ces cartes, qui, bien quil nutilise pas DRI, dispose galement dun module du noyau
et dun module pour XFree86.
Quelle que soit votre carte graphique, vous aurez galement sans doute intrt activer le support du
bus AGP dans le noyau, si bien sr votre carte graphique est une carte AGP. Pour cela, il suft dactiver
loption /dev/agpgart (AGP support) dans le menu Character devices de la conguration du
noyau, ainsi que le type de chipset utilis par votre carte mre.
Une fois la conguration du noyau faite, vous pourrez le recompiler et linstaller. La manire de
procder a t dcrite en dtail dans la Section 7.3.
Vous devrez galement vous assurer que le chier spcial de priphrique /dev/agpgart est bien
prsent dans le rpertoire /dev/. Son code majeur est 10, et son code mineur est 175. De mme, si
vous avez compil les options prcdentes sous la forme de modules du noyau, assurez-vous quils
sont bien rfrencs dans le chier modules.conf.
La suite des oprations se passe alors au niveau de la conguration du serveur X de XFree86.
Lactivation du support de lAGP et dOpenGL se fait simplement en rajoutant deux options dans
le chier de conguration /etc/X11/XF86Config. Vous devez trouver la section Modules et
lui ajouter les deux lignes suivantes :
Section "Module"
.
.
.
Load "dri"
Load "glx"
.
.
.
EndSection
Vous trouverez de plus amples renseignements sur la manire de procder dans le Chapitre 10.
206
Chapitre 8. Conguration du matriel et des priphriques
Note : Pour le pilote fourni par NVidia pour XFree86, il nest pas ncessaire de demander le
chargement du module DRI, car il ne lutilise pas.
Il est suppos ici que le serveur X utilis correspond bien la carte graphique et dispose des
fonctionnalits 3D. Si ce nest pas le cas, vous devrez sans doute rinstaller XFree86.
Les programmes utilisant OpenGL utilisent souvent une bibliothque complmentaire nomme
GLUT. Cette bibliothque est fournie avec la couche dmulation logicielle dOpenGL MESA. Bien
que MESA soit distribue en standard avec XFree86, la bibliothque GLUT nest disponible que
dans les programmes dexemples de MESA. Vous devrez donc rinstaller MESA compltement
si votre distribution ne fournit pas la bibliothque GLUT avec XFree86.
8.3.4. Installation dune carte dacquisition vido
Linux fournit toutes les fonctionnalits ncessaires la manipulation des ux de donnes vido par
lintermdiaire dune interface de programmation nomme video4linux (ce qui se lit Video for
Linux ). Linux est capable de grer la plupart des cartes dacquisition TV du march et quelques-
unes des cartes dacquisition vido. Comme dhabitude, seuls les constructeurs de matriel qui ont
accept de jouer le jeu de fournir les informations ncessaires la programmation de gestionnaires de
priphriques libres voient leur matriel support sous Linux. Par consquent, il est encore une fois
ncessaire de bien se renseigner sur la nature du produit et la politique du fabricant lorsquon achte
une carte dacquisition TV.
En pratique, quasiment toutes les cartes dacquisition TV utilisent le circuit intgr Bt848 ou un de ses
drivs, et Linux sait les grer sans problmes. Les cartes dacquisition et de montage vido utilisent
dautres circuits plus puissants, dont les spcications sont gnralement non disponibles. Seule la
conguration des cartes TV sera donc dcrite ci-dessous.
Les applications, pour accder aux priphriques vido, utilisent lun des chiers spciaux de pri-
phrique /dev/video*. Ces chiers sont des chiers de type caractre, dont le code majeur vaut 81.
Le code mineur est utilis pour diffrencier les diffrents priphriques installs sur votre systme. En
gnral, il existe un lien symbolique /dev/video sur lun de ces chiers spciaux, qui sera utilis
pour accder au priphrique vido par dfaut. Normalement, tous ces chiers sont installs dofce
dans le rpertoire /dev/ par les distributions, et vous naurez pas les crer vous-mme.
Le support de la vido sous Linux passe bien entendu par la conguration du noyau. Cette fois, il
nest pas certain du tout que le noyau fourni avec votre distribution supporte les cartes dacquisition
TV, aussi aurez-vous peut-tre recompiler vous-mme votre noyau. La manire de procder a t
dcrite en dtail dans la Section 7.3.
Sachez toutefois que les options valider dans la conguration du noyau se trouvent dans le menu
Multimedia devices . Vous devrez activer loption Video For Linux sous la forme de module,
car vous aurez sans doute communiquer des paramtres aux modules vido an de leur spcier
le type de carte utilis et le type de tuner. Le module qui sera cr portera le nom videodev, cest
celui qui se chargera de rpondre aux requtes du client sur les chiers spciaux de priphrique
/dev/video*. Lorsque vous aurez activ la fonctionnalit de vido pour Linux, vous aurez le choix
des pilotes de cartes vido dans le sous-menu Video adapters .
Note : La conguration des cartes bases sur la puce Bt848 (option de menu BT848 Video For
Linux ) nest accessible que si vous avez galement activ loption I2C bit-banging interfaces
du menu I2C support . De mme, le module prenant en charge les puces du type Bt848 ne
prend pas en charge la gestion du son. En revanche, vous pourrez trouver le gestionnaire du son
de ces cartes avec les autres gestionnaires de cartes son, dans le menu Sound . Loption que
vous devez activer est loption TV card (bt848) mixer support .
207
Chapitre 8. Conguration du matriel et des priphriques
Une fois le noyau recompil et les nouveaux modules installs, il faut modier le chier de congu-
ration /etc/modules.conf. Bien que Linux soit parfaitement capable de dterminer les ressources
requises par les cartes vido, il est rare que le matriel soit correctement identi par les gestionnaires
de priphriques vido. En effet, ces gestionnaires se basent plus sur les composants courants permet-
tant de faire lacquisition vido que sur les modles de cartes de chaque fabricant. La palme revient
sans doute au gestionnaire pour les cartes bases sur les puces Bt848 et ses drives, puisquil est
capable de faire fonctionner toutes les cartes vido de tous les fabricants qui utilisent cette puce. Par
consquent, il faut indiquer le modle de la carte au gestionnaire, laide des options des modules
vido dans le chier modules.conf.
En fait, le gestionnaire pour les cartes bases sur la puce Bt848 est constitu de deux modules. Le
premier, nomm bttv, gre la puce Bt848 elle-mme et prend en charge les ux vido et lincrustation
vido dans la mmoire de la carte graphique. Le deuxime module quant lui soccupe de la gestion
de la puce du tuner, qui effectue la recherche des chanes et le dcodage des signaux vido. Pour ces
deux modules, il est indispensable de prciser quelle type de carte TV est install et quel tuner cette
carte utilise. Il existe de nombreuses variantes, selon les modles et les diffrents fabricants prsents
sur le march.
Le type de carte peut tre communiqu au module bttv laide de loption card. Cette
option peut prendre comme valeur un numro identiant le modle de la carte. Les
valeurs actuellement supportes sont indiques dans le chier CARDLIST du rpertoire
/usr/src/linux/Documentation/video4linux/bttv/.
Le module de gestion du tuner utilise loption type pour dterminer le type de tuner utilis. Cette
option prend, elle aussi, une valeur numrique indiquant la nature du tuner utilis. Les valeurs sup-
portes sont galement donnes dans le chier CARDLIST. En pratique, il est fort probable que vous
utilisiez le type 3, qui correspond au tuner Philips SECAM, car la France utilise le standard SECAM
pour les missions TV.
Ainsi, si vous disposez dune carte MIRO PCTV (carte de type 1) base sur le tuner Philips SECAM,
vous devriez avoir les lignes suivantes dans votre chier modules.conf :
# Lien entre les fichiers spciaux de priphriques et les modules du noyau :
alias char-major-81 videodev
alias char-major-81-0 bttv
# Options du module de gestion du Bt848 :
options bttv card=1
# Option du module de gestion du tuner :
options tuner type=3
Vous devrez bien entendu adapter ces lignes selon votre propre conguration.
Note : Si vous avez compil les fonctionnalits de linterface I2C sous forme de module (option
de menu I2C bit-banging interfaces ), vous aurez galement ajouter ces lignes dans votre
chier de conguration modules.conf :
# Lien pour les fonctionnalits I2C :
alias char-major-89 i2c-dev
# Activation de lagorithme bit-banging :
options i2c-algo-bit bit_test=1
208
Chapitre 8. Conguration du matriel et des priphriques
Pour information, I2C est un protocole de communication entre micro-contrleurs, que la plupart
des cartes mres sont capables de grer. Cette fonctionnalit nest ncessaire que pour les
cartes bases sur la puce Bt848.
Lorsque vous aurez ni vos modications dans le chier de conguration modules.conf, noubliez
pas dappeler la commande depmod -a pour remettre jour les dpendances entre les modules du
noyau. Si tout se passe bien, vous pourrez utiliser les programmes de lecture TV, comme KWinTV
par exemple si vous utilisez lenvironnement de bureau KDE.
Note : Vous pouvez rencontrer quelques problmes lors de la conguration de votre carte TV.
Gnralement, si vous nobtenez aucune image, cest que vous vous tes tromp de tuner.
Revoyez dans ce cas loption type du module tuner. Si vous obtenez bien une image, mais
pas de son, cest sans doute que vous vous tes tromp dans le type de carte, ou que vous avez
oubli dinclure le support du son pour les cartes base de Bt848. On notera que, comme pour
les cartes son, seule la compatibilit matrielle importe. Par exemple, les cartes Studio PCTV
de Pinacle vendues en France sont en ralit des cartes Miro PCTV et ne sont pas reconnues
comme des cartes Studio PCTV par Linux... Si vous avez des problmes de son, vous devrez
donc revoir la conguration du noyau ou modier la valeur passe loption card du module
bttv. Dans tous les cas, nhsitez pas utiliser la commande lspci, qui permet de visualiser les
informations du bus PCI, et la commande dmesg, qui permet de voir la liste des messages du
noyau.
Vous pouvez galement avoir quelques problmes de droits sur les chiers spciaux de p-
riphriques /dev/videoX. Le symptme classique est dans ce cas que tout fonctionne parfaite-
ment sous le compte root, mais pas sous les comptes utilisateurs. Dans ce cas, on pourra r-
soudre ces problmes en crant un groupe dutilisateurs video, auquel appartiendront tous les
utilisateurs ayant le droit dutiliser la carte dacquisition TV, et de changer le groupe des chiers
spciaux de priphriques /dev/videoX.
Enn, lutilisation des cartes dacquisition TV ncessite dactiver les fonctionnalits DGA du
serveur X. Ces fonctionnalits permettent aux programmes daccder directement la mmoire
vido, et donc de faire lincrustation de limage dcode par la carte TV dans la surface
dafchage dun cran. La manire dactiver les fonctionnalits DGA sera prcise dans le
chapitre traitant de la conguration du serveur X.
8.3.5. Conguration des cartes rseau
Le support des cartes rseau est trs complet sous Linux et la prise en charge dune nouvelle carte
revient souvent simplement ajouter le gestionnaire de priphriques de cette carte dans la congu-
ration du noyau. La plupart des cartes rseau sont des cartes Ethernet compatibles soit avec les cartes
NE2000, soit avec les cartes 3COM, aussi suft-il en gnral dactiver le gestionnaire de priphriques
pour lune de ces cartes pour quelle soit utilisable.
La conguration des gestionnaires de priphriques se fait dans le menu Network device support
de la conguration du noyau. Il faut activer loption Network device support en premier
lieu, puis slectionner le gestionnaire de priphriques appropri dans le sous-menu Ethernet
(10 or 100Mbit) . Ce menu prsente en premier lieu les gestionnaires de priphriques pour les
cartes ISA, et regroupe les gestionnaires de toutes les autres cartes dans les sous-options de loption
EISA, VLB, PCI and on board controllers (NEW) . Vous aurez donc certainement
activer cette option et la sous-option correspondante au gestionnaire de priphriques de votre carte
rseau. Vous pouvez activer ces options sous la forme de module du noyau ou non, le plus simple
209
Chapitre 8. Conguration du matriel et des priphriques
tant ici de ne pas utiliser les modules an davoir viter de complter le chier de conguration
/etc/modules.conf.
La compilation du noyau elle-mme a t dcrite en dtail dans la Section 7.3 et ne sera donc pas
reprise plus en dtail ici. Remarquez galement que la prise en charge de la carte rseau par un
gestionnaire de priphriques ne suft en aucun cas lutilisation de lordinateur en rseau. En effet,
il faut galement congurer lensemble des paramtres rseau du systme, ce qui sera dcrit dans le
Chapitre 9. Le nombre des fonctionnalits rseau de Linux interdit de les dcrire toutes ici, veuillez
vous rfrer ce chapitre pour plus de dtails.
8.4. Conguration des ports de communication
Les ports de communication sont les seuls moyens de communication de lordinateur avec dautres
appareils, et sont donc essentiels au mme titre que les rseaux.
Historiquement, les plus vieux ports de communication utiliss sont sans doute les ports srie, qui
permettent de connecter une multitude de priphriques en raison de sa grande simplicit. Les ports
parallles sont galement courants, et sont encore souvent utiliss pour connecter les imprimantes.
Cependant, ces ports souffrent de dfauts indniables, dont lun des principaux est sans doute le
faible dbit de donnes quils autorisent. Ils ne peuvent donc pas tre utiliss pour les applications les
plus exigeantes. Cest pour cela que les ports USB (abrviation de langlais Universal Serial Bus )
et IEEE1394 (alias FireWire ) ont t invents.
Cette section prsente la manire de congurer les diffrents ports de communication actuellement
utiliss, savoir le port parallle, les ports srie standards, et enn les ports USB et IEEE1394.
8.4.1. Conguration du port parallle
La conguration du port parallle sous Linux est relativement automatique. Il suft en effet, dans
le programme de conguration du noyau, dactiver les options Parallel port support ,
PC-style hardware , Use FIFO/DMA if available (EXPERIMENTAL) et IEEE
1284 transfer modes du menu Parallel port support . Si vous dsirez connecter une
imprimante sur votre port parallle, ce qui est gnralement le cas, il vous faudra galement activer
loption Parallel printer support du menu Character devices . De mme, si vous
dsirez connecter un disque dur, un lecteur de CD-ROM ou un lecteur de bande sur votre port
parallle, vous devrez activer loption Parallel port IDE device support du menu
Block devices , ainsi quau moins une des sous-options pour le type de priphrique utiliser et
un des modules de prise en charge des protocole de communication sur port parallle.
Note : Le choix de ces options suppose que vous utilisiez un ordinateur de type PC ou dont la
gestion du port parallle se fait de la mme manire que sur un PC.
Il est recommand dactiver ces fonctionnalits sous forme de module du noyau et non au sein du
noyau lui-mme. En effet, le gestionnaire de ports parallles utilise, par dfaut, une interrogation p-
riodique pour dterminer ltat des ports. Cela consomme inutilement des ressources de calcul, parce
que lon peut le congurer pour utiliser une interruption matrielle et soulager ainsi le processeur de
cette tche. De plus, cela permet de charger les modules de gestion du port parallle la demande, et
de congurer celui-ci pour les diffrentes utilisations possibles : communication avec une imprimante
parallle, avec un lecteur ZIP, ou encore avec un lecteur de CD IDE, etc.
210
Chapitre 8. Conguration du matriel et des priphriques
An dutiliser une interruption matrielle pour le port parallle, il est ncessaire de spcier expli-
citement la ligne de cette interruption. Cela peut se faire avec loption irq du module prenant en
charge le port parallle. Sur les ordinateurs de type PC, le nom de ce module est parport_pc ,
mais, comme on la vu dans la Section 8.1.2, le noyau demande toujours le chargement du module
parport_lowlevel pour des raisons de portabilit. Il faut donc dnir un alias dans le chier
de conguration /etc/modules.conf.
Outre la ligne dinterruption utiliser, le module parport_pc peut prendre en paramtre une autre
option permettant dindiquer le port dentre / sortie quil doit utiliser pour accder au port parallle.
Cette option est loption io. En gnral, le port utilis est le port numro 378h et la ligne dinterruption
est souvent la 7. Les options suivantes doivent donc tre dnies dans le cher module.conf pour
obtenir un fonctionnement optimal du port parallle sous Linux :
alias parport_lowlevel parport_pc
option parport_pc io=0x378 irq=7
Dautre options pourront tre dnies dans le chier de conguration modules.conf pour prendre
en charge les priphriques de type bloc connects sur port parallle. Cela est inutile pour les impri-
mantes connectes sur le port parallle.
8.4.2. Conguration des ports srie
Les ports srie fournis en standard sur les cartes mres sont dtects et congurs automatique-
ment par le noyau lorsque lordinateur dmarre. Pour que cela fonctionne, il suft que loption
Standard/generic (8250/16550 and compatible UARTs) serial support du menu
Character devices soit active.
Cela dit, il se peut que votre ordinateur contienne un port srie non standard, ou que vous ayez
slectionner des options spciques pour votre matriel. Il vous faudra, dans ce cas, activer les options
complmentaires relatives aux ports srie dans le menu Character devices .
Le noyau nest, en gnral, capable dinitialiser que les ports srie standards intgrs dans les cartes
mres (cest--dire les ports COM1 COM4), auxquels on accde, sous Linux, par lintermdiaire
des chiers spciaux de priphriques /dev/ttyS0 /dev/ttyS3. Pour les autres ports srie, il peut
tre ncessaire de les initialiser manuellement, par exemple dans un chier de conguration lanc au
dmarrage du systme.
Cette initialisation se fait laide de la commande setserial, dont la syntaxe simplie est la suivante :
setserial fichier [uart type] [port adresse] [irq ligne]
o fichier est le chier spcial de priphrique permettant daccder au port srie initialiser,
type est le type de port srie utilis, adresse est son adresse dentre / sortie et ligne est la ligne
dinterruption quil utilise. La commande setserial dispose de nombreuses autres options. Je vous
invite en lire la page de manuel pour les dcouvrir.
Une fois le port srie correctement initialis, il est possible de xer les paramtres de la ligne de com-
munication avec la commande stty. Comme on la dj vu prcdemment, cette commande permet de
xer tous les paramtres des lignes de communication des terminaux et non seulement les paramtres
des lignes srie, et elle dispose donc dun grand nombre doptions. Nous nallons nous intresser ici
quaux options utiliss pour les lignes srie. La page de manuel de stty pourra tre consulte pour
plus de dtails.
La syntaxe utiliser pour lire les paramtres de communication dune ligne srie est la suivante :
211
Chapitre 8. Conguration du matriel et des priphriques
stty -a -F priphrique
o priphrique est le chier spcial de priphrique de la ligne. Si vous excutez cette commande,
vous constaterez quun grand nombre dinformation est donn. Les informations les plus utiles sont
sans doute speed, qui donne la vitesse de la ligne srie, csN, qui donne le nombre N de bits de donnes
par caractre, [-]parenb, qui indique si un bit de parit est utilis ou non (auquel cas le caractre
- est prsent), [-]parodd, qui indique le type de parit utilise (paire ou impaire selon la prsence
ou labsence du caractre -), et [-]cstopb, qui indique le nombre de bits de stop utiliss (un ou
deux selon la prsence ou labsence du caractre -). Loption [-]crtscts indique si le contrle de
ux matriel est utilis ou non. titre dexemple, voici une sortie typique de la commande stty sur le
premier port srie :
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <indfini>;
eol2 = <indfini>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl
ixon -ixoff -iuclc -ixany -imaxbel opost -olcuc -ocrnl
onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop
-echoprt echoctl echoke
Les mmes options peuvent tre utilses pour xer les paramtres de la ligne de communication. La
ligne de commande utiliser est alors la suivante :
stty -F priphrique options
Il existe une diffrence cependant : le paramtre permettant de xer la vitesse de la ligne est dcompo-
s en deux options ispeed pour le ux de donnes entrant et ospeed pour le ux de donnes sortant.
On peut xer la vitesse de la ligne avec loption ispeed. Par exemple, pour faire passer la ligne de
communication du deuxime port srie 115200 bauds, 7 bits de donnes, un bit de stop et une parit
paire, il faut utiliser la ligne de commande suivante :
stty -F /dev/ttyS1 ispeed 115200 cs7 -cstopb parenb -parodd
Il est important de bien congurer les ports srie avec les mmes paramtres de ligne que ceux utiliss
par les priphriques qui y sont connects pour que la communication se fasse correctement.
8.4.3. Installation des priphriques USB
Bien quayant eu quelques difcults ses dbuts, le port USB est dsormais en pleine expansion. Il
sagit dune extension des ports srie classiques, qui offre les avantages suivants :
possibilit de connecter jusqu 127 priphriques sur un mme port, selon une structure
arborescente ;
bande passante accrue jusqu 12 Mbits/s thoriques ;
212
Chapitre 8. Conguration du matriel et des priphriques
capacit de connexion des priphriques chaud et dtection automatique par le systme
dexploitation ;
possibilit dalimentation des priphriques par le bus lui-mme, vitant ainsi davoir des cbles
supplmentaires pour les priphriques consommant peu dlectricit.
Tous ces avantages font que le bus USB est appel remplacer les ports srie que lon connat, et
que lon nutilise plus dsormais que pour les modems, les vieilles souris srie et quelques appareils
extrieurs. Notez que la simplicit du port srie fera quil restera encore prsents sur bon nombre
dappareils pour plusieurs annes encore, mais les priphriques informatiques risquent de sen d-
tourner de plus en plus.
La gestion de lUSB sous Linux se fait au niveau du noyau en ce qui concerne les gestionnaires de p-
riphriques, et au niveau applicatif pour la dtection et la conguration dynamique des priphriques
branchs chaud. Linux est capable dutiliser la plupart des priphriques USB existant actuellement
sur le march. La conguration chaud des priphriques nest en revanche pas encore tout fait
nalise, bien que les mcanismes soient tous en place.
8.4.3.1. Conguration du noyau
La conguration des priphriques USB se fait, au niveau du noyau, dans le menu USB support .
Il faut simplement activer loption Support for USB , slectionner un gestionnaire pour le port
USB et choisir les gestionnaires des diffrents types de priphriques que lon voudra connecter sur
la machine.
Il peut tre utile dactiver loption Preliminary USB device filesystem an de pouvoir
vrier, dans le rpertoire /proc/bus/usb/ du systme de chiers virtuel /proc/, que les pri-
phriques USB connects apparaissent bien. Ce systme de chiers doit tre mont laide de la
commande suivante :
mount -t usbdevfs none /proc/bus/usb
pour pouvoir tre utilis. Il est galement possible de le monter automatiquement dans le chier
/dev/fstab.
En fait, il existe deux types dinterfaces USBsur le march : linterface UHCI (abrviation de langlais
Universal Host Controller Interface ), spcie par Intel, et que les contrleurs de la plupart des
cartes mres utilisent (chipsets Intel et VIA), et linterface OHCI ( Open Host Controller Interface ),
spcie par Compaq, et qui est utilise par les chipsets Compaq et ALi principalement. Ces deux
interfaces sont incompatibles, vous devez donc slectionner lun des deux pilotes UHCI disponibles
(options UHCI (Intel PIIX4, VIA, ...) support et UHCI Alternate Driver (JE)
support (NEW) )) ou le pilote OHCI (option OHCI (Compaq, iMacs, OPTi, SiS, ALi,
...) support .
Comme vous pouvez le constater dans le menu de conguration du noyau, un grand nombre de p-
riphriques USB sont grs par Linux. Vous devez bien entendu activer les options permettant de
prendre en charge votre matriel. Il est conseill dinclure ces fonctionnalits sous forme de modules
an de permettre le chargement dynamique des gestionnaires de priphriques. Cela est ncessaire
pour la conguration des priphriques connects chaud dans le systme.
Il existe cependant une exception : les priphriques dentre tels que le clavier et la souris devront,
si possible, tre inclus directement au sein du noyau an dviter de se retrouver sans clavier et sans
souris en cas de problme dans la conguration du systme. Notez quil existe deux types de pi-
lotes pour les priphriques dentre : un pilote gnral (option USB Human Interface Device
(full HID) support ), qui fonctionne avec tous les priphriques dentre du menu Input
213
Chapitre 8. Conguration du matriel et des priphriques
core support , et des pilotes simplis (options USB HIDBP Keyboard (basic) support
et USB HIDBP Mouse (basic) support ), que lon utilisera pour raliser des systmes embar-
qus ou des noyaux lgers. Il est videmment recommand dutiliser le premier pilote, si rellement
le support du clavier USB est ncessaire (normalement, les claviers USB sont pris en charge par
le BIOS de lordinateur et apparaissent exactement comme des claviers classiques pour le systme
dexploitation).
8.4.3.2. Dtection automatique des priphriques USB
Nous avons signal ci-dessus que le bus USB permettait lajout et la suppression des priphriques
USB chaud, cest--dire ordinateur allum. Cest une nette progression par rapport aux anciens bus,
qui nont jamais rellement accept ce genre dopration, tant du point de vue lectrique (ils peuvent
tre dtriors) que du point de vue logiciel (le nouveau priphrique nest pas dtect ou ne peut pas
tre congur).
Les pilotes USB de Linux sont capables de dtecter lapparition dun nouveau priphrique sur le
bus USB et de rserver les ressources systmes ncessaires son utilisation, mais ils ne peuvent pas
faire grand chose de plus. En effet, la conguration dun nouveau matriel requiert des oprations
dpendantes de celui-ci, telles que :
dterminer le gestionnaire charger pour grer ce nouveau priphrique ;
charger et congurer ce gestionnaire ;
signaler aux applications clientes lapparition du priphrique.
Bien entendu, les oprations inverses doivent galement tre effectues lorsquun priphrique est
dbranch.
Sous Linux, toutes ces oprations sont donc ralises par un programme externe au noyau. La gestion
des priphriques USB se fait donc comme suit :
un mcanisme de surveillance du bus USB dtecte les apparitions et disparitions des priphriques.
Ce mcanisme est souvent implment sous la forme dun dmon USB ;
ce dmon appelle des programmes clients capables de raliser la conguration des nouveaux pri-
phriques. Ces programmes clients sont couramment appels des agents USB .
Il existe deux solutions pour implmenter le dmon USB. La premire solution consiste surveiller
le systme de chiers virtuel /proc/bus/usb/ pour dtecter les apparitions et disparitions des p-
riphriques USB. La deuxime solution est dimplmenter le dmon USB directement au sein du
noyau. Cette solution est plus efcace, parce que le dmon fait dans ce cas partie intgrante du noyau
et na donc pas surveiller le systme de chiers virtuel /proc/bus/usb/. La suite de ce document
dcrit cette mthode, parce quelle est la plus aboutie et plus gnrale (elle fonctionne galement avec
dautres priphriques que les priphriques USB).
Pour activer le dmon USB du noyau (nomm khubd), il faut simplement valider loption Support
for hot-pluggable devices du menu General setup dans la conguration du noyau.
Cette option ajoute galement une entre hotplug dans le rpertoire /proc/sys/kernel/ du sys-
tme de chiers virtuels /proc/ du noyau. Ce chier contient le chemin sur le programme utilisateur
qui sera appel par le dmon USB chaque fois quun priphrique sera ajout ou supprim pendant
le fonctionnement du systme. Par dfaut, ce chemin rfrence lutilitaire /sbin/hotplug, mais il
est possible den indiquer un autre en crivant une nouvelle valeur dans ce chier.
214
Chapitre 8. Conguration du matriel et des priphriques
Le programme hotplug est gnralement un script, capable de charger les modules pour la gestion de
la plupart des priphriques USB. Il joue donc le rle dun agent universel. Cependant, il peut aussi
excuter des agents utilisateurs, sils existent, qui sont situs dans le rpertoire /etc/hotplug/.
Pour les priphriques USB, le script appel se nomme usb.agent.
En fait, le noyau appelle le script hotplug ds quun priphrique est ajout ou supprim, que ce
soit un priphrique USB ou non. Ce mcanisme est donc absolument gnrique, et fonctionne ga-
lement pour les cartes PCMCIA, les priphriques PCI connectables chaud, et les interfaces r-
seau. Les scripts appels par hotplug se nomment alors respectivement usb.agent, pci.agent
et net.agent. Le script hotplug fait la distinction entre ces trois classes de priphriques grce au
premier paramtre que le noyau lui passe sur sa ligne de commande. Les valeurs de ce paramtres
peuvent valoir respectivement usb, pci et net.
Les agents ont besoin dinformations complmentaires pour dterminer quel est le priphrique qui
vient dapparatre ou de disparatre. Ces informations sont passes hotplug sous la forme de va-
riables denvironnement spciques chaque classe de priphrique. Pour les priphriques USB, les
variables denvironnement dnies par le noyau sont les suivantes :
ACTION, qui contient la description de lvnement qui sest produit pour ce priphrique ;
PRODUCT, qui contient les identicateurs du vendeur, du produit et du priphrique pour le pri-
phrique considr ;
TYPE, qui contient la classe et la sous-classe du priphrique, ainsi que son protocole de
communication ;
INTERFACE, qui contient les paramtres de classe, sous-classe et de protocole pour les interfaces,
si le priphrique USB est de classe 0.
Si vous avez activ le support du systme de chiers virtuel USB, les variables suivantes seront ga-
lement dnies :
DEVFS, qui contient le chemin sur la liste des gestionnaires de priphriques USB. Il sagit nor-
malement du chier /proc/bus/usb/drivers ;
DEVICE, qui contient le chemin sur le chier spcial de priphrique pour le priphrique USB ;
Enn, la variable denvironnement PATH est initialise pour rfrencer les rpertoires /sbin/,
/bin/, /usr/sbin/ et /usr/bin/, et la variable denvironnement HOME contient le chemin du
rpertoire racine.
Normalement, le script hotplug et les agents utilisateurs doivent tre fournis avec votre distribu-
tion. Cependant, toutes les distributions ne sont pas encore prtes pour le support de lUSB, et vous
devrez installer ces scripts vous-mme. Leur rdaction peut tre extrmement technique, je vous re-
commande donc dutiliser les scripts disponibles sur le site de lUSB pour Linux (http://www.linux-
usb.org/policy.html).
8.4.4. Installation des priphriques IEEE1394
Le bus IEEE1394 (initialement dnomm bus FireWire) est un bus srie grande vitesse, capable de
transfrer des donnes avec un trs grand dbit (400 mgabits par secondes). Ce bus peut tre utilis
pour connecter de nombreux priphriques (disques dur et lecteurs de CDROMexternes par exemple),
mais sa principale utilisation reste pour les transferts de donnes vido provenant des camscopes
numriques. Certaines cartes mres disposent dun port IEEE1394 intgr, mais la plupart ncessitent
215
Chapitre 8. Conguration du matriel et des priphriques
lajout dune carte lle PCI. La plupart de ces cartes sont vendues en tant que cartes de montage vido
et disposent de deux ports IEEE1394 an de permettre une entre et une sortie du ux vido.
Le bus IEEE1394 dispose davantages indniables, puisquil permet de brancher et de dbrancher
un priphrique chaud (cest--dire sans redmarrer lordinateur), les donnes sont transfres en
numrique (donc sans perte de qualit pour les squences vido), et de piloter les appareils qui y sont
connects (ce qui permet de contrler par exemple un camscope partir dun logiciel de montage vi-
do). Il est galement possible dutiliser le bus IEEE1394 pour connecter deux ordinateurs en rseau,
bien que cette fonctionnalit soit encore exprimentale.
Linux dispose des pilotes permettant dutiliser les ports IEEE1394 de manire gnrique. Cependant,
il faut bien le reconnatre, les logiciels spciques aux diffrents types dappareils sont encore trs
rares ou incomplets. Cet tat de fait est particulirement vrai en ce qui concerne les camscopes num-
riques, pour lesquels il nexiste quasiment aucun logiciel de montage vido dont la qualit sapproche
de celle de ceux qui ont t dvelopps pour Windows. Cela dit, les autres priphriques tels que les
disques durs et les lecteurs de CD-ROM externes sont mieux supports, et la conguration du port
IEEE1394 peut tre ralise compltement en attendant que des logiciels plus volus ne voient le
jour. Vous pouvez obtenir les dernires informations concernant le support des priphriques Fire-
Wire sous Linux sur le site de linux1394 (http://linux1394.sourceforge.net/).
8.4.4.1. Conguration du noyau
La prise en charge du bus IEEE1394 au niveau du noyau est ralisable par lintermdiaire des options
du menu IEEE 1394 (FireWire) support (EXPERIMENTAL) . Comme le support des priphriques
IEEE1394 sous Linux en est encore ses balbutiements, ce menu ne peut tre accd que si lon a
activ loption Prompt for development and/or incomplete code/drivers du menu
Code maturity level options . Les principales options utilisables sont les suivantes :
loption IEEE 1394 (FireWire) support (EXPERIMENTAL) , qui est loption principale
qui active toutes les autres options. Il faut donc imprativement activer cette option et rpondre Y ;
loption Texas Instruments PCILynx support , qui permet de prendre en charge les
cartes IEEE1394 bases sur la puce PCILynx de Texas Instrument. Ce ne sont pas les cartes les
plus couramment utilises, aussi la rponse recommande est-elle N. Si vous activez cette option,
vous pourrez congurer des paramtres complmentaires du gestionnaire de priphriques avec les
options Use PCILynx local RAM (utilisation de la mmoire embarque sur la carte PCI)
et Support for non-IEEE1394 local ports (utilisation de fonctionnalits complmen-
taires non FireWire de ces cartes) ;
loption OHCI-1394 support , qui active la prise en charge des priphriques IEEE1394 com-
patible OHCI (abrviation de langlais Open Host Controller Interface ), qui sont les priph-
riques les plus courants prsent. La rponse recommande est Y ;
loption OHCI-1394 Video support , qui permet de prendre en charge les camras vido
numriques. Cette option ajoute galement une fonctionnalit intressante qui permet aux pro-
grammes de partager les donnes avec le gestionnaire de priphriques directement. Cela permet
dviter quune copie de ces donnes ne soit ralise entre la mmoire du noyau et la mmoire
de lapplication et dobtenir ainsi de meilleures performances. La rponse recommande est bien
videmment Y. Cette option nest toutefois disponible que pour les priphriques OHCI ;
loption SBP-2 support (Harddisks, etc.) , qui permet de prendre en charge les disques
durs et les lecteurs de DVD connects sur bus IEEE1394. Ces lecteurs apparaissent alors comme
des priphriques SCSI standards et pourront tre monts via lun des priphriques /dev/sdx ;
216
Chapitre 8. Conguration du matriel et des priphriques
loption Raw IEEE1394 I/O support , qui permet aux applications de communiquer direc-
tement avec le bus IEEE1394 par lintermdiaire dun chier spcial de priphrique. Cette option
est ncessaire au bon fonctionnement de la plupart des applications IEEE1394 et la rponse recom-
mande est donc Y ;
loption Excessive debugging output , qui active lmission de messages de traces pour
toutes les donnes survenant sur le bus IEEE1394. Cette option saturera vos chiers de traces trs
vite et nest rellement utile que pour les dveloppeurs, aussi faut-il rpondre N.
Comme pour tous les priphriques sous Linux, les fonctionnalits IEEE1394 du noyau seront acces-
sibles par lintermdiaire de chiers spciaux de priphriques situs dans le rpertoire /dev/. Les
fonctionnalits vido seront accdes par lintermdiaire dun chier spcial de priphrique de type
caractre et de code majeur 172. De mme, linterface de donnes brute active par loption Raw
IEEE1394 I/O support est expose par lintermdiaire dun chier spcial de priphrique de
type caractre et de code majeur 171. Vous devrez donc crer ces chiers spciaux laide des deux
commandes suivantes :
mknod /dev/raw1394 c 171 0
mknod -m 666 /dev/video1394 c 172 0
Le numro de code mineur est utilis pour distinguer les diffrents ports IEEE1394 prsents dans
la machine. Les lignes de commandes prcdentes ne montrent que la manire de crer les chiers
spciaux de priphriques que pour le premier port IEEE1394.
8.4.4.2. Installation des bibliothques complmentaires
Les fonctionnalits IEEE1394 peuvent tre utilises par les applications directement par
lintermdiaire des chiers spciaux de priphriques /dev/raw1394 et /dev/video1394, mais
quasiment aucune ne le fait. En effet, des bibliothques spciques ont t crites an de xer les
interfaces de programmation de Linux avec ces applications. Il est donc ncessaire dinstaller ces
bibliothques pour pouvoir utiliser les priphriques IEEE1394.
Il est encore rare que ces bibliothques soient installes par les distributions, certainement parce
quelles sont encore en cours de dveloppement. Leur installation ncessite donc de les compiler
soi-mme, ce qui est une tche facile si on sait le faire, mais qui peut effrayer un dbutant. Rappelons
une fois de plus que le support des priphriques IEEE1394 sous Linux est encore exprimental.
La bibliothque de programme la plus importante est celle qui permet dutiliser la fonctionnalit
daccs direct aux priphriques IEEE1394 par lintermdiaire du chier spcial de priphrique
/dev/raw1394. Les chiers sources de cette bibliothque peuvent tre trouves sur le site du projet
libraw1394 (http://sourceforge.net/projects/libraw1394/). Une autre bibliothque utilise par les pro-
grammes vido est la bibliothque libavc1394 (http://sourceforge.net/projects/libavc1394/). Cette bi-
bliothque permet en effet aux programmes de piloter les camscopes numriques par lintermdiaire
du bus IEEE1394. Enn, les programmes ddition vido peuvent avoir besoin de la bibliothque
libdv (http://libdv.sourceforge.net), qui permet de manipuler les donnes au format DV (cest--dire
le format de donnes utilis par la plupart des camscopes numriques). Cette bibliothque ne fait
pas proprement parler partie des bibliothques permettant de communiquer avec les priphriques
IEEE1394, mais elle est extrmement utile.
La compilation de ces bibliothques se fait classiquement avec les commandes :
./configure --prefix=/usr
make
217
Chapitre 8. Conguration du matriel et des priphriques
partir du rpertoire des sources. Celui-ci pourra tre extrait des archives laide de la commande tar
xvf archive, o archive est le nom de larchive en question. Une fois compiles, les bibliothques
pourront tre installes avec la commande :
make install
Ces oprations ne devraient pas poser de problme particulier. Consultez le Chapitre 7 pour plus de
dtails sur ces oprations.
Une fois ces bibliothques installes, vous devriez pouvoir installer et utiliser des applications ddies
aux priphriques IEEE1394, comme dvgrab (outil de capture vido), kino ou broadcast2000 (outils
ddition de squences vido).
218
Chapitre 9. Conguration du rseau
Linux est un systme dexploitation fabriqu par lInternet et pour lInternet. Inutile de prciser que
cest lun des meilleurs systmes pour grer et exploiter un rseau. Certains ne lutilisent dailleurs
que pour cela, et protent de ses excellentes performances sur les petites machines an de rcuprer
du matriel autrement vou la casse. En fait, les fonctionnalits rseau de Linux sont si nombreuses
que jai t oblig dy consacrer un chapitre part entire.
La conguration dun rseau est une opration qui ncessite quelques connaissances thoriques sur
le fonctionnement des rseaux TCP/IP. Ces informations sont assez techniques, mais indispensables
pour bien congurer les services rseau de toute machine connecte, et pas seulement les machines
fonctionnant sous Linux. Il nest en effet pas rare de trouver des rseaux de machines fonctionnant
sur des systmes dont la conguration est suppose tre plus simple, mais dont lorganisation est une
hrsie absolue et qui risque de ncessiter une remise plat complte chaque interconnexion.
Cette section va donc donner quelques explications sur les notions fondamentales des rseaux infor-
matiques. Il traitera ensuite de la conguration des rseaux locaux, puis celle des connexions tempo-
raires Internet. Les services rseau volus tels que le partage de connexion Internet et la cration
dun serveur de chiers seront nalement traits en n de chapitre.
9.1. Notions de rseau TCP/IP
9.1.1. Gnralits sur les rseaux
Un rseau nest en gnral rien dautre quune interconnexion entre plusieurs machines qui leur per-
met dchanger des informations. Il existe de nombreux moyens de raliser cette interconnexion, qui
utilisent parfois des supports physiques varis. Les techniques les plus utilises sont la liaison radio et
la liaison par cble. Cette dernire technique comprend diverses variantes, dont les rseaux Ethernet,
TokenRing et simplement la liaison tlphonique.
Il est vident que la manire denvoyer et de recevoir des informations est diffrente pour ces diffrents
supports physiques, parce quelle dpend tout simplement des possibilits techniques offertes par
la technologie sous-jacente utilise. Cependant, il est trs courant de dcouper les informations
changer en paquets, qui sont ensuite transmis sur le rseau. Ces paquets peuvent tre de tailles
varies, et contenir des informations utiles la gestion du rseau. Linformation la plus importante est
sans doute celle permettant de connatre la machine destinataire du paquet. On lappelle ladresse de
la machine cible, il sagit gnralement dun numro permettant de lidentier de manire unique sur
le rseau. En gnral, les paquets contiennent galement ladresse de la machine source, an quune
rponse puisse lui tre envoye.
219
Chapitre 9. Conguration du rseau
Figure 9-1. Notion de paquet et dadresse rseau
Du fait de la diversit des supports physiques de rseau, il nest pas simple dcrire une applica-
tion rseau qui puisse travailler dans des environnements rseau htrognes. Cela supposerait de
connatre les protocoles de communication pour chaque type de rseau, ce qui compliquerait linni
le moindre programme et le rendrait inutilisable avec les nouveaux rseaux. Par consquent, cette
tche ingrate a t relgue au plus profond des couches rseau spciques au support physique.
Les applications quant elles utilisent un protocole de communication plus volu, dont le but est
dassurer linteroprabilit des diffrents supports physiques. Ce protocole utilise toujours des paquets
et une notion dadresse, mais cette fois ces informations sont standardises et utilisables par toutes
les applications. Les paquets de ce protocole sont stocks dans les paquets des rseaux physiques et
transmis tels quels. Ils peuvent ventuellement tre dcoups en sous-paquets dans le cas o la taille
des paquets du rseau serait trop petite pour les contenir. Cette technique sappelle lencapsulation
dun protocole dans un autre protocole.
Figure 9-2. Encapsulation de protocoles
9.1.2. Le protocole IP
Les machines Unix utilisent toutes le protocole de communication de bas niveau IP ( Internet
Protocol ). Ce protocole a t invent pour permettre linterconnexion dun grand nombre
de rseaux physiques diffrents (le nom dInternet provient dailleurs de cette caractristique :
INTERconnected NETworks ). Il permet de transmettre des informations de manire uniforme sur
220
Chapitre 9. Conguration du rseau
tous ces rseaux physiques. Ainsi, les programmes qui utilisent IP ne voient pas les spcicits des
diffrents rseaux physiques. Pour eux, il ne semble y avoir quun seul rseau physique, dont le
protocole de communication de base est IP. Autrement dit, les applications qui utilisent le rseau se
contentent dutiliser le protocole IP, et nont plus se soucier de la manire dont il faut formater et
transmettre les informations sur chaque support physique du rseau. Ce genre de dtail est laiss aux
couches rseau de chaque machine et aux passerelles reliant les divers rseaux physiques.
Comme il la dj t dit ci-dessus, le protocole IP utilise des adresses pour identier les machines sur
les rseaux. Les adresses IP sont codes sur quatre octets (nombres binaires huit chiffres, permettant
de reprsenter des valeurs allant de 0 255), chacun dnissant une partie du rseau. Ces adresses sont
utilises un peu comme les numros de tlphone : le premier octet dnit le numro dun super-
rseau dans lequel le correspondant se trouve (ces super-rseaux sont appels les rseaux de
classe A), le deuxime octet dnit le numro du sous-rseau dans le super-rseau (ces sous-rseaux
sont appels rseaux de classe B), le troisime octet dnit encore un sous-sous-rseau (rseaux dits
de classe C) et le quatrime octet donne le numro de la machine dans ce sous-sous-rseau.
Cette numrotation permet daffecter des adresses similaires pour les diffrentes machines dun r-
seau, et de simplier ainsi la gestion de ce dernier. Elle dispose en revanche dun inconvnient majeur :
beaucoup dadresses sont gaspilles, car il ny a pas sufsamment de rseaux de classe A dune part,
et quon ne peut pas mlanger les machines de deux sous-rseaux dans un mme rseau de classe
A dautre part. Si lon reprend la comparaison avec les numros de tlphone, il y a normment
dabonns dont le numro commence par 01, mais beaucoup moins dont le numro commence par
02, et quasiment aucun dont le numro commence par 08. Si lon venait manquer de place dans la
liste des numros commenant par 01, on ne pourrait pas pour autant utiliser les numros commen-
ant par 02 pour des raisons gographiques. Cest la mme chose pour les adresses IP, sauf que les
zones gographiques sont remplaces par des sous-rseaux. Le problme est que, malheureusement,
on commence manquer dadresses disponibles (alors quil y en a plein de libres mais inutilisables
parce quelles se trouvent dans dautres sous-rseaux !). Il va donc falloir effectuer une renumrota-
tion dici peu, exactement comme il y en a dj eu dans le monde de la tlphonie...
Note : Le protocole IPv6, qui remplacera le protocole IP classique (encore appel IPv4), a
pour but de rsoudre les limitations du protocole IP utilis actuellement. Les adresses du pro-
tocole IPv6 sont codes sur 16 octets, ce qui rsoudra dnitivement le problme du manque
dadresses. De plus, les services modernes que sont lauthentication de lmetteur, ainsi que la
qualit de service (cest--dire la garantie du dlai de transmission des donnes, garantie nces-
saire pour transmettre de faon correcte les ux multimdia tels que le son et la vido en temps
rel) sont fournis par IPv6. Bien entendu, Linux est dj capable dutiliser IPv6 (combien de sys-
tmes peuvent aujourdhui lafrmer ?) ! Notez toutefois que pour cela, il faut recompiler le noyau
et toutes les applications rseau du systme, ce qui est tout de mme trs lourd. Par consquent,
il vaut mieux se contenter du protocole IP actuel. Malgr ses limitations, ce protocole reste sans
doute le meilleur protocole rseau du monde, car il allie souplesse et fonctionnalit. Il est difcile-
ment concevable de crer un rseau aussi grand quInternet avec les autres protocoles existant
sur le march...
Les adresses IP sont donc parfaitement dnies laide de leurs quatre nombres, que lon note les
uns la suite des autres et en les sparant dun point. Comme on la vu, les adresses IP sont classes
en sous-rseaux, de classe A, B et C. Les adresses des rseaux de classe C ont leurs trois premiers
nombres xs, et seul le quatrime nombre change pour chaque machine du rseau. De la mme
manire, les rseaux de classe B ont leurs deux premiers nombres xs, et seuls les deux derniers
nombres permettent de distinguer les diffrentes machines du rseau. Enn, les rseaux de classe A
nont de x que leur premire composante, les autres sont libres. Il est donc clair quil existe peu de
rseaux de classe A, mais que ce sont de trs gros rseaux (ils peuvent contenir jusqu 16 millions
221
Chapitre 9. Conguration du rseau
de machines !). En revanche, il existe beaucoup plus de rseaux de classe C, dont la taille est plus
modeste (seulement 256 machines).
Pour un rseau donn, les adresses ont donc toutes la mme forme. Les premiers octets des adresses
du rseau sont toujours les mmes (ce peut tre le premier octet pour les rseaux de classe A, les
deux premiers pour les rseaux de classe B ou les trois premiers pour les rseaux de classe C). On
peut donc dnir la notion dadresse de rseau, qui est ladresse IP dune machine du rseau dont
les parties variables ont pour valeur 0. Par exemple, si une machine dun rseau de classe C a pour
adresse 192.168.1.15, alors ladresse de son sous-rseau est 192.168.1.0. Cela signie que toutes les
machines de ce rseau auront une adresse de la forme 192.168.1.xxx .
Un rseau nappartient qu une et une seule classe. Les adresses IP sont rparties sur les diffrentes
classes de rseaux, selon la valeur des bits de poids fort de leur premier octet. Par exemple, les rseaux
de classe A sont identiables au fait que le bit de poids fort de leur adresse est nul. Les adresses de
rseau valides pour les rseaux de ce type sont donc les adresses comprises entre 0.0.0.0 et 127.0.0.0.
Il nexiste donc que 128 rseaux de classes A en tout et pour tout. Les autres rseaux ont donc le bit de
poids fort de leur adresse x 1, et cest le deuxime bit de poids fort qui est utilis pour distinguer
les rseaux de classe B des autres. Les rseaux de classe B utilisent toujours la valeur 0 pour ce bit,
leurs adresses varient donc entre 128.0.0.0 et 191.255.0.0. De mme, les rseaux de classe C utilisent
la valeur 1 pour le deuxime bit de leur adresse, et ont ncessairement un troisime bit nul. Leurs
adresses vont donc de 192.0.0.0 223.255.255.0. Les adresses pour lesquelles le troisime bit (en plus
des deux premiers) est 1 sont rserves (soit pour une utilisation ultrieure, soit pour sadresser
des groupes dordinateurs en multicast) et ne doivent pas tre utilises. Il sagit des adresses 224.0.0.0
255.255.255.255. Cette dernire adresse a une signication spciale et permet de sadresser tous
les ordinateurs dun rseau.
Il est possible de dterminer ladresse du rseau auquel une machine appartient en utilisant ce quon
appelle le masque de sous-rseau. Le masque de sous-rseau est une srie de quatre nombres ayant le
mme format que les autres adresses IP, mais dont les composantes ne peuvent prendre que la valeur 0
ou la valeur 255, les 255 devant ncessairement apparatre en premier. Les composantes des adresses
IP qui correspondent la valeur 255 dans le masque de sous-rseau font partie de ladresse dudit sous-
rseau. Les composantes qui correspondent la valeur 0 dans le masque de sous-rseau nen font pas
partie, et varient pour chaque machine du rseau. Pour reprendre lexemple prcdent, si une machine
a pour adresse IP 189.113.1.15 et que son masque de sous-rseau est 255.255.255.0, alors ladresse de
son rseau est 189.113.1.0. Si le masque de sous-rseau avait t 255.255.0.0 (typiquement le masque
dun rseau de classe B), ladresse du rseau aurait t 189.113.0.0. Comme on le voit, le masque
de sous-rseau est utilis par le systme pour dterminer rapidement ladresse de sous-rseau dune
machine partir de son adresse IP. On notera que certaines combinaisons dadresses IP et de masques
de sous-rseau sont invalides. Par exemple, les adresses affectes aux rseaux de classe C (comme
192.168.0.1 par exemple) ne peuvent pas avoir de masque de sous-rseau en 255.255.0.0, car cela
impliquerait que cette adresse serait une adresse de rseau de classe B.
222
Chapitre 9. Conguration du rseau
Figure 9-3. Addresse IP et adresse de rseau
Les adresses IP ne sont pas attribues aux machines au hasard. Il est vident que chaque machine
doit avoir une adresse unique, et que son adresse doit appartenir la plage dadresses utilise pour le
sous-rseau dont elle fait partie. Pour cela, les classes de rseau, ainsi que les adresses quils utilisent,
sont attribues par lIANA, un organisme de gestion de lInternet. Le rle de lIANA (abrviation
de langlais Internet Assigned Numbers Authority ) est essentiellement dassurer lunicit des
adresses IP sur lInternet. Cependant, certaines adresses sont librement utilisables pour les rseaux
locaux qui ne sont pas connects directement lInternet. Les paquets utilisant ces adresses sont
assurs de ne pas tre transmis sur Internet. Ces adresses peuvent donc tre utilises par quiconque.
Les plages dadresse rserves sont les suivantes :
Tableau 9-1. Plages dadresses IP rserves pour un usage personnel
Classe de rseau Adresses de rseau rserves
A 10.0.0.0
B 172.16.0.0 172.31.0.0
C 192.168.0.0 192.168.255.0
Ainsi, un rseau de classe A (dadresse 10.0.0.0), 16 rseaux de classe B (les rseaux 172.16.0.0
172.31.0.0) et 255 rseaux de classe C (dadresses 192.168.0.0 192.168.255.0) sont disponibles.
Vous pouvez donc les utiliser librement.
Il est galement possible de congurer les machines pour quelles rcuprent leurs adresses IP auprs
dun serveur laide du protocole DHCP (abrviation de langlais Dynamic Host Conguration
Protocol ). Cette technique est trs intressante quand on dispose dun grand nombre de machines qui
ne sont pas toujours toutes connectes un rseau. Il est donc possible de redistribuer les adresses IP
dun stock dadresses en fonction des machines qui se connectent, et dconomiser ainsi les prcieuses
adresses. En revanche, elle nest pas approprie pour les serveurs qui sont couramment accds par
des postes clients, et qui doivent donc avoir une adresse IP xe.
Certaines adresses IP ont une signication particulire et ne peuvent pas tre attribues une machine.
Par exemple ladresse 127.0.0.1 reprsente, pour une machine, elle-mme. Cette adresse est souvent
utilise pour accder un programme rseau sur la machine locale. Elle fait partie du sous-rseau
de classe A 127.0.0.0, qui ne comprend pas dautres adresses. De plus, les adresses dont les derniers
nombres (cest--dire les nombres qui ne font pas partie de ladresse du rseau) se terminent par 0 ou
223
Chapitre 9. Conguration du rseau
255 sont rserves pour lenvoi des paquets destination de tout le monde sur le rseau (mission dite
broadcast ). Par exemple, les adresses 192.168.1.0 et 192.168.1.255 ne peuvent pas tre affectes
une machine. Ce sont typiquement ces adresses qui sont utilises par le protocole DHCP pour mettre
des requtes sur le rseau alors que la machine na pas encore dadresse xe.
Il est important de savoir que, par dfaut, une machine ne communiquera quavec les machines de son
propre rseau. Cest dire que si une machine utilise ladresse IP 192.168.1.15 et que son masque
de sous-rseau est 255.255.255.0, elle ne pourra contacter que des machines dont ladresse est de la
forme 192.168.1.xxx. Elle ne pourra donc pas voir par exemple une machine dont ladresse IP est
192.168.0.2. Cela ne signie pas que lon doive toujours utiliser le masque 0.0.0.0 pour voir toutes
les machines du monde, mais plutt que la machine 192.168.0.2 ne fait pas partie, a priori, du mme
rseau physique que la machine 192.168.1.15. Il est donc inutile de chercher la contacter (et mettre
le masque de sous-rseau 0.0.0.0 ne rsoudrait videmment pas le problme). Cependant, si deux
rseaux physiques ont ncessairement deux adresses de rseau diffrentes, rien nempche de dnir,
sur un mme rseau, plusieurs rseaux logiques. Ainsi, une mme carte rseau peut avoir plusieurs
adresses IP. La communication avec les machines des diffrents rseaux logiques se fait alors par
lintermdiaire de la mme interface rseau.
Arriv ce stade des explications, je sens venir la question suivante : ?! Euhhh... Mais alors, com-
ment peut-on voir les machines sur Internet ? Je nai pas de rseau, et quand je me connecte Internet,
je peux y accder ! Et mme si javais un rseau, elles ne feraient certainement pas partie de mon
rseau... .
Explications :
premirement, vous avez un rseau, mme si vous ne le savez pas. Toute machine appartient gn-
ralement au moins son propre rseau virtuel, sur laquelle elle est la seule machine, et o elle a
ladresse 127.0.0.1 ;
deuximement, effectivement, les machines qui se trouvent sur Internet nappartiennent pas votre
rseau, que celui-ci existe effectivement ou soit virtuel ;
troisimement, toutes les informations que vous envoyez et recevez transitent par un seul ordinateur,
celui de votre fournisseur daccs Internet. Cest cet ordinateur qui se charge de faire le transfert
de ces informations vers les machines situes sur Internet.
Cest donc ici quintervient la notion de passerelle ( Gateway en anglais).
Une passerelle est une machine qui appartient deux rseaux physiques distincts, et qui fait le lien
entre les machines de ces deux rseaux. Les ordinateurs des deux rseaux peuvent communiquer avec
la passerelle de part et dautre, puisquelle appartient aux deux rseaux. Les ordinateurs de chaque
rseau transmettent cette passerelle tous les paquets qui ne sont pas destins une machine de leur
propre rseau. Celle-ci se charge simplement de transfrer ces paquets aux machines de lautre rseau.
224
Chapitre 9. Conguration du rseau
Figure 9-4. Notion de passerelle
Lorsque vous vous connectez Internet, vous ne faites rien dautre que de crer un rseau (dont le
support physique est la ligne tlphonique), et vous utilisez lordinateur que vous avez appel comme
passerelle par dfaut. Tous les paquets destins un autre rseau que le vtre (donc, en pratique,
tous les paquets si vous navez pas de rseau local) sont donc envoys sur le rseau constitu de
votre connexion Internet et arrivent donc chez votre fournisseur daccs, qui se charge ensuite de
les transmettre aux autres ordinateurs. Notez que celui-ci peut transmettre ces paquets une autre
passerelle laquelle il a accs et ainsi de suite, jusqu ce que la destination soit atteinte.
Dans le cas dun particulier, le choix du rseau sur lequel les paquets doivent tre transmis est trs
facile faire puisquen gnral un paquet est soit destination de la machine locale, soit destination
dune machine sur Internet. Pour un paquet destin la machine locale, le rseau virtuel local est
utilis. Tous les autres paquets sont envoys sur la connexion Internet. Cependant, il peut arriver
quune machine ait le choix entre plusieurs passerelles diffrentes pour envoyer un paquet dont la
destination nest pas sur son propre rseau. Par exemple, les passerelles dInternet peuvent tre elles-
mmes connectes diffrents autres rseaux, qui sont eux-mmes connect s dautres rseaux. Un
paquet peut donc tre achemin de plusieurs manires sa destination, selon la topologie du rseau.
Lensemble des rseaux emprunts par un paquet dans son voyage constitue ce quon appelle sa route.
Chaque passerelle contribue donc dterminer la route des paquets en choisissant, pour chaque pa-
quet, linterface rseau utiliser pour transmettre ce paquet. Ce choix est fait en suivant un certain
nombre de rgles bases sur ladresse destination des paquets. Par exemple, si une passerelle reoit
un paquet dont ladresse destination est 129.46.10.15, et quelle est elle-mme connecte un rseau
possdant cette machine, elle transmettra bien videmment ce paquet sur ce rseau. Si en revanche
elle ne peut localiser la machine cible sur lun de ses rseaux, elle lenverra une autre passerelle
laquelle elle a accs. Le choix de cette passerelle est en gnral dtermin par des rgles de la forme
suivante : Tous les paquets destins au sous-rseau 129.46.0.0 doivent tre envoys vers la passe-
relle 193.49.20.1 du rseau 193.49.20.0 . Notez qu chaque tape de la route, seules les passrelles
de ltape suivante peuvent tre choisies comme relai.
Ainsi, si la passerelle est connecte trois rseaux dadresses respectives 192.168.1.0, 193.49.20.0 et
209.70.105.10, elle transfrera le paquet destination de 129.46.10.15 la passerelle 193.49.20.1. La
transmission effective du paquet cette passerelle se fera ensuite selon le protocole rseau bas niveau
225
Chapitre 9. Conguration du rseau
utilis sur le rseau 193.49.20.0. Autrement dit, une passerelle est une machine qui, contrairement
aux machines classiques, accepte de recevoir des paquets qui ne lui sont pas directement adresss, et
de les traiter en les rmettant vers leur destination ou vers une autre passerelle, selon les rgles de
routage quelle utilise.
Les rgles utilises par les passerelles sont stockes dans ce quon appelle des tables de routage. Les
tables de routage peuvent tre congures statiquement dans la conguration des passerelles, cest--
dire initialises dans les chiers de conguration et ne jamais tre modies. Cette technique convient
parfaitement pour les petits rseaux. Elle se rvle cependant insufsante sur les passerelles dInternet.
En effet, si les rseaux emprunts par une route sont saturs, voire hors service, il peut tre intressant
dutiliser une autre route. Ces passerelles utilisent donc des tables de routage dynamiques, qui sont
automatiquement mises jour en fonction de ltat du rseau. Bien que Linux puisse parfaitement
effectuer ce type de routage, cest une conguration rserve un usage spcique de Linux. Ce
document ne traitera donc pas du routage dynamique.
Figure 9-5. Notion de route
Le problme des adresses IP est quelles ne sont pas trs parlantes pour les tres humains : que peut
donc signier 192.147.23.2 ? Pas grand chose... Cest pour cela quon affecte des noms de machines
plus humains, comme par exemple krypton.andromede.galaxie. Ces noms suivent une conven-
tion de nommage bien prcise. En gnral, le premier nom est le nom de la machine elle-mme, et
la suite du nom constitue ce quon appelle le domaine dans laquelle la machine se trouve. Ainsi,
dans lexemple prcdent, krypton est le nom dune machine, et andromede.galaxie est le nom
de son domaine. En gnral, il existe plusieurs machines dans un mme domaine, on pourrait donc
galement avoir altair.andromede.galaxie par exemple (malheureusement pour mon exemple,
ltoile Altar ne se trouve pas dans la galaxie dAndromde, mais bon...). Souvent, les noms de
domaines sont des noms de socits. La dernire partie du nom de domaine permet galement de d-
226
Chapitre 9. Conguration du rseau
terminer la nature du domaine, ou sa localisation. Par exemple, lextension .com indique clairement
que le domaine est de nature commerciale (de surcrot, il sagit sans doute dune socit amricaine,
lextension .com tant rserve aux tats-Unis). De mme, lextension .gov est utilise pour les
organismes gouvernementaux amricains, et lextension .edu pour les universits ou les coles am-
ricaines. Lextension .org est utilise pour les organisations non commerciales. Enn, les noms de
domaines des autres pays que les tats-Unis utilisent quasiment systmatiquement une extension in-
diquant leurs pays dorigine. Ainsi, .fr reprsente la France, .uk les Royaumes-Unis, etc. Notez que
la notion de domaine est a priori distincte de la notion de rseau.
La question technique qui se pose avec ces conventions de nommage humaines est de savoir
comment dterminer, partir dun nom littral, ladresse IP de la machine correspondante. Cette
opration nest pas simple, et en fait elle est effectue de deux manires :
soit la machine locale demande une autre machine quelle connat deffectuer la recherche de
ladresse du correspondant ;
soit elle dispose dune liste de noms et dadresses lui permettant de dterminer directement les
adresses de ses interlocuteurs.
La premire solution utilise ce quon appelle un serveur de noms ( DNS en anglais, abrviation
de Domain Name Service ), qui connat toutes les machines du rseau soit directement, soit indi-
rectement (donc via un autre DNS). Lopration qui consiste retrouver ladresse IP dune machine
partir de son nom sappelle la rsolution de nom de domaine. Il est vident que si le serveur de noms
ne peut tre contact, il sera impossible dutiliser les noms de machines. En revanche, il sera toujours
possible dutiliser leurs adresses IP directement, si on les connat. La deuxime solution ne souffre
pas de ce dfaut, elle ncessite cependant de mettre jour la liste des noms sur tous les postes rgu-
lirement, ce qui est beaucoup plus complexe que la gestion centralise dun DNS. On ne lutilisera
donc que pour les petits rseaux.
9.1.3. Le protocole TCP
Nous avons vu que le protocole IP fournit les briques de bases de toute la communication rseau sous
Unix (et Internet). Ses principales fonctionnalits sont le dcoupage des informations en paquets de
taille sufsamment petite pour pouvoir transiter sur tous les types de rseaux physiques, la gestion
des destinations des paquets laide des adresses IP, et le choix de la route permettant dacheminer
les paquets destination. En revanche, il est incapable dassurer les services plus volus comme
la gestion de lordre darrive des paquets et la gestion de la abilit du transfert des informations.
Cest donc des protocoles plus volus, eux-mmes encapsuls dans IP, deffectuer ces tches.
Lun des protocoles les plus importants est le protocole TCP (abrviation de langlais Transfer
Control Protocol ). Ce protocole se charge dtablir les connexions entre deux ordinateurs, et assure
la abilit des informations transmises et larrive des informations dans leur ordre denvoi. Il existe
dautres protocoles, moins connus que TCP mais tout aussi importants. On retiendra en particulier les
deux protocoles suivants :
UDP (abrviation de langlais User Datagram Protocol ), qui permet dmettre des datagrammes
sur le rseau, qui sont de simples paquets de donnes (cest un protocole semblable IP, destin
aux applications) ;
ICMP (abrviation de Internet Control Message Protocol ), qui est utilis essentiellement pour
transmettre des messages de contrle du fonctionnement des autres protocoles (il est donc vital).
227
Chapitre 9. Conguration du rseau
Les services rseau des machines sont organiss en couches logicielles, qui sappuient chacune sur la
couche infrieure. Ainsi, TCP utilise IP, qui lui-mme utilise le pilote qui gre linterface rseau. Du
fait que ces couches sappuient les unes sur les autres, on appelle souvent lensemble de ces couches
une pile ( stack en anglais). Vous avez peut-tre dj entendu parler de la pile TCP/IP. Lorsquun
service rseau dune machine nest plus accessible, il se peut que ce service rseau ait plant. Si tout
un ensemble de services rseau ne fonctionne plus, cest certainement une des couches logicielles
qui est plante. Par exemple, une machine peut rpondre la commande ping (classiquement utilise
pour tester les connexions rseau) et ne plus accepter la plupart des connexions rseau. Cela signie
simplement que la couche TCP ne fonctionne plus, et que la couche ICMP (utilise par ping) est
toujours valide. videmment, si la couche IP tombe en panne, la machine ne sera plus accessible du
tout, sauf ventuellement avec dautres protocoles rseau compltement diffrents (IPX, Appletalk,
etc.).
Seuls les mcanismes du protocole TCP seront dtaills dans la suite de ce document. Le protocole
TCP est en effet utilis par un grand nombre de services, ce qui en fait certainement le plus connu.
Le protocole TCP utilise la notion de connexion. Une connexion est un canal de communication tabli
entre deux processus par TCP. Comme les processus sont susceptibles dutiliser plusieurs connexions
simultanment, TCP fournit la possibilit de les identier par un numro unique sur la machine,
compris entre 0 et 65535. Chaque numro identie ce quon appelle un port TCP. Quand un processus
dsire tablir une connexion avec un autre, il utilise un de ses ports et essaie de se connecter sur le
port du deuxime processus.
Il faut bien comprendre que les deux numros de ports utiliss ne sont a priori pas les mmes pour
les deux processus. videmment, il est ncessaire que les processus clients connaissent les numros
de port des processus serveurs auxquels ils se connectent. Les numros de ports sont donc affects
des services bien dnis, et les serveurs qui fournissent ces services doivent bien entendu utiliser ces
numros de ports. Ainsi, il est possible de dterminer de manire unique un programme serveur sur
un rseau avec ladresse IP de la machine sur laquelle il fonctionne et le numro de port quil coute
pour les connexions extrieures. Les clients qui se connectent savent donc parfaitement quel service
ils accdent lorsquils choisissent le numro de port destination. Leur propre numro de port est en
gnral choisi par le systme, an dviter tout conit avec un autre processus de la mme machine.
Figure 9-6. Connexions TCP
Une fois tablie, une connexion TCP permet deffectuer des communications bidirectionnelles. Cela
signie que le client et le serveur peuvent tous deux utiliser cette connexion pour envoyer des donnes
lautre. Le client envoie ses donnes sur le port destination du serveur, et le serveur peut renvoyer
les rsultats au client en utilisant le port de celui-ci. Les paquets TCP disposent donc toujours dun
port source (cest--dire le port TCP de lmetteur), et dun port destination (le port du rcepteur).
Ainsi, le rcepteur peut renvoyer sa rponse en utilisant le port source comme port de destination du
paquet renvoy, et inversement.
Comme il la dj t dit, le protocole TCP sassure que les informations transmises arrivent bon
port (cest le cas de le dire !). Pour cela, il utilise un mcanisme daccuss rception, qui indiquent
228
Chapitre 9. Conguration du rseau
lmetteur si le destinataire a bien reu chaque paquet envoy. Si laccus rception nest pas reu
dans un temps x, le paquet est r-mis. Un paquet reu en double cause dun retard dans la
communication de laccus rception est tout simplement ignor. La abilit des informations est
galement assure. Cette abilit est ralise par un mcanisme de sommes de contrle. Si le rcepteur
constate que la somme de contrle des donnes reues nest pas celle que lmetteur a calcul, il rejette
le paquet parce quil sait que les informations ont t corrompues pendant la transmission. Enn, TCP
sassure que les informations mises en plusieurs passes sont bien reues dans leur ordre dmission.
Cette rorganisation se fait grce une numrotation des paquets (cette numrotation sert galement
dtecter les paquets reus en double). Elle peut paratre inutile, mais la vitesse darrive des paquets
est hautement dpendante de la route IP quils prennent pour parvenir destination. Les paquets qui
arrivent en avance sont donc mmoriss jusqu ce que tous les paquets qui les prcdent soient reus.
9.1.4. Les protocoles de haut niveau
TCP fournit donc les fonctionnalits requises pour la plupart des services rseau existant. Il est lo-
gique que ceux-ci sappuient sur lui pour effectuer leur travail. Cependant, il ne se charge que de
communiquer les informations, rien de plus. Des protocoles de plus haut niveau ont donc t crs.
Leur valeur ajoute provient souvent du formatage et de la structuration des ux de donnes changs.
La plupart des services rseau dnissent donc un protocole qui leur est propre. Il est dailleurs assez
courant de confondre le service et le protocole, tellement ils sont intrinsquement lis. Ainsi, le ser-
vice FTP utilise le protocole FTP ( File Transfer Protocol , protocole de transfert de chiers), les
serveurs Internet utilisent essentiellement le protocole HTTP ( Hyper Text Transfer Protocol , pro-
tocole de transfert dhypertexte), le service de courrier lectronique utilise les protocoles POP ( Post
Ofce Protocol ) pour la rception des courriers et SMTP ( Simple Mail Transfer Protocol ) pour
leur envoi. Cette liste de protocoles nest pas exhaustive, et de nouveaux services apparaissent rgu-
lirement. Les protocoles de haut niveau ne seront donc pas dcrits dans ce document.
Les protocoles de haut niveau transmettent, en gnral, toutes leurs donnes en clair sur le rseau.
Cela comprend non seulement les donnes applicatives, mais galement les noms dutilisateurs et les
mots de passe. Toute personne ayant physiquement accs au rseau ou une machine par laquelle les
paquets passent peut donc, sil le dsire, rcuprer tous les mots de passe avec une simplicit extrme
(il existe mme des programmes spcialiss pour cela). Il est donc inconcevable dutiliser tous ces
protocoles sans prendre de prcautions particulires. Heureusement, il est possible dencapsuler les
protocoles dans un rseau virtuel qui, lui, transmet les donnes sous forme crypte. Loutil le plus
utilis de nos jours est ssh (abrviation de langlais Secure SHell ), qui permet de se connecter sur
une machine et de travailler distance en toute scurit. Il en existe plusieurs implmentations, dont
au moins une libre : OpenSSH. Nous verrons comment congurer et utiliser OpenSSH pour amliorer
la scurit du rseau dans la Section 9.2.8.4.
9.2. Conguration du rseau sous Linux
La conguration du rseau ncessite donc la conguration du protocole IP et des services TCP, UDP
et ICMP (entre autres). Cette opration se fait en dnissant ladresse IP le masque de sous-rseau et
les routes utiliser. Vient ensuite la conguration du nom de la machine locale, de son domaine, des
noms de machines quelle peut rsoudre elle-mme et des serveurs de DNS quelle doit utiliser pour
les autres noms.
Il est quasiment certain que votre distribution dispose dun outil permettant deffectuer la congu-
ration du rseau simplement. Connaissant prsent la signication des termes utiliss dans les r-
229
Chapitre 9. Conguration du rseau
seaux TCP/IP, vous devriez pouvoir parvenir une conguration valide relativement simplement. Il
est fortement recommand de consulter la documentation de votre distribution. Les commandes de
conguration du rseau sont souvent appeles dans les scripts de dmarrage de la machine, ou dans les
scripts de changement de niveau dexcution. Toutefois, il peut tre utile de connatre ces commandes,
ne serait-ce que pour comprendre comment votre systme fonctionne. Cette section a donc pour but
de vous prsenter ces commandes, ainsi que les principaux chiers de conguration du rseau utiliss
sous Linux.
9.2.1. Conguration statique des interfaces rseau
La principale commande permettant de congurer le rseau est la commande ifcong. Comme son
nom lindique ( InterFace CONFiguration ), elle permet de congurer les interfaces rseau de la
machine. Il faut savoir quil existe plusieurs types dinterfaces rseau. Les plus courants sont les trois
types dinterfaces suivants :
linterface loopback, qui reprsente le rseau virtuel de la machine, et qui permet aux applications
rseau dune mme machine de communiquer entre elles mme si lon ne dispose pas de carte
rseau ;
les interfaces des cartes rseau (que ce soient des cartes Ethernet, TokenRing ou autres) ;
les interfaces ppp, plip ou slip, qui sont des interfaces permettant dutiliser les connexions srielles,
parallles ou tlphoniques comme des rseaux.
La conguration dune interface comprend linitialisation des pilotes ncessaires son fonctionne-
ment et laffectation dune adresse IP cette interface. La syntaxe gnrale que vous devrez utiliser
est la suivante :
ifconfig interface adresse netmask masque up
o interface est le nom de linterface rseau que vous voulez congurer, adresse est ladresse IP
que cette interface grera, et masque est le masque de sous-rseau que vous utilisez. Les interfaces que
vous aurez congurer seront certainement des interfaces Ethernet, auquel cas vous devrez utiliser les
noms eth0, eth1, etc. dans la commande ifcong. Si vous dsirez congurer linterface loopback,
vous devrez utiliser le nom dinterface lo.
Le paramtre up donn ifcong lui indique que linterface doit tre active. Cela signie que ds
que la commande ifcong sachvera, votre interface rseau sera active et fonctionnelle. On ne peut
faire plus simple... Bien entendu, il existe le paramtre inverse : down. Ce paramtre sutilise tout
simplement dans la commande ifcong avec la syntaxe suivante :
ifconfig interface down
o interface est toujours le nom de linterface.
Un exemple de conguration trs classique est le suivant :
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
Note : Prenez bien garde, lorsque vous crivez vos adresses IP, ne pas rajouter de 0 suppl-
mentaire devant les nombres qui la constituent. En effet, il existe une convention en informatique
qui dit que les nombres prxs dun 0 sont cods en octal, cest--dire en base 8. Il va de soi
230
Chapitre 9. Conguration du rseau
quune adresse IP code en octal nutilise pas les mmes nombres que lorsquelle est exprime
en dcimal, aussi prouveriez-vous quelques difcults pour diagnostiquer le non fonctionnement
de votre rseau si vous faisiez cette erreur !
Le noyau utilisera par dfaut le nombre 255 pour les adresses de broadcast dans les composantes
de ladresse IP qui ne fait pas partie de ladresse de sous-rseau. Si vous dsirez utiliser une autre
adresse (en gnral, lalternative est de prendre ladresse du sous-rseau), vous devrez utiliser loption
broadcast adresse dans la commande ifcong. Cependant, le comportement par dfaut convient
la plupart des rseaux. La commande de conguration donne en exemple ci-dessus sera alors :
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.0 up
Enn, il est possible daffecter plusieurs adresses IP certaines interfaces rseau. Cest en particulier
le cas pour toutes les interfaces rseau classiques, mais bien entendu cela nest pas ralisable avec
les interfaces de type point point comme les interfaces des connexions ppp. Lorsquune interface
dispose de plusieurs adresses, la premire est considre comme ladresse principale de linterface, et
les suivantes comme des alias. Ces alias utilisent comme nom le nom de linterface rseau principale
et le numro de lalias, spars par deux points (caractre :). Par exemple, si linterface eth0
dispose dun alias, celui-ci sera nomm eth0:0. Ainsi, pour xer ladresse dun alias dune interface
rseau, on utilisera la syntaxe suivante :
ifconfig interface:numro add adresse netmask masque
o interface est toujours le nom de linterface, numro est le numro de lalias, adresse est
ladresse IP attribuer cet alias, et masque est le masque de sous-rseau de cette adresse.
La commande ifcong est en gnral appele dans les scripts dinitialisation du systme, qui ont
t gnrs par lutilitaire de conguration rseau de votre distribution. Si vous effectuez un grep
sur ifcong dans le rpertoire /etc/rc.d/ (ou /sbin/init.d/, selon votre distribution), vous
trouverez la commande de dmarrage du rseau. Il se peut quune variable denvironnement soit
utilise la place de ladresse IP que vous avez choisie. Quoi quil en soit, vous devez sans aucun
doute avoir les lignes suivantes, qui permettent linitialisation de linterface loopback :
ifconfig lo 127.0.0.1 netmask 255.0.0.0 up
9.2.2. Dnition des rgles de routage
La deuxime tape dans la conguration du rseau est la dnition des rgles de routage. Il est pos-
sible de dnir plusieurs rgles de routage actives simultanment. Lensemble de ces rgles constitue
ce quon appelle la table de routage. La rgle utilise est slectionne par le noyau en fonction de
ladresse destination du paquet router. Chaque rgle indique donc un critre de slection sur les
adresses, et linterface vers laquelle doivent tre transfrs les paquets dont ladresse destination v-
rie cette rgle.
La commande utilise pour dnir une route est, chose surprenante, la commande systme route. Sa
syntaxe est donne ci-dessous :
route opration [-net | -host] adresse netmask masque interface
231
Chapitre 9. Conguration du rseau
o opration est lopration effectuer sur la table de routage. Lopration la plus courante est
simplement lajout dune rgle de routage, auquel cas add doit tre utilis. Loption suivante permet
dindiquer si le critre de slection des paquets se fait sur ladresse du rseau destination ou plus res-
trictivement sur ladresse de la machine destination. En gnral, il est courant dutiliser la slection
de toutes les adresses dun mme rseau et de les router vers une mme interface. Dans tous les cas,
adresse est ladresse IP de la destination, que celle-ci soit un rseau ou une machine. Si la destina-
tion est un rseau, il faut indiquer le masque de sous-rseau masque laide de loption netmask.
Enn, interface est linterface rseau vers laquelle doivent tre envoys les paquets qui vrient
les critres de slection de cette rgle.
Par exemple, la rgle de routage utiliser pour linterface loopback est la suivante :
route add -net 127.0.0.0 netmask 255.0.0.0 lo
Cette rgle signie que tous les paquets dont ladresse de destination appartient au sous-rseau de
classe A 127.0.0.0 doivent tre transfrs vers linterface loopback. Cela implique en particulier que
les paquets destination de la machine dadresse IP 127.0.0.1 (cest--dire la machine locale) seront
envoys vers linterface loopback (ils reviendront donc sur la machine locale).
Une autre rgle de routage classique est la suivante :
route add -net 192.168.0.0 netmask 255.255.255.0 eth0
Elle permet denvoyer tous les paquets destination du rseau de classe C192.168.0.0 vers la premire
interface Ethernet. Cest typiquement ce genre de rgle quil faut utiliser pour faire fonctionner un
rseau local.
Il nest normalement pas ncessaire dajouter les rgles de routage pour les rseaux auxquel la ma-
chine est connecte. En effet, la conguration dune carte rseau laide de la commande ifcong
ajoute automatiquement la table de routage une rgle pour envoyer les paquets destination de
ce rseau par linterface rseau qui y est connecte. Cependant, la commande route devient relle-
ment ncessaire lorsquil faut dnir les passerelles utiliser pour lenvoi des paquets destins une
machine laquelle la machine locale ne peut accder directement. Les rgles de routage faisant inter-
venir une passerelle sont semblables aux rgles de routage vues ci-dessus, ceci prs que ladresse IP
de la passerelle utiliser doit tre fournie. Pour cela, on utilise loption gw (abrviation de langlais
Gateway ). La syntaxe utilise est donc la suivante :
route add [-net | -host] adresse netmask masque gw passerelle interface
o passerelle est ladresse IP de la passerelle utiliser pour router les paquets qui vrient les
critres de cette rgle. Les autres paramtres sont les mmes que pour les rgles de routage classique.
Par exemple, supposons quune machine soit connecte un rseau dadresse 192.168.0.0, et que sur
ce rseau se trouve une passerelle dadresse 192.168.0.1 permettant datteindre un autre rseau, dont
ladresse est 192.168.1.0. Une machine du rseau 192.168.0.0 aura typiquement les rgles de routage
suivantes :
route add -net 192.168.0.0 netmask 255.255.255.0 eth0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1 eth0
232
Chapitre 9. Conguration du rseau
La premire rgle permet, comme on la dj vu, de communiquer avec toutes les machines du rseau
local. La deuxime rgle permet denvoyer la passerelle 192.168.0.1 tous les paquets destination
du rseau 192.168.1.0.
Inversement, si la passerelle utilise ladresse 192.168.1.15 sur le rseau 192.168.1.0, les machines de
ce rseau qui voudront accder au rseau 192.168.0.0 devront spcier la rgle de routage suivante :
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.15 eth0
Bien entendu, il est ncessaire que toutes les machines des deux rseaux utilisent ces rgles de routage
pour que la communication entre les deux rseaux se fasse dans les deux sens.
Le problme de ces rgles de routage est quelles spcient ladresse du rseau destination. Il est vi-
dement hors de question dutiliser une rgle de routage diffrente pour toutes les adresses de rseaux
possibles. Il est donc possible de dnir ce quon appelle une passerelle par dfaut, qui nest rien
dautre que la passerelle vers laquelle doivent tre envoys tous les paquets qui nont pas vri les
critres des autres rgle de routage. La syntaxe utiliser pour dnir la passerelle par dfaut est plus
simple, puisquil nest plus ncessaire de prciser les critres de slection :
route add default gw passerelle interface
o la signication des paramtres passerelle et interface est inchange.
Ainsi, pour reprendre lexemple prcdent, supposons que la machine 192.168.0.47 dispose dune
connexion Internet et soit congure pour partager cette connexion avec les machines du rseau
local. Pour que toutes les machines du rseau local puisse proter de cette connexion, il suft de
demander ce que tous les paquets qui ne vrient aucune autre rgle de routage soient envoys la
passerelle 192.168.0.47. Cela se fait avec la rgle de routage suivante :
route add default gw 192.168.0.47 eth0
9.2.3. Dnition du nom de la machine
La conguration du nom dun ordinateur nest pas proprement parler une opration indispensable,
mais elle permet de le nommer de manire plus conviviale quen utilisant son adresse IP. La com-
mande de base permettant de manipuler le nom de la machine locale est la commande hostname.
Appele telle quelle, elle renvoie le nom actuel de la machine :
hostname
Cette commande permet galement de modier ce nom, simplement avec la syntaxe suivante :
hostname nom
o nom est le nom utiliser. Il est dusage de nutiliser que le nom de la machine, sans son domaine.
Le nom de domaine est dtermin automatiquement par le systme partir des informations issues de
la conguration de la rsolution des noms de domaine. Nous verrons cela dans le paragraphe suivant.
Cette commande est donc trs simple utiliser, et elle est en gnral appele dans les scripts de
dmarrage du systme. La plupart des distributions utilisent le chier /etc/HOSTNAME pour stocker
233
Chapitre 9. Conguration du rseau
le nom de la machine. Vous tes bien entendu libre de choisir le nom que vous voulez pour votre
ordinateur, mais vous devez vous assurer que ce nom est unique dans votre domaine !
9.2.4. Rsolution des noms de domaine
La commande hostname ne permet de xer que le nom de la machine locale. Pour les autres machines
du rseau, il faut mettre en place les mcanismes de rsolution de noms de domaine. Comme il la dj
t indiqu au dbut de ce chapitre, il existe deux solutions pour trouver ladresse IP dune machine
partir de son nom : la consultation dune liste de noms stocke en local, soit linterrogation dun
serveur de noms de domaine.
Le chier /etc/host.conf permet de dnir le comportement du systme lors de la rsolution dun
nom. Sa structure est trs simple, puisquil y a une option de recherche par ligne. Dans la plupart des
cas, les lignes suivantes sont sufsantes :
order hosts,bind
multi on
Elles permettent dindiquer que la recherche des noms pour leur rsolution doit se faire dabord loca-
lement, puis par appel aux DNS si la recherche prcdente a chou. Cest en gnral le comportement
dsir. La deuxime ligne permet de faire en sorte que toutes les adresses correspondant une ma-
chine soient renvoyes. Si lon avait utilis loption multi off, seule la premire adresse IP trouve
aurait t renvoye.
La liste de noms locale est stocke dans le chier /etc/hosts (cela explique le nom hosts uti-
lis pour loption order dans le chier /etc/host.conf). Votre ordinateur connatra directement
ladresse IP de toutes les machines rfrences dans ce chier. Il est bon de placer ici une entre pour
les ordinateurs les plus couramment utiliss sur le rseau. Chaque entre commence par une adresse
IP, et est suivie de la liste des noms de la machine possdant cette adresse, spars par des espaces.
Pour ceux qui ne disposent pas de rseau local, ce chier doit tre relativement simple : seule la ligne
affectant ladresse 127.0.0.1 la machine locale (appele localhost ) doit sy trouver.
127.0.0.1 localhost
De la mme manire, le chier /etc/networks contient les adresses des rseaux. Ce chier est uti-
lis par la commande route pour donner un nom aux diffrents rseaux. Chaque entre est constitue
du nom du rseau, suivi de son adresse IP. Encore une fois, ce chier se rduit sa plus simple ex-
pression pour ceux qui nont pas de rseau local, puisquil ne contiendra tout au plus quune entre
pour le rseau loopback , sur lequel se trouve ladresse de retour 127.0.0.1. Cette entre aura donc
la forme suivante :
loopback 127.0.0.0
La conguration des serveurs de noms est en revanche une opration ncessaire si lon dsire accder
des machines dont on ne connat que le nom. Le chier de conguration utilis est cette fois le
chier /etc/resolv.conf. Sa structure est encore une fois trs simple, avec une option par ligne,
chaque option tant introduite par un mot cl.
234
Chapitre 9. Conguration du rseau
Le mot cl domain permet dindiquer le nom du domaine dont fait partie votre machine. Par exemple,
si votre nom de domaine est andromede.galaxie , vous devrez utiliser la ligne suivante :
domain andromede.galaxie
Le mot cl search permet quant lui de spcier une liste de noms de domaines ajouter par
dfaut aux noms de machines non compltement qualis. Les lments de cette liste doivent tre
spars par des espaces. La recherche dune machine dont le nom ne comprend pas la partie de
nom de domaine seffectue en ajoutant au nom de la machine les noms des domaines indiqus ici,
jusqu ce que la rsolution du nom en adresse IP russisse. Cette recherche commence bien entendu
par le nom de domaine local, sil a t dni. Il est donc recommand dindiquer votre nom de
domaine dans cette liste de noms de domaines. Par exemple, si votre machine fait partie du domaine
andromede.galaxie , vous devrez utiliser la ligne suivante :
search andromede.galaxie
Ainsi, si vous recherchez ladresse de la machine krypton , la requte au DNS se fera avec le nom
compltement quali krypton.andromede.galaxie . Vous tes bien entendu libre dajouter dautres
noms de domaines pour le cas o la rsolution de nom chouerait sur ce domaine.
Enn, loption nameserver est essentielle, puisquelle permet de donner les adresses IP des serveurs
de DNS auxquels doivent tre adresses les requtes de rsolution de noms. Par exemple, si vous
disposez de deux serveurs DNS, un primaire, dadresse 192.168.0.10, et un secondaire, dadresse
192.168.0.15, vous utiliserez la ligne suivante :
nameserver 192.168.0.10 192.168.0.15
Cette ligne est videmment obligatoire, faute de quoi la rsolution des noms de machines en adresse
IP chouera pour toute machine qui ne se trouve pas dans votre chier /etc/hosts.
9.2.5. Utilisation des protocoles DHCP et BOOTP
Gnralement, la gestion des adresses IP des machines devient rapidement une tche difcile sur
les grands rseaux, pour trois raisons. Premirement, il faut toujours sassurer que chaque machine
dispose bien dune adresse qui lui est propre, ce qui peut tre difcile si lon ne sorganise pas en
consquence. Deuximement, il faut que les chiers /etc/hosts de toutes les machines soient
jour, ce qui ncessite un travail proportionnel au nombre de machines administres. Enn, le nombre
dadresses IP disponibles peut se rduire, ce qui peut devenir gnant terme.
An de rsoudre ces problmes de conguration rseau, le protocole DHCP (abrviation de langlais
Dynamic Host Conguration Protocol ) a t dni. Il sagit dun protocole qui permet aux ma-
chines connectes sur un rseau dinterroger un serveur dadresses du rseau capable de grer
une liste dadresses et de les affecter dynamiquement aux machines du rseau. En fait, ce protocole
permet de fournir plus dinformations que les simples adresses IP, comme par exemple la route par
dfaut que les machines doivent utiliser, ainsi que les adresses des serveurs de noms du rseau.
Un autre protocole semblable DHCP a galement t dvelopp dans le but de permettre la con-
guration rseau des machines ds leur dmarrage : le protocole BOOTP (abrviation de langlais
235
Chapitre 9. Conguration du rseau
BOOTstrap Protocol ). Ce protocole est videmment plus lger que DHCP, mais permet aux ma-
chines dobtenir dynamiquement leur conguration rseau ds leur dmarrage, avant mme que ne
soient monts les systmes de chiers. Ce protocole est donc particulirement utile pour faire dmar-
rer des machines sans disque, pour lesquelles le systme de chiers racine est mont en NFS.
La manire la plus simple de congurer les protocoles DHCP et BOOTP sur un poste client est
dutiliser les fonctionnalits dauto-conguration du noyau. Cependant, il est galement possible
deffectuer cette conguration au niveau utilisateur laide de programmes complmentaires. Les
deux sections suivantes dcrivent ces deux techniques.
9.2.5.1. Autoconguration des clients DHCP et BOOTP
La conguration des protocoles DHCP et BOOTP ne comporte aucune difcult particulire lorsque
lon utilise les fonctionnalits dautoconguration du noyau. Ces fonctionnalits tant prises en charge
au niveau du noyau, il va vous falloir recompiler un nouveau noyau pour en bncier. Cette opration
en revanche est relativement technique, et doit tre faite avec soin. La manire de procder a t dcrite
en dtail dans la Section 7.3.
Loption activer pour permettre lutilisation du protocole BOOTP est loption IP: kernel
level autoconfiguration du menu Networking options . Cette option vous permettra
de slectionner le protocole dauto-conguration rseau que le noyau devra utiliser lors de son
amorage. Vous devrez alors choisir loption IP: DHCP support (NEW) ou loption IP:
BOOTP support (NEW) pour activer respectivement les protocoles DHCP et BOOTP.
Note : Vous remarquerez quil existe galement un autre protocole dauto-conguration du rseau
au dmarrage : le protocole RARP. Ce protocole fournit les mmes services que le protocole
BOOTP, mais est plus ancien. Il nest donc plus conseill de lutiliser, sauf vous vous trouvez sur
un rseau pour lequel seul le protocole RARP est disponible.
Une fois ces options slectionnes, vous pourrez recompiler votre noyau, linstaller et redmarrer la
machine. Lors du dmarrage, le noyau doit chercher un serveur DHCP ou un serveur BOOTP sur le
rseau local pour effectuer la conguration rseau de votre carte rseau.
Note : Vous devrez peut-tre galement activer les options NFS file system support et
Root file system on NFS du menu Network File Systems si vous dsirez faire dmarrer
votre machine sur un systme de chiers racine mont en NFS lors du dmarrage.
9.2.5.2. Conguration dun client DHCP au niveau utilisateur
Il est galement possible de congurer les clients DHCP au niveau utilisateur, laide de programmes
complmentaires. Comme sur la plupart des machines Unix, le programme utiliser est le pro-
gramme dhclient. Ce programme est gnralement lanc dans les scripts de dmarrage des machines,
et envoie des paquets de demande de conguration sur le rseau ladresse de diffusion gnrale
255.255.255.255. Ces paquets sont donc susceptibles dtre captes par toutes les machines du rseau,
mais seuls les serveurs DHCP y rpondent. Les rponses obtenues sont alors analyss par dhclient,
qui congure en consquence linterface rseau et passe ensuite en arrire-plan.
Les informations envoyes par les serveurs DHCP peuvent tre plus ou moins compltes, la base tant
bien sr ladresse IP de la machine et son masque de sous-rseau. Il est toutefois possible de donner
236
Chapitre 9. Conguration du rseau
plus dinformations, comme par exemple les adresses des serveurs de noms, des routes par dfaut et
des passerelles utiliser.
Les adresses IP attribues aux clients ne sont pas permanentes, car le protocole DHCP est avant tout
destin la conguration automatique des postes itinrants ou susceptibles de redmarrer souvent.
Par consquent, ces adresses sont fournies dans le cadre dun bail, dont la dure maximum est xe
par le serveur. Ds que le bail obtenu par un client expire, celui-ci doit chercher le renouveler.
Cest encore le programme dhclient qui sen charge. Cest la raison pour laquelle celui-ci passe en
arrire-plan aprs avoir congur linterface pour la premire fois : il attend la n des baux de la
machine sur laquelle il tourne et cherche les renouveler. Si un client ne renouvelle pas ce bail (parce
quil est arrt par exemple), le serveur DHCP peut rutiliser son adresse IP et laffecter une autre
machine. Bien que les serveurs DHCP sefforcent gnralement de conserver les adresses IP des
clients chaque bail, un client congur par DHCP ne peut donc pas considrer que son adresse IP
restera toujours la mme. Cest la contrepartie de la exibilit.
Si aucun serveur DHCP ne peut tre contact lors du dmarrage, dhclient abandonne temporairement
et ressaie au bout dun temps alatoire. Au bout dun certain nombre dessais non fructueux, il
peut dcider de congurer les interfaces rseau avec les adresses IP des anciens baux obtenus par
la machine. Pour cela, il mmorise dans le chier de conguration /var/db/dhclient.lease les
adresses IP de ces anciens baux. Ce chier est priodiquement rcrit avec la liste des adresses des
baux valides an dviter quil ne se remplisse ad vitam eternam.
Bien entendu, les postes clients ne peuvent pas choisir leurs adresses IP sans vrication dunicit.
Dans le cas de labsence de serveur DHCP (et donc dautorit centrale), les clients qui dmarrent
interrogent les machines dj prsentes sur le rseau pour dterminer si ladresse quils envisagent
de prendre est bien libre. Dans le cas contraire, une autre adresse est essaye, et ainsi de suite. Ainsi,
mme en cas de panne de tous les serveurs DHCP dun rseau, les postes clients peuvent toujours
travailler ensemble sans conit dadresses IP.
Comme vous pouvez le constater, le comportement de dhclient est relativement complexe et dpend
de nombre de paramtres. Tous ces paramtres peuvent tre dnis dans le chier de conguration
/etc/dhclient.conf. Ce chier contient en particulier les diffrentes dures intervenant dans le
choix des adresses IP, comme par exemple la dure minimale dun bail, les dures entre chaque
tentatives de conguration, les informations qui doivent tre rcupres des serveurs DHCP, ainsi que
les valeurs par dfaut pour ces informations lorsque les serveurs ne les fournissent pas. Le chier de
conguration dhclient.conf est donc relativement complexe. Heureusement, dhclient utilise des
options par dfaut qui conviennent dans la plupart des cas, aussi est-il fortement probable que votre
chier dhclient.conf soit vide. Si toutefois vous dsirez en savoir plus, vous pouvez consulter la
page de manuel dhclient.conf.
La conguration DHCP pour les postes clients se rduit donc lessentiel : le lancement de dhclient.
Celui-ci sutilise avec la syntaxe suivante :
dhclient interface0 [interface1 [...]]
o interface0, interface1, etc., sont les interfaces rseau qui doivent tre congures par DHCP.
On ne peut donc pas faire plus simple...
Note : Sous Linux, le programme dhclient utilise les fonctionnalit daccs direct aux cartes
rseau et de ltrage des paquets. Ces deux fonctionnalits peuvent tre actives dans la cong-
uration du noyau laide des options Packet socket , Packet socket: mmapped IO et
Socket Filtering du menu Networking options . Loption IP: multicasting de la
liste des options du protocole IP devra galement tre active. Le dtail de la conguration et de
la compilation du noyau a t vu dans la Section 7.3.
237
Chapitre 9. Conguration du rseau
9.2.6. Dnition des protocoles de haut niveau
Comme nous lavons vu plus haut, le protocole IP fournit les mcanismes de base pour la transmission
des paquets. Plusieurs protocoles de plus haut niveau ont t dnis pour fournir des services valeur
ajoute, qui satisfont donc plus aux besoins des applications. Tous ces protocoles sont encapsuls
dans le protocole IP, ce qui signie que leurs informations sont transmises en tant que donnes dans
les paquets IP.
En ralit, les paquets du protocole IP contiennent un champ permettant de signaler le type de pro-
tocole de haut niveau dont ils transportent les informations. chaque protocole est donc attribu un
identicateur numrique qui lui est propre, et qui permet aux services rseau dinterprter les donnes
des paquets.
Tout comme les adresses IP, ces numros identiant les protocoles ne sont pas trs intressants pour
les humains, qui leur prfre videmment le nom du protocole. Certains programmes rseau utilisent
donc ces noms pour identier les protocoles. Pour leur permettre de faire lassociation entre ces noms
et les identicateurs numriques, le chier /etc/protocols est utilis.
Le format de ce chier est trs simple. Il contient une ligne pour chaque protocole, constitue du
nom du protocole, de la valeur de son identicateur, et des autres noms que ce protocole peut avoir
(cest--dire ses alias). Parmi ces protocoles, les plus importants sont les suivants :
Nom Numro Alias
ip 0 IP
icmp 1 ICMP
tcp 6 TCP
udp 17 UDP
Comme on le voit, le protocole IP dispose lui-mme dun identicateur de protocole (qui vaut 0
en loccurrence). Cet identicateur est un identicateur de pseudo protocole , parce quIP est en
fait le protocole de base. ICMP est identi par le numro 1, TCP par le numro 6 et UDP par le
numro 27. Il existe beaucoup dautres protocoles, qui ne seront pas dcrits ici. Bien entendu, le
chier /etc/protocols fourni avec votre distribution doit dj contenir la dnition de la plupart
des protocoles.
De la mme manire, la plupart des ports TCP et UDP sont affects des services bien dnis,
et certains programmes rseau peuvent chercher faire la correspondance entre les noms de ces
services et les numros de ports. Cette correspondance est stocke dans le chier de conguration
/etc/services.
Les informations concernant les services sont donnes raison dune ligne par service. Chaque ligne
suit la syntaxe suivante :
nom port/protocole alias
o nom est le nom du service dcrit par cette ligne, port est le numro du port utilis par ce service,
protocole est le nom du protocole utilis par ce service (ce peut tre tcp ou udp ), et alias
la liste des autres noms sous lesquels ce service est galement connu.
Vous trouverez les principaux services dans lextrait donn ci-dessous :
Service Port/Protocole
ftp 21/tcp
238
Chapitre 9. Conguration du rseau
Service Port/Protocole
telnet 23/tcp
smtp 25/tcp
pop3 110/tcp
irc 194/tcp
irc 194/udp
Comme vous pouvez le constater, ces services nont pas dalias. Ces informations sont donnes uni-
quement titre dexemple. Il va de soi que le chier /etc/services fourni avec votre distribution
contient la dnition dun grand nombre de services, et vous naurez en gnral pas y toucher.
9.2.7. Les super-dmons inetd et xinetd
La plupart des services rseau sont grs par des programmes qui sexcutent en permanence et qui
attendent des connexions sur un port TCP ou UDP. Ces programmes consomment relativement peu
de ressources car ils passent la plupart de leur temps attendre ces connexions. Ils ne se rveillent
que lorsquun client se connecte effectivement et leur envoie une requte.
Cependant, ils peuvent tre relativement nombreux, et si tous les services sont lancs simultanment,
ils peuvent nir par consommer une part non ngligeable des ressources systme. Cest pour cette
raison que les super-dmons inetd (de langlais InterNET Daemon ) et xinetd (de langlais
eXtended INETD ) ont t crs. Ces dmons sont lcoute des demandes de connexion des clients
pour les autres services rseau, et ne lancent ceux-ci que lorsquun client se connecte sur leurs ports.
Une fois lancs, les vritables dmons reprennent la main et communiquent directement avec leurs
clients. Ainsi, inetd et xinetd coutent les ports pour tout le monde, et sont la plupart du temps
les seuls fonctionner. Les ressources systme sont donc conomises et les services rseau sont
dmarrs et arrts la demande.
Le super-dmon xinetd est appel remplacer inetd, qui lui est beaucoup plus ancien et nettement
moins souple. En pratique, un seul de ces super-dmons doit tre dmarr sur une machine (il est
inutile de les lancer tous les deux, car les clients ne peuvent se connecter qu un seul dentre-eux de
toutes manires). Les deux sections suivantes dcrivent la conguration de ces super-dmons.
9.2.7.1. Le super-dmon inetd
Le super-dmon inetd laisse de plus en plus la main au nouveau super-dmon xinetd qui est beaucoup
plus puissant, mais reste toutefois trs utilis sur de nombreuses machines. Sa description nest donc
pas inutile, car toutes les distributions nutilisent pas encore xinetd.
Le super-dmon inetd utilise le chier de conguration /etc/inetd.conf pour dterminer les ports
sur lesquels il doit attendre des connexions de la part des clients, et pour trouver le service rseau quil
doit lancer lorsquune telle connexion arrive. Ce chier est structur en lignes, dont chacune dcrit
un des services que le dmon inetd prend en charge. Les informations donnes sur ces lignes sont les
suivantes :
le nom du service (tel quil est dni dans la premire colonne du chier /etc/services) dont
inetd doit surveiller les requtes ;
le type de canal de communication rseau utilis, en gnral stream (pour les communications
en mode connect, donc en gnral celles qui utilisent le protocole TCP) ou dgram (pour les
239
Chapitre 9. Conguration du rseau
communications bases sur les datagrammes, donc typiquement les communications utilisant le
protocole UDP) ;
le protocole rseau utilis ( tcp ou udp ) par ce service ;
lun des mots cls wait ou nowait, qui permettent dindiquer si inetd doit attendre la n de
lexcution du dmon grant le service ou sil peut attendre de nouvelles requtes de la part des
clients ;
le nom de lutilisateur au nom duquel le dmon grant ce service doit fonctionner (en gnral, cest
lutilisateur root) ;
le chemin sur le chier excutable de ce dmon ;
les ventuels paramtres en ligne de commande pour ce dmon, en commenant par largument 0,
qui doit toujours tre le nom du chier excutable du programme lui-mme.
Par exemple, la ligne suivante permet de lancer le dmon telnetd sur toute requte via le protocole
TCP pour le service telnet :
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
Il est suppos ici que le dmon en charge de ce service peut tre lanc avec le programme
/usr/sbin/in.telnetd.
Le dmon inetd est capable de fournir lui-mme un certain nombre de services de base, et il nest pas
ncessaire de fournir un dmon pour ces services. Dans ce cas, il faut utiliser le mot cl internal
la place du nom du chier excutable du dmon de ce service. Les paramtres doivent galement tre
remplacs par le mot cl internal.
En fait, il est fort peu probable que votre chier de conguration /etc/inetd.conf dnisse les
services comme indiqu dans cette section. En effet, un programme intermdiaire en charge dassurer
des contrles de scurit est souvent intercal entre inetd et les dmons grant les services. Nous
verrons ce que fait exactement ce programme dans une prochaine section.
9.2.7.2. Le super-dmon xinetd
Le super-dmon xinetd utilise un autre chier de conguration que celui du super-dmon inetd. Pour
xinetd, la dnition des services mis disposition des clients se fait dans le chier de conguration
/etc/xinetd.conf. Toutefois, contrairement au chier inetd.conf, le chier xinetd.conf peut
inclure dautres chiers de conguration et rfrencer des rpertoires contenant les chiers de con-
guration spciques aux services. Ainsi, la conguration des services est beaucoup plus modulaire et
se fait plus facilement.
En pratique, il est dusage de dnir les options par dfaut pour tous les services dans le chier de
conguration /etc/xinetd.conf, et de dcrire les diffrents services dans des chiers complmen-
taires stocks dans le rpertoire /etc/xinetd.d/. Ce rpertoire est alors inclus directement dans le
chier xinetd.conf laide de la directive includedir ddie cet usage.
Les chiers de conguration de xinetd sont constitus de sections permettant de dcrire les services
pris en charge, ou tout simplement les options par dfaut applicables tous les services. La forme
gnrale de ces sections est la suivante :
service
{
240
Chapitre 9. Conguration du rseau
option oprateur valeur [valeur [...]]
option oprateur valeur [valeur [...]]
...
}
o service est le nom du service (ou defaults pour les options par dfaut), option est un mot-cl
identiant une des options de ce service, et oprateur est lun des oprateurs = (pour la dnition
de la valeur dune option ou lcrasement de sa valeur prcdente), += (pour complter la liste de
valeurs dune option) ou -= (pour supprimer une valeur de la liste de valeurs dune option). Les
valeurs des options peuvent tre multiples, et leur nature dpend des options utilises.
Les principales options utilisables dans ces sections sont les suivantes :
Option Signication
id Identicateur du service, pour le cas o plusieurs sections devraient tre
dnies pour un mme service. Cette possibilit est utilise lorsque lon
dsire fournir des options diffrentes pour un mme service. Lentre
choisie (et donc le jeu doptions choisi) dpend dans ce cas de critres
dnis par exemple sur linterface rseau ou sur les adresses des clients.
type Permet dindiquer la nature du service dcrit par cette section.
Gnralement, cette option na pas tre donne, sauf lorsque lon veut
forcer la mthode dimplmentation dun service. Par exemple, il est
possible de donner la valeur INTERNAL cette option pour utiliser lun
des services implments par xinetd en interne.
server Permet de donner le chemin sur lexcutable du dmon prenant en
charge le service dcrit.
server_args Permet de donner les paramtres en ligne de commande du dmon
prenant en charge le service. Notez que, contrairement ce qui se fait
avec inetd, il ne faut gnralement pas donner le nom de lexcutable
en premier argument dans cette option. Cette rgle peut toutefois tre
rendue fausse en ajoutant la valeur NAMEINARGS dans loption flags
dcrite ci-dessous.
socket_type Le type de canal de communication utilis ( stream ou dgram ,
comme pour inetd).
protocol Le protocole rseau utilis par le service ( tcp ou udp , comme
pour inetd).
port Le port sur lequel le service peut tre trouv. Cette option est
facultative. Si elle nest pas indique, le numro de port utilis sera
celui indiqu dans le chier de conguration /etc/services pour le
service en cours de conguration.
wait Lindicateur de capacit du dmon grer plusieurs connexions
simultanment. Les valeurs que lon peut donner cette option sont
yes et no , respectivement pour indiquer que le dmon peut
grer plusieurs connexions simultanment ou non. Dans ce dernier cas,
le dmon xinetd lancera plusieurs instances du dmon grant le service
si plusieurs clients cherchent se connecter simultanment. Le nombre
maximum dinstance peut toutefois tre contrl laide des options
instances et per_source dcrites ci-dessous.
241
Chapitre 9. Conguration du rseau
Option Signication
flags Les paramtres permettant de contrler diffrents aspects du service.
Les options les plus courantes sont IDONLY , qui permet de
nautoriser que les connexions provenant de machines disposant dun
serveur didentication des clients, NORETRY , qui permet dviter
de ressayer de lancer le dmon du service si le lancement prcdent a
chou, et NAMEINARGS, qui permet dindiquer que le nom de
lexcutable doit tre spci en premier paramtre dans loption
server_args.
user Le compte utilisateur dans lequel le dmon prenant en charge le service
doit tre lanc. Cette option ne peut bien entendu pas tre utilise pour
les services grs en interne par xinetd.
interface Linterface laquelle le service est attach. Cette option permet de
dnir plusieurs congurations pour un mme service et daffecter ces
diffrentes congurations des interfaces rseau distinctes. Pour
lheure, seul ladresse IP de linterface rseau peut tre spcie grce
cette option, ce qui impose davoir des adresses IP xes.
only_from La liste des adresses des machines autorises se connecter. Il est
possible de spcier les adresses IP explicitement ou laide dune
adresse et dun masque de sous-rseau. Les noms de domaines peuvent
galement tre utiliss. Dans ce cas, le nom nest pas transform en
adresse IP. Au contraire, cest ladresse du client qui est retransforme
en nom de machine pour vrier sil a le droit de se connecter. Notez
que labsence de ce champ indique que, par dfaut, laccs est accord
toutes les machines (sauf celles explicitement interdites de connexion
par loption no_access dcrite ci-dessous). En revanche, la prsence
de ce champ mais sans valeur permet dinterdire laccs toutes les
machines.
no_access La liste des adresses des machines qui nont pas le droit de se
connecter. Les adresses peuvent tre spcies de la mme manire que
pour loption only_from. Si une adresse vrie les critres des deux
options only_from et no_access, cest loption dont le critre est le
plus prcis qui est choisie.
access_times La priode pendant laquelle le service est accessible. Cette priode peut
tre exprime sous la forme dune liste dintervalles
heure:minute-heure:minute .
instances Permet dindiquer le nombre maximum dinstances dun mme dmon
que xinetd peut lancer. Cette option permet donc de spcier un
nombre de connexions maximum pour chaque service.
per_source Permet dindiquer le nombre maximum dinstances dun mme dmon
que xinetd peut lancer pour un mme client (identi par son adresse
IP). Cette option permet donc de limiter le nombre de connexions dun
client, de manire indpendante du nombre de connexions total donn
par loption instances.
242
Chapitre 9. Conguration du rseau
Option Signication
cps Permet de limiter dans le temps le nombre de connexions entrantes pour
un service, an dviter les attaques par dni de service. Cette option
prend deux paramtres, le premier tant le nombre maximum de
demandes de connexion par seconde que xinetd peut accepter. Si ce
nombre est dpass le service est dsactiv pendant le nombre de
secondes indiqu par le deuxime paramtre.
disabled Permet de dsactiver globalement des services, en indiquant leurs noms
en paramtre. Par dfaut, aucun service nest dsactiv. Cette option ne
peut tre utilise que dans la section defaults, car elle permet de
dsactiver globalement et rapidement un ensemble de services.
enabled Permet de donner la liste des services pris en charge. Cette option
fonctionne de manire similaire loption disabled, ceci prs
quelle fonctionne en logique inverse. Labsence de cette option
implique lactivation de tous les services, sauf ceux qui sont lists dans
loption disabled. En revanche, ds que cette option est dnie, seuls
les services lists sont dmarrs. Tout comme loption disabled, cette
option ne peut tre utilise que dans la section globale defaults.
disable Permet de dsactiver les services de manire unitaire. Cette option est
utilise dans les sections des services, an dindiquer de manire plus
ne quavec les options enabled et disabled sils doivent tre activs
ou non. Cette option peut prendre deux valeurs : yes ou no . La
premire permet de dsactiver le service et la deuxime de le garder
fonctionnel. Notez que les options enabled et disabled ont priorit
loption disable. Ainsi, un service dsactiv par lune de ces options
ne peut pas tre ractiv en attribuant la valeur no loption disable.
log_type Mthode denregistrement des vnements du dmon xinetd. Il est
possible dutiliser le dmon syslog pour enregistrer les vnements de
connexion et de dconnexion des utilisateurs, ou directement un chier
texte. Dans le premier cas, il faut utiliser la valeur SYSLOG suivie de la
classe denregistrement (gnralement daemon) et du niveau de trace
(gnralement info). Dans le deuxime cas, il faut spcier la valeur
FILE et indiquer les limites basse et haute de la taille du chier au del
desquelles un avertissement est gnr, puis les traces sont arrtes.
log_on_success Informations enregistres lors de lacceptation dune connexion. xinetd
peut enregistrer diffrentes informations lorsquune nouvelle connexion
est accepte. Ces informations sont indiques grce la liste des
mots-cls spcis par cette option. Les mots-cls utilisables sont
PID , pour enregistrer lidentiant de processus du dmon qui
traitera la requte, HOST , pour enregistrer le nom de la machine
cliente, USERID , pour enregistrer le nom de lutilisateur (si celui-ci
peut tre obtenu par le service didentication de sa machine),
EXIT , pour enregistrer la terminaison du dmon qui traite la
requte, et DURATION , pour enregistrer la dure de la connexion.
243
Chapitre 9. Conguration du rseau
Option Signication
log_on_failure Informations enregistres lors dun refus de connexion. Les
informations enregistres lors dun refus de connexion peuvent tre
spcies laide de cette option, de la mme manire que les
informations de connexion peuvent tre enregistres laide de loption
log_on_success. Les mots-cls utilisables avec cette option sont
ATTEMPT , pour signaler simplement que la tentative a chou,
HOST , pour enregistrer le nom de la machine depuis laquelle la
tentative a t effectue, et USERID , pour enregistrer le nom de
lutilisateur tel quindiqu par le service didentication de sa machine.
Toutes les options disponibles ne sont pas dcrites dans le tableau prcdent. Vous pourrez obtenir de
plus amples renseignements en consultant la page de manuel xinetd.conf.
La section defaults permet de dnir les options par dfaut applicables tous les services. Les
options qui y sont dnies peuvent toutefois tre rednies ou prcises laide des oprateurs =,
+= et -= dans les sections des diffrents services. Les options utilisables dans la section defaults
et que lon a vu ci-dessus sont les options bind, log_type, log_on_success, log_on_failure,
instances, per_source, only_from, no_access, disabled et enabled.
Gnralement, le chier /etc/xinetd.conf ne contient que la section default et une ligne
dinclusion du rpertoire /etc/xinetd.d/, dans lequel se trouvent les chiers de conguration des
diffrents services. Lexemple suivant prsente donc un chier xinetd.conf typique :
# Dfinition des options par dfaut :
defaults
{
# On interdit la connexion tout le monde par dfaut :
only_from =
# On dsactive les services internes :
disabled = echo time daytime chargen discard
# On dsactive les services dadministration de xinetd :
disabled += servers services xadmin
# On limite le nombre dinstances total des services :
instances = 15
# On dfinit les rgles de suivi des connexions :
log_type = FILE /var/log/servicelog
log_on_success = HOST PID USERID DURATION EXIT
log_on_failure = HOST USERID RECORD
}
# Inclusion des fichiers de configuration des services :
includedir /etc/xinetd.d
Lexemple suivant prsente la dnition du service telnet situe dans le chier de conguration
/etc/xinetd.d/telnet :
service telnet
244
Chapitre 9. Conguration du rseau
{
socket_type = stream
# Le numro de port et le protocole utiliss peuvent tre omis
# car ils sont dj dfinis dans /etc/services.
server = /usr/sbin/in.telnetd
user = root
wait = no
only_from = localhost
disable = no
}
Note : xinetd ninclue pas les chiers contenant un point (caractre .) ni ceux nissant par un
tilde (caractre ~). En particulier, on vitera de mettre une extension aux chiers de conguration
des services, puisque dans ce cas ils contiendraient un point et ne seraient pas lus.
9.2.8. Conguration de la scurit du rseau
La scurit dun rseau nest pas quelque chose prendre la lgre, surtout lorsquon commence
transmettre des donnes personnelles sur le rseau. Internet nest absolument pas sr, car nombre
de personnes curieuses, peu discrtes ou franchement mal intentionnes ont un accs privilgi aux
machines qui sy trouvent.
Bien quil soit impossible de raliser un systme sr 100%, la situation actuelle est franchement
catastrophique et si cela continue comme cela, la seule chose de sre, cest quon va aller droit dans
le mur. Entre ne rien faire du tout et se xer un niveau de scurit raisonnable permettant de limiter
les dgts, il y a un grand pas. Cette section na donc pas pour but de vous transformer en expert
en scurit (nen tant pas un moi-mme, je serais bien incapable den crire une ayant cet objectif),
mais de vous prsenter les principes de base et le minimum requis pour laisser les mauvaises surprises
aux autres.
Le principe de base de la scurit est de ne faire conance quau minimum possible de gens. Ce
nest pas un comportement paranoaque, mais simplement du bon sens : puisquon ne peut garantir la
abilit dun systme 100%, il faut en restreindre les accs aux personnes habilites. Dune manire
gnrale, la plupart des surprises dsagrables dans le monde environnant proviennent du mauvais
jugement des personnes. Il est est de mme dans le domaine de la scurit informatique, il ne faut
donner un accs quaux personnes que lon connat rellement bien, et ne fournir des services rseau
quaux personnes et machines qualies de sres . Il va de soi que lorsquil y a un loup dans la
bergerie, tout peut aller trs mal trs vite.
Cela est dautant plus important que la plupart des dmons ont besoin davoir les privilges du compte
root pour sexcuter. Cela peut gnrer des problmes de scurit si daventure une personne mal in-
tentionne dcouvrait le moyen de les dtourner de leur fonction initiale et de leur faire accomplir des
tches au nom de ladministrateur. Bien entendu, les dmons sont des programmes trs bien crits, qui
vrient gnralement toutes les requtes demandes par les clients avant de les satisfaire. Cependant,
tout programme peut comporter des failles et laisser ainsi un accs indsir au sein du systme. Au-
tant liminer directement le problme en ne lanant que les services rellement ncessaires sur votre
machine.
245
Chapitre 9. Conguration du rseau
La premire des rgles est donc de rduire au maximum les services offerts par votre machine sur
le rseau. Mais cela ne suft pas pour dormir tranquille : le fait de ne laisser aucune connexion
entrante se faire nempche pas un cracker potentiel de prendre votre identit sur les autres machines
du rseau... Il faut donc galement sassurer que vos communications sortantes se ralisent dans des
conditions de scurit sufsantes. Or, et cest sans doute l le plus gros problme, la plupart des
protocoles rseau ne cryptent pas leur donnes et laissent passer toutes les informations en clair sur
le rseau, y compris les mots de passe ! Il est donc impratif, lorsque lon dsire transmettre des
informations sensibles, de recourir des techniques de cryptage ables.
Les sections suivantes vous prsenteront donc la manire de procder pour limiter au maximum les
services disponibles sur votre machine, contrler laccs aux diffrents services de votre machine,
raliser des connexions ables entre deux machines, et pour crer un rseau priv virtuel crypt,
mme via un canal peu sr comme peu ltre Internet.
9.2.8.1. Limitation des services au strict minimum
Les services rseau dun systme Linux sont nombreux, mais la plupart du temps inutiles pour
lemploi que lon veut faire de son ordinateur. Par consquent, il vaut mieux tout simplement ne
pas les proposer au monde extrieur, simplement en ne lanant pas les dmons correspondants. Pour
cela, il suft de commentant les lignes des services inutiles dans le chier /etc/inetd.conf ou
dajouter une ligne disable = true dans les chiers de conguration des services inutiles du
rpertoire /etc/xinetd.d/ si votre distribution utilise le super-dmon xinetd. Faire le mnage dans
ces chiers et dans les chiers dinitialisation du rseau rduit donc de 90% les risques dune intrusion
dans votre systme.
9.2.8.2. Dnition de rgles de contrle daccs
Restreindre le nombre de services accessibles nest toutefois pas sufsant, il faut galement res-
treindre le nombre des personnes et des machines auxquels les services rseau restants sont proposs.
Sur une machine de particulier, lquation est souvent simple : personne ne doit pouvoir sy connec-
ter par le rseau, pour quelque service que ce soit ! Bien entendu, certains particuliers possdent un
rseau priv et devront donc afner cette rgle pour ne permettre les connexions que sur le rseau
local. Il faut donc tre capable dempcher les accs provenant de certaines machines, considres
comme peu ables. La rgle est encore une fois trs simple : doit tre considre comme dangereuse
tout machine trangre au rseau local.
La manire de procder dpend du super-dmon utilis. En effet, alors que xinetd permet de dnir
les adresses des machines autorises se connecter de manire prcise, inetd ne permet pas de le faire
lui-mme et requiert laide dun autre dmon, le dmon tcpd.
9.2.8.2.1. Restrictions daccs avec tcpd
Le principe de fonctionnement du dmon tcpd est le suivant : il sintercale entre le super-dmon
inetd et les dmons que celui-ci est suppos lancer lorsquun client le demande. Ainsi, il lui est
possible deffectuer des vrications de scurit primaires, principalement bases sur les adresses IP
des clients.
Comme vous pouvez sans doute le constater dans le chier /etc/inetd.conf de votre systme,
tcpd est lanc par inetd pour quasiment tous les services, et reoit en paramtres de la ligne de
commande le nom du dmon lancer si la machine cliente en a lautorisation, ainsi que les paramtres
communiquer ce dmon. Laccs quasiment tous les services est donc contrl par tcpd.
tcpd utilise les deux chiers de conguration /etc/hosts.allow et /etc/hosts.deny pour d-
terminer si une machine a le droit daccder un service donn. Le premier de ces chiers indique
246
Chapitre 9. Conguration du rseau
quelles sont les machines autorises utiliser certains services locaux. Le deuxime chier indique
au contraire les machines qui ne sont pas considres comme sres et qui doivent se voir refuser toute
demande de connexion sur les services locaux.
Le format de ces deux chiers est identique. Il est constitu de lignes permettant de dnir les rgles
daccs pour certains dmons. Chaque ligne utilise la syntaxe suivante :
dmons : machines [: commande]
o dmons est une liste de noms de dmons, spars par des virgules, et machines est une liste de
noms de machines ou dadresses IP, galement spars par des virgules. commande est un paramtre
optionnel permettant de faire excuter une action tcpd lorsque la rgle indique par cette ligne est
prise en compte.
Une rgle dnie par une de ces lignes est utilise ds quune des machines indiques dans la liste
des machines tente une connexion lun des services de la liste des services. Si la rgle se trouve
dans le chier /etc/hosts.allow, la connexion est autorise et le service est lanc par tcpd. Si elle
se trouve dans le chier /etc/hosts.deny, la connexion est systmatiquement refuse. Si aucune
rgle nest utilise, la connexion est accepte par dfaut.
Les listes de machines peuvent contenir des noms de machines partiels, et utiliser des caractres g-
nriques. Il est galement possible dinterdire la connexion toutes les machines dun domaine en
ne donnant que le nom de domaine (prcd dun point). Enn, des mots cls spciaux permettent
de reprsenter des ensembles de machines. Par exemple, le mot cl ALL reprsente toutes les ma-
chines et LOCAL reprsente toutes les machines du rseau local. Le mot cl ALL permet galement de
reprsenter lensemble des dmons dans la liste des dmons.
Par exemple, le chier /etc/hosts.deny devrait contenir la ligne suivante :
# Exemple de fichier /etc/hosts.deny :
ALL : ALL
Cela permet de garantir que, par dfaut, aucune demande de connexion nest accepte, ce qui est un
comportement sain. Les machines ayant le droit de se connecter doivent tre spcies au cas par cas
dans le chier /etc/hosts.allow, comme dans lexemple suivant :
# Exemple de fichier /etc/hosts.allow :
telnetd, ftpd : LOCAL
Cela permet dautoriser les connexions telnet et ftp pour toutes les machines du rseau local unique-
ment.
Vous trouverez de plus amples renseignements sur le fonctionnement de tcpd dans la page de manuel
hosts_access(5).
Note : Comme vous pouvez le constater si vous comparez les lignes du chier de conguration
/etc/inetd.conf utilisant tcpd et celles qui ne lutilisent pas, la liste des paramtres passs
tcpd par inetd est diffrente de celle utilise pour les dmons lancs directement. En effet, elle
ne comprend pas le nom de tcpd lui-mme, alors que pour les dmons, elle contient le nom du
dmon en premier paramtre. Cette diffrence provient du fait que le premier argument pass en
ligne de commande est le nom du programme lui-mme, sauf pour tcpd. En effet, tcpd suppose
que ce paramtre contient le nom du dmon dont il contrle laccs, et non son propre nom.
247
Chapitre 9. Conguration du rseau
La scurit base sur tcpd suppose que les adresses IP source des paquets reus sont ef-
fectivement les adresses IP des machines qui les ont envoyes. Malheureusement, cette hy-
pothse ne peut pas tre vrie pour les adresses autres que les adresses des rseaux con-
sidrs comme srs (par exemple le rseau local), car le protocole IP ninclut aucun mcanisme
dauthentication. Par consquent, nimporte qui peut tenter de communiquer avec votre machine
au nom dune autre machine (technique nomme IP spoong en anglais), quil aura au pral-
able mis hors dtat de se manifester (par exemple par une attaque de type DoS, Denial of
Service en anglais). tcpd tente par dfaut de contrler ce genre de pratique en vriant que le
nom indiqu par la machine qui se connecte correspond bien ladresse IP quelle utilise. Ainsi,
pour passer cette protection, il faut dabord infecter un DNS. Cependant, ce genre dattaque (dite
dinterposition) reste courant, surtout sur les rseaux dont les DNS sont insufsamment protgs
(une tude rcente a montr que ctait le cas de trois DNS sur quatre en France). Par con-
squent, vous ne devez pas vous reposer uniquement sur tcpd et les techniques de rewalling si
vous devez crer un site rellement sr. En particulier, vous devriez vous intresser aux rseaux
virtuels et au cryptage des donnes, choses que lon dcrira dans la Section 9.2.8.4. Le protocole
Ipv6 intgrera des mcanismes dauthentication et sera donc nettement plus sr. Bien entendu,
cela dpasse le cadre de ce document.
Le dmon tcpd peut galement tre utilis avec le dmon xinetd. Toutefois, une telle utilisation
est superue, tant donn que xinetd permet de dnir ses propres rgles de contrle daccs.
9.2.8.2.2. Restrictions daccs avec xinetd
Le super-dmon xinetd intgre dofce un mcanisme de contrle daccs similaire celui utilis
par tcpd. Grce aux options only_from et no_access, il est possible de spcier pour chaque
service les machines qui sont autorises lutiliser, ou inversement les machines qui doivent tre
explicitement rejetes.
Il faut toutefois prendre garde au fait que, comme pour tcpd, ne rien dire signie accepter les
connexions provenant de toutes les machines. La rgle dor est donc, encore une fois, de tout
interdire par dfaut et dautoriser au compte-gouttes les accs aux services ouverts. Pour cela, il
suft dajouter la ligne suivante :
only_from =
dans la section de dnition des options par dfaut de xinetd. Avec cette ligne, contrairement ce qui
se passe si rien nest spci, les accs ne sont autoriss qu partir daucune machine. Autrement dit,
ils sont toujours interdits.
Il faut ensuite redonner les droits sur les machines autorises service par service. Ainsi, les connexions
par telnet peuvent tre autorises sur le rseau local (suppos sr) grce la ligne suivante :
only_from += 192.168.0.0/24 127.0.0.1
dans la section dcrivant le service telnet de la conguration de xinetd.
On prendra garde galement au fait que xinetd implmente quelques services internes permettant de
ladministrer par le rseau. Il est vident que ces services doivent tre dsactivs. Ces services sont
respectivement les services servers, sercices et xadmin. Leur dsactivation se fait classiquement en
ajoutant la ligne suivante :
disabled = servers services xadmin
dans la section defaults du chier de conguration /etc/xinetd.conf.
248
Chapitre 9. Conguration du rseau
9.2.8.3. Contrle des utilisateurs au niveau des services
Certains services ne peuvent pas tre supprims compltement, tout simplement parce que lon peut
en avoir besoin. Dans ce cas, il faut au moins sassurer que laccs ces services nest autoris que
pour les utilisateurs qui en ont rellement besoin. La rgle est cette fois que lutilisateur root ne doit
pas avoir accs aux services rseau par une connexion non locale. En effet, un pirate attaque toujours
par le rseau et, mme sil arrive trouver le mot de passe dun utilisateur normal, il lui restera encore
pas mal de boulot pour trouver le mot de passe de lutilisateur root (attention cependant, si vous tes
dans cette situation, il vaut mieux ragir trs trs vite).
Le service le plus sensible est bien entendu le service de login. Il est possible de fournir le service de
login aux connexions extrieures, et il est vident que cela constitue dj un point dentre pour qui
peut trouver un mot de passe valide. Il est impratif ici dinterdire une telle connexion lutilisateur
root. Il reste toutefois concevable que cet utilisateur puisse se connecter sur la console locale (cest-
-dire, avec votre clavier et votre cran...). Il est donc ncessaire de choisir les terminaux partir
desquels lutilisateur root pourra se connecter. Ces informations sont stockes dans le chier de con-
guration /etc/securetty.
Le format de ce chier est trs simple, puisquil est constitu de la liste des terminaux partir des-
quels lutilisateur root peut se connecter, raison dun terminal par ligne. Un chier de conguration
/etc/securetty typique contient donc la liste des terminaux virtuels de la machine :
# Exemple de fichier /etc/securetty
tty1
tty2
tty3
tty4
tty5
tty6
Il est fortement dconseill de placer dans ce chier les autres terminaux (en particulier, les terminaux
srie ttyS0 et suivants).
Un autre service sensible est le service de tlchargement de chiers. Il est recommand dinterdire
aux utilisateurs privilgis les transferts de chiers par FTP. En effet, si une personne parvient
accder au systme de chiers, il peut supprimer tous les mcanismes de scurit. De la mme manire
que lon a interdit lutilisateur root de se connecter sur les terminaux distants, il faut lui interdire
(ainsi quaux autres comptes sensibles) les connexions par FTP.
Cette opration peut tre ralise en ajoutant le nom de chaque utilisateur sensible dans le chier de
conguration /etc/ftpusers. Ce chier a la mme structure que le chier securetty, puisquil
faut donner un nom dutilisateur par ligne :
# Exemple de fichier /etc/ftpusers
root
uucp
mail
Bien entendu, la liste des utilisateurs privilgis de votre systme dpend de la distribution que vous
avez install. Le chier /etc/ftpusers fourni avec cette distribution est donc, en gnral, appropri.
249
Chapitre 9. Conguration du rseau
9.2.8.4. Cryptage des connexions
Loutil le plus utilis pour permettre des connexions scurises au travers dun rseau non sr est sans
aucun doute SSH (abrviation de langlais Secure SHell ). Il sagit dun protocole de communi-
cation rseau crypt et dune suite doutils permettant de lutiliser, initialement dvelopps par une
socit commerciale. Ces outils sont diffuss en Open Source et leur usage est gratuit pour les particu-
liers, mais ils ne sont absolument pas libres. Une implmentation libre a donc t dveloppe pour le
systme FreeBSD, puis porte pour les autres systmes dexploitation, dont Linux. Cette implmen-
tation est celle qui est utilise par la plupart des distributions actuellement, il sagit de OpenSSH .
Nous ne dcrirons ici que lutilisation dOpenSSH.
Pour garantir la condentialit des donnes, SSH utilise des techniques de cryptographie avances.
Ces techniques permettent de sassurer que personne ne peut lire les informations qui circulent sur
le rseau dune part, et de garantir lauthentication des machines auxquelles on se connecte dautre
part. De plus, SSH permet de rediriger les protocoles rseau non crypts dans son propre canal de
communication, et rsout donc la plupart des problmes de scurit. SSH a donc pour but premier de
remplacer les applications non sres permettant de se connecter distance sur une machine ou dy
excuter des commandes. Les applications ainsi rendues obsoltes sont, entre autres, telnet, rlogin et
rsh. Enn, SSH est galement utilisable pour chiffrer automatiquement les connexions X11, ce qui
permet dutiliser lenvironnement graphique X Window distance en toute scurit.
Note : Ofciellement, il est interdit dutiliser en France des techniques de cryptage aussi pousses
que celles mises en uvre par SSH, sauf demander une drogation. Il y a de fortes pressions
pour permettre la lgalisation de ces techniques, mais elles nont pas encore abouti. Plus pr-
cisment, le gouvernement a pris position pour une libralisation de lusage de la cryptographie,
mais la loi na pas encore t vote. Les sinistres vnements du 11 novembre 2001 risquent fort
de retarder encore, si ce nest de compromettre, cette libralisation. En effet, largument principal
des opposants cette lgalisation est quelle permettrait aux truands de crypter leurs communi-
cations. Largument est bien entendu fallacieux : comme sils attendaient den avoir le droit pour
le faire...
En fait, il existe une implmentation gratuite (mais non libre) de SSH qui a t dclare et qui
peut donc tre utilise en France. Il sagit de la version de Bernard Perrot, nomme SSF , que
lon pourra trouver ladresse http://perso.univ-rennes1.fr/bernard.perrot/SSF/index.html. Si vous
dsirez absolument tre sans reproches vis vis de la loi actuellement en vigueur en France, vous
devriez remplacer la version dOpenSSH fournie avec votre distribution (dont lusage est donc
illgal) par SSF. Sachez cependant que SSF restreint la taille des clefs de sessions 128 bits
seulement dune part (condition sine qua non pour quon puisse lutiliser), quil nest pas utilisable
commercialement, et quil est susceptible de ne pas tre jour en ce qui concerne les correctifs
de bogues et les failles de scurit que lon a pu trouver rcemment dans SSH ou OpenSSH. La
scurit apporte par SSF est donc trs relative, mais cest mieux que rien du tout.
Il existe deux versions du protocole rseau SSH, qui ont tous deux t adopts en tant que standards.
La premire version souffrait dun trou de scurit majeur, qui depuis a largement pu tre utilis. Il
ne faut donc surtout pas utiliser cette version et se rabattre systmatiquement sur le protocole SSHv2.
Ce protocole permet de garantir lauthentication des machines et des utilisateurs et est nettement
plus able. Aucune attaque na permis de le casser ce jour, sachez toutefois quil existe encore des
points douteux dans ce protocole qui permettraient, en thorie, de parvenir simmiscer dans une
communication ou den dcrypter une partie.
Sachez galement que les diffrentes implmentations de SSH, aussi bien libres que commerciales,
sont soumises au mme rgime que les autres programmes : elles peuvent avoir des bogues et des trous
de scurit quun attaquant peut utiliser. De nombreuses attaques ont t dcouvertes ces derniers
temps, aussi est-il recommand de sassurer que lon dispose de la dernire version dOpenSSH. La
dernire version stable est la 3.6.1p1 (les versions antrieures doivent tre vites tout prix). Cela
250
Chapitre 9. Conguration du rseau
dit, mener une attaque contre SSH relve le niveau de difcult nettement au dessus de ce qui est
ncessaire pour pntrer un systme qui ne lutilise pas.
9.2.8.4.1. Principes de base de cryptographie
Commenons par quelques dnitions. Le cryptage, encore appel chiffrement, est lopration qui
consiste transformer une information en clair en une information code an dviter quelle ne
puisse tre utilise par une personne non autorise. Le dchiffrement est lopration inverse du chif-
frement, qui permet donc de retrouver linformation initiale partir de linformation code. Le dcryp-
tage est lopration qui consiste dchiffrer une information sans y tre autoris. La cryptographie est
la science qui se charge dtudier la manire de crypter les informations. La cryptoanalyse est ltude
des moyens de dcryptage. Cette science va de paire avec la cryptographie, puisquelle permet de
dterminer la abilit des techniques mises en uvre pour le cryptage. Enn, un cracker est une per-
sonne dsirant sintroduire de manire illicite dans un systme, ou dsirant dtourner une application
de son contexte dutilisation normal. Il ne faut pas confondre les crackers avec les hackers, qui sont
des personnes extrmement comptentes en informatique et qui ne font rien de mal (par exemple, les
dveloppeurs du noyau Linux sont souvent appels des hackers).
Il existe un grand nombre de techniques de cryptographie, qui sont plus ou moins efcaces. La pre-
mire technique, qui est aussi la plus simple et la moins sre, est celle qui consiste utiliser un
algorithme de chiffrement rversible (ou une une paire dalgorithmes ayant un effet inverse lun de
lautre) pour crypter une information. Dans ce cas, la scurit des donnes est assujettie au maintien
au secret de lalgorithme utilis. Il est vident que ce type de technique nest pas utilisable avec les
logiciels dont les sources sont diffuses (comme Linux), puisque lalgorithme est alors connu de tout
le monde. Cest galement la technique la moins sre, parce quil est en gnral trs facile de dter-
miner cet algorithme. Un exemple dun tel algorithme est le codage classique qui consiste dcaler
toutes les lettres de lalphabet (A devient B, B devient C, etc.).
Une autre technique se base sur un algorithme connu de tout le monde, mais dont leffet est paramtr
par une clef tenue secrte. Le dchiffrement des informations ne peut se faire que si lon connat cette
clef. Les algorithmes de ce type sont souvent qualis de symtriques , en raison du fait que la
clef utilise pour le dchiffrement est la mme que celle utilise pour le chiffrement. Cette technique
nest satisfaisante que dans la mesure o les personnes qui communiquent peuvent schanger cette
clef de manire sre. La clef utilise ne devant tre connue que des personnes autorises participer
la communication, cet change doit se faire soit de visu, soit dans un canal dj crypt (mais dans ce
cas, il faut changer la clef de dchiffrement du canal, et on se retrouve devant le problme de luf
et de la poule), soit laide dun protocole dchange de clef sr. Les algorithmes de ce type sont
galement connus sous le nom dalgorithmes clef secrte en raison de cette particularit. Il existe
un grand nombre dalgorithmes clef secrte, les plus connus tant DES, AES et IDEA.
251
Chapitre 9. Conguration du rseau
Figure 9-7. Algorithme de cryptage symtrique
La technique la plus sre actuellement, et aussi la plus ruse, est dutiliser un algorithme de chiffre-
ment asymtrique. la diffrence des algorithmes symtriques, les algorithmes asymtriques utilisent
deux clefs diffrentes pour le chiffrement et pour le dchiffrement. Ces algorithmes se basent sur des
fonctions mathmatiques dont la fonction inverse est extrmement difcile dterminer sans une
information galement difcile calculer. Cette information fait ofce de trappe permettant de
retrouver linformation en clair. Toute la ruse ici est que la clef servant au dchiffrement peut ne plus
tre change du tout, ce qui supprime la ncessit de raliser un change de clefs gnralement ris-
qu. En fait, seule la clef de chiffrement doit (et peut sans crainte) tre publie. Cest en raison de
cette proprit que les algorithmes asymtriques sont galement appels algorithmes clef publique.
Le principe est donc le suivant : une clef publique, utilise pour chiffrer les informations, est fournie
tout le monde, et seul celui qui dispose de la clef prive associe cette clef publique peut dchiffrer
le texte. Ainsi, il est possible dchanger des informations de manire sre avec tous les intervenants
en utilisant simplement leur clefs publiques respectives. Aucun change dinformation sensible nest
effectu en clair. Les algorithmes clef publique les plus connus sont RSA et DSA.
252
Chapitre 9. Conguration du rseau
Figure 9-8. Algorithme de cryptage asymtriques
La gestion des clefs des algorithmes clef publique est techniquement laborieuse, de mme que les
calculs mis en uvre par les algorithmes utiliss. Il est donc courant damorcer une communica-
tion avec un algorithme clef publique, comme RSA par exemple, puis de lutiliser pour changer
une clef secrte permettant de poursuivre la communication avec un algorithme symtrique. Il existe
galement des algorithmes spcialiss dans les changes de clefs dans un canal non sr, comme par
exemple lalgorithme Dife Hellman.
Enn, sachez galement quil existe des algorithmes de chiffrement sens unique qui ne permettre pas
de retrouver linformation initiale. Ces algorithmes sont souvent utiliss pour calculer une emprunte
digitale de linformation, qui permet didentier linformation de manire unique. Cette emprunte
digitale, galement appele un condens ( hash en anglais), est souvent utilise pour authen-
tier lintgrit des donnes diffuses dans un environnement peu sr. Pour cela, celui qui ralise
la diffusion crypte un condens des informations diffuses avec sa clef prive. Tout le monde peut
donc dcrypter ce condens avec la clef publique de cette personne, et avoir la certitude quil pro-
vient bien de son auteur. Il est alors facile de vrier lintgrit de linformation rendue publique. Les
algorithmes de calcul demprunte les plus connus sont MD5 et SHA.
Note : Notez que les algorithmes de cryptage clef publique ncessitent malgr tout que lon soit
sr que lon utilise la bonne clef publique pour sadresser une personne. Or, rien ne nous garantit
que la clef publique dune personne diffuse sur le rseau provienne bien de cette personne ! Il
est donc toujours ncessaire dchanger les clefs publiques de main main, ou de trouver une
tierce personne digne de conance et dont on connat dj la clef publique pour garantir que la
clef que lon reoit est bien celle de la personne qui prtend en tre le propritaire. Tout cela est
contraignant. Mais, contrairement aux algorithmes de chiffrement clef secrte, il nest pas grave
de perdre les clefs changes, puiquelles sont destines tre publiques...
9.2.8.4.2. Principes de base de lauthentication SSH
La grande difcult dans les mcanismes dauthentication est dtre capable de prouver son identit
sans fournir sufsamment dinformation pour que quelquun dautre puisse se faire passer pour soi
par la suite. La technique du mot de passe utilis par les systmes Unix est absolument insufsante,
253
Chapitre 9. Conguration du rseau
car elle requiert justement de fournir ce mot de passe. Mme si les mots de passe ne sont pas stocks
en clair sur la machine (ce qui est la moindre des choses), il est possible de se faire passer pour une
tierce personne. Les mcanismes dauthentication comparent souvent une emprunte du mot de passe
avec lemprunte stocke dans les chiers de dnition des mots de passe, mais rien nempche un
intrus de capter cette emprunte et de lutiliser directement pour sauthentier, mme sans connatre
le mot de passe en clair. En ralit, lauthentication Unix nest valide que sur une machine donne,
et que si les programmes qui ralisent lauthentication sont excuts dans un contexte sr. Cest
heureusement le cas lorsquon se connecte partir dune console locale, mais ne lest pas ds que
lon passe par un mdia de communication quelconque. En particulier, une connexion par X11 nest
absolument pas sre, mme sur la machine locale, puisque les informations de connexion passent par
un canal de communication rseau.
SSH ne transmet donc ni les mots de passe ni leurs condenss en clair sur le rseau. Il tablit dabord
un canal de communication crypt laide dun des algorithmes dchange de clef (la technique utili-
se dpend de la version utilise du protocole SSH). Une fois le canal crypt tabli, la machine serveur
est authentie laide de sa clef publique. Pour que cela fonctionne, il faut bien entendu que la clef
publique de la machine serveur soit connue du client et ait t authentie comme tant bien celle de
ce serveur. Inversement, le client peut tre authenti par le serveur. SSH fournit plusieurs possibilits
pour cela, les deux plus courantes tant lauthentication par mot de passe et lauthentication par un
algorithme clef publique.
Lauthentication par mot de passe est strictement la mme que celle utilise pour le login Unix
classique, la diffrence prs que les informations du mot de passe sont transmises dans le canal
crypt, vers un serveur authenti. La scurit de ce mot de passe est donc garantie, du moins tant que
le serveur nest pas compromis. Ce type dauthentication permet dutiliser SSH exactement comme
les commandes classiques rsh ou telnet. Lutilisation de SSH est donc compltement transparente
pour les utilisateurs.
Cela dit, il est possible de faciliter encore plus lauthentication des clients tout en augmentant le
niveau de scurit, en utilisant lauthentication par clef publique. Dans ce mode dauthentication,
chaque client dispose galement dun couple de clefs prive et publique. Les clefs publiques de ces
clients sont diffuses dans les comptes utilisateurs auxquels ils ont accs au niveau du serveur. Ainsi,
il nest plus ncessaire de fournir un mot de passe, car le serveur peut authentier le client du seul
fait quil est le seul connatre sa clef prive. La connexion est donc automatique (une fois le serveur
correctement congur, bien entendu) et aucun change dinformation sensible comme le mot de
passe nest ralis (mme si le fait que cet change tait ralis dans un canal crypt par SSH tait
dj une bonne garantie).
Les clefs prives et publiques sont bien entendu stockes sur disque, dans les chiers de conguration
des serveurs et des clients. Il va de soi que si les clefs publiques peuvent tre lues, il est impratif
que les clefs prives ne soient lisibles que par leurs propritaires. Les droits daccs sur les chiers
de conguration doivent donc tre xes de manire correcte pour garantir la scurit du systme. En
fait, le point faible du mcanisme dauthentication des clients est toujours au niveau des utilisateurs,
qui peuvent perdre leur clef prive ou la communiquer dautres sans mme savoir quils font une
erreur fondamentale (de la mme manire quils peuvent choisir un mot de passe trop facile trouver
ou simplement le communiquer une tierce personne). Cest pour cela quil est possible dencrypter
les clefs prives avec un algorithme de cryptage symtrique. Lutilisateur doit, dans ce cas, fournir
une phrase clef chaque fois quil dsire raliser une connexion SSH.
9.2.8.4.3. Compilation et installation dOpentSSH
Comme nous lavons dit plus haut, il est recommand dutiliser la dernire version dOpenSSH,
savoir la version 3.5.p1. Il est probable que votre distribution fournisse une mise jour sur son site, et
il est recommand dutiliser ces mises jours.
254
Chapitre 9. Conguration du rseau
Si, toutefois, vous dsirez effectuer linstallation partir des chiers sources, vous pourrez procder
comme suit. Il vous faudra rcuprer larchive des chiers sources en premier lieu sur le site OpenSSH
(http://www.openssh.org). Pour Linux, il faut prendre larchive 3.5p1, le p signiant ici quil sagit
dun portage des sources pour Linux. Une fois cela fait, vous pourrez excuter la commande suivante
dans le rpertoire des sources :
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-tcp-wrappers --with-pam
Cette commande permet de congurer OpenSSH pour quil remplace la version existante dans votre
systme. Elle indique galement que le support du dmon tcpd doit tre activ, ainsi que celui des
modules dauthentication PAM (options --with-tcp-wrapppers et --with-pam ). Bien
entendu, si votre distribution nutilise pas ces fonctionnalits, vous devez supprimer ces options.
La compilation et linstallation en soi ne posent pas de problme particulier. Pour les raliser, il vous
sufra dexcuter les deux commandes suivantes :
make
make install
Vous constaterez que le programme dinstallation gnre automatiquement des chiers de clefs pu-
bliques et prives pour votre machine. Nous verrons dans les sections suivantes comment ces clefs
peuvent tre utilises.
Note : Vous devrez crer un compte utilisateur sshd non privilgi avant dinstaller SSH. Ce
compte est en effet utilis par le dmon sshd pour raliser les communications rseau une fois la
phase dauthentication ralise. Cela permet de garantir que, mme en cas dexploitation dune
ventuelle faille de scurit du dmon sshd, laccs la machine sera extrmement limit.
9.2.8.4.4. Conguration dOpenSSH ct serveur
OpenSSH utilise un dmon nomm sshd pour prendre en charge les requtes de connexion de la
part des clients. Ce dmon est lcoute des demandes de connexion et effectue les oprations
dauthentication du serveur auprs des clients. Il vrie galement les droits du client avant de le
laisser utiliser la connexion crypte.
Le dmon sshd utilise un chier de conguration gnral /etc/sshd_config et plusieurs
chiers contenant les clefs publiques et prives de la machine pour les diffrents protocoles
cryptographiques utiliss par les clients. Les protocoles disponibles sont le protocole RSA pour la
version 1 du protocole SSH, et les protocoles RSA et DSA pour la version 2. Comme il existe
deux chiers pour les clefs du serveur (un premier chier lisible par tous les utilisateurs, pour la
clef publique, et un chier lisible uniquement par lutilisateur root, pour la clef prive), il peut
exister au total six chiers de clefs. Ces chiers sont nomms respectivement /etc/ssh_host_key
et /etc/ssh_host_key.pub pour les clefs prives et publiques du protocole de version 1, et
/etc/ssh_host_rsa_key, /etc/ssh_host_rsa_key.pub, /etc/ssh_host_dsa_key et
/etc/ssh_host_dsa_key.pub respectivement pour les algorithmes RSA et DSA du protocole
SSH de version 2.
Normalement, les chiers de clefs du serveur ont t crs automatiquement lors de linstallation
de SSH. Cependant, si vous installez SSH partir dune archive de distribution, ils peuvent ne pas
tre prsents, et vous devrez gnrer ces clefs vous-mme. Pour cela, il faut utiliser la commande
ssh-keygen, dont la syntaxe est la suivante :
ssh-keygen [-t type]
255
Chapitre 9. Conguration du rseau
o type est le type de clef gnrer pour le protocole de version 2. Les types disponibles sont rsa
et dsa. Pour le protocole de version 1, il ne faut pas utiliser loption -t, les clefs gnres tant
forcment des clefs RSA.
Lorsque lon invoque la commande ssh-keygen, celui-ci demande le chemin du chier dans lequel
la clef prive doit tre crite. Le chier contenant la clef publique aura le mme nom, mais portera
lextension .pub. Vous devez donc saisir le chemin du chier correspondant au type de clef gnr.
ssh-keygen demande ensuite le mot de passe utiliser pour le cryptage de la clef prive. Dans le cas
dun serveur, il ne faut pas utiliser de mot de passe, car dans ce cas le dmon sshd ne pourrait pas
accder la clef prive de la machine. Il faut donc, dans ce cas, valider simplement sans rien taper.
Une fois les chiers de clefs du serveur gnrs, vous pouvez vous intresser au chier de con-
guration sshd_config. Ce chier de conguration contient un certain nombre doptions qui in-
diquent les paramtres que le dmon doit utiliser. Vous trouverez ci-dessous un exemple de chier de
conguration :
# Paramtres de connexion :
Port 22
ListenAddress 0.0.0.0
KeepAlive yes
# Protocoles utilisables :
Protocol 2
# Chemin sur les fichiers de clefs :
HostKey /etc/ssh_host_rsa_key
HostKey /etc/ssh_host_dsa_key
# Paramtres des messages de traces :
SyslogFacility AUTH
LogLevel INFO
# On dfinit les modes dauthentification utilisables :
# Authentification par clef publique :
RSAAuthentication no
PubkeyAuthentication yes
# Authentification par type de machine :
RhostsAuthentication no
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
# Authentification par mot de passe :
PasswordAuthentication no
PermitEmptyPasswords no
# Options gnrales :
# Lutilisateur root ne doit pouvoir se loguer quen local :
PermitRootLogin no
# Utilise le compte non privilgi sshd
# pour les communications rseau :
UsePrivilegeSeparation yes
256
Chapitre 9. Conguration du rseau
# On nautorise la connexion que pour les utilisateurs dont
# les fichiers de configuration sont correctement protgs :
StrictModes yes
# Encapsulation automatique du protocole X :
X11Forwarding yes
X11DisplayOffset 10
# Affichage des informations habituelles au login :
PrintMotd no
PrintLastLog yes
Comme vous pouvez le constater, un grand nombre doptions sont disponibles. Les options Port et
ListenAddress permettent de dnir ladresse IP sur laquelle le dmon sshd se mettra en attente
de demandes de connexion, ainsi que le port TCP utilis pour cela. Ladresse 0.0.0.0 signie ici
quil doit se mettre en attente sur toutes les adresses de la machine. Loption KeepAlive permet
de demander au dmon de vrier rgulirement que la liaison est toujours valide, an de fermer
les connexions automatiquement en cas darrt du client. Loption Protocol permet de spcier les
versions utilisables du protocole SSH. La version 1 tant obsolte, on spciera systmatiquement la
valeur 2 ici. Loption HostKey permet, comme son nom lindique, de donner les noms des chiers
contenant les clefs pour les diffrents protocoles dauthentication. Les options SyslogFacility
et LogLevel permettent dindiquer le type et le niveau des messages de traces gnrs par le dmon
sshd dans le chier de traces du systme.
Viennent ensuite les options spciques aux diffrents modes dauthentication. Les options
RSAAuthentication et PubkeyAuthentication permettent dactiver et de dsactiver
lauthentication par clef publique des clients, respectivement pour les protocoles SSH de version
1 et 2. Les options RhostsAuthentication, IgnoreRhosts, RhostsRSAAuthentication
et HostbasedAuthentication permettent de contrler un protocole dauthentication
bas sur lidentit des machines. Ce type dauthentication na pas t prsent car il est
extrmement peu sr, et il faut imprativement dsactiver ces fonctionnalits. Enn, les options
PasswordAuthentication et PermitEmptyPasswords permettent dactiver ou de dsactiver
lauthentication par mot de passe. Vous tes libre dutiliser ou non ces fonctionnalits.
Le chier de conguration peut galement contenir des options complmentaires. Les plus
importantes pour la scurit sont sans doute PermitRootLogin et StrictModes, qui permettent
dinterdire la connexion par le rseau lutilisateur root dune part, et dinterdire la connexion aux
utilisateurs qui nont pas bien x les droits daccs sur leurs chiers de conguration personnels
dans leur compte local (il est donc impossible de garantir que ces chiers nont pas t traqus
par dautres utilisateurs pour accder leur compte). Loption UsePrivilegeSeparation
permet de demander au dmon sshd de neffectuer les communications rseau que dans le compte
spcial sshd, compte auquel on naffectera que le minimum de droits. Cette technique permet
de protger le systme contre lexploitation dune ventuelle faille de scurit dans le dmon
sshd. Loption X11Forwarding permet dactiver lencapsulation automatique du protocole X et
peut tre relativement pratique. Le numro de display auquel les utilisateurs devront connecter
leurs applications sera alors dcal du nombre indiqu par loption X11DisplayOffset. Cette
option est utile pour viter les conits avec les serveurs X locaux. Vous trouverez de plus amples
informations sur le protocole X11 et lenvironnement graphique dans le Chapitre 10. Enn, les
options PrintMotd et PrintLastLog permettent de spcier les informations afches par le
dmon sshd lorsque la connexion des clients est accepte. Il existe bien dautres options, vous
pourrez obtenir de plus amples renseignements dans la page de manuel du dmon sshd.
257
Chapitre 9. Conguration du rseau
9.2.8.4.5. Utilisation dOpenSSH ct client
Les clients peuvent se connecter un serveur SSH laide de la commande ssh. Cette commande
sutilise exactement de la mme manire que les commandes rsh ou rlogin. La syntaxe de la com-
mande ssh est la suivante :
ssh [-l nom] machine [commande]
ou :
ssh nom@machine [commande]
o nom est ici le nom dutilisateur utiliser pour la connexion, et machine la machine distante. Si
aucun nom dutilisateur nest spci, le nom de lutilisateur sur la machine local est pris par dfaut.
Il est possible dexcuter une commande sur la machine distante en la spciant aprs le nom de la
machine. Si aucune commande nest spcie, un shell interactif est lanc.
Selon le mode dauthentication du client choisi par le serveur, il peut tre ncessaire ou non de dnir
des clefs pour le client. Tout comme pour les clefs publiques et prives dun serveur, la gnration de
ces clefs se fait laide de la commande ssh-keygen. Cependant, contrairement ce qui se passait pour
le serveur, les chemins par dfaut proposs pour stocker les clefs sont ici corrects, et il est vivement
recommand de saisir un mot de passe pour crypter la clef prive. Les chiers de clefs gnrs par
ssh-keygen sont les chiers identity et identity.pub pour le protocole dauthentication RSA
de la version 1 du protocole SSH, et les chiers id_rsa, id_rsa.pub, id_dsa et id_dsa.pub
respectivement pour les protocoles RSA et DSA de la version 2 du protocole SSH. Tous ces chiers
sont stocks dans le rpertoire .ssh/ du rpertoire personnel de lutilisateur qui les gnre. Il va de
soi que les chiers des clefs prives doivent ne doivent pas tre lisibles pour les autres utilisateurs,
et que les chiers des clefs publiques ne doivent pas pouvoir tre crits si lon veut viter quun
usurpateur prenne notre place sur notre propre machine.
An de bncier de lauthentication des serveurs auxquels on se connecte, il faut placer les clefs
publiqes de ces derniers dans le chier .ssh/known_hosts. Si, lors dune connexion un serveur,
la clef publique de celui-ci nest pas connue, ssh vous le signalera. Il indiquera un message derreur
indiquant que le serveur auquel on se connecte nest pas forcment celui quil prtend tre, et afche
un condens de sa clef publique. Vous devrez vous assurer que ce condens est bien celui de la clef
publique du serveur auquel vous vous connectez, et ce par un moyen sr (dplacement physique et
connection en local par exemple). Si vous acceptez cette clef, ssh la placera pour vous dans votre
chier known_hosts, ce qui vous permettra de vous connecter par la suite en toute quitude. Atten-
tion, le chier known_hosts ne doit pas tre accessible en criture aux autres utilisateurs, car dans
ce cas un pirate pourrait capter toutes vos communications !
Si le mode dauthentication utilis est le mot de passe, ssh vous demandera de saisir le mot de passe
du compte distant. Dans ce cas, ssh se comporte exactement comme rsh, ceci prs que votre mot de
passe ne circulera pas en clair sur le rseau (quel progrs !).
Si, en revanche, le mode dauthentication utilis est une authentication par clef publique, alors vous
devrez avoir dni vos clefs prives et publiques. Pour que le dmon sshd de la machine distante
accepte la connexion, vous devrez placer vos clefs publiques dans le chier authorized_keys du
rpertoire ./ssh/ du rpertoire du compte distant. Cela permettra au dmon sshd de sassurer que
cest bien vous qui vous connectez. Attention, le chier authorized_keys ne doit pas tre accessible
en criture, faute de quoi un autre utilisateur de la machine distante pourrait se connecter en votre
nom. Il est galement impratif de raliser lcriture soi-mme dans ce chier par un moyen sr
(dplacement physique). En aucun cas la communication de votre clef publique ladministrateur
distant ne pourra tre considre comme un moyen sr pour crire cette clef : en effet, un pirate
pourrait tout aussi bien lui demander dcrire sa propre clef dans votre chier !
258
Chapitre 9. Conguration du rseau
Vous constaterez quun certain nombre de prcautions doivent tre prises pour les manipulations de
clefs. Comme il la dj t indiqu plus haut, le point faible est bel et bien lauthentication des
clients. Cela concerne en premier lieu le client bien entendu, dont le compte peut tre pirat, mais
cest aussi un trou de scurit norme pour le serveur, car une fois le loup dans la bergerie, il peut faire
beaucoup de dgts et chercher accrotre ses droits (jusqu devenir root) par dautres techniques.
9.2.8.4.6. Cration dun tunnel SSH
Lun des principaux avantages de SSH est quil est possible de lutiliser pour encapsuler nimporte
quel protocole rseau TCP dans le canal de communication dune connexion scurise. Un tel ca-
nal est communment appel un tunnel , en raison du fait quil est utilis par les informations
sensibles pour traverser un rseau non sr. Grce aux tunnels SSH, il est possible dutiliser tous les
protocoles classiques sans avoir sinquiter de la condentialit des informations transmises. SSH
permet mme de raliser cette opration automatiquement pour le protocole X du systme de fen-
trage X Window, ce qui est trs commode si lon dsire afcher localement les fentres graphiques
des programmes lancs sur le serveur.
Encapsuler le protocole X dans SSH est donc extrmement ais. En effet, il suft simplement de
donner la valeur yes loption X11Forwarding dans le chier de conguration du serveur
/etc/sshd_config et dans le chier de conguration des clients (les valeurs par dfaut pour tous les
utilisateurs peuvent tre dnies dans le chier de conguration /etc/ssh_config et tre rednies
par chaque utilisateur dans le chier config de leur rpertoire .ssh/). Si ces options sont actives,
SSH se charge de xer la variable denvironnement DISPLAY de la machine distante un serveur
X virtuel de cette machine. Les programmes X se connectent alors ce serveur, et celui-ci effectue
automatiquement le transfert des communications vers le serveur X du client. Il ne faut donc pas,
quand on utilise SSH, modier manuellement la variable denvironnement DISPLAY. Vous trouverez
plus dinformation sur X Window dans le Chapitre 10.
Pour les autres protocoles, les oprations ne sont pas ralises automatiquement par SSH. Il faut
donc tablir un rseau priv virtuel manuellement. Le principe est le suivant : les programmes clients
sont paramtrs pour se connecter sur un port local diffrent de celui utilis habituellement pour leur
protocole. Ainsi, ils ne sadressent pas directement au serveur distant, mais plutt un proxy local
tabli par SSH pour loccasion. Ce proxy tablit un canal de communication crypt avec le dmon
sshd de la machine distante. Toutes les informations du protocole encapsul passent alors par le canal
crypt, et le dmon sshd de la machine distante retransmet ces informations au service distant auquel
le client devait se connecter.
Tout ce mcanisme ne fonctionne que parce quil est possible de rediriger les clients sur un port
rserv par SSH sur leur machine locale. Cette redirection peut tre initie aussi bien du ct serveur
que du ct client, lors de la connexion. Du ct du client, la redirection de port peut tre ralise avec
la commande suivante :
ssh -Llocal:serveur:port machine [commande]
o local est le port de la machine locale auquel il faudra se connecter pour accder au service distant,
fonctionnant sur le port port de la machine serveur. Cette commande ouvre une session SSH sur
la machine machine (qui, normalement, est la mme que serveur), et ralise la redirection du ux
destin au port local dans le canal de cette session.
Il faut bien comprendre que cette redirection se fait en plus de la connexion SSH, et que la syntaxe
donne ci-dessus ouvre une connexion sur la machine distante (ou excute la commande spcie
en paramtre, sil en est spcie une). Si lon dsire simplement tablir un tunnel, on peut refermer
la session juste aprs avoir lanc le programme qui doit utiliser ce tunnel. En effet, SSH maintient le
tunnel ouvert tant quun programme dtient une connexion sur le port redirig. On peut aussi excuter
259
Chapitre 9. Conguration du rseau
une commande sleep sur un dlai arbitraire, qui permettra de se connecter sur le port redirig et qui
se terminera automatiquement.
Du ct serveur, la syntaxe est similaire. Cette fois, la commande permet dindiquer le port que le
client devra utiliser pour accder un service non scuris du serveur. La syntaxe utiliser est la
suivante :
ssh -Rport:client:local machine [commande]
o port est le port que le client devra utiliser, client est la machine cliente, et local est le port
local utilis par le service que lon veut exposer de manire scurise au client. Encore une fois, cette
commande ouvre une connexion SSH, il faut donc spcier la machine laquelle on se connecte (en
loccurrence, le client). Une commande peut tre spcie de manire optionnelle, sil ny en a pas,
un shell sera lanc sur la machine distante.
Note : Prenez bien conscience que SSH ne sassure du chiffrement que des donnes transmises
sur le rseau. Si la machine cliente ou la machine serveur ne sont pas correctement congures,
un pirate peut espionner les communications rseau internes cette machine. Pour viter ce type
de risque, il faut utiliser des protocoles rseau eux-mmes crypts. Autrement dit, une fois sorti
du tunnel SSH, vous vous exposez nouveau aux risques dintrusion.
Il existe dautres mthodes de tunneling sous Linux, qui sont sans aucun doute plus
ergonomiques que SSH. En effet, non seulement les tunnels SSH ne peuvent pas tre crs
automatiquement (ils ncessitent une connexion), mais en plus les connexions SSH se
terminent ds que le dernier client disparat. En fait, les fonctionnalits de SSH sont un plus,
mais elles ne sont pas destines remplacer des solutions plus adaptes pour raliser des
tunnels. Vous trouverez plus dinformations sur les rseaux privs virtuels ci-dessous. Pour
information, une volution du protocole IP a t dnie pour permettre les communications
cryptes et garantissant lauthenticit des machines. Il sagit du protocole IPSec, dont vous
trouverez une implmentation libre pour Linux sur le site de FreeSwan (http://www.freeswan.org).
9.3. Conguration de la connexion Internet
Les connexions Internet font partie des connexions rseau temporaires permettant de relier deux
machines. La machine locale se connecte en effet au serveur du fournisseur daccs Internet via la
ligne tlphonique. Bien entendu, ce serveur est considr comme la passerelle par dfaut pour tous
les paquets destination dInternet. Ce type de connexion a de particulier que les adresses IP des deux
machines sont, en gnral, dtermines dynamiquement, lors de ltablissement de la connexion. La
conguration rseau des connexions Internet se fait donc lgrement diffremment de la congura-
tion dun rseau local normal. Heureusement, tous les dtails de la conguration rseau sont pris en
charge automatiquement.
9.3.1. Le protocole PPP
Les connexions Internet utilisent le protocole PPP (abrviation de langlais Point to Point
Protocol ), qui permet deux ordinateurs dchanger des paquets TCP/IP au travers dun canal
de communication simple (donc, en particulier, au travers dune ligne tlphonique en utilisant
un modem). Ce protocole est gr par le noyau et par le dmon pppd. Il permet deffectuer
260
Chapitre 9. Conguration du rseau
la ngociation initiale entre les deux machines, ce qui comprend notamment lidentication,
lauthentication et lattribution des adresses IP.
Le dmon pppd ne gre pas le modem directement, car il est suppos tre utilisable sur dautres types
de lignes que les lignes tlphoniques. La gestion du modem est donc relaye un autre programme,
qui se nomme chat (il tient son nom du fait quil permet de dialoguer directement avec le modem).
Le programme chat ne connat pas les diffrents types de modems qui existent sur le march, il se
contente dexcuter des scripts qui dcrivent les informations envoyer au modem et les rponses
attendues en retour. Cela permet de reporter la conguration spcique aux modems dans des scripts
de connexion. Lcriture de ces scripts ncessite bien entendu de connatre les commandes que votre
modem est capable de comprendre. Notez galement quil est indispensable ici que votre modem
soit un vrai modem (quil soit interne ou externe), et non pas un modem logiciel (ces modems sont
des modles bas de gamme qui ncessitent un support logiciel pour interprter les informations ana-
logiques reues sur la ligne tlphonique). Renseignez-vous donc bien sur la nature du modem que
vous achetez, si vous voulez ne pas avoir de problmes sous Linux...
La squence des oprations lors dune connexion est donc linitialisation du modem et ltablissement
de lappel tlphonique par le programme chat, puis le dmarrage du dmon pppd. Celui-ci effectue
la connexion sur le serveur du fournisseur daccs et dtermine ladresse IP, les adresses des DNS, la
passerelle et la route utiliser pour cette connexion. Une fois cela ralis, toutes les fonctionnalits
rseau peuvent tre utilises via Internet, et votre ordinateur fait alors partie du rseau mondial.
Lidentication et lauthentication peuvent se faire de diffrentes manires selon le fournisseur
daccs Internet utilis. Un certain nombre de fournisseurs exige lauthentication lors de lappel
tlphonique, avec un mcanisme de login classique. Pour ces fournisseurs, lauthentication
est faite par le programme chat, auquel il faut communiquer le nom dutilisateur et le mot de
passe. Dautres fournisseurs utilisent un protocole dauthentication spcique. Pour ceux-ci,
lauthentication est ralise directement par le dmon pppd, une fois que la ligne a t tablie.
Les deux principaux protocoles dauthentication sont PAP (abrviation de langlais Password
Authentication Protocol ) et CHAP (abrviation de Challenge Handshake Authentication
Protocol ). PAP ralise lauthentication comme le mcanisme de login classique : le client envoie
son nom et le mot de passe correspondant en clair au serveur. CHAP utilise en revanche la notion de
d. Le serveur envoie une requte contenant son nom, et le client doit sidentier et authentier son
identit en lui renvoyant une rponse contenant son propre nom et une valeur calcule partir du mot
de passe correspondant. Les deux mthodes seront prsentes ci-dessous. Si vous ne parvenez pas
vous connecter Internet avec la premire de ces mthodes, tentez votre chance avec PAP ou CHAP.
Sachez que pour utiliser ces protocoles il est ncessaire de connatre, en plus de votre login et de
votre mot de passe, le nom du serveur utilis. Cette information doit vous tre communique par
votre fournisseur daccs Internet. Si vous avez le choix, utilisez de prfrence le protocole CHAP,
car il nenvoie jamais de mot de passe en clair sur la ligne tlphonique.
La conguration de laccs Internet pour un fournisseur daccs requiert donc la conguration du
rseau, la conguration de ppp, la conguration de chat et lcriture des scripts de connexion. Ces
tapes seront dtailles ci-dessous. Nous supposerons dans la suite que vos paramtres de connexion
sont les suivants :
Paramtre Valeur
Fournisseur daccs Internet www.monfai.fr
Nom de domaine monfai.fr
Adresse du DNS 192.205.43.1
Numro de tlphone 08 36 76 30 18
Nom de login jdupont
Mot de passe gh25k;f
261
Chapitre 9. Conguration du rseau
Paramtre Valeur
Nom de serveur (pour PAP et CHAP) serveurfai
Note : Les informations donnes dans le tableau ci-dessus sont ctives et ne servent qu donner
un exemple. Vous devez bien entendu les remplacer par les valeurs vous concernant en chaque
endroit o elles apparaissent dans la suite de ce document. Si par hasard une de ces informations
correspondait un numro de tlphone, un nom ou une adresse IP valide, ce serait une pure
concidence.
Certains fournisseurs daccs refuseront de vous donner toutes ces informations, sous prtexte
quils vous fournissent un kit de connexion pour Windows. Ce nest pas trop grave, car il est
possible de leur extorquer ces informations malgr eux. Les seules informations rellement indis-
pensables sont le numro de tlphone, le nom de login, le mot de passe et le nom de domaine.
Les adresses de DNS peuvent tre dtermines automatiquement dans le cadre du protocole
PPP, et le nom de serveur est arbitraire et ne sert qu identier la connexion.
9.3.2. Cration dune connexion Internet
La premire tape dans la cration dune connexion Internet est avant tout lajout des serveurs
DNS du fournisseur daccs votre conguration rseau. Cela nest pas toujours ncessaire, car il
est possible de congurer le dmon pppd pour quil demande au fournisseur daccs les adresses IP
des DNS de celui-ci lors de ltablissement de la connexion. Cependant, il est plus facile dutiliser le
mcanisme de connexion la demande si lon indique les adresses des DNS du fournisseur daccs
dans la conguration rseau.
Pour lexemple de connexion utilis ici, vous devez simplement ajouter les lignes suivantes dans le
chier /etc/resolv.conf :
search monfai.fr
nameserver 192.205.43.1
Si vous ne connaissez pas les adresses de DNS de votre fournisseur daccs, vous pourrez lobtenir
en regardant dans les traces du noyau lors de ltablissement dune connexion. Nous verrons cela en
dtail plus loin.
La deuxime tape est dcrire un script de numrotation pour le programme chat. Ce script pourra
tre plac dans le rpertoire /etc/ppp/peers/, et pourra tre nomm monfai.chat par exemple.
Son contenu sera le suivant :
REPORT CONNECT
ABORT ERROR
ABORT BUSY
ABORT VOICE
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
"" ATZ
OK AT&F1
OK ATM0L0DT0836763018
CONNECT ""
262
Chapitre 9. Conguration du rseau
Ce script contient le programme que chat doit excuter pour appeler le fournisseur daccs Internet.
Il indique toutes les erreurs possibles susceptibles de faire chouer lopration, puis il envoie les com-
mandes dinitialisation et de numrotation au modem. Vous devrez remplacer le numro de tlphone
utilis dans la commande DT<numro> par le numro de tlphone de votre fournisseur daccs
Internet.
Note : Dans les scripts pour chat, il est possible dutiliser indiffremment lapostrophe simple,
lapostrophe double ou aucune apostrophe si la chane attendue de la part du modem ou lui
envoyer ne contient aucun espace.
Si daventure ce script ne fonctionne pas, vous serez sans doute oblig de demander au pro-
gramme chat dafcher tous les messages envoys et reus par le modem. Cela se fait normale-
ment avec les options -v et -s. Vous verrez alors les messages en provenance du modem, ce
qui vous permettra de dterminer comment modier ce script.
Si votre fournisseur daccs Internet utilise un mcanisme de login classique, vous devez faire
lidentication directement dans le script chat. En gnral, serveur du fournisseur daccs envoie la
demande de login ds que la connexion a t tablie. Pour cela, il utilise une chane de caractres
telle que login: , laquelle le script chat doit rpondre par votre nom dutilisateur. Le serveur
demande alors le mot de passe avec une chane telle que password: , demande suite de laquelle
le script chat doit envoyer votre mot de passe. Ce nest que lorsque ces deux informations auront t
fournies que la connexion sera rellement tablie. Vous pouvez complter le script chat pour rpondre
ces deux questions avec les deux lignes suivantes :
ogin: jdupont
ssword: gh25k;f
Vous devrez bien entendu remplacer le nom du login et le mot de passe par vos propres donnes dans
ce script. Notez quil nest pas ncessaire (ni recommand) de demander la rception de la chane
complte login: , car une erreur de transmission sur la ligne peut encore arriver ce stade et
provoquer la perte des premiers caractres envoys par lordinateur distant. De plus, il se peut que la
premire lettre soit en majuscule ou en minuscule, selon le fournisseur daccs Internet que vous
utilisez. Il en va de mme pour la demande de mot de passe ( password: ).
Si, en revanche, votre fournisseur daccs utilise le mcanisme dauthentication PAP ou CHAP, vous
ne devez pas ajouter ces lignes, car le serveur nenverra pas la chane de caractres login: . Il
tentera de communiquer directement avec votre dmon pppd pour raliser lauthentication. Bien
entendu, les ds lancs par le serveur sont simplement constitus de la demande du login et de la de-
mande du mot de passe correspondant ce login. Le dmon pppd utilisera alors les secrets stocks
dans le chier /etc/ppp/pap-secrets ou le chier /etc/ppp/chap-secrets pour rpondre
ces ds, selon que le protocole utilis par le serveur du fournisseur daccs est PAP ou CHAP. Cest
donc dans ces chiers que vous devrez enregistrer votre login et votre mot de passe. Le format de
ces chiers est trs simple. Les deux chiers utilisent la mme syntaxe pour les secrets. Vous devez
simplement y ajouter une ligne telle que celle-ci :
# Secrets for authentification using PAP/CHAP
# client server secret IP addresses
jdupont serveurfai gh25k;f
263
Chapitre 9. Conguration du rseau
pour que lidentication et lauthentication se fasse correctement. Comme on le voit, le nom du
serveur est indiqu dans ce chier : il permet de dterminer quel login et quel mot de passe doivent
tre utiliss pour les protocoles PAP et CHAP.
Note : En fait, le protocole PPP ne permet pas didentier des utilisateurs, mais des machines.
Cependant, pour votre fournisseur, votre machine est identie par votre login, et il faut donc
indiquer ce nomcomme nomde machine cliente dans les chiers pap-secrets et chap-secrets.
Le nom de serveur nest pas utilis pour la connexion. Il ne sert qu dterminer quel secret doit
tre utilis pour une connexion donne. Comme la plupart des gens nont quun seul fournisseur
daccs Internet, ce nom est purement et simplement facultatif. Dans ce cas, on peut parfaite-
ment remplacer le nom du serveur par une toile. Ce caractre gnrique indique simplement
que le mme secret doit tre utilis pour toutes les connexions.
Pour les connexions Internet, il est souvent impossible de connatre a priori ladresse IP que
le serveur donnera au client. On peut donc laisser vide la colonne contenant les adresses IP
utilisables par les clients.
Lorsque vous aurez crit le script chat et ventuellement complt les chiers de secrets de PAP ou
de CHAP, vous pourrez crire le script de connexion Internet. Ce script est trs simple :
#!/bin/sh
# Script de connexion Internet
# Effectue le mnage :
rm -f /var/spool/uucp/LCK* /var/lock/LCK* /var/run/ppp*.pid
# tablit la connexion :
/usr/sbin/pppd /dev/modem 115200 connect "/usr/sbin/chat -v \
-f /etc/ppp/peers/monfai.chat" defaultroute usepeerdns \
ipcp-accept-remote ipcp-accept-local
Prenez garde crire la ligne excutant pppd et la ligne des options en une seule ligne, sans saut de
ligne. Notez que le caractre \ plac en n de ligne permet dindiquer que la commande se poursuit
sur la ligne suivante. Ce script commence par faire le mnage sur les chiers ventuellement laisss
par les anciennes connexions, et appelle pppd en lui demandant dutiliser la connexion tablie par le
programme chat avec la vitesse maximale de connexion indique. Lorsque la connexion est tablie, le
serveur du fournisseur daccs est enregistr comme passerelle par dfaut dans la table de routage du
noyau. Lenvoi et la rception des paquets IP en direction de lInternet se fera donc en passant par cette
passerelle. Les adresses de DNS du fournisseur daccs sont galement rcupres et ajoutes dans
le chier /etc/resolv.conf. Vous pourrez les dterminer simplement en consultant les chiers
de log de votre distribution dans le rpertoire /var/log/. Les deux dernires options permettent
dautoriser le serveur du fournisseur daccs xer les adresses IP locales et distantes.
Dans ce script de connexion, le programme chat est appel avec le script de numrotation pour chat
que lon a dj crit. Si lon dsire voir exactement ce qui se passe, on peut ajouter loption -s la
commande dexcution de chat :
/usr/sbin/chat -v -s -f /etc/ppp/peers/monfai.chat
dans le script de connexion vu ci-dessus. Cela vous permettra de dboguer votre script de numrota-
tion.
264
Chapitre 9. Conguration du rseau
Vous remarquerez que le programme pppd utilise le chier spcial de priphrique /dev/modem pour
la communication. Il va de soi que si ce chier spcial nexiste pas, vous devrez le crer. La solution la
plus simple est de faire un lien symbolique vers /dev/ttS0 ou /dev/ttS1, selon que votre modem
est connect sur le premier ou le deuxime port srie de votre ordinateur.
La commande de lancement donne ci-dessus suppose que le script de connexion
/etc/ppp/peers/monfai.chat ralise lidentication et lauthentication. Si vous utilisez lun
des protocoles PAP ou CHAP, il faut demander pppd deffectuer ces deux oprations lui-mme.
Pour cela, il faut ajouter des options dans la ligne de commande utilise pour le lancer dans le script
de connexion, an de prciser le nom du serveur et le nom dutilisateur pour lidentication. La ligne
complte utiliser pour PAP ou CHAP doit donc tre celle-ci :
# tablit la connexion :
/usr/sbin/pppd /dev/modem 115200 connect "/usr/sbin/chat -v \
-f /etc/ppp/peers/monfai.chat" defaultroute usepeerdns \
ipcp-accept-remote ipcp-accept-local noauth \
remotename serveurfai user jdupont
Encore une fois, cette commande doit tre crite sur une seule ligne, ou sur plusieurs lignes spares
par le caractre \. Loption noauth signale quil nest pas ncessaire que le serveur du fournisseur
daccs sauthentie en tant que tel (ce nest pas ncessaire, car les fournisseurs daccs ne jouent
pas vraiment aux pirates du web), et les deux options suivantes permettent respectivement dindiquer
le nom de ce serveur ainsi que le nom dutilisateur utiliser pour le login. Lors de lauthentication,
le dmon pppd lira le chier de secret du protocole choisi par le fournisseur daccs pour trouver le
mot de passe utiliser. Notez encore une fois quil est facultatif de prciser le nom du serveur du
fournisseur daccs si vous avez utilis le caractre gnrique * dans les chiers de secrets pour
PAP et CHAP.
Il est possible de faire en sorte que la connexion Internet stablisse automatiquement ds quun
programme cherche utiliser une adresse devant passer par la route par dfaut. Toute demande des-
tination dune machine dont ladresse est inconnue localement provoque dans ce cas ltablissement
de la connexion Internet. Pour cela, il suft simplement :
dajouter loption demand la ligne de commande de pppd dans le script de connexion ;
de lancer ce script en arrire plan dans un des scripts de dmarrage du systme.
Si vous dsirez utiliser cette fonctionnalit, il est recommand dactiver galement la dconnexion au-
tomatique, faute de quoi vous risqueriez de rester connect involontairement. Cela se fait simplement
en ajoutant loption idle n dans la ligne de commande de pppd, o n est le nombre de secondes
pendant lequel le lien PPP doit rester inactif avant que la connexion ne se coupe automatiquement.
Un choix judicieux est par exemple 600 (ce qui correspond dix minutes).
Note : Linterface rseau est automatiquement cre lorsquon lance le dmon pppd avec loption
demand. Par consquent, le dmon pppd dnira automatiquement une adresse IP locale pour
cette interface et une adresse IP distante pour la passerelle par dfaut. Malheureusement, ces
adresses peuvent changer dune connexion une autre. En effet, la plupart des fournisseurs at-
tribuent les adresses IP en fonction du modem qui rpond au client qui appelle et, en gnral, la
connexion ne se fait pas toujours sur le mme modem (il peut y avoir plusieurs modems pour un
mme numro de tlphone). Cest pour cela quil faut ajouter les options ipcp-accept-remote
et ipcp-accept-local pour indiquer pppd de modier ces adresses lorsquil tablira la connex-
ion. Le problme, cest que les connexions TCP/IP utilisant ces adresses seront systmatique-
ment casses la suite de ce changement. Cest en particulier le cas pour le programme qui a
265
Chapitre 9. Conguration du rseau
initi ltablissement de la liaison PPP. Cest pour cette raison quil est recommand de demander
une adresse IP xe son fournisseur daccs lorsquon veut utiliser la connexion la demande.
Hlas, ce service peut faire lofce dune facturation supplmentaire.
Mme si lon utilise loption usepeerdns dans la ligne de commande de PPP, il est recommand
de rajouter les adresses des DNS dans le chier /etc/resolv.conf. En effet, en labsence de
DNS, les noms de domaine ne seront pas rsolus et aucune requte vers lextrieur ne se fera.
Par consquent, la route par dfaut ne sera pas utilise, et pppd ntablira donc pas la connexion
automatiquement. Notez que si vous dnissez les DNS dans le chier /etc/resolv.conf, vous
pouvez vous passer de loption usepeerdns dans la ligne de commande de pppd. Si vous dsirez
procder de cette manire, vous devrez vous assurer que lordre spci pour la rsolution des
noms dans le chier /etc/host.conf est bien le chier /etc/hosts (option hosts) avant le DNS
(option bind), faute de quoi votre ordinateur se connectera systmatiquement Internet ds que
vous utiliserez un nom de machine local.
La plupart des options passes en ligne de commande peuvent tre spcies dans le chier
doptions /etc/ppp/options du dmon pppd. Cela peut permettre de simplier les scripts de
connexion.
Si lon nutilise pas les mcanismes de connexion / dconnexion automatiques, on devra se dconnec-
ter manuellement. Pour cela, rien de plus simple : il suft de dtruire le dmon pppd. Cela peut tre
ralis automatiquement avec le script suivant :
#!/bin/sh
# Script de terminaison de la connexion PPP
#
# Dtermine la connexion fermer (fournie sur la ligne de commande,
# ppp0 par dfaut) :
if [ "$1" = "" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi
# Teste si la connexion indique est active :
if [ -r /var/run/$DEVICE.pid ]; then
# Dtruit le processus ppp correspondant (son PID est stock
# dans /var/run/) :
kill -INT cat /var/run/$DEVICE.pid
# Effectue le mnage :
if [ ! "$?" = "0" ]; then
rm -f /var/run/$DEVICE.pid
echo "ERREUR: Un fichier de PID rsiduel \
a d tre effac manuellement"
exit 1
fi
rm -f /var/spool/uucp/LCK* /var/lock/LCK*
echo "La connexion PPP sur $DEVICE a t ferme correctement..."
echo
# Termine le script :
exit 0
fi
266
Chapitre 9. Conguration du rseau
# La connexion indique nest pas active :
echo "ERREUR: Il ny a pas de connexion PPP sur $DEVICE"
exit 1
9.3.3. Utilisation du mail
prsent, vous pouvez vous connecter Internet simplement en excutant le script de connexion.
Pour vous dconnecter, il suft dappeler le script de dconnexion. Ds que vous tes connect In-
ternet, vous pouvez utiliser toutes les fonctionnalits rseau de Linux, qui sont sans limites. Parmi ces
fonctionnalits, on trouve lenvoi de courriers lectroniques. Cette opration peut tre ralise laide
du programme mail, qui se manipule laide de commandes simples. Les commandes disponibles
chaque instant sont afches dans le bas de lcran de mail.
Le programme mail nest quun client, qui ne fait rien dautre que denvoyer et recevoir des
mails au serveur de mails local. Sur la plupart des distributions, le serveur de mails utilis se
nomme sendmail . Si vous dsirez utiliser le courrier lectronique, vous devrez donc congurer
sendmail. Hlas, cette opration est technique et difcile. Il est recommand dutiliser loutil de
conguration de votre distribution, qui fera tout le sale boulot pour vous. Toutefois, si vous dsirez
congurer sendmail vous-mme, sachez que la plupart des options sont stockes dans le chier
/etc/sendmail.cf. Vous devriez vous documenter avant de vous lancer dans cette opration. Le
chier /etc/sendmail.cf ne sera pas dcrit ici, il peut faire lui seul lobjet de plusieurs livres...
Classiquement, lorsque vous envoyez un mail, ce mail est envoy sendmail. Si vous tes connect
Internet, celui-ci le transmet immdiatement votre fournisseur daccs Internet, qui le redif-
fuse. En revanche, si vous ntes pas connect, sendmail stockera votre message dans le rpertoire
/var/spool/mqueue/. Les courriers ne seront envoys que lorsque vous vous connecterez In-
ternet. sendmail vrie priodiquement sil peut envoyer les mails en attente. Cependant, si vous ne
restez pas connect sufsamment longtemps, il peut ne pas sen apercevoir. Pour viter cela, vous
pouvez utiliser la commande suivante :
sendmail -q
Cette commande demande sendmail denvoyer les courriers en attente immdiatement.
De la mme manire, le programme mail ne rcupre pas lui-mme les mails depuis le serveur de mail
de votre fournisseur daccs Internet. En gnral, le programme utilis pour rcuprer les mails se
nomme fetchmail . Si vous voulez rcuprer immdiatement vos mails, vous devrez donc appeler
fetchmail manuellement :
fetchmail
Bien entendu, ces oprations sont ennuyeuses. Si vous voulez tre tranquille, vous pouvez placer ces
deux commandes la n du script de connexion Internet. De la sorte, vous recevrez et enverrez
votre courrier chaque fois que vous vous connecterez...
267
Chapitre 9. Conguration du rseau
9.3.4. Les autres outils de connexion
Vous en savez sufsamment prsent pour vous connecter Internet avec Linux. Les oprations qui
ont t dcrites ici sont lgrement compliques, et vous les trouvez sans doute un peu lourdes. Cela
est naturel, car elles le sont effectivement. En fait, les oprations dcrites ici vous montrent comment
vous connecter manuellement, mais elles ne constituent pas la manire de faire la plus facile. En
effet, si vous installez XWindow, vous pourrez utiliser des programmes graphiques permettant de
vous connecter Internet, denvoyer et recevoir des courriers lectroniques ( mails ), de naviguer
( surfer ) et de lire les groupes de discussions ( news ). Cependant, lutilisation de ces outils
ne sera pas dcrite ici, car il en existe trop pour que lon puisse tous les prsenter. Heureusement,
ces outils sont prvus pour tre trs simples demploi et leur conguration ne pose rellement aucun
problme.
9.4. Firewalls et partages de connexion Internet
Supposons quune machine situe sur un rseau local a accs Internet. Il peut tre intressant de faire
en sorte que les autres machines du rseau puissent galement y accder, en utilisant cette machine
comme passerelle. Cela est parfaitement ralisable et ne pose aucun autre problme que la dnition
des rgles de routage si toutes les machines ont une adresse IP attribue par lIANA. Cependant,
cela est rarement le cas, car les rseaux locaux utilisent normalement les adresses rserves cet
usage, qui ne sont pas routables sur Internet. Dans ce cas, il est vident que les machines du rseau
local ne pourront pas envoyer de paquets sur Internet, et qua fortiori elles ne recevront jamais de
paquets provenant dInternet. Heureusement, il existe une technique nomme masquerading, base
sur un mcanisme de translation dadresse ( NAT en anglais, abrviation de Network Address
Translation ), qui permet de modier les paquets mis destination dInternet la vole an de
pouvoir partager une connexion Internet mme avec des ordinateurs qui utilisent des adresses locales.
Comme nous allons le voir, partager une connexion Internet avec dautre ordinateurs dun rseau
local est un jeu denfant sous Linux grce cette technique.
Il faut toutefois bien se rendre compte que le fait que fournir un accs Internet un rseau local pose
des problmes de scurit majeurs. Pour des rseaux locaux familiaux, les risques de piratages sont
bien entendu mineurs, mais lorsque la connexion Internet est permanente ou lorsque les donnes
circulant sur le rseau local sont sensibles, il faut tenir compte des risques dintrusion. Lorsquon
utilise des adresses IP dynamiques, il est relativement difcile daccder des machines du rseau
local, sauf si la passerelle expose des services internes au reste du rseau. En revanche, si les adresses
utilises sont xes et valides sur Internet, le risque devient trs important. La conguration de la
passerelle doit donc se faire avec soin dans tous les cas, et linstallation dun Firewall est plus que
recommande (un rewall , ou pare-feu en franais, est un dispositif qui consiste protger un
rseau local du feu de lenfer dInternet, sur lequel tous les crackers sont supposs grouiller).
Les paragraphes suivants exposent les mcanismes de ltrage de paquets rseau de Linux, qui sont
utilises tant pour dnir les rgles de protection contre les intrusions indsirables sur un rseau par
lintermdiaire dune passerelle que pour effectuer des traitements sur les paquets. Cependant, de tous
ces traitements, nous ne verrons que la translation dadresse, car cest sans doute celui que la plupart
des gens cherchent utiliser.
9.4.1. Mcanismes de ltrage du noyau
Linux est capable de ltrer les paquets circulant sur le rseau et deffectuer des translations dadresses
depuis la version 2.0. Cependant, les techniques utilises ont t profondment remanies chaque
268
Chapitre 9. Conguration du rseau
version. partir de la version 2.4.0, une architecture extensible a t mise en place et semble rpondre
tous les besoins de manire simple : Netlter.
Netlter est simplement une srie de points dentres dans les couches rseau du noyau au niveau des-
quels des modules peuvent senregistrer an deffectuer des contrles ou des traitements particuliers
sur les paquets. Il existe une entre en chaque point cl du trajet suivi par les paquets dans les couches
rseau du noyau, ce qui permet dintervenir de manire souple et nimporte quel niveau. Un certain
nombre de modules permettant deffectuer les traitements les plus courants sont fournis directement
dans le noyau, mais larchitecture Netlter est sufsamment souple pour permettre le dveloppement
et lajout des modules complmentaires qui pourraient tre dvelopps par la suite.
Les fonctionnalits fournies par ces modules sont regroupes par domaines fonctionnels. Ainsi, les
modules permettant de raliser des Firewalls se chargent spciquement de donner les moyens de
ltrer les paquets selon des critres bien dnis, et les modules permettant deffectuer des translations
dadresses ne prennent en charge que la modication des adresses source et destination des paquets
la vole. An de bien les identier, ces fonctionnalits sont regroupes dans ce que lon appelle des
tables. Une table nest en fait rien dautre quun ensemble cohrent de rgles permettant de manipuler
les paquets circulant dans les couches rseau du noyau. Les tables les plus couramment utilises sont
les tables lter et nat , qui permettent respectivement de raliser des Firewall et deffectuer des
translations dadresses.
Chaque table utilise ses propres points dentre de Netlter. Pour chacun de ces points dentre, des
listes de rgles de gestion des paquets peuvent tre dnies. Ces listes sont communment appe-
les des chanes. Il y a donc toujours une chane de rgles prdnie pour chaque point dentre.
Lutilisateur peut bien entendu dnir de nouvelles chanes et les utiliser dans les chanes prdnies.
Les rgles permettent de spcier les paquets qui les vrient, selon des critres prcis, comme par
exemple leur adresse source ou le type de protocole quils transportent. Les rgles indiquent galement
les traitements qui seront appliqus ces paquets. Par exemple, il est possible de dtruire purement et
simplement tous les paquets provenant dune machine considre comme non sure si lon veut faire
un Firewall. On pourra aussi envoyer ces paquets dans une autre chane, qui peuvent indiquer dautres
rgles et dautres traitements.
Les critres de slection de paquets des rgles de ltrage se basent sur les informations de len-tte
de ces paquets. Rappelez-vous que chaque paquet de donnes mis sur le rseau transporte avec
lui des informations ncessaires au fonctionnement dudit rseau, entre autres les adresses source et
destination du paquet. Ce sont sur ces informations que la slection des paquets est effectue dans
Netlter. Dans le cas dun protocole encapsul dans un autre protocole, comme par exemple un paquet
TCP dans un paquet IP, les informations du protocole encapsul peuvent galement tre utilises, si
lon a charg des modules complmentaires dans NetFilter. Par exemple, le numro de port TCP peut
faire partie des critres de slection dune rgle.
Les traitements que lon peut appliquer un paquet sont galement fournis par des modules de Netl-
ter. Les traitements les plus simples sont bien entendus fournis en standard avec le noyau. En gnral,
on peut chercher raliser les oprations suivantes sur un paquet :
lenregistrer, pour analyse ultrieure ;
le rediriger vers un port local, pour traitement par un programme ddi (par exemple, par un serveur
proxy) ;
laccepter, labandonner ou le rejeter directement (le rejet se distingue de labandon par lmission
dune notication hte inaccessible la machine ayant mis le paquet) ;
le modier et, en particulier, effectuer une translation dadresse ou le marquer pour le reconnatre
dans un traitement ultrieur ;
lenvoyer dans une autre chane pour effectuer des vrications complmentaires ;
269
Chapitre 9. Conguration du rseau
le faire sortir immdiatement de la chane courante.
De plus, les statistiques tenues par le noyau pour la rgle ainsi vrie sont mises jour. Ces statis-
tiques comprennent le nombre de paquets qui ont vri cette rgle ainsi que le nombre doctets que
ces paquets contenaient.
Lorsquun paquet arrive la n dune chane (soit parce quil na pas t rejet ou dtruit par une
rgle de Firewalling, soit parce quil ne correspond aux critres daucune rgle, ou soit parce quil
est arriv ce stade aprs avoir subi des modications), le noyau revient dans la chane appelante
et poursuit le traitement du paquet. Si la chane au bout de laquelle le paquet arrive est une chane
prdnie, il ny a plus de chane appelante, et le sort du paquet est dtermin par ce quon appelle la
politique de la chane prdnie. La politique ( policy en anglais) des chanes prdnies indique
donc ce que lon doit faire avec les paquets qui arrivent en n de chane. En gnral, on utilise une
politique relativement stricte lorsquon ralise un Firewall, qui rejette par dfaut tous les paquets qui
nont pas t accepts explicitement par une rgle de la chane.
Note : Certains paquets peuvent tre dcoups en plusieurs paquets plus petits lors de la traver-
se dun rseau. Par exemple, un paquet TCP un peu trop gros et initialement encapsul dans
un seul paquet IP peut se voir rpartir sur plusieurs paquets IP. Cela peut poser quelques prob-
lmes aux rgles de ltrage, puisque dans ce cas les donnes spciques TCP (par exemple
les numros de ports) ne sont disponibles que sur le premier paquet IP reu, pas sur les suiv-
ants. Cest pour cette raison que le noyau peut effectuer une dfragmentation des paquets
lorsque cela est ncessaire, et que les paquets transmis par la passerelle ne sont pas toujours
strictement identitiques aux paquets quelle reoit.
9.4.2. Translations dadresses et masquerading
Nous avons vu que grce aux mcanismes de ltrage du noyau, il est possible de modier les paquets
la vole. Il peut tre intressant de modier un paquet pour diverses raisons, les trois plus intressantes
tant sans doute de le marquer laide dun champ spcial dans son en-tte an de le reconnatre ul-
trieurement, de modier sa priorit pour permettre un traitement privilgi ou au contraire en arrire
plan de ce type de paquet (librant ainsi les ressources rseau pour dautres types de connexion), et
de modier ses adresses source et destination, pour effectuer une translation dadresse. Nous allons
nous intresser plus particulirement aux diffrentes formes de translations dadresses dans la suite
de cette section.
Une translation dadresse nest en fait rien dautre quun remplacement contrl des adresses source
ou destination de tous les paquets dune connexion. En gnral, cela permet de dtourner les
connexions rseau ou de simuler une provenance unique pour plusieurs connexions. Par exemple,
les connexions Internet peuvent tre dtournes vers un proxy fonctionnant sur la passerelle de
manire transparente, en modiant les adresses destination des paquets mis par les clients. De
mme, il est possible de simuler un seul serveur en remplaant la vole les adresses source des
paquets que la passerelle envoie sur Internet.
On distingue donc deux principaux types de translations dadresses : les translations dadresse source
et les translations dadresse destination. Parmi les translations dadresse source se trouve un cas
particulier particulirement intressant : le masquerading . Cette technique permet de rempla-
cer toutes les adresses source des paquets provenant des machines dun rseau local par ladresse de
linterface de la passerelle connecte Internet, tout en conservant une trace des connexions rseau
an dacheminer vers leur vritable destinataire les paquets de rponse. Ainsi, une seule connexion
Internet peut tre utilise par plusieurs machines distinctes, mme si elles ne disposent pas dadresses
IP fournies par lIANA.
270
Chapitre 9. Conguration du rseau
Lorsquune machine du rseau local envoie un paquet destination dInternet, ce paquet est achemin
vers la passerelle, qui est la route par dfaut. Celle-ci commence par modier ladresse source de ce
paquet et mettre sa propre adresse la place, puis le transfre vers la machine du fournisseur daccs.
Tous les paquets mis par les machines du rseau local semblent donc provenir de cette passerelle, et
seront achemins normalement destination. En fait, la complication provient des paquets de rponse,
puisque les machines situes sur Internet croient que la machine avec laquelle elles communiquent est
la passerelle. Ces paquets sont donc tous envoys la passerelle directement, et celle-ci doit retrouver
la machine du rseau local laquelle ils sont destins. Cette opration est ralise de diffrentes
manires selon les protocoles utiliss, et elle suppose que la passerelle conserve en permanence une
trace des connexions rseau effectues par les machines du rseau local.
Pour TCP, ce suivi de connexion est ralis en modiant galement le port source des paquets pro-
venant des machines locales. La passerelle utilise un port unique pour chaque connexion, qui va lui
permettre de retrouver la machine laquelle un paquet est destin lorsquelle en reoit un provenant
dInternet. Par exemple, si une machine locale fait une connexion Internet, la passerelle alloue un
nouveau numro de port pour cette connexion et modie tous les paquets sortants comme ayant t
mis par la passerelle elle-mme, sur ce port. Lorsque lautre machine prenant part la connexion,
situe sur Internet, envoie un paquet de rponse, celui-ci sera destination de la passerelle, avec
comme port destination le port allou cette connexion. La passerelle peut donc retrouver, partir de
ce port, ladresse de la machine destination relle, ainsi que le port source que cette machine utilisait
initialement. La passerelle modie donc ces deux champs du paquet, et le renvoie sur le rseau local.
Finalement, la machine destination reoit le paquet sur son port, et ce paquet semble provenir directe-
ment dInternet, comme si la connexion avait t directe. Notez bien que la passerelle ne modie pas
les adresses source des paquets provenant dInternet, elle ne fait que les racheminer vers la bonne
destination.
Figure 9-9. Translation dadresses avec suivi de port TCP
Ainsi, le masquerading est un mcanisme compltement transparent pour les machines du rseau
local. En revanche, pour les machines de lInternet, il ne semble y avoir quun seul interlocuteur : la
passerelle. Celle-ci utilise des numros de ports varis, mais cela ne les regarde pas. Les machines du
rseau local sont donc compltement masques par la passerelle, do le nom de masquerading.
271
Chapitre 9. Conguration du rseau
Tout ce travail effectu par la passerelle ncessite un traitement spcique sur chaque paquet quelle
achemine, et consomme bien entendu des ressources systme. Cependant, les dbits utiliss pour les
connexions Internet, mme les plus rapides, sont trs loin de mettre genoux une passerelle sous
Linux, mme sur les plus petites machines (386 et 486). Vous voil rassurs, et peut-tre aurez-vous
trouv dici peu une utilit lun de ces dinosaures qui tranent encore dans votre garage...
9.4.3. Trajet des paquets
Il existe cinq points dentre au total pour les modules de Netlter dans le code des couches rseau
IP de Linux. ces cinq points dentre correspondent cinq chanes prdnies, qui peuvent tre
accdes par lintermdiaire des diverses tables de Netlter. Les paragraphes suivants dcrivent ces
cinq chanes, ainsi que lordre dans lequel les paquets les traversent.
Les paquets rseau provenant de lextrieur sont dabord contrls par le noyau an de dtecter les
erreurs les plus simples. Les paquets mal forms ou corrompus sont systmatiquement limins ce
niveau, avant mme datteindre le code de Netlter. Les autres paquets commencent alors leur trajet
dans les couches de plus haut niveau. Cest ce moment l quils rencontrent la chane PREROUTING,
qui est la premire chane prise en compte. Cette chane prcde le code de routage, qui est en charge
de dterminer le trajet que le paquet devra suivre par la suite partir de ladresse destination des
paquets. Cest donc dans cette chane que lon pourra modier ladresse destination des paquets, si
lon veut faire une translation dadresse destination. Cette chane est donc utilisable dans la table nat.
Les paquets qui traversent la chane PREROUTING sont ensuite orients par le code de routage de
Linux. Sils sont destination de la machine locale, ils rencontrent une autre chane prdnie : la
chane INPUT. Cest ce niveau que lon peut empcher un paquet dentrer dans le systme, aussi
cette chane est-elle naturellement disponible dans la table filter.
Les autres paquets doivent tre transfrs vers une autre machine, souvent par une autre interface
rseau. Ils traversent alors la chane FORWARD. Cette chane permet de contrler les paquets qui tran-
sitent au travers dune passerelle, et fait donc partie de la table filter.
Les paquets qui sont accepts par la chane FORWARD retournent ensuite dans le code de routage du
noyau, an de dterminer linterface rseau par laquelle ils doivent tre rmis. Une fois cela ralis,
ils sont prts tre rmis, mais ils doivent auparavant traverser la chane POSTROUTING. Cest dans
cette dernire chane que se font les translations dadresse source, aussi est-elle accessible dans la
table nat.
Enn, les paquets mis par la machine locale destination de lextrieur doivent imprativement tra-
verser la chane OUTPUT, dans laquelle on pourra ltrer les informations sortantes. Cette chane est
donc accessible dans la table filter. Les paquets qui se rvlent avoir le droit de sortir traversent
alors de code de routing, puis, tout comme les paquets qui ont t transfrs, entrent dans la chane
POSTROUTING. La chane OUTPUT est galement accessible au travers de la table nat, an de per-
mettre la modication des adresses destination des paquets avant leur routage.
272
Chapitre 9. Conguration du rseau
Figure 9-10. Trajet des paquets dans le code de ltrage
Note : Pour des raisons de clart, les chanes prdnies et les points dentre de Netlter ont t
volontairement confondus dans ce paragraphe. En fait, il faut bien comprendre que les chanes
appartiennent aux tables, et quil peut exister plusieurs chanes du mme nom dans plusieurs
tables diffrentes. Lajout dune rgle dans une chane ne se fait donc que pour une table donne,
les autres tables ne contiendront donc pas cette rgle. En revanche, les paquets qui arrivent sur
un des points dentre de netlter dans les couches rseau de Linux traversent bien les diffrentes
chanes de toutes les tables qui utilisent ce point dentre.
9.4.4. Conguration du noyau et installation des outils
Les fonctionnalits de Netlter sont toutes fournies par le noyau lui-mme, aussi leur conguration
doit-elle se faire au niveau du noyau. La manire de procder pour congurer le noyau a t indique
dans le paragraphe traitant de la compilation du noyau. Les options activer pour mettre en place les
fonctionnalits de ltrage des paquets et de translation dadresse sont les suivantes :
Network packet filtering (replace ipchains) , pour activer les fonctionnalits de
ltrage des paquets en gnral ;
Network packet filtering debugging , pour obtenir les messages de dbogage du
noyau. Ces messages peuvent tre trs utiles pour mettre au point les rgles de ltrage ;
Connection tracking (required for masq/NAT) (menu IP: Netlter
Conguration ), pour permettre le suivi des connexions auxquelles appartiennent les paquets
IP reus par la passerelle. Cette option est ncessaire pour raliser un partage de connexion
Internet ;
FTP protocol support , pour permettre la gestion des connexions FTP, qui exigent un trai-
tement particulier pour les translations dadresses ;
IP tables support (required for filtering/masq/NAT) , pour permettre la gestion
des tables de Netlter ;
Packet filtering , pour inclure le support de la table lter . Cette option est ncessaire
pour raliser un Firewall ;
REJECT target support , pour permettre le rejet des paquets (par dfaut, seul labandon des
paquets est fourni dans le code de ltrage) ;
273
Chapitre 9. Conguration du rseau
Full NAT , pour inclure la table nat de Netlter. Cette option est ncessaire pour raliser un
partage de connexion Internet ;
MASQUERADE target support , pour permettre le masquerading an de raliser un partage
de connexion Internet.
Vous devrez ensuite compiler le noyau et les modules, et les installer comme indiqu dans la partie
traitant de la compilation du noyau.
Note : Le noyau de Linux dispose dun paramtre global permettant de contrler le routage des
paquets IP dune interface rseau une autre. Par dfaut, ce paramtre est 0, ce qui implique
que la transmission des paquets ne sera pas autorise. Il faut donc activer ce paramtre chaque
dmarrage an de pouvoir utiliser votre passerelle Linux. Cela peut tre ralis en crivant la
valeur 1 dans le chier /proc/sys/net/ipv4/ip_forward du systme de chiers virtuel /proc/ :
echo "1" > /proc/sys/net/ipv4/ip_forward
La manipulation des chanes et la manipulation des rgles de Netlter se fait grce loutil
iptables. Cette commande doit normalement avoir t installe par votre distribution.
Toutefois, si ce nest pas le cas, vous pouvez la compiler manuellement. Pour cela, il vous
faudra rcuprer larchive des sources diptables. Cette archive peut tre trouve sur Internet
(http://www.netlter.org/les/iptables-1.2.6a.tar.bz2). La version courante est la 1.2.6a, aussi
larchive se nomme-t-elle iptables-1.2.6a.tar.bz2.
Linstallation diptables ne pose pas de problme particulier en soi. Vous devrez dabord dcomprimer
larchive avec les deux commandes suivantes :
bunzip2 iptables-1.2.6a.tar.bz2
tar xf iptables-1.2.6a.tar
puis modier le chier Makefile pour dnir les rpertoires dinstallation dans les variables LIB-
DIR, BINDIR et MANDIR. En gnral, les rpertoires utiliss seront respectivement les rpertoires
/usr/lib/, /usr/bin/ et /usr/man/. Une fois cela fait, il ne restera plus qu compiler le tout
avec la commande make et faire linstallation avec la commande make install.
9.4.5. Utilisation diptables
Il est possible, grce iptables, deffectuer toutes les oprations dadministration dsires sur les
tables de Netlter. Vous pourrez donc crer des nouvelles chanes, les dtruire, dnir les politiques
par dfaut, ainsi que manipuler les rgles de ces chanes (en ajouter, en supprimer ou en remplacer
une). En fait, iptables dispose dun grand nombre doptions, et seules les options les plus impor-
tantes seront prsentes ici. Vous pouvez lire la page de manuel iptables si vous dsirez plus de
renseignements sur la manipulation des chanes et des rgles de ltrage du noyau.
9.4.5.1. Manipulation des chanes
Toutes les options peuvent tre utilises avec toutes les tables gres par le noyau. La table sur laquelle
une commande sapplique peut tre prcise laide de loption -t. Si cette option nest pas fournie,
274
Chapitre 9. Conguration du rseau
la table utilise par dfaut sera la table filter, qui est celle qui est normalement utilise pour dnir
des rgles de ltrage des paquets dans un Firewall.
La cration dune nouvelle chane se fait simplement avec loption -N :
iptables [-t table] -N chane
o chane est le nom de la chane crer. Il est interdit dutiliser un des mots cls rservs par
iptables. En pratique, il est recommand dutiliser des noms de chanes en minuscules, car les chanes
prdnies sont en majuscules.
Une chane peut tre dtruite avec loption -X :
iptables [-t table] -X chane
Une chane ne peut tre dtruite que lorsquelle ne contient plus de rgle. De plus, il est impossible
de dtruire les chanes prdnies dune table.
Vous pouvez lister lensemble des rgles dune chane avec loption -L :
iptables [-t table] -L chane
Enn, il est possible de supprimer toutes les rgles dune chane avec loption -F :
iptables [-t table] -F chane
o chane est le nom de la chane dont on veut supprimer les rgles.
9.4.5.2. Manipulation des rgles
La syntaxe gnrale pour ajouter une rgle dans une chane est la suivante :
iptables [-t table] -A chane [-s source] [-d destination] [-p protocole]
[-i itfsource] [-o itfdest] [-j cible]
o :
table est la table dans laquelle se trouve la chane manipule (par dfaut, il sagit de la table
filter) ;
chane est le nom de la chane laquelle la rgle doit tre ajoute ;
source est ladresse source du paquet ;
destination est ladresse destination du paquet ;
protocole est le protocole du paquet (spci avec son numro de port ou par le nom du protocole
tel quil est dclar dans le chier /etc/services) ;
itfsource est le nom de linterface rseau source par laquelle le paquet doit arriver ;
itfdest est le nom de linterface destination par laquelle le paquet doit sortir ;
et cible est la cible des paquets qui vrient les critres de slection de la rgle.
Chacun des paramtres plac entre crochets dans la syntaxe est facultatif, mais il faut au moins quun
critre de slection soit donn (sur les adresses source ou destination, ou sur le port ou linterface).
275
Chapitre 9. Conguration du rseau
Les adresses source et destination peuvent tre indiques directement par le nom des machines
(comme par exemple www.monrezo.com ) ou par leurs adresses IP. Vous pouvez spcier
directement toutes les adresses dun rseau avec la syntaxe rseau/masque . Il est galement
possible dutiliser la syntaxe rseau/n , o n est le nombre de bits mis 1 dans le masque
de sous-rseau. Ainsi, rseau/24 est quivalent rseau/255.255.255.0, rseau/16
rseau/255.255.0.0, etc. Par extension, rseau/0 peut tre utilis pour spcier toutes les
adresses possibles (dans ce cas, ladresse donne pour le rseau nest pas prise en compte).
La cible dtermine les oprations qui seront appliques ces paquets. Les cibles autorises dpendent
de la chane dans laquelle la rgle est ajoute, ainsi que des modules de Netlter qui ont t compils.
Les principales cibles sont les suivantes :
ACCEPT, pour accepter le paquet qui vrie le critre de slection de la rgle ;
DROP, pour liminer purement et simplement le paquet ;
REJECT, pour rejeter le paquet (en signalant lerreur la machine mettrice). Cette cible nest
utilisable que dans les chanes INPUT, FORWARD et OUTPUT, ainsi que dans les chanes utilisateurs
appeles partir de ces chanes ;
QUEUE, pour envoyer le paquet un programme utilisateur capable de communiquer avec NetFilter ;
RETURN, pour sortir de la chane immdiatement, ou appliquer la rgle de la politique par dfaut
pour les chanes prdnies ;
REDIRECT, pour rediriger le paquet sur une autre machine, souvent la machine locale. Cette cible
nest utilisable quavec la table nat, car il sagit dune translation dadresse. On ne peut lutiliser
que dans les chanes PREROUTING et OUTPUT et les chanes utilisateur appeles partir de ces
chanes ;
SNAT, pour permettre la modication de ladresse source du paquet. Cette cible nest bien entendu
accessible quau niveau de la table nat. Comme la modication de ladresse source na de signi-
cation que pour les paquets devant sortir de la passerelle, cette cible ne peut tre utilise que dans
la chane POSTROUTING et les chanes utilisateur appeles partir de cette chane ;
DNAT, pour effectuer la modication de ladresse destination du paquet, an par exemple de le
dtourner vers une autre machine que celle vers laquelle il devait aller. Cette cible nest accessible
que dans la table nat, et nest utilisable que dans les chanes PREROUTING et OUTPUT ainsi que
dans les chanes utilisateur appeles partir de ces chanes ;
MASQUERADE, pour effectuer une translation dadresse sur ce paquet, dans le but de raliser un
partage de connexion Internet. Cette cible nest accessible que dans la chane POSTROUTING de
la table nat, ainsi que dans les chanes utilisateur appeles partir de cette chane.
Toute autre spcication de destination doit tre le nom dune chane utilisateur, avec les rgles de
laquelle le paquet devra tre test. Si aucune cible nest spcie, aucune action nest prise et la rgle
suivante est traite. Cependant, les statistiques de la rgle sont toujours mises jour.
La suppression dune rgle dune chane se fait avec la commande suivante :
iptables -D chane numro
o chane est la chane dont on veut supprimer la rgle, et numro est le numro de la rgle
supprimer dans cette chane. Il est galement possible dutiliser loption -D avec les mmes options
que celles qui ont t utilises lors de lajout de la rgle, si lon trouve cela plus pratique.
Enn, la politique dune chane, cest--dire la cible par dfaut, peut tre xe avec loption -P :
iptables -P chane cible
276
Chapitre 9. Conguration du rseau
o chane est lune des chanes prdnie, et cible est lune des cibles ACCEPT ou DROP. Remar-
quez que lon ne peut pas dnir de politique pour les chanes cres par lutilisateur, puisque les
paquets sont vris avec les rgles restantes de la chane appelante lorsquils sortent de la chane
appele.
9.4.6. Exemple de rgles
Ce paragraphe a pour but de prsenter quelques-unes des rgles les plus classiques. Le but est ici de
prsenter les principales fonctionnalits diptables et non de raliser un Firewall able. Reportez-vous
des documents plus spcialiss pour cela.
9.4.6.1. Exemple de rgles de ltrage
Les rgles de ltrage peuvent tre utilises pour mettre en place un Firewall an de protger votre
rseau. La dnition des rgles de ltrage constitue bien souvent lessentiel du problme, et ncessite
bien entendu de parfaitement savoir ce que lon veut faire. De manire gnrale, la rgle dor en
matire de scurit informatique est de tout interdire par dfaut, puis de donner les droits au compte-
gouttes. Cest exactement ce que permet de faire la politique des chanes. On dnira donc toujours
la politique par dfaut des chanes pour utiliser la cible DROP. Cela peut tre ralis simplement avec
les trois commandes suivantes :
iptables -P INPUT -j DROP
iptables -P FORWARD -j DROP
iptables -P OUTPUT -j DROP
Ces rgles commencent par blinder la passerelle pour ne rien laisser entrer, ne rien laisser passer et
ne rien laisser sortir. Dans ce cas, on ne craint plus rien, mais on ne peut plus rien faire non plus (pas
mme en local). Aussi faut-il redonner les droits ncessaires pour permettre lutilisation normale de
votre systme. Par exemple, on peut autoriser larrive et lmission de tous les paquets du rseau
local avec les rgles suivantes :
iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.0/8 -o eth0 -j ACCEPT
et autoriser la communication des paquets de la machine locale vers la machine locale (ces paquets
sont vitaux !) :
iptables -A OUTPUT -s 127.0.0.0/8 -o lo -j ACCEPT
iptables -A INPUT -d 127.0.0.0/8 -i lo -j ACCEPT
Comme vous pouvez le constater, ces rgles ne permettent lentre des paquets prtendant prove-
nir du rseau local (cest--dire les paquets ayant comme adresse source une adresse de la forme
192.168.0.0/24) que par linterface rseau connecte au rseau local (dans notre exemple, il sagit de
linterface rseau eth0). De mme, seule la machine locale peut mettre des paquets sur le rseau
local. Il va de soi que ces paramtres sont trop restrictifs pour raliser une passerelle. Dans ce cas,
on devra relcher un peu plus les contraintes, et utiliser des rgles de ltrage plus nes. On devra
277
Chapitre 9. Conguration du rseau
autoriser le routage des paquets (chane FORWARD), par exemple en nautorisant que les paquets pro-
venant dun ensemble de machines considres comme ables. Notez que ces rgles sont beaucoup
trop restrictives pour permettre un accs Internet (et, a fortiori une intrusion provenant dInternet...).
Les rgles prsentes ici se basent uniquement sur les adresses source et destination des paquets, ainsi
que sur les interfaces rseau par lesquelles ils entrent et ressortent. Sachez cependant que lon peut
raliser des rgles beaucoup plus nes, qui se basent galement sur les protocoles rseau utiliss et,
pour chaque protocole, sur des critres spciques ces protocoles. Vous pouvez consulter la page de
manuel diptables pour plus de dtails ce sujet.
9.4.6.2. Exemple de partage de connexion Internet
Le masquerading est un cas particulier de translation dadresse source. En effet, celle-ci est couple
un suivi des connexions an deffectuer la translation dadresse destination des paquets de rponse
renvoys par les serveurs sur Internet pour les acheminer vers la machine du rseau local qui a initi
la connexion.
En pratique, seule la chane POSTROUTING sera utilise pour le masquerading, parce que cest ce
niveau que la translation dadresse est effectue. La mise en uvre du masquerading se fait extrme-
ment simplement, puisquil suft de spcier que tous les paquets du rseau local sortant de linterface
rseau connecte sur Internet doivent subir le masquerading. En gnral, linterface de la connexion
Internet est une interface PPP, aussi la commande utiliser est-elle simplement la suivante :
iptables -t nat -A POSTROUTING -s rseau/24 -o ppp0 -j MASQUERADE
o rseau est ladresse de votre rseau (par exemple, 192.168.0.0). Notez que la commande don-
ne ci-dessus suppose que votre rseau soit de classe C, car le masque de sous-rseau utilis est
255.255.255.0. La cible spcie pour tous les paquets provenant de votre rseau local sortant par
linterface ppp0 est donc MASQUERADE, ce qui active la translation dadresse. Remarquez que les
paquets provenant de la machine locale ne subissent pas le masquerading, car cest compltement
inutile.
Note : Les chanes et leurs rgles ne sont pas enregistres de manire permanente dans le
systme. Elles sont perdues chaque redmarrage de la machine, aussi faut-il les rednir sys-
tmatiquement. Cela peut tre ralis dans les scripts de dmarrage de votre systme.
Noubliez pas que votre passerelle doit dnir une route par dfaut pour que tous les paquets qui
ne sont pas destins au rseau local soient envoys par linterface rseau connecte Internet.
Cette route par dfaut est tablie automatiquement lorsque vous vous connectez Internet
laide de PPP. Dans les autres cas, vous aurez la dnir manuellement.
Le routage des paquets est, par dfaut, dsactiv sous Linux. Si votre distribution ne le fait pas,
vous aurez galement ajouter une ligne telle que celle-ci :
# Activation du routage :
echo "1" > /proc/sys/net/ipv4/ip_forward
dans vos scripts de dmarrage de votre systme.
Assurez-vous que les rgles de ltrage que vous utilisez permettent bien aux machines du rseau
local daccder Internet et, rciproquement, que les machines dInternet peuvent leur rpondre.
Sans cela, toute tentative de masquerading sera voue lchec, avant mme datteindre la
chane POSTROUTING.
278
Chapitre 9. Conguration du rseau
9.4.7. Conguration des clients
La conguration des autres machines du rseau est trs simple. Vous devrez tout dabord dnir la
machine possdant la connexion Internet comme passerelle par dfaut de tous vos postes clients.
Cette opration peut se raliser de diffrentes manire selon le systme dexploitation utilis par ces
machines. Sous Linux, il suft dutiliser la commande suivante :
route add default gw passerelle eth0
o passerelle est ladresse de votre passerelle vers Internet sur le rseau local. Cette commande
suppose que ladaptateur rseau utilis est eth0
La deuxime tape est ensuite de donner accs aux postes clients au DNS de votre fournisseur daccs.
Cela permettra en effet dutiliser les noms de machines autres que ceux de votre rseau local. Encore
une fois, la manire de procder dpend du systme utilis. Sous Linux, il suft dajouter les adresses
IP des serveurs de noms de domaine de votre fournisseur daccs dans le chier de conguration
/etc/resolv.conf.
9.5. Conguration des fonctions serveur
En gnral, les gens ne voient Internet que du point de vue client en terme darchitecture client /
serveur. Cela signie quils se contentent de se connecter Internet, et nutilisent que des logiciels
clients qui communiquent avec des serveurs situs sur Internet. Ce mode dutilisation est de loin le
plus courant et celui qui convient la majorit des gens, qui nont en gnral mme pas conscience
de lexistence du monde des serveurs.
Cependant, il est parfois ncessaire de mettre en place des petits serveurs, sans forcment tre un four-
nisseur daccs Internet ou un hbergeur de site Web. Par exemple, il peut tre intressant de fournir
la possibilit de raliser une connexion par tlphone un ordinateur distant que lon doit laisser
allum pour une raison ou une autre, an de raliser une opration de maintenance. Il est galement
possible de faire une liaison PPP entre deux ordinateurs par un cble srie pour changer des donnes,
ou pour relier par lintermdiaire du rseau tlphonique deux rseaux spars physiquement.
Cette section prsente donc les techniques de base permettant de paramtrer Linux pour accepter les
communications entrantes, tant pour satisfaire aux demandes de connexion distantes que pour tablir
une liaison PPP.
9.5.1. Paramtrage des connexions extrieures
Nous avons vu dans la Section 6.6 que le programme en charge de demander lidentication des utili-
sateurs sur les terminaux de login tait le programme getty. Ce programme ne permet aux utilisateurs
que de sidentier. Lorsque quelquun saisit son nom, getty se contente de lancer le processus login
pour que celui-ci ralise lauthentication de lutilisateur en lui demandant son mot de passe. En fait,
getty peut trs bien lancer un autre programme que login si lidentication nest pas ncessaire sur le
terminal quil gre, mais, en gnral, il faut identier les utilisateurs.
Le programme getty est donc le point dentre par lequel il faut ncessairement passer pour utiliser le
systme. Dans le cas des terminaux virtuels, getty utilise une ligne de communication virtuelle, mais
il peut parfaitement utiliser une ligne de communication relle (cest dailleurs ce pour quoi il a t
conu lorigine). En particulier, il est possible de lancer un processus getty sur une ligne srie, an
de permettre lutilisation de terminaux rels connects sur le port srie correspondant.
279
Chapitre 9. Conguration du rseau
La ligne srie sur laquelle le processus getty fonctionne nest pas forcment connecte un terminal
physique. Elle peut parfaitement tre connecte un modem. Dans ce cas, les utilisateurs devront
appeler le serveur pour se connecter laide dun logiciel dmulation de terminal. Il existe plusieurs
logiciels permettant dappeler un ordinateur distant et dmuler un terminal. On citera par exemple le
logiciel HyperTerminal de Windows, et les programmes Telix et Minicom. Ce dernier est couramment
fourni avec les distributions de Linux, car cest un logiciel libre.
En fait, il existe plusieurs variantes de getty, spcialises pour des usages spciques, et permettant
de faciliter le paramtrage du chier de conguration /etc/inittab, dans lequel sont dnis les
terminaux disponibles. Les distributions de Linux sont souvent fournies avec les versions suivantes :
mingetty, qui est un getty simpli, couramment utilis pour les terminaux virtuels ;
mgetty, qui est une version spcialement conue pour tre utilise sur les lignes srie connectes
un modem. mgetty est en particulier capable dinitialiser les modems, de dcrocher automatique-
ment la ligne lorsquil y a un appel, et de grer les principales commandes des modems compatibles
Hayes ;
agetty, qui est une version complte de getty, utilisable aussi bien sur les lignes srie (avec ou
sans modem) que pour les terminaux virtuels. On utilisera de prfrence cette version si lon dsire
proposer une connexion par lintermdiaire dun cble null-modem.
Note : Les cbles null-modem sont des cbles srie symtriques, qui permettent de relier deux
ordinateurs par lintermdiaire de leurs ports srie. Ces cbles peuvent tre trouvs chez la plu-
part des revendeurs de matriel informatique (vous pouvez galement en fabriquer un vous-
mme si vous avez du temps perdre).
Connaissant les diverses possibilits de ces programmes, proposer un service de connexion extrieur
est relativement simple. Il suft en effet de rajouter dans le chier de conguration /etc/inittab
les lignes permettant de lancer les programmes getty sur les bonnes lignes. Par exemple, pour offrir
une connexion modem sur le deuxime port srie (couramment appel COM2), on ajoutera la ligne
suivante :
S1:23:respawn:/usr/sbin/mgetty -n 3 -s 38400 ttyS1
Cette commande indique init que mgetty doit tre relanc chaque fois quil se termine dans les
niveaux dexcution 2 et 3. Il doit prendre le contrle de la ligne srie utilise par le chier spcial
de priphrique /dev/ttyS1, utiliser la vitesse de communication de 38400 bauds sur cette ligne
(option -s) et ne dcrocher quau bout de la troisime sonnerie (option -n). Vous pouvez bien entendu
ajuster ces options en fonction de vos besoins.
En revanche, si lon dsire offrir une possibilit de connexion sur un port srie par lintermdiaire
dun cble null-modem, on utilisera plutt le programme agetty. La ligne ajouter dans le chier
/etc/inittab sera alors :
S1:123:respawn:/sbin/agetty -L 38400 ttyS1
Notez que les options sont quelque peu diffrentes. La vitesse de la ligne est donne directement,
et loption -L indique que la ligne srie utilise est locale et ne gre pas le signal de porteuse CD
(abrviation de langlais Carrier Detect ) habituellement utilise pour dtecter les coupures tl-
280
Chapitre 9. Conguration du rseau
phoniques. Encore une fois, vous pouvez adapter ces commandes selon vos besoins. Nhsitez pas
consulter les pages de manuel des programmes mgetty et agetty pour obtenir plus de renseignements.
Note : Vous pouvez tester vos connexions srie laide de lmulateur de terminal minicom.
Sil est install sur votre distribution, vous pourrez le lancer simplement en tapant la commande
minicom. Si vous lutilisez sur une connexion directe (cest--dire par un cble null-modem), vous
devrez utiliser loption -o, an dviter que minicom nenvoie les codes dinitialisation du modem
sur la ligne srie.
Il se peut que vous ne parveniez pas vous connecter sur vos ports srie. Dans ce cas, la pre-
mire des choses faire est de regarder les paramtres de la ligne srie laide de la commande
stty. Vous devriez vous intresser tout particulirement la vitesse utilise, et ventuellement
vous assurer que les deux ports srie des deux ordinateurs utilisent la mme vitesse, ou que
le modem est capable de grer la vitesse utilise par le port srie. Si besoin est, vous pouvez
modier la vitesse dun port srie laide de la commande stty. Par exemple, pour congurer le
port srie COM2 la vitesse de 115200 bauds, vous devez taper la commande suivante :
stty -F /dev/ttyS1 ispeed 115200
9.5.2. Conguration des liaisons PPP
Le protocole PPP utilis par les fournisseurs daccs Internet est, comme son nom lindique ( Point
to Point Protocol , ou protocole de liaison point point ), un protocole permettant de relier deux
ordinateurs uniquement. Ce protocole est compltement symtrique, et la mise en place dun serveur
PPP nest pas plus complique que celle dun client. Les liaisons PPP sont donc couramment utilises
pour relier deux rseaux distants par lintermdiaire des lignes tlphoniques.
Lorsque nous avons prsent la conguration des accs Internet, nous avons utilis des options
spciques ce cas de gure an de grer le fait que les paramtres rseau sont imposs par le
fournisseur daccs. Dans le cas dun serveur, ces paramtres ne sont pas ncessaire, puisque nous
sommes cette fois la place du fournisseur daccs. En revanche, certains paramtres supplmentaires
devront tre spcis, notamment pour congurer le modem an daccepter les connexions externes.
En gnral, il faut lancer une instance du dmon pppd pour chaque ligne srie utilise pour les
connexions entrantes, car pppd ne peut grer quune seule connexion la fois. Cette technique peut
paratre lourde, mais en fait elle est relativement pratique, car elle permet de spcier des options sp-
ciques chaque ligne srie. Comme dhabitude, ces options peuvent tre spcies sur la ligne de
commande de pppd, mais elle peuvent galement tre enregistres dans un chier de conguration. Le
chier de conguration global /etc/ppp/options est gnralement utilis pour stocker les options
communes toutes les lignes srie. Les options spciques chaque ligne sont enregistres quant
elles dans les chiers options.ttySx, o ttySx est le nom du chier spcial de priphrique
utilis pour accder cette ligne. Lusage de ces chiers de conguration permettent de simplier
notablement les lignes de commandes utilises pour lancer pppd.
La ligne de commande utiliser pour lancer pppd en mode serveur diffre peu de celle utilise pour
tablir une connexion PPP en tant que client. Les deux principales diffrences proviennent du fait
que :
le serveur doit spcier ladresse IP quil utilisera pour linterface PPP et ladresse IP quil donnera
au client lors de ltablissement de la liaison ;
281
Chapitre 9. Conguration du rseau
le script chat utilis ne doit pas composer un numro, mais initialiser le modem pour quil rponde
aux appels entrants.
Les adresses IP sont spcies en ligne de commande laide de la syntaxe suivante :
locale:distante
o locale est ladresse IP de linterface PPP du serveur, et distante est ladresse IP que le client
recevra lorsquil se connectera. Ces deux adresses peuvent appartenir au mme rseau (auquel cas le
lien PPP constitue un rseau en soi) ou non (le lien PPP constitue alors pas un pont entre deux rseaux
distincts). Ainsi, loption suivante :
192.168.30.1:192.168.31.1
indiquera pppd que ladresse IP de linterface PPP locale sera 192.168.30.1, et que les clients qui
se connecteront sur la ligne correspondante devront recevoir ladresse 192.168.31.1.
Notez que les adresses utilises ici font partie des adresses IP rserves pour les rseaux locaux. Ce
nest pas ce que font les fournisseurs daccs Internet en gnral, car ils disposent dun ensemble
dadresses IP relles redistribuables, mais les adresses rserves sont parfaitement utilisables. Le seul
cas o cela pourrait tre gnant serait si lon voulait faire passer les adresses des deux passerelles de
la liaison PPP sur Internet, mais les paquets utilisant ces adresses ne circulent justement que sur cette
liaison ( moins que les passerelles ne se trouvent sur des rseaux locaux et utilisent des adresses de
ces rseaux pour la liaison PPP, auquel cas, de toutes manires, il faudrait utiliser la technique du
masquerading pour connecter ces rseaux sur Internet).
Le script dinitialisation du modem, quant lui, peut tre spci laide de loption init de pppd.
Cette option fonctionne exactement comme loption connect que lon a utilise pour tablir la liaison
tlphonique dans la Section 9.3.2. La diffrence est ici que lon ne cherche pas composer un numro
de tlphone, mais plutt initialiser le modempour quil dcroche automatiquement la ligne lorsquil
reoit un appel.
Il existe malheureusement plusieurs dialectes de langages de commandes utiliss par les modems. En
gnral, chaque modem dispose donc de ses propres commandes, et il faut consulter sa documentation
pour savoir leurs syntaxes. Malgr cela, ce nest pas trop gnant, car la plupart des modems sont
compatibles avec le standard Hayes, dont les commandes sont bien connues. Pour linitialisation dun
modem pour un serveur, les commandes dinitialisation suivantes seront trs utiles :
Commande Signication
ATS0=n Dcrochage automatique si n vaut 1, manuel si n vaut 0.
AT&C1 Activation du contrle de la ligne CD ( Carrier Detect ) pour signaler
les raccrochages des clients. Cette commande nest utile que si loption
modem est passe en paramtre pppd sur sa ligne de commande.
AT&K3 Activation du contrle de ux matriel (pour optimiser les changes de
donnes entre le modem et lordinateur). Cette option ncessite dutiliser
loption crtscts dans la ligne de commande de pppd.
Au nal, la ligne de commande utiliser est donc la suivante :
pppd port vitesse detach modem crtscts init "/usr/sbin/chat -v \
-f /etc/ppp/script" &
282
Chapitre 9. Conguration du rseau
o port est le nom du chier spcial de priphrique utiliser pour cette connexion, par exemple
/dev/ttyS0, vitesse est la vitesse de la ligne, par exemple 115200, et /etc/ppp/script est le
nom du chier du script chat devant servir linitialisation du modem. Loption detach permet de
demander pppd de se dtacher du terminal courant, an que lon puisse le lancer en arrire plan.
Vous trouverez ci-dessous un script chat dexemple, permettant de spcier les options vues ci-
dessus :
"" ATZ
OK ATS0=1
OK AT&C1
OK AT&K3
OK ""
Note : Vous remarquerez quil nest pas ncessaire, contrairement ce que lon a vu lors de la
conguration dun client PPP, de spcier le nom de lutilisateur et le protocole didentication
et dauthentication utilis. Cela est normal, car le serveur na pas sidentier auprs de la
machine cliente en gnral (il peut bien entendu le faire sil le dsire, mais dans ce cas seuls les
clients capables de grer ce type de connexion pourront se connecter).
En revanche, il peut tre ncessaire dexiger que les clients sidentient et sauthentient
laide de lun des protocoles PAP ou CHAP. Pour cela, il suft simplement dajouter les noms
des clients et leurs secrets respectifs dans les chiers de secrets /etc/ppp/pap-secrets et
/etc/ppp/chap-secrets, et dajouter lune des options require-pap ou require-chap sur la
ligne de commande du dmon pppd. Remarquez que le format des chiers pap-secrets et
chap-secrets est le mme aussi bien pour les connexions entrantes que pour les appels vers
lextrieur. Cela signie que lon doit donner dabord le nom du client, ensuite le nom du serveur,
et ensuite son secret et enn la liste des adresses IP que les clients peuvent utiliser.
Remarquez galement que la colonne spciant la liste des adresses IP ne doit pas rester vide
lorsquon dsire crer un secret pour le serveur. En effet, pppd se base sur ladresse IP de la ma-
chine distante et sur le nom du client pour dterminer le secret utiliser lors de lauthentication.
Cependant, si lon dsire utiliser les mmes secrets pour toutes les lignes (et donc pour toutes
les adresses que le client peut se voir imposer), on pourra utiliser une toile. Cela signie que
toutes les adresses correspondront la ligne, et seul le nom du client sera utilis pour dterminer
le secret utiliser. Par exemple, si le serveur se nomme monserveur et le poste client sappelle
jdupont, on utilisera la ligne suivante :
#Client Serveur Secret Adresses
jdupont monserveur gh25k;f *
Lorsque la liaison PPP est tablie, le dmon pppd congure linterface rseau correspondante. Le
protocole utilis par dfaut est bien entendu le protocole IP. En gnral, il est ncessaire de congurer
cette interface an de spcier les rgles de routage permettant au client denvoyer et de recevoir
des paquets. Lors de ltablissement de la liaison, le dmon pppd ajoute donc automatiquement une
rgle de routage pour indiquer que tous les paquets destination de ladresse du client doivent passer
par linterface ppp de la liaison courante. Cette rgle convient dans la majorit des cas, et en tout
cas pour les fournisseurs daccs Internet, car le client ne dispose que dune seule machine. En
revanche, si la liaison PPP est utilise pour relier deux rseaux, les rgles de routages par dfaut
ne sufront plus, car des paquets destination de toutes les machines du rseau distant doivent tre
envoys via linterface ppp (et inversement). Pour rsoudre ces petits problmes, on devra complter
283
Chapitre 9. Conguration du rseau
ou modier les scripts /etc/ppp/ip-up et /etc/ppp/ip-down. Ces deux scripts sont appels par
le dmon pppd respectivement lors de ltablissement de la liaison PPP et lors de sa terminaison. On
placera donc les commandes de routage complmentaires dans le script ip-up, et on fera le mnage
correspondant dans le script ip-down.
Remarquez que ces deux scripts sont communs toutes les interfaces ppp que les diffrents dmons
pppd peuvent utiliser. Ils sont galement utiliss lors de ltablissement dune connexion en tant que
client. Leur modication devra donc tre entoure dun soin extrme. An de distinguer les diffrents
cas dutilisation, ces scripts sont appels avec les paramtres suivants :
Paramtre Signication
$1 Nom de linterface rseau (par exemple, ppp0 .
$2 Nom du chier spcial de priphrique de la ligne srie utilise (par
exemple, ttyS0 ).
$3 Vitesse de la ligne srie.
$4 Adresse IP locale de linterface rseau.
$5 Adresse IP du client.
$6 Paramtre complmentaire, que lon peut passer au script laide de
loption ipparam de pppd.
Un script classique fait un test sur le nom de linterface rseau et ajuste les rgles de routage en
fonction de cette interface, en se basant sur les adresses IP locales et distantes reues en paramtre.
La plupart des distributions fournissent un script dexemple que vous pouvez bien entendu modier
soit directement, soit laide de leur outil de conguration.
Le dmon pppd se termine chaque fois que la liaison PPP se termine. Ce comportement est normal
pour un client, mais ce nest pas gnralement ce que lon cherche faire pour un serveur. Il faut
donc relancer pppd rgulirement chaque fois quil se termine. Cela peut tre ralis en ajoutant
sa ligne de commande dans le chier de conguration /etc/inittab dans les niveaux dexcution
adquats. Comme init impose une taille rduite sur les lignes de commandes des programmes quil
peut lancer, il est ncessaire dutiliser les chiers doptions de pppd. Par exemple, si lon veut assurer
le service PPP pour une ligne entrante sur le deuxime port srie dans les niveaux dexcution 2 et 3,
on utilisera la ligne suivante :
ppp1:23:respawn:/usr/sbin/pppd /dev/ttyS1 115200 \
192.168.30.1:192.168.31.1"
avec les options suivantes actives dans le chier doptions /etc/ppp/options.ttyS1 :
# Initialisation du modem :
init "/usr/sbin/chat -v -f /etc/ppp/client.ttyS1
# Protocole dauthentification :
require-pap
# Contrle de la ligne tlphonique :
modem
# Contrle de flux matriel :
crtscts
284
Chapitre 9. Conguration du rseau
9.5.3. Liaison de deux ordinateurs par un cble srie
La connexion entre deux ordinateurs par lintermdiaire dun cble srie est un cas particulier des liai-
sons PPP. Les techniques utilises sont les mmes, mais plusieurs simplications importantes peuvent
tre faites :
les deux ordinateurs sont relis directement par un cble null-modem, et aucun modem ne
sintercale pour compliquer les choses. Par consquent, on peut supprimer les scripts chat
dinitialisation et de connexion ;
on a le contrle physique sur les deux ordinateurs, ce qui implique que les mcanismes
didentication et dauthentication sont superus. Il est donc inutile de prciser les secrets PAP
ou CHAP sur chaque machine ;
il ny a que deux ordinateurs relier, donc les rgles de routages sont lmentaires ;
enn, les adresses choisies sont connues davance et peuvent tre spcies de manire symtrique
sur le client et le serveur.
Il dcoule de ces simplications que ltablissement dune liaison PPP au travers dun cble null-
modemest une opration trs facile. Comme vous allez le constater, le protocole PPP est effectivement
symtrique.
Sur le serveur , il suft de lancer par exemple la commande suivante :
pppd /dev/ttyS0 115200 192.168.30.1:192.168.31.1 detach crtscts &
Cette commande permet de lancer le dmon pppd sur le port srie COM1 (chier spcial de priph-
rique /dev/ttyS0) en utilisant la vitesse de 115200 bauds (vitesse maximale gnralement supporte
par les ports srie des ordinateurs), en utilisant ladresse IP locale 192.168.30.1 et ladresse IP dis-
tante 192.168.31.1. Le dmon pppd doit se dtacher du terminal, car il est lanc en arrire plan.
Enn, le contrle de ux matriel est utilis (option crtscts).
La commande sur le client est absolument symtrique, puisque seules les adresses locales et
distantes sont interverties :
pppd /dev/ttyS0 115200 192.168.31.1:192.168.30.1 detach crtscts &
Bien entendu, le port srie utilis peut tre diffrent de celui du serveur, mais il est impratif que
les deux ports srie soient congurs pour utiliser les mmes paramtres de communication (vitesse,
nombre de bits de donnes, bit de parit, bit darrt). Vous aurez donc peut-tre utiliser la commande
stty pour xer ces paramtres sur le serveur et sur le client.
Une fois ces deux commandes lances, la connexion PPP est tablie. Le dmon pppd ajoute alors auto-
matiquement une rgle de routage pour acheminer les paquets dun ordinateur lautre. Vous naurez
donc pas modier les scripts /etc/ppp/ip-up et /etc/ppp/ip-down. Comme vous pouvez le
constater, lutilisation de PPP pour relier simplement deux ordinateurs nest pas une opration trs
complique...
9.5.4. Installation dun proxy
Lors dune connexion Internet, bon nombre dinformations sont changes entre le serveur et le
client. En particulier, lorsquon navigue, un certain nombre dimages et dinformations plus ou moins
lentes tlcharger transitent systmatiquement. Or la plupart des gens visitent rgulirement les
285
Chapitre 9. Conguration du rseau
mmes sites, dont seulement quelques pages sont modies entre deux visites successives. Par cons-
quent, on peut se demander pourquoi les pages compltes devraient tre recharges chaque visite, si
seulement quelques informations ont t modies.
Cette question prend encore plus de sens lorsquon ralise un partage de connexion Internet. Il
est tout fait concevable que plusieurs clients du mme rseau demandent plusieurs fois les mmes
informations, ce qui provoque lengorgement du lien partag inutilement. Cest pour rsoudre ce
genre de problme que les programmes que lon nomme proxies ont t dvelopps.
Un proxy nest rien dautre quun programme qui sintercale entre des clients et un serveur. Il a pour
principale fonction de mmoriser les rponses les plus courantes renvoyes par le serveur, an de
rpondre la fois plus rapidement aux clients et dviter de surcharger le serveur. Il existe diffrents
types de proxy, mais nous allons nous intresser uniquement aux proxies Web, qui permettent donc
de stocker des pages Web en local an de soulager une liaison trop faible.
Le principe de fonctionnement dun proxy est le suivant. Les navigateurs utiliss par les clients se
connectent, en temps normal, directement sur le port 80 des serveurs Web. Leur conguration doit
tre modie pour utiliser le proxy la place. De leur point de vue, le proxy se comporte comme
un serveur Web capable de rpondre aux requtes des clients. Lorsquil peut le faire, il renvoie les
donnes quil a stockes dans son cache. Sinon, il va les chercher directement sur Internet la place
du client. Le cache est maintenu de telle manire que les donnes obsoltes ou les donnes les moins
utilises sont supprimes, an de laisser la place aux donnes qui sont le plus souvent demandes et
qui changent le moins. Pour utiliser un proxy, il faut donc modier la conguration des navigateurs
des clients, an de donner ladresse de la machine sur laquelle le proxy fonctionne, ainsi que le port
sur lequel il peut tre contact (gnralement, cest le port 8080).
Note : Il est galement possible dutiliser les mcanismes de translation dadresse du noyau pour
rendre lutilisation du proxy transparente aux clients.
Il existe plusieurs proxies sur le march, mais le plus utilis sous Linux est sans doute squid. Cest
un logiciel performant, puissant et libre, fourni avec la plupart des distributions modernes. Sa con-
guration peut tre relativement technique, mais nous nallons pas entrer dans tous les dtails. Il sagit
simplement ici de donner un aperu des fonctionnalits disponibles.
squid utilise le chier de conguration /etc/squid.conf pour lire ses options de fonctionnement.
Ce chier contient en particulier les informations concernant le rseau, une liste de rgles indiquant
qui a le droit de lui demander des pages Web, et lemplacement du cache dans lequel les donnes du
cache seront enregistres.
Loption la plus importante dans ce chier de conguration est sans doute cache_dir, qui indique
lemplacement du cache ainsi que sa taille et sa structure. La syntaxe de cette option est la suivante :
cache_dir rpertoire taille n m
o rpertoire est le rpertoire dans lequel le cache sera stock (usuellement
/var/squid/cache/), taille est la taille de ce cache en mga-octets, et n et m deux nombres
donnant la structure de larborescence du cache. La signication de ces deux nombres doit tre
explique un peu plus en dtail.
Par dfaut, squid essaie de rpartir tous les objets quil place dans le cache de manire uniforme
dans plusieurs rpertoires, an dacclrer les temps de recherche sur ces objets lorsquun client
les demande. Il utilise cette n une fonction de rpartition (les programmeurs disent souvent une
fonction de hash) qui indique dans quel rpertoire se trouve un objet. La recherche dans ce rpertoire
se fait donc plus rapidement car, si la fonction de rpartition est bien faite (et cest le cas), les objets
sont rpartis de manire quilibre dans tous les rpertoires du cache, qui sont donc tous relativement
286
Chapitre 9. Conguration du rseau
peu peupls. En fait, squid peut stocker tellement dobjets que le nombre de rpertoires peut lui-
mme devenir trs grand. Il utilise donc un dcoupage deux niveaux, les rpertoires du deuxime
niveau tant rpartis dans les rpertoires du premier niveau. Le premier nombre spci dans loption
cache_dir indique le nombre de rpertoires du premier niveau, et le deuxime nombre indique le
nombre de sous-rpertoires dans chacun de ces rpertoires. En gnral, on utilise respectivement les
valeurs 16 et 256 :
cache_dir /var/squid/cache 100 16 256
Cette ligne permet de cacher 100 Mo, en rpartissant les objets dans 4096 rpertoires rpartis en 16
groupes de 256 rpertoires.
Les options suivantes spcient les paramtres rseau du cache :
loption http_port indique le port TCP que les clients doivent utiliser pour accder au proxy ;
loption ftp_user permet de donner ladresse email utiliser comme mot de passe dans les
connexion FTP anonymes ;
loption cache_peer permet dintgrer le proxy local dans une hirarchie de proxies.
Les proxies peuvent en effet tre organiss dans une structure arborescente. Lorsquun proxy dun
niveau ne dispose pas dune donne demande par un client, il peut contacter ses frres pour le cas
o ceux-ci auraient cette donne dans leurs caches, ou demander son proxy pre de rcuprer cette
donne pour lui. Les proxies communiquent entre eux en utilisant un protocole ddi, le protocole
ICP (abrviation de langlais Inter Cache Protocol ).
En gnral, les petits rseaux ne disposent que dun seul proxy, loption cache_peer est donc
souvent utilise de la manire suivante :
cache_peer pre parent port port_icp options
o pre est le nom du cache pre, port est son port, port_icp est le port utiliser pour les
communications ICP, et options sont des options complmentaires. Parmi toutes les options pos-
sibles, on utilisera le plus souvent loption default, qui spcie les valeurs par dfaut des options,
et no-query, qui permet de dire au cache de ne pas utiliser le protocole ICP (dans ce cas, le para-
mtre port_icp sera inutilis) ;
Loption prefer_direct permet dindiquer au proxy sil doit chercher avant tout rcuprer
lui-mme les donnes qui lui manquent (valeur on) ou sil doit contacter dabord son proxy pre
(valeur off). Si lon a spci un proxy pre laide de loption cache_peer, on aura intrt
utiliser la valeur off ;
Loption dns_children permet de donner le nombre de processus en charge de cacher les requtes
sur les DNS.
Les requtes de DNS font partie des requtes les plus courantes lorsquon navigue sur Internet. En
effet, la moindre adresse, le moindre lien suivi ncessite une requte DNS. On pourrait limiter ce
trac en installant un serveur DNS local, mais cest un peu compliqu et peut poser des problmes
de scurit. squid propose donc une autre solution, qui consiste cacher les requtes DNS et
fournir des processus locaux prenant en charge la rsolution de noms.
Plus le rseau local est important, plus il faudra de tels processus, an que tous les clients puissent
obtenir les adresses IP des machines partir de leur noms. La valeur par dfaut est de 5 processus,
ce qui devrait convenir dans la plupart des cas.
287
Chapitre 9. Conguration du rseau
Les valeurs donnes par dfaut toutes ces options conviennent dans la plupart des cas. Elles sont
parfaitement documentes dans le chier de conguration squid.conf.
Par dfaut, squid nautorise personne accder au cache. Il est donc ncessaire de donner les droits
ncessaires pour permettre aux machines de votre rseau daccder au cache. La gestion de la scurit
se fait par lintermdiaire de ce que lon appelle des ACL (abrviation de langlais Access Control
List ).
Une ACL est simplement un critre permettant de classier les requtes que le proxy reoit. Ces
critres sont dnis laide du mot cl acl, suivi du nom de la liste, suivi lui-mme dun critre que
toutes les requtes concernes par cette ACL devront vrier. Les critres sont eux-mmes exprims
laide dun mot cl qui indique sur quoi porte le critre et des options de ce critre. Les principaux
mots cls que vous pourrez utiliser sont les suivants :
src, qui permet de ltrer les requtes par les adresses des machines qui les ont mises, en indiquant
ladresse de leur rseau, donne sous la forme adresse/masque ;
dst, qui permet de ltrer les requtes par leurs adresses destination ;
port, qui permet de slectionner les requtes sadressant sur les ports fournis en paramtres ;
proto, qui permet de spcier la liste des protocoles utiliss par les requtes ;
method, qui permet de slectionner les requtes HTTP par la mthode utilise dans la requte.
Ce tableau nest pas exhaustif, mais il permet davoir une ide des capacits de ltrage des requtes
dont dispose squid. Vous trouverez ci-dessous quelques exemples pratiques de dnitions dACL :
# ACL caractrisant toutes les machines :
acl all src 0.0.0.0/0.0.0.0
# ACL dfinissant la machine locale :
acl localhost src 127.0.0.1/255.255.255.255
# ACL dfinissant les machines dun rseau priv local :
acl localnet src 192.168.0.0/255.255.255.0
# ACL caractrisant le proxy lui-mme :
acl manager proto cache_object
# ACL spcifiant les ports accepts par le proxy :
acl safe_ports port 80 21 443 563 70 210 1025-65535
# ACL dfinissant les requtes de connexion :
acl connect method CONNECT
La dnition des rgles de scurit utilise les ACL de manire squentielle. Les rgles doivent tre
donnes les unes aprs les autres, suivant le format suivant :
ressource politique ACL
o ressource est un mot cl indiquant la ressource sur laquelle la rgle de scurit porte,
politique est laction prise pour les requtes vriant cette rgle, et ACL une liste dACL
permettant de spcier les requtes concernes par cette rgle. La ressource la plus utilise est sans
doute le protocole HTTP, que lon peut spcier laide du mot cl http_access. Les actions
288
Chapitre 9. Conguration du rseau
peuvent tre lacceptation (mot cl allow) ou le refus (mot cl deny) de la requte. Enn, les
requtes concernes par une rgle sont celles qui appartiennent toutes les ACL de la liste dACL
indique.
Vous trouverez ci-dessous quelques exemples de rgles de scurit courantes :
# Autorise les accs au gestionnaire de cache local :
http_access allow manager localhost
# Interdit les accs aux gestionnaires de cache trangers :
http_access deny manager
# Interdit les accs pour toutes les requtes provenant de port non autoriss :
http_access deny !safe_ports
http_access deny connect !safe_ports
# Autorise les accs aux clients de la machine locale :
http_access allow localhost
# Autorise les accs aux machines du rseau local :
http_access allow localnet
# Politique par dfaut :
http_access deny all
Notez que si une requte ne correspond aucune rgle, la politique par dfaut utilise par squid est de
prendre laction oppose la dernire rgle spcie. En pratique, il est plus sage de toujours indiquer
une politique par dfaut pour toutes les requtes restantes, par exemple en utilisant lACL all dnie
ci-dessus.
Lexemple de jeu de rgles de scurit donn ci-dessous convient pour un rseau local dadresses
192.168.0.0. Vous pouvez bien entendu modier les options de scurit comme bon vous semble.
Encore une fois, rappelons que le chier de conguration de squid est trs bien documente et que
sa lecture est relativement facile. Je ne saurais que trop vous recommander de le consulter si vous
dsirez en savoir plus.
9.5.5. Conguration dun serveur DHCP
Le protocole DHCP est gr, au niveau serveur, par le dmon dhcpd. Ce dmon se congure par
lintermdiaire du chier de conguration /etc/dhcpd.conf, dans lequel se trouvent les dnitions
des rseaux congurer, ainsi que les diffrentes informations qui doivent tre communiques aux
clients. Ce chier de conguration peut contenir plusieurs dclarations de rseau diffrentes, chacune
tant introduite par le mot cl subnet. Ces dclarations permettent de dnir les options pour les
clients de diffrents rseaux de manire indpendante, mais si certaines de ces options sont communes
tous vos sous-rseaux, vous pouvez les factoriser en tte du chier dhcpd.conf. Par exemple, le
chier de conguration suivant :
# Exemple de fichier de configuration dhcpd.conf :
default-lease-time 600;
max-lease-time 86400;
option subnet mask 255.255.255.0;
subnet 192.168.1.0 netmask 255.255.255.0 {
289
Chapitre 9. Conguration du rseau
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name "monrezo.perso";
}
subnet 192.168.53.0 netmask 255.255.255.0 {
range 192.168.53.10 192.168.53.254;
option broadcast-address 192.168.53.255;
option routers 192.168.53.2;
option domain-name "autrerezo.org";
}
permet de congurer les deux rseaux 192.168.1.0 et 192.168.53.0 en spciant un masque de
sous-rseau gal 255.255.255.0 et une dure de bail dadresse IP par dfaut de 10 minutes (option
default-lease-time) et maximale dun jour (option max-lease-time). Vous remarquerez que
ces dernires options utilisent la seconde comme unit de temps.
Comme vous pouvez le constater, la syntaxe du chier de conguration dhcpd.conf nest pas bien
complique. Le mot cl subnet doit tre suivi de ladresse du rseau sur lesquels les clients con-
gurer par DHCP se trouvent. Le mot cl netmask doit tre suivi quant lui par le masque de ce
sous-rseau. Les adresses IP attribues aux clients peuvent tre choisies dans diffrentes plages de
valeurs, chacune tant spcie par le mot cl range suivi de ladresse de dbut et de ladresse de
n de la plage. Il est galement possible dattribuer des adresses xes certaines machines, avec la
syntaxe suivante :
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192.168.1.101;
o les mots cls hardware ethernet introduisent ladresse Ethernet de linterface rseau de la
machine cliente, et o fixed-address spcie ladresse IP que cette machine doit utiliser pour
cette interface.
Enn, un grand nombre doptions peuvent galement tre spcies, par exemple pour dnir les
adresses de diffusion (mot cl broadcast-address), les adresses des passerelles (mot cl
routers), les noms de domaines (mot cl domain-name) ou encore les dures des bails accords
aux machines clientes (mots cls default-lease-time et max-lease-time). La liste complte
des options utilisables est donne dans la page de manuel dhcpd.conf et je vous invite la
consulter si vous dsirez en savoir plus.
Lorsque vous aurez rdig le chier de conguration adapt votre installation, il ne vous restera plus
qu lancer le dmon dhcpd. Celui-ci utilise la syntaxe suivante :
dhcpd interface0 [interface1 [...]]
o interface0, interface1, etc., sont les interfaces rseau utilises pour accder aux rseaux
congurer en DHCP. Ces interfaces doivent tre congures avec des adresses de rseau pour les-
quelles il est possible de trouver une section subnet correspondante dans le chier de conguration
/etc/dhcpd.conf. Enn, la commande de dmarrage du dmon dhcpd pourra tre place dans les
chiers dinitialisation du serveur DHCP.
Note : Le dmon dhcpd utilise les fonctionnalits daccs direct aux cartes rseau et de ltrage
des paquets du noyau Linux pour couter sur le rseau les demandes de conguration par DHCP
des clients. Par consquent, vous devrez activer ces options dans la conguration du noyau si
ce nest dj fait. Pour cela, il vous faudra cocher les options Packet socket , Packet
290
Chapitre 9. Conguration du rseau
socket: mmapped IO et Socket Filtering du menu Networking options . Vous devrez
galement activer loption IP: multicasting dans la liste des options pour le protocole IP
an de permettre au dmon deffectuer des missions de paquets en mode broadcast. Le dtail
de la conguration et de la compilation du noyau a t vu dans la Section 7.3.
9.6. Systmes de chiers en rseau
Lune des utilits principales dun rseau est de permettre le partage des chiers entre plusieurs or-
dinateurs. Cela ncessite de disposer dun systme de chiers rseau sur les machines qui dsirent
accder des chiers dune autre machine, et dun programme serveur sur les machines ainsi acc-
des par les clients.
Il existe deux grands standards de protocole pour les systmes de chiers en rseau. Le premier stan-
dard fonctionne quasiment exclusivement sous Unix, il sagit du protocole NFS (abrviation de
langlais Network File System ), introduit originellement par Sun Microsystems et repris par la
suite par les autres diteurs de systmes Unix. Le deuxime protocole est le protocole SMB (abr-
viation de langlais Server Message Block ), qui a t introduit par Microsoft pour les systmes
DOS et Windows.
Les deux protocoles sont incompatibles, et si les deux solutions fonctionnent parfaitement en envi-
ronnements homognes, il est assez difcile de faire communiquer les deux types de systmes. Les
principaux problmes proviennent de limpossibilit dutiliser le protocole rseau NetBIOS dIBM
sur les machines Unix, et des limitations des systmes Microsoft en ce qui concerne la gestion des
utilisateurs, les droits daccs et les liens symboliques. De plus, la diffrence de gestion des ns de
lignes dans les chiers textes entre Unix et les systmes Microsoft pose des problmes qui peuvent
difcilement tre rsolus de manire systmatique.
Malgr ces limitations, les machines fonctionnant sous DOS ou Windows peuvent accder aux sys-
tmes de chiers NFS des machines Unix grce des programmes spciaux. Ces programmes sont
souvent des extensions propritaires aux systmes Microsoft, et peuvent tre relativement coteux
sans pour autant garantir une grande abilit et des performances honntes. Lutilisation de NFS sur
les machines Windows ne sera donc pas traite ici. Inversement, les machines Unix peuvent accder
aux partages Microsoft, mais l encore, il peut se prsenter des difcults. La principale difcult est
ici la ncessit dencapsuler NetBIOS dans le protocole TCP/IP. En effet, le protocole SMB utilise
les messages NetBIOS, protocole qui nest pas gr nativement par les machines Unix. Dans tous les
cas, des logiciels complmentaires sont ncessaires.
9.6.1. Installation dun serveur de chiers NFS
Linstallation dun serveur NFS est la solution de prdilection pour le partage des chiers sous Unix.
Il faut savoir cependant que NFS noffre pas des performances remarquables dune part, et quil ouvre
des brches dans la scurit du systme dautre part.
Comme il la t dit ci-dessus, linstallation dun serveur NFS requiert lutilisation de programmes
spciques. Plus prcisment, NFS utilise deux dmons pour fournir les services NFS aux machines
clientes. Ces deux dmons se nomment respectivement mountd et nfsd . Le premier dmon
prend en charge les requtes de montage des systmes de chiers NFS, et nfsd effectue les requtes
daccs aux chiers pour les clients. Par ailleurs, ces deux dmons utilisent les mcanismes dappels
de procdure distance RPC (abrviation de langlais Remote Procedure Call de Sun Micro-
systems. Ces services sont dsormais disponibles sur toutes les machines Unix et constitue la norme
291
Chapitre 9. Conguration du rseau
en la matire. Il est donc galement ncessaire de mettre en place les services RPC avant de lancer les
dmons NFS.
Le principe de fonctionnement des appels de procdures distance est le suivant. Chaque programme
dsirant fournir des services RPC coute sur un port TCP ou UDP pour des requtes ventuelles. Les
clients qui veulent utiliser ces services doivent envoyer leurs requtes sur ce port, en prcisant toutes
les informations ncessaires lexcution de cette requte : numro de la requte et paramtres de la
requte. Le serveur excute cette requte et renvoie le rsultat. Les bibliothques RPC fournissent les
fonctions ncessaires pour effectuer le transfert des paramtres et les appels distance eux-mmes.
En pratique cependant, les clients ne savent pas sur quel port le serveur RPC attend leurs requtes. Un
mcanisme a donc t mis en place pour leur permettre de rcuprer ce port et communiquer ensuite
avec le serveur. Chaque serveur RPC est identi par un numro de programme unique, ainsi quun
numro de version. Lorsquils dmarrent, les serveurs senregistrent dans le systme en prcisant le
port sur lequel ils couteront les requtes. Les clients peuvent alors interroger le systme distant pour
demander le port sur lequel ils trouveront un serveur donn, partir du numro de programme et du
numro de version de celui-ci.
Il existe donc un service RPC particulier, nomm portmapper , qui fournit aux clients qui le de-
mandent les numros de port des autres serveurs. Bien entendu, le portmapper doit tre toujours
contactable, ce qui implique quil utilise systmatiquement le mme numro de port. Par convention,
le portmapper est identi par le numro de programme 100000, et il coute les requtes des clients
sur les ports 111 des protocoles TCP et UDP.
La mise en place des serveurs de chiers passent donc par le lancement de ces trois dmons : le
dmon portmapper, le dmon mountd et le dmon nfsd. Les chiers excutables de ces dmons sont
respectivement portmap, rpc.mountd et rpc.nfsd. Ils sont normalement placs dans le rpertoire
/sbin/ ou /usr/sbin/. Vous devrez donc lancer ces trois dmons sur la machine serveur de chiers,
il est probable que votre distribution fasse le ncessaire dans ses scripts de dmarrage.
Note : Il est prvu dintgrer les fonctionnalits de serveur NFS dans le noyau de Linux. Cepen-
dant, le serveur de chiers du noyau nest pas encore nalis, et ne sera donc pas dcrit ici.
Une fois les dmons lancs, vous pourrez congurer les systmes de chiers exports par votre ser-
veur. Ces systmes de chiers sont en fait de simples rpertoires que vous mettez disposition de cer-
taines machines. La liste de ces rpertoires est place dans le chier de conguration /etc/exports.
Chaque ligne de ce chier caractrise un rpertoire accessible par les autres machines du rseau. Ces
lignes utilisent le format suivant :
rpertoire machines
o rpertoire est le chemin sur le rpertoire exporter, et machines est une liste de machines
pouvant accder ce rpertoire. Cette liste contient des noms de machines, des adresses IP ou des
noms de rseaux, spars par des espaces. Il est galement possible dutiliser les caractres gnriques
? et * an de spcier des groupes de machines.
Des options peuvent tre utilises pour chaque machine, laide de la syntaxe suivante :
machine(options)
o machine est lune des entres de la liste de machines dune ligne du chier exports, et options
est la liste des options pour cette entre, spares par des virgules. Les options les plus utilises
sont bien entendu ro et rw, qui permettent de fournir cette machine ou ce groupe de machine
respectivement un accs en lecture seule et en lecture et criture sur le rpertoire.
292
Chapitre 9. Conguration du rseau
Le problme fondamental de NFS est la scurit. En effet, les chiers sont exports par dfaut avec
un identicateur dutilisateur qui est celui qui possde le chier sur la machine serveur. Or il est tout
fait possible que cet identicateur ne correspondent pas au mme utilisateur sur tous les clients.
Cela signie que les utilisateurs des machines clientes peuvent parfaitement avoir accs des chiers
qui ne leur appartient pas sur le serveur. Ce problme est fondamental, aussi faut-il le prendre en
considration srieusement.
NFS fourni plusieurs solutions pour assurer la scurit sur les systmes de chiers exports. La pre-
mire, qui est aussi la plus restrictive, est dattribuer les chiers exports un utilisateur ne disposant
de quasiment aucun droit (opration que lon nomme souvent squashing de lutilisateur ). Cet uti-
lisateur spcial est lutilisateur nobody , dont lidenticateur est 65534 par dfaut. Ainsi, tous les
clients accdent ces chiers au nom de lutilisateur nobody, et ne peuvent donc pas modier les
chiers du serveur. Le squashing de lutilisateur root est toujours ralis par dfaut, pour des raisons
de scurit videntes.
La deuxime solution est nettement moins sre. Elle ncessite de lancer le dmon ugidd sur
chaque machine client. Ce dmon est appel par le serveur NFS pour dterminer lidenticateur des
utilisateurs du client partir de leur nom. Ainsi, chaque chier est export avec lidenticateur de
lutilisateur qui porte le mme nom que celui qui possde le chier accd sur le serveur. Les pro-
blmes de scurit poss par cette solution sont normes : rien ne garantit que deux utilisateurs dis-
tincts sur deux machines diffrentes ne puissent pas avoir le mme nom dune part, et un attaquant
potentiel peut utiliser le dmon ugidd pour obtenir la liste des utilisateurs de la machine cliente dautre
part (ce qui constitue dj la moiti du travail pour sintroduire dans le systme de la machine cliente).
Cependant, cette solution est trs pratique pour les rseaux dont on contrle chaque machine, condi-
tion de restreindre laccs au dmon ugidd au serveur uniquement, par exemple en ayant recours
tcpd.
La troisime solution est de dnir sur le serveur lassociation entre les identicateurs des utilisateurs
du serveur et les identicateurs du client, ce pour chaque machine cliente. Cette technique est sre,
mais nettement plus complique mettre en uvre.
Enn, la dernire solution est dutiliser les services dinformation du rseau NIS (abrviation
de langlais Network Information Service ), qui permettent de dnir un certain nombre
dinformations de manire globale sur un rseau. En particulier, il est possible de centraliser la
dnition des utilisateurs et des mots de passe. Cette solution est trs lourde mettre en uvre,
puisquelle ncessite de congurer NIS au pralable. Elle nest donc mise en place que sur les
grands rseaux, et un particulier na pas de raisons dy recourir ( moins de vouloir explorer ces
mcanismes bien entendu). Nous nen parlerons donc pas.
Toutes ces techniques peuvent tre actives laide doptions fournies dans la liste des options pour
chaque machine dclares dans le chier de conguration /etc/exports. Les options utilises sont
dcrites ci-dessous :
loption all_squash permet dexporter tous les chiers comme appartenant lutilisateur nobody.
Cest loption la plus sre, mais aussi la plus restrictive ;
loption map_daemon permet dutiliser le dmon ugidd, qui doit tre lanc sur les machines clientes
et accessibles du serveur. Laccs aux rpertoires exports sera refus si ce dmon ne peut tre
contact par le serveur NFS. Cest certainement la solution la plus pratique pour un particulier ;
loption map_static=fichier permet dutiliser un chier de correspondance des identicateurs
des utilisateurs du serveur NFS sur les identicateurs des utilisateurs de la machine cliente.
Comme on peut le voir, cette dernire option permet de dnir spciquement, pour chaque ma-
chine, la correspondance des identicateurs dutilisateurs. Le chier fourni en paramtre loption
293
Chapitre 9. Conguration du rseau
map_static contient un certain nombre de lignes, chacune dnissant lassociation entre les iden-
ticateurs dutilisateurs de la machine distante et les identicateurs de ces utilisateurs sur le serveur.
Ces lignes sont introduites laide du mot cl uid. Il est galement possible de donner les correspon-
dances sur les groupes des utilisateurs avec le mot cl gid :
# Exemple de fichier de correspondance didentificateurs :
# client serveur
uid 0-99 -
uid 500-1000 1000
gid 0-49 -
gid 50-100 1000
Dans lexemple donn ci-dessus, les utilisateurs ayant un identicateur compris entre 0 et 99 inclus
seront associs lutilisateur nobody (ils subissent le squashing ). Il en est de mme pour les
groupes allant de 0 49. En revanche, les utilisateurs dont les identicateurs vont de 500 1000 sur
la machine cliente se voient respectivement considrs comme les utilisateurs didenticateur 1000
1500 par le serveur NFS. De mme, les groupes didenticateurs 50 100 sont considrs comme les
groupes didenticateurs 1000 1050.
Lexemple qui suit va permettre dclaircir un peu ces notions. Il montre comment les trois types de
contrle des identicateurs peuvent tre mis en place, pour trois types de clients diffrents :
# Exemple de fichier /etc/exports :
# Rpertoire /pub : accessible de tout le monde, avec les droits
# de lutilisateur nobody :
/pub (ro,all_squash)
# Rpertoire /home : accessible de toutes les machines du rseau local,
# avec contrle des utilisateurs effectue par le dmon rpc.ugidd :
/home *.monrezo.org(map_daemon)
# Rpertoire /usr : accessible par la machine 192.168.5.2, avec mapping
# des utilisateurs :
/usr 192.168.5.2(map_static=/etc/nfs/192.168.5.2.map)
Le chier /etc/nfs/192.168.5.2.map utilis dans la troisime ligne dnit la correspondance
entre les utilisateurs de la machine 192.168.5.2 et le serveur NFS :
# Fichier de correspondance pour 192.168.5.2 :
# client serveur
uid 0-99 -
uid 500 507
gid 0-49 -
gid 50 50
Notez que toute modication du chier /etc/exports doit tre signale aux dmons mountd et
nfsd, pour quils puissent le relire. Cette notication peut tre effectue en envoyant le signal SIGHUP
ces deux dmons. Les deux commandes suivantes sufront effectuer cette tche :
killall -HUP rpc.mountd
294
Chapitre 9. Conguration du rseau
killall -HUP rpc.nfsd
9.6.2. Conguration dun client NFS
Une fois la conguration du serveur NFS effectue, il ne reste plus qu congurer les postes clients.
Bien entendu, la manire de raliser cela dpend du systme utilis. Nous allons voir ici comment
accder un rpertoire export par un serveur partir dune machine fonctionnant sous Linux.
Du point de vue du client, les chiers accds par NFS sont considrs comme des chiers normaux
dun systme de chiers classique. Ils sont donc grs directement par le noyau, en tant que sys-
tme de chiers part entire. Lutilisation de NFS est donc directe, pour peu que lon ait activ les
fonctionnalits NFS dans le noyau.
Encore une fois, vous devrez modier la conguration du noyau si celui fourni avec votre distribution
ne gre pas les systmes de chiers NFS (ce qui est fort peu probable). La seule fonctionnalit
activer, en plus de la gestion du rseau bien entendu, est loption NFS filesystem support du
menu Network File Systems (ce menu est un sous-menu du menu Filesystems si vous
utilisez la conguration en mode texte).
Lorsque le noyau sera compil et install, il sera capable dutiliser les systmes de chiers NFS
nativement. Vous naurez donc pas besoin des dmons nfsd et mountd, tout sera pris en charge par le
noyau. Cependant, si le serveur exporte ses rpertoires avec loption map_daemon, il sera ncessaire
de lancer le dmon ugidd sur la machine cliente (le chier excutable se nomme rpc.ugidd et
se trouve dans le rpertoire /usr/sbin/). Il est conseill de lancer ce dmon partir dinetd, en
lencapsulant laide du dmon tcpd.
Le montage dun systme de chiers NFS se fait classiquement, avec la commande mount. Il suft
simplement ici de prciser le type de systme de chiers nfs avec loption -t, et dutiliser la
syntaxe suivante pour le chier spcial de priphrique utiliser :
machine:rpertoire
o machine est le nom du serveur NFS, et rpertoire est le chemin absolu sur le rpertoire export
par cette machine et auquel on dsire accder. Ainsi, si la machine mon.serveur.nfs exporte le
rpertoire /mon/rpertoire/export , la commande suivante permettra de monter ce systme
de chiers NFS dans le rpertoire /mnt :
mount -t nfs \
mon.serveur.nfs:/mon/rpertoire/export /mnt
Le systme de chiers NFS accepte des options permettant doptimiser les transferts dinformations.
Ces options peuvent tre fournies en ligne de commande mount laide de loption -o. Les plus
utiles sont sans doute rsize, qui permet de xer la taille des blocs de donnes transfrs pour la
lecture des chiers, et wsize, qui permet de xer cette taille pour lcriture des chiers. Il est re-
command dutiliser des paramtres raisonnables an dviter des erreurs de transfert et des pertes
de donnes. La valeur par dfaut est 1024, mais il est recommand dutiliser des blocs de taille 8192
pour obtenir de meilleures performances. Ainsi, la commande suivante pourra tre optimise comme
suit :
mount -t nfs -o rsize=8192,wsize=8192 \
mon.serveur.nfs:/mon/rpertoire/export /mnt
295
Chapitre 9. Conguration du rseau
Bien entendu, ces valeurs dpendent de la bande passante de votre rseau, et vous aurez sans doute
effectuer des tests de transferts de chiers pour trouver les valeurs optimales.
9.6.3. Installation dun serveur de chiers SMB
Bien que les protocoles SMB et NFS soient profondment diffrents, les principes utiliss pour
mettre en place un serveur SMB sont quasiment les mmes que ceux utiliss pour un serveur NFS.
Linstallation dun serveur SMB requiert en effet lutilisation de deux dmons qui prennent en charge
les services fournis par les serveurs de chiers SMB. Ces dmons utilisent tous deux le chier de
conguration smb.conf, plac le plus souvent dans le rpertoire /etc/. Seuls les serveurs doivent
faire fonctionner ces dmons, les clients Linux quant eux se contentent dutiliser le systme de
chiers SMB du noyau.
Ces dmons, ainsi que tous les outils ncessaires lutilisation du protocole SMB, sont fournis dans
la suite logicielle Samba , dont le nom est videmment inspir de SMB . Cette suite logicielle
est distribue sous la licence GNU et est donc compltement libre dutilisation. Elle est normalement
fournie avec toutes les distributions. La version actuelle est la 2.2.4. Si ce nest pas celle fournie avec
votre distribution, il est fortement recommand deffectuer une mise jour.
Linstallation de Samba ne pose pas de problme particulier. Nous ne la dcrirons donc pas ici. Sachez
cependant quelle est recommande mme sur les postes clients, car bien que les dmons ne soient
pas lancs sur ceux-ci, les outils permettant de se connecter un serveur de chiers sont fournis avec
Samba et restent ncessaires.
Comme on la vu ci-dessus, le protocole SMB se base sur le protocole de bas niveau NetBIOS.
NetBIOS est un protocole trs primitif, qui nutilise pas un mcanisme dadressage semblable celui
de la plupart des protocoles modernes. Chaque machine est identie sur le rseau par un nom unique,
quelle doit dclarer avant de pouvoir utiliser les ressources du rseau. Tout nouvel arrivant sur le
rseau signale donc aux autres quil dsire utiliser son nom, an de dterminer si ce nom est dj pris
ou non par une autre machine.
Lun des plus gros dfaut de NetBIOS est tout simplement quil nest pas routable tel quel, et quil
est impossible de structurer un rseau en se basant seulement sur les noms NetBIOS. Cest pour cette
raison que lon encapsule souvent NetBIOS dans un protocole plus volu capable de traverser les
routeurs, comme TCP/IP par exemple. Cest exactement ce que fait Samba, qui apparat donc comme
un service rseau Unix classique permettant de comprendre les paquets NetBIOS encapsuls dans les
paquets TCP/IP. Cette technique suppose videmment que tous les clients du rseau, y compris les
postes Windows, soient congurs pour encapsuler NetBIOS dans TCP/IP. Lutilisation de TCP/IP
est de toutes manires fortement recommande si lon veut raliser un rseau un tant soit peu srieux.
Outre les noms dordinateurs, le protocole NetBIOS permet de dnir des groupes dordinateurs, qui
contiennent tous les ordinateurs supposs changer des informations couramment. Un ordinateur ne
peut faire partie que dun seul groupe, mais il peut galement ne faire partie daucun groupe sil le
dsire. Ces groupes dordinateurs sont crs uniquement en fonction du travail quils ont effectuer,
et ne sont a priori absolument pas lis leur emplacement gographique ni leur emplacement sur le
rseau. Ainsi, il est possible de communiquer avec tous les ordinateurs dun groupe, un peu comme le
protocole TCP/IP permet dutiliser des adresses de diffusion. Dans le monde Windows, ces groupes
de machines sont plus couramment dnomms des workgroup , et il ny a en fait aucune diffrence
technique. Pour le protocole SMB, chaque ordinateur du rseau doit faire partie dun groupe bien
dni, bien que ce ne soit pas une ncessit au niveau de NetBIOS.
Lorsquun groupe de travail possde une base de donnes centrale permettant de raliser
lauthentication des utilisateurs lors des accs aux machines par le rseau, on dit quil sagit dun
296
Chapitre 9. Conguration du rseau
domaine. En pratique, un domaine nest donc rien dautre quun groupe de travail dont fait partie
un ou plusieurs serveurs dauthentication. Il existe plusieurs types de serveurs de domaine. Un
serveur primaire est un serveur central, sur lequel se fait la gestion globale des utilisateurs. Outre un
serveur primaire, un domaine peut galement contenir un ou plusieurs serveurs de sauvegarde si
ncessaire. Comme leur appelation lindique, ces serveurs sont capables de remplacer le serveur
primaire en cas de dfaillance de celui-ci. Ils maintiennent donc une copie des tables dutilisateurs,
et la synchronisent rgulirement avec celle du serveur primaire. Enn, un domaine peut contenir
des serveurs membres, qui sont comme des serveurs de sauvegarde, ceci prs quils ne peuvent pas
remplacer le serveur de domaine primaire. Bien entendu, le domaine contient galement les stations
de travail classiques, qui effectuent des requtes sur le serveur primaire.
An de grer la liste des noms NetBIOS du rseau, Samba fournit le dmon nmbd . Ce dmon est
essentiel au fonctionnement correct de Samba et doit donc toujours tre lanc. Il peut galement tre
congur en tant que serveur WINS (abrviation de langlais Windows Internet Name Server ), an
de pouvoir fournir les noms NetBIOS sur Internet. WINS est une technique dveloppe par Microsoft
pour rsoudre le problme du nommage des postes de travail sur Internet. Un serveur WINS est donc
NetBIOS un peu ce quun serveur DNS est TCP/IP. Le dmon nmbd est install classiquement
dans le rpertoire /usr/bin/ ou dans le rpertoire /usr/sbin/. Vous devrez le lancer avec loption
-D, faute de quoi il ne dmarrera pas en tant que dmon :
/usr/sbin/nmbd -D
Le deuxime dmon fourni par Samba est smbd . Celui-ci gre effectivement le protocole SMB, et
est donc en charge deffectuer la gestion des utilisateurs et des partages. Il doit tre lanc galement
avec loption -D si lon veut quil dmarre en tant que dmon. Ce dmon est normalement install au
mme endroit que nmbd :
/usr/sbin/smbd -D
Vous pourrez ventuellement faire en sorte que ces dmons soient lancs automatiquement en mo-
diant les scripts de dmarrage de votre systme. Une fois ces deux dmons lancs, votre machine
Linux se comportera exactement comme une machine Windows serveur classique. Ainsi, les res-
sources partages par ce serveur seront accessibles par les clients SMB, comme les postes Windows
par exemple.
Malheureusement, la plupart des clients SMB ne grent pas les notions avances des systmes de
chiers Unix. Le protocole SMB ne supporte dailleurs quune partie inme de ces fonctionnalits.
Samba utilise donc une politique bien prcise pour effectuer la correspondance entre les chiers Unix
et les chiers au sens des clients SMB.
La premire difcult rsoudre concerne la gestion des droits daccs aux chiers des partages. Sous
Unix, chaque chier et chaque rpertoire dispose de droits daccs, et seuls les utilisateurs autoriss
peuvent les manipuler. Dans le monde Windows, il ny a quasiment pas de notion dutilisateur, et en
gnral pas de gestion de la scurit. Seul Windows NT/2000/XP disposent de ces fonctionnalits,
condition quils utilisent des systmes de chiers NTFS et que le type de partage utilis le permette.
En fait, la gestion de la scurit se fait de manire globale, pour tous les chiers dun partage. Il existe
principalement deux modes de contrle daccs aux partages SMB :
le contrle daccs au niveau ressource, qui se fait partir dun mot de passe unique pour la res-
source, sans tenir compte de lutilisateur qui cherche y accder ;
297
Chapitre 9. Conguration du rseau
le contrle daccs au niveau utilisateur, qui ncessite de fournir un nom dutilisateur et un mot de
passe.
Le contrle daccs au niveau utilisateur ncessite de se trouver dans un domaine, et non dans un
simple Workgroup. Il faut donc disposer dun serveur de domaine an de raliser lauthentication
des utilisateurs qui cherchent accder ces ressources. Pour des raisons commerciales, Microsoft
sest arrang pour que seuls Windows NT, Windows 2000 et Windows XP serveur puissent servir
de contrleurs de domaine, ce qui fait quil est impossible dutiliser le contrle daccs au niveau
utilisateur sur un rseau ne disposant que de machines sous Windows 95, 98, ou NT/2000/XP client
(heureusement, Samba est capable de servir de contrleur de domaine, cependant, nous ne verrons
pas ce type de conguration). Il va de soi que le contrle daccs au niveau utilisateur est la seule
solution rellement sre du point de vue de la scurit.
Pour couronner le tout, les partages ne permettent que de xer les droits de lecture et dcriture pour
celui qui accde aux chiers du partage. Les droits dexcution nont pas de signication sous Win-
dows puisque, contrairement aux chiers Unix, le type des chiers est dtermin par leur extension.
Les notions de scurit des partages sont donc profondment diffrentes de celles utilises par Unix,
surtout pour le contrle daccs au niveau ressource, puisquaucun nom dutilisateur nest requis lors
de lauthentication ! Mais ce nest pas tout. Les chiers Unix appartiennent tous un utilisateur et
un groupe dutilisateurs, chose qui na pas de signication pour Windows. De plus, les systmes de
chiers Unix font la distinction entre les majuscules et les minuscules dans les noms de chiers, ce
que ne fait pas Windows. Et ils disposent de la notion de liens physiques et symboliques. Autant de
problmes qui doivent tre grs par Samba.
Note : Le fait de ne pas disposer des informations concernant les droits des utilisateurs sur les
chiers accds par SMB nempche pas le serveur de chiers de contrler les accs effectus
par le client. Si par exemple, un chier est marqu comme tant en lecture seule, aucun client ne
peut y crire, mme par lintermdiaire dun partage accd en lecture et criture.
Pour rsoudre tous ces problmes, Samba dispose dun grand nombre doptions, qui peuvent tre uti-
lises dans le chier de conguration smb.conf. Ces options permettent dindiquer la manire dont
lauthentication doit tre faite, les droits avec lesquels les chiers sont accds ou crs, les utilisa-
teurs au nom desquels les chiers sont crs, et le comportement suivre lorsquun client essaie de
suivre un lien symbolique. Seules les principales options gres par Samba seront dcrites ici. Les
options avances seront laisses de ct, car Samba propose un nombre incroyable de fonctionnali-
ts et les traiter toutes dpasserait le cadre de ce document. Vous pourrez trouver des informations
complmentaires en cas de ncessit dans la documentation de Samba, ou bien dans lexcellent livre
Using Samba de Robert Eckstein, publi aux ditions OReilly. Une version en ligne de ce livre
est fournie avec les sources de Samba et complte ainsi la documentation ofcielle de ce programme.
La plupart des distributions fournissent un chier de conguration /etc/smb.conf contenant la
plupart des options par dfaut, plus quelques exemples de conguration. Par exemple, les rpertoires
des utilisateurs sont souvent exports par dfaut. Vous pourrez bien entendu modier ce chier de
conguration. Il est donc peut-tre ncessaire de donner quelques prcisions.
Le chier smb.conf est structur en sections permettant de xer les paramtres de diffrentes fonc-
tionnalits du logiciel. Chaque section est introduite par son nom, donn entre crochets. Certaines
sections sont spciques Samba et dautres permettent de dnir les partages que vous dsirez
crer. Les paramtres dnis dans les sections se prsentent sous la forme de couple paramtre =
valeur , o paramtre est le nom dun des paramtres possibles dans cette section, et valeur est
la valeur que ce paramtre peut prendre.
Parmi les sections propres Samba, on compte la section [global] . Cette section est particulire-
ment importante, car elle xe les paramtres globaux de Samba, ainsi que les valeurs par dfaut des
298
Chapitre 9. Conguration du rseau
paramtres des autres sections. La section [global] suivante peut servir dexemple :
[global]
# Dfinit le nom NetBIOS du serveur :
netbios name = Linux
server string = Linux fait la Samba (version %v)
# Dfinit le nom du groupe de travail :
workgroup = monrezo
# Fixe les rgles de gestion de la scurit :
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/passwd
# Dfinit la correspondance entre les noms dutilisateurs Windows
# et les noms Unix :
username map = /etc/samba/usermap
# Dfinit le compte Unix utiliser pour invit :
guest ok = no
guest account = nobody
# Dfinit les paramtres rseau :
socket options = TCP_NODELAY
interfaces = eth0
bind interfaces only = yes
Cette section commence par dnir le nom NetBIOS du serveur et sa description. Par dfaut, le
nom utilis par Samba est le nom de domaine Unix de la machine, mais vous pouvez changer ce
nom comme bon vous semble. Vous avez d remarquer que dans la description de la machine (mot
cl server string), la version de Samba est rcupre avec %v. En fait, Samba dni un certain
nombre de variables qui sont remplaces dynamiquement lors de la connexion un partage. Ainsi,
%v reprsente la version de Samba utilise, %u reprsente le nom de lutilisateur qui se connecte, etc.
Toutes ces variables sont dcrites dans la page de man du chier smb.conf.
Le nom du groupe de travail dont fait partie la machine est ensuite introduit avec le mot cl
workgroup. Dans le cas prsent, il sagit du groupe de travail monrezo .
Viennent ensuite les options de scurit. Le mot cl security permet de dnir le mode de contrle
daccs aux partages mis disposition des clients par le serveur Samba. La valeur user indique
que ce contrle daccs se fait au niveau utilisateur, ce qui est le plus cohrent sous Unix. Chaque
utilisateur doit donc fournir son nom et son mot de passe pour accder ces partages. Samba peut
galement grer le contrle daccs au niveau ressource, si lon utilise la valeur share. Dans ce cas,
Samba essaiera de retrouver lutilisateur qui cherche se connecter partir de son mot de passe. Il
faut donc ajouter dans ce cas une ligne telle que celle-ci dans la section globale ou dans lune des
sections dnissant un partage :
username = utilisateurs
o utilisateurs reprsente la liste des utilisateurs que Samba utilisera pour tester le mot de passe
fourni. Bien entendu, si un nom dutilisateur est fourni par le client pour accder cette ressource, ce
nom est utilis directement. Samba mmorisera galement ce nom pour les demandes daccs ult-
rieures la ressource partage. Cet algorithme nest pas trs sr, car un utilisateur peut se connecter
299
Chapitre 9. Conguration du rseau
par hasard au nom dun autre. Aussi nest-il pas recommand dutiliser le contrle daccs au niveau
ressources.
Jusqu Windows 95 et Windows NT4 Service Pack 2 compris, les mots de passe fournis par les
clients taient transfrs en clair sur le rseau. Cela ntant pas sr, Microsoft a dcid dadopter une
nouvelle technique, dans laquelle les mots de passe transfrer sont encrypts par une clef fournie
par le serveur. Ainsi, une personne mal intentionne coutant les paquets transfrs sur le rseau ne
pourrait pas capter ces mots de passe. Samba est capable de grer les deux cas de conguration,
laide de loption encrypt password. Cependant, si vous dcidez dactiver le cryptage des mots de
passe, vous devrez galement crer un chier de mots de passe pour les clients SMB. Lemplacement
de ce chier est indiqu avec loption smb passwd file.
Le format du chier de mot de passe de Samba ressemble fortement celui du chier de mot de passe
Unix /etc/passwd. Vous pourrez trouver dans la documentation de Samba une description dtaille
de ce chier. Cependant, la chose la plus importante, cest bien sr de pouvoir ajouter des entres pour
chaque utilisateur dans ce chier. Cette opration se fait avec lutilitaire smbpasswd. Excute sous
le compte root, la commande suivante permet dajouter un utilisateur et de dnir son mot de passe :
smbpasswd -a utilisateur
o utilisateur est le nom de lutilisateur dont on veut crer un nouveau mot de passe. Lutilisateur
peut bien entendu changer son mot de passe avec smbpasswd.
Il est possible que les noms des utilisateurs Windows ne soient pas identiques leurs logins sur la
machine serveur de chiers. En fait, il est mme possible que plusieurs utilisateurs utilisent un mme
compte, cr uniquement pour les partages SMB. Samba fournit donc la possibilit dutiliser un chier
de correspondance entre les noms des utilisateurs avec loption username map. Le format du chier
de correspondance est trs simple, puisquil est constitu de lignes dnissant chacune une association
entre un nom de login Unix et un nom dutilisateur Windows. Ces lignes utilisent la syntaxe suivante :
login = utilisateur
o login est le nom de login de lutilisateur sur la machine Unix, et utilisateur est le nom quil
utilisera pour accder aux partages.
Loption guest ok permet dautoriser les connexions sans mot de passe sous un compte spcial,
que lon nomme le compte invit. Pour cela, il suft de lui affecter la valeur yes. Cette option peut
tre xe no dans la section de conguration globale, et rednie dans les sections spciques de
certains partages. Dans tous les cas, les connexions qui seffectuent en tant quinvit doivent utiliser
un compte utilisateur Unix classique. Ce compte peut tre dni laide de loption guest account,
en gnral, lutilisateur nobody utilis par NFS est le plus appropri.
Enn, il est possible de dnir des paramtres rseau dans la section de conguration globale.
Ces paramtres rseau permettent de xer des options de scurit complmentaires et des options
doptimisation. Loption interfaces donne la liste des interfaces partir desquelles les demandes
de connexion des clients seront acceptes. Ce type de contrle est activ lorsque le paramtre bind
interfaces only prend la valeur yes. Ces options conviennent parfaitement pour un rseau
local de particulier. Loption socket options quant elle permet de dnir les paramtres de
fonctionnement des communications TCP. Loption TCP_NODELAY indique au systme denvoyer les
paquets TCP ds que Samba le demande, sans chercher en regrouper plusieurs pour optimiser la
taille des paquets. Cette option acclre signicativement le fonctionnement des programmes tels
que Samba, qui utilisent beaucoup de petits paquets pour envoyer des requtes ou des rponses. Sans
cette option, le systme chercherait regrouper ces paquets, mme si Samba nen a pas dautres
envoyer, et ralentirait ainsi inutilement les transferts de donnes.
300
Chapitre 9. Conguration du rseau
Chaque partage fourni par le serveur SMB dispose galement dune section, dont le nom est le nom
utilis pour ce partage. Ces sections sont beaucoup plus simples que la section global, comme le
montre lexemple suivant :
[Donnes]
# Donne le chemin sur le rpertoire utilis par ce partage :
path = /usr/share/samba/donnes
# Description du partage :
comment = Disque de donnes
# Nom de volume Windows :
volume = SMB-LNX
# Options daccs :
writeable = yes
guest ok = yes
Comme vous pouvez le constater, loption path permet de dnir le rpertoire utilis pour stocker les
chiers du partage. Ce rpertoire est un rpertoire du serveur, et le chemin doit donc obligatoirement
tre un chemin Unix valide. En particulier, il faut tenir compte ici de la casse des noms de chiers.
Loption comment donne la description du partage, telle quelle apparatrait dans le voisinage rseau
de Windows. Le nom de volume quant lui est celui qui sera donn si un client Windows attache une
lettre de lecteur ce partage. Il est spci laide de loption volume. Enn, les options daccs uti-
lises dans cet exemple permettent dautoriser lcriture dans les chiers de ce partage, et dautoriser
les accs en tant quinvit (cest--dire sans mot de passe).
Samba dispose dune fonctionnalit intressante an de dnir automatiquement un partage pour
chacun des rpertoires personnels des utilisateurs dclars dans le serveur. Lorsquun client cherche
accder un partage qui nest pas dni par une section qui lui est propre, Samba tente de le
localiser un rpertoire personnel dutilisateur portant ce nom. Sil le trouve, il utilisera ce rpertoire
pour effectuer le partage automatiquement. Les paramtres de ce partage automatique sont dnis
dans la section [homes], dont vous trouverez un exemple ci-dessous :
[homes]
comment = Rpertoires personnels
browsable = no
writable = yes
Lutilisation de loption browsable = no ici sert simplement indiquer quil ne doit pas apparatre
de partage nomm homes. En effet, ce qui est dsir ici, cest dexposer les noms des rpertoires
personnels des utilisateurs, pas le partage homes lui-mme. Les autres options sont les mmes que
pour les partages normaux.
La section [homes] peut poser quelques problmes, puisquelle partage galement le compte root.
Cela nest certainement pas le comportement dsir. Il est mme fortement recommand dinterdire
les connexions pour les utilisateurs privilgis du systme. Cela peut tre ralis en utilisant loption
invalid users :
invalid users = root bin daemon adm sync shutdown \
halt mail news uucp operator gopher
301
Chapitre 9. Conguration du rseau
En fait, il est conseill de placer cette option dans la section [global], an dinterdire les connexions
de ces utilisateurs sur tous les partages.
Enn, Samba fournit une fonctionnalit comparable la section [homes] pour les imprimantes par-
tages. Il est en effet capable danalyser le chier de conguration /etc/printcap pour dterminer
la liste des imprimantes installes, et les partager pour les clients Windows. Ces imprimantes appa-
ratront donc comme des imprimantes partages classiques. Pour cela, il suft dajouter les lignes
suivantes dans la section [global] du chier smb.conf :
[global]
# Dfinit le type dimpression utilis (BSD sous Linux) :
printing = bsd
# Lit la dfinition des imprimantes installes dans /etc/printcap
# (type de commande BSD uniquement) :
printcap name = /etc/printcap
load printers = yes
La premire ligne indique Samba le type de commande utiliser pour raliser une impression. Sous
Linux, les commandes BSD sont utilises, aussi xe-t-on bsd loption printing.
Les options concernant toutes les imprimantes que Samba trouvera peuvent tre prcises dans la
section [printers]. Cette section joue donc le mme rle pour les imprimantes partages que la
section [homes] joue pour les rpertoires personnels des utilisateurs. La section donne ci-dessous
pourra vous servir dexemple :
[printers]
comment = Imprimantes
browseable = no
printable = yes
writeable = no
guest ok = no
path = /tmp
create mode = 0700
Loption browseable a ici la mme signication que dans la section [homes]. On ne dsire en
effet pas quun partage portant le nom printers apparaisse dans les voisinages rseau des machines
Windows ! En revanche, loption printable permet dindiquer clairement que ces partages sont
des imprimantes. Il est vident que lon ne peut pas crire sur une imprimante, loption writeable
est donc xe no. Enn, les impressions ne sont autorises que pour les utilisateurs identis, et
lutilisateur invit na pas le droit de soumettre un travail dimpression.
Le mcanisme utilis par Samba pour imprimer un document est le suivant. Lorsquun client demande
une impression sur une des imprimantes partages, Samba copie le chier que le client lui envoie en
local. Ce chier est ensuite communiqu au gestionnaire dimpression Unix, en loccurrence lpr sous
Linux. Celui-ci imprime le chier et le supprime du disque. Dans la section [printers], loption
path permet dindiquer dans quel rpertoire les chiers temporaires envoys par les clients doivent
tre stocks. Il est tout fait cohrent de les placer dans le rpertoire /tmp comme dans lexemple
donn ci-dessus. Enn, il est logique de protger ces chiers contre les autres utilisateurs. Cela est
ralis laide de loption create mode, qui xe les droits de ces chiers 0 pour tout le monde,
302
Chapitre 9. Conguration du rseau
sauf pour le compte root, leur cration. Ainsi, seul les programmes fonctionnant sous le compte root
(donc Samba et la commande lpr) peuvent lire, crire et effacer ces chiers.
Il est bien entendu possible de dnir les imprimantes manuellement, raison dune section par
imprimante. Ce type de conguration ne sera toutefois pas dcrit ici.
Toute modication du chier de conguration de Samba implique de la signaler aux dmons smbd et
nmbd. Cela peut tre ralis en leur envoyant un signal SIGHUP. Vous devrez donc taper les commande
suivantes :
killall -HUP smbd
killall -HUP nmbd
Comme on peut le voir, le chier de conguration smb.conf nest pas trs compliqu, mais utilise un
grand nombre doptions. Heureusement Samba fournit loutil de conguration SWAT (abrviation
de langlais Samba Web Administration Tool ), qui permet deffectuer la conguration de Samba
graphiquement. Comme son nom lindique, SWAT joue le rle de serveur Web, et peut tre utilis
avec nimporte quel navigateur en se connectant sur le port 901 de la machine sur laquelle il tourne.
Pour que cela puisse fonctionner, il faut ajouter le service rseau swat dans votre chier de con-
guration /etc/services :
swat 901/tcp
Vous devrez galement ajouter une ligne dans votre chier /etc/inetd.conf, an que le dmon
inetd puisse lancer SWAT automatiquement lorsquun client cherche lutiliser sur le rseau. Vous
devrez donc ajouter la ligne suivante :
swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat
et signaler inetd la modication de inetd.conf laide de la commande :
killall -HUP inetd
Vous pourrez alors accder la conguration graphique de SWAT laide dun navigateur Web, en
utilisant simplement lURL suivante :
http://localhost:901
SWAT demandera bien entendu le nom de lutilisateur root et son mot de passe pour permettre la
modication du chier smb.conf. Notez quil est fortement dconseill de laisser la possibilit de
raliser un connexion Web sur le compte root, et que vous ne devriez pas autoriser les connexions non
locales sur le port TCP 901. Lutilisation de SWAT ne pose pas vraiment de problmes et ne sera donc
pas dcrite plus en dtail ici.
303
Chapitre 9. Conguration du rseau
9.6.4. Conguration dun client SMB
Lutilisation des volumes partags par lintermdiaire du protocole SMB sous Linux est trs simple.
Elle se fait exactement comme pour NFS : il suft simplement de monter le volume dans un rpertoire
vide de larborescence de votre systme de chiers.
Pour que cela puisse tre ralisable, il faut bien entendu que le noyau supporte le systme de chiers
SMB. Ce systme de chiers est considr par le noyau exactement comme le systme de chiers
NFS : il sagit dun systme de chiers rseau. Vous pourrez donc activer le support de ce systme
de chiers laide de loption de conguration SMB filesystem support (to mount WfW
shares etc.) , que vous trouverez normalement dans le menu Network File Systems (ce
menu est un sous-menu du menu Filesystems si vous utilisez le programme de conguration
en mode texte). La compilation du noyau et son installation ont t dcrites en dtail dans la Section
7.3.
Lorsque vous aurez congur et install ce noyau, vous pourrez monter les volumes partags par
des serveurs de chiers SMB (quil sagisse de serveurs Linux ou Windows) exactement comme
nimporte quel systme de chiers, et accder leurs ressources. Malheureusement, la commande
mount du systme ne supporte pas encore compltement le systme de chiers SMB. Elle utilise
donc un programme complmentaire nomm smbmount, fourni avec la distribution de Samba. No-
tez bien que ce programme ne fait pas ofciellement partie de Samba, il est seulement fourni en
tant quutilitaire complmentaire pour Linux. Bien quil fasse galement partie dun paquetage ind-
pendant, il est recommand dutiliser la version fournie avec Samba. Cela signie que vous devrez
installer Samba sur les postes clients, mme si vous ne lancez pas les dmons smbd et nmbd. La
commande standard mount du systme sera peut-tre modie un jour pour intgrer toutes les fonc-
tionnalits de la commande smbmount, ce qui rendra inutile linstallation de Samba sur les postes
clients.
Quoi quil en soit, la syntaxe de la commande smbmount est trs simple :
smbmount partage rpertoire
o partage est le nom de partage du volume monter, et rpertoire est son point de montage
(par exemple, /mnt/). Le nom de partage utilis est exactement le mme nom que celui utilis par
Windows, ceci prs que les antislashs (\) sont remplacs par des slashs (/). Ainsi, pour monter
dans /mnt/ le partage Donnes du serveur de chiers SMBSERVER, vous devrez utiliser la commande
suivante :
smbmount //smbserver/donnes /mnt
Remarquez que le protocole SMB ne fait pas la distinction entre les majuscules et les minuscules (tout
comme Windows dune manire gnrale), et que vous pouvez utiliser indiffremment les majuscules
ou les minuscules.
Lutilisation des slashs la place des antislashs dans le nom du partage est due au fait que lantislash
est un caractre spcial que shell interprte comme tant la poursuite de la commande courante sur la
ligne suivante. Vous pouvez utiliser des antislashs si vous le dsirez, mais dans ce cas, vous devrez
mettre le nom de partage entre guillemets, pour empcher le shell de les interprter. Malheureusement,
lantislash est galement un caractre dchappement dans les chanes de caractres, et est utilis pour
introduire des caractres spciaux. tant lui-mme un caractre spcial, il doit lui aussi tre prcd
dun antislash dchappement ! Il faut donc doubler tous les antislashs, et la commande prcdente
devient particulirement longue et peu pratique avec cette syntaxe :
304
Chapitre 9. Conguration du rseau
smbmount "\\\\smbserver\\donnes" /mnt
Il est trs facile de faire des erreurs avec de telles commandes, aussi je ne vous la conseille pas.
En fait, il est possible de faire en sorte que la commande mount classique du systme puisse tre uti-
lise pour raliser les montages de partages SMB partir de la version 2.0.6. ou plus de Samba. Pour
cela, il suft de crer dans le rpertoire /sbin/ un lien symbolique mount.smbfs vers la commande
smbmount. Lorsquon utilisera la commande mount avec le type de systme de chiers smbfs, celle-
ci utilisera ce lien et appellera ainsi automatiquement smbmount. Les paramtres fournis mount
seront transmis tels quels smbmount. En particulier, vous pourrez utiliser une commande de ce type :
mount -t smbfs partage rpertoire
o partage et rpertoire sont toujours les noms de partage et de rpertoire devant servir de point
de montage.
Une fois le partage mont, vous pouvez lutiliser comme un systme de chiers classique. Lorsque
vous aurez ni de lutiliser, vous pourrez simplement le dmonter, avec la commande smbumount :
smbumount /mnt
Il est galement possible dutiliser la commande systme classique umount, mais cela ncessite de
repasser sous le compte root, ou de xer le bit setuid sur lexcutable de umount, ce qui est un
norme trou de scurit. La commande smbumount en revanche peut tre setuid, car elle vrie que
lutilisateur ne cherche dmonter que les partages quil a lui-mme mont.
Le protocole SMB ne prend pas en charge la notion dutilisateur et de groupe dutilisateurs des sys-
tmes de chiers Unix classiques. Par consquent, le propritaire et le groupe des chiers accds par
un partage SMB sont xs par dfaut lutilisateur qui a effectu le montage et son groupe. Cela est
naturel et ne pose pas de problmes pour la plupart des utilisateurs, mais peut tre gnant lorsquon
monte un partage en tant que root pour le compte dun autre utilisateur. En effet, celui-ci naura pas
les droits dcriture sur les chiers du partage. Pour rsoudre ce problme, il est possible de prciser
le nom de lutilisateur et son groupe laide des options uid et gid de la commande smbmount :
smbmount partage rpertoire -o uid=utilisateur,gid=groupe
o utilisateur et groupe sont respectivement les noms ou les numros de lutilisateur et du groupe
auquel les chiers devront tre attribus. Les paramtres uid et gid peuvent galement tre utiliss
avec la commande mount. Dans ce cas, ils sont passs tels quels smbmount.
Vous laurez sans doute remarqu, la commande smbmount vous demande de taper un mot de passe
pour accder au partage. Ce mot de passe est le mot de passe attendu par le serveur de chiers SMB.
Pour Windows, il sagit du mot de passe attribu au partage. Pour les serveurs de chiers Samba, il
sagit du mot de passe de lutilisateur au nom duquel se fait le partage, ou du mot de passe SMB en-
registr dans le chier de mots de passe smbpasswd de Samba. Dans tous les cas, ce mot de passe est
demand, mme sil est vide. La commande smbmount peut accepter une option password, qui per-
met de prciser ce mot de passe. Cependant, il est fortement dconseill de lutiliser, et ce pour deux
raisons. Premirement, le mot de passe apparat en clair lorsquil est saisi, et la ligne de commande
peut tre vue par nimporte quel utilisateur avec la commande ps. Cela pose donc un problme de s-
curit vident. Deuximement, loption password nest pas reconnue par la commande mount, et ne
peut donc tre utilise quavec smbmount. Cest pour cela quune autre solution a t propose, bien
305
Chapitre 9. Conguration du rseau
quencore imparfaite : dnir le nom dutilisateur et le mot de passe dans la variable denvironnement
USER. Pour cela, il suft dutiliser la commande suivante :
export USER=utilisateur%secret
o utilisateur est le nom dutilisateur classique, et secret son mot de passe sur le partage
monter. Cette technique nest pas non plus trs sre, et nest en aucun cas pratique. Aussi est-il re-
command de toujours utiliser la commande smbmount directement, et de ne taper le mot de passe
que lorsque celle-ci le demande.
306
Chapitre 10. Installation de XWindow
Linstallation de XWindow a t pendant longtemps une tche ardue et risque. prsent, il est pos-
sible dinstaller cet environnement relativement facilement, et en prenant beaucoup moins de risques
que par le pass. En fait, les seules difcults dans linstallation de XWindow rsident en deux points
stratgiques :
il faut imprativement connatre les caractristiques de son matriel (carte graphique et surtout
moniteur) ;
il faut disposer dun pilote adapt sa carte graphique pour le serveur X.
Le premier point nest pas rellement trop difcile rsoudre, puisquil suft souvent de regarder
les ches techniques du matriel install. Bien entendu, cela suppose de les avoir conserves. Si
ce nest pas le cas, il faut esprer que les programmes dinstallation connaissent la marque et le
modle du matriel. Il reste toujours la possibilit de demander des renseignements des personnes
qui ont galement ce type de matriel (cest l quInternet peut tre utile). Les informations les plus
importantes sont les plages de frquences horizontales et verticales du moniteur, ainsi que les dures
des signaux de synchronisation horizontale et verticale. Sans ces informations, vous ne parviendrez
pas installer XWindow. Rassurez-vous cependant, les programmes de conguration de XWindow
connaissent la plupart des moniteurs prsent, ce qui fait quils sont capables dcrire les chiers de
conguration correctement sans que vous ayez spcier les paramtres du moniteur.
Le deuxime point en revanche est plus dlicat. Bon nombre de fabricants de matriel tiennent secrtes
les informations techniques permettant de programmer un pilote, parce quils considrent que ce sont
des informations stratgiques. Il est vident que dans ce cas, aucun pilote libre ne peut tre crit.
Depuis quelques temps, ce problme ne se pose plus rellement en ce qui concerne lafchage 2D,
car le champ de bataille des constructeurs de cartes graphiques sest dplac vers le monde de la
3D. Dans le pire des cas, la carte graphique ne sera reconnue que par le pilote gnrique VESA,
et lafchage se fera correctement mais avec des performances bien en de de ce quelles auraient
t si un pilote appropri avait exist. Il est donc recommand de se renseigner dans les groupes de
discussion sur Internet avant dacheter une carte graphique, ou dacheter une bonne carte graphique
mais un peu obsolte. Il faut savoir que de toutes faons, les dernires fonctionnalits sont toujours
intgres avec un train de retard sous Linux, car il faut au moins le temps dcrire les pilotes et de
les tester. Dans peu de temps, Linux sera sans aucun doute reconnu comme un systme part entire
par les fabricants, et il est probable quils fourniront des pilotes comme pour les autres systmes. En
attendant, assurez-vous bien que ce que vous achetez fonctionne sous Linux.
Il ny a que trois solutions si aucun serveur X adapt votre matriel nest fourni avec votre
distribution :
soit le fabricant de la carte graphique fournit un serveur X pour Linux (ce qui est trs rare, mais
commence arriver) ;
soit on utilise le pilote VESA fourni avec XFree86, qui fonctionne avec toutes les cartes graphiques
compatibles avec le standard VESA
soit une socit tierce vend un serveur X pour ce type de matriel (ce qui est moins rare, mais a
limmense inconvnient quil faut acheter ses pilotes) ;
307
Chapitre 10. Installation de XWindow
Ce chapitre dcrit la manire de procder pour installer et congurer XFree86, une implmentation
libre de XWindow. Il indique galement comment installer le serveur X pour le pilote de frame buffer
du noyau. Linstallation des polices Truetype, qui sont si chres aux utilisateurs de Windows et des
Macintosh, est galement traite. En revanche, il ne dcrira pas comment congurer les gestionnaires
de fentres ni les gestionnaires de bureau, car ces oprations sont spciques celui que vous choisirez
dune part, et spciques vos desiderata dautre part. Pour cela, vous devrez commencer vous
dbrouiller tout seul, lire les pages de manuel et poser les questions quil faut aux personnes quil
faut. Mais ne paniquez pas, si vous tes arriv jusquici, cest que vous commencez savoir vous
dbrouiller. Vous ne devriez plus trop avoir de problmes pour tirer de Linux tout ce dont vous avez
besoin...
10.1. Gnralits sur XWindow
Il est ncessaire de bien comprendre ce quest XWindow pour pouvoir le congurer et lutiliser. Son
architecture se distingue en effet fortement de celle des environnements graphiques des systmes
classiques comme Windows, OS/2 ou Macintosh, et ces diffrences se traduisent dans la manire de
lutiliser.
La principale diffrence entre XWindow et les autres environnement graphiques est quil sagit dun
environnement graphique distribu sur un rseau. La notion de base de XWindow est que lapplication
qui effectue le traitement ne ralise pas elle-mme la gestion de lenvironnement graphique. Comme
on la dj vu, cette tche est prise en charge par le serveur X, qui est un processus indpendant.
Lapplication est donc cliente du serveur X, qui lui fournit les services graphiques dont elle a besoin.
Cette sparation a plusieurs consquences :
premirement, lenvironnement graphique est isol des fautes des applications qui lutilisent. Ainsi,
ce nest pas parce quune application a plant en plein cran quon ne peut pas rduire sa fentre
et accder nouveau au bureau sous-jacent. Inversement, une application est isole des erreurs
potentielles du serveur X, et peut poursuivre son traitement mme si celui-ci sest termin. Par
exemple, un processus de gravage de CD peut terminer le CD en cours mme sil a perdu son
interface graphique ;
deuximement, les clients doivent tablir une connexion avec le serveur. Cette connexion est rali-
se par lintermdiaire du rseau. Cela implique naturellement que les mcanismes de scurit lis
au rseau sont applicables pour toutes les applications dsirant se connecter au serveur X. XWin-
dow fournit par ailleurs des mcanismes de scurit complmentaires, et les ressources graphiques
ne peuvent tre utilises que par les processus qui y sont autorises ;
enn, comme le client et le serveur X sont deux processus distincts et quils communiquent par
lintermdiaire dune connexion rseau, rien ninterdit de lancer le client et le serveur X sur deux
machines distinctes. Ainsi, tout processus dport peut afcher ses donnes en local (et inverse-
ment).
Chaque client doit donc se connecter au serveur X avec lequel il dsire travailler. En pratique, il
nexiste souvent quun seul serveur X sur une machine, mais cela nest pas une obligation. Par
exemple, une mme machine peut disposer de deux cartes graphiques et de deux crans, et faire
tourner deux serveurs X distincts. Une autre possibilit est dutiliser les deux crans avec un seul
serveur X pour faire un cran virtuel beaucoup plus grand. Enn, il est tout fait concevable de lancer
plusieurs fois un mme serveur X, mme si lon ne dispose que dune seule carte graphique et dun
seul cran, an de pouvoir utiliser plusieurs terminaux X virtuels. Comme on le voit, larchitecture
client/serveur de XWindow lui apporte une trs grande exibilit.
308
Chapitre 10. Installation de XWindow
Les serveurs X utilisent la notion de display pour grer lafchage. En fait, un display est constitu
dun clavier, dune souris et dun ou plusieurs crans. Le display est donc lextension de la notion de
terminal pour XWindow. Notez bien quil est possible dutiliser plusieurs crans sur le mme terminal
X. Cependant, un serveur X ne peut prendre en charge quun seul terminal X sur une machine, et
chaque display est gr par un serveur X qui lui est propre. Si lon veut utiliser plusieurs terminaux X
sur une mme machine, il est ncessaire de lancer plusieurs serveurs X, raison dun par terminal.
Les clients qui dsirent se connecter un serveur X doivent donc indiquer le display avec lequel
ils dsirent travailler. Le systme XWindow se chargera dtablir la connexion avec le serveur X en
charge de ce display. Les displays sont spcis avec la syntaxe suivante :
machine:display
Comme on le voit, la prsence du champ machine conrme que XWindow est bien un systme
graphique rseau. Il peut contenir directement le nom de la machine ou son adresse IP. Si ce champ
est absent, le serveur contact sera lun des serveurs X de la machine locale, avec un protocole de
communication optimis. Le champ display quant lui est un numro permettant didentier le
display de la machine en question qui doit tre utilis. Cest ce champ qui dterminera le serveur X
qui sera utilis, dans le cas o plusieurs serveurs X fonctionnent sur la mme machine.
Un display pouvant avoir plusieurs crans, il est possible de spcier lcran sur lequel lafchage
doit tre ralis. Pour cela, il suft de sufxer le nom du display par un point suivi du numro de
lcran :
machine:display.cran
o le champ cran spcie le numro de lcran de ce display sur lequel lafchage doit avoir lieu.
Ce champ sera rarement utilis en pratique, car il est assez rare de disposer de plusieurs crans. Il
peut donc tre omis, la valeur par dfaut utilise est dans ce cas 0 (pour le premier et unique cran du
display).
Figure 10-1. Notion de display
Une fois la connexion tablie, les programmes clients continuent dindiquer XWindow le display qui
doit tre utilis pour chaque opration graphique effectuer. Il est donc possible pour un programme
309
Chapitre 10. Installation de XWindow
de rpartir son afchage sur plusieurs crans, voire de communiquer avec plusieurs serveurs X et donc
de grer plusieurs displays simultanment, ventuellement sur des machines diffrentes. Ce genre de
programme est cependant assez rare, et ne se trouve en pratique que dans le monde de la conception
assiste par ordinateur, la visualisation dimages mdicales et larchitecture. Les programmes clas-
siques se contentent dun seul display et effectuent toutes leurs oprations sur un mme cran. En
revanche, il est possible de congurer les serveurs X pour utiliser automatiquement plusieurs crans
pour un mme display, an de raliser un cran virtuel gigantesque.
Le display utilis pour un programme doit donc souvent tre x par un paramtre de sa ligne de
commande. Loption utilise est -display, avec la syntaxe suivante :
programme -display nom
o programme est le programme excuter, et nom est le nom du display tel quil a t dcrit ci-
dessus. Par exemple, la commande suivante :
xterm -display :0
permet de lancer le programme xterm et de raliser lafchage sur le display :0 (sur lcran par
dfaut) de la machine locale.
Vous pouvez cependant vous passer de loption -display, condition de dnir la variable
denvironnement DISPLAY pour xer le display par dfaut. Vous pouvez xer la valeur de cette
variable laide dune commande telle que celle-ci :
export DISPLAY=:0.0
(si vous utilisez bash). Dans cet exemple, le serveur X utiliser se trouve sur la machine locale, le dis-
play porte le numro 0, et lcran utiliser est le numro 0. En gnral, cette variable denvironnement
est xe la valeur du display courant lorsquon est connect sous XWindow. Par consquent, vous
pouvez lancer vos programmes sans avoir vous proccuper du display quils doivent utiliser.
En revanche, vous serez oblig de prciser le display utiliser lorsque vous lancerez une application
distance en voulant avoir lafchage en local. Bien entendu, vous devrez au pralable donner les droits
lutilisateur distant sur votre display local, faute de quoi les mcanismes de scurit de XWindow
lui interdiront de se connecter (message derreur Cant open display ). Nous verrons plus loin
la manire dont XWindow gre la scurit.
10.2. Conguration de XFree86
La conguration de XFree86 commence avant tout par linstallation du serveur X. Un mme serveur
X peut prendre en charge plusieurs cartes graphiques sur une mme machine, pourvu quil dispose
des pilotes adquats. Inversement, il est possible de lancer plusieurs serveurs X, chacun utilisant sa
propre carte graphique, ou partageant la mme carte si la machine na quun seul terminal X.
XFree86 fournit un unique serveur X, qui prend en charge tous les types de cartes graphiques
laide de pilotes spciques. Dans une installation normale, ces pilotes sont fournis sous forme de
modules de ce serveur. Les pilotes peuvent ainsi tre chargs dynamiquement par le serveur X, selon
la conguration du systme. Cette architecture permet un mme serveur X de charger plusieurs
pilotes pour plusieurs cartes graphiques, an de grer les congurations disposant de plusieurs crans
connects des cartes graphiques de diffrents types. Il est donc ncessaire que les modules prenant
en charge vos cartes graphiques soient installs, ce qui est normalement toujours le cas.
310
Chapitre 10. Installation de XWindow
Par convention, le nomdu serveur Xest toujours X. Comme le nomdu chier programme du serveur X
de XFree86 est XFree86 (on sen serait dout...), il doit exister un lien symbolique /usr/X11/bin/X
qui pointe vers le chier /usr/X11R6/bin/XFree86. Ce lien est, encore une fois, normalement
toujours prsent sur les systmes correctement congurs.
Une fois XWindow install, la suite de la conguration de XFree86 se fait uniquement dans le chier
de conguration XF86Config. Ce chier est classiquement stock dans le rpertoire /etc/X11/.
Normalement, vous ne devez pas crer ce chier vous-mme. Votre distribution doit au moins vous
en fournir un par dfaut et, souvent, elle dispose dun outil de conguration de XFree86 convivial qui
fera quasiment tout le travail pour vous. Ce genre doutil est de plus capable de congurer XFree86
pour les pilotes spciques fournis avec les distributions (il nest pas rare que les socits ditrices
de distributions dveloppent des serveurs X pour les nouvelles cartes graphiques). Lisez donc votre
documentation pour plus de dtails ce sujet.
Vous pouvez galement utiliser les programmes de conguration fournis avec XFree86, qui vous
permettront de gnrer ce chier. Il existe trois possibilits pour gnrer un chier de conguration
XF86Config. La premire mthode est de demander directement au serveur X de dtecter le matriel
prsent sur votre machine et de gnrer le chier XF86Config correspondant. La deuxime mthode,
qui est aussi la plus sre, est dutiliser le programme xf86cong. Il sagit dun outil fonctionnant
en mode texte, qui est effroyablement peu pratique utiliser. Enn, un autre outil, beaucoup plus
convivial, est en cours de dveloppement. Il sagit de xf86cfg. Cet outil permet de gnrer et de
modier les chiers xf86cfg de manire conviviale, soit en mode texte avec des menus, soit en mode
graphique. Lorsque cet outil sera termin, la conguration de XFree86 sera beaucoup plus aise.
Encore une fois, je ne saurai que vous recommander dutiliser loutil de conguration fourni avec
votre distribution.
10.2.1. Gnration automatique du chier XF86Cong
Le serveur X de XFree86 est capable de dtecter le matriel install sur une machine et de gnrer un
chier de conguration XF86Config adapt ce matriel. Pour cela, il suft simplement de le lancer
avec loption -configure sous le compte root, comme dans lexemple suivant :
XFree86 -configure
lissue de cette commande, le serveur X crira un chier XF86Config.new dans le rpertoire
personnel de lutilisateur root.
Cependant, le chier de conguration ainsi gnr nutilisera que les options de conguration les
plus sres et devra souvent tre rvis compltement. En pratique, seuls les paramtres de la carte
graphique et de la souris seront correctement dtects. Il ne faut donc utiliser cette fonctionnalit que
dans le but dobtenir un squelette de chier XF86Config, que lon personnalisera ensuite. Ce chier
pourra tre copi dans le rpertoire /etc/X11/ sous le nom XF86Config une fois quil aura t
corrig.
10.2.2. Utilisation de xf86cong
Comme il la t indiqu plus haut, xf86cong est un programme fonctionnant en mode texte exclusi-
vement. Son principe de fonctionnement est trs simple : il pose une srie de questions sur votre mat-
riel, puis il gnre un chier XF86Config gnrique pour votre matriel. Vous pourrez ensuite partir
de ce modle pour personnaliser votre conguration et pour prciser les paramtres que xf86cong
ne prend pas en charge.
311
Chapitre 10. Installation de XWindow
Le principal problme de xf86cong est quil ne laisse pas droit lerreur. La moindre faute de
frappe ou la moindre hsitation est prise comme une rponse valide, et il est impossible de revenir en
arrire. Cela est dautant plus nervant que dans ce cas, il ne reste plus quune solution, qui est de tout
recommencer partir du dbut. Aprs trois ou quatre erreurs, on nit par faire extrmement attention
ce que lon tape.
Lorsquon lance xf86cong, il commence par afcher un message indiquant quil va crer un nouveau
chier de conguration XF86Config que lon pourra utiliser par la suite comme point de dpart pour
paramtrer son systme XWindow. Il faut valider pour passer ce message et commencer la congura-
tion proprement dite.
La premire question que xf86cong pose est le type de la souris que vous voulez utiliser. Il existe un
grand nombre de types de souris sur le march, cependant seuls deux types sont rellement courants.
Initialement, les souris se connectaient sur le port srie des ordinateurs. Ces souris, dites souris s-
rielles, taient relativement rpandues et sont gnralement rfrences sous le terme de compatible
Microsoft . Il faut donc utiliser loption Microsoft compatible (2-button protocol)
pour ces souris. Notez que certaines souris srielles utilisent un protocole diffrent pour grer un
troisime bouton. Si vous disposez dune telle souris, il faut choisir loption Mouse Systems
(3-button protocol) .
Plus rcemment, le port PS/2 est apparu pour les claviers et les souris. Ce port permet de grer direc-
tement la plupart des souris actuelles, et il est probable que votre souris soit une souris PS/2. Loption
utiliser est cette fois loption PS/2 Mouse . Il faut surtout ne pas confondre les souris PS/2 avec
les souris bus (que lon peut utiliser avec loption Bus Mouse ), qui sont des souris relativement
peu rpandues et qui utilisaient des bus spciaux. Les autres options sont rserves des souris peu
rpandues. Si vous en utiliser une, vous devez choisir loption correspondante.
Notez que les souris molette connectes sur le port PS/2 utilisent un protocole de communication
lgrement diffrent de celui que les autres souris PS/2 utilisent. Malheureusement, xf86cong ne
propose pas doption pour ces souris, et une intervention manuelle dans le chier de conguration
XF86Config est ncessaire pour les congurer. La manire de procder sera dtaille dans la Section
10.2.4.
La question suivante demande si vous dsirez activer la fonctionnalit dmulation dun troisime
bouton pour les souris deux boutons. Cette mulation permet dutiliser les nombreux programmes
pour XWindow qui ncessitent dutiliser une souris trois boutons. Le clic sur le troisime bouton
est alors simul en appuyant sur les deux boutons de la souris simultanment. Il est trs vivement
recommand de rpondre par y cette question si votre souris ne dispose que de deux boutons. En
revanche, si elle dispose de plus de trois boutons, ou si elle dispose dune roulette, il faut rpondre
par la ngative.
xf86cong demande ensuite le port sur lequel votre souris est connecte. Ce port est gnralement
le port /dev/ttyS0 pour les souris srielles et /dev/psaux pour les souris PS/2. Les distributions
crent souvent un lien symbolique /dev/mouse sur le port effectivement utilis par la souris, si bien
que la rponse par dfaut utilise ce port. Cest la rponse recommande, validez donc pour passer la
question suivante.
Vient ensuite la slection du type de clavier. Encore une fois, un certain nombre de modles de claviers
ont t vendus sur le march. Cependant, seuls quelques-uns sont rellement rpandus. En France, on
trouve essentiellement les claviers internationaux 102 touches et 105 touches, auxquels correspondent
les rponses Generic 102-key (Intl) PC et Generic 105-key (Intl) PC . Si vous
utilisez un clavier Microsoft Natural Keyboard, choisissez loption Microsoft Natural .
Vous devrez ensuite indiquer la disposition de ce clavier. Il faut videmment choisir loption
French . xf86cong demande alors de saisir un nom de variante pour le clavier choisi. Comme le
312
Chapitre 10. Installation de XWindow
clavier franais nest dclin que sous une seule variante, vous pouvez simplement valider pour
passer la suite de la conguration du clavier.
xf86cong vous propose alors de modier des paramtres additionnels du clavier (emplacement des
touches modicatrices telles que les touches de majuscule, de contrle et de jeu de caractres alter-
natif, tat des diodes, etc.). En gnral, cela nest pas ncessaire et vous pouvez rpondre n cette
question.
La partie difcile vient ensuite. xf86cong vous le signale avec un message indiquant que les in-
formations de synchronisation horizontale et verticale sont extrmement importantes pour congurer
correctement les modes vido. La signication de ces valeurs vous sera dcrite plus loin en dtail, pour
linstant, contentez-vous de rcuprer le manuel de votre moniteur et recherchez ses caractristiques
prcises. Validez ensuite pour passer la question suivante.
xf86cong vous demande alors la plage de frquences horizontales que votre moniteur est en mesure
daccepter. Il propose un certain nombre de choix standards, qui correspondent aux diffrents types
de moniteurs existant sur le march. Cependant, ces valeurs sont les plus mauvaises, car il est fort
probable que votre moniteur sache faire mieux que ce que les standards imposent. Vous devez donc
soit accepter une des plages de valeurs proposes, soit saisir la plage correspondant exactement votre
moniteur laide de loption Enter your own horizontal sync range . Si vous choisissez
cette dernire option, vous devrez ensuite saisir la plage de valeurs des frquences horizontales de
votre moniteur. Ne les inventez pas, cela ne marchera pas. Saisissez les vraies valeurs.
La mme question est alors pose pour la plage de frquences verticales. Encore une fois, vous pouvez
choisir lune des plages proposes selon le type de votre moniteur, ou saisir vous-mme la plage
de frquences cite dans ses caractristiques techniques laide de loption Enter your own
vertical sync range . lissue de cette question, xf86cong vous demande de saisir le nom du
moniteur que vous venez ainsi de congurer. Ce nom est arbitraire, il ne sert que pour lidentier de
manire lisible par la suite. Entrez, par exemple, le nom du modle de lcran dont vous disposez.
La question suivante vous demande simplement si vous dsirez choisir votre carte graphique dans la
liste des cartes graphiques supportes par XFree86. Il est recommand de rpondre par lafrmative
en tapant y. xf86cong afche alors la liste des cartes gres, qui est assez longue. En fait, elle
se prsente sur plusieurs pages, et il faut appuyer sur la touche Entre pour passer dune page la
suivante. Si vous avez pass une page de trop, vous tes bon pour passer toutes les pages pour revenir
la premire, avant daller sur la page contenant votre carte graphique. Lorsque vous aurez trouv
votre carte, choisissez loption correspondante et validez.
Si votre carte nest pas prsente dans la liste, cela ne signie pas quelle nest pas supporte par
XFree86. En effet, chaque pilote est capable de prendre en charge un type de puce lectronique, et
il arrive que plusieurs cartes graphiques soient bases sur une lectronique provenant dun mme fa-
bricant. Cest la raison pour laquelle les pilotes de XFree86 portent gnralement le nom des puces
utilises par les cartes. Par consquent, si vous ne trouvez pas votre carte dans la liste, vous pouvez
essayer de spcier le pilote correspondant llectronique de votre carte. Dans le pire des cas, vous
pourrez quasiment toujours utiliser le pilote gnrique VESA, qui permet de piloter toutes les cartes
graphiques compatibles avec les standards VESA 2.0. Cependant, vous ne bncierez daucune ac-
clration matrielle avec ce pilote.
Les questions qui suivent dpendent fortement de la carte slectionne. En effet, chaque carte peut
avoir besoin dun certain nombre de paramtres complmentaires pour fonctionner. Encore une fois,
ces paramtres sont, normalement, indiqus dans le mode demploi de votre carte graphique ou, au
pire, sur les composants de la carte eux-mmes. Une des questions courantes concerne la quantit de
mmoire vido dont cette carte dispose. Pour cette question, les choix les plus courants sont propo-
ss, mais vous pouvez galement spcier vous-mme cette quantit laide de loption Other .
Lunit est ici le kilo-octet, pensez donc bien multiplier par 1024 le nombre de mga-octet de m-
moire vido de votre carte graphique avant de saisir la valeur. Lorque la conguration de la carte
313
Chapitre 10. Installation de XWindow
graphique sera termine, xf86cong vous demandera de saisir le nom de cette carte. Encore une fois,
ce nom est arbitraire, mais vous devriez saisir un nom cohrent avec votre modle.
xf86cong vous propose alors de modier lordre dutilisation des modes graphiques pour chaque
profondeur de couleur. Cet ordre doit tre spci en donnant les numros des diffrents modes, les
uns aprs les autres, et en ne les sparant pas par des espaces. Par exemple, le nombre 432 slectionne-
ra les modes 4, 3 et 2, soit les modes 1024x768, 800x600 et 640x480. Notez que lordre des numros
est important, cest lordre dans lequel ces modes seront choisi lorsquon basculera de lun lautre.
Lorsque vous aurez saisi les modes graphiques utiliser et leur ordre dapparition, xf86cong vous
proposera dutiliser un cran virtuel de taille suprieure la rsolution physique du plus grand des
modes graphiques choisi. Cela signie que la rsolution de lafchage sera suprieure celle de votre
cran, et que XWindow fera dler automatiquement limage afche lorsque la souris sortira de la
portion dimage visible. Il est en gnral conseill de rpondre par la ngative cette question, car ce-
la peut tre facilement droutant. Cependant, cest une affaire de got, et vous tes libre daccepter ce
comportement. Notez que quelle que soit la rponse que vous donnerez, XWindow utilisera comme
rsolution logique la rsolution du plus grand mode que vous avez slectionn. Par consquent, ce
mcanisme de dlement sera encore utilis pour les modes graphiques de rsolution infrieure, avec
comme taille dcran virtuel la taille du mode ayant la rsolution la plus grande. Lorsque vous aurez
congur tous vos modes graphiques, vous pourrez passer la suite en choisissant loption The
modes are OK, continue. .
xf86cong vous demande alors le nombre de couleurs utiliser par dfaut lorsque vous dmarrez
en mode graphique. Choisissez bien, car il ne sera pas possible de changer cette valeur une fois que
lenvironnement graphique sera lanc. Vous pourrez bien entendu la modier manuellement, mais il
vous faudra relancer le serveur X aprs cela. La plupart des cartes graphiques modernes supportent
les modes graphiques 16 millions de couleurs, la rponse recommande est donc 24 bits (16
million colors) .
Enn, la dernire question est tout simplement si vous dsirez enregistrer le chier XF86Config
correspondant aux options que vous avez choisies. Il faut bien entendu rpondre par y, ou sinon
vous devriez vous demander pourquoi vous tes en train de lire ceci...
Le chier XF86Config gnr est gnralement fonctionnel, mais parfaitement amliorable. Le for-
mat de ce chier sera dcrit en dtail dans la Section 10.2.4. Si vous louvrez, vous constaterez que
xf86cong a ajout un nombre impressionnant de commentaires pour vous aider dans vos exprimen-
tations. Bien entendu, vous trouverez galement des informations complmentaires dans la page de
manuel XF86Config.
10.2.3. Utilisation de xf86cfg
La manire la plus agrable deffectuer la conguration de XFree86 est sans nul doute dutiliser
lutilitaire xf86cfg. Ce programme permet aussi bien de crer un chier de conguration XF86Config
initial que de modier une conguration existante de manire graphique. Il dispose galement dun
mode texte, qui reprend les mmes questions que xf86cong, mais dune manire plus conviviale,
laide dun systme de menus.
10.2.3.1. Conguration en mode graphique
Lorsquon lance xf86cfg, celui-ci commence par regarder si la variable denvironnement DISPLAY
est dnie ou non. Si elle est dnie, il tente de se connecter au serveur X grant ce display an de
permettre ldition du chier de conguration XF86Config du systme. Notez quil ne permet pas
de modier le chier XF86Config utilis par le serveur X auquel il se connecte si celui-ci utilise un
autre chier que le chier du systme : le serveur X nest utilis par xf86cfg que pour son afchage.
314
Chapitre 10. Installation de XWindow
Si, en revanche, la variable denvironnement DISPLAY nest pas dnie, xf86cfg considre que
XWindow nest pas install sur la machine locale et appelle le serveur X avec loption -configure
an de gnrer un nouveau chier XF86Config. Il lance ensuite le serveur X dtect et utilise ce
serveur pour permettre la modication du chier XF86Config ainsi cr.
son dmarrage, il vrie que la souris est correctement congure. Si tel nest pas le cas, il propose
dutiliser les touches du curseur du pav numrique pour dplacer le pointeur de la souris, ainsi
que les touches /, * et - respectivement pour le premier, le deuxime et le troisime bouton de
la souris. Je dconseille fortement dessayer deffectuer la conguration dans ces conditions, car ce
nest rellement pas utilisable. Dans ce cas de gure, on cherchera plutt utiliser linterface en mode
texte de xf86cfg, que nous prsenterons dans la section suivante.
Linterface de xf86cfg en mode graphique est trs simple. La partie suprieure de la fentre comprend
un menu avec deux entres. La premire entre permet de choisir les diffrentes parties intervenant
dans la conguration. La deuxime entre (intitule Expert Mode ) donne accs quant elle
un mode de paramtrage permettant dditer directement les proprits du chier XF86Config. Ce
mode de fonctionnement est rserv aux utilisateurs avertis et ne sera pas dcrit ici.
La premire entre de menu comprend plusieurs options. Loption Configure Layout per-
met deffectuer la conguration gnrale du display. Loption Configure Screen permet de
congurer la disposition des diffrents crans dun mme display les uns par rapport aux autres. Elle
nest rellement utile que dans le cas des congurations plusieurs crans. Loption Configure
Modeline donne la possibilit de congurer les diffrents modes graphiques de chaque congura-
tion. Enn, loption Configure AccessX permet de spcier les options des diffrents priph-
riques dentre. Ces deux options de menus sont rserves aux utilisateurs expriments et ne seront
pas dcrites dans ce document.
Lessentiel de la conguration se fait dans lcran afch lorsque loption Configure Layout est
choisie. Cet cran est constitu dune barre dicnes permettant dajouter les diffrents priphriques
la conguration courante : souris, claviers, cartes graphiques et moniteurs. Il nest possible dditer
quune seule conguration la fois, la conguration courante peut tre slectionne laide du bouton
situ dans la partie infrieure gauche de la fentre. Le corps de la fentre elle-mme contient une
reprsentation de cette conguration, avec les diffrents priphriques utiliss et les relations qui
existent entre eux.
En cliquant avec le bouton droit de la souris sur ces lments, vous pouvez faire apparatre un menu
contextuel concernant cet lment. Ce menu peut contenir loption configure , qui donne accs
315
Chapitre 10. Installation de XWindow
une bote de dialogue permettant dditer les proprits de llment, loption option , qui permet
dajouter des options gnrales cet lment, les options enable et disable , qui permettent
dactiver ou de dsactiver llment en question dans la conguration, et loption remove , dont le
but est de supprimer llment concern.
Une conguration typique comprend au moins une souris, un clavier, une carte graphique et un moni-
teur. Il est recommand dajouter les lments de la conguration dans cet ordre, an dviter davoir
revenir plusieurs fois sur certains de ces lments.
La bote de dialogue ouverte par loption configure sur une souris comprend un champ conte-
nant lidenticateur de cette souris, la liste des chiers spciaux de priphriques pour la slection
du chier spcial de priphrique auquel la souris est connecte, la liste des protocoles grs par
XFree86 et un bouton permettant dactiver lmulation du troisime bouton pour les souris deux
boutons. Gnralement, les souris sont connectes soit sur le port srie (chier spcial de priphrique
/dev/ttyS0 ou /dev/ttyS1), soit sur le port PS/2 (chier spcial de priphrique /dev/psaux).
Les principaux protocoles grs par XFree86 sont les suivants :
Microsoft
Cest le protocole utilis par la plupart des souris connectes sur le port srie. Ce type de souris
est de plus en plus rare actuellement, ne choisissez cette option que si vous disposez de ce type
de souris ;
IntelliMouse
Cest le protocole utilis par les souris molette connectes sur le port srie. Nutilisez pas ce
protocole pour les souris molette connectes sur le port PS/2, la souris ne fonctionnerait pas.
PS/2
Cest le protocole qui convient pour la majorit des souris connectes sur un port PS/2. Notez
toutefois que ce nest pas le cas des souris molette Logitech et Microsoft ;
IMPS/2
Cest le protocole des souris molette connectes sur port PS/2. Malheureusement, ce protocole
nest pas propos par xf86cfg. Il est donc impossible de congurer une souris de ce type avec
cet utilitaire, sauf passer dans le mode expert. La conguration utiliser pour ce type de souris
sera dcrite dans la Section 10.2.4.
Lorsque vous aurez congur votre souris, vous pourrez utiliser le bouton Apply changes pour
prendre en compte les changements si vous avez modi les paramtres de la souris courante. Ds
lors, vous devriez avoir une souris fonctionnelle, et vous pouvez lactiver avec loption enable du
menu contextuel. Lorsque la souris est active, un lien apparat entre lunit centrale de lordinateur
et cette souris dans la fentre de xf86cfg.
La bote de dialogue ouverte par loption configure du menu contextuel des claviers comprend,
comme la bote de dialogue des proprits des souris, un champ permettant de saisir le nom de ce
clavier dans la conguration. Vous pouvez galement choisir le modle de clavier et sa disposition
en fonction de sa langue. Pour les claviers franais, le modle utiliser est gnralement celui des
claviers internationaux 102 ou 105 touches, et la disposition utiliser est la disposition French .
Lorsque vous aurez congur le clavier correctement, vous pourrez appliquer les changements avec le
bouton Apply changes . Vous pourrez galement activer le clavier dans la conguration courante
laide de loption enable du menu contextuel du clavier. Un lien entre ce clavier et lunit
centrale doit alors apparatre dans la fentre principale de xf86cfg.
316
Chapitre 10. Installation de XWindow
La bote de conguration des cartes graphiques contient le champ habituel pour donner un nom
la carte et la liste des cartes graphiques reconnues automatiquement par XFree86. Si votre carte ne
se trouve pas dans cette liste, vous devrez choisir le pilote utiliser. En gnral, les pilotes portent le
nom de la puce lectronique sur laquelle la carte graphique est base. Si aucun pilote nest adapt pour
votre carte, vous pourrez malgr tout utiliser un des pilotes gnriques vga ou vesa. Enn, dans le
cas o plusieurs cartes graphiques sont installes dans lordinateur, vous devrez spcier ladresse de
la carte sur le bus PCI/AGP. Noubliez pas dactiver la carte graphique laide de loption enable
du menu contextuel lorsque vous aurez ni la conguration.
La bote de dialogue des moniteurs permet de spcier un nom pour le moniteur ainsi que ses plages
de frquences horizontales et verticales. Vous pouvez aussi slectionner la carte graphique laquelle
ce moniteur est connecte. La liste ne propose que les cartes graphiques que vous avez congur
prcdemment. Les moniteurs nont pas besoin dtre activs, car il sont lis aux cartes graphiques.
Une fois la conguration gnrale dnie, vous pouvez, si elle contient plusieurs crans, spcier la
disposition relative de ces crans laide de loption Configure Screen du menu principal de
xf86cfg. Cette option afche les diffrents crans dans la fentre de xf86cfg, et vous pouvez les faire
glisser pour les disposer comme vous le dsirez.
Enn, loption de menu principal Configure Modeline vous permettra de dnir de nouveaux
modes graphiques et de les ajuster. Cet cran fournit les mmes fonctionnalits que lutilitaire xvid-
tune, que lon dcrira en dtail dans la Section 10.2.6. Cet cran ne sera donc pas trait plus en dtail
ici.
Lorsque vous quittez xf86cfg, il vous propose denregistrer le chier de conguration
/etc/X11/XF86Config correspondant la conguration que vous venez de dnir. Vous pouvez
spcier un autre nom si vous le dsirer, an denregistrer ces paramtres dans un autre chier.
xf86cfg demande galement si vous dsirez sauvegarder la conguration du clavier, pour le cas o
vous auriez modi les paramtres des priphriques dentre.
10.2.3.2. Conguration en mode texte
xf86cfg permet galement deffectuer la conguration de XFree86 en mode texte, laide dune
interface base sur un systme de menus. Bien que ce mode de fonctionnement soit en mode texte, il
permet deffectuer les mmes tches que xf86cong dune manire beaucoup plus conviviale.
Pour lancer xf86cfg en mode texte, il suft simplement de lui passer loption -textmode en ligne de
commande :
xf86cfg -textmode
Lors de son dmarrage, xf86cfg afche un cran daccueil que vous pouvez passer en validant loption
Ok .
xf86cfg afche ensuite son menu principal, qui comprend des entres pour ajouter des souris, claviers,
moniteurs et cartes graphiques. Ce menu contient galement une entre Configure screen , qui
permet dassocier les cartes graphiques aux moniteurs, et une entre Configure layout , qui
permet de congurer le display en spciant le clavier, la souris et les diffrents crans utiliser.
317
Chapitre 10. Installation de XWindow
Le menu de conguration de la souris permet dajouter, de supprimer et de modier des souris. Lajout
dune souris ncessite de saisir un identicateur pour la souris, le protocole que cette souris utilise
et si le troisime bouton doit tre simul ou non. xf86cfg demande galement le chier spcial de
priphrique utiliser pour accder cette souris. Notez que xf86cfg ne permet pas de choisir le
protocole IMPS/2 utilis par les souris molette connectes sur le port PS/2, ce type de souris ne peut
donc pas tre congur avec cet outil.
De la mme manire, le menu de conguration du clavier demande de saisir un identicateur lors-
quon ajoute un nouveau clavier. Le type de clavier est galement demand, ainsi que sa disposition.
Pour les claviers franais, il faut utiliser les claviers internationaux 102 ou 105 touches.
La conguration des moniteurs permet de spcier un identicateur pour le moniteur, ainsi que les
plages de frquences horizontales et verticales. La conguration des cartes graphiques quant elle
permet galement de spcier un identicateur pour la carte, et de choisir le type de carte dans la
liste des cartes prises en charge par XFree86. Si votre carte nest pas liste, vous devrez choisir
loption ** Unlisted card ** et indiquer le pilote utiliser pour cette carte. Ce pilote porte
gnralement le nom de la puce lectronique sur laquelle cette carte est conue, mais vous pouvez
galement utiliser les pilotes gnriques vga et vesa pour les cartes graphiques compatibles avec ces
standards. Enn, xf86cfg vous propose de spcier ladresse de la carte sur le bus PCI/AGP, pour le
cas o vous auriez plusieurs cartes installes sur la mme machine.
Les identiants donns aux moniteurs et aux cartes sont utiliss dans le menu de conguration des
crans, qui demande quelle carte et quel moniteur sont utiliss pour chaque cran. La profondeur de
couleur par dfaut est galement demande, ainsi que la liste des modes graphiques grs par cet
cran. Notez que linterface en mode texte de xf86cfg ne permet pas de dnir de nouveaux modes
graphiques, pour cela, il faut recourir linterface en mode graphique ou diter manuellement le
chier de conguration XF86Config.
Enn, le menu de conguration gnral permet de dnir, de modier et de supprimer les displays.
Chaque display doit contenir une rfrence une souris, un clavier et un ou plusieurs crans. Remar-
quez encore une fois que linterface en mode texte de xf86cfg ne permet pas de prciser la disposition
relative des crans les uns par rapport aux autres. Pour cela, vous devrez utiliser linterface en mode
graphique ou diter manuellement le chier de conguration de XFree86.
Lorsque vous aurez ni la conguration de XFree86, vous pourrez lenregistrer laide du menu
Write XF86Config and quit . Ce menu vous demande le chemin complet sur le chier de
conguration crire. Vous pouvez spcier un autre chier que le chier de conguration du systme
si vous dsirez lditer et le modier manuellement de manire indpendante.
318
Chapitre 10. Installation de XWindow
10.2.4. Description du chier XF86Cong
Les chiers gnrs par les outils de conguration de XFree86 sont, comme nous lavons dj pr-
cis, des chiers devant servir de point de dpart pour raliser votre conguration. Normalement, ils
permettent de dmarrer le serveur X et de travailler dans de bonnes conditions, toutefois, il est pos-
sible damliorer sensiblement la qualit de lafchage et lergonomie du systme en mettant un peu
la main la pte. Cette section entreprend donc de dcrire la structure du chier de conguration
XF86Config et les principales options que lon peut utiliser. Dautre part, il peut tre instructif de
connatre la nature des informations que ce chier contient, et quelles sont les consquences des choix
effectus dans les utilitaires de conguration.
10.2.4.1. Structure gnrale du chier XF86Cong
Le chier XF86Config est constitu dun certain nombre de sections contenant chacune les options
pour une partie de larchitecture de XFree86. La conguration de XFree86 est un sujet ardu, aussi
seules les principales sections du chier XF86Config seront dcrites dans ce document. Vous pouvez
vous rfrer la page de manuel XF86Config et la documentation de XFree86 pour plus de dtails
ce sujet.
Certaines sections peuvent tre dnies plusieurs fois, avec diffrents jeux doptions chaque fois,
an de permettre la dnition de plusieurs congurations. Bien entendu, lorsquun serveur X tourne,
une seule conguration seulement est utilise. Cette conguration est spcie soit directement en
ligne de commande lors du lancement du serveur X, soit en indiquant une conguration par dfaut
dans le chier de conguration.
Dautres sections sont globales, et contiennent les options de conguration gnrales du serveur X.
Ces options concernent typiquement lenvironnement dans lequel il est suppos fonctionner, et les
options qui ne dpendent pas de la conguration utilise.
La premire section globale est la section Files , qui porte relativement mal son nom, car au
lieu de chiers, elle indique les chemins vers les diffrentes ressources que le serveur X peut utiliser.
Ces ressources comprennent les polices de caractres, lemplacement des modules complmentaires
et lemplacement des chiers de dnitions de couleurs.
La deuxime section globale est la section ServerFlags . Cette section contient les options
gnrales utiliser par dfaut pour tous les serveurs X. Elles permettent dactiver ou de dsactiver
certaines fonctionnalits ou extensions non standards. Ces options fournissent des valeurs par dfaut,
elles peuvent tre modies pour chaque serveur X de manire indpendante si ncessaire.
La troisime section globale est la section Module . Cette section contient les commandes de
chargement des diffrents modules du serveur X, lorsque ce serveur est compil sous forme modulaire.
Chaque module gre une certaine partie des fonctionnalits, et celles-ci peuvent donc tre actives ou
dsactives au niveau de cette section.
Viennent ensuite les sections de conguration des displays. Ces sections dcrivent chacune un des
aspects du display, et peuvent apparatre en de multiples exemplaires.
Le premier type de section de conguration des displays regroupe toutes les sections qui dnissent
les priphriques dentre de donnes (clavier, souris, table de digitalisation, etc.). Ces sections sont
toutes nommes InputDevice .
Le deuxime type de section de conguration contient la dnition des adaptateurs graphiques. Ces
sections permettent de donner les renseignements ncessaires pour la conguration des diffrentes
cartes graphiques installes sur le systme. Elles sont toutes nommes Device .
Viennent ensuite les sections Monitor qui, comme leur nom lindique, permettent de dnir
les caractristiques physiques des diffrents moniteurs utilisables. Encore une fois, il peut exister
319
Chapitre 10. Installation de XWindow
plusieurs sections de ce type, pour dnir plusieurs moniteurs dans les congurations multi-ttes.
Normalement, chaque moniteur est, en fonction de ses capacits, capable de grer diffrents modes
graphiques. Les sections Monitor peuvent donc contenir des dnition de modes graphiques,
mais ce nest pas la technique recommande. En effet, il est possible dutiliser plusieurs moniteurs
avec des modes graphiques identiques, aussi XFree86 donne-t-il la possibilit de dnir les modes
graphiques en dehors des sections Monitor (ce nest toutefois pas une obligation). Dans ce
cas, les modes graphiques seront dnis dans des sections nommes Modes , et celles-ci seront
rfrences par les sections des moniteurs qui les utilisent.
Les moniteurs sont faits pour tre branchs sur des cartes graphiques. Comme on la vu ci-dessus, il
est possible de dnir plusieurs sections Device et plusieurs sections Monitor , an de dcrire
plusieurs cartes graphiques et plusieurs moniteurs. Il faut donc spcier quels moniteurs sont connec-
ts quelles cartes graphiques. Cest exactement le rle des sections Screen . Pour XFree86, un
cran nest donc rien dautre quun couple fonctionnel moniteur / carte graphique. Notez que certaines
cartes graphiques haut de gamme peuvent prendre en charge plusieurs crans. Dans ce cas, il faudra
dnir plusieurs sections Device pour la mme carte graphique, et spcier les ports de sortie
dans les options de ces sections.
Enn, il ne reste plus qu dnir le display lui-mme. Nous avons dj dni la notion de dis-
play ci-dessus comme tant le regroupement dun clavier, dune souris et dun ou plusieurs crans.
Ces associations sont donc dnies dans des sections nommes ServerLayout . Une section de
ce type contient donc ncessairement une rfrence une section InputDevice pour le cla-
vier et une section InputDevice pour le priphrique de pointage, et une ou plusieurs sections
Screen pour les crans utiliss par le serveur X. Dautre part, comme leur nom lindique, les
sections ServerLayout permettent galement de spcier la disposition relative des crans les
uns par rapport aux autres, dans le cas des congurations multi-ttes.
Figure 10-2. Structure du chier XF86Cong
320
Chapitre 10. Installation de XWindow
Nous allons prsent dcrire un peu plus en dtail les diffrentes sections qui ont t prsentes ici.
Toutes ces sections sont introduites par le mot cl Section suivi du type de la section, indiqu
entre guillemets, et se terminent toutes par le mot cl EndSection . Entre ces deux balises, un
certain nombre dinformations peuvent tre spcies, et peuvent mme tre regroupes en sous-
sections. tant donn le grand nombre doptions qui peuvent tre indiques dans les sections du
chier XF86Config, seules les plus classiques seront dcrites ci-dessous.
10.2.4.2. Section Files
La section Files , contient les chemins vers les ressources utiliss par XFree86. Ce peut tre les
rpertoires de polices de caractres, les rpertoires dinstallation des modules du serveur X, ou encore
des chemins indiquant ladresse et le port de serveurs de polices sur un rseau. Cette section est donc
relativement riche de renseignements pour le serveur X. Un exemple typique de section Files
est donn ci-dessous :
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/local"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
ModulePath "/usr/X11R6/lib/modules"
EndSection
Les chemins indiqus sont des chemins Unix classiques, et sont introduits par les mots cls
FontPath , RgbPath et ModulePath respectivement pour les chemins sur les rpertoires
de polices, les rpertoires de chiers de dnition de couleurs et les rpertoires dinstallation des
modules. Cependant, comme on le verra plus loin, laccs aux serveurs de polices se fait laide
dune syntaxe de chemin particulire.
10.2.4.3. Section ServerFlags
Cette section regroupe les principales options globales de tous les serveurs X. Ces options sont g-
nralement introduites laide du mot cl Option , suivi du nom de loption entre guillemets,
lui-mme suivi dune ventuelle valeur pour cette option, elle aussi entre guillemets. Par exemple,
loption :
Option "DontZap"
permet dempcher que lutilisateur puisse utiliser la combinaison de touches CTRL+ALT+BACKSPACE
(en temps normal, cette combinaison de touches a pour consquence de tuer le serveur X, et de forcer
la dconnexion de toutes les applications en cours de fonctionnement).
De mme, loption :
Option "Dont Zoom"
dsactive les combinaisons de touches CTRL+ALT+PLUS et CTRL+ALT+MINUS, o PLUS et MINUS
sont respectivement les touches plus et moins du pav numrique. Ces deux combinaisons de touches
sont normalement utilises respectivement pour passer dun mode vido au suivant ou au prcdent.
321
Chapitre 10. Installation de XWindow
Il existe beaucoup dautres options gnrales du serveur X. Les plus intressantes sont sans doute
les options BlankTime , StandbyTime , SuspendTime et OffTime , qui permettent
de contrler les dures des conomiseurs dcrans matriels. Vous trouverez la description des autres
options dans les chiers XF86Config gnrs automatiquement, et bien entendu dans la page de
manuel XF86Config.
10.2.4.4. Section Module
Cette section contient la liste des modules que les serveurs X doivent charger lorsquils dmarrent.
Ces modules peuvent tre spcis de deux manires diffrentes, une abrge et une plus complte.
La forme abrge utilise le mot cl Load , suivi du nom du module entre guillemets. Par exemple,
la ligne suivante permet de demander le chargement du module de gestion des polices TrueType :
Load "freetype"
La forme complte utilise une sous-section, introduite par le mot cl SubSection suivi du nom
du module entre guillemets, et se terminant par le mot cl EndSubSection . Ces sous-sections
ont la mme structure que les sections normales, et permettent de spcier des options pour le module
laide du mot cl Option . Par exemple, les extensions du serveur X peuvent tre charges
lexception de lextension DGA laide de la sous-section suivante :
SubSection "extmod"
Option "omit XFree86-DGA"
EndSubSection
Note : Lextension DGA permet aux applications daccder directement la mmoire vido de
la carte graphique. La dsactiver accrot donc la scurit du systme, mais peut empcher cer-
taines applications de fonctionner correctement. Cest le cas des jeux, et surtout des programmes
de tlvision sous XWindow. Par consquent, il est probable que vous vouliez laisser ces exten-
sions actives. Dans ce cas, il suft simplement de ne pas spcier loption omit de lexemple
prcdent.
Outre les modules freetype et extmod donns dans les exemples prcdents, vous pourrez peut-tre
utiliser les modules dri et glx. Ces modules permettent respectivement dactiver les fonctionnalits
DRI (abrviation de langlais Direct Rendering Infrastructure ) du noyau et le support de la 3D par
OpenGL. Les diffrentes cartes capables de grer les fonctionnalits DRI sont celles listes dans la
conguration du noyau, que lon a dj vue dans la Section 7.3. Notez toutefois que ces fonctionnalits
ne sont indispensables pour utiliser le module glx que pour ces cartes. En particulier, les cartes
graphiques bases sur les puces NVidia peuvent utiliser le module glx sans charger le module dri,
car le pilote fourni par NVidia utilise un autre mcanisme.
10.2.4.5. Section InputDevice
Les sections InputDevice permettent de dcrire tous les types de priphriques dentre. En
pratique, il sagira souvent de claviers et de souris, mais il est galement possible de connecter des
priphriques plus exotiques tels que les joysticks et les tablettes de dessin.
322
Chapitre 10. Installation de XWindow
Les sections InputDevice doivent tre nommes avec un identicateur unique, introduit par le
mot cl Identifier . Ce mot cl doit tre suivi du nom de la section, donn entre guillemets.
Cest ce nom qui sera utilis pour rfrencer la section dans les sections ServerLayout pour
dnir les diffrents displays.
La nature du priphrique dentre est ensuite spcie par la valeur de loption Driver . En
pratique, on utilisera quasiment toujours Keyboard ou Mouse, qui correspondent bien videmment
aux pilotes pour les claviers et les souris.
La suite des options de la section InputDevice est fonction de la nature du pilote utilis. Les
options les plus courantes pour un clavier sont donnes dans lexemple suivant :
Section "InputDevice"
Identifier "Clavier 1"
Driver "Keyboard"
# Loption suivante permet de spcifier le dlai
# avant rptition (en millisecondes) et la vitesse
# de rptition une fois ce dlai pass (en caractres
# par seconde) :
Option "AutoRepeat" "500 30"
# Loption suivante indique que la dfinition de clavier
# utiliser est celle de XFree86 :
Option "XkbRules" "xfree86"
# Loption suivante indique que le modle de clavier
# utilis est un clavier 105 touches :
Option "XkbModel" "pc105"
# Loption suivante indique que la disposition
# des touches est celle dun clavier franais :
Option "XkbLayout" "fr"
EndSection
De mme, vous trouverez ci-dessous un exemple typique de section InputDevice pour une
souris :
Section "InputDevice"
Identifier "Souris 1"
Driver "Mouse"
# Loption suivante indique que la souris est
# une souris de type PS/2 :
Option "Protocol" "PS/2"
# Loption suivante indique le fichier spcial
# de priphrique utiliser pour cette souris :
Option "Device" "/dev/psaux"
# Loption suivante indique le nombre de boutons
# de la souris :
Option "Buttons" "2"
323
Chapitre 10. Installation de XWindow
# Loption suivante demande XFree86 dmuler
# le troisime bouton de la souris par clic
# simultan des deux boutons :
Option "Emulate3Buttons"
EndSection
Note : Pour les souris molette connectes sur port PS/2, vous devrez choisir le protocole
IMPS/2 au lieu du protocole PS/2 et indiquer que la souris a 5 boutons. De plus, vous
devrez ajouter loption ZAxisMapping dans la section InputDevice de votre souris, et
lui donner la valeur 4 5 . Cette option permet de rediriger la rotation de la molette sur les
vnements des boutons 4 et 5 de la souris. De cette manire, vous pourrez utiliser votre molette
dans toutes les applications qui grent ces deux boutons.
10.2.4.6. Sections Device
Les sections Device contiennent les descriptions des cartes graphiques utilises. Ces descriptions
nindiquent absolument pas quel est le serveur X utilis : elles ne contiennent quune description
du matriel. Notez, encore une fois, quil est possible de dnir plusieurs sections Device , qui
pourront tre utilises dans les sections Screen associant les cartes graphiques aux moniteurs.
Tout comme les sections InputDevice , les sections Device doivent disposer dun iden-
ticateur unique, an de pouvoir les rfrencer dans les sections Screen qui les utilisent. Cet
identicateur est introduit par le mot cl Identifier et suivi dun nom indiqu entre guillemets.
Les sections Device peuvent contenir un certain nombre doptions permettant de caractriser la
carte graphique et de prciser ses capacits (mmoire, rapidit, adresse sur le bus PCI, etc.). Toutes
ces options sont bien entendu spciques aux diffrentes cartes graphiques, et ne seront pas dcrites
en dtail ici.
Loption la plus importante est sans doute loption Driver , qui permet dindiquer le pilote que le
serveur X devra charger pour piloter cette carte graphique. Cest ce niveau quil faut surtout ne pas
se tromper, puisque la moindre erreur ferait chouer le dmarrage du serveur X. En gnral, les pilotes
portent le nom du chipset utilis par la carte graphique, si bien quil nest pas difcile de dterminer la
valeur exacte utiliser. XFree86 fournit galement deux pilotes gnriques vga et vesa, permettant
respectivement de prendre en charge les cartes graphiques compatibles avec le standard VGA ou
compatibles avec le standard VESA 2.0. Sachez cependant que ces pilotes ne disposent daucune
acclration matrielle, et que leurs performances sont donc bien infrieures aux pilotes spcialiss
pour chaque carte graphique.
Vous trouverez ci-dessous un exemple de section Device typique :
Section "Device"
Identifier "Carte 1"
VendorName "CHAINTECH"
BoardName "TORNADO I7000"
# Cette option indique au serveur X quil doit
# charger le module i740_drv pour piloter cette
# carte graphique :
Driver "i740"
324
Chapitre 10. Installation de XWindow
# Cette option indique la quantit de mmoire
# vive dont cette carte dispose (en ko) :
VideoRam 8192
EndSection
Note : Les options des sections Device ne sont pas trs compliques utiliser. Cepen-
dant, quelques-unes peuvent poser des problmes lorsquon ralise des congurations multi-
ttes (cest--dire des congurations disposant de plusieurs crans). Dans la majorit des cas,
il faut installer plusieurs cartes graphiques dans le PC pour pouvoir utiliser plusieurs crans. En
gnral, on utilise une carte AGP et une ou plusieurs cartes PCI. Il va de soi quil faut que chaque
pilote utilise la bonne carte, aussi faut-il indiquer, dans chaque section Device , ladresse de la
carte dcrite par la section. Cette adresse est dnie laide de loption BusID . Cette option
permet de retrouver la carte graphique sur les diffrents bus systmes. Les cartes AGP utilisant
le mme mcanisme dadressage que les cartes PCI, on utilisera la syntaxe suivante :
"PCI:bus:priphrique:fonction"
o bus est le numro du bus PCI sur lequel se trouve la carte graphique, priphrique est
le numro du priphrique sur ce bus, et fonction est le numro de la fonction utiliser pour
accder ce priphrique. Vous pouvez utiliser la commande lspci pour afcher les caractris-
tiques des diffrents bus PCI de votre machine et dterminer les valeurs utilises par vos cartes
graphiques.
Certaines cartes graphiques haut de gamme disposent de plusieurs contrleurs vido et sont
donc capables de grer plusieurs crans. Pour ces cartes graphiques, le principe de fonction-
nement est le mme : il faut crire une section Device pour chaque contrleur vido existant.
Cependant, tant donn que toutes ces sections sadressent la mme carte graphique, il est
impossible de les distinguer par lintermdiaire de loption BusID . Dans ce cas, on utilise alors
loption Screen , suivie du numro du contrleur vido que la section dcrit. Ce numro doit
tre donn juste aprs loption Screen , sans guillemets. La numrotation des contrleurs
vido commence 0. Cest cette valeur qui est utilise pour toutes les cartes graphiques ne
disposant que dun seul contrleur vido.
10.2.4.7. Sections Monitor
Les sections Monitor contiennent les informations descriptives des crans. Notez quil est pos-
sible de dnir plusieurs sections Monitor , pour plusieurs crans potentiels. Cependant, chaque
section Screen devra utiliser un moniteur et un seul.
Les sections Monitor sont certainement les sections les plus importantes du chier XF86Config.
Elles contiennent en effet toutes les informations concernant les moniteurs et tous les paramtres des
modes graphiques utiliss par ces moniteurs. Ces informations sont utilises par le serveur X pour
programmer les signaux vido que la carte graphique envoie au moniteur. Il est donc vident que
chaque section Monitor est spcique un modle de moniteur donn, et que la dtermination des
valeurs qui doivent y tre crites requiert une bonne connaissance du fonctionnement de ce moniteur
et de ses caractristiques physiques. Vous trouverez une description gnrale du fonctionnement des
moniteurs dans les paragraphes qui suivent. Il est impratif de bien les assimiler si vous dsirez crer
ou modier une section Monitor , car si les informations qui y sont stockes sont errones, le
moniteur correspondant risque dtre gravement endommag.
Le principe de fonctionnement des tubes cathodiques utiliss dans les moniteurs est trs simple :
chaque instant, un faisceau dlectrons gnr par un canon lectrons vient frapper un point dune
325
Chapitre 10. Installation de XWindow
plaque phosphorescente situe juste derrire la vitre du moniteur. Lnergie cintique des lectrons
du faisceau est transforme en lumire par le phosphore en ce point, qui reste ainsi lumineux tant
que le faisceau frappe ce point. Comme un seul faisceau est utilis pour tous les points de la plaque
phosphorescente, il faut dplacer le faisceau de point en point pour pouvoir tous les clairer. Cela a
bien entendu pour consquence que les points ne restent lumineux que pendant un temps trs court.
Cependant, nous percevons la luminosit de ce point pendant un temps beaucoup plus long, en raison
de la rmanence des cellules de lil. Les points de lcran semblent donc tre tous allums en mme
temps, bien qu chaque instant un seul dentre eux est atteint par le faisceau dlectrons. Nous voyons
ainsi limage complte du moniteur.
Le dplacement du faisceau dlectrons est assur par un champ magntique gnr par des bobinages
magntiques larrire du tube cathodique. Le faisceau balaye lcran ligne par ligne, de gauche
droite (en regardant le moniteur de face). chaque fois quil atteint le bord gauche, il retourne rapi-
dement vers le dbut de la ligne suivante, sur le bord droit du moniteur. Ce retour se fait simplement
en modiant brusquement le champ magntique qui dirige le faisceau. Il va de soi que le faisceau
dlectrons est coup pendant ce retour de balayage, car sil ne ltait pas, on le verrait traverser
lcran de droite gauche et perturber ainsi limage. De plus, le champ magntique nest pas facile-
ment contrlable lorsque le retour du faisceau commence. Par consquent, il est ncessaire que ce re-
tour se fasse un certain temps aprs que le bord droit ait t teint. Si ce ntait pas le cas, limage serait
dforme prs des bords du moniteur. Le faisceau lectronique continue donc de balayer lcran sur
une petite zone aprs le bord de limage, sans mettre de lumire. Cette zone sappelle le blanking
horizontal.
De mme, le faisceau lectronique retourne rapidement en haut de lcran ds quil en atteint le bas.
Pour les mmes raisons que pour les retours de balayage horizontal, le faisceau doit tre teint un peu
avant et pendant la modication du champ magntique lors des retours de balayage vertical. La zone
ainsi parcourue par le faisceau aprs le bord de limage sappelle le blanking vertical.
Note : Il est possible dutiliser dautres mthodes de balayage que celle dcrite ci-dessus. En
particulier, les modes graphiques entrelacs ne suivent pas ce principe. Dans ces modes, seule-
ment une ligne sur deux est balaye chaque gnration dimage. Les lignes paires sont dabord
afches pour une premire image, puis les lignes impaires sont afches pour limage suivante.
Ces modes graphiques taient utiliss lorsque les moniteurs ntaient pas sufsamment rapides
pour afcher une image complte sans que lon puisse voir le balayage du faisceau dlectrons.
De nos jours, il est dconseill dutiliser ces modes, car limage a tendance trembler du fait de
lcart de luminosit alternatif entre les lignes paires et impaires de lcran.
Les limitations techniques de la technologie des tubes cathodiques imposent une limite suprieure
pour la vitesse de balayage, et une limite infrieure pour la dure des retours de balayage horizontal
et vertical, ainsi que pour la dure minimale du blanking. Les caractristiques techniques des tubes
sont donc souvent spcis en terme de frquences de balayage et de dures des signaux de synchro-
nisation. Les vieux moniteurs ne pouvaient supporter quun nombre limit de frquences de balayage,
que lon qualiaient alors de xes . De nos jours, les crans multisynchrones acceptent toutes les
frquences comprises dans une plage de valeur, et sadaptent donc aux frquences des signaux mis
par les cartes graphiques.
La frquence de balayage vertical utilise dans un mode graphique donn constitue le taux de rafra-
chissement de lcran, cest--dire le nombre de fois que limage de lcran est afche par seconde.
Il est vident quun taux de rafrachissement trop faible ne permet pas davoir une image agrable
regarder, car elle semble trembler ou clignoter. Un tube cathodique de bonne qualit est donc un
tube qui permet dutiliser de hautes frquences verticales. Comme il est ncessaire dafcher toutes
les lignes pour afcher une image complte, il va de soi quun bon tube doit galement tre capable
dafcher les lignes rapidement, et donc accepter des frquences de balayage horizontal leves. Typi-
326
Chapitre 10. Installation de XWindow
quement, les frquences de balayage horizontal sont environ mille fois plus leves que les frquences
de balayage vertical, puisque chaque ligne peut contenir environ mille pixels.
La sensibilit au taux de rafrachissement dpend des personnes et de lemploi que lon fait du tube.
Les tubes destins tre regards de loin peuvent utiliser des frquences beaucoup plus faibles que
les tubes de proximit. Ainsi, les tlvisions afchent 25 images par seconde (en fait, elles afchent
50 demi-images par seconde, car elles utilisent lentrelacement). En revanche, ce taux de rafrachis-
sement est trs insufsant pour les moniteurs dordinateurs, o la limite infrieure est de 60 Hz. Le
standard VESA exige des taux de 72 Hz ou plus pour que limage soit agrable regarder, mais
de nombreux crans supportent facilement 85 Hz ou plus de nos jours. Certaines personnes ne sont
cependant pas dranges par des taux aussi faibles que 60 Hz. Il est bon de savoir quel taux de rafra-
chissement vous convient, car un balayage insufsant peut fatiguer vos yeux, mme sans que vous en
soyez conscient. Et cette fatigue se traduit toujours un jour ou un autre par des maux de tte inexpli-
qus... Ne vous vantez donc pas de voir le balayage, cest un grave handicap par rapport ceux qui ne
le voient pas et qui donc ont moins de maux de tte que vous !
Vous pouvez utiliser la mthode suivante pour dterminer si le taux de rafrachissement est sufsant
pour vous. Commencez par afcher une image blanche sur la totalit de la surface visible de votre
moniteur. Puis rglez la luminosit du moniteur son maximum. Placez-vous ensuite de biais par
rapport votre moniteur, et regardez en face de vous. Concentrez ensuite votre attention sur limage
de lcran, sans le regarder directement (regardez-le en coin ). Normalement, vous devez percevoir
limage avec les cellules latrales de la rtine, qui donnent une image moins prcise que les cellules
centrales, mais qui sont plus sensibles aux mouvements (ces cellules nous servent en quelque sorte
dantennes). Ces cellules sont donc plus aptes percevoir les variations rapides de luminosit de
limage dues au balayage du faisceau lectronique. Si limage semble clignoter, cest que le taux de
rafrachissement de lcran est insufsant. Sinon, vous tenez le bon taux, ne le lchez pas.
Certaines caractristiques techniques des tubes cathodiques inuent sur les autres et permettent donc
de modier le taux de rafrachissement. Il est vident que si la dure du retour du faisceau est im-
portante, lcran ne peut pas gnrer beaucoup dimages par seconde. Par consquent, plus la dure
du retour de balayage est longue, moins bon peut tre le taux de rafrachissement. Il en va de mme
pour la dure du blanking. Les bons crans disposent donc souvent de retours de balayage rapides et
de courtes dures de blanking. Mais diminuer ces dures ncessite une lectronique plus prcise au
niveau du contrle des champs magntiques dirigeant le faisceau dlectrons. Il est galement vident
que la rsolution du mode graphique inue sur le taux de rafrachissement. Si la rsolution est leve,
il y a plus de pixels afcher au total sur chaque ligne de lcran. vitesse de balayage des pixels
xe, le temps ncessaire pour balayer une ligne est donc plus grand. Et comme il y a plus de lignes
afcher, le temps ncessaire pour gnrer une image complte est plus grand, et le taux de rafra-
chissement est plus faible. Donc, si le test dcrit dans le paragraphe prcdent vous indique que votre
taux de rafrachissement est trop faible, vous pouvez tenter de baisser la rsolution.
Note : Notez que la profondeur de couleur utilise nintervient absolument pas dans le taux de
rafrachissement. Cette profondeur nest un facteur limitant quau niveau de la carte graphique, qui
peut ne pas avoir assez de mmoire pour afcher un mode de grande rsolution avec toutes les
couleurs dsires ou ne pas avoir une lectronique assez rapide pour traiter toutes les donnes
une vitesse raisonnable.
Le signal vido mis par la carte graphique contient toutes les informations dont le moniteur a besoin
pour gnrer limage. Ces informations spcient bien entendu lintensit du faisceau dlectrons,
mais aussi les signaux de synchronisation qui contrlent les retours de balayage horizontal et vertical.
Ce sont les informations de synchronisation que les sections Monitor du chier XF86Config
contiennent. On comprend donc limportance de ces informations pour la qualit de limage, aussi
bien en terme de stabilit quen termes de taux de rafrachissement.
327
Chapitre 10. Installation de XWindow
Les sections Monitor sont constitues grosso modo de deux parties. La premire partie contient
les caractristiques gnrales de lcran, telles que son nom, son modle et le nom de son fabricant.
Elle contient galement les plages de frquences de balayage horizontal et vertical. La deuxime partie
contient les dnitions des modes graphiques, raison dune ligne par mode graphique utilisable. La
documentation de XFree86 appelle ces lignes des lignes de mode ( modelines en anglais). Il
est vident que les informations fournies dans les lignes de mode sont trs sensibles, et dterminent
tous les paramtres du mode graphique : rsolution, position et taille de limage sur lcran, taux de
rafrachissement.
La premire partie dune section Monitor ressemble ceci :
Section "Monitor"
Identifier "Moniteur 1"
# Marque et modle du moniteur (informations facultatives) :
VendorName "SONY"
ModelName "MULTISCAN 100ES"
# Plage de frquence horizontale (information capitale) :
HorizSync 30-70
# Plage de frquence verticale (information capitale) :
VertRefresh 50-120
Le mot cl Identifier permet de donner un nom la section Monitor . Ce sera ce nom que
lon utilisera plus loin dans la section Screen pour indiquer que lon dsire utiliser ce moniteur.
Les mots cls VendorName et ModelName permettent de donner la description du moniteur.
Les informations stockes ici nont aucun effet sur la conguration du moniteur et sont simplement
indicatives. En revanche, les plages de frquences horizontales et verticales indiques respectivement
aprs les mots cls HorizSync et VertRefresh sont dune importance capitale. Elles donnent
les plages de frquences auxquelles le moniteur peut travailler, et servent contrler la validit des
lignes de mode donnes dans la deuxime partie de la section Monitor . Il est donc important
de donner ici les valeurs exactes, que vous trouverez normalement dans la che technique de votre
moniteur (cette che est souvent imprime la n du mode demploi). Pour les moniteurs multisyn-
chrones, les plages de frquences utilisables peuvent tre donnes par leurs frquences minimale et
maximale, spares dun tiret. Les frquences xes peuvent tre spcies simplement avec une seule
valeur. Il est possible de spcier plusieurs frquences xes et plusieurs plages de frquences en les
sparant par des virgules. Lunit utilise pour les frquences horizontales est le kilohertz, et celle
utilise pour les frquences verticales est le Hertz.
La deuxime partie de la section Monitor contient les lignes de mode, raison dune ligne de
mode par mode graphique que le moniteur est capable dafcher. En gnral, une ligne de mode
ressemble ceci :
Modeline "1024x768" 92.96 1024 1064 1240 1352 768 768 778 802
mais il existe cette une autre syntaxe, beaucoup plus claire car elle diffrencie les diffrentes valeurs
donnes dans la ligne prcdente :
Mode "1024x768"
DotClock 92.96
HTimings 1024 1064 1240 1352
VTimings 768 768 778 802
EndMode
328
Chapitre 10. Installation de XWindow
La premire valeur indique entre guillemets dans les lignes de mode est le nom du mode graphique.
Comme on le verra plus tard, cest ce nom qui est utilis pour spcier les modes graphiques utili-
sables dans la section Screen . La deuxime valeur est la frquence de base des signaux mis par la
carte graphique. Cette vitesse est exprime en MHz et reprsente le nombre de pixels par seconde que
le faisceau lectronique du moniteur balaye. Les quatre valeurs suivantes xent les paramtres hori-
zontaux du mode graphique : rsolution horizontale, pixel partir duquel le signal de synchronisation
pour le retour de balayage horizontal commence, pixel auquel ce signal sarrte et longueur totale
de la ligne en pixel, blanking compris. De mme, les quatre dernires valeurs xent les paramtres
verticaux du mode graphique, savoir rsolution verticale, ligne de dbut et ligne de n du signal
de synchronisation pour le retour de balayage vertical, et nombre de lignes total du mode graphique.
On notera que les informations concernant le signal de synchronisation du balayage horizontal sont
toutes multiples de 8. Cette contrainte est impose par le matriel de la plupart des cartes graphiques.
Dautre part, lunit utilise pour ces valeurs est le pixel. Il faut donc se baser sur la frquence de base
indique au dbut de la ligne de mode pour les convertir en temps. Les informations concernant le
signal de synchronisation vertical, quant elles, sont exprimes en nombre de lignes. Elles peuvent
ne pas tre multiples de 8. La conversion en temps se calcule cette fois partir de la frquence de
base et de la longueur totale dune ligne horizontale pour ce mode graphique. Enn, il est possible
de rajouter des options complmentaires la n des lignes de mode pour prciser le fonctionnement
du mode graphique, laide du mot-clef Flags . Loption la plus courante tant sans aucun doute
Interlace , qui permet de crer des modes entrelacs. Loption Doublescan quant elle
permet de faire en sorte que chaque ligne est afche deux fois de suite. Elle permet de crer des
modes graphiques de faible rsolution, qui utilisent des frquences de balayage trop faibles pour les
moniteurs actuels. Vous pourrez trouver les autres options dans la page de manuel XF86Config.
La section Monitor se termine, comme toute section du chier XF86Config, par une ligne de
n de section :
EndSection
Comme vous vous en tes aperu, les donnes stockes dans les lignes de mode sont assez techniques.
Quelques explications complmentaires ne seront donc pas de trop pour comprendre linuence de
ces paramtres et pour crer de nouvelles lignes de mode.
Pour commencer, la frquence de base de la ligne de mode doit videmment tre gre par la carte
graphique. Vous pouvez dterminer la frquence de base maximale en regardant les informations
afches par le serveur X adapt cette carte lorsquil dmarre. Cette information est toujours juste,
mme si les lignes de mode crites dans votre chier XF86Config ne conviennent pas et que le
serveur X ne dmarre pas correctement. La ligne contenant cette frquence maximale est semblable
celle-ci :
Maximum allowed dot-clock: 163.000 MHz
Cette frquence de base peut tre gnre par la carte graphique, mais il nest pas certain quelle soit
supporte par le moniteur. En effet, les moniteurs ne sont pas capables de grer les frquences de base
au del dune certaine limite. La gamme de frquences quils acceptent est ce que lon appelle leur
bande passante. La frquence de base doit donc tre dans cette bande passante, cest--dire quelle
doit tre infrieure la frquence maximale que le moniteur peut grer. La bande passante de votre
moniteur est normalement indique dans sa che de spcications techniques. Si toutefois ce nest
pas le cas, vous pouvez vous faire une ide de la frquence la plus leve de cette bande passante en
regardant la rsolution maximale quil peut afcher et en consultant ce tableau :
329
Chapitre 10. Installation de XWindow
Tableau 10-1. Frquence maximale des moniteurs
Rsolution Frquence maximale
640x480 25
800x600 36
10254x768 65
1280x1024 110
1600x1200 185
Les valeurs des frquences indiques dans ce tableau sont les plus petites valeurs constates pour
lensemble des moniteurs grs par XFree86. On peut donc supposer que votre moniteur gre ces
frquences, et certainement mme de plus hautes.
La rsolution du mode graphique est donne par la premire des quatre valeurs des paramtres hori-
zontaux et verticaux dans la ligne de mode. Ainsi, dans la ligne de mode exemple donne ci-dessus,
la rsolution horizontale est de 1024 et la rsolution verticale est de 768. Sachez que vous tes parfai-
tement libre dutiliser des rsolutions non standards, en crivant les lignes de mode correspondantes.
Dans lexemple donn ci-dessus, il sagit simplement du mode graphique 1024x768. Notez, encore
une fois, que la profondeur de couleur nintervient absolument pas dans les paramtres du moniteur.
Ils ninterviennent que dans les composants de la carte graphique qui sont chargs de gnrer les
signaux vidos pour le moniteur.
La quatrime valeur des paramtres horizontaux donne la longueur totale des lignes physiques dans
ce mode. Cette longueur comprend bien entendu la partie visible de limage, mais galement la partie
due au blanking horizontal. Rappelons que le blanking est la partie balaye par le faisceau alors quil
est teint, ce qui comprend la partie balaye pendant la dure du signal de synchronisation horizontal.
Dans lexemple donn ci-dessus, le blanking a une longueur gale 1352-1024 pixels, soit 328 pixels.
La quatrime valeur des paramtres verticaux xe de mme le nombre de lignes total du mode, en
tenant compte des lignes du blanking vertical.
Comme vous pouvez le constater dans la ligne de mode exemple, le pixel auquel le signal de synchro-
nisation commence nest pas le dernier pixel visible. En effet, il y a 40 pixels dcart entre le dernier
pixel visible (en loccurrence, le pixel 1024) et le pixel auquel le signal de synchronisation horizontal
commence (le pixel 1064). Cet espace fait partie du blanking, il sert de marge pour viter les pertur-
bations dues au retour de balayage et pour positionner limage sur lcran. Cette zone noire se trouve
au del du bord droit de limage afche. Elle est suivie par la zone qui serait balaye pendant la
dure du retour de balayage si le faisceau poursuivait sa route au lieu de revenir sur le bord gauche.
Cette zone se termine au pixel indiqu par la troisime valeur (1240 dans notre exemple). Ce pixel est
donc toujours positionn sur le point le plus droite que le moniteur peut afcher. Par consquent, la
taille de la partie du blanking situ la droite de limage est gale au numro du pixel o le signal de
synchronisation horizontal se termine moins le nombre de pixels afchs. Dans notre exemple, cette
partie de blanking a une taille de 1240-1024 pixels, soit 216 pixels. La taille de la partie du blanking
horizontal situ la gauche de lcran est donc logiquement gale la longueur totale de la ligne
(1352) moins le pixel o le signal de synchronisation se termine (1240), ce qui donne 112 pixels.
Vous voyez ainsi que lon peut dcaler limage vers la gauche en augmentant les valeurs de dpart et
de n du signal de synchronisation. Inversement, on peut dcaler limage vers la droite en diminuant
ces valeurs.
Le mme raisonnement peut tre appliqu aux paramtres verticaux du mode graphique. Le blanking
vertical comprend les lignes balayes avant et aprs le signal de synchronisation, ainsi que les lignes
balayes pendant le temps o ce signal est gnr. La dernire ligne de ce signal est, encore une fois,
la ligne la plus basse que le moniteur peut afcher. On peut donc dplacer limage vers le haut ou
330
Chapitre 10. Installation de XWindow
vers le bas en jouant sur les valeurs de dpart et de n du signal de synchronisation vertical dans les
paramtres verticaux du mode graphique.
Figure 10-3. Paramtres des lignes de mode
En augmentant le nombre de pixels physiques pour chaque ligne et en conservant la mme rsolution,
la largeur de limage visible est rduite. En effet, la proportion de la partie visible de limage sur
la largeur totale de lcran est dautant plus faible que le nombre de pixels physiques des lignes est
grand. Le mme raisonnement peut tre appliqu sur les paramtres verticaux. Limage peut donc tre
agrandie ou rduite horizontalement et verticalement en jouant sur la longueur totale des lignes et sur
la hauteur totale de limage. Si lon veut que limage reste centre, il faut galement dcaler les points
de dbut et de n des signaux de synchronisation, pour que la proportion du blanking place de part
et dautre de limage reste constante.
Il faut bien comprendre que la modication des paramtres de synchronisation et de la longueur
totale de la ligne est soumise de fortes contraintes. Il faut sassurer que les dures des signaux
de synchronisation et du blanking restent dans les limites de ce que peut accepter le moniteur. De
plus, le nombre de points balays au total est videmment le produit de la longueur totale des lignes
et du nombre de lignes total du mode. frquence de base xe, cela revient dnir le taux de
rafrachissement, puisque plus il y a de pixels balayer dans chaque image, moins il est possible
dafcher dimages par seconde. Cela nest pas gnant si vous pouvez augmenter la frquence de base.
Par contre, si vous avez atteint la limite de votre carte graphique, ou la limite de bande passante de
votre moniteur, vous serez limit dans le taux de rafrachissement si vous devez rduire les dimensions
de limage afche.
Vous devez vous en doutez prsent : lcriture dune ligne de mode est un sport trs difcile. La
technique utiliser est itrative. Vous pouvez tourner en rond pendant un certain temps, si vous ne
savez pas vous y prendre. La premire des choses faire est de choisir la dimension de limage que
vous dsirez obtenir. Cette dimension va xer la largeur totale et le nombre de lignes total qui seront
utiliss pour ce mode graphique. Vous pouvez toujours partir des lignes de mode utilises pour les
modes graphiques VESA pour un moniteur semblable au vtre. Une fois que vous aurez ces valeurs,
vous pourrez essayer de faire monter le taux de rafrachissement en augmentant la frquence de base.
331
Chapitre 10. Installation de XWindow
Vous aurez peut-tre redimensionner et recentrer limage sur le moniteur. Les quatre contraintes
respecter lorsque vous augmentez la frquence de base sont bien entendu la dure du blanking
horizontal et vertical, la dure des signaux de synchronisation et les plages de frquences horizontales
et verticales acceptes par votre moniteur. Il est probable que vous aurez accrotre lcart entre les
valeurs de dbut et de n des signaux de synchronisation, car leur dure peut baisser dangereusement
lorsque la frquence de base augmente. Malheureusement, cela peut vous limiter dans la possibilit
de centrer limage sur votre moniteur. Une image dont les bords ne sont pas rectilignes ou pas nets
est un signe indiquant que le signal de synchronisation nest pas sufsamment long. Si vous ne vous
en sortez pas, cest que vous essayez datteindre un taux de rafrachissement trop lev.
Si vous dsirez fabriquer un mode graphique de rsolution non standard, vous ne trouverez pas for-
cment une ligne de mode pouvant servir de point de dpart. Dans ce cas, il va vous falloir crer
cette ligne de mode ex-nihilo. Vous trouverez dans le chier de documentation VideoModes.doc de
XFree86 les explications permettant de crer une ligne de mode correcte partir des caractristiques
de votre moniteur. Pour les moniteurs multisynchrones, la technique suivante peut tre utilise.
La premire tape est de trouver la bande passante de votre moniteur et les plages de frquences
horizontales et verticales utilisables par votre moniteur. Ces donnes sont trs souvent fournies dans
la documentation du moniteur. Par exemple, pour un moniteur Sony Multiscan 100ES, ces plages de
frquences sont les suivantes :
Horizontales (kHz) Verticales (Hz)
Frquence minimale 30 50
Frquence maximale 70 120
La deuxime tape est de choisir la rsolution que lon dsire utiliser. Supposons que lon veuille
utiliser une rsolution intermdiaire entre 1024x768 et 800x600 sur ce type dcran 15 pouces. Pre-
nons par exemple 904x678. Notez que la rsolution horizontale est divisible par 8, et que la rsolution
verticale est gale aux trois quarts de cette dernire. Ce rapport permet simplement de conserver la
proportion de 4/3 des crans dordinateurs. Pour pouvez cependant choisir un autre rapport si vous le
dsirez.
Vous devez ensuite dterminer les longueurs totales des lignes en pixels et le nombre total de lignes,
blanking compris. Cest cette partie qui est la plus difcile, elle ncessite de connatre les dures
minimales des signaux de synchronisation horizontaux et verticaux. Ces donnes sont hlas rare-
ment fournies par les fabricants. Heureusement, on peut sen passer en pratique, car tous les crans
cathodiques utilisent la mme technologie. En gnral, la longueur totale dune ligne est gale la
rsolution horizontale divise par 0,8, et le nombre total de lignes est gal la rsolution verticale
augmente de 5%. Pour notre mode graphique, le calcul est donc le suivant :
longueur totale des lignes = 904 pixels / 0,8 = 1130 pixels
hauteur totale de limage = 678 lignes * (1+5/100) =
678 lignes * 1,05 = 711,9 lignes.
La longueur totale des lignes nest pas multiple de 8, nous devons donc larrondir 1136. De mme,
la hauteur totale de limage doit tre arrondie 712 lignes.
Nous disposons prsent des premires et dernires valeurs des paramtres horizontaux et verticaux
de la ligne de mode. Les paramtres intermdiaires, qui xent le dbut et la n des signaux de retour
de balayage, doivent tre choisis de telle sorte que ces signaux commencent un peu aprs le dbut
du blanking et se terminent un peu avant le dbut de la gnration de limage suivante. En pratique,
332
Chapitre 10. Installation de XWindow
on peut couramment considrer quune marge de 32 40 pixels est sufsante pour les signaux de
synchronisation horizontaux, et quil faut 0 10 lignes pour les signaux de synchronisation verticaux.
Lcart entre le dbut et la n de ces signaux doit tre sufsamment grand pour garantir leurs dures
minimales exiges (mais a priori inconnues) par votre moniteur. Dans notre exemple, nous pouvons
donc choisir les paramtres suivants :
HTimings 904 944 1096 1136
VTimings 678 683 707 712
Il reste dterminer la frquence de base utiliser. Le but est bien entendu dobtenir le taux de
rafrachissement le plus lev possible, donc la frquence de base la plus leve, tout en restant dans
les limites de la carte graphique et du moniteur. La contrainte la plus forte en gnrale est la frquence
maximale de balayage horizontal.
Dans notre cas, lcran est capable de travailler 70 kHz au plus, cest--dire dafcher 70000 lignes
par seconde. Comme notre mode graphique utilise 712 lignes physiques au total, cela nous donne
un taux de rafrachissement de 70000/712, soit environ 98 images par seconde. Bien entendu, il faut
contrler que cette frquence est bien dans la plage de frquences verticales du moniteur. Cest bien
le cas ici, puisquil peut supporter des frquences allant jusqu 120 Hz. En gnral, il faut prendre la
plus petite de ces valeurs comme taux de rafrachissement initial.
Une fois le taux de rafrachissement dtermin, nous devons calculer la frquence de base utiliser.
Pour afcher 98 images de 710 lignes de 1125 pixels par seconde, nous calculons cette frquence de
la manire suivante :
98 * 712 * 1136 = 79,26 MHz
Encore une fois, il faut contrler que la carte graphique peut gnrer un signal de cette frquence
et que celle-ci est bien infrieure la bande passante du moniteur. Dans le cas contraire, il faudrait
encore une fois se limiter la plus petite de ces valeurs. La plupart des cartes graphiques rcentes
peuvent monter au moins jusqu 150MHz, et lcran Sony Multiscan 100ES a une bande passante
bien suprieure cette valeur. Nous pouvons donc conserver cette frquence de base, et obtenons
donc la ligne de mode suivante :
Mode "904x678"
DotClock 79.26
HTimings 904 944 1096 1136
VTimings 678 683 707 712
EndMode
Cette ligne de mode a peu de chances dtre satisfaisante sans retouches, mais elle peut servir de point
de dpart pour la recherche de la ligne de mode idale. En gnral, les paramtres tant choisis proches
de loptimum, limage sera bien trop grande ou dforme sur les bords. Vous devrez donc faire des
ajustements manuels pour vous rapprocher, petit petit, dune ligne de mode utilisable. Vous pourrez
utiliser lutilitaire xvidtune pour cela. Cet utilitaire est un utilitaire fourni avec XFree86, qui permet de
modier les dimensions et la position de limage interactivement. Cet utilitaire fonctionne directement
sous XWindow, et permet donc davoir un aperu de limage avec les paramtres modis. Vous
trouverez une description plus dtaille de la manire dutiliser xvidtune dans la Section 10.2.6.
333
Chapitre 10. Installation de XWindow
Seul le redimensionnement de limage modie le nombre total de lignes et leur longueur totale. En
particulier, la rduction de la taille de limage accrot la taille totale des lignes et leur nombre, ce qui
entrane la baisse du taux de rafrachissement. chaque fois que vous rduisez limage, vous pourrez
recalculer le taux de rafrachissement et la frquence de base ncessaire pour atteindre ce taux, tout
en veillant ne dpasser ni les limites de votre carte graphique, ni celles de votre moniteur.
Ainsi, aprs quelques modications de la ligne de mode dans xvidtune et rajustements de la fr-
quence de base, la ligne de mode suivante peut tre obtenue :
Mode "904x678"
DotClock 79.82
HTimings 904 920 1104 1144
VTimings 678 679 710 712
EndMode
Cette ligne de mode permet dobtenir un afchage correct en 904 par 678, avec un taux de rafra-
chissement de 97.99 Hz, ce qui est plus quhonorable. On constate que la premire ligne de mode
utilisait une dure de balayage vertical trop petite, ce qui provoquait des dformations sur les bords
de limage.
Si vous voulez approfondir le sujet, vous pouvez lire les formules mathmatiques donnant les relations
entre les diffrents paramtres techniques inuant sur la gnration des images dans lAnnexe C. Ces
formules sont donnes titre indicatif, elles ne vous donneront pas les caractristiques techniques de
votre cran. Encore une fois, je ne saurais trop vous recommander dutiliser les outils fournis avec
votre distribution...
10.2.4.8. Sections Modes
Gnralement, les lignes de mode sont dnies pour un moniteur donn, car lapparence de limage
dpend des caractristiques physiques de chaque moniteur. Par consquent, ces lignes sont dnies la
plupart du temps dans les sections Monitor . Cependant, il peut tre utile de regrouper toutes les
lignes de mode dun type de moniteur donn dans une section part, an de structurer et dorganiser
le chier XF86Config.
Pour cela, on crira des sections Modes , qui nauront donc pas dautre rle que de contenir une ou
plusieurs lignes de mode, et qui seront rfrences dans les sections Monitor des moniteurs qui
dsirent utiliser ces lignes de mode. Lintrt de regrouper toutes les lignes de mode dans une section
Modes apparat clairement ds que plusieurs sections Monitor utilisent les mmes lignes de
mode. Ce peut tre le cas pour des moniteurs dun mme fabricant ou possdant des caractristiques
techniques similaires.
Le format des sections Monitor est trs simple, puisquelles ne contiennent quun identicateur,
introduit comme laccoutume par le mot-clef Identifier suivi du nom de la section entre
guillemets, et les lignes de mode elles-mmes. La syntaxe de ces lignes est exactement la mme que
celle qui est utilise dans la section Monitor et ne sera donc pas dcrite plus en dtail ici. Vous
trouverez ci-dessous un exemple de section Modes :
# Exemple de section Modes :
Section "Modes"
Identifier "Modes Standards"
Modeline "640x480" 50.00 640 656 720 832 480 480 489 501
Modeline "800x600" 72.80 800 816 928 1040 600 600 610 626
Modeline "1024x768" 92.00 1024 1076 1252 1344 768 772 782 806
334
Chapitre 10. Installation de XWindow
EnsSection
10.2.4.9. Sections Screen
Les sections Screen permettent de regrouper les moniteurs et les cartes graphiques pour effectuer
lafchage des crans dun display, et dindiquer les modes graphiques que lon dsire utiliser parmi
tous les modes que le moniteur indiqu sait grer, pour chaque profondeur de couleur.
Les sections Screen sont, comme les sections Monitor , constitues de deux parties. La pre-
mire partie spcie les informations gnrales de lcran, savoir essentiellement la carte graphique
et le moniteur utiliser. La deuxime partie quant elle permet de prciser, pour chaque profondeur
de couleur utilisable avec cet cran, les rsolutions des modes graphiques utilisables ainsi que les
paramtres des rsolutions virtuelles. Voici trouverez ci-dessous un exemple de section Screen :
Section "Screen"
Identifier "Ecran 1"
Device "Carte 1"
Monitor "Moniteur 1"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Loption Identifier permet, comme dhabitude, de nommer la section Screen courante.
Le nom doit tre indiqu entre guillemets, la suite du mot cl Identifier . Cest ce nom qui
sera utilis dans les sections ServerLayout pour rfrencer les crans du display. Le mot-clef
Device indique la section Device utiliser pour obtenir les informations sur la carte gra-
phique qui gre lafchage de cet cran. Il doit tre suivi du nom qui a t spci aprs le mot-clef
Identifier dans la section Device correspondante. De mme, le mot-clef Monitor
indique la section Monitor utiliser pour obtenir les informations sur le moniteur courant. Enn,
le mot-clef DefaultColorDepth indique la profondeur de couleur utilise par dfaut au dmar-
rage de XWindow. Comme nous le verrons plus loin, une autre profondeur de couleur que celle-ci
pourra tre utilise en passant un argument sur la ligne de commande du serveur X.
Comme vous pouvez le voir, la section Screen contient une ou plusieurs sous-sections
Display . Ce sont ces sous-sections qui indiquent les paramtres de lcran spciques chaque
profondeur de couleur utilisable. Les sous-sections Display contiennent les informations
suivantes :
la profondeur de couleur considre, exprime en bits par pixels aprs le mot-clef Depth ;
335
Chapitre 10. Installation de XWindow
la liste des modes graphiques utilisables avec cette profondeur de couleur, rfrencs par le nom de
leur ligne de mode, aprs le mot-clef Modes . Plusieurs modes peuvent tre spcis, en donnant
leurs noms respectifs, spars par des espaces.
des informations complmentaires concernant les rsolutions virtuelles pour les modes dans les-
quels la rsolution logique de lcran est suprieure la rsolution rellement utilise. Ces para-
mtres indiquent la rsolution logique de lcran virtuel, ainsi que le positionnement de limage
afche par lcran physique dans cet cran virtuel. Vous trouverez de plus amples informations
sur ces options dans la page de manuel XF86Config.
10.2.4.10. Sections ServerLayout
Le dernier type de section, qui regroupe toutes les informations des sections vues prcdemment, est le
type des sections ServerLayout . Comme leur nom lindique, les sections de ce type fournissent
les informations concernant la disposition des crans dun display. Cependant, dans la plupart des cas,
les displays nont quun seul cran, et il est vident que la disposition de cet cran est triviale dans ce
cas.
Il peut exister plusieurs sections ServerLayout dans le chier XF86Cong. En effet, ce chier
peut tre utilis par plusieurs serveurs X qui peuvent tourner simultanment sur la mme machine
(que lon ait plusieurs cartes graphiques ou non). Chaque serveur X peut donc utiliser une section
ServerLayout . La section utilise par dfaut est la premire que le serveur X trouvera dans le
chier XF86Config, mais il est possible de lui demander den utiliser une autre laide dune option
en ligne de commande. Toutefois, encore une fois, la plupart des machines ne disposent que dun
seul cran, et mme si lon lance plusieurs serveurs X, il ny a ici besoin que dune seule section
ServerLayout .
Les sections ServerLayout indiquent surtout au serveurs X quels sont les priphriques dentre
utiliser (au moins un clavier et une souris) en plus de lcran ou les crans du display. Ce sont donc
ces sections qui dnissent compltement un display donn. Lexemple donn ci-dessous prsente
une section ServerLayout simple :
Section "ServerLayout"
Identifier "Serveur 1"
Screen "Ecran 1"
InputDevice "Clavier 1" "CoreKeyboard"
InputDevice "Souris 1" "CorePointer"
Option "BlankTime" "5"
EndSection
Les sections ServerLayout disposent dun nom qui permet de les identier. Ce nom est le nom
qui sera utilis dans la ligne de commande du serveur X si plusieurs sections ServerLayout
sont dnies. Il doit tre indiqu, comme dhabitude, la suite du mot-clef Identifier , entre
guillemets.
Les sections ServerLayout doivent ensuite indiquer au moins un cran pour le display quelles
dcrivent. Les crans sont introduits laide du mot-clef Screen , suivi de lidenticateur de
la section Screen utiliser. Si plusieurs crans doivent tre utiliss, il est possible de spcier
la position des crans les uns par rapport aux autres laide doptions complmentaires, qui sont
spcies la suite de lidenticateur de lcran. Ces options permettent de positionner les crans
relativement les uns aux autres, ou de manire absolue en prcisant leurs coordonnes dans le systme
336
Chapitre 10. Installation de XWindow
de coordonnes de lcran virtuel. Les options les plus simples utiliser sont les options RightOf,
LeftOf, Above et Below, qui permettent dindiquer respectivement que lcran courant est situ
droite, gauche, au dessus ou en dessous de lcran dont lidenticateur est spci juste aprs. Par
exemple, si lon veut rajouter un deuxime cran la section prcdente, et que cet cran doit tre
situ droite du premier cran, on ajoutera simplement la ligne suivante :
Screen "Ecran 2" RightOf "Ecran 1"
La section ServerLayout doit ensuite contenir au moins une rfrence un clavier et une
rfrence un priphrique de pointage. Ces rfrences sont introduites laide du mot-clef
InputDevice , suivie de lidenticateur de la section InputDevice utiliser. Le serveur X
doit interprter les vnements provenant des diffrents priphriques dentre correctement. Il faut
en particulier lui indiquer quels sont les priphriques principaux laide de loption CorePointer
pour la souris principale et loption CoreKeyboard pour le clavier principal. Seuls les priphriques
dentre principaux seront utiliss en tant que clavier et en tant que souris.
Enn, comme vous pouvez le voir dans lexemple donn ci-dessus, il est possible dutiliser des options
spciques pour chaque section ServerLayout . Ces options sont les mmes que celles utilises
dans la section ServerFlags . Vous pouvez donc ici spcier une autre valeur que celles indiques
dans cette section, an de prciser le comportement dun serveur spcique. Dans lexemple donn
ci-dessus, lconomiseur dcran a t rgl pour sactiver au bout de 5 minutes.
10.2.5. Informations utilises lors du dmarrage de
XFree86
Les informations stockes dans le chier de conguration XF86Config sont utilises par XFree86
pour dterminer la manire dont lafchage doit se faire. Lorsque le serveur X dmarre, il commence
par rechercher la section ServerLayout quil doit utiliser pour dterminer les principales options
du display. Par dfaut, il utilisera systmatiquement la premire section ServerLayout du chier
XF86Config. Cependant, il est possible de lui demander den utiliser une autre, laide de loption
de ligne de commande -layout, suivie de lidenticateur de la section utiliser.
Le serveur X initialise alors tous les crans du display et prend en charge les priphriques dentre.
Pour chaque cran, il choisit la profondeur de couleur indique dans la variable DefaultDepth de
la section Screen et tente de lutiliser. Cependant, il est possible de choisir une autre profondeur
de couleur laide de loption -depth, suivie de la profondeur de couleur utiliser, spcie en
bits par pixels. Remarquez que dans le cas des congurations plusieurs cran, il nest possible de
spcier quune seule profondeur de couleur. Il faut donc que toutes les sections Screen des
crans utiliss contiennent une sous-section Display pour la profondeur de couleur choisie.
Une fois la profondeur de couleur dtermine, le serveur X choisit pour chaque cran la premire rso-
lution indique dans la liste des modes de la sous-section Display dont la profondeur de couleur
correspond celle utilise. Il tente alors de passer ladaptateur graphique dans ce mode graphique, en
utilisant pour cela la ligne de mode correspondante cette rsolution pour piloter le moniteur.
Il est possible, lorsque XWindow fonctionne, de changer cette rsolution avec les combinaisons de
touches CTRL+ALT+PLUS et CTRL+ALT+MINUS (PLUS et MINUS tant les touches + et - du pav
numrique). Ces deux combinaisons de touches permettent respectivement de passer dune rsolution
la suivante ou la prcdente dans la liste des modes spcis dans la sous-section Display .
Pour chaque mode choisi, la ligne de mode correspondante la rsolution de ce mode est utilise pour
gnrer les signaux destination du moniteur.
337
Chapitre 10. Installation de XWindow
Note : La rsolution virtuelle de lcran nest pas modie lorsquon change de rsolution
physique. Elle est toujours gale la plus grande des rsolutions disponibles dans la section
Display utilise. Seule la rsolution physique de lafchage est modie. Vous pourrez
dplacer la zone dafchage en dplaant la souris, et faire dler ainsi tout lcran.
Il est impossible de changer la profondeur de couleur utilise sans redmarrer le serveur X. Les
seuls changements accepts sont ceux concernant les rsolutions graphiques listes dans la
sous-section Display pour la profondeur de couleur courante.
10.2.6. Utilisation de xvidtune
xvidtune est un petit utilitaire permettant de rgler les paramtres dafchage de chaque mode gra-
phique. Grce lui, vous pourrez ajuster la taille de limage horizontalement et verticalement, ainsi
que sa position par rapport aux bords du moniteur. xvidtune se lance simplement, en tapant son nom
en ligne de commande :
xvidtune
Ds quil dmarre, il commence par afcher une fentre davertissement, pour vous prvenir quun
usage par une personne non avertie peut provoquer de srieux dommages au moniteur. En effet, il
permet de modier les paramtres de synchronisation horizontale et verticale du moniteur pour ajuster
limage. Si vous choisissez de mauvais paramtres, vous pouvez sortir des spcications techniques de
votre moniteur, ce qui pourrait fort bien lendommager. Fort heureusement, la plupart des moniteurs
modernes disposent de mcanismes de scurit qui les empchent de gnrer limage lorsque ces
paramtres sont incorrects. Par consquent, il est assez rare davoir des problmes avec cet utilitaire,
dautant plus quil effectue des contrles avant toute tentative douteuse. Vous pouvez donc valider en
toute conance, mais soyez malgr tout averti des risques potentiels. Rappelons que le serveur X peut
tre arrt nimporte quel moment laide de la squence de touches CTRL+ALT+BACKSPACE.
Lcran de xvidtune se compose de quatre parties. La partie suprieure gauche permet de rgler les
paramtres horizontaux du mode graphique, savoir la largeur de limage et sa position par rapport
aux bords verticaux du moniteur. La partie suprieure droite permet de rgler les paramtres verticaux,
savoir la hauteur et la position par rapport aux bords horizontaux du moniteur. La partie infrieure
droite contient les informations essentielles sur le mode vido courant. Enn, la partie infrieure
gauche contient les boutons permettant de choisir les actions effectuer.
Les paramtrages horizontaux et verticaux du mode graphique peuvent tre modis trs simplement.
Les boutons Left et Right permettent de centrer limage horizontalement, et les boutons
Wider et Narrower permettent dajuster sa largeur. De mme, les boutons Up et Down
inuent sur le centrage vertical, et les boutons Shorter et Taller ajustent sa hauteur.
Vous pouvez tester les modications apportes tout instant laide du bouton Test . Il est mme
recommand dessayer rgulirement les paramtres choisis et de procder pas pas. Lorsque les
paramtres conviennent, ils peuvent tre appliqus immdiatement laide du bouton Apply .
Si vous dsirez gnrer une ligne mode valide pour la conguration courante, par exemple an de
modier votre chier de conguration XF86Config, vous pouvez cliquer sur le bouton Show . La
ligne de mode sera afche sur le terminal partir duquel vous avez lanc xvidtune. Vous pourrez
alors la recopier dans le chier XF86Config la place de la ligne de mode du mode graphique en
cours dutilisation.
338
Chapitre 10. Installation de XWindow
Il est possible de changer le mode graphique courant en cliquant sur les boutons Next et Prev .
Ils permettent de passer en revue tous les modes graphiques qui ont t enregistrs dans le chier
XF86Config par XF86Setup. Une fois que vous aurez ajust tous les modes graphiques et que vous
les aurez enregistrs laide du bouton Apply , vous pourrez quitter xvidtune en cliquant sur le
bouton Quit . Notez que le bouton Apply valide les choix en cours, mais ne les enregistre
pas dans le chier XF86Config. Vous devez reporter manuellement dans le chier XF86Config les
paramtres du mode courant, tels quils sont prsents par la commande Show .
10.3. Utilisation du pilote frame buffer du noyau
Si par malheur votre carte graphique nest gre par aucun des pilotes de XFree86 (cas relativement
exceptionnel), vous serez sans doute oblig dutiliser le pilote vesa. Ce pilote permet dutiliser toutes
les cartes compatibles avec le standard VESA 2.0 (cest--dire la plupart des cartes graphiques, mais
il existe des exceptions notables).
Il existe une alternative ce pilote, qui se base sur les fonctionnalits frame buffer du noyau
de Linux. Cette fonctionnalit permet dutiliser Linux compltement en mode graphique, en four-
nissant un accs linaire direct la mmoire vido de la carte graphique grce au chier spcial de
priphrique /dev/fb0. Il existe un pilote XFree86 pour le frame buffer du noyau, qui permet donc
de dmarrer le serveur X en sappuyant compltement sur le noyau. Lavantage du frame buffer du
noyau est que mme les consoles en mode texte feront leur afchage en mode graphique (cela est
aussi un inconvnient du point de vue des performances). En revanche, vous ne pourrez pas changer
de rsolution une fois que le systme aura dmarr.
Pour accder la mmoire vido, le noyau se base galement sur linterface de programmation du
standard VESA 2.0, qui est gre par le BIOS de la plupart des cartes graphiques rcentes. Cela
signie galement que vous ne disposerez pas dacclration matrielle en gnral, sauf pour quelques
cartes graphiques courantes reconnues par le noyau.
10.3.1. Conguration du noyau et installation du pilote
La mise en uvre du pilote pour le frame buffer se fait videmment dans la conguration du noyau.
Les options activer sont toutes dans le menu Console drivers . En plus de loption
VGA text console , vous devez imprativement activer Video mode selection
support . Cette option vous permettra de choisir le mode VESA utiliser lors du dmarrage de
lordinateur. Vous devrez galement cocher loption Support for frame buffer devices
(EXPERIMENTAL) (cette option ne vous sera propose que si vous avez valid loption Prompt
for development and/or incomplete code/drivers du menu Code maturity
level options ). Les options suivantes du gestionnaire du frame buffer du noyau devront
galement tre actives :
VESA VGA graphics console (cette option permet dutiliser un mode graphique VESA
indiqu au dmarrage pour lafchage de la console) ;
Advanced low level driver options (NEW) (cette option vous permet de prciser la
structure de la mmoire vido dans les diffrents modes graphiques utiliss avec le frame buffer) ;
8 bpp packed pixels support , 16 bpp packed pixels support , 24
bpp packed pixels support et 32 bpp packed pixels support (ces options
339
Chapitre 10. Installation de XWindow
correspondent aux diffrentes structures de la mmoire vido qui sont utilises par les modes
graphiques VESA) ;
Select compiled-in fonts (NEW) (cette option vous permet de choisir les polices de
caractres qui seront utilises par la console) ;
VGA 8x8 font et VGA 8x16 font (ces deux polices sont les polices standards utilises
par la console).
Il faut ensuite vrier que le chier spcial de priphrique /dev/fb0 a t cr par le programme
dinstallation de votre distribution. Si ce nest pas le cas, vous devez le crer laide de la commande
mknod. Le numro de priphrique majeur de ce chier est 29. Le numro mineur utiliser est le
numro du priphrique. Par exemple, le chier spcial de priphrique /dev/fb0 porte les numros
29 et 0, le chier /dev/fb1 porte les numros 29 et 1, etc. Ces chiers sont tous de type caractre, la
ligne de commande pour crer un de ces chiers est donc la suivante :
mknod fbn c 29 n
o n est le numro du chier spcial de priphrique crer.
Il est galement recommand de crer un lien symbolique /dev/fb vers /dev/fb0 an dassurer la
compatibilit avec de vieux programmes utilisant ce nom pour accder au chier spcial de priph-
rique du gestionnaire du frame buffer du noyau.
Une fois ces oprations ralises, vous devez compiler le noyau et linstaller, en suivant la mthode
dcrite dans la partie dcrivant la compilation du noyau. Lors du redmarrage du systme, vous pour-
rez passer loption suivante au noyau pour prciser le mode graphique VESA utiliser :
vga=mode
o mode est le numro du mode graphique dsir. Les numros valides sont indiqus dans le tableau
donn ci-dessous :
Tableau 10-2. Numros des modes graphiques VESA
Couleurs Rsolution
640x480 800x600 1024x768 1280x1024 1600x1200
256 769 771 773 775 796
32768 784 787 790 793 797
65536 785 788 791 794 798
16,8M 786 789 792 795 799
Si tout se passe correctement, votre systme devrait dmarrer dans le mode graphique indiqu et
afcher le logo de Linux (un pingouin nomm Tux , pour ceux qui ne le sauraient pas encore).
Lorsque vous aurez dtermin le mode graphique qui vous convient, vous pourrez modier le chier
de conguration de Lilo et spcier le numro de ce mode dans la ligne vga=... . De cette
manire, votre systme redmarrera automatiquement dans ce mode graphique.
340
Chapitre 10. Installation de XWindow
10.3.2. Conguration du serveur X
Les manipulations prcdentes nont pas grand intrt si vous ne dsirez travailler quavec la console.
En effet, lafchage en mode graphique est beaucoup plus lent que lafchage en mode texte, et
lafchage du pingouin Tux au dmarrage ne vous apportera pas grand chose. Cest pour cela que
ltape suivante est normalement de congurer le serveur X de XFree86 pour le pilote frame buffer,
an dutiliser lenvironnement graphique XWindow et son systme de fentrage.
La conguration du serveur X est lmentaire. Il faut avant tout sassurer que lon dispose bien du
pilote permettant au serveur X dutiliser linterface /dev/fb0. Ce pilote se nomme fbdev, et utilise
un autre module spcique au systme dexploitation nomm fbdevhw. Il faut ensuite modier ou
crer le chier XF86Config pour utiliser ce pilote. Les seules sections modier pour utiliser le
pilote frame buffer sont la section Device et la section Screen .
La section Device est rduite sa plus simple expression, puisque tous les paramtres sont
xs par le mode VESA choisi au dmarrage dune part, et parce que le serveur X ne saurait pas les
exploiter dautre part. Il suft donc simplement dindiquer que le pilote utiliser est le pilote fbdev,
et de donner ladresse de la carte vido sur le bus laide du mot-clef BusID :
Section "Device"
Identifier "Carte 1"
Driver "fbdev"
BusID "PCI:1:5:0"
EndSection
Vous pourrez dterminer ladresse de votre carte graphique laide de la commande lspci, ou en
demandant au serveur X de scanner les bus PCI en lui passant loption -scanpci en paramtre :
XFree86 -scanpci
La section Screen est elle aussi trs simplie, puisque le seul mode graphique utilisable est le
mode choisi au dmarrage de la machine. La liste des modes utilisables peut donc tre franchement
omise, ou se rduire la valeur spciale default :
Section "Screen"
Device "Carte 1"
Monitor "Moniteur 1"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "default"
EndSubSection
EndSection
Notez quil est impratif que la profondeur de couleur de la sous-section Display soit la mme
que celle du mode VESA indiqu au dmarrage. Prenez garde ne pas utiliser une profondeur de
couleur trop leve, car cela dgraderait encore un peu plus les performances. Par ailleurs, comme
aucun mode nest spci dans la section Screen , les lignes de mode des sections Monitor
sont prsent facultatives. Ces sections peuvent donc tre simplies galement.
Une fois ces modications ralises, vous devrez pouvoir dmarrer XWindow simplement avec la
commande startx. Vous disposerez alors de toutes les fonctionnalits de XWindow, avec des per-
341
Chapitre 10. Installation de XWindow
formances quelques peu infrieures celles que vous auriez avec un serveur X adapt votre carte
graphique. Il est conseill de suivre lactualit de XFree86 an de savoir si un tel serveur est en cours
de dveloppement et, si oui, den rcuprer une version nale ds que possible.
10.4. Conguration des terminaux X
Nous avons vu dans le chapitre de conguration du systme de base que la connexion des utilisateurs
se faisait par lintermdiaire dun terminal. La plupart des terminaux sont en mode texte, mais il est
galement possible dutiliser des terminaux graphiques sous XWindow. Les terminaux de ce type sont
logiquement appels terminaux X .
Si le niveau dexcution par dfaut de votre systme est le niveau associ au dmarrage sous XWindow
(ce niveau est en gnral 3, 4 ou 5 selon les distributions), XWindow est lanc ds le dmarrage
de la machine et la demande de connexion se fait via un cran graphique. Dans ce cas, vous vous
connecterez directement par lintermdiaire de ce terminal X. Le principe de fonctionnement des
terminaux X nest pas exactement le mme que celui que nous avons vu pour les terminaux virtuels
(voir la Section 6.6). En effet, les terminaux X ne sont pas grs par les processus getty et login
classiques, mais par un programme spcique nomm xdm (abrviation de langlais X Display
Manager ).
10.4.1. Principe de fonctionnement de xdm
Contrairement ce quil fait avec les processus getty, init ne lance quun script dinitialisation de
XWindow lorsquil passe dans le niveau dexcution correspondant. Ce script a pour tche essentiel-
lement le dmarrage du dmon xdm. Cest ce dmon qui est en charge de grer les connexions sur tous
les serveurs X quil peut trouver, en proposant la fentre de login et en permettant ainsi lutilisateur
de sidentier et sauthentier.
En gnral, xdm lance lui-mme le serveur X de la machine locale, et surveille son excution.
Lorsque lutilisateur se dconnecte, le serveur X se rinitialise, et xdm afche une nouvelle fentre
de connexion. Cependant, xdm est galement capable dutiliser des serveurs X distants (qui sont donc
dj lancs), an de permettre la connexion dutilisateurs sur des terminaux X dports. Enn, il est
possible de le congurer pour quil se signale sur un rseau, an que les serveurs X fonctionnant
sur ce rseau puisse lui demander une connexion. Les serveurs X capable de se connecter xdm de
cette manire doivent comprendre le protocole XDMCP (abrviation de langlais XDM Control
Protocol ). Comme on le voit, la souplesse de ce mcanisme est tout simplement exceptionnelle.
Note : Pratiquement, le processus xdmse duplique pour chaque terminal X dont il gre la connex-
ion. Ainsi, chaque processus xdm propose la connexion et surveille la dconnexion de lutilisateur
sur un terminal X donn. Tous les processus xdm sont lancs par le processus xdm initial qui a
t lanc par les scripts de changement de niveau dexcution. Ce mcanisme est donc com-
pltement transparent pour lutilisateur.
La plupart des environnement graphiques modernes (comme KDE et GNOME) fournissent leur
propre gestionnaire de display. Ces gestionnaires sont toutefois compatibles avec xdm, et leur
conguration se fait de la mme manire.
342
Chapitre 10. Installation de XWindow
10.4.2. Conguration de xdm
Le comportement de xdm est compltement dni dans ses chiers de conguration, qui sont en
gnral placs dans le rpertoire /etc/X11/xdm/. Ces chiers dcrivent chacun un des aspects du
comportement de xdm. Le chier de conguration principal est le chier xdm-config, qui contient
les rfrences sur les autres chiers de conguration.
10.4.2.1. Serveurs X locaux
La dnition des serveurs X qui nutilisent pas le protocole XDMCP et que xdm doit prendre
en charge directement est ralise dans le chier de conguration rfrenc par la ligne
DisplayManager.servers du chier xdm-config. Par dfaut, ce chier est le chier
/etc/X11/xdm/Xservers. Il contient une ligne par serveur, chaque ligne ayant la syntaxe
suivante :
display type [commande]
o display est le nom du display utiliser, type est le type de serveur X (serveur local ou distant),
et commande est la commande excuter pour lancer le serveur sil est local. Le display indiqu
sera celui qui sera utilis pour dnir la variable denvironnement DISPLAY, et doit donc utiliser
la syntaxe normale des displays. Les deux types de serveurs disponibles sont local , pour les
serveurs de la machine locale que xdm doit lancer lui-mme, et foreign , pour les serveurs
distants sur lesquels xdm doit afcher la fentre de demande de connexion (ils doivent donc tre dj
lancs). La ligne de commande utiliser pour le lancement du serveur ne doit tre spcie que pour
les serveurs de type local .
Les serveurs X peuvent prendre un certain nombres de paramtres en ligne de commande pour leur
dmarrage. Vous en trouverez la liste complte dans la page de manuel Xserver et dans la page de
manuel XFree86. Les options les plus intressantes dans le cadre du lancement du serveur X par
xdm sont celles permettant de dnir le display que le serveur aura en charge et le terminal virtuel
quil devra utiliser pour effectuer son afchage. Notez bien que le display doit tre le mme que celui
donn xdm. Ces deux options sont passes directement la suite du nom de lexcutable du serveur
X lancer :
/usr/X11R6/bin/X display vtNN
o vtNN est le nom du terminal virtuel utiliser (vt01 pour /dev/tty01, vt02 pour /dev/tty02,
etc.).
Ainsi, si lon veut faire en sorte que xdm lance automatiquement deux sessions X sur les terminaux
virtuels 11 et 12, en leur affectant respectivement les displays :0.0 et :1.0, on devra placer ces deux
lignes dans son chier de conguration Xservers :
:0 local /usr/X11R6/bin/X :0 vt11
:1 local /usr/X11R6/bin/X :1 vt12
Note : La spcication du terminal virtuel utiliser est facultative. Si aucun terminal nest indiqu,
le serveur X utilisera le premier terminal quil trouvera. Cependant, il est plus sr de toujours
indiquer le terminal utiliser, car le noyau ne cre les terminaux qu la demande, lorsquun
processus dsire y accder. Or les serveurs X ne cherchent pas en crer de nouveau. Si tous
les terminaux virtuels existants sont dj utiliss, le serveur X tentera donc de sen approprier
un, sans se proccuper du programme qui lutilise ce moment. Le fait dindiquer manuellement
le terminal utiliser vous vitera donc des problmes assez curieux, tels que ceux qui peuvent
343
Chapitre 10. Installation de XWindow
survenir si les terminaux utiliss par les serveurs X le sont pas dj par un getty par exemple.
De plus, cela permet galement dviter, si on lance plusieurs serveurs X sur la mme machine,
quils naccdent ensemble au mme terminal virtuel lors de leur initialisation.
Il est recommand par ailleurs de basculer sur chaque terminal virtuel sur lequel un serveur X est
lanc avant de se connecter an de les forcer crer leur terminal. En effet, si vous ne procdez
pas ainsi, il est possible que vous ayez le temps de vous connecter dans une session X avant que
les autres terminaux X naient ni de sinitialiser. Lorsque ceux-ci dmarreront, ils changeront le
terminal virtuel courant et lafchage de votre bureau risque dtre corrompu. Si cela se produit,
ne vous inquitez pas : votre session X na pas plant. Assurez-vous seulement que vous vous
trouvez bien sur le bon terminal virtuel, et faites en sorte que lcran soit rafrachi (par exemple,
changez de bureau virtuel ou dplacez une fentre sur lcran).
Remarquez galement que les chiers de conguration fournis avec XFree86 ne prvoient pas
lutilisation de plus de deux sessions X par dfaut. Si daventure vous dsirez en utiliser plus,
vous devrez complter le chier de conguration xdm-cong avec les lignes suivantes :
DisplayManager._2.authorize: true
DisplayManager._3.authorize: true
etc.
Chaque ligne indique que le display correspondant (:2 pour DisplayManager._2.authorize ,
etc.) doit utiliser les mcanismes de scurit de XWindow. Nous verrons ces mcanismes dans
la section suivante.
Mez-vous enn de la consommation mmoire requise par chaque session X. Les serveurs X
sont des programmes gourmands en mmoire, car ils doivent manipuler des images. Les perfor-
mances du systme risquent donc de se dgrader sensiblement si vous lancez plusieurs serveurs
X. Noubliez pas quaprs tout, XWindow est un systme de fentrage et que la plupart des ges-
tionnaires de fentres X donnent la possibilit dutiliser des bureaux virtuels. En pratique, deux
sessions X devraient sufre, an de se connecter sous deux utilisateurs diffrents (un utilisateur
normal et lutilisateur root par exemple).
Enn, notez que le changement dun terminal X un autre terminal virtuel peut provoquer
quelques problmes en ce qui concerne ltat du clavier. En effet, lafchage des diodes (Verrou
numrique et Majuscule en particulier) nest pas rtabli correctement, mme si le clavier
continue fonctionner correctement. Cela peut surprendre quelque peu la premire fois que lon
rencontre ce problme. Il suft dappuyer deux fois de suite sur les touches Verr Num et Caps
Lock (cest--dire la touche de verrouillage des majuscules) an de rtablir ltat correct de ces
diodes. Remarquez galement que les serveurs X mmorisent ltat des terminaux virtuels lors
de leur dmarrage, et neutralisent chaque basculement vers un terminal en mode texte les
ventuels changements de police de caractres.
10.4.2.2. Serveurs X utilisant XDMCP
Comme nous lavons dit plus haut, xdm est galement capable de se signaler sur un rseau laide du
protocole XDMCP, an de permettre aux serveurs X distants de raliser une connexion sur la machine
o il est lanc. De cette manire, le lancement dun serveur X sur une machine du rseau permettra
dobtenir la fentre de connexion votre machine Linux.
xdm est capable de rpondre aux demandes de connexion directes des serveurs X distants (remar-
quez que dans ce cas, xdm est serveur de connexions pour les serveurs X des postes clients. Faites
bien attention la terminologie client/serveur ici !). Cela suppose que chaque poste client connaisse
ladresse des machines qui utilisent xdm. Cette information peut faire partie de la conguration du
poste client, mais elle peut galement tre dtermine dynamiquement. Pour cela, le serveur X du
344
Chapitre 10. Installation de XWindow
poste client met une requte XDMCP en mode broadcast sur le rseau (cest--dire destination
de tout le monde). Chaque machine sur laquelle xdm fonctionne rpondra ce client, et le serveur
X proposera ainsi la liste des machines sur lesquelles une connexion est ralisable via xdm. Ainsi,
lutilisateur du poste client pourra choisir le serveur sur lequel il dsire se connecter, et le processus
xdm de ce serveur lui enverra la fentre de login.
En ralit, tous les serveurs X ne sont pas capables de grer les rponses reues de plusieurs processus
xdm provenant de plusieurs machines la suite de lenvoi dune requte en mode broadcast. Par
ailleurs, il nest pas toujours possible dutiliser le mode broadcast, car les paquets de ce type peuvent
trs bien ne pas tre routs lors de la traverse dun passerelle. Par consquent, xdm offre galement la
possibilit dinterroger les machines du rseau local en rponse une requte de connexion indirecte.
Le serveur X reoit en rponse le rsultat de la requte effectue par broadcast, et lutilisateur peut
choisir la machine laquelle il dsire accder.
La conguration de xdm pour le protocole XDMCP se fait dans le chier identi par la ligne
DisplayManager.accessFile du chier xdm-config. Par dfaut, le chier ainsi rfrenc
est le chier Xaccess du rpertoire /etc/X11/xdm/. La syntaxe de ce chier est trs simple. Il
contient des rgles indiquant le comportement de xdm lorsquil reoit une requte de connexion de
la part dun serveur X. Ces rgles sont dnies pour des groupes de machines. Les machines sont
identies par leur nom ou leur adresse IP, plusieurs machines pouvant tre spcies par une mme
rgle grce aux caractres gnriques classiques * et ?. Il est galement possible dexclure une
machine ou un groupe de machines en prxant le nom du caractre de ngation !.
Il existe quatre types de lignes dans le chier Xaccess. Le premier type permet simplement
dindiquer que les connexions directes ou en mode broadcast provenant dune machine sont toutes
acceptes. Ce sont les lignes les plus simples, puisquil suft simplement dindiquer la machine ou le
groupe de machines. Par exemple, la ligne suivante :
*.localnet.org
indique que les demandes de connexion provenant de toutes les machines du domaine
localnet.org sont acceptes. Il est possible de faire en sorte que xdm ne rponde quaux
demandes de connexion directes simplement en ajoutant le mot cl NOBROADCAST la suite de la
ligne. Ainsi, si la machine termX3.localnet.org doit pouvoir se connecter directement,
mais ne doit pas recevoir de rponse de notre machine, on ajoutera la ligne suivante dans le chier
Xaccess :
termX3.localnet.org NOBROADCAST
Le deuxime type de ligne permet de spcier le comportement de xdm pour les demandes de
connexion indirectes. Ces lignes contiennent toujours le nom de la machine ou du groupe de ma-
chines, mais ce nom est suivi de la liste des machines auxquelles xdm doit faire suivre la demande de
connexion du serveur X. Par exemple, supposons que la machine termX2.localnet.org ne soit
pas capable deffectuer des requtes en mode broadcast, et que lon veuille quelle puisse se connecter
sur les serveurs s5.localnet.org , s11.localnet.org et s13.localnet.org . On
devra alors ajouter la ligne suivante dans le chier Xaccess :
termX2.localnet.org s5.localnet.org s11.localnet.org \
s13.localnet.org
345
Chapitre 10. Installation de XWindow
Le troisime type de ligne permet de lancer un programme nomm chooser et qui va propo-
ser la liste des serveurs lutilisateur du serveur X qui demande se connecter. Ce programme
est trs utile pour les serveurs X qui ne sont pas capables de proposer ce choix lutilisateur. La
syntaxe de ces lignes est trs simple, puisquil suft de faire prcder les noms des serveurs par le
mot cl CHOOSER. Si lon reprend lexemple prcdent, la ligne de conguration pour le terminal X
termX2 deviendrait :
termX2.localnet.org CHOOSER s5.localnet.org s11.localnet.org s13.localnet.org
La liste des serveurs qui suit peut tre assez longue, et il peut tre utile de faire en sorte que le
programme chooser effectue une requte en mode broadcast pour le compte du serveur X qui nen
nest pas capable. Il suft pour cela de remplacer la liste des serveurs par le mot cl BROADCAST .
Ainsi, la ligne suivante :
termX4.localnet.org CHOOSER BROADCAST
signie simplement que lorsque le serveur X de la machine termX4.localnet.org se connecte
au processus xdm local, celui-ci lance le programme chooser. Ce dernier lance une requte en broad-
cast sur le rseau an de dterminer la liste des machines excutant le processus xdm. Une fois quil a
obtenu cette liste, il lafche sur le display gr par le serveur X qui sest connect. De cette manire,
lutilisateur peut choisir la machine sur laquelle il va se connecter. Le serveur X est mis en relation
avec le processus xdm de cette machine, et la fentre de login est enn propose lutilisateur.
Le quatrime type de ligne permet de dnir des macros de remplacement pour grer les listes de
noms de machines plus simplement. La dnition dune macro se fait avec la syntaxe suivante :
%nom liste
o nom est le nom de la macro dnir, et liste est la liste des machines quelle reprsente. Il est
possible dutiliser des macros dans les dnitions de macros.
Note : Le protocole XDMCP utilise le port 117 du protocole UDP. Vous pourrez donc ajouter la
ligne suivante dans votre chier /etc/services, si elle ne sy trouve pas dj :
xdmcp 117/udp
Notez galement que vous ne pourrez pas tester votre conguration en utilisant linterface rseau
loopback. En effet, xdm vrie la validit des adresses sources des paquets quil reoit, et il
refuse par dfaut tout paquet provenant de ladresse 127.0.0.1. Si vous dsirez malgr tout utiliser
XDMCP sans rseau rel, vous pourrez utiliser linterface rseau dummy. Cette interface peut
tre cre en activant loption Dummy net driver support du menu Network device
support .
10.4.2.3. Paramtrage du serveur X pour utiliser le protocole XDMCP
Lcriture du chier Xaccess ne reprsente que la partie serveur du travail de conguration du proto-
cole XDMCP. En effet, il faut encore indiquer aux serveurs X distants quel processus xdm il doivent
tenter de se connecter lors de leur dmarrage. Bien entendu, cela dpend fortement du serveur X uti-
346
Chapitre 10. Installation de XWindow
lis, qui peut tre quelconque. Par exemple, le serveur X peut trs bien fonctionner sur une machine
Windows. Par consquent, seule la syntaxe des serveurs de XFree86 sera dcrite ici.
Les serveurs X de XFree86 utilisent des options en ligne de commande pour dterminer comment
ils doivent se comporter leur dmarrage. Lorsquils sont lancs directement par xdm (cest--dire
lorsquils sont lancs en local, avec les options indiques dans le chier Xservers), ils nont pas besoin
doptions spciques car ils nutilisent pas XDMCP dans ce cas. En revanche, si lon dsire les lancer
manuellement (ou dans un script dinitialisation), on devra utiliser lune des options suivantes :
-query permet de demander une connexion directe sur une machine donne. Le nom de la machine
doit tre spci la suite de loption ;
-indirect permet de demander une connexion indirecte sur une machine donne. Le nom de
cette machine doit tre spci la suite de loption. La liste des machines qui a t indique dans
le chier Xaccess sera retourne, ou bien le programme chooser sera lanc ;
-broadcast permet de demander au serveur X deffectuer une requte de connexion en broadcast
sur le rseau.
Les serveurs de XFree86 ne sont pas capables de proposer une liste de machines lutilisateur. Ils
prennent systmatiquement la premire machine quils trouvent. Vous ne contrlerez donc pas la
machine sur laquelle la connexion sera faite si vous utilisez loption -broadcast. Cest pour cela
quil est recommand dutiliser le programme chooser dans le chier de conguration Xaccess et de
congurer les serveurs pour faire des demandes de connexion indirectes.
10.4.2.4. Fichiers dinitialisation de sessions
xdm fournit la possibilit deffectuer des actions lorsque divers vnements concernant la session
XWindow en cours ont lieu. Par exemple, il est possible de raliser un traitement particulier pour
linitialisation de lenvironnement dun serveur X, pour xer lenvironnement de lutilisateur qui se
connecte, et pour effectuer le mnage lorsquil ferme sa session. Toutes ces actions sont effectues
dans des scripts qui sont rfrencs par des lignes du chier xdm-config.
La ligne DisplayManager.DISPLAY.setup , o DISPLAY est le nomdu display (_0 pour :0, _1
pour :1, etc.), rfrence un script qui est excut au nomde lutilisateur root avant que la fentre de lo-
gin ne soit prsente. Le chier par dfaut utilis par XFree86 est le chier /etc/X11/xdm/Xsetup.
Cest donc dans ce script que vous pourrez mettre des commandes dinitialisation spciques pour
prparer le login.
De la mme manire, la ligne DisplayManager.DISPLAY.startup rfrence le script
Xstartup par dfaut. Ce chier est excut sous le compte root juste aprs lauthentication de
lutilisateur. Cest ici que lon pourra par exemple enregistrer la connexion de lutilisateur dans le
systme.
La ligne DisplayManager.DISPLAY.session rfrence quant elle le script Xsession, qui
est excut aprs Xstartup, mais au nom de lutilisateur cette fois. Ce script prend gnralement
en charge le lancement des programmes ncessaires la gestion de la session de lutilisateur. Par
exemple, il est possible dy placer les commandes de lancement du gestionnaire de fentres ou du
gestionnaire de bureau.
Enn, la ligne DisplayManager.DISPLAY.reset rfrence le script Xreset du rpertoire
/lib/X11/xdm/, qui est excut au nom de lutilisateur root lorsque la session X se termine. Vous
pouvez donc excuter les tches ncessaires pour faire le mnage cet endroit, comme par exemple
le dsenregistrement de la connexion de lutilisateur dans le systme.
347
Chapitre 10. Installation de XWindow
Tous ces scripts sont lancs sans paramtres, sauf le script Xsession. Ce script peut en effet recevoir
des paramtres fournis par le gestionnaire de connexions (xdm, kdm ou autre), qui permettent de
reprsenter les choix que lutilisateur a fait pour sa connexion dans la fentre de login. Par exemple,
le premier paramtre de ce script est souvent le nom du gestionnaire de fentres utiliser. Notez que
le nom failsafe rfrence un mode dgrad, et nest normalement utilis que quand les autres
gestionnaires de fentres disponibles ne se lancent pas correctement.
Les scripts lancs au nom de lutilisateur root (Xsetup et Xreset) sont excuts dans un envi-
ronnement minimal. La valeur de la variable denvironnement PATH pour ces scripts est dtermi-
ne par la valeur de la ligne DisplayManager.DISPLAY.systemPath du chier de congu-
ration xdm-config. De mme, le script Xsession est excut avec la variable denvironnement
PATH xe la valeur spcie par la ligne DisplayManager.DISPLAY.userPath du chier
xdm-config. Si vos scripts de gestion des connexions ne fonctionnent pas correctement, cest sans
doute un problme li lenvironnement.
En pratique, ces chiers de scripts de gestion des connexions sont fournis par votre distribution et vous
ne devriez donc pas avoir y toucher. Vous pouvez toutefois y faire quelques modications si vous
estimez que les actions effectues ne vous conviennent pas. En particulier, certaines distributions
nenregistrent pas lutilisateur qui commence une nouvelle session. Cette opration est ncessaire,
parce que xdm nest pas un processus de login classique et ne le fait pas automatiquement (il nutilise
pas de terminal pour faire la connexion). Vous aurez pour cela utiliser lutilitaire sessreg fourni avec
XWindow. Cet utilitaire permet denregistrer un utilisateur avec loption -a et de le supprimer avec
loption -d. Vous devrez donc typiquement placer une ligne telle que celle-ci :
sessreg -a -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $LOGNAME
dans le chier Xstartup, an denregistrer les utilisateurs qui commencent une session XWindow,
et une autre ligne telle que celle-ci :
sessreg -d -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $LOGNAME
dans le chier Xreset, an de les supprimer lorsquils terminent cette session.
10.4.3. Paramtrage des terminaux X
La conguration des terminaux X comprend un certain nombre de points qui vont de lajustement
du nombre de couleurs et de la rsolution la disposition du clavier, en passant par les paramtres
de la souris et lconomiseur dcran. Heureusement, nous avons dj vu comment nous pouvions
contrler un grand nombre de ces paramtres. Par exemple, la rsolution graphique, ainsi que le
nombre de couleurs et la disposition du clavier, sont dnis dans le chier de conguration gnral
de XFree86 XF86Config. Nous verrons donc ici comment modier des paramtres qui tiennent plus
de lergonomie que de la conguration de base.
10.4.3.1. La commande xset
Ces paramtres peuvent souvent tre xs lors du dmarrage du serveur X, ou dynamiquement avec
la commande xset. Les paramtres que lon peut xer avec xset sont trs nombreux, et seuls les plus
utiles seront dcrits ici. Veuillez consulter la page de manuel xset pour plus de dtails.
Loption dpms permet de xer les temps dattente avant la mise en veille du moniteur. Sachez que
la mise en veille constitue de loin le meilleur conomiseur dcran, et que les conomiseurs logiciels
du type ballet de lignes sont trs jolis mais ne servent rien. Pire, ils peuvent ralentir la machine, ce
348
Chapitre 10. Installation de XWindow
qui est inadmissible si vous lutilisez en tant que serveur (heureusement, les conomiseurs dcran
logiciels se lancent gnralement avec des priorits trs faibles, an de ne pas perturber les autres
processus).
Cette option prend de un trois paramtres, qui reprsentent respectivement le temps avant le passage
en mode conomie dnergie du moniteur, le temps avant le passage en mode veille, et le temps avant
lextinction complte du moniteur. Ces temps sont exprims en secondes, la valeur nulle permettant
de dsactiver cette fonctionnalit. Ainsi, la commande suivante :
xset dpms 0 0 600
permet dteindre lcran au bout de dix minutes dinactivit.
Ces temps peuvent galement tre xs dans le chier de conguration XF86Config, o ils sont
exprims en minutes, laide des mots cls StandbyTime , SuspendTime et OffTime .
Ces mots cls doivent tre placs dans la section ServerFlags du chier de conguration.
Cependant, les serveurs X nactivent ces fonctionnalits que pour les moniteurs capables de grer le
standard DPMS. Ces moniteurs doivent donc tre signals laide de la ligne suivante :
Option "DPMS" "On"
dans la section Monitor qui les dnit.
Note : Les valeurs des temps dattente que vous pouvez xer dans le chier de conguration
XF86Config peuvent tre crases par les valeurs dnies dans la conguration de votre ges-
tionnaire de bureau. Vous devrez donc vrier ces paramtres si les modications que vous faites
dans le chier XF86Config ne sont pas prises en compte ou si lconomie dnergie reste dsac-
tive malgr la prsence de loption DPMS dans la section Monitor de votre moniteur.
Une autre option importante de la commande xset est loption fp, qui permet dajouter et de
supprimer des chemins de rpertoires de polices de caractres. Pour ajouter un rpertoire, il suft
dutiliser loption +fp et de faire suivre le chemin de ce rpertoire. La suppression dun rpertoire
se fait de la mme manire, avec loption -fp. Par exemple, pour ajouter le rpertoire de polices
/usr/X11R6/lib/X11/fonts/100dpi/ la liste des rpertoires de polices du serveur, il suft de
taper la commande suivante :
xset +fp /usr/X11R6/lib/X11/fonts/100dpi
De plus, comme nous lavons dj vu plus haut, les chemins des rpertoires de polices de caractres
peuvent tre xs statiquement laide du mot cl FontPath de la section Files du chier
de conguration XF86Config.
Enn, loption q de xset vous permettra de visualiser lensemble des paramtres en cours dutilisation.
10.4.3.2. Conguration de la disposition du clavier
Nous avons vu dans le chapitre de conguration du systme de base le fonctionnement du clavier
sous Linux. Les applications qui lisent les donnes provenant du pilote clavier de la console peuvent
travailler au niveau ASCII, au niveau keycode ou au niveau scancode. Les serveurs X font partie des
logiciels qui prfrent la troisime solution, ce qui signie quils interprtent eux-mmes le ux de
scancodes provenant du clavier.
349
Chapitre 10. Installation de XWindow
La raison de ce choix est que XFree86 est une implmentation portable du systme XWindow pour
PC. Cela signie quil est prvu pour fonctionner sur plusieurs systmes dexploitation de type Unix
et fonctionnant sur larchitecture compatible PC. Par consquent, il ne pouvait pas se baser sur des
keycodes, qui sont videmment dpendant du systme utilis.
Linconvnient en revanche est que cela impose que les serveurs X dnissent un mcanisme parallle
de gestion des touches du clavier, qui permette de modier la disposition des touches et de dnir le
type de clavier utilis. Plusieurs mcanismes sont utilisables, cependant, il semble que ce qui est
le plus utilis actuellement est le mcanisme Xkb (abrviation de langlais X KeyBoard ).
Ce mcanisme permet de dnir un grand nombre de donnes concernant le clavier, puisquoutre
lemplacement des touches, il fournit la gomtrie du clavier. Ainsi, toute application le dsirant peut
dterminer la forme du clavier et en dessiner une reprsentation dle.
Malheureusement, le protocole Xkb ne prvoit pas la possibilit de dnir de nouvelles touches avec
leurs scancodes. La gestion des codes reus du clavier nest en effet pas paramtrable. Par consquent,
il est impossible dutiliser des claviers exotiques si ceux-ci ne sont pas reconnus par XFree86.
Le protocole Xkb utilise les chiers de conguration stocks dans le rpertoire
/usr/X11R6/lib/X11/xkb/. Ce rpertoire contient un certain nombre de sous-rpertoires,
dont chacun est relatif un des aspects de la conguration du clavier. Le rle des principaux
sous-rpertoires est dtaill dans le tableau suivant :
Nom du
rpertoire
Fonction
geometry/ Contient les chiers de description de la gomtrie des claviers. Ces chiers
peuvent tre utiliss par les applications pour obtenir une reprsentation
graphique du clavier.
keycodes/ Contient les chiers de dnitions des keycodes X du clavier. Les keycodes
X ont la mme fonction que les keycodes de Linux : donner un nom unique
chaque touche. Cependant, ils diffrent des keycodes de Linux en ce sens
quils ne sont pas dnis partir des scancodes du clavier, mais partir de
codes numriques gnrs par le serveur X. Ce mcanisme suppose que le
serveur X connaisse tous les scancodes envoys par les claviers. Comme il est
impossible de dclarer de nouvelles squences de scancodes au niveau du
serveur X, on ne peut pas complter les dnitions de clavier existantes pour
prendre en charge dventuelles nouvelles touches.
symbols/ Contient les dnitions des plans de clavier ou, autrement dit, les associations
entre les keycodes X et les symboles obtenus lors de lappui sur les touches.
rules/ Contient les dnitions des modles de clavier de XFree86. Ces modles de
clavier sont utiliss pour simplier la dnition des claviers dans le chier de
conguration XF86Config.
keymaps/ Contient les dnitions des principaux claviers connus. Une dnition de
clavier comprend entre autres la dnition des keycodes, des touches
modicatrices et des symboles affects aux keycodes.
Il est probable que vous nayez pas modier un seul des chiers de ces rpertoires, car ils sont
correctement dnis par dfaut. Le seul chier qui peut tre intressant est le chier fr du sous-
rpertoire symbols/. En effet, cest dans ce chier que vous trouverez la dnition des symboles
affects chaque touche pour un clavier franais, en fonction des modicateurs (ALT, CTRL, etc.)
actifs lors de lappui sur la touche. Le principe de fonctionnement de ce chier est semblable aux
plans de claviers de Linux : pour chaque keycode, un ensemble de symboles peuvent tre dnis. Ces
symboles sont indiqus entre accolades (caractres { et }), en deux jeux de symboles entours
350
Chapitre 10. Installation de XWindow
de crochets (caractres [ et ]). Le premier jeu de symboles indique les symboles accessibles
directement et en utilisant la touche majuscule, et le deuxime jeux dnit les symboles accessibles
avec la combinaison de la touche AltGr.
Par exemple, la touche du chiffre 3 au dessus des lettres Z et E est dnie comme suit dans le
chier de dnition du clavier franais (chier fr) :
key <AE03> { [ quotedbl, 3 ],
[ numbersign, sterling ] };
Cela signie que la touche dont le keycode est <AE03> (cest--dire celle la quatrime de la
deuxime range de touches du clavier) gnre les symboles " et 3 selon que la touche
majuscule est utilise ou non, et les symboles # et respectivement en minuscule ou en
majuscule et avec la touche AltGr enfonce.
Si vous regardez le chier du clavier franais, vous constaterez que toutes les touches ne sont pas
dnies. La raison de cela est que ces chiers utilisent par dfaut les affectations de touches du clavier
amricain standard. Par consquent, seules les diffrences ont t rednies dans ce chier.
Vous pourrez ventuellement modier certaines affectations de touches si vous le dsirez. Ce peut
tre ncessaire si vous dsirez homogniser les combinaisons de touches entre la console Linux et
XWindow. Par exemple, il peut tre utile de rednie le comportement de la touche E pour quelle
renvoie le symbole Euro (caractre ) en combinaison avec la touche AltGr. Pour cela, vous pourrez
utiliser la conguration suivante dans le chier de clavier utilis :
key <AD03> { [ e, E ],
[ currency, E ] };
Note : Notez que la touche Euro est dj accessible par dfaut sur les claviers franais avec la
touche des monnaies (Livre Sterling, Dollar).
Une autre touche qui peut tre rednie pour un clavier franais est la touche O, an de lui faire
gnrer les symboles o e dans lo franais ( et ) au lieu des symboles o barrs ( et )
norvgiens, qui ne sont pas trs utiles en franais. Notez que les noms de symboles utiliss
dans les tables dencodage correspondent aux symboles de lencodage ISO 8859-1, et que par
consquent, vous devrez utiliser les noms de symboles onehalf et onequarter pour
reprsenter les caractres et . En effet, ces symboles sont les symboles de lencodage ISO
8859-1 qui ont le mme code que les symboles et dans lencodage ISO 8859-15 (cest le
cas de ce document).
Sachez enn que lobtention de ces symboles est bien entendue assujettie lutilisation dune
police de caractres utilisant lencodage ISO 8859-15.
Comme vous avez d le constater, un certain nombre de plans de clavier sont dnis en standard
dans XFree86. De mme, plusieurs gomtries et dnitions de keycodes sont fournies dans les sous-
rpertoires geometry/ et keycodes/ du rpertoire /usr/X11R6/lib/X11/xkb/. Le serveur X
utilise les chiers qui sont rfrencs dans la section Keyboard du chier de conguration
XF86Config. Comme on la dj vu plus haut dans ce chapitre, le mot cl XkbLayout per-
met de dnir le plan de clavier utiliser. Ainsi, si vous spciez le plan de clavier fr la suite
de ce mot cl, le chier de dnition des associations keycodes-symboles utilis sera le chier fr
du rpertoire /usr/X11R6/lib/X11/xkb/symbols/. Les autres options sont xes par les mots
cls XkbRules et XkbModel . Le premier mot cl indique quel est le chier utiliser pour
351
Chapitre 10. Installation de XWindow
dnir les modles de claviers de XFree86. Ce chier est localis dans le sous-rpertoire rules/, et
fournit les valeurs par dfaut utiliser pour chaque modle de clavier. Le deuxime mot cl indique
le modle de clavier utiliser. Ainsi, il nest ncessaire de spcier que trois paramtres pour dnir
le clavier sous XFree86 : le chier contenant la dnition des modles de clavier, le modle lui-mme
et le chier dnissant la disposition des touches.
Note : Vous pouvez galement dnir tous les paramtres du clavier dans le chier XF86Config.
Cette technique est plus complique et nest pas ncessaire pour dnir un clavier franais, elle
ne sera donc pas dcrite ici. Vous trouverez plus de renseignements ce sujet dans la page de
manuel XF86Config.
10.5. Paramtrage des applications et ressources X
Du fait que toutes les applications X font appel au serveur X pour effectuer leur afchage, et au
gestionnaire de fentres pour dnir lapparence et la disposition de leurs fentres, elles sont soumises
aux options gnrales de ces deux programmes. Elles peuvent cependant tre paramtres elles-aussi,
et leur comportement peut tre personnalis souhait par chaque utilisateur.
Pour cela, XWindowfournit un mcanisme standard pour toutes les applications, an quelles puissent
grer leurs options de conguration de manire uniforme. Ce mcanisme se base sur des paramtres
grs par le serveur X, que lon appelle des ressources X. La plupart des applications utilisent ces
ressources pour stocker leurs paramtres de conguration, et le fait que ce soit le serveur X qui cen-
tralise leur gestion assure une certaine cohrence entre les applications. En gnral, les ressources
X dcrivent essentiellement les aspects visuels des applications, comme par exemple les polices de
caractres utilises, les couleurs et lpaisseur des traits. Cependant, les applications peuvent parfai-
tement utiliser les ressources pour enregistrer des paramtres qui leurs sont propres. Le serveur X
ninterprte en aucune manire les ressources utilises par les applications, il ne fait que les mettre
disposition des applications.
Le serveur X gre les ressources dans une base de donnes qui est initialise lors de son dmarrage :
la X Ressource DataBase ( xrdb en abrg). Cette base de donnes est initialise lors du d-
marrage du serveur partir de chiers de conguration au format texte, que lon peut donc diter et
modier aisment. Le serveur X utilise deux jeux de chiers lors de son initialisation : les chiers
de conguration par dfaut des applications dune part, et le chier de prfrences personnelles de
chaque utilisateur dautre part. Les chiers de conguration des applications sont normalement pla-
cs dans le rpertoire /usr/X11R6/lib/X11/app-defaults/. Les applications y copient leurs
propres chiers lors de leur installation. Le nom de chaque chier correspond au nom de lapplication
laquelle il appartient, ce qui permet de retrouver aisment le chier de conguration dune appli-
cation donne. Le chier de prfrences personnelles de chaque utilisateur, quant lui, se place dans
son rpertoire racine et porte le nom .Xresources.
Les chiers de ressources des applications sont lus en premier, en gnral dans les scripts
dinitialisation de XWindow. En revanche, le chier de prfrences personnelles dun utilisateur nest
lu que lors de louverture dune session X par cet utilisateur. Lorsquune ressource prsente dans le
chier de conguration par dfaut dune application est rednie dans le chier de prfrences
personnelles dun utilisateur, la valeur utilise est bien entendue celle de lutilisateur. Ainsi, chacun
peut rednir les valeurs par dfaut des ressources de toutes les applications quil utilise. La plupart
des applications peuvent galement prendre des options en paramtres de ligne de commande, qui
352
Chapitre 10. Installation de XWindow
permettent de xer les valeurs de certaines ressources. Ces options prvalent sur les valeurs dnies
dans les chiers de conguration des applications et de prfrences personnelles des utilisateurs.
Vous pourrez vous inspirer du contenu des chiers de conguration des applications pour paramtrer
vos applications. Pour cela, il vous sufra simplement de recopier les dnitions des ressources qui
vous intressent dans votre chier .Xresources, et de tester le rsultat avec diffrentes valeurs.
Laffectation dune valeur une ressource se fait avec la syntaxe suivante :
ressource : valeur
o ressource est le nom de la ressource, et valeur est la valeur lui affecter.
Les noms de ressources sont structurs de manire hirarchique. Ils sont en effet constitus dun cer-
tain nombre de composantes spares par des points (caractre .). La premire composante qualie
lapplication elle-mme, et porte son nom. Il est dusage de mettre la premire lettre de ce nom en
majuscule, et si cette lettre est un X, de mettre galement la deuxime lettre du nom en majuscule
(beaucoup dapplications X ont en effet un nom commenant par un X). Les composantes suivantes
dnissent un sous-ensemble de paramtres apparents dans lensemble des paramtres dtermin par
les composantes prcdentes. Enn, la dernire composante du nom de ressource constitue le nom du
paramtre lui-mme.
Par exemple, le nom de ressource suivant :
XApplication.mainWindow.background
qualie la couleur darrire plan (proprit background ) de la fentre principale (proprit
mainWindow ) de lapplication XApplication . Notez que les deux premires lettres du nom
de la ressource sont en majuscules ici, car la premire lettre du nom de lapplication est elle-mme un
X majuscule.
Note : Les chiers de ressources utilisent des noms de couleurs prdnies pour dnir les
couleurs des diffrentes parties des applications. Vous pourrez trouver la liste de ces noms de
couleurs ainsi que leurs dnitions dans le chier /usr/X11R6/lib/X11/rgb.txt. Vous pouvez
galement dnir vos propres couleurs avec la syntaxe rgb:R/V/B , o R reprsente la
portion de rouge de la couleur, V reprsente la portion de vert, et B la portion de bleu.
Ainsi, lensemble des paramtres des applications X est organis un peu comme sont organiss les
chiers dans une arborescence de rpertoires. Lanalogie ne sarrte pas l : il est possible de carac-
triser un ensemble de ressources grce des caractres gnriques. Par exemple, en utilisant une
toile (caractre *) comme sparateur la place du point dans un nom de ressource, toutes les res-
sources dont le nom comprend les deux composantes seront slectionnes, que ces deux composantes
soient adjacentes ou spares dautres composantes intermdiaires. Par exemple, le nom de ressource
suivant :
XApplication*background
qualie la couleur darrire plan de toutes les fentres de lapplication Xapplication .
De mme, le caractre gnrique point dinterrogation (caractre ?) permet de remplacer une com-
posante par un nom quelconque. Le nom de ressource suivant :
XApplication.?.background
353
Chapitre 10. Installation de XWindow
reprsente donc toutes les ressources comportant les composantes XApplication et
background , spares par une composante de nom quelconque.
La structure des noms de ressources dune application nest pas due au hasard. Les paramtres sont re-
groups soit par fonctionnalit, soit par thme, soit par appartenance la mme partie de lapplication.
En gnral, les noms de ressources utiliss par les applications sont simples comprendre. Vous trou-
verez des exemples de noms de ressources dans les chiers de ressources des applications.
Vous pouvez obtenir la liste exhaustive des ressources dune application avec lutilitaire appres. En
fait, cet utilitaire permet dobtenir la liste des noms des ressources appartenant une branche de
larborescence des ressources. Cet utilitaire sutilise selon la syntaxe suivante :
appres branche
o branche est le nom de la branche que lon veut explorer.
Comme la base de donnes des ressources est initialise au dmarrage du serveur X et louverture
de la session X, les modications que vous pourrez apporter votre chier de ressources personnelles
ne seront pas prises en compte immdiatement. Pour cela, vous devez demander la relecture de la base
de donnes explicitement et relancer les applications concernes. Cette opration peut tre effectue
laide de loutil xrdb (abrviation de langlais X ressource DataBase ). En fait, cet outil permet
deffectuer diverses oprations sur la base de donnes des ressources.
Loption -merge est certainement celle que vous utiliserez le plus. Elle permet de mettre jour les
valeurs des ressources avec celles dcrites dans un chier. La syntaxe utilise est la suivante :
xrdb -merge fichier
o fichier est le nom du chier contenant la dnition des ressources (gnralement, il sagit de
votre chier .Xresources).
Loption -load permet deffectuer le mme travail, mais la base de donnes est vide au pralable.
Cette option permet donc de rinitialiser compltement le contenu de la base de donnes avec le
contenu du chier pass en paramtre. Sa syntaxe est la mme que celle de loption -merge.
Loption -remove permet de vider la base de donnes et de supprimer toutes les ressources que vous
auriez pu dnir au pralable. Elle sutilise selon la syntaxe suivante :
xrdb -remove
Enn, loption -query permet de lister lensemble des ressources existantes.
10.6. Gestion de la scurit sous XWindow
XWindow neffectue pas de contrle daccs sur les oprations demandes par un processus connect
un serveur X. Cela signie que tous les processus qui ont accs un display y ont un accs total.
Par exemple, un processus peut parfaitement faire une prise dcran et rcuprer tous les vnements
provenant du clavier. Il va de soi que ce genre de processus pose un problme de scurit majeur, aussi
XWindow considre-t-il que seuls les processus lancs sur la machine locale au nom de lutilisateur
courant ont le droit de se connecter au serveur X. Cela protge donc le display de lutilisateur contre
les malversations de personnes mal intentionnes.
Cependant, cette restriction est assez forte, parce quelle va vous empcher de lancer un programme
graphique sous un autre nom dutilisateur. Par exemple, vous ne pourrez pas lancer un programme
ncessitant les droits administrateur et dont le bit setuid nest pas positionn. En effet, une fois que
354
Chapitre 10. Installation de XWindow
vous vous serez identi en tant que root avec la commande su, les programmes que vous lancerez le
seront au nom de lutilisateur root, et le serveur X refusera la connexion. Un autre cas dcole o cette
restriction peut tre gnante est le lancement dun programme graphique sur une machine distante.
La situation est encore plus grave, car cette fois la demande de connexion au serveur X ne provient
pas de la machine o il sexcute, et na aucune chance daboutir.
XWindow fournit donc les outils ncessaires pour contrler le niveau de scurit en cours. Classique-
ment, le serveur X utilise deux techniques pour contrler la validit des demandes de connexion des
clients. Le premier mcanisme de contrle daccs est relativement grossier, puisquil se base sim-
plement sur les adresses des machines. Le deuxime mcanisme a t introduit ultrieurement an de
permettre des contrles plus ns. Les contrles se font alors laide dun mcanisme de cls prives,
que seuls les clients autoriss connaissent.
10.6.1. La commande xhost
La commande xhost permet de xer le niveau des contrles daccs bass sur les adresses de ma-
chines. Comme on la vu, le serveur X naccepte les connexions que de la machine locale. Vous
pouvez cependant lui indiquer daccepter toutes les connexions provenant dune autre machine avec
une commande telle que celle-ci :
xhost +machine
o machine est le nom de la machine en qui lon a conance. Si aucun nom de machine nest spci,
tous les mcanismes de contrle daccs sont dsactivs.
Inversement, la suppression dune machine de la liste des machines autorises est ralise par la
commande suivante :
xhost -machine
La commande xhost - (sans nom de machine) permet de ractiver les mcanismes de contrle daccs
sils ont t dsactivs par un xhost +.
Notez bien que donner le droit de connexion une machine suppose que lon fasse conance tous
les utilisateurs de cette machine, car alors ils pourront tous se connecter sur votre serveur X local.
De plus, rien ne vous garantit que la machine qui vous donnez ces droits na pas t usurpe par
celle dun pirate (technique dite de l IP spoong ). Ce nest donc videmment pas la solution
recommande, surtout si vous tes connect Internet.
10.6.2. La commande xauth
Le deuxime mcanisme de scurit utilise une cl prive. Tous les clients qui dsirent se connecter
au serveur local doivent connatre cette cl, faute de quoi leur requte sera refuse. Ainsi, vous pou-
vez trs simplement permettre lutilisation de votre display une personne donne sur une machine
donne, simplement en lui communiquant la cl utilise par le serveur X grant votre display. Bien
entendu, cette communication doit se faire de manire sre.
Par dfaut, les cls prives utilises par les clients sont enregistres dans le chier .Xauthority de
votre rpertoire personnel. Ce chier contient une cl prive pour chaque display auquel vous avez le
droit de vous connecter. Les clients que vous lancez consultent donc ce chier an de dterminer la
cl utiliser, en fonction du display auquel ils dsirent accder. Une fois cette cl connue, ils peuvent
355
Chapitre 10. Installation de XWindow
sauthentier auprs du serveur X grant ce display, et ainsi obtenir une connexion. Notez bien que le
chier .Xauthority ne doit tre accessible que par vous.
Si vous utilisez xdm, une nouvelle cl est automatiquement gnre chaque fois que vous vous
connectez un terminal X. xdm enregistre cette cl dans un chier temporaire du rpertoire rf-
renc par le lien symbolique /etc/X11/xdm/authdir (qui rfrence gnralement le rpertoire
/var/lib/xdm/authdir/), que seul lutilisateur root peut accder. Il communique ensuite ce -
chier au serveur X local laide de loption -auth du serveur X pour que celui-ci puisse lire la cl
utiliser. Enn, xdm enregistre cette cl dans votre chier .Xauthority, pour que vous puissiez
lancer des clients dans cette session X.
Comme vous pouvez le constater, ce mcanisme de scurit est totalement transparent pour
lutilisateur. Cependant, il peut tre ncessaire de manipuler le chier .Xauthority pour lire les
cls prives et les communiquer aux personnes de conance qui doivent avoir accs votre display.
Ces manipulations peuvent tre effectues laide de la commande xauth.
La cl associe un display peut tre obtenue avec la commande suivante :
xauth list display
o display est le nom du display auquel la cl donne accs. xauth afche alors le display, le type
dauthentication utilis (MIT-MAGIC-COOKIE-1) et la cl prive.
Vous pouvez communiquer cette cl par les moyens que vous voulez la personne devant accder
votre display. Celle-ci pourra alors utiliser la commande suivante pour ajouter la cl son chier
.Xauthority :
xauth add display . cl
o display est le display utilisant la cl cl. Le caractre . est une abrviation pour le type
dauthentication MIT-MAGIC-COOKIE-1 (type dauthentication par dfaut). Ds que la cl
aura t ajoute dans son chier .Xauthority, cette personne aura accs votre display.
Enn, la commande suivante :
xauth remove display
permet de supprimer la cl utilise pour le display display.
Note : Il est ncessaire dutiliser une technique de communication sre pour transmettre la clef,
faute de quoi le mcanisme de scurit de XWindow ne servirait rien. Lutilisation dOpenSSH
est vivement recommande.
10.7. Gestion des polices de caractres
La gestion des polices de caractres est relativement complique sous XWindow. En effet, elle est g-
re par un protocole complexe, qui permet de dcrire avec prcision les diverses polices de caractres,
quel que soient leur type et leur aspect. De plus, la gestion des polices ncessite de traiter correctement
les symboles spciques chaque pays, ce qui complique encore un peu plus les choses. Enn, pour
couronner le tout, XWindownutilise pas la notion de graphisme indpendant du priphrique, comme
la GDI de Windows. Cela implique, hlas, quil ne se charge que de lafchage et pas de limpression.
Chaque programme doit donc prendre en compte lui-mme les problmes dimpression, ce qui im-
356
Chapitre 10. Installation de XWindow
plique, en gnral, que les programmes soient capables dimprimer sur des imprimantes PostScript.
Par consquent, la conguration des polices de caractres doit non seulement se faire pour XWindow,
mais galement pour chacun des programmes (ou, au moins, pour linterprteur GhostScript, utilis
pour limpression avec des imprimantes non PostScript).
10.7.1. Gestion des polices de caractres sous XWindow
Originellement, XWindow ne pouvait afcher que des polices de type bitmap, cest--dire des polices
de caractres dnies par un dessin pour chaque caractre et pour un certain nombre de rsolutions.
Cette technique avait lavantage dtre rapide lafchage, mais de relative mauvaise qualit lorsque
les tailles demandes ntaient pas exactement celles pour lesquelles la police avait t dessine. En
effet, la police devait alors tre redimensionne partir de la taille la plus proche disponible. Ultrieu-
rement, les polices Postscript sont apparues. Ces polices sont dnies vectoriellement, cest--dire
par des formules mathmatiques. La forme des caractres est ainsi calcule pour chaque dimension,
ce qui permet davoir une qualit irrprochable. Lavantage des polices Postscript est quelles sont
gres de manire native par les imprimantes PostScript, et assurent une qualit dimpression opti-
male. En revanche, leur afchage sur les crans nest pas toujours correct, car les formules utilises
ont t conues pour les priphriques disposant de grandes rsolutions et ne donnent pas forcment
un rsultat esthtique pour les rsolutions dcrans. Enn, les polices Truetype ont t inventes par
Apple. Ces polices sont galement vectorielles, mais disposent en plus de petites astuces permettant
damliorer leur lisibilit sur les priphriques faible rsolution tels que les crans. Microsoft a
licenci la technologie Truetype et la intgre Windows par la suite.
An de dcrire les polices le plus prcisment possible, XWindow leur donne des noms relativement
complexes. Ces noms constituent ce que lon appelle la description logique des polices ( XLFD ,
qui est labrviation de langlais X Logical Font Description ). Cette convention de dnomination
spcie que la description des polices doit tre constitue de diffrents champs, spars par des tirets
(-). De plus, la description doit elle-mme tre prcde dun tiret. Les diffrents champs utiliss
dans la description logique des polices sont les suivants :
le nom de lditeur de la police, ou le nom du type de la police ;
le nom de la police (par exemple, arial ) ;
la graisse de la police (par exemple, bold pour gras, medium pour normal) ;
linclinaison de la police (par exemple, r pour roman, i pour italique) ;
la largeur de la police ;
des options de styles avances ;
la taille de la police ;
la taille des points ;
la rsolution horizontale de la police ;
la rsolution verticale ;
le type despacement de la police (par exemple, c pour constant, p pour proportionnel) ;
la largeur moyenne de la police ;
le jeu de caractres de la police ;
la page de codes de la police.
357
Chapitre 10. Installation de XWindow
Vous pouvez consulter la documentation de XWindow pour une description plus dtaille de ces
champs. Ces informations ne sont pas toutes supportes par les polices de caractres. Inversement,
certaines polices peuvent correspondre plusieurs descriptions (ne serait-ce que parce quelles dis-
posent de plusieurs tailles).
Parmi les informations dcrivant les polices se trouvent le jeu de caractres de la police et sa page
de codes (rappelons que ces informations constituent ce que lon appelle lencodage de la police). Il
peut y avoir plusieurs pages de codes pour un jeu de caractres, chacune reprsentant une manire de
numroter les diffrents caractres du jeu. Une police peut disposer de plusieurs jeux de caractres,
mais en pratique ce nest que rarement le cas. En revanche, la manire de numroter les caractres
(cest--dire la page de codes) peut avoir une inuence certaine.
Comme on le verra plus tard, le jeu de caractres le plus pratique pour les pays dEurope de lOuest
est le jeu ISO 8859 (jeu de caractres dit latin ). Ce jeu de caractres dispose de la plupart des
caractres utiliss en Europe. Pour les alphabets occidentaux, la page de codes la plus utilise est
la page de codes 1, ce qui fait que lencodage des polices occidentales est ISO 8859-1. Cependant,
quelques caractres ont t oublis dans cette page de codes (notamment le o e dans lo franais ()).
Ces caractres sont pourtant disponibles dans certaines polices (en particulier, les polices Truetype
provenant de Windows), mais ne sont malheureusement pas disponibles avec lencodage ISO 8859-
1. Pour y accder, on est oblig dutiliser un autre encodage, comme par exemple lencodage ISO
8859-15. Cet encodage est quasiment identique lencodage ISO 8859-1, aux caractres additionnels
prs, qui ont t ajouts pour les pays europens. Il est galement possible dutiliser la page de codes
1252 des polices de caractres de Windows. Cette page de codes correspond lencodage windows-
1252 , parfois galement nomm microsoft-ansi ou encore microsoft-cp1252 . En rsum,
le jeu de caractres et la page de codes permettent dindiquer pour quel pays (ou quel alphabet) une
police est destine.
Note : Le problme des encodages est que seul lencodage ISO 8859-1 est vraiment utilis par
la majorit des gens. Cela implique que les autres encodages risques de ne pas tre reconnus
par tous les programmes. En particulier, il est assez difcile dimprimer des textes encods avec
des encodages non standards.
La description logique des polices de caractres est trs prcise, puisquelle permet de spcier
lorigine de la police, son nom, les informations la concernant, les caractres quelle comprend et
comment ils sont numrots. Lorsquon choisit une police de caractres, on peut parfaitement ne pr-
ciser que certains critres (comme par exemple, lencodage de la police). Dans ce cas, les champs
constituant le nom de la police non spcis pourront tre remplacs par des caractres gnriques.
Le caractre * permet ainsi de spcier nimporte quelle valeur pour ce champ, et le caractre ?
permet de spcier nimporte quel caractre dans un champ.
Le programme xfontsel permet de slectionner les polices de caractres installes sur un systme. Il
peut tre utile pour comprendre la signication des diffrents champs de la description logique des
polices. Des exemples de descriptions logiques de polices sont donns ci-dessous :
-adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1
-*-courier-bold-*-normal-*-10-*-*-*-*-*-iso8859-15
-winfonts-arial-*-i-normal-*-16-*-*-*-*-*-microsoft-cp1252
Les polices de caractres sont souvent regroupes dans des rpertoires. Il peut exister plusieurs r-
pertoires de polices sur un systme, si bien quil est ncessaire dindiquer XFree86 dans quels
rpertoires ils doit rechercher les polices de caractres utilisables. Les rpertoires des polices utilises
358
Chapitre 10. Installation de XWindow
par le serveur X sont indiqus dans le chier XF86Config, dans la section Files . Comme on
le verra plus tard, cette section peut galement contenir des rfrences sur des serveurs de polices de
caractres. Les serveurs de polices de caractres peuvent rechercher les polices dans des rpertoires
indiqus de diffrentes manires selon le serveur. Pour certains serveurs, les rpertoires de polices
sont indiqus dans un chier de conguration, pour dautres, ils sont indiqus en ligne de commande.
Dans le protocole X, les rpertoires de polices doivent contenir un chier fonts.dir donnant la liste
des polices de ce rpertoire. Ce chier indique, sur sa premire ligne, le nombre de polices installes
dans ce rpertoire, et, sur les lignes suivantes, lassociation entre les chiers de polices et leur descrip-
tion logique. Ce chier est cr normalement par le programme mkfontdir. Ce programme gnre
le chier fonts.dir partir des informations contenues dans les chiers des polices ou partir du
nom des chiers des polices eux-mmes. En gnral, les polices taille variable ne contiennent pas
ces informations dans le format standard des polices X11 classiques, et mkfontdir ne peut donc pas
crer le chier fonts.dir automatiquement. Pour ces polices, il faut crer un chier fonts.scale
contenant les mmes informations que le chier fonts.dir, et que mkfontdir utilisera pour crer
ce dernier. La mthode pour crer le chier fonts.scale dpend du type de police utilise. Celle
utilise pour les polices Truetype sera dcrite dans la Section 10.7.2.
En gnral, les encodages les plus standards sont grs directement par le serveur X ou par le serveur
de polices. En particulier, lencodage ISO 8859-1 est gr nativement. Il est toutefois possible de
dnir de nouveaux encodages dans des chiers dencodages. Pour que le serveur X ou le serveur de
polices puisse utiliser les polices dnies avec ces encodages, il faut que le rpertoire dinstallation
des polices contiennent un chier encodings.dir. Ce chier a la mme structure que le chier
fonts.dir, cest--dire quil contient le nombre des encodages sur la premire ligne et, sur chaque
ligne suivante, le nom de lencodage et le nom dun chier contenant la dnition dun encodage,
spars par un espace. De cette manire, le serveur X et le serveur de polices sont capables de raliser
lassociation entre le nom de lencodage utilis dans la description logique de polices et le chier de
dnition de cet encodage. La mthode permettant de crer le chier encodings.dir sera dcrite
plus loin dans la section traitant de linstallation des polices Truetype.
Lcriture des chiers de dnition dencodages de polices est une tche assez complique, qui nces-
site de bien connatre la numrotation des caractres de chaque type de chier de police. De manire
trs simplie, on peut dire que les chiers de dnition dencodage font lassociation entre le nu-
mro de chaque caractre dans la police et une numrotation standardise des caractres (XWindow
utilise lencodage Unicode) de cette police. Cela permet de manipuler les textes avec la numrotation
standard, et dutiliser des polices qui ne dnissent pas tous les caractres de cette numrotation ou
qui ne les numrotent pas de la mme manire. Heureusement, les encodages les plus courants ont
dj t crits et il est fort peu probable que vous ayiez vous intresser ce problme. La structure
des chiers dencodages ne sera donc pas dcrite plus en dtail dans ce document.
10.7.2. Installation des polices Truetype
Linstallation des polices TrueType sous XWindow ne pose dsormais plus de problmes, puisquil
suft de dnir le chier fonts.dir dans le rpertoire dinstallation de ces polices. Cependant,
un certain nombre doprations supplmentaires devront tre ralises pour permettre limpression
des documents utilisant les polices TrueType. Ce paragraphe dtaille la manire de dclarer les po-
lices TrueType au niveau du serveur X, et prsente les oprations ncessaires leur impression pour
quelques logiciels courants.
Gnralement, les chiers de polices sont places dans des sous-rpertoires du rpertoire
/usr/X11R6/lib/X11/fonts/. Ces sous-rpertoires permettent de classer les chiers de polices
par type et par taille. Dans la suite de ce document, il sera suppos que les polices TrueType sont
toutes situes dans le sous-rpertoire truetype/.
359
Chapitre 10. Installation de XWindow
10.7.2.1. Conguration du serveur X
Pour permettre au serveur X dutiliser les polices TrueType, il faut simplement crire le chier
fonts.dir de chaque rpertoire de polices. Rappelons que ce chier contient la liste des polices
du rpertoire dans lequel il se trouve, et est utilis la fois par le serveur X et par les serveurs de
polices de caractres. La notion de serveur de polices sera vue en dtail dans la Section 10.7.3.
Normalement, le chier fonts.dir est gnr par le programme mkfontdir. Ce programme utilise
les informations contenues dans les chiers de polices ou dans le nom de ces chiers pour le gnrer.
Malheureusement, les polices Truetype, comme la plupart des polices taille variable, ne contiennent
pas ces informations dans un format comprhensible par mkfontdir, ni dans leurs chier, ni dans
leurs nom. Celui-ci ne peut donc pas crer le chier fonts.dir directement. Dans ce cas, mkfontdir
utilise le chier de dnition des polices taille variable fonts.scale. Ce chier doit tre cr soit
manuellement, soit laide de lutilitaire mkfontscale. Celui-ci doit tre appel dans le rpertoire
contenant les polices de caractres, et gnre un chier fonts.scale directement utilisable par
mkfontdir.
Une fois le chier fonts.scale cr, il ne reste plus qu appeler mkfontdir avec la ligne de com-
mande suivante :
mkfontdir
Cette commande aura pour effet de crer le chier fonts.dir partir du chier fonts.scale (en
fait, il sagit dune simple recopie).
Les encodages utiliss par le serveur X pour les polices Truetype sont tous dnis dans le chier
fonts.dir, qui donne la correspondance entre les descriptions logiques de polices et les chiers de
polices Truetype. Par consquent, vous pourrez aisment modier ou ajouter des encodages diffrents
pour ces polices de la manire suivante :
ditez le chier fonts.scale contenant la liste des noms de polices et des descriptions logiques
de polices ;
modiez la description logique de chaque police ;
relancez mkfontdir.
La modication de la description logique de la police consiste simplement changer lencodage utilis
par la police en un autre encodage. Vous pouvez utiliser nimporte lequel des encodages suivants, qui
sont grs nativement par le serveur de polices et par le serveur X :
iso10646-1 (encodage Unicode, recommand) ;
iso8859-1 iso8859-10 ;
iso8859-15 ;
koi8-r, koi8-u, koi8-ru, koi8-uni, ou koi8-e ;
microsoft-symbol (uniquement pour les polices Truetype) ;
apple-roman (uniquement pour les polices Truetype dApple).
Vous pouvez galement utiliser des encodages additionnels, condition dutiliser loption -e de mk-
fontdir lors de la gnration du chier fonts.dir. Cette option permet dindiquer le rpertoire
contenant les chiers de dnition des encodages utiliser :
360
Chapitre 10. Installation de XWindow
mkfontdir -e rpertoire
o rpertoire est le rpertoire contenant les chiers de dnition dencodages. Cette commande a
pour consquence de crer un chier encodings.dir en plus du chier fonts.dir.
XWindow est fourni avec un certain nombre de chiers de dnition dencodages standards, tous
situs dans le rpertoire /usr/X11R6/lib/X11/fonts/encodings/. Lun des plus intressants
est sans doute microsoft-cp1252, qui permet de disposer des caractres additionnels ajouts par
Microsoft dans ses polices, tout en conservant un encodage compatible avec les documents Windows.
Note : Si vous voulez rester compatible avec les normes ISO, vous pouvez utiliser lencodage
ISO 8859-15 au lieu de microsoft-cp1252. Vous accderez ainsi tous les caractres utiliss
en Europe, mais vous ne pourrez plus utiliser les caractres additionnels dnis par Microsoft.
Il faut noter que la plupart des polices sont dfectueuses et indiquent une page de codes errone
dans leur chier. Cela explique pourquoi quelques descriptions logiques de polices dans le chier
fonts.scale gnr automatiquement par ttmkfdir peuvent tre fausses. Pour ces polices, il
faudra corriger lencodage manuellement en suivant la mthode dcrite ci-dessus.
10.7.2.2. Conguration des polices Truetype pour limpression
Comme il la t dit plus haut, la conguration des polices Truetype pour limpression dpend for-
tement de chaque programme utilis. Certains programmes, comme la suite bureautique OpenOfce
et les programmes du gestionnaire de bureau KDE par exemple, prennent en charge compltement
les polices de caractres TrueType tant pour lafchage que pour limpression. Dautres ne font que
rfrencer les polices utilises dans les chiers dimpression, et il faut congurer le sous-systme
dimpression pour que ces polices soient reconnues et imprimes correctement.
Dune manire gnrale, plusieurs cas peuvent se prsenter :
soit on dispose dune imprimante PostScript, auquel cas il faut convertir les polices Truetype en
polices Adobe Type 42, qui constituent une encapsulation des polices Truetype en PostScript. Cette
conversion a lavantage de ne pas provoquer de perte de qualit, puisque la police Truetype est
utilise telle quelle ;
soit on ne dispose pas dimprimante PostScript, auquel cas on utilise ncessairement un interprteur
PostScript. Cet interprteur est souvent GhostScript, car il sagit encore une fois dun logiciel libre.
Quel que soit linterprteur PostScript utilis, il faut le congurer pour utiliser les polices Truetype.
Nous verrons comment le faire pour les versions de GhostScript ultrieures la 7.00.
Dans les deux cas, il se peut quil faille congurer le logiciel utilis pour quil puisse utiliser les
polices Truetype de concert avec le sous-systme dimpression.
Les paragraphes suivants dcrivent les procdures suivre pour imprimer les polices Truetype en
gnral. La conguration des logiciels ne sera pas aborde, consultez leur aide ou recherchez des
renseignements sur Internet quant la procdure suivre.
10.7.2.2.1. Conversion des polices Truetype en polices Adobe de Type 42
La conversion des polices Truetype en polices Adobe de Type 42 est une opration ncessaire si lon
utilise directement une imprimante PostScript ou si lon utilise un interprteur PostScript incapable de
grer directement les polices Truetype. De manire gnrale, il est recommand dutiliser GhostScript
mme si lon possde une imprimante PostScript, car la conguration de limpression se fait de la
361
Chapitre 10. Installation de XWindow
mme manire que les autres utilisateurs de Linux, et il est donc plus facile de trouver de laide sur
Internet.
La conversion en polices Adobe de Type 42 peut tre ralise avec le programme ttfps, disponible
sur Internet sous le nom ttfps.tar.gz. Cet outil est tout fait correct, mais il souffre dun grave
dfaut : il ne permet pas de choisir lencodage de la police PostScript quil gnre. Plus grave encore,
il utilise systmatiquement lencodage standard Adobe, qui ne dispose pas de la plupart des lettres
accentues franaises (cest aussi la raison pour laquelle il est recommand dutiliser GhostScript).
Vous pouvez bien entendu modier le code source si vous vous en sentez le courage.
Vous devrez compiler ttfps pour pouvoir lutiliser. Lorsque vous aurez extrait les chiers sources de
larchive, vous aurez diter le chier Makefile pour :
dnir la variable denvironnement CC avec pour valeur le nom du compilateur que vous utilisez
(en loccurence, gcc) :
CC=gcc
choisir entre les deux jeux doptions de compilation CFLAGS. Vous ne devez en choisir quun
seul, il faut obligatoirement commenter lautre avec un caractre dise (#). Le choix dpend de
larchitecture de votre machine. Si vous utilisez un PC, vous devrez choisir loption contenant
loption -DSMALLENDIAN.
Une fois ces modications faites, vous pourrez compiler ttsps avec la simple commande suivante :
make
Lutilisation de ttfps est trs simple. Pour convertir une police Truetype en police Adobe de Type 42,
il suft dutiliser la ligne de commande suivante :
ttfps [-a fichier.afm] fichier.ttf fichier.pfa
o fichier.afm est le nom du chier de dnition des dimensions de la police PostScript,
fichier.ttf est le nom du chier de police Truetype encapsuler, et fichier.pfa est le nom de
la police PostScript rsultante. La gnration du chier .afm est facultative.
10.7.2.2.2. Installation des polices Truetype pour GhostScript
GhostScript est un interprteur PostScript capable dimprimer les polices Truetype. Sa conguration
est trs simple, puisquil suft de lui donner le nom de police que les chiers PostScript utilisent pour
la rfrencer et le nom du chier de police correspondant. Cette association est dnie dans le chier
Fontmap de GhostScript, que vous pourrez trouver dans son rpertoire dinstallation (normalement,
GhostScript se trouve dans le rpertoire /usr/share/ghostscript/version/, o version est
le numro de la version installe).
Les informations que vous devez ajouter dans ce chier sont similaires celles stockes dans le
chier fonts.dir du rpertoire de polices. Pour chaque police, il faut rajouter une ligne de la forme
suivante :
(nom) (fichier) ;
362
Chapitre 10. Installation de XWindow
o nom est le nom de la police dimprimante que les programmes utilisent dans les chiers PostScript
quils gnrent, et fichier est le chemin absolu du chier de la police Truetype.
En pratique, le nom de la police dimprimante peut tre choisi librement. On veillera toutefois ne
pas utiliser des noms de polices contenant des espaces, car certains programmes peuvent avoir du mal
manipuler de tels noms. Il faudra bien utiliser ce nom lors de la dclaration des polices dimprimante
dans les logiciels capables dimprimer en PostScript. Si lon ne peut pas dnir ce nom au niveau des
logiciels, il faudra ajouter un alias dans le chier Fontmap de GhostScript pour chaque nom de police
utilis par les logiciels. Il nexiste pas de rgle gnral permettant de dterminer les noms de polices
utiliss par les programmes. Le plus simple est peut-tre dans ce cas de dterminer les noms utiliss
en imprimant un document dans un chier PostScript et en regardant dans le chier les instructions
de changement de police de caractres.
10.7.3. Conguration dun serveur de polices
XWindow tant un systme de fentrage fonctionnant en rseau, il propose des services additionnels
sur le rseau en plus de lafchage. Parmi ces services, on notera la possibilit de mettre en place des
serveurs de polices de caractres. Ces serveurs permetttent des clients situs sur dautres machines
daccder la dnition des polices de caractres de la machine locale.
Le serveur de police fourni par XWindow se nomme xfs (abrviation de langlais X Font
Server ). Ce serveur utilise un chier de conguration qui permet de lui spcier les options
avec lesquelles il doit dmarrer. Dans la suite de ce document, le nom suppos de ce chier est
/etc/xfs.conf. Un chier de conguration typique est donn ci-dessous :
# Exemple de fichier de configuration du serveur de police :
# Limite 10 le nombre de clients connects ce serveur :
client-limit = 10
# Demande le dmarrage dun autre serveur quand la limite
# prcdente est atteinte :
clone-self = on
# Rpertoire des polices de caractres :
catalogue = /usr/X11R6/lib/X11/fonts/truetype
# Fixe la taille par dfaut (en diximes de points) :
default-point-size = 120
# Rsolution par dfaut (100 x 100 et 75 x 75) :
default-resolutions = 100,100,75,75
# Nutilise pas le mcanisme des traces du systme :
use-syslog = off
# Utilise le fichier derreurs suivant la place :
error-file = /root/xfs.errors
Lorsque vous aurez cr votre chier de conguration, il ne vous restera plus qu tester si tout fonc-
tionne bien. Il vous faut pour cela lancer le serveur de polices avec la ligne de commande suivante :
363
Chapitre 10. Installation de XWindow
xfs -port 7100 -config /etc/xfs.conf &
et essayer de lui demander la liste des polices quil peut fournir :
fslsfonts -server localhost:7100
Si cette dernire commande choue, il se peut que le chemin indiqu pour les rpertoires de polices
dans le chier /etc/xfs.conf ne soit pas correct, ou que le chier fonts.dir nexiste pas ou ne
soit pas correct dans un des rpertoires de polices.
Si vous le dsirez, vous pouvez faire en sorte que le serveur de polices soit dmarr automatique-
ment au lancement de X. Vous pourrez pour cela crer un script de lancement du serveur de po-
lices, que vous placerez dans le rpertoire /etc/rc.d/ (ou le rpertoire /sbin/init.d/, selon
votre distribution) pour lancer et arrter le serveur de polices en suivant le mcanisme des niveaux
dexcution. Vous trouverez ci-dessous un exemple de script de lancement du serveur de polices per-
mettant dutiliser le chier de conguration prcdent :
#!/bin/bash
#
# /etc/rc.d/xfs
#
# Fichier de lancement du serveur de polices.
#
PORT=7100
FILE=/etc/xfs.conf
PRGM=/usr/X11/bin/xfs
[ -f $PRGM ] || exit 0
# Analyse les paramtres :
case "$1" in
start)
# Vrifie si xfs est dj lanc :
if [ -f /var/lock/subsys/xfs ]; then
echo -n "Redmarrage du serveur de polices"
killall -e -TERM $PRGM
rm -f /var/lock/subsys/xfs
fi
$PRGM -port $PORT -config $FILE &
touch /var/lock/subsys/xfs
;;
stop)
if [ ! -f /var/lock/subsys/xfs ]; then
echo -n "xfs nest pas lanc"
else
echo -n "Arrt du serveur de polices"
killall -e -TERM $PRGM
rm -f /var/lock/subsys/xfs
fi
;;
restart)
echo -n "Relecture du fichier de configuration"
if [ -f /var/lock/subsys/xfs ]; then
killall -e -USR1 $PRGM
364
Chapitre 10. Installation de XWindow
fi
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
Comme X11 est dmarr classiquement dans le niveau dexcution 3 ou 4, vous devrez crer les
liens symboliques vers ce chier pour le lancement et larrt du serveur de polices dans le rpertoire
rc3.d/ ou rc4.d/. Attention, rappelez-vous que les noms de ces liens indiquent le moment o
le script est excut, aussi bien pour lentre que pour la sortie du niveau dexcution. Vous devrez
imprativement faire en sorte que ce script soit appel avant que XWindow ne dmarre si vous dsirez
utiliser le serveur de polices dans les sessions X locales.
Lutilisation du serveur de polices est trs simple. Il suft dy accder comme un rpertoire de
polices de caractres normal, en utilisant la syntaxe suivante :
tcp/machine:port
o machine est la machine sur laquelle le serveur de polices accder est lanc, et port est le port
que ce serveur coute. Par exemple, pour ajouter les polices dun serveur de polices locales la liste
des polices du serveur X, il suft de taper la commande suivante :
xset +fp tcp/127.0.0.1:7100
Vous pourrez alors vrier que ces polices sont bien disponibles avec le programme xfontsel.
Si vous le dsirez, vous pouvez ajouter automatiquement les polices dun serveur de polices en ajou-
tant la ligne suivante dans la section Files dans le chier de conguration XF86Config du
serveur :
FontPath "tcp/127.0.0.1:7100"
Cette ligne permet dindiquer au serveur X quil trouvera des polices de caractres au niveau du
serveur de polices de la machine locale. Bien entendu, le serveur de polices doit imprativement tre
lanc avant le serveur X si une telle ligne est place dans le chier de conguration XF86Config.
10.8. Problmes classiques rencontrs
Il est possible que vous rencontriez quelques problmes au lancement de XWindow aprs avoir modi-
sa conguration. Ces problmes peuvent aller du blocage complet de la machine limpossibilit
de lancer XWindow.
Dune manire gnrale, il est recommand de ne pas modier la conguration dans le niveau
dexcution de XWindow (3, 4 ou 5 selon les distributions). En effet, dans ces niveaux, xdm relance
automatiquement le serveur X ds quil dtecte sa terminaison. Si le serveur X ne peut pas se lancer,
votre ordinateur se bloquera dans une boucle innie, avec en prime deux changements de mode
graphique chaque itration (ce qui peut endommager srieusement votre moniteur). Si cela vous
arrivait, vous nauriez plus qu tenter le redmarrage de la machine en basculant rapidement sur un
terminal (avec CTRL+ALT+F1 suivi de CTRL+ALT+DEL. Faites-le trs rapidement, avant que xdm
365
Chapitre 10. Installation de XWindow
nait le temps de tenter un redmarrage du serveur X !), et redmarrer en indiquant le niveau
dexcution 2 lamorage du noyau. Par consquent, essayez vos changement de conguration
dans le niveau dexcution 2 si possible, et faites vos tests avec la simple commande startx.
Des erreurs un peu plus techniques peuvent provenir de la conguration rseau elle-mme (noubliez
pas que XWindow est un systme graphique bas rseau). Les erreurs les plus effroyables sont sans
doute les erreurs du type _X11TransSocketINETConnect: Cant connect: errno = n ,
o n est un code derreur numrique. Typiquement, cette erreur signale un problme dans la con-
guration rseau. Les deux erreurs les plus classiques sont lerreur 101, qui signale que la machine
indique dans le display na pas pu tre contacte, et lerreur 111, qui signale que cette machine est
bien accessible par le rseau, mais que le serveur X ne sy trouve pas.
En gnral, vous devrez vrier toute votre conguration rseau si vous rencontrez des erreurs 101, et
le problme nest certainement pas spcique XWindow. Vous pouvez galement vrier la validit
de votre display, car il se peut quil dsigne une machine inaccessible sur votre rseau (ou que la
rsolution de nom ait chou pour cette machine).
Pour ce qui est de lerreur 111, cest beaucoup plus simple. Dans la grande majorit des cas, le serveur
X dsign nexiste tout simplement pas. Il faut donc sassurer que le serveur X en charge de grer le
display indiqu dans la variable denvironnement DISPLAY est bien lanc sur la machine dsigne.
Enn, lorsquune application cliente refuse de dmarrer en afchant un message derreur Cant
open display: , cest tout simplement que la variable denvironnement DISPLAY na pas t
prcise, et que loption en ligne de commande -display na pas t utilise non plus. Lapplication
ne sait donc tout simplement pas quel display se connecter. Si le display a bien t dni, mais que
le message Cant open display:xxx est complt du message Connection to "xxx"
refused by server ou Client is not authorized to connect to Server , cest
que le client a t lanc dans un autre compte utilisateur que le compte que vous utilisez couramment,
et que ce compte ne dispose pas des droits ncessaires pour accder ce display. Vous devez dans ce
cas donner laccs votre display au compte utilisateur sous lequel vous lancez le client.
366
Chapitre 11. Conclusion
Vous avez pu voir dans ce document les diffrentes procdures mettre en uvre pour installer Linux.
Ces procdures peuvent paratre compliques, et en fait elles le sont effectivement. Cependant, il
faut faire un choix entre fonctionnalit et simplicit. Linux choisit la voie la plus difcile : celle sur
laquelle il faut tre performant et fournir le plus de possibilits. La complexit qui en dcoule se
voit immdiatement lors de son installation, mais elle se comprend car chaque tape permet de le
rendre chaque fois plus puissant, en lui ajoutant une fonctionnalit de plus. Finalement, ce qui vous
a motiv pendant toutes ces tapes, cest sans aucun doute le dsir de bncier de la stabilit et de la
puissance de Linux. Vous ne serez pas du, et vous rendrez vite compte que Linux dpasse de loin
les systmes soi-disant plus ergonomiques sur ces deux points, dans une telle proportion que vous
nirez par ne plus pouvoir les utiliser. Et si vous y tes contraint, vous ne louerez plus leur facilit
demploi, mais vous pestifrerez bel et bien contre leur comportement alatoire, leurs incohrences
ou leurs plantages rptition. En ralit, comme vous allez bientt le dcouvrir, Linux est simple
utiliser pour les travaux du quotidien. De plus, comme il la dj t dit au dbut de ce document,
ce qui parat compliqu au premier abord est souvent tout simplement inhabituel. Cest lusage que
vous vous familiariserez avec les concepts Unix, et plus vous les utiliserez, plus vous les apprcierez.
Aussi ne puis-je que vous souhaiter bonne continuation !
367
Chapitre 11. Conclusion
368
Annexe A. Options de conguration du noyau
Les questions poses par le programme de conguration du noyau sont rcapitules ci-dessous. Les
rponses recommandes ont t choisies pour correspondre la plupart des cas courants. Il ne sagit
pas des options recommandes pour installer un serveur ou pour un machine contenant des priph-
riques exotiques (carte vido, port infrarouge, etc.). Avec ce jeu doptions, un PC standard est suppos
dmarrer sans poser de problmes. Vous devrez cependant certainement les adapter selon vos besoins.
La plupart de ces options sont dcrites plus en dtail dans le chapitre traitant de la conguration du
matriel.
Je tiens prciser que certaines de ces options mont laiss dubitatif, tant dans lincapacit absolue de
les comprendre et de les tester. Ces options sont en gnral les options concernant des fonctionnalits
avances ou des priphriques rarement utiliss.
A.1. Menu Code maturity level options
Ce menu donne accs aux fonctionnalits en cours de dveloppement. Vous devez rpondre Y, si des
pilotes particuliers sont ncessaires. Si lon rpond N, les questions de conguration concernant ces
fonctionnalits ne seront pas poses. Il est recommand de rpondre Y cette question, car nombre
de fonctionnalits rcentes sont marques comme tant exprimentales , bien qutant tout fait
stable.
A.2. Menu Loadable module support
Loption Enable loadable module support permet lemploi des modules par le noyau. Il
est recommand de rpondre Y cette question.
Loption Set version information on all module symbols permet denregistrer des
informations de version dans les modules du noyau. Cette fonctionnalit autorise lemploi des mo-
dules des versions prcdentes, par lintermdiaire du programme modprobe. En particulier, cela est
ncessaire si vous dsirez utiliser des modules non fournis dans les sources du noyau (par exemple
des gestionnaires de priphriques commerciaux). Par ailleurs, si vous dsactivez cette fonctionna-
lit, il faudra recompiler tous les modules chaque fois que vous changerez de noyau. Il est donc
recommand de rpondre par Y cette question.
Loption Kernel module loader donne la possibilit au noyau de charger lui-mme les mo-
dules du noyau. Cette fonctionnalit est ncessaire pour la bonne marche du systme, aussi est-il
recommand de rpondre par Y cette question.
A.3. Menu Processor type and features
Loption Processor family vous permet de spcier le type de processeur sur lequel le noyau
fonctionnera. Choisissez le processeur dont vous disposez.
Loption PGE extensions (not for Cyrix/Transmeta) nest pas documente et ne sera
pas dcrite ici.
Loption Machine Check Exception permet dactiver la surveillance de ltat de lordinateur
(lvation anormale de temprature, pannes, etc.) an de contourner les problmes matriels ou
369
Annexe A. Options de conguration du noyau
darrter le systme avant une destruction de composants ou des pertes de donnes irrmdiables.
La rponse recommande est Y.
Loption Toshiba Laptop support permet dactiver la gestion dnergie pour les portables de
marque Toshiba. Vous pouvez rpondre Y cette question si vous dsirez utiliser votre noyau sur un
portable Toshiba. La rponse recommande est N.
Loption Dell Laptop support permet dactiver la gestion dnergie pour les portables de
marque Dell. Vous pouvez rpondre Y cette question si vous dsirez utiliser votre noyau sur un
portable Dell. La rponse recommande est N.
Loption /dev/cpu/microcode - Intel IA32 CPU microcode support permet dactiver
la reprogrammation du microcode des processeurs Intel postrieurs aux Pentium Pro. laide de
cette fonctionnalit, vous pourrez mettre jour le microcode de votre processeur (cette mise jour
nest pas permanente, le microcode doit tre recharg chaque dmarrage de la machine). Notez que
cette option impose dutiliser le systme de chiers virtuel /dev/ du noyau. Il est donc ncessaire
dactiver loption /dev filesystem support (EXPERIMENTAL) du menu File systems .
En gnral, il nest pas ncessaire de mettre jour le microcode de son processeur, moins que celui-
ci ne contienne un bug incontournable ou que vous nayez optimiser spcialement votre machine
pour une utilisation particulire. La rponse recommande est donc N.
Loption /dev/cpu/*/msr - Model-specific register support permet dactiver
la gestion du registre MSR sur les processeurs x86. Il existe un registre de ce type pour chaque
processeur, que lon trouvera dans les sous-rpertoires portant comme nom les numros de chaque
processeur. La rponse recommande est N.
Loption /dev/cpu/*/cpuid - CPU information support permet dobtenir les informa-
tions fournies par linstruction CPUID pour chaque processeur de la machine. Il existe un registre de
ce type pour chaque processeur, que lon trouvera dans les sous-rpertoires portant comme nom les
numros de chaque processeur. La rponse recommande est N.
Loption High Memory Support vous permet dindiquer le mode de gestion de la mmoire que
le noyau utilisera. Pour la plupart des gens, dont les machines disposent de moins dun Go de m-
moire, la rponse recommande est off . Si votre machine dispose de plus dun Go de mmoire,
mais moins de quatre Go, vous pouvez changer le mode dadressage du noyau pour grer la totalit de
votre mmoire, en choisissant loption 4GB . Les processeurs x86 ne permettent pas dadresser plus
de 4Go de mmoire simultanment en raison de leur bus dadresses 32 bits. Cependant, ils peuvent g-
rer jusqu 64Go de mmoire par tranches de 4Go, laide dune extension spcique aux processeurs
de type Pentium Pro. Si vous disposez dune telle machine, vous devez choisir loption 64GB . Si
vous activez lune de ces options, vous pourrez activer ou non loption HIGHMEM I/O support ,
qui permet dautoriser le systme utiliser la mmoire haute pour stocker ses tampons dentre /
sortie ou de conner ceux-ci en mmoire basse. La rponse recommande est off .
Loption Math emulation permet dactiver lmulateur dunit de calcul en virgule ottante,
pour les processeurs qui nen disposent pas (386 et 486 SX). Si vous avez un ordinateur rcent,
choisissez N.
Loption MTRR (Memory Type Range Register) support permet dactiver le support des
plages mmoires du processeur. Celui-ci peut permettre lacclration des transferts de donns dans
les plages mmoires des priphriques, en particulier pour les cartes graphiques. Cette fonctionna-
lit nest disponible que pour les processeurs de type Pentium Pro et postrieurs. Si vous avez un
ordinateur rcent, choisissez Y.
Loption Symetric multi-processing support permet dactiver le support des cartes mres
multi-processeurs. La plupart des gens nen disposant pas, vous pouvez rpondre N cette question.
Loption Local APIC support on uniprocessors (NEW) permet dactiver les contrleurs
dinterruptions programmables intgrs dans certains processeurs. Certaines machines disposent dun
370
Annexe A. Options de conguration du noyau
tel processeur, si cest votre cas, vous pouvez rpondre par Y cette question. Cette option nest dis-
ponible que si vous avez rpondu N la question Symetric multi-processing support .
Loption IO-APIC support on uniprocessors permet dactiver la gestion des
contrleurs dinterruption programmables avancs. Ces contrleurs sont utiliss sur les machines
multi-processeurs, mais certaines cartes mres monoprocesseurs les utilisent. Si cest le cas de votre
carte mre, vous pouvez rpondre par Y cette question.
Loption Multi-node NUMA system support permet dactiver la gestion des machines
multiprocesseur utilisant larchitecture NUMA. Cette option modie la gestion des interruptions
et la manire dont les processeurs sont dmarrs. Si vous disposez dune telle machine, vous
pouvez rpondre par Y cette question et slectionner le type de machine avec lune des deux
options Multiquad (IBM/Sequent) NUMAQ support ou IBM x440 (Summit/EXA)
support . Cette option nest disponible que si vous avez rpondu Y la question Symetric
multi-processing support . La rponse recommande est N.
Loption Unsynced TSC support (NEW) permet de corriger un bug dans la gestion des timers
de certaines machines parallles, qui provoque parfois un retour en arrire de lhorloge systme. La
rponse recommande est N.
A.4. Menu General setup
Loption Networking support permet dactiver le support rseau. Les systmes Unix tant
profondment bass sur les rseaux, il faut rpondre par Y.
Loption PCI support permet dactiver le support des ordinateurs base de bus PCI. Si vous
avez un ordinateur rcent, rpondez par Y.
Loption PCI access mode permet de slectionner le composant qui initialisera les bus PCI.
Si vous avez un ordinateur rcent, avec un BIOS rcent, choisissez BIOS . Sinon, choisissez
Direct . Le choix Any permet de demander Linux dessayer linitialisation par le BIOS,
et de faire le travail lui-mme si ce dernier est dfaillant. Vous pouvez donc toujours choisir loption
Any .
Loption ISA bus support permet la prise en charge des bus ISA. Le bus ISA est un bus en
voie de dsutude, mais la plupart des anciennes cartes mres en disposent encore. Vous devez activer
cette option si votre ordinateur dispose encore dun bus ISA. La rponse recommande est Y.
Loption PCI device name database permet dinclure dans le noyau une liste de noms de
priphriques PCI. Cette table est utilise pour fournir des noms humainement lisibles pour les p-
riphriques PCI dans le systme de chiers virtuels /proc/. Elle accrot sensiblement la taille du
noyau, mais ne consomme pas de mmoire supplmentaire une fois que la phase damorage termi-
ne. Il est donc recommand dactiver cette fonctionnalit, moins que vous ne cherchiez faire un
systme embarqu ou une disquette damorage. La rponse recommande est donc Y.
Loption EISA support permet dactiver la gestion des bus EISA. Ce bus a dsormais complte-
ment t remplac par le bus PCI, aussi devriez-vous rpondre par N, moins que vous ne disposiez
dune machine trs ancienne.
Loption MCA support permet dactiver la gestion des bus MCA (pour les PS/2 dIBM). moins
que vous nayez un PS/2, rpondez par N.
Loption Support for hot-pluggable devices permet dactiver la gestion des priph-
riques connectables chaud (cest--dire pendant que le systme fonctionne). Parmi ces priph-
riques, on recontre couramment les cartes PCMCIA des portables, mais galement les priphriques
USB et les cartes PCI connectables chaud. Cette option est en particulier ncessaire pour lutilisation
371
Annexe A. Options de conguration du noyau
des cartes PCMCIA sur les portables. Elle vous donnera laccs aux menus PCMCIA/CardBus
support , qui permet dactiver la gestion des cartes PCMCIA 32 bits (cela nest pas ncessaire
pour utiliser les cartes PCMCIA 16 bits), et au menu PCI Hotplug Support , qui permet de
prendre en charge la gestion des cartes PCI connectables chaud. Cette option est facultative pour
lutilisation des priphriques USB. Ces priphriques ne seront toutefois pas congurs automati-
quement lorsque vous les connecterez chaud si vous ne lactivez pas. Pour que la conguration
des priphriques USB connects chaud fonctionne, vous devez galement activer la gestion des
modules du noyau, ainsi que loption Kernel module loader . Si cette option est active, le
noyau appelera alors le programme de conguration /sbin/hotplug pour charger le gestionnaire
de priphriques appropri lorsquun priphrique sera connect. La rponse recommande est Y.
Loption System V IPC permet dactiver la gestion des communications inter-processus com-
patibles System V. Cest quasiment un standard sur tous les systmes Unix, il faut donc rpondre par
Y.
Loption BSD Process Accounting permet dactiver le monitoring des applications utilis sur
les systme BSD. Ce monitoring peut tre utilis par quelques applications, aussi est-il recommand
de rpondre par Y.
Loption Sysctl support permet de modier dynamiquement certains paramtres du noyau
sans recompilation ni redmarrage par lintermdiaire du systme de chiers virtuels /proc/. Il est
recommand de rpondre par Y cette question.
Loption Kernel core (/proc/kcore) format permet de choisir le format de chiers bi-
naires pour le chier kcore du systme de chiers virtuels /proc/. Ce chier contient la reprsen-
tation de la mmoire vive du systme telle quelle est vue par le noyau, et peut tre utilis pour le
dbogage du noyau. Les diffrents formats de chiers binaires sont A.OUT , un ancien format de
chiers dsormais obsolte, ou ELF (abrviation de langlais Executable and Linking Format ),
le format de chiers actuel. La rponse recommande est ELF .
Loption Kernel support for a.out binaries permet dutiliser les programmes dont le
format de chiers binaires est le format a.out . Bien que ce format de chiers binaires soit obsolte,
il se peut que vous rencontriez de vielles applications qui nont pas t recompiles et qui lutilisent
encore. Il est donc recommand dactiver la gestion de ce format : rpondez par Y.
Loption Kernel support for ELF binaries permet dutiliser les programmes dont le for-
mat de chiers binaires est le format ELF. Ce format de chiers tant devenu un standard, il faut
rpondre par Y cette question.
Loption Kernel support for MISC binaries permet dactiver la gestion de formats de
chiers binaires enregistrables dans le noyau. On peut alors utiliser des chargeurs spciques directe-
ment au niveau du noyau, et ainsi utiliser ces chiers binaires directement en ligne de commande. Il
est recommand de rpondre par Y cette question.
Loption Power Management support permet dactiver la gestion dnergie sur votre machine.
Il existe actuellement deux protocoles de gestion dnergie sur les PCI : le protocole APM (abrvia-
tion de langlais Advanced Power Management , relativement ancien mais able, et le protocole
ACPI (abrviation de langlais Advanced Conguration and Power Interface ), plus rcent mais
pouvant poser quelques problmes de stabilit du systme. Ces deux protocoles peuvent tre param-
trs respectivement avec les deux jeux doptions suivantes. La rponse recommande est Y.
Loption ACPI support permet dactiver la gestion du protocole de gestion dnergie ACPI.
Ce protocole permet au systme dexploitation de contrler nement la consommation dnergie du
systme, mais ncessite que votre carte mre le gre ainsi que tous les priphriques connects dessus.
Si ce nest pas le cas, les priphriques qui seront mis en veille ne se rinitialiseront pas correctement
lors du rveil de lordinateur, ce qui peut provoquer des plantages violents. La rponse recommande
est donc N, moins que vous ne soyez sr que votre matriel soit 100% compatible ACPI. Notes que
372
Annexe A. Options de conguration du noyau
si vous choisissez dactiver le protocole de gestion dnergie ACPI, celui-ci sera utilis en priorit par
rapport au protocole APM. Il sera donc inutile dactiver la gestion de ce dernier. Les options suivantes
permettent dactiver certaines fonctionnalits du protocole ACPI.
Loption Advanced Power Management BIOS support permet dactiver la gestion dnergie
APM par lintermdiaire du BIOS. Cette mthode de gestion dnergie est beaucoup plus sre que
lACPI, car elle est plus ancienne et en gnral parfaitement support par le matriel actuel. Il faut
activer le support de la gestion dnergie par APM si lon veut que lordinateur steigne tout seul lors
de larrt du systme. Il est donc recommand de rpondre par Y cette question. Notez toutefois
que cette fonctionnalit nest disponible que pour les ordinateurs disposant dun botier au format
ATX. On remarquera que ce nest pas la gestion dnergie APM qui gre larrt des disques durs et la
veille des moniteurs Green , il est possible davoir ces fonctionnalits mme si lon na pas activ
la gestion dnergie APM. On notera galement que lhorloge logicielle de Linux prend du retard
lorsque lordinateur passe en veille. Les options suivantes dpendent fortement de la conguration
APM des machines. Les options de ce menu ne seront pas dcrites plus en dtails ici, car elles sont
trop spciques chaque modle de machine. Pour la plupart des gens, il faut rpondre N toutes
ces questions.
A.5. Menu Memory Technology Devices (MTD)
Ce menu vous permet dactiver la gestion des puces de mmoire Flash ou autres priphriques de
mmoire persistante. Ce genre de priphrique est gnralement utilis pour raliser des systmes de
chiers sur les systmes embarqus, qui ne disposent pas ncessairement de disques magntiques.
Loption Memory Technology Device (MTD) support vous donnera accs aux choix des
diffrents pilotes pour les matriels supports. La rponse recommande est N. Les sous-menus de
ce menus sont les menus RAM/ROM/Flash chip drivers , Mapping drivers for chip
access , Self-contained MTD device drivers et NAND Flash Device Drivers .
A.6. Menu Parallel port support
Loption Parallel port support permet dactiver la gestion du port parallle au niveau du
noyau. Il est recommand de le faire sous la forme de module, car le port parallle nest pas souvent
utilis. De toutes faons, il est recommand dactiver cette fonctionnalit, en rpondant par Y ou
par M. Quelle que soit la rponse donne, on pourra ainsi utiliser le port parallle pour plusieurs
fonctionnalits diffrentes (imprimante, lecteurs externes, etc.). Rpondez par Y ou par M.
Loption PC-style hardware (NEW) permet dindiquer au noyau que le port parallle est com-
patible PC. Si vous compilez le noyau pour un PC ou un Alpha, rpondez par M cette question.
Loption Multi-IO cards (parallel and serial) permet de prendre en charge les ports
parallle et srie additionnels fournis par des cartes PCI. La rponse recommande est N.
Loption Use FIFO/DMA if available (EXPERIMENTAL) permet de demander au noyau
dutiliser une interruption et un canal DMA pour accder au port parallle, si le chipset de la carte
mre le supporte. Cela permet gnralement dacclrer les entres / sorties sur le port parallle, en
vitant au noyau dutiliser un mcanisme de consultation priodique de ltat du port an de savoir
sil est capable daccepter des donnes ou si des donnes doivent tre lues. Notez que, par dfaut,
le noyau nutilisera aucune ligne dinterruption pour accder au port parallle, et ce mme si vous
avez activ cette option. Pour changer le comportement par dfaut, vous devrez passer le paramtre
parport au noyau lors de son dmarrage, suivi de ladresse du port et de la ligne dinterruption
utiliser, spars par une virgule. Si vous avez demand la compilation du gestionnaire de ports paral-
373
Annexe A. Options de conguration du noyau
lles sous forme de module, vous devrez spcier ces options dans le chier /etc/modules.conf.
La rponse recommande est Y.
Loption SuperIO chipset support (EXPERIMENTAL) permet dactiver la gestion des chip-
set SuperIO prsents sur certaines cartes mres. La rponse recommande est N.
Loption Support for PCMCIA management for PC-styles ports permet dutiliser les
outils PCMCIA pour les priphriques sur port parallles. La rponse recommande est N.
Loption Sparc hardware (EXPERIMENTAL) permet de prendre en charge les ports parallles
des vieilles stations Sparc de Sun. Les nouvelles stations Ultra Sparc utilisent prsent des ports
parallles de PC, et peu de gens ont utiliser cette option. La rponse recommande est N.
Loption Support foreign hardware permet dactiver la gestion de matriels exotiques pour
le port parallle. Il est recommand de rpondre N cette question.
Loption IEEE 1284 transfer modes permet de paramtrer le gestionnaire de ports parallles
pour utiliser les communications bidirectionnelles du port. Cette option est utile si lon utilise une
imprimante capable dindiquer son tat lordinateur. Notez que pour que cette fonctionnalit soit
disponible, vous devez galement paramtrer votre BIOS pour que le port parallle soit en mode EPP
ou ECP. La rponse recommande est Y.
A.7. Menu Plug and Play conguration
Loption Plug and Play support permet dactiver la gestion du plug and play au niveau du
noyau. La rponse recommande est Y.
Loption ISA Plug and Play support permet dactiver les fonctionnalits Plug and Play pour
les priphriques ISA. Il est ainsi possible dviter davoir utiliser les outils isapnp et pnpdump, et
dviter la compilation des gestionnaires de ces priphriques en modules. La conguration de ces
priphriques ISA Plug and Play en est grandement simplie. Il est donc recommand de rpondre
par Y cette question. Toutefois, si vous dsirez affecter manuellement les lignes dinterruptions,
canaux DMA et ports dentre/sortie pour vos cartes, vous devez rpondre par N.
A.8. Menu Block devices
Loption Normal PC floppy disk support permet dactiver la gestion des lecteurs de dis-
quettes sous Linux. Vous pouvez rpondre par Y cette question.
Loption PS/2 ESDI hard disk support permet dactiver la gestion des disques ESDI sur
les ordinateurs de type PS/2. Cette option nest disponible que si vous avez activ la gestion du bus
MCA laide de loption MCA support du menu General setup . La rponse recommande
est N.
Loption XT hard disk support permet dactiver la gestion des disques durs XT. Ce sont de
trs vieux disques durs, que plus personne nutilise. Rpondez par N cette question.
Loption Parallel port IDE device support permet dactiver la gestion des priphriques
IDE connects sur port parallle. Il est recommand de placer ce pilote en module, car les lecteurs sur
port parallle ne sont pas toujours connects lordinateur. Rpondez par M cette question.
Loption Parallel port IDE disks permet dactiver le support des disques IDE connects
sur port parallle. Si vous disposez dun tel disque, rpondez par M cette question, et choisissez
le protocole de communication sur port parallle correspondant dans lune des options suivantes. La
rponse recommande est N.
374
Annexe A. Options de conguration du noyau
Loption Parallel port ATAPI CD-ROMs permet dactiver la gestion des CD-ROM ATAPI
connects sur port parallle. Si vous disposez dun tel lecteur, rpondez par M cette question, et
choisissez le protocole de communication sur port parallle correspondant dans lune des options
suivantes. La rponse recommande est N.
Loption Parallel port ATAPI disks permet dactiver la gestion des disques ATAPI connec-
ts sur port parallle. Si vous disposez dun tel disque, rpondez par M cette question, et choisissez
le protocole de communication sur port parallle correspondant dans lune des options suivantes. La
rponse recommande est N.
Loption Parallel port ATAPI tapes permet dactiver la gestion des lecteurs de bandes
connects sur port parallle. Si vous disposez dun tel lecteur, rpondez par M cette question, et
choisissez le protocole de communication sur port parallle correspondant dans lune des options
suivantes. La rponse recommande est N.
Loption Parallel port generic ATAPI devices permet la gestion de priphriques ATA-
PI non standards connects au port parallle. Les logiciels utilisateur peuvent envoyer des commandes
ATAPI spciques ces priphriques par lintermdiaire de ce gestionnaire. En particulier, les gra-
veurs de CD connects sur port parallle utilisent cette fonctionnalit. Si vous disposez dun graveur
de CD sur port parallle, rpondez par M cette question, et choisissez le protocole de communica-
tion sur port parallle correspondant dans lune des options suivantes. La rponse recommande est
N.
Les options qui suivent permettent de choisir les protocoles de communication sur port parallle
adapts votre matriel. Vous devez en choisir au moins un si vous comptez utiliser un priphrique
IDE connect sur le port parallle. Les rponses recommandes sont N pour les protocoles que votre
matriel ne comprend pas.
Loption Compaq SMART2 support permet dactiver la gestion des cartes contrleurs Smart
Array de Compaq. moins que vous ne disposiez dune telle carte, la rponse recommande est N.
Loption Compaq Smart Array 5xxx support permet dactiver la gestion des cartes contr-
leurs Smart Array 5xxx de Compaq. moins que vous ne disposiez dune telle carte, la rponse
recommande est N. Si vous activez cette fonctionnalit, vous pourrez galement activier loption
SCSI tape drive support for Smart Array 5xxx , qui permet dutiliser des priph-
riques SCSI connects sur les contrleurs Smart Array 5xxx. La rponse recommande pour cette
option est galement N.
Loption Mylex DAC960/DAC1100 PCI RAID Controler support permet dactiver la ges-
tion des contrleurs RAID Mylex. La rponse recommande est N.
Loption Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL) per-
met dactiver la gestion des cartes mmoires alimentes par batterie MM5415. La rponse recom-
mande est N.
Loption Loopback device support permet dutiliser des chiers classiques pour y placer un
systme de chiers. Cela est essentiellement utilis pour crer des images de CD et les tester avant
de les graver. Si vous disposez dun graveur de CD-ROM, il est recommand de rpondre Y cette
question. Sinon, rpondez M, pour vous rserver la possibilit dutiliser des systmes de chiers
stocks dans des chiers classiques.
Loption Network block device support permet daccder aux chiers spciaux de pri-
phriques de type bloc dun ordinateur distant par lintermdiaire du rseau. Cette fonctionnalit est
peu utilise, la rponse recommande est donc N.
Loption RAM disk support permet dactiver la gestion des disques virtuels. Ces disques sont
souvent utiliss pour crer des disquettes de rparation, qui chargent les utilitaires systmes sur un
375
Annexe A. Options de conguration du noyau
disque en mmoire. La rponse recommande est N pour un systme normal, et Y pour un systme
destin tre plac sur une disquette de rparation.
Loption Default RAM disk size permet de xer la taille par dfaut des disques virtuels. La
taille recommande est de 4096 Ko.
Loption Initial RAM disk (initrd) support permet dactiver la possibilit de monter le
systme de chier racine sur un disque virtuel au dmarrage. La rponse recommande est N pour
un systme normal, Y pour un systme destin tre plac sur une disquette de rparation.
Loption Per partition statistics in /proc/partitions permet de demander au
noyau de maintenir des statistiques pour chaque partition. Ces statistiques sont accessibles dans le
chier partition du systme de chiers virtuel /proc/. La rponse recommande est N.
A.9. Menu Multi-device support (RAID and LVM)
Loption Multiple devices driver support (RAID and LVM) permet dactiver la ges-
tion de la redondance de donnes RAID et des disques logiques. La technologie RAID permet de
raliser des agrgats de disques, soit dans le but de simuler des disques de grande capacit, soit an
de stocker les donnes de manire redondante sur plusieurs disques an dobtenir une scurit ac-
crue de ces donnes. La technologie LVM permet quant elle uniquement de regrouper plusieurs
volumes physiques an de simuler la prsence dun volume logique de trs grande capacit. Vous
pouvez rpondre par Y cette question si vous avez besoin de lune de ces fonctionnalits. Dans le
cas contraire, rpondez par N. La rponse recommande est N.
Loption RAID support permet dactiver la prise en charge des technologies RAID au niveau
logiciel. Cette option nest pas ncessaire pour utiliser les technologies RAID avec un matriel spci-
que. La rponse recommande est N.
Loption Linear (append) mode permet de concatner plusieurs partitions pour ne former
quune seule zone de donnes plus grande. Cette fonctionnalit nassure pas la redondance des don-
nes. La rponse recommande est N.
Loption RAID-0 (striping) mode permet de rpartir les donnes sur plusieurs partitions
de manire quilibre. Cela permet de simuler des disques de trs grande capacit, et galement
daugmenter les performances en minimisant les temps daccs, si ces partitions sont sur des disques
diffrents. Cette fonctionnalit nassure cependant pas la redondance des donnes. La rponse recom-
mande est N.
Loption RAID-1 (mirroring) mode permet de dupliquer les donnes sur plusieurs disques la
vole. Cette redondance des donnes permet dassurer une grande scurit. La rponse recommande
est N.
Loption RAID-4/RAID-5 mode permet dactiver le support logiciel RAID-4 ou RAID-5. Dans le
mode de fonctionnement RAID-4, un des disques est utilis pour contrler la validit des donnes sur
les autres disques. Dans le mode de fonctionnement RAID-5, ces donnes de contrle sont rparties
sur tous les disques, pour une capacit toujours diminue de la capacit de lun des disques. La rponse
recommande est N.
Loption Mutipath I/O support permet dactiver le support des priphriques capables dtre
accds par diffrents jeux de ports dentre / sortie. La rponse recommande est N.
Loption Logical volume manager (LVM) support permet dactiver la gestion des volumes
virtuels. Avec cette option, vous pourrez faire des agrgats de plusieurs disques, priphriques RAID
ou priphriques loopback an de simuler un priphrique de type bloc de trs grande capacit. La
rponse recommande est N.
376
Annexe A. Options de conguration du noyau
A.10. Menu Networking options
Loption Packet socket permet dautoriser la manipulation directe des trames rseau par des
applications clientes. Cette fonctionnalit peut tre utiles pour certains utilitaires rseau, et en parti-
culier elle est ncessaire pour les clients et les serveurs DHCP. Loption recommande est donc Y.
Loption Packet socket: mmapped IO nest disponible que si loption prcdente a t ac-
tive. Elle permet dutiliser un mcanisme de communication optimis pour la communication des
trames rseau aux applications clientes, bas sur des segments de mmoire partage (ce qui vite une
copie des donnes transfres). La rponse recommande est Y.
Loption Netlink device emulation est obsolte et nest plus utilise. Rpondez par Y
cette question pour assurer la compatibilit avec dventuels vieux programmes.
Loption Network packet filtering (replaces ipchains) permet dactiver les fonc-
tions de ltrage des paquets rseau du noyau. Ces fonctions peuvent tre utilises pour plusieurs
raisons, les plus courantes tant sans doute la ralisation de Firewall et de partages de connexion
Internet. Pour information, un Firewall est un programme qui ltre les informations en provenance
et destination du rseau, selon des rgles de scurit prdnies. Ces rgles permettent deffectuer
le ltrage en fonction des adresses et du type des paquets mis et reus. Les actions qui peuvent tre
prises sur les paquets ainsi ltrs peuvent tre varies, allant de llimination du paquet sa modi-
cation ou son transfert vers une autre adresse que celle vers laquelle il devait aller initialement. Cette
fonctionnalit permet donc galement de raliser la translation dadresse des paquets TCP/IP. Vous
devez activer cette option si vous dsirez raliser un partage de connexion Internet ou un Firewall.
La rponse recommande est N.
Loption Network packet filtering debugging active la gestion des messages de dbo-
gage des fonctionnalits de ltrage des paquets. Ces messages peuvent tre trs utiles pour le d-
bogage des rgles de ltrage et de translations dadresses du noyau, aussi la rponse recommande
est-elle Y.
Loption Socket Filtering active la fonctionnalit permettant aux programmes utilisateurs
denregistrer un ltre pour chaque canal de communication rseau. Ce ltre indique au noyau si
les paquets correspondants doivent tre transmis ou rejets. Ce type de ltre est trs utilis pour la
ralisation de Firewall volus, ou doutil danalyse de trac du rseau. Dautre programmes peuvent
utiliser cette fonctionnalit pour analyser les paquets qui circulent sur le rseau. Cest en particulier
le cas des clients et des serveurs DHCP, aussi la rponse recommande est-elle Y.
Loption Unix domain sockets permet dactiver les communications rseau bases sur la no-
tion de socket Unix. Comme la plupart des programmes Unix utilisent ce paradigme de communica-
tion, il faut rpondre Y cette question.
Loption TCP/IP networking permet dactiver le protocole de communication rseau TCP/IP.
Le systme utilisant intensivement ce protocole de communication, il faut rpondre Y cette ques-
tion.
Loption IP: multicasting permet dautoriser lenvoi des donnes plusieurs ordinateurs en
mode multicast (un paquet pour plusieurs destinations). Cette fonctionnalit permet de rduire le trac
rseau dans certaines applications, mais elle est trs peu utilise. La rponse recommande est donc
N.
Loption IP: advanced router permet de congurer le systme pour tre un routeur (ordina-
teur qui transfre des informations dun rseau un autre). La rponse recommande est N.
Loption IP: policy routing permet dactiver le routage des paquets en fonction des adresses
source en plus des adresses destination des paquets. La rponse recommande est N.
377
Annexe A. Options de conguration du noyau
Loption IP: use netfilter MARK value as routing key permet dactiver le routage en
fonction du champ MARK des paquets en plus des adresses destination. Le champ MARK est utilis
par les fonctionnalits de ltrage du noyau, et permet didentier certains paquets pour leur faire subir
des traitements ultrieurs. Parmi ces traitements, on peut utiliser un routage spcique, ce que cette
option permet de raliser. La rponse recommande est N.
Loption IP: fast network address translation permet de convertir les adresses source
et destination des paquets qui passent par lordinateur selon une mthode prdtermine. Cette fonc-
tionnalit nest pas ncessaire pour raliser la translation dadresse, aussi la rponse recommande
est-elle N.
Loption IP: equal cost multipath permet de choisir une route possible parmi plusieurs
routes pour chaque paquet transmis. La rponse recommande est N.
Loption IP: use TOS value as routing key permet de prendre en compte le type de ser-
vice auquel appartient le paquet courant dans la dtermination de la route. La rponse recommande
est N.
Loption IP: verbose route monitoring permet dactiver les traces du sous-systme de
routage. La rponse recommande est N.
Loption IP: large routing tables permet daccrotre la taille des tables de routage et
daugmenter ainsi leur rapidit dexcution pour les grands rseaux. La rponse recommande est
N.
Loption IP: kernel level autoconfiguration permet de raliser la conguration du pro-
tocole rseau IP au niveau du noyau, lors de la phase de dmarrage. Cette option est utilise notam-
ment lorsquon dsire monter le systme de chiers racine par NFS. La rponse recommande est
N.
Loption IP: DHCP support permet de demander au noyau de dterminer automatiquement
ladresse IP lors du dmarrage grce au protocole DHCP . Cette option nest valide que lorsque
loption IP: kernel level autoconfiguration a t active. La rponse recommande est
N.
Loption IP: BOOTP support permet de demander au noyau de dterminer automatiquement
ladresse IP lors du dmarrage grce au protocole BOOTP . Cette option nest valide que lorsque
loption IP: kernel level autoconfiguration a t active. La rponse recommande est
N.
Loption IP: RARP support permet de demander au noyau de dterminer automatiquement
ladresse IP lors du dmarrage grce au protocole RARP . Ce protocole est un protocole plus
ancien que le protocole BOOTP, il est en passe de devenir obsolte. Cette option nest valide que
lorsque loption IP: kernel level configuration a t active. La rponse recommande
est N.
Loption IP: tunneling permet dactiver lencapsulation des paquets dun protocole dans les
paquets dun autre protocole. La rponse recommande est N.
Loption IP: GRE tunnels over IP permet dautoriser lencapsulation des protocoles IPv4
et IPv6 avec la mthode GRE (abrviation de langlais Generic Routing Encapsulation ). Cette
mthode dencapsulation est destine aux routeurs Cisco. La rponse recommande est N.
Loption IP: broadcast GRE over IP permet de crer un rseau Ethernet virtuel sur IP par
lintermdiaire de la mthode dencapsulation GRE, qui permet deffectuer des broadcasts dIP dans
le rseau virtuel. La rponse recommande est N.
Loption IP: multicast routing permet de congurer le systme pour le routage des paquets
ayant plusieurs destinations (cest--dire les paquets IP envoys en multicast). La rponse recomman-
de est N.
378
Annexe A. Options de conguration du noyau
Loption IP: PIM-SM version 1 support permet dactiver la gestion du protocole de routage
PIM des paquets envoys en multicast. Ce protocole est gr par Cisco. La rponse recommande
est N.
Loption IP: PIM-SM version 2 support permet dactiver la gestion de la version 2 du
protocole de routage PIM. La rponse recommande est N.
Loption IP: ARP daemon support (EXPERIMENTAL) permet de limiter 256 la table
dadresses physiques utilises pour les requtes ARP. Cette option est utile pour limiter la
consommation mmoire du noyau dans les grands rseaux. Les requtes ne pouvant tre satisfaites
directement sont transfres un dmon, repoussant ainsi le reste de la table hors de la mmoire du
noyau. La rponse recommande est N.
Loption IP: TCP Explicit Congestion Notification support permet dactiver la
prise en charge des notications de surcharge des rseaux TCP/IP. Ces notications sont envoyes
par les routeurs aux clients an dviter que le rseau scroule. Elle permet donc de diminuer
le nombre de paquets perdus et daccrotre ainsi les performances du rseau. Malheureusement,
certains rewall sur Internet ne permettent pas les communications avec les machines utilisant cette
fonctionnalit. La rponse recommande est donc N.
Loption IP: TCP syncookie support (disabled per default) permet de protger la
machine dune certaine forme dattaque rseau. Le fait de rpondre par Y cette question inclut le
support de cette protection, mais ne lactive pas par dfaut. Lactivation doit se faire par conguration
dynamique du noyau via /proc/. La rponse recommande est N.
Loption The IPv6 protocol (EXPERIMENTAL) permet dactiver la gestion du protocole
IPv6. La rponse recommande est N.
Loption Kernel httpd acceleration (EXPERIMENTAL) est une option permettant
dintgrer un petit serveur Web trs optimis au sein dun thread du noyau. Ce serveur nest capable
de dlivrer que des pages statiques, mais dune manire extrmement efcace car toutes les
oprations sont effectues au sein du noyau. Lorsquune requte HTTP ne peut pas tre excute par
le thread du noyau, celui-ci peut transfrer la requte un serveur Web classique, comme Apache
par exemple, an que celui-ci y rponde. Cette fonctionnalit est exprimentale et intgre au sein du
noyau du code classiquement situ dans les applicatifs utilisateur. Aussi est-il vivement recommand
de rpondre N cette question et de laisser de ct cette fonctionnalit.
Loption Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) permet dactiver la ges-
tion des rseaux ATM. ATM est un type de rseau travaillant en mode connect (cest--dire quune
connexion permanente est tablie entre les deux machines), ce qui permet deffectuer une ngociation
initiale des ressources allouer cette connexion. Les rseaux ATM sont donc relativement adapts
aux transferts de donnes temps rel, comme la voix ou la vido. Les paquets transfrs sont tous de
taille xe, ce qui permet de simplier leur traitement et dobtenir des dbits trs grands. ATM est uti-
lis aussi bien pour les rseaux de grande chelle que pour les rseaux locaux. Vous pouvez rpondre
par Y cette question si vous tes connect un rseau ATM. La rponse recommande est N.
Loption Classical IP over ATM permet dactiver le support du protocole IP encapsul dans
un rseau virtuel ATM. Une alternative cette option est loption LAN Emulation (LANE)
support . La rponse recommande est N.
Loption Do NOT send ICMP if no neighbour permet dviter lenvoi de paquet ICMP si-
gnalant linaccessibilit dune machine lorsque le noyau supprime temporairement la connexion
cette machine de ses tables internes pendant certaines oprations de maintenance. La rponse recom-
mande est N.
Loption LAN Emulation (LANE) support permet de simuler un rseau local classique sur
un rseau ATM et ventuellement dtablir un pont entre ce rseau local virtuel et dautre rseaux
Ethernet rels. La rponse recommande est N.
379
Annexe A. Options de conguration du noyau
Loption Multi-Protocol Over ATM (MPOA) support permet ltablissement de canaux
virtuels ATM au travers des limites des rseaux an doptimiser le routage des donnes. La rponse
recommande est N.
Loption RFC1483/2684 Bridged protocols permet denvoyer des paquets Ethernet sur un
rseau virtuel ATM. La rponse recommande est N.
Loption Per-VC IP filter kludge nest pas documente et ne sera pas dcrite ici.
Loption 802.1Q VLAN Support (EXPERIMENTAL) permet de crer des interfaces rseau vir-
tuelles 802.1Q sur une interface Ethernet normale. La rponse recommande est N.
Loption The IPX protocol permet de prendre en charge le protocole rseau IPX de Novell.
La rponse recommande est N.
Loption IPX: Full internal IPX network permet de congurer le serveur pour quil ap-
paraisse comme un rseau IPX part entire, en lui assignant un numro de rseau Novell. Toutes
les requtes seront rediriges vers des nuds grs en interne pour ce rseau virtuel. La rponse
recommande est N.
Loption Appletalk protocol support permet dactiver la gestion des rseaux AppleTalk.
La rponse recommande est N.
Loption DECnet support permet dactiver la gestion des rseaux DECnet, initialement crs
par Digital (et repris maintenant par Compaq). La rponse recommande est N.
Loption DECnet: SIOCGIFCONF support permet de paramtrer les interfaces rseau via un
appel systme spcial. La validation de cette option peut provoquer des problmes avec certains utili-
taires, aussi la rponse recommande est-elle N.
Loption DECnet: router support (EXPERIMENTAL) permet dactiver les fonctionnalits de
routage sur les rseaux DECnet. La rponse recommande est N.
Loption DECnet: use FWMARK value as routing key (EXPERIMENTAL) permet
dtablir des rgles de routage pour les rseaux DECnet qui se basent sur la valeur du champ MARK
de ces paquets. Cette valeur peut tre modie par le code de ltrage des paquets du noyau laide
des rgles de rewalling. La rponse recommande est N.
Loption 802.1d Ethernet Bridging permet de congurer le systme comme un pont Ether-
net (un pont permet de regrouper physiquement plusieurs rseaux en un seul rseau physique). La
rponse recommande est N.
Loption CCITT X.25 Packet Layer (EXPERIMENTAL) permet dactiver la gestion du proto-
cole de bas niveau pour X.25. La rponse recommande est N.
Loption LAPB Data Link Driver (EXPERIMENTAL) permet dactiver la gestion du protocole
de communication de haut niveau de X.25. La rponse recommande est N.
Loption 802.2 LLC (EXPERIMENTAL) permet dencapsuler le protocole X.25 sur Ethernet. La
rponse recommande est N.
Loption Frame Diverter (EXPERIMENTAL) active une fonctionnalit permettant de dtour-
ner les trames rseau qui arrivent sur linterface rseau, mme si ces trames ne sont pas destines
linterface rseau courante. Grce cette option, il est facile de raliser des analyseurs rseau ou
dintercaler une machine Linux entre deux rseaux et de la congurer comme un pont an de raliser
un cache transparent pour certains protocoles. La rponse recommande est N.
Loption Acorn Econet/AUN protocols (EXPERIMENTAL) permet dactiver la gestion des
rseaux Econet. La rponse recommande est N.
Loption AUN over UDP permet dencapsuler les paquets Econet dans UDP. La rponse recom-
mande est N.
380
Annexe A. Options de conguration du noyau
Loption Native Econet permet de prendre en charge les cartes rseau Econet. La rponse
recommande est N.
Loption WAN rooter permet deffectuer le routage sur un rseau WAN (abrviation de
langlais Wide Area Network ). La rponse recommande est N.
Loption Fast switching (read help!) permet dactiver la communication entre les ma-
chines directement par lintermdiaire des interfaces rseau. Cette option est incompatible avec les
fonctionnalits de ltrage du noyau. Vous ne devez donc pas lactiver si vous dsirez raliser un Fire-
wall ou partager une connexion Internet. La rponse recommande est N.
Loption Forwarding between high speed interfaces permet de congurer les couches
rseau pour attendre avant de rmettre les paquets en cas de congestion extrme du rseau. La r-
ponse recommande est N.
A.11. Menu IP: Netlter Conguration
Loption Connection tracking (required for masq/NAT) permet de suivre la
connexions courantes an de dterminer quelle connexion un paquet appartient. Cela peut tre utile
si lon dsire crer des rgles de ltrage des paquets se basant sur les informations de gestion des
connexions pour les protocoles comme TCP. Cette option est galement ncessaire pour utiliser les
mcanismes de translation dadresse, vous devrez donc lactiver si vous dsirez effectuer un partage
de connexion Internet. La rponse recommande est N.
Loption FTP protocol support active la gestion du suivi des connexions FTP. Ces
connexions ncessitent en effet un traitement particulier, et vous devrez activer cette option
si vous voulez utiliser des connexions FTP avec un partage de connexion Internet. La rponse
recommande est Y.
Loption Amanda protocol support active la gestion des connexions utilisant le protocole
rseau du logiciel de sauvegarde Amanda. La rponse recommande est N, sauf si bien sr vous
utilisez ce logiciel.
Loption TFTP protocol support active la gestion du suivi des connexions TFTP. Si vous
utilisez des clients TFTP au travers de votre partage de connexion Internet, vous devez activer cette
option. La rponse recommande est N.
Loption IRC protocol support active la prise en charge des commandes de transfert de
chiers DDC du protocole IRC. Si vous utiliser IRC couramment, il est exprssment recommand
de rpondre Y cette question, faute de quoi vous ne pourrez pas changer de chiers avec vos
interlocuteurs.
Loption Userspace queueing via NETLINK (EXPERIMENTAL) permet de mettre disposi-
tion de programmes clients les paquets traits par le code de ltrage, par lintermdiaire de linterface
Netlink. La rponse recommande est N.
Loption IP tables support (required for filtering/masq/NAT) permet dactiver la
gestion des tables au sein du code de ltrage du noyau. Une table est en ralit un ensemble cohrent
de fonctionnalits permettant dappliquer des traitements aux paquets selon des rgles organises en
groupes. Ces traitements peuvent intervenir diffrents endroits dans la gestion des paquets par le
code rseau du noyau. Les deux tables les plus importantes sont celles qui permettent de raliser le
ltrage des paquets et les translations dadresses. Vous devez donc activer cette fonctionnalit si vous
dsirez raliser un Firewall ou un partage de connexion Internet. La rponse recommande est N.
Loption limit match support active la gestion de la limitation du nombre de fois par se-
conde quune rgle peut tre vrie par un paquet. Cette limitation est utile lorsquon enregistre des
381
Annexe A. Options de conguration du noyau
messages pour tous les paquets qui vrient certaines rgles, an dviter lengorgement des chiers
de traces du systme. La rponse recommande est N.
Loption MAC address match support active la gestion du critre de slection des paquets
bas sur leur adresse Ethernet source. Cette rgle nest utilisable que pour les paquets provenant
dune interface rseau de type Ethernet. La rponse recommande est N.
Loption Packet type match support vous permet de slectionner les paquets en fonction
de leur nature (broadcast, multicast, etc...). La rponse recommande est N.
Loption netfilter MARK match support active la gestion du critre de slection des paquets
bas sur le champ MARK de leur en-tte. Ce champ peut tre modi par certaines rgles des chanes
prcdemment traverses par les paquets, an de les marquer pour un traitement ultrieur. Cette option
doit donc obligatoirement tre active si lon dsire dtecter ces paquets pour effectuer ce traitement.
La rponse recommande est N.
Loption Multiple port match support permet dutiliser des plages de valeurs pour les ports
TCP et UDP dans les critres de slection des rgles pour ces deux protocoles. Sans cette option, les
ports doivent tre spcis un un, ce qui peut rendre relativement peu pratique la dnition de
certaines rgles. La rponse recommande est Y.
Loption TOS match support active la gestion du critre de slection des paquets bas sur le
champ TOS de leur en-tte. Ce champ permet de dnir le type de service des paquets, principalement
an de distinguer les paquets prioritaires des paquets normaux. La rponse recommande est N.
Loption ECN match support active la gestion du critre de slection des paquets bas sur le
champ ECN de leur en-tte. La rponse recommande est N.
Loption DSCP match support active la gestion du critre de slection des paquets bas sur le
champ DSCP de leur en-tte. La rponse recommande est N.
Loption AH/ESP match support active la gestion des critres de slection bass sur les infor-
mations utilises par les protocoles de scurisation AH et ESP de lextension IPSec du protocole IP.
La rponse recommande est N.
Loption LENGTH match support active la gestion du critre de slection bas sur la longueur
des paquets. La rponse recommande est N.
Loption TTL match support permet dutiliser le champ TTL des paquets comme critre de
slection. Ce champ permet de dnir la dure de vie des paquets au travers des diffrents routeurs,
et permet de limiter la propagation des paquets sur Internet un certain nombre dinterconnexions
seulement. La rponse recommande est N.
Loption tcpmss match support permet de prendre en compte le champ MSS des paquets de
demande de connexion dans les critres de slection. Ce champ indique la taille maximale que les
paquets de cette connexion devront utiliser pas la suite. La rponse recommande est N.
Loption Helper match support active la gestion du critre de slection des paquets
participant une connexion tablie et suivie par lune des fonctionnalits actives par loption
Connection tracking (required for masq/NAT) . La rponse recommande est N.
Loption Connection state match support permet de slectionner les paquets selon leur
rle dans la gestion des connexions rseau. Par exemple, cette option permet de distinguer les paquets
qui tablissent une connexion rseau des autres paquets. La rponse recommande est Y.
Loption Connection tracking match support permet de slectionner les paquets selon
les connexions rseau auxquels ils appartiennent. Par exemple, cette option permet de distinguer les
paquets de diffrentes connexions virtuelles dans le cas du tunneling. La rponse recommande est
N.
382
Annexe A. Options de conguration du noyau
Loption Unclean match support (EXPERIMENTAL) permet de slectionner les paquets dont
les en-ttes IP ne sont pas corrects ou contiennent des valeurs incohrentes. Ces paquets doivent
dabord avoir travers le code de validation de lintgrit des paquets des interfaces rseau pour pou-
voir tre ltrs selon ce critre. La rponse recommande est N.
Loption Owner match support (EXPERIMENTAL) permet de slectionner les paquets crs
par les processus locaux en utilisant comme critre les identiants de groupe, de processus et
dutilisateur de celui qui les a crs. Ces critres de slection ne sont pas utilisables sur les paquets
provenant de lextrieur. La rponse recommande est N.
Loption Packet filtering active la gestion de la table filter, couramment utilise pour
ltrer les paquets autoriss et raliser un Firewall. La rponse recommande est N.
Loption REJECT target support active la gestion de la cible REJECT dans les rgles des
chanes de la table filter. Cette cible se distingue de la cible DROP, gre nativement par la table
filter, par le fait quun message derreur est renvoy la machine source du paquet. La rponse
recommande est Y.
Loption MIRROR target support (EXPERIMENTAL) active la gestion de la cible MIRROR,
qui permet de renvoyer lmetteur les paquets qui sont dirigs vers cette cible dans une rgle de
ltrage. La rponse recommande est N.
Loption Full NAT active les fonctionnalits de translation dadresse, au travers de la table nat.
Cette option doit tre active si vous dsirez raliser un partage de connexion Internet. Dans le cas
contraire, la rponse recommande est N.
Loption MASQUERADE target support active la gestion du masquerading des paquets rseau.
Vous devez activer cette option si vous dsirez raliser un partage de connexion Internet. La rponse
recommande est N.
Loption REDIRECT target support active la gestion de la translation dadresse destination
pour rediriger les paquets vers la machine locale. Cette option est trs utilise pour raliser des proxies
qui devront fonctionner de manire transparente pour les clients. La rponse recommande est N.
Loption NAT on local connections (READ HELP) permet dactiver le support des transla-
tions dadresses entre les processus de la machine locale. La rponse recommande est N.
Loption Basic SNMP-ALG support (EXPERIMENTAL) active la gestion de la translation
dadresse pour permettre laccs et le contrle des machines situes sur le rseau et pour lesquelles
un partage de connexion Internet est ralis. moins que vous nutilisiez le protocole SNMP pour
administrer les machines de votre rseau, vous pouvez rpondre N cette question.
Loption Packet mangling active la gestion de la table mangle. Cette table a pour but de donner
les moyens deffectuer diverses modications des en-ttes des paquets, an de les marquer pour un
traitement ultrieur spcique. La rponse recommande est N.
Loption TOS target support permet dutiliser la cible TOS dans les rgles des chanes de
la table mangle. Cette cible autorise la modication du champ Type Of Service des paquets,
principalement dans le but de modier leur priorit. La rponse recommande est N.
Loption ECN target support permet dutiliser la cible ECN dans les rgles des chanes de
la table mangle. Cette cible autorise la modication du champ ECN des paquets. La rponse
recommande est N.
Loption DSCP target support permet dutiliser la cible DSCP dans les rgles des chanes de
la table mangle. Cette cible autorise la modication du champ DSCP des paquets. La rponse
recommande est N.
Loption MARK target support active la gestion de la cible MARK, qui permet de marquer les
paquets avec un traceur an de pouvoir les identier ultrieurement. Par exemple, il est possible de
383
Annexe A. Options de conguration du noyau
modier le routage de certains paquets selon quils sont marqus ou non. On peut ainsi raliser des
liaisons prioritaires pour certaines catgories de paquets. La rponse recommande est N.
Loption LOG target support active la gestion de la cible LOG. Cette cible permet denregistrer
des messages de dbogage dans les chiers de traces du systme. On veillera activer galement la
gestion des limites sur les rgles de ltrage an dviter dengorger les chiers de traces si lon dsire
utiliser cette option. La rponse recommande est N.
Loption ULOG target support active la gestion de la cible ULOG. Cette cible permet
denregistrer des messages de dbogage au niveau dun processus de gestion de traces fonctionnant
dans lespace utilisateur. La rponse recommande est N.
Loption TCPMSS target support active la gestion de la cible TCPMSS, qui permet de mo-
dier le champ MSS des paquets TCP. Cette cible est utilise gnralement pour rduire cette taille
la valeur xe par le champ MTU des interfaces rseau, an de prvenir la perte de paquets quand
cette taille nest pas correctement dnie. Cela peut se produire avec certains fournisseurs daccs
Internet, dont les passerelles sont mal congures. En gnral, vous pouvez rpondre N cette
question.
Loption ARP tables support nest pas documente et ne sera pas dcrite ici.
Loption ARP packet filtering nest pas documente et ne sera pas dcrite ici.
Loption ipchains (2.2-style) support nest disponible que si lon utilise les modules du
noyau pour Netlter. Elle permet dutiliser les outils de conguration des Firewall et des translations
dadresses ipchains, qui taient utiliss avec les noyaux 2.2. de Linux. Il sagit donc dune option de
compatibilit. On prfrera dornavant la commande iptables, aussi la rponse recommande est-elle
N.
Loption ipfwadm (2.0-style) support nest disponible que si lon utilise les modules du
noyau pour Netlter. Elle permet dutiliser les outils de conguration des Firewall et des translations
dadresses ipfwadm, qui taient utiliss avec les noyaux 2.0. de Linux. Il sagit donc dune option de
compatibilit. On prfrera dornavant la commande iptables, aussi la rponse recommande est-elle
N.
A.12. Menu IPv6: Netlter Conguration
Loption Userspace queueing via NETLINK (EXPERIMENTAL) permet dactiver la gestion
des transfert des paquets IPv6 sur un processus utilisateur via linterface NETLINK. La rponse re-
commande est N.
Loption IP6 tables support (required for filtering/masq/NAT) permet dactiver
la gestion de Netlter pour le protocole IPv6. La rponse recommande est N.
Loption limit match support permet dactiver la gestion des limites sur le nombre de fois
par seconde quune rgle peut tre vrie. Cette option permet par exemple dviter dengorger les
chiers de traces du systme lorsquun grand nombre de rgles sont vries. La rponse recomman-
de est N.
Loption MAC address match support permet dactiver le critre de slection des paquets
bas sur les adresses physiques des cartes rseau des machines pour le trage des paquets. La rponse
recommande est N.
Les options Routing header match support (EXPERIMENTAL) , Hop-byHop and
Dst opts header match (EXPERIMENTAL) , Fragmentation header match support
(EXPRERIMENTAL) et HL match support ne sont pas documentes et ne seront pas dcrites
ici.
384
Annexe A. Options de conguration du noyau
Loption Multiple port match support permet dutiliser des plages de valeurs pour les
ports TCP et UDP dans les critres de slection des rgles pour ces deux protocoles. La rponse
recommande est N.
Loption Owner match support (EXPERIMENTAL) permet de slectionner les paquets crs
par les processus locaux en utilisant comme critre les identiants de groupe, de processus et
dutilisateur de celui qui les a crs. La rponse recommande est N.
Loption netfilter MARK match support permet dactiver la gestion du critre de slection
des paquets bas sur le champ MARK de leur en-tte. Ce champ peut tre modi par les rgles de la
chane mangle, comme pour le protocole IPv4. La rponse recommande est N.
Loption IPv6 Extensions Headers Match (EXPERIMENTAL) permet dactiver la gestion
du critre de slection des paquets utilisant des extensions IPv6. La rponse recommande est N.
Loption AH/ESP match support (EXPERIMENTAL) permet dactiver la slection des paquets
des connexions scurises par les extensions AH et ESP. La rponse recommande est N.
Loption Packet Length match support permet dactiver la gestion du critre de slection
des paquets bas leur taille. La rponse recommande est N.
Loption UEI64 address check (EXPERIMENTAL) permet dactiver la vrication de la vali-
dit des adresses IPv6 sources. La rponse recommande est N.
Loption Packet filtering permet dactiver la gestion de la table filter, an de raliser par
exemple un Firewall. La rponse recommande est N.
Loption LOG target support active la gestion de la cible LOG. Cette cible permet denregistrer
des messages de dbogage dans les chiers de traces du systme. On veillera activer galement la
gestion des limites sur les rgles de ltrage an dviter dengorger les chiers de traces si lon dsire
utiliser cette option. La rponse recommande est N.
Loption Packet mangling permet dactiver la gestion de la table mangle, qui autorise la mo-
dication de certains champs des en-ttes des paquets IP. La rponse recommande est N.
Loption MARK target support permet de prendre en charge la gestion de la cible MARK, an
de marquer les paquets vriant certaines rgles, par exemple pour effectuer un traitement ultrieur.
La rponse recommande est N.
A.13. Menu AppleTalk devices
Loption Appletalk interfaces support active la gestion des interfaces rseau Appletalk.
Ce sont des interfaces rseau permettant de communiquer sur les rseaux Apple dancienne gnra-
tion. La rponse recommande est N.
Les options Apple/Farallon LocalTalk PC support et COPS LocalTalk PC
support permettent de grer les adaptateurs LocalTalk pour PC. Les options qui suivent
permettent de choisir les gestionnaires de priphriques appropris votre matriel. La rponse
recommande est N.
Loption AppleTalk-IP driver support permet de se connecter un rseau utilisant le pro-
tocole IP via un adaptateur rseau AppleTalk. Cette fonctionnalit est exprimentale. La rponse
recommande est N.
Loption IP to Appletalk-IP Encapsulation support permet dencapsuler les paquets
IP dans des paquets AppleTalk. Cette fonctionnalit est utilise par les machines Linux qui nont
accs qu un rseau Appletalk. La rponse recommande est N.
385
Annexe A. Options de conguration du noyau
Loption Appletalk-IP to IP Decapsulation support permet dextraire les paquets IP
encapsuls dans des paquets IP. Cette fonctionnalit est utilise par les machines Linux qui font ofce
de passerelles vers Internet pour les machines dun rseau Appletalk. La rponse recommande est
N.
A.14. Menu QoS and/or fair queueing
Loption QoS and/or fair queuing permet dactiver les options de conguration des algo-
rithmes qui xent les priorits sur les paquets envoyer sur le rseau. La rponse recommande est
N.
Les options qui suivent permettent de choisir les algorithmes utiliser pour la dtermination des prio-
rits dmission. Parmi ces algorithmes, on retrouve les algorithmes bass sur la notion de qualit de
service, qui peuvent tre activs grce loption QoS support . Les options suivantes permettent
de paramtrer les notions attaches la qualit de service.
A.15. Menu Network testing
Ce menu ne comprend que loption Packet Generator (USE WITH CAUTION) , qui permet
de gnrer diffrents types de paquets et de les envoyer sur une interface rseau des ns de tests.
Cette opration peut tre dangereuse pour la machine locale et les autres machines du rseau, aussi la
rponse recommande est-elle N.
A.16. Menu Telephony Support
Loption Linux telephony support permet dactiver la gestion des cartes tlphoniques. Ces
cartes permettent de transfrer les communications tlphoniques sur des supports numriques, par
exemple en encapsulant les informations sonores sur un rseau TCP/IP. Cette option na rien voir
avec un modem, qui fait exactement linverse (transfert des donnes informatiques sur un rseau
tlphonique analogique). La rponse recommande est N.
Loption QuickNet Internet LineJack/PhoneJack support active la prise en charge des
cartes tlphoniques Quicknet. Vous pouvez rpondre Y ou M si vous possdez ce matriel, sinon
la rponse recommande est N.
Loption QuickNet Internet LineJack/PhoneJack PCMCIA support active la prise en
charge des cartes tlphoniques Quicknet connectes sur port PCMCIA. Vous pouvez rpondre Y ou
M si vous possdez ce matriel, sinon la rponse recommande est N.
A.17. Menu ATA/IDE/MFM/RLL support
Loption ATA/IDE/MFM/RLL support permet dactiver la gestion des disques durs et autres pri-
phriques IDE. La rponse recommande est Y. Les options spciques chaque type de contrleur
sont accessibles dans le sous-menu IDE, ATA and ATAPI Block devices .
386
Annexe A. Options de conguration du noyau
A.18. Menu IDE, ATA and ATAPI Block devices
Loption Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support permet dactiver la
gestion des disques IDE. moins que votre ordinateur ne soit compltement SCSI, rpondez par Y
ou M cette question. Si vous rpondez par M, il faut que Linux soit install sur un disque SCSI
amorable. Il est recommand de rpondre par Y cette question.
Loption Use old disk-only driver on primary interface permet dutiliser un vieux
pilote pour les disques IDE connects la premire interface IDE et qui poseraient quelques pro-
blmes avec le pilote gnral. Seule la premire interface sera concerne par cette option, les autres
interfaces utiliseront le nouveau pilote. En gnral, la rponse cette question est N.
Loption Include IDE/ATA-2 DISK support permet dutiliser les disques durs IDE et ATAPI.
Si lordinateur possde un disque IDE, il est fortement recommand de rpondre Y cette question.
On ne doit rpondre N que si lordinateur est compltement SCSI. De plus, on prendra garde au
fait que lon ne peut pas mettre les fonctionnalits ncessaires au dmarrage de lordinateur dans des
modules. Cela signie que si le disque de dmarrage est un disque IDE, il ne faut pas mettre cette
fonctionnalit dans un module. Donc, pour la plupart des gens, il faut rpondre Y cette question.
Loption Use multi-mode by default permet dactiver la gestion du mode de transfert mul-
tiple par dfaut. Cette option nest ncessaire que pour quelques cas particuliers, aussi la rponse
recommande est-elle N.
Loption Auto-Geometry Resizing support permet dactiver le support des disques durs de
taille suprieure 32 Go sur certaines machines disposant dun BIOS AWARD. La rponse recom-
mande est N.
Les options qui suivent permettent dactiver des fonctionnalits spciques aux diffrentes marques
de disques durs. Ces options sont rserves aux dveloppeurs des gestionnaires de priphriques IDE
et ne doivent pas tre actives. La rponse recommande est donc N.
Loption PCMCIA IDE support permet dactiver la gestion des priphriques IDE connects par
un port PCMCIA sur les portables. Cette option nest accessible que si vous avez activ la gestion des
cartes PCMCIA avec loption CardBus support du menu PCMCIA/CardBus support . La
rponse recommande est N.
Loption Include IDE/ATAPI CDROM support permet dutiliser les CD-ROM IDE et ATAPI.
La plupart des ordinateurs possdent un lecteur de CD-ROM ATAPI actuellement, il est donc recom-
mand dactiver cette fonctionnalit. On essaiera dutiliser cette fonctionnalit sous forme de module
de prfrence, parce que cette fonctionnalit nest pas ncessaire en permanence. Cependant, si vous
disposez dun graveur de CD-ROM, il est recommand de ne pas activer cette fonctionnalit. Laccs
aux priphriques IDE ATAPI se fera alors par lintermdiaire de lmulateur de priphriques SC-
SI. Si vous disposez dun lecteur de CD-ROM IDE et que ne voulez pas utiliser lmulation SCSI,
vous pouvez rpondre Y cette question. Rpondez par N si vous ne possdez pas de lecteurs de
CD-ROM IDE et si vous ne voudrez pas en installer un ultrieurement. La rponse recommande est
M.
Loption Include IDE/ATAPI TAPE support permet dinclure la gestion des priphriques
de sauvegarde bande IDE et ATAPI (streamers). Peu de gens disposent de tels priphriques, et ceux
qui en ont un ne lutilisent que pour les sauvegardes, il est donc conseill de rpondre par M cette
question si vous possdez un tel priphrique, et par N sinon.
Loption Include IDE/ATAPI FLOPPY support permet dinclure la gestion des lecteurs de
disques amovibles IDE et ATAPI. Cest en particulier le cas pour les lecteurs LS120 et ZIP. Comme
les lecteurs de disques amovibles IDE sont assez rares, la rponse recommande est N.
Loption SCSI emulation support permet dmuler la prsence dun priphrique SCSI par
un priphrique IDE en convertissant les requtes SCSI en requtes ATAPI. Cette fonctionnalit est
387
Annexe A. Options de conguration du noyau
utile lorsquon veut utiliser certains logiciels bas niveau qui ne peuvent travailler quavec des p-
riphriques SCSI. Cest en particulier le cas des logiciel de gravage de CD. On notera que cette
fonctionnalit ne sera pas activable si le pilote IDE est actif. Il est donc ncessaire dutiliser celui-ci
sous la forme de module, ou de ne pas lutiliser du tout. La rponse recommande est N si vous ne
disposez pas dun graveur de CD-ROM ATAPI, et Y dans le cas contraire.
Loption IDE Taskfile Access permet dactiver lenvoi de commandes directement au niveau
du contrleur IDE. La rponse recommande est N.
Loption CMD640 chipset bugfix/support permet de contourner un bogue des chipsets IDE
CMD640. Vous ne devez activer cette option que si vous disposez dun tel chipset. La rponse recom-
mande est Y si vous avez un tel chipset, et N sinon.
Loption CMD640 enhanced support permet lautodtection des paramtre idaux pour les
chipsets IDE CMD640. Cette option nest disponible que si vous avez activ le support des chipsets
CMD640 dans la question prcdente. La rponse recommande est Y si vous avez un tel chipset, et
N sinon.
Loption ISA-PNP EIDE support permet de prendre en charge la gestion des cartes ISA Plug
and Play prenant en charge des disques EIDE additionnels. Cette option peut tre ncessaire si ces
cartes doivent tre initialises avant de chercher utiliser les disques qui y sont connectes. La rponse
recommande est N.
Loption Generic PCI IDE chipset support permet dactiver la gestion des priphriques
IDE sur bus PCI. Vous devez rpondre par Y cette question si vous disposez dune carte mre PCI
et de contrleurs IDE.
Loption Sharing PCI IDE interrupts support permet dactiver le partage des lignes
dinterruptions utilises par les contrleurs IDE avec les cartes prsentes sur le bus PCI. Cette fonc-
tionnalit ncessite un support matriel particulier de la part du contrleur IDE, support qui nest
prsent que sur certaines cartes mres. En gnral, lactivation de cette option ne perturbe pas le fonc-
tionnement du systme sur les ordinateurs incapables deffectuer le partage des lignes dinterruptions
des contrleurs IDE, mais la rponse recommande reste N.
Loption Generic PCI bus-master DMA support permet dactiver la gestion des disques
Ultra DMA. La rponse recommande est Y si vous disposez dune carte mre PCI grant lUltra
DMA et de disques IDE.
Loption Boot off-board chipsets first support permet dinverser la numrotation des
disques IDE connects aux contrleurs de la carte mre et des disques IDE connects aux contrleurs
additionnels que lon peut avoir sur une carte lle. Il faut rpondre par N cette question.
Loption Force enable legacy 2.0.X HOSTS to use DMA permet dactiver une vielle
fonctionnalit non documente et ne sera pas dcrite ici. Loption recommande N.
Loption Use PCI DMA by default when available permet dactiver la gestion de lUltra
DMA au dmarrage. La rponse recommande est Y, sauf si lon veut dsactiver le support de lUltra
DMA.
Loption Enable DMA only for disks permet de dsactiver les transferts DMA pour les p-
riphriques IDE qui ne sont pas des disques durs. Cette option peut tre active si des priphriques
connects ne grent pas correctement les transferts DMA. La rponse recommande est Y.
Loption ATA Work(s) In Progress (EXPERIMENTAL) donne laccs des fonctionnalits
extrmement exprimentales concernant les disques IDE. La rponse recommande est N.
Il suit un certain nombre doptions qui permettent dactiver un support tendu pour diffrents chipsets.
Il est recommand de rpondre par N ces questions, sauf celles correspondant aux chipsets
effectivement prsents sur votre carte mre.
388
Annexe A. Options de conguration du noyau
Loption IGNORE word93 Validation BITS permet dviter une inconsistance dans les spci-
cations du protocole matriel ATAPI. Ces spcications nont pas t claires un endroit, et il existe
maintenant des diffrences mineures entre les diffrents chipsets prsents sur le march. Cette option
permet de dsactiver cette fonctionnalit ambigu. Bien quil ne soit pas dangereux de rpondre par
lafrmative cette question, la rponse recommande reste N.
Loption Support for IDE Raid controllers permet dactiver la prise en charge de contr-
leurs RAID IDE. Les options suivantes correspondent aux diffrents contrleurs RAID pris en charge
par Linux. La rponse recommande est N.
A.19. Menu SCSI support
Loption SCSI support permet dactiver la prise en charge des priphriques SCSI. Il faut
rpondre par Y ou M cette question si vous disposez de tels priphriques. De plus, si le noyau
se trouve sur un disque SCSI ou sil a besoin de composants se trouvant sur le disque SCSI pour
samorcer, il ne faut pas mettre en module cette fonctionnalit. Ceux qui nont pas de priphrique
SCSI et ne comptent pas en utiliser peuvent rpondre N cette question. En revanche, ceux qui
disposent dun priphrique ATAPI pour lequel ils nont pas de gestionnaire de priphriques, et
pour lequel ils utilisent la couche dmulation SCSI, doivent activer cette fonctionnalit. Cest en
particulier le cas si vous avez un graveur de CD. Dans ce cas, il est recommand de rpondre Y
cette question. Mme dans les autres cas, il est conseill de rpondre par M cette question, an
de se rserver la possibilit dutiliser ultrieurement un lecteur ZIP connect sur port parallle, qui
ncessitera alors le support SCSI.
Loption SCSI disk support permet dactiver la gestion des disques durs SCSI. Il ne faut pas
rpondre par M si votre systme a besoin dun disque SCSI pour dmarrer. Cette option permet
galement de grer les lecteurs ZIP connects sur port parallle. La rponse recommande est donc
M.
Loption Maximum number of SCSI disks that can be loaded as modules permet
de xer le nombre maximal de disques SCSI qui pourront tre utiliss si les gestionnaires de
priphriques SCSI du noyau sont chargs en tant que modules. Il est recommand de laisser la
valeur par dfaut dans ce champ.
Loption SCSI tape support permet dactiver la gestion des priphriques bande SCSI.
Notez que les lecteurs de bande OnStream SC-x0 ne sont pas pris en charge par ce pilote gn-
rique, mais peuvent tre utiliss malgr tout en activant loption suivante SCSI OnStream SC-x0
tape support . Le pilote alors utilis ncessitera la prsence des chiers spciaux de priphrique
/dev/osstX, qui utilisent le numro de code majeur 206. La rponse recommande pour ces deux
options est N.
Loption SCSI CD-ROM support permet dactiver la gestion des CD-ROM SCSI. Vous devez
activer cette fonctionnalit galement si vous utilisez lmulation SCSI pour un graveur de CDATAPI.
Si vous tes dans lun de deux ces cas, il est recommand de rpondre Y cette question. Dans tous
les autres cas, la rponse recommande est N.
Loption Enable vendor-specific extensions (for SCSI CDROM) permet dactiver la
gestion de CD-ROM SCSI disposant de commandes SCSI spciques. Cest notamment le cas pour
les lecteurs de CD multisessions NEC/TOSHIBA et les graveurs de CD HP. Pour la plupart des utili-
sateurs, la rponse recommande est N.
Loption Maximum number of CDROM devices that can be loaded as modules per-
met de xer le nombre maximal de lecteurs de CDROM SCSI qui pourront tre utiliss si les gestion-
389
Annexe A. Options de conguration du noyau
naires de priphriques du noyau sont chargs en tant que modules. Il est recommand de laisser la
valeur par dfaut dans ce champ.
Loption SCSI generic support permet dactiver la gestion des priphriques SCSI non stan-
dards. Pour ces priphriques, il faut utiliser un programme capable denvoyer les commandes SCSI
appropries votre matriel. Il faut activer cette fonctionnalit pour la plupart des priphriques SCSI
qui ne sont ni des disques, ni des lecteurs de CD-ROM, ni des lecteurs de bandes. Cest en particulier
le cas si vous utilisez un graveur de CD-ROM. Dans ce cas, la rponse recommande est Y. Pour la
plupart des utilisateurs, la rponse recommande est N.
Loption Enable extra checks in new queueing code permet dactiver des contrles
supplmenaires dans les pilotes SCSI. Si une erreur est dtecte, le systme sarrtera en catastrophe
immdiatement, limitant ainsi les risques de pertes de donnes ultrieurs. Si vous nactivez pas cette
option, le systme continuera fonctionner normalement, mais les dgts risquent dtre beaucoup
plus importants terme si une erreur se produit. La rponse recommande est Y.
Loption Probe all LUNs on each SCSI device permet deffectuer la dtection de tous les
numros logiques dunits SCSI de chaque priphrique. Comme la plupart des priphriques SCSI
ne disposent que dun seul numro dunit logique, la rponse recommande est N.
Loption Verbose SCSI error reporting (kernel size +=12K) permet dutiliser un jeu
de messages derreurs alternatif pour le SCSI. Ces messages sont plus lisibles, mais prennent plus de
place dans le noyau. La rponse recommande est N.
Loption SCSI logging facility permet dactiver les traces du sous-systme SCSI. La r-
ponse recommande est N.
A.20. Menu SCSI low-level drivers
Ce jeu doptions permet de slectionner les gestionnaires de priphriques bas niveau SCSI adapts
votre matriel. Il faut connatre la marque et le modle de votre adaptateur SCSI, ainsi que ses
paramtres pour rpondre ces questions. Si vous utilisez lmulation SCSI pour les priphriques
ATAPI, il nest pas ncessaire de choisir un gestionnaire bas niveau pour ceux-ci.
A.21. Menu PCMCIA SCSI adapter support
Loption PCMCIA SCSI adapter support permet la prise en charge les priphriques SCSI
au format PCMCIA. Les options qui suivent correspondent aux gestionnaires des diffrents types de
matriel SCSI au format PCMCIA que Linux est capable de prendre en charge. Vous devez donc
choisir les pilotes correspondants votre matriel. La rponse recommande est N.
A.22. Menu Fusion MPT device support
Loption Fusion MPT (base + ScsiHost) drivers permet dactiver la prise en charge de
larchitecture Fusion pour les adaptateurs rseau bre optique et les priphriques SCSI parallles.
Cette architecture permet de multiplexer ces priphriques pour atteindre des taux de transfert encore
plus levs. Ce gestionnaire utilise une carte PCI compatible Fusion MPT pour effectuer les oprations
dentre/sortie. Vous pouvez rpondre Y cette question si vous disposez dune telle carte, et rgler
le paramtre du nombre maximum de paramtres des oprations dentres / sorties multiples du driver
avec loption suivante. La rponse recommande tant N.
390
Annexe A. Options de conguration du noyau
Loption Enhanced SCSI error reporting permet dobtenir des informations plus dtailles
dans les messages de traces gnrs par le sous-systme SCSI. La rponse recommande est M si
vous dsirez avoir cette fonctionnalit. Notez quil nest pas possible, en raison de la taille du noyau
que cette option impliquerait, de rpondre Y cette question. La rponse recommande est, en
gnral, N.
Loption Fusion MPT misc device (ioctl) driver permet dactiver un moyen de contrle
supplmentaire sur les adaptateurs MPT par lintermdiaire du chier spcial de priphrique de
type caractre /dev/mptctl, dont le code majeur est 10 et le code mineur est 240. La rponse
recommande est N.
Loption Fusion MPT LAN driver permet dactiver les fonctionnalits rseau des cartes bre
optique compatibles Fusion MPT, cest--dire celles bases sur les puces LSIFC9xx. Cette option
crera une interface rseau fc0, que lon pourra utiliser comme une interface rseau classique. La
rponse recommande est N. Notez que cette fonctionnalit nest disponible que sous la forme de
module du noyau, vous ne pourrez donc lactiver quen rpondant par M cette option.
A.23. Menu IEEE 1394 (FireWire) support
(EXPERIMENTAL)
Loption IEEE 1394 (FireWire) support (EXPERIMENTAL) permet dactiver la gestion
des cartes FireWire. Ces cartes fournissent laccs un bus de donnes extrmement rapide, que
lon utilise gnralement pour connecter des priphriques exigeant une bande passante trs leve,
comme les camras vido par exemple. La rponse recommande est N.
Loption Texas Instruments PCILynx support permet dactiver la gestion des cartes Fire-
Wire PCILynx de Texas Instruments. La rponse recommande est N.
Loption OHCI-1394 support active la prise en charge des contrleurs IEEE 1394 respectant
les spcications OHCI (il sagit dun standard de communication pour les contrleurs). Ce pilote na
t test quavec un contrleur de Texas Instruments, mais ce contrleur est lun des plus utiliss du
march. La rponse recommande est Y.
Loption OHCI-1394 Video support permet dutiliser la capture vido des cartes FireWire. La
rponse recommande est Y.
Loption SBP-2 support (Harddisks, etc.) permet dactiver la gestion des priphriques
SBP-2, qui comprennent les disques durs et les lecteurs de DVD connects sur les bus FireWire. La
rponse recommande est Y.
Loption Enable Phys DMA support for SBP2 (Debug) nest pas documente et ne sera
pas dcrite ici.
Loption Ethernet over 1394 permet dutiliser une interface IEEE1394 comme une interface
Ethernet. La rponse recommande est N.
Loption OHCI-DV I/O support permet dactiver lenvoi et la rception dimages DV par un
port IEEE1394 au travers dune interface simplie. La rponse recommande est N.
Loption Raw IEEE 1394 I/O support permet aux programmes de communiquer directement
avec le matriel IEEE 1394. Cest en gnral le mode de fonctionnement dsir, aussi la rponse
recommande cette question est-elle Y.
Loption IEC61883-1 Plug support permet dactiver le gestionnaire de connexion IEC61883-
1. La rponse recommande est N.
391
Annexe A. Options de conguration du noyau
Loption IEC61883-6 (Audio transmission) support permet dactiver la gestion du
protocole de transmission de donnes audio et musicales IEC61883-6 au travers dune interface
IEEE1394. La rponse recommande est N.
Loption Excessive debugging support est rserve pour les dveloppeurs de gestionnaires
de priphriques. Elle permet de stocker sur disque toutes les informations transitant sur le bus Fire-
Wire, ce qui sature gnralement les disques durs extrmement rapidement. Il faut rpondre par N
cette question.
A.24. Menu I2O support
Loption I2O support permet dactiver la gestion des cartes dentre/sortie I2O. Ces cartes
prennent en charge la gestion des entres/sorties de manire uniforme, pour tous les priphriques
matriels, et permettent donc dcrire un gestionnaire de priphriques uniforme au niveau du systme
dexploitation pour toute une classe de priphrique. Ce gestionnaire, nomm OSM (abrviation
de Operating System Module ), communique avec des pilotes spciques chaque type de mat-
riel. Ces pilotes peuvent alors ne faire aucune hypothse sur le systme dexploitation utilis. Ainsi, il
est possible dcrire des gestionnaires de priphriques communs tous les systmes dexploitations.
La rponse recommande est N. Si vous rpondez par Y, vous devrez choisir le type de carte I2O
installe et la liste des pilotes I2O OSM que vous voulez utiliser.
A.25. Menu Network device support
Loption Network device support permet dactiver la gestion des diverses interfaces rseau
que Linux peut prendre en charge. On notera que les choix faits pour les protocoles de communica-
tion dans le menu Networking options sont ncessaires (la plupart des composants des systmes
Unix utilisent les fonctions rseau du systme pour communiquer) mais non sufsants pour accder
au monde extrieur. Si lon nactive pas cette option, seuls les processus de la machine locale seront
accessibles (par lintermdiaire de linterface rseau loopback ). Pour accder aux autres ordina-
teurs, que ce soit par une carte rseau, un cble parallle ou srie, ou par modem via un fournisseur
daccs Internet, il faut en plus rpondre Y cette question. La rponse recommande est Y.
Loption Dummy net driver support permet dactiver la fonctionnalit de rseau virtuel.
Cette fonctionnalit fournit une interface virtuelle sur un rseau ne contenant quune seule machine.
Cette interface peut tre utilise pour faire croire des programmes rseau que la machine est effec-
tivement connecte un rseau. La rponse recommande est N.
Loption Bonding driver support permet de runir plusieurs connexions Ethernet entre deux
machines pour simuler une connexion unique, dont la bande passante est la somme des bandes pas-
santes des connexions ainsi regroupes. La rponse recommande est N.
Loption EQL (serial line load balancing) support permet dactiver la gestion de
connexions multiples sur plusieurs connexions srie (par exemple par lintermdiaire de deux mo-
dems). Cette fonctionnalit ncessite galement le support de cette fonctionnalit du ct de la ma-
chine distante. La rponse recommande est N.
Loption Universal TUN/TAP device driver support permet dactiver la gestion
dinterfaces rseau virtuelles tunX et tapX (o X est le numro de chaque interface), dont les
donnes peuvent tre lues et crites directement par des applications normales, par lintermdiaire
de chiers spciaux de priphriques /dev/tunX et /dev/tapX. Les interfaces de type tun se
comportent exactement comme des interfaces rseau point point (elles ne permettent donc de
communiquer quavec une seule autre machine), alors que les interfaces de type tap simulent le
392
Annexe A. Options de conguration du noyau
fonctionnement dune carte Ethernet classique. Cette fonctionnalit permet donc aux programmes
classiques daccder aux paquets routs vers ces interfaces, et de recevoir et denvoyer des
donnes brutes sur le rseau. Les interfaces tunX et tapX sont cres dynamiquement, lorsque
les programmes qui dsirent les utiliser senregistrent au niveau du systme en ouvrant le chier
spcial de priphrique /dev/net/tun, de type caractre et de codes majeur et mineur gaux
respectivement 10 et 200. La rponse recommande est N.
Loption Ethertap network tap (OBSOLETE) nest active que si loption Kernel/User
netlink socket a t active. Elle permet de grer un chier spcial de type bloc et de numro
majeur 36 et de numro mineur 16, qui fournit les donnes brutes dune interface Ethernet. Ce chier
peut tre utilis par un programme pour envoyer et recevoir des trames Ethernet directement sur ce
pseudo priphrique au plus bas niveau. Cette fonctionnalit est devenue obsolte depuis les noyaux
2.4, car ceux-ci proposent le mcanisme plus gnral de loption Universal TUN/TAP device
driver support . La rponse recommande est donc N.
Loption General Instruments Surfboard 1000 permet dactiver la gestion des cartes Suf-
board 1000, qui sont gnralement utilises pour connecter un modem cble lordinateur. Ces mo-
dems permettent de recevoir des informations en provenance dInternet haut dbit, mais ne per-
mettent pas denvoyer dinformations destination dInternet. Le canal montant doit donc toujours
tre ralis par une liaison tlphonique classique. La rponse recommande est N.
Loption FDDI driver support permet dactiver la gestion des cartes Ethernet FDDI. Les
options qui suivent permettent de slectionner les gestionnaires de priphriques pour les cartes FDDI
gres par Linux. La rponse recommande est N.
Loption HIPPI driver support (EXPERIMENTAL) permet la gestion des cartes HIPPI. Les
options qui suivent permettent de slectionner les gestionnaires de priphriques pour les cartes de ce
type. La rponse recommande est N.
Loption PLIP (parallel port) support permet dactiver les connexions par port parallle.
Ce type de connexion peut tre utilis pour transfrer des chiers par un cble parallle entre deux
ordinateurs. La rponse recommande est N.
Loption PPP (point-to-point protocol) support permet dactiver la gestion des
connexions PPP. Ces connexions sont utilises pour accder Internet via un modem, ou pour tablir
une connexion de manire plus gnrale via un cble srie ou tout autre moyen de communication
existant. Il est conseill dactiver le support de ce type de connexion, moins que vous soyez sr de
ne jamais vous connecter Internet. La rponse recommande ici est Y.
Loption PPP multinlink support (EXPERIMENTAL) permet dutiliser plusieurs lignes PPP
pour augmenter la bande passante en les agrgeant. Par exemple, si vous disposez de plusieurs lignes
tlphoniques, vous pouvez vous connecter plusieurs fois votre fournisseur daccs et accrotre ainsi
votre bande passante. Bien entendu, pour que cette technique fonctionne, il faut que le fournisseur
daccs lautorise. La rponse recommande est N.
Loption PPP filtering permet dautoriser le ltrage des paquets traversant les interfaces PPP
existantes dans le systme. Cette fonctionnalit peut tre utile pour raliser un rewall ou pour effec-
tuer des actions spciques lorsque certains paquets sont reus. La rponse recommande est N.
Loption PPP support for async serial ports permet de prendre en charge les commu-
nications PPP sur les cbles srie classiques. Cest en gnral loption qui convient lorsquon veut se
connecter Internet laide dun modem classique. Notez que cette option nest pas utilisable pour
les connexions laide dun modem Numris. La rponse recommande est Y.
Loption PPP support for sync tty ports permet de prendre en charge les communica-
tions PPP avec les adaptateurs synchones, tels que les cartes SyncLink. La rponse recommande est
N.
393
Annexe A. Options de conguration du noyau
Loption PPP Deflate compression permet de prendre en charge lalgorithme de compression
Deate (le mme algorithme que celui utilis par le programme gzip) pour comprimer les donnes
transmises sur les connexions PPP. La rponse recommande est Y.
Loption PPP BSD-Compress compression permet de prendre en charge lalgorithme de com-
pression LZW pour comprimer les donnes transmises sur les connexions PPP. Cet algorithme est
soumis un brevet de logiciel et son utilisation est suppose tre soumise paiement de droits. Ce-
pendant, les brevets de logiciel sont encore illgaux en Europe, et il est tout fait lgal de lutiliser.
Les taux de compressions obtenus sont de toutes manires infrieurs ceux de la mthode Deate,
aussi la rponse recommande est-elle N.
Loption PPP over Ethernet (EXPERIMENTAL) permet de raliser des connexions point
point sur un rseau de type Ethernet. La rponse recommande est N.
Loption PPP over ATM (EXPERIMENTAL) permet de raliser des connexions point point sur
un rseau ATM. La rponse recommande est N.
Loption SLIP (serial line) support permet de connecter deux ordinateurs par une ligne
srie ou par un modem. Les options suivantes permettent de xer les paramtres des connexions
SLIP. Le protocole SLIP est en train de tomber en dsutude et est remplac par PPP. La rponse
recommande cette question est donc N.
Loption CSLIP compressed headers permet dactiver la compression des en-ttes IP pour le
protocole SLIP. La rponse recommande est N.
Loption Keepalive and linefill permet dactiver la surveillance de la connexion SLIP.
Cette option est utilise sur les connexions SLIP passant par des lignes analogiques de mauvaise
qualit. La rponse recommande est N.
Loption Six bit SLIP encapsulation permet de faire en sorte que le protocole SLIP
nenvoie que des donnes codes sur 6 bits. Cela permet damliorer la qualit des transmissions sur
les rseaux peu ables, ou qui ne peuvent pas transfrer plus de 7 bits de donnes. La rponse
recommande est N.
Loption Fibre Channel driver support permet dactiver la gestion des adaptateurs Fiber
Channel. Loption qui suit donne la possibilit de slectionner le gestionnaire de priphriques pour
les cartes Interphase base de chipset Tachyon. La rponse recommande est N.
Loption Red Creek Hardware VPN (EXPERIMENTAL) permet dactiver la gestion des cartes
permettant de crer des rseaux privs virtuels. La rponse recommande est N.
Loption Traffic Shaper (EXPERIMENTAL) permet dactiver la possibilit de contrler le
dbit maximal de donnes travers une interface rseau. La rponse recommande est N.
A.26. Menu ARCnet devices
Loption ARCnet support permet dactiver la gestion des cartes de type ARCnet. Les options
qui suivent correspondent aux diffrents pilotes pour les diffrentes cartes de ce type. Si vous avez
une carte de ce type, rpondez par M ou Y cette question et choisissez le pilote correspondant
votre matriel dans la suite du menu. La rponse recommande est N.
A.27. Menu Ethernet (10 or 100Mbit)
Loption Ethernet (10 or 100Mbit) permet dactiver la gestion des cartes de type Ethernet.
Les options qui suivent correspondent aux diffrents gestionnaires de priphriques pour les diff-
394
Annexe A. Options de conguration du noyau
rentes cartes de ce type. Si vous avez une carte de ce type, rpondez par M ou Y cette question et
choisissez le gestionnaire de priphriques correspondant votre matriel dans la suite du menu. La
rponse recommande est N. La plupart des cartes rseau sont compatibles NE2000. Il existe deux
types de pilotes pour ces cartes, selon quelles sont ISA ou non. Le pilote pour les cartes ISA peut tre
choisi en activant les options Other ISA cards et NE2000/NE1000 support . Le pilote
pour les cartes PCI peut tre slectionn en activant les options EISA, VLB, PCI and on board
controllers et PCI NE2000 support and clones support (see help) .
A.28. Menu Ethernet (1000 Mbit)
Les options disponibles dans ce menu permettent de choisir les gestionnaires de priphriques uti-
liser pour les cartes Ethernet Gigabit. Choisissez loption qui correspond votre matriel si vous en
disposez dune.
A.29. Menu Wireless LAN (non-hamradio)
Loption Wireless LAN (non-hamradio) permet dactiver la gestion des connexions sans l
(mais qui ne sont pas gres par les fonctionnalits radio-amateur). Les options qui suivent permettent
de choisir les gestionnaires de priphriques disponibles. La rponse recommande est N.
Loption STRIP (Metricom starmode radio IP) permet dactiver la gestion des adaptateurs
rseau radio Metricom. La rponse recommande est N.
Loption AT&T WaveLAN & DEC RoamAbout DS support permet dactiver la gestion des
adaptateurs rseau radio WaveLAN. La rponse recommande est N.
Loption Aironet Arlan 655 & IC2200 DS support permet dactiver la gestion des adap-
tateurs rseau radio Aironet 655 et IC2200 DS. La rponse recommande est N.
Loption Aironet 4500/4800 series adapters permet dactiver la gestion des adaptateurs
rseau radio Aironet de la srie 4500/4800. Les options qui suivent correspondent aux diffrents types
de cartes de cette srie. Loption Aironet 4500/4800 PROC interface donne la possibili-
t de congurer ces cartes par lintermdiaire du systme de chiers virtuels /proc/. La rponse
recommande est N.
Loption Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards permet dactiver la
gestion des cartes rseau radio PCI et ISA Cisco et Aironet. La rponse recommande est N.
Les trois options Hermes chipset 802.11b support (Orinoco/Prism2/Symbol) ,
Hermes PCMCIA card support et Cisco/Aironet 34X/35X/4500/4800 PCMCIA
cards permettent dactiver la gestion des cartes rseau radio PCMCIA Cisco et Aironet. Loption
Hermes in PLX9052 based PCI adaptor support (Netgear MA301 etc.) permet de
connecter une carte Hermes sur un adaptateur PCI/PCMCIA. La rponse recommande est N.
A.30. Menu Token ring devices
Loption Token Ring driver support permet dactiver la gestion des rseaux Token Ring.
Les options qui suivent permettent de choisir les gestionnaires de priphriques pour ces adaptateurs.
La rponse recommande est N.
395
Annexe A. Options de conguration du noyau
A.31. Menu Wan interfaces
Loption Comtrol Hostess SV-11 support permet dactiver la gestion des cartes Comtrol.
La rponse recommande est N.
Loption COSA/SRP sync serial boards support permet dactiver la gestion des cartes
COSA et SRP. La rponse recommande est N.
Loption MultiGate (COMX) synchronous serial boards support permet dactiver la
gestion des cartes MultiGate. La rponse recommande est N. Les options qui suivent permettent de
paramtrer les fonctionnalits supportes par ce gestionnaire de priphriques.
Loption Etinc PCISYNC serial board support (EXPERIMENTAL) permet dactiver la
prise en charge des cartes Etinc PCISYNC bases sur la puce Inneon DSCC4. La rponse recom-
mande est N.
Loption LanMedia Corp. SSI/V.35, T1/E1, HSSI, T3 boards permet dactiver la ges-
tion des cartes LanMedia. La rponse recommande est N.
Loption Aurora Technology, Inc. synchronous asynchronous PCI cards V2 nest
pas documente et ne sera pas dcrite ici.
Loption Sealevel Systems 4021 support permet dactiver la gestion des cartes Sealevel
ACB 56. La rponse recommande est N.
Loption SyncLink HDLC/SYNCPPP support permet dactiver le gestionnaire de priphriques
Cisco HDLC/PPP pour les cartes SyncLink. Ces cartes peuvent galement fonctionner avec le pilote
HDLC gnrique indiqu ci-dessous. La rponse recommande est N.
Loption Generic HDLC driver permet dactiver le pilote gnrique pour les adaptateurs WAN.
Les options qui suivent permettent de congurer les diffrentes fonctionnalits de cette fonctionnalit.
La rponse recommande est N.
Loption Frame relay DLCI support permet dactiver la gestion du protocole Frame Relay.
Les options qui suivent permettent de congurer le gestionnaire de priphriques. La rponse recom-
mande est N.
Loption WAN router drivers permet dactiver les options de menu suivantes, qui donnent la
possibilit de faire la conguration des adaptateurs WAN. La rponse recommande est N.
Loption Sangoma WANPIPE(tm) multiprotocol cards permet dactiver la gestion des
cartes WAN Sangoma. Les options qui suivent permettent de congurer les paramtres pour ce
gestionnaire de priphriques. La rponse recommande est N.
Loption LAPB over Ethernet driver permet dactiver un gestionnaire de priphriques pour
une carte X.25 virtuelle. La rponse recommande est N.
Loption X.25 async driver permet dactiver la gestion du protocole X.25 sur une ligne srie
normale ou sur un modem. La rponse recommande est N.
Loption Granch SBNI12 Leased Line adapter support permet dactiver la gestion des
cartes SBNI12-xx. La rponse recommande est N.
Loption Multiple line feature support permet dutiliser les cartes SBNI12-xx pour syn-
chroniser les transmissions effectues par lintermdiaire de plusieurs lignes de communication pa-
rallles. Cette synchronisation amliore notablement le dbit. La rponse recommande est-elle N.
396
Annexe A. Options de conguration du noyau
A.32. Menu PCMCIA network device support
Loption PCMCIA network device support permet dactiver la gestion des cartes rseau au
format PCMCIA. Les options qui suivent correspondent aux divers gestionnaires de priphriques
pris en charge par Linux. La rponse recommande est N.
A.33. Menu ATM drivers
Loption ATM over TCP permet dencapsuler ATM sur un rseau TCP/IP. Ce type
dencapsulation nest utile qu des ns de test et de dveloppement. La rponse recommande est
N.
Loption Efficient Networks Speedstream 3010 permet de prendre en charge les cartes
ATM Speedstream 3010 dEfcient Networks. La rponse recommande est N.
Loption Efficient Networks ENI155P active la gestion des cartes ATMENI155P dEfcient
Networks et Power155 de SMC. Les options qui suivent permettent de congurer ce gestionnaire de
priphriques. La rponse recommande est N.
Loption Fujitsu FireStream (FS50/FS155) active la gestion des cartes ATM FireStream
de Fujitsu. La rponse recommande est N.
Loption ZeitNet ZN1221/ZN1225 active la gestion des cartes ATM ZN1221 et ZN1225 de
ZeitNet. Les options qui suivent permettent de congurer ce gestionnaire de priphriques. La rponse
recommande est N.
Loption IDT 77201 (NICStAR) (ForeRunnerLE) active la gestion des cartes ATM bases
sur le chipset NICStAR 77201. Les options qui suivent permettent de congurer ce gestionnaire de
priphriques. La rponse recommande est N.
Loption IDT 77252 (NICStAR II) active la gestion des cartes ATM bases sur le chipset
NICStAR 77252. Les options qui suivent permettent de congurer ce gestionnaire de priphriques.
La rponse recommande est N.
Loption Madge Ambassador (Collage PCI 155 Server) active la gestion des cartes ATM
bases sur le chipset ATMizer. Loption qui suit permet dactiver les informations de dbogage de ce
gestionnaire de priphriques. La rponse recommande est N.
Loption Madge Horizon [Ultra] (Collage PCI 25 and Collage PCI 155 Client)
active la gestion des cartes ATM bases sur le chipset Horizon. Loption qui suit permet dactiver les
informations de dbogage de ce gestionnaire de priphriques. La rponse recommande est N.
Loption Interphase ATM PCI x575/x525/x531 active la gestion des cartes ATM ChipSAR
dInterphase. Loption qui suit permet dactiver les informations de dbogage de ce gestionnaire de
priphriques. La rponse recommande est N.
Loption FORE Systems 200E-series active la gestion des cartes ATM FORE Systems 200E.
Les options qui suivent permettent de congurer ce gestionnaire de priphriques. La rponse recom-
mande est N.
A.34. Menu Amateur Radio support
Loption Amateur Radio support permet dactiver la gestion des communications Radio de
Linux. Les options qui suivent permettent de prciser les options du protocole rseau utilis pour ces
communications. La rponse recommande est N.
397
Annexe A. Options de conguration du noyau
A.35. Menu AX.25 network device drivers
Ce menu permet de choisir les gestionnaires de priphriques bas niveau utiliser pour le support des
communications Radio. Il faut choisir le pilote correspondant votre matriel.
A.36. Menu IrDA subsystem support
Loption IrDA subsystem support permet dactiver la gestion des priphriques infrarouges.
La rponse recommande est N.
Il faut choisir le protocole de communication que vous dsirez dans les options qui suivent. Les
dernire options permettent de choisir les options de ces protocoles.
A.37. Menu Infrared-port device drivers
Ces options permettent de choisir les pilotes bas niveau pour les priphriques infrarouges. Vous devez
choisir le pilote correspondant votre matriel.
A.38. Menu ISDN subsystem
Loption ISDN support permet dactiver la gestion des interfaces ISDN ( Numris en
France). Si vous disposez dune telle interface, la rponse recommande est M, sinon, cest N.
Loption Support synchronous PPP permet dutiliser une version de PPP qui ne gre pas les
synchronisations dans la communication entre les deux ordinateurs. Cette fonctionnalit nest en effet
plus ncessaire avec ISDN, puisque cest un protocole numrique. La rponse recommande est Y.
Loption Use VJ-compression with synchronous PPP permet dutiliser lalgorithme de
Van Jacobson pour la compression des en-ttes IP dans le protocole PPP synchrone. La rponse re-
commande est Y.
Loption Support generic MP (RFC 1717) permet de regrouper plusieurs connexions ISDN
avec le protocole PPP synchrone, et ce an daccrotre la bande passante. La rponse recommande
est N.
Loption Support BSD compression active la gestion de la compression de donne avec
lalgorithme BSD. La rponse recommande est N.
Loption Support audio via ISDN permet dactiver la gestion des commandes vocales dans
lmulateur de modem du sous-systme ISDN. La rponse recommande est N.
Loption Support AT-Fax Class 1 and 2 commands permet dactiver la gestion des com-
mandes vocales des FAX. La rponse recommande est N.
Loption X.25 PLP on top of ISDN permet dactiver lencapsulation du protocole X.25 dans
le protocole ISDN. La rponse recommande est N.
398
Annexe A. Options de conguration du noyau
A.39. Menu ISDN feature submodules
Loption isdnloop support permet dactiver la gestion dune interface ISDN virtuelle, an de
tester la conguration sans effectuer dappel rel. La rponse recommande est N.
Loption Support isdn diversion services permet dactiver la gestion de services ISDN
supplmentaires. La rponse recommande est N.
A.40. Menu Passive ISDN cards
Loption HiSax SiemensChipSet driver support permet dactiver les options de congu-
ration pour les cartes base de chipsets Siemens. Ce sont les cartes les plus courantes. Les options
qui suivent permettent de slectionner le type de matriel correspondant. La rponse recommande
est N.
Loption Sedlbauer PCMCIA cards permet de prendre en charge le support des cartes PCMCI
Sedlbauer Speed Star et Speed Star II. La rponse recommande est N.
Loption ELSA PCMCIA MicroLink cards permet de prendre en charge le support des cartes
PCMCIA MicroLink de la socit ELSA. La rponse recommande est N.
Loption AVM A1 PCMCIA cards permet de prendre en charge le gestionnaire de priphrique
pour les cartes A1 et les cartes PCMCIA Fritz! dAVM. La rponse recommande est N.
Loption ST5481 USB ISDN modem (EXPERIMENAL) permet de prendre en charge les modems
numris ST5481 connects sur port USB. La rponse recommande est N.
Loption AVM Fritz!Card PCI/PCIv2/PnP support (EXPERIMENTAL) permet dactiver
les cartes PCI et Plug and Play Fritzm dAVM. La rponse recommande est N.
Loption Auerswald devices IDSN support permet dactiver la fonctionnalit de modem
ISDN des cartes Auerswald. La rponse recommande est N.
A.41. Menu Active ISDN cards
Loption ICN 2B and 4B support permet dactiver le support pour des cartes ISDN fabriques
par la socit ICN. La rponse recommande est N.
Loption PCBIT-D support permet dactiver la gestion des cartes ISDN fabriques par la socit
Octal. La rponse recommande est N.
Loption Spellcaster support permet dactiver la gestion des cartes ISDN Spellcaster. La
rponse recommande est N.
Loption IBM Active 2000 support permet dactiver la gestion des cartes ISDN IBM Active
2000. La rponse recommande est N.
Loption Eicon active card support permet dactiver la gestion des cartes Eicon. Les op-
tions qui suivent permettent de choisir le gestionnaire de priphriques appropri au matriel dont
vous disposez. La rponse recommande est N.
Loption Auvertech TurboPAM support permet dactiver la gestion des cartes Auvertech Tur-
boPAM. Un rmware spcial doit galement tre tlcharg dans la carte pour utiliser ce gestionnaire
de priphriques. La rponse recommande est N.
399
Annexe A. Options de conguration du noyau
Loption CAPI2.0 support permet dactiver la gestion de linterface de programmation CAPI
( Common Application Programming Interface ), permettant aux programmes clients dutiliser de
manire uniforme toutes les cartes ISDN. La rponse recommande est Y.
Loption Verbose reason code reporting (kernel size +=7K) permet dindiquer le
degr de traces utilis par le gestionnaire de priphriques des cartes AVM. La rponse recommande
est N.
Loption CAPI2.0 Middleware support (EXPERIMENTAL) permet dtendre linterface CA-
PI pour permettre le transfert des connexions tablies via linterface CAPI vers un terminal classique.
La rponse recommande est N.
Loption CAPI2.0 /dev/capi support permet de donner laccs linterface CAPI 2.0 aux
applications par lintermdiaire dun chier spcial de priphrique /dev/capi20. Lutilisation de
ce chier spcial de priphrique ncessite linstallation dune bibliothque de fonctions ddie. La
rponse recommande est N.
Loption CAPI2.0 filesystem support nest pas documente et ne sera pas dcrite ici. La
rponse recommande est N.
Loption CAPI2.0 capidrv interface support permet dutiliser les cartes compatibles CA-
PI avec linterface de programmation ISDN classique. La rponse recommande est N.
Les options qui suivent permettent de prendre en charge les cartes AVM et Hyperscope. La rponse
recommande est N.
Loption Hypercope HYSDN cards (Champ, Ergo, Metro) support (module only)
permet de prendre en charge les cartes ISDN actives dHypercope. Cette fonctionnalit ne peut tre
active que sous la forme de module du noyau. La rponse recommande est N.
Loption HYSDN CAPI2.0 support permet de grer linterface de programmation CAPI 2.0
pour les cartes Hypercope. La rponse recommande est Y.
A.42. Menu Old CD-ROM drivers (not SCSI, not IDE)
Loption Support non-SCSI/IDE/ATAPI CDROM drives permet dactiver la gestion des lec-
teurs de CD-ROM non SCSI et non IDE. Ce sont essentiellement des vieux lecteurs de CD-ROM,
parfois connects sur une carte son par une interface propritaire. Les options qui suivent permettent
de choisir le gestionnaire de priphriques qui correspond au matriel dont vous disposez. La rponse
recommande est N.
A.43. Menu Input Core Support
Loption Input core support permet dactiver un nouveau mcanisme de gestion des priph-
riques de saisie et dentre interactifs. Ce mcanisme permettra terme de grer tous les priphriques
dentre de manire uniforme, et donc de simplier la gestion des donnes provenant de lutilisateur.
Les priphriques dj capables dutiliser ce nouveau mcanisme comprennent les joysticks et cer-
tains priphriques USB. Vous devez activer cette fonctionnalit si vous dsirez connecter un joystick,
un clavier ou une souris USB sur votre ordinateur. La rponse recommande est N pour les gens qui
ne disposent pas de tels priphriques.
Loption Keyboard support permet de prendre en charge les claviers USB en redirigeant les
donnes provenant de ces claviers vers le traitement classique du clavier de Linux. Si vous disposez
dun tel clavier, il ny a normalement rien faire pour lutiliser, puisque le BIOS assure la compa-
400
Annexe A. Options de conguration du noyau
tibilit ascendante des claviers USB connects sur les ports USB de la carte mre. Cependant, cette
technique ne fonctionne pas pour les claviers connects sur des cartes USB lles, et vous pouvez
avoir besoin dactiver la gestion de ces claviers ici. La rponse recommande est N, sauf si vous
dsirez connecter un clavier USB sur votre ordinateur et quil ne fonctionne pas nativement. Notez
que cette option est incompatible avec loption USB HIDBP Keyboard (basic) support du
menu USB support , qui permet de grer les claviers USB dune manire plus lgre an de
rduire la taille du noyau dans les systmes embarqus.
De la mme manire, loption Mouse support permet de prendre en charge les souris USB
en simulant une souris PS/2 classique, via le chier spcial de priphrique /dev/input/mice,
de code majeur 13 et de code mineur 63. Ce pilote permet galement daccder aux souris USB
via les chiers spciaux de priphriques /dev/input/mouseN, o N est le numro de la souris,
et dont les numros de codes majeur et mineurs sont respectivement 13 et 32 63. Ce pilote est
galement incompatible avec le pilote simpli que lon peut activer avec loption USB HIDBP
Mouse (basic) support du menu USB support . La rponse recommande est N, sauf
pour ceux qui disposent dune souris USB.
Les options Horizontal screen resolution et Vertical screen resolution per-
mettent de dnir la rsolution horizontale et verticale de lcran, an de permettre lutilisation dune
tablette de digitalisation USB comme une souris. Ces deux donnes permettent de faire la conversion
entre les coordonnes de la tablette et les coordonnes de lcran. La rponse recommande est N.
Loption Joystick support active la prise en charge des joysticks USB et permet aux appli-
cations dy accder au travers des chiers spciaux de priphriques /dev/input/jsN, o N est le
numro du joystick, et dont les numros de codes majeur et mineurs sont respectivement 13 et 0 31.
Notez que cette option nest pas ncessaire pour la prise en charge des joystick non-USB, bien que
lactivation de loption Input core support reste obligatoire. La rponse recommande est
N.
Loption Event interface support active la gestion des chiers spciaux
/dev/input/eventN (o N est le numro du priphrique), qui permettent de lire les vnements
provenant des priphriques dentre USB de manire gnrique. Ces chiers peuvent tre utiliss
par plusieurs priphriques distincts, et permettront terme de connecter plusieurs priphriques
dentre sur la mme machine tout en permettant une gestion uniforme de la part des applications.
Actuellement, trs peu de programmes utilisent cette fonctionnalit, et il est encore rare de voir des
machines plusieurs claviers et plusieurs souris. La rponse recommande est donc N. terme
cependant, cette fonctionnalit sera certainement utilise pour permettre lutilisation dune mme
machine par plusieurs personnes (il suft pour cela de dvelopper un pilote pour les serveurs X de
XFree86 capable de lire les donnes provenant de ces chiers spciaux de priphriques).
A.44. Menu Character devices
Loption Virtual terminal permet dactiver la gestion des terminaux virtuels, accessibles avec
les combinaisons de touches ALT+Fx (ou CTRL+ALT+Fx sous XWindow). Il faut au moins un terminal
virtuel pour pouvoir utiliser le clavier et lcran de la machine, vous devez donc rpondre Y cette
question.
Loption Support for console on virtual terminal permet de placer la console sys-
tme (les ux standards du noyau, et le login en mode mono utilisateur) sur un terminal virtuel. Si
vous rpondez N cette question, la console ne sera pas accessible avec le clavier et lcran, aussi
faut-il rpondre Y cette question.
Loption Standard/generic (8250/16550 and compatible UARTs) serial support
permet dactiver la gestion des ports srie classiques. Vous pouvez vous en passer si vous navez ni
401
Annexe A. Options de conguration du noyau
modem ni souris srie, et si vous ne dsirez pas utiliser le port srie du tout. Il est recommand de
rpondre Y cette question.
Loption Support for console on serial port permet dactiver la redirection de la
console systme sur un port srie. En gnral, la console est redirige vers un terminal virtuel, aussi
la rponse recommande cette question est-elle N.
Loption Extended dumb serial driver options permet dactiver les options de congu-
rations tendues pour les ports srie classiques. La rponse recommande est N.
Loption Support more than 4 serial ports permet dactiver la gestion de ports srie
additionnels. La rponse recommande est N.
Loption Support for sharing serial interrupts permet dactiver la gestion des inter-
ruptions de plusieurs ports srie dune mme carte par un seul canal dinterruption. Il faut que la carte
srie gre le partage des interruptions pour pouvoir utiliser cette option. La rponse recommande est
N.
Loption Autodetect IRQ on standard ports (unsafe) permet de demander au noyau
de tenter une dtection automatique de la ligne dinterruption utilise par les ports srie. Cette fonc-
tionnalit nest pas trs sre et la rponse recommande est N.
Loption Support special multiport boards permet dactiver certaines cartes srie, qui
peuvent indiquer quel port srie est en attente de traitement de la part du gestionnaire de priphriques.
La rponse recommande est N.
Loption Support the Bell Technologies HUB6 card permet dactiver la gestion des
cartes HUB6. La rponse recommande est N.
Loption Non-standard serial port support permet dactiver les options correspondantes
des ports srie non standards. Les options qui suivent permettent de congurer les gestionnaires de
priphriques correspondants. La rponse recommande est N.
Loption Unix98 PTY support permet dactiver les pseudo terminaux compatibles Unix 98.
Les pseudo terminaux sont des composants logiciels permettant dmuler des terminaux. Il y a deux
composants par pseudo terminal : la partie matre est le programme qui cherche accder au pseu-
do terminal, et la partie esclave est le programme qui simule le terminal physique. Les composants
matres peuvent ouvrir le pseudo terminal par lintermdiaire des chiers spciaux /dev/ptyxx. En
revanche, il existe deux protocoles de nommage des chiers spciaux utiliss par les composants
esclaves. Lancienne mthode utilisait les chiers spciaux /dev/ttyxx, mais elle a t rempla-
ce par un autre protocole, dans lequel le composant esclave doit dabord ouvrir le chier spcial
/dev/ptmx, qui lui donne le numro n de pseudo terminal quil doit simuler, et il ouvre ensuite le
chier /dev/pts/n. Ce dernier chier spcial est cr la vole, grce un systme de chiers
virtuel. Pour que ce mcanisme fonctionne, il faut que le systme de chiers /dev/pts/ ait t
galement choisi parmi les systmes de chiers, et quil soit mont (voir la conguration du chier
/etc/fstab). Si vous rpondez Y, loption suivante vous permet de choisir le nombre de pseudo
terminaux que vous dsirez que le systme gre. La valeur par dfaut est 256. La rponse recomman-
de est Y.
Loption Parallel printer support permet dactiver la gestion des imprimantes connectes
sur port parallle. Le fait dactiver cette option nempche pas dutiliser le port parallle pour dautres
priphriques. Il est recommand dactiver cette option sous forme de module parce quainsi, les
fonctionnalits dimpression ne seront charges que lorsque cela sera ncessaire. La rponse recom-
mande est donc M.
Loption Support for console on line printer permet de rediriger les messages destins
la console sur une imprimante connecte au port parallle. Ces messages sont alors imprims au l
de leau. La rponse recommande est N.
402
Annexe A. Options de conguration du noyau
Loption Support for user-space parallel port device drivers active la gestion
du chier spcial de priphrique /dev/parport, au travers duquel les programmes peuvent accder
de manire uniforme au port parallle. Cette fonctionnalit nest pas ncessaire pour utiliser une
imprimante ou des priphriques ATAPI connects sur port parallle, aussi la rponse recommande
est-elle N.
Loption Texas Instruments parallel link cable support permet de prendre en
charge les connexions aux calculatrices Texas Instruments laide dun cble parallle. La rponse
recommande est N.
Loption pSeries Hypervisor Virtual Console support nest pas documente et ne sera
pas dcrite plus en dtail ici.
Loption QIC-02 tape support permet dactiver la gestion des lecteurs de cassettes non SCSI
du type QIC. Loption suivante permet dindiquer si la conguration dynamique du lecteur doit tre
utilise. La rponse recommande pour ces deux questions est N.
Loption IPMI top-level message handler permet de prendre en charge la surveillance des
capteurs du systme (temprature, voltage, etc.). Les options qui suivent permettent de congurer les
fonctionnalits de ce driver. La rponse recommande est N.
Loption NatSemi SCx200 GPIO support permet dactiver le support des processeurs NatSe-
mi par lintermdiaire du bus I2C. La rponse recommande est N.
Loption AMD 768/8111 Random Number Generator support nest pas documente et ne
sera pas dcrite ici.
Loption Intel i8x0 Random Number Generator support active la prise en charge des
gnrateurs de nombres alatoires prsents sur les cartes mres base de chipsets i8x0 dIntel. La
rponse recommande est N.
Loption AMD 76x native power management (Experimental) nest pas documente et
ne sera pas dcrite plus en dtail ici.
Loption /dev/nvram support permet dactiver laccs la mmoire non volatile de lhorloge
temps rel. Cette mmoire peut tre accde par lintermdiaire du chier spcial de priphrique
/dev/nvram, de code majeur 10 et de code mineur 144. La rponse recommande est N.
Loption Enhanced Real Time Clock Support permet dactiver laccs au compteurs de
lhorloge temps rel par lintermdiaire du chier spcial de priphrique /dev/rtc, de code majeur
10 et de code mineur 135. Cette option doit tre active si vous disposez dune machine multiproces-
seur. La rponse recommande est N.
Loption Double Talk PC internal speech card support permet dactiver la gestion du
synthtiseur de voix Double Talk. La rponse recommande est N.
Loption Siemens R3964 line discipline active la gestion des synchronisations entre les
priphriques utilisant le protocole de communication R3964 de Siemens. La rponse recommande
est N.
Loption Applicom intelligent fieldbus card support active la gestion des cartes Ap-
plicom intelligent eldbus . La rponse recommande est N.
Loption Sony Vaio Programmable I/O Control Device support permet dactiver la
gestion des contrleurs dentre / sortie programmable des portables Sony Vaio. La rponse recom-
mande est N.
Loption /dev/agpgart support (AGP support) active la gestion des transferts de donnes
acclrs par le bus AGP pour les pilotes de cartes graphiques. Ces transferts peuvent tre pilots
au travers du chier spcial de priphrique /dev/agpgart, de code majeur 10 et de code mineur
175. Cette fonctionnalit nest pas ncessaire pour le bon fonctionnement des cartes graphiques AGP,
403
Annexe A. Options de conguration du noyau
mais elle permet daccrotre les performances des pilotes 3D. Elle est galement indispensable pour
permettre laccs au registre MTRR du processeur permettant de contrler le bus AGP. La rponse
recommande est Y si vous disposez dune carte graphique AGP, et N sinon. Les options qui suivent
permettent de slectionner le type de chipset utilis par la carte mre, an de dterminer la manire
dont le port AGP fonctionne. Si vous avez activ cette fonctionnalit, vous devez choisir loption
correspondant votre chipset galement.
Loption Direct Rendering Manager (XFree86 DRI support) permet dactiver le sup-
port de larchitecture DRI (abrviation de langlais Direct Rendering Infrastructure ) de XFree86.
Il existe deux versions de cette architecture, la version courante tant utilise par les versions 4.1 et
plus de XFree86. Les gestionnaires de priphriques pour la version 4.0 de XFree86 peuvent tre pris
en charge en activant loption Build drivers for old (XFree 4.0) DRM . Quelle que soit
la version dont vous ayiez besoin, vous devrez slectionner le type de carte graphique install sur le
systme laide des options suivantes. Il va de soi quil ne faut activer les drivers que pour la version
de XFree86 qui est installe sur votre systme. La rponse recommande est gnralement N, sauf
si vous disposez dune des cartes graphiques listes. Dans ce cas, vous devriez certainement utiliser
XFree86 4.3.0, an de bncier des gestionnaires de priphriques les plus rcents. Notez enn que
certaines cartes graphiques 3D, bien que parfaitement supportes sous Linux, nutilisent pas les fonc-
tionnalits DRI du noyau. Cest en particulier le cas pour toutes les cartes graphiques base de puce
NVidia, pour lesquelles il faut utiliser le module fourni avec le pilote de NVidia. Vous pouvez donc
rpondre N cette question si vous disposez dune telle carte graphique.
Loption ACP Modem (Mwave) support permet dactiver la prise en charge des Winmodems
ACP (galement connu sous le nom Mwave). De tels modems sont intgrs en particulier dans les
Thinkpad 600E, 600 et 770 dIBM. La rponse recommande est N.
A.45. Menu I2C support
Loption I2C support permet dactiver la gestion du protocole de communication I2C. Ce pro-
tocole de communication est utilis par beaucoup de micro-contrleurs, et peut tre ncessaire pour
accder certaines fonctionnalits. En particulier, les cartes dacquisition TV bases sur les puces
lectroniques Bt848 ncessitent cette fonctionnalit pour tre utilisables. La rponse recommande
est N, sauf si vous disposez dune telle carte. Dans ce cas, la rponse recommande est M.
Loption I2C bit-banging interfaces active la gestion des adaptateurs bit-banging .
Cette option est ncessaire pour faire fonctionner les cartes dacquisition TV bases sur les puces
lectroniques Bt848. La rponse recommande est N, sauf si vous disposez dune telle carte. Les
options suivantes activent la gestion des priphriques utilisant cette interface. Il nest pas ncessaire
de les activer pour faire fonctionner les cartes dacquisition TV base de Bt848. La rponse recom-
mande pour ces options est N.
Loption I2C PCF 8584 interfaces active la gestion des adaptateurs PCF. Les options sui-
vantes permettent dactiver les priphriques utilisant cette interface. Les rponses recommandes
ces questions sont N.
Loption I2C device interface active la gestion des chiers spciaux de priphriques
/dev/i2c-*. La rponse recommande est N.
Loption I2C /proc interface (required for hardware sensors) permet dajouter
des entres dans le systme de chiers /proc/ pour le sous-systme I2C. La rponse recommande
est N.
404
Annexe A. Options de conguration du noyau
A.46. Menu Mice
Loption Bus Mouse Support active la prise en charge des souris bus. Ces souris sont des souris
connectes sur des bus spciques, comme par exemple sur une carte graphique. Cette option permet
dinclure le pilote gnrique de ce type de souris, les pilotes spciques pouvant tre slectionns
avec les options suivantes. La rponse recommande est N, sauf si vous disposez dune telle souris.
Loption ATIXL busmouse support permet dactiver la gestion des souris bus connectes sur
certaines cartes graphiques ATI. La rponse recommande est N.
Loption Logitech busmouse support permet de grer les souris bus Logitech. Attention, les
souris Logitech connectes sur port PS/2 ne sont pas des souris bus et ne sont pas gres par ce pilote.
La rponse recommande est N.
Loption Microsoft busmouse support permet de grer les souris bus Microsoft. Attention,
les souris Microsoft connectes sur port PS/2 ne sont pas des souris bus et ne sont pas gres par ce
pilote. La rponse recommande est N.
Loption Mouse Support (not serial and bus mice) permet dactiver la gestion des sou-
ris qui ne sont connectes ni au port srie, ni sur un bus souris. Si vous disposez dune souris srie ou
dune souris bus, vous devez rpondre N cette question. Sinon, la rponse recommande est Y.
Loption PS/2 mouse (aka "auxiliary device") support permet de grer toutes les
souris connectes sur un port PS/2, quelles que soit leur marque. La plupart des souris vendues ac-
tuellement sont de ce type. La rponse recommande est donc Y.
Loption C&T 82C710 mouse port support (as on TI Travelmate) permet de grer les
souris pour Travelmate. Ces souris sont des souris PS/2 particulires ces ordinateurs. Il est recom-
mand dessayer le pilote PS/2 gnrique avant de choisir celui-ci, aussi faut-il rpondre N cette
question en gnral.
Loption PC110 digitizer pad support permet dactiver la gestion de lmulation souris
pour les touchpads PC110. La rponse recommande est N.
Loption MK712 touch screen support nest pas documente et ne sera pas dcrite ici.
A.47. Menu Joystick support
Loption Jostick support permet dactiver les options de gestion des joysticks. Les options
suivantes correspondent aux gestionnaires des diffrents types de joysticks supports. La rponse
recommande est N.
A.48. Menu Watchdog cards
Loption Watchdog Timer Support permet dactiver la dtection des blocages systmes grce
un chien de garde. Le chien de garde exige un accs en criture sur le chier spcial de priphrique
/dev/watchdog, de code majeur 10 et de code mineur 130, au moins une fois par minute. Si cette
condition nest pas vrie, la machine est redmarre automatiquement. La gestion de cette fonc-
tionnalit peut tre ralise matriellement grce une carte spciale, ou logiciellement. La rponse
recommande est N.
Loption Disable watchdog shutdown on close permet de maintenir lactivit du chien de
garde mme si le processus qui le rveille rgulirement ferme le chier /dev/watchdog. Ce nest
405
Annexe A. Options de conguration du noyau
pas le cas si la rponse N est donne, dans ce cas, le chien de garde ne fonctionnera plus en cas
darrt du processus de surveillance. La rponse recommande est N.
Loption Acquire SBC Watchdog Timer permet dactiver la gestion des chiens de garde des
PSC-6x86 Single Board Computer dAcquire Inc. La rponse recommande est N.
Loption Advantech SBC Watchdog Timer permet dactiver la gestion des chiens de garde
Advantech. La rponse recommande est N.
Les options ALi M7101 PMU on ALi 1535D+ Watchdog Timer et ALi M7101 PMU
Watchdog Timer permet dactiver la gestion des chiens de garde M7101 PMU dALi prsents
sur les serveurs Cobalt bass des x86. La rponse recommande est N.
Loption AMD "Elan" SC520 Watchdog Timer permet dactiver la gestion des chiens de garde
"Ekab" SC520 dAMD utiliss gnralement dans les systmes embarqus. La rponse recommande
est N.
Loption Berkshire Products PC Watchdog permet dactiver la gestion des cartes Berkshire.
La rponse recommande est N.
Loption Eurotech CPU-1220/1410 Watchdog Timer permet dactiver la gestion des chiens
de garde Eurotech CPU-1220/1410. La rponse recommande est N.
Loption IB700 SBC Watchdog Timer permet de prendre en charge les cartes mres IB700
Single Board Computer. La rponse recommande est N.
Loption ICP ELectronics Wafer 5823 Watchdog permet dactiver la gestion des chiens de
garde ICP Wafer 5823. La rponse recommande est N.
Loption Intel i810 TCO timer / Watchdog permet dactiver la gestion des chiens de garde
matriels intgrs dans les chipsets i810 et i815 dIntel. Ces chiens de garde peuvent surveiller
lactivit du systme rgulirement et contrler sa temprature. La rponse recommande est N.
Loption Mixcom Watchdog permet dactiver la gestion des chiens de garde Mixcom. La rponse
recommande est N.
Loption SBC-60XX Watchdog Timer permet dactiver la gestion des chiens de garde des ordi-
nateurs disposant dune carte mre SBC 6010. La rponse recommande est N.
Loption SC1200 Watchdog Timer (EXPERIMENTAL) permet de prendre en charge les cartes
PC87307 et PC97307 des SC1200. La rponse recommande est N.
Loption NatSemi SCx200 Watchdog permet dactiver le support des chiens de garde des pro-
cesseurs NatSemi. La rponse recommande est N.
Loption Software Watchdog permet dactiver la gestion du chien de garde logiciel. La rponse
recommande est N.
Loption W82877F (EMACS) Watchdog Timer permet de prendre en charge les chiens de garde
des ordinateurs disposant dune carte mre EMACS PC-104. La rponse recommande est N.
Loption WDT Watchdog timer permet dactiver la gestion des cartes WDT. Pour les cartes
PCI, vous devrez galement activer loption WDT PCI Watchdog timer . Ces cartes ne pou-
vant pas tre congures automatiquement, vous devrez spcier manuellement le port et la ligne
dinterruption laide du paramtre du noyau wdt lors du dmarrage du systme. Si vous rpondez
Y ou M, vous pourrez spcier les fonctionnalits de cette carte laide des options WDT501
features et Fan Tachometer . La rponse recommande est N.
Les options WDT501 features et Fan Tachometer permettent de spcier les paramtres
du systme surveills par les cartes WDT : temprature et vitesse du ventilateur. La rponse recom-
mande est N.
406
Annexe A. Options de conguration du noyau
Loption ZF MachZ Watchdog permet dactiver la gestion du pilote pour les chiens de garde ZF
Micro MachZ. La rponse recommande est N.
Loption AMD 766/768 TCO Timer/Watchdog nest pas documente et ne sera pas dcrite plus
en dtail ici.
A.49. Menu Ftape, the oppy tape device driver
Loption Ftape (QIC-80/Travan) support permet dactiver les options de gestion des lec-
teurs de bandes connects sur le contrleur de disquettes. Si vous avez un tel priphrique, rpondez
Y ou M. Sinon, rpondez N.
Loption Zftape, the VFS interface permet dinclure la gestion des systmes de chiers
virtuel dans le pilote ftape. Il faut imprativement activer cette option, faute de quoi le priphrique
sera inutilisable. Rpondez par Y cette question si vous avez activ la fonctionnalit ftape.
Loption Default block size permet de spcier la taille par dfaut des blocs utiliss par les
programmes darchivage. La valeur 10240 correspond la taille des blocs utilise par GNU tar, cest
la valeur recommande.
Loption Number of ftape buffers (EXPERIMENTAL) est exprimentale et il est trs d-
conseill de la modier. La valeur par dfaut est 3.
Loption Enable procfs status report (+2kb) permet de gnrer un rpertoire ftape/
dans le systme de chiers virtuel /proc/. Ce rpertoire contient des informations concernant ltat
courant du pilote ftape. La rponse recommande cette question est N.
Loption Debugging output permet de xer la quantit de traces que le pilote ftape gnre. La
valeur recommande est Normal .
Loption Floppy tape controllers permet de slectionner le type de contrleur de dis-
quettes. La valeur recommande est Standard . Si vous choisissez un autre type de contrleur,
vous devrez spcier les paramtres matriels pour ce contrleur dans les trois options qui suivent.
Loption Default FIFO threshold (EXPERIMENTAL) est exprimentale et ne doit pas tre
modie. La valeur recommande est 8.
Loption Maximal data rate to use (EXPERIMENTAL) permet de rduire la vitesse maxi-
male de transfert utiliss par le pilote ftape. Cette option est exprimentale et ne doit pas tre modie.
La valeur par dfaut est 2000.
A.50. Menu PCMCIA character device support
Les options de ce menu permettent dactiver la gestion des cartes PCMCIA de type srie, comme par
exemple les modems, les ports srie et les cartes rseau intgrant un modem. La rponse recommande
ces options est N.
A.51. Menu Multimedia devices
Loption Video For Linux permet dactiver les options de gestion de la vido et de radio sous
Linux. Il faut activer cette option pour accder aux deux menus suivants, qui permettent de choisir les
407
Annexe A. Options de conguration du noyau
pilotes adapts au type de matriel vido install et les options de conguration pour certains de ces
pilotes. La rponse recommande est N.
A.52. Menu Video For Linux
Loption V4L information in proc filesystem permet dinclure des informations com-
plmentaire sur ltat de linterface Vido pour Linux dans le systme de chiers /proc/. La rponse
recommande est Y.
Loption I2C on parallel port permet dutiliser le port parallle comme interface I2C pour
les contrleurs vido qui reconnaissent ce protocole. La rponse recommande est N.
Les options qui suivent permettent de choisir les pilotes pour les diffrents types de cartes
dacquisition vido. Vous devez activer la fonctionnalit correspondant au matriel dont vous
disposez. En gnral, il est recommand dutiliser les pilotes sous forme de modules, car certains
dentre eux ne sont pas capables de faire la distinction entre les diffrents modles de cartes qui
utilisent la mme lectronique, et il faut leur communiquer ces informations sous la forme de
paramtres lors de leur chargement. Cest en particulier le cas pour les cartes vido bases sur la
puce lectronique Bt848 et les puces qui en sont drives. Notez que, contrairement ce quindique
laide de loption Zoran ZR36057/36060 Video For Linux , les cartes dacquisition et de
compression vido analogiques DC30 et DC30+ ne sont pas gres.
A.53. Menu Radio Adapters
Les options proposes par ce menu vous permettront dactiver les pilotes pour les diffrentes cartes
radio supportes par Linux. Vous devez activer le pilote correspondant votre matriel, et ventuel-
lement spcier les paramtres matriels de cette carte. La rponse recommande ces questions est
N.
A.54. Menu File systems
Loption Quota support permet dactiver la gestion des quotas de disque utilis par utilisateur.
Cette fonctionnalit nest disponible que pour les systmes de chiers EXT2. La rponse recomman-
de est N.
Loption Kernel automounter support permet deffectuer le montage des disques NFS au-
tomatiquement (cest--dire la demande) au niveau du noyau. La rponse recommande est N.
Loption Kernel automounter version 4 support (also supports v3) permet
dactiver la nouvelle version du montage automatique des systmes de chiers NFS. La rponse
recommande est N.
Les options qui suivent permettent de prendre en compte les systmes de chiers de diffrents sys-
tmes dexploitation. Parmi ces systmes, certains sont encore en cours de dveloppement et ne fonc-
tionnent pas trs bien. Cela signie quil est trs dconseill dutiliser ces gestionnaires pour crire
des donnes sur ces systmes de chiers : de trs grosses pertes de donnes peuvent sensuivre. En
particulier, il ne faut surtout pas utiliser le systme de chiers NTFS en criture : les dveloppeurs
de cette partie du noyau sont, encore actuellement, certains quil dtruira le systme de chiers. En
revanche, les systmes de chiers qui sont compltement grs peuvent tre utiliss sans risque. Ce-
pendant, ils peuvent ne pas tre assez puissants pour stocker les informations de chiers ncessaires
408
Annexe A. Options de conguration du noyau
tout systme Unix. Dans ce cas, le systme de chiers ne peut tre utilis que pour stocker des
donnes dapplications, pas le systme lui-mme. Cest en particulier le cas de la FAT. An de cor-
riger les limitations de ce systme de chiers, une extension nomme UMSDOS a t dveloppe.
Cette extension stocke dans chaque rpertoire un chier cach dcrivant les droits Unix, et rend ainsi
la FAT exploitable sous Linux. Cette fonctionnalit est trs intressante si lon veut installer Linux
sur une partition dj formate en FAT. Il faut prendre garde cependant au fait que les performances
seront alors dplorables (les accs disques sont plus lents dans un facteur 2 3). Le problme de
performances se pose dailleurs pour tous les systmes de chiers qui ont t intgrs Linux mais
qui ne sont pas natifs. Ainsi, mme sans utiliser UMSDOS, la FAT32 est deux fois plus lente que les
systmes de chiers natifs. Le systme de chiers le plus utilis actuellement sous Linux est EXT2,
qui offre la fois la scurit, les fonctionnalits et les performances. Loption Ext3 journalling
file system support (EXPERIMENTAL) permet dactiver les fonctionnalits de journalisation
de ce systme de chiers (il sagit dans ce cas dun systme de chiers EXT3). Un autre systme
de chiers journalis extrmement performant est le systme de chiers ReiserFS, dont on pourra
activer le support par lintermdiaire de loption Reiserfs support . Il est fortement recom-
mand dutiliser lun des ces systmes de chiers, car il sagit des systmes de chiers de loin les plus
courants sous Linux.
Il est impratif de compiler le pilote du systme de chiers racine dans le noyau. Si cela nest pas
fait, le noyau ne pourra pas monter le systme de chiers racine et se terminera en afchant le mes-
sage kernel panic . Il ne faut pas compiler ce systme de chiers en tant que module, pour les
mmes raisons. La rponse recommande pour loption Second extended fs support est
donc Y et rien dautre si vous utilisez ce systme de chiers pour votre systme de chiers racine
(vous devrez galement rpondre Y loption Ext3 journalling file system support
(EXPERIMENTAL) si ce systme de chiers est en EXT3). De mme, vous devrez rpondre Y et
non M loption Reiserfs support si votre systme de chiers racine est de type ReiserFS.
Certains systmes de chiers ncessitent le support de systmes de chiers de base. En particulier, les
systmes de chiers VFAT (qui gre la FAT32), MSDOS fs (qui gre les partitions DOS 12 et 16 bits)
et UMSDOS exigent tous trois le support du systme de chiers DOS FAT en gnral. Pour utiliser
ces systmes de chiers, on devra donc activer loption DOS FAT fs support . De mme, pour
lire les CD-ROM au format Joliet (lextension Microsoft au format ISO 9660 pour supporter les noms
longs sous Windows), il faudra activer loption ISO 9660 CDROM file system support .De
toutes faons, il est fortement recommand de grer ce systme de chiers si lon veut utiliser des
CD-ROMs.
Quatre systmes de chiers sont virtuels. Ils ne correspondent aucun support physique, et leur arbo-
rescence est cre uniquement en mmoire, la vole, par le noyau. Il sagit du systme de chiers
/proc/ (option /proc file system support ), qui fournit des informations dynamique-
ment sur ltat du systme, du systme de chiers /dev/ (option /dev file system support
(EXPERIMENTAL) ), qui permet de grer les chiers spciaux de priphriques la vole, du systme
de chiers /dev/pts/ (option /dev/pts file system for Unix98 PTYs ), qui permet de
crer des chiers spciaux de priphriques la demande pour les pseudo terminaux et du systme de
chiers /dev/shm/ (option Virtual memory file system support (former shm fs) ),
qui permet de grer les segments de mmoire partage POSIX. Il est fortement recommand dactiver
la gestion des systmes de chiers /proc/, /dev/pts/ et /dev/shm/, car ils sont utiliss par beau-
coup de programmes. Le systme de chiers /dev/ pourra tre utilis sur les systmes embarqus
ou les disquettes de dmarrage, pour lesquels la taille prise par le rpertoire /dev/ peut tre gnante.
Dans ce cas, on aura intrt raliser le montage automatique de ce systme de chiers laide de
loption Automatically mount at boot .
409
Annexe A. Options de conguration du noyau
A.55. Menu Network File Systems
Loption Coda file system support (advanced network fs) permet dactiver le sup-
port du systme de chiers rseau Coda, qui donne accs aux priphriques par le rseau comme sils
taient branchs sur la machine locale. Cette option active les fonctionnalits clientes au niveau du
noyau, mais il faut galement des outils complmentaires pour implmenter les fonctions serveurs.
La rponse recommande est N.
Loption InterMezzo file system support (replicating fs) (EXPERIMENTAL) per-
met dactiver le systme de chiers rseau InterMezzo, qui permet de travailler sans connexion per-
manente et qui assure la cohrence des chiers des diffrentes machines par rplication. La rponse
recommande est N.
Loption NFS file system support permet dactiver le support NFS classique en tant que
machine cliente. NFS est moins puissant que Coda, mais est cependant le plus rpandu. Il lui est donc
encore prfrable pour linstant. La rponse recommande est Y.
Loption Provide NFSv3 client support permet dactiver le support de la version 3 du
protocole NFS en tant que machine cliente. La rponse recommande est N.
Loption Root file system on NFS permet dindiquer au noyau que le systme de chiers
racine est plac sur un serveur NFS. Dans ce cas, le noyau se connectera automatiquement ce serveur
pour monter le systme de chiers racine. Pour raliser ce type de montage, il faut avoir rpondu Y
la question IP: kernel level autoconfiguration , an que les couches rseau soient
congures au niveau du noyau lors du dmarrage du systme. La rponse recommande est N.
Loption NFS server support permet dactiver le support NFS en tant que machine serveur.
La rponse recommande est N.
Loption Provide NFSv3 server support permet dactiver le support de la version 3 du
protocole NFS en tant que serveur. La rponse recommande est N.
Loption Provide NFS server over TCP support (EXPERIMENTAL) permet dactiver le
support du protocole NFS encapsul dans le protocole de communication TCP. La rponse recom-
mande est N.
Loption SMB file system support (to mount WfW shares, etc.) permet daccder
aux rpertoires partags par les machines fonctionnant sous Windows. Cette fonctionnalit nest pos-
sible que si les postes Windows utilisent TCP/IP comme protocole de rseau de base, et non NetBIOS.
La rponse recommande est Y.
Les Use a default NLS et Default Remote NLS Option permettent de spcier une
page de codes par dfaut pour lire les noms de chiers et de rpertoires partags par le serveur. La
rponse recommande est N.
Loption NCP file system support (to mount NetWare volumes) permet daccder
aux volumes NetWare. Cette fonctionnalit ncessite la gestion dIPX au niveau de la machine
Linux. On notera quil est inutile dactiver cette fonctionnalit si lon dsire faire en sorte que la
machine Linux soit serveur de chiers Novell. Les options qui suivent permettent de paramtrer
les accs aux volumes NetWare (scurit, verrous sur les chiers, droits daccs...). La rponse
recommande est N.
A.56. Menu Partition Types
Certains systmes utilisent un format diffrent pour les tables de partitions que le format utilis par
le BIOS des PC. Pour lire les donnes stockes sur les disques partitionns par ces systmes sur des
410
Annexe A. Options de conguration du noyau
machines darchitecture diffrente, vous devez activer une gestion spciale des tables de partitions.
Les options de ce menu permettent dactiver la gestion des tables de partitions de ces systmes. La
rponse recommande ces questions est N.
A.57. Menu Native Language Support
Les options fournies ici permettent de choisir les pages de codes utiliser pour les jeux de ca-
ractres dans les systmes de chiers. Ces pages de codes doivent tre choisies en fonction de la
langue dinstallation du systme. Les pages de codes recommandes pour un systme franais sont
les suivantes :
Codepage 437 (United States, Canada) , indispensable en raison de la majorit des
programmes provenant des tats Unis ;
Codepage 850 (Europe) , pour les caractres accentus europens ;
NLS ISO 8859-1 (Latin 1; Western European Languages) pour les caractres ac-
centus europens sur les CDROMs ;
NLS ISO 8859-15 (Latin 9; Western European Languages with Euro) pour les
caractres accentus europens sur les CDROMs, y compris quelques caractres additionnels non
grs par la page de code ISO 8859-1 ;
NLS UTF8 , pour les caractres encods en ISO10686 (dont Unicode est un sous-ensemble).
Cette option est ncessaire pour certains systmes de chiers qui travaillent en Unicode, comme
NTFS par exemple.
Pour toutes les autres pages de codes, la rponse recommande est N.
Loption Default NLS Option permet de choisir la page de code par dfaut utiliser parmi
celles qui ont t choisies. La rponse recommande est iso8859-1 .
A.58. Menu Console drivers
Loption VGA text console permet dutiliser les modes texte VGA pour lafchage en mode
texte. La rponse cette question est Y.
Loption Video mode selection support permet de choisir le mode texte utiliser au d-
marrage de Linux. Ce mode peut tre indiqu grce un paramtre pass au noyau lors du dmarrage.
La rponse recommande est Y.
Loption MDA text console (dual-headed) (EXPERIMENTAL) permet dactiver le support
de lafchage multiple ralisable laide dune carte MDA et dune carte VGA. Cette option ne doit
tre choisie que si la carte MDA est la carte dafchage principale. La rponse recommande est N.
A.59. Menu Frame-buffer support
Loption Support for frame buffer devices (EXPERIMENTAL) permet dactiver le sup-
port des cartes graphiques par lintermdiaire dune interface unie et dune zone mmoire nomme
411
Annexe A. Options de conguration du noyau
frame buffer , accessible via les chiers spciaux /dev/fb*. Cette interface permet aux pro-
grammes daccder aux fonctionnalits des cartes graphiques de manire portable. Le support de cette
fonctionnalit nest en gnral pas ncessaire pour les PC, puisque beaucoup de serveurs X ont t d-
velopps pour cette plate-forme et que, dans le pire des cas, un serveur X bas sur le standard VESA
2.0 est disponible. Cependant, pour les autres plates-formes, ou si vous disposez dune carte gra-
phique exotique, il peut tre utile dactiver cette fonctionnalit et dutiliser un serveur X bas sur cette
interface. Les options qui suivent permettent dinclure les pilotes pour diffrentes cartes graphiques.
Vous trouverez de plus amples informations sur ces options dans la huitime partie de ce document.
La rponse recommande est N. Notez que la plupart de ces pilotes ne sont pas ncessaires pour les
architectures PC et ne doivent en aucun cas tre slectionnes (mme si lon dsire utiliser les fonc-
tionnalits Frame buffer du noyau). Pour utiliser le frame buffer sur un PC, il faut dabord essayer
loption Support for frame buffer devices (EXPERIMENTAL) seule, avec les polices de
caractres que vous dsirez utiliser.
Loption Virtual Frame Buffer support (ONLY FOR TESTING!) (EXPERIMENTAL)
permet dactiver la gestion dune carte graphique virtuelle en mmoire seulement. Ce pilote
consomme normment de ressources et ne doit tre utilis que pour tester des applications bases
sur cette interface. La rponse recommande est N.
Loption Advanced low level driver options permet dactiver les options permettant de
xer certains paramtres bas niveau. Ces paramtres peuvent tre xs grce aux options suivantes.
En particulier, les formats de pixels grs, ainsi que les polices de caractres utiliser peuvent tre
prciss. Vous trouverez de plus amples informations sur ces options dans le Chapitre 10. La rponse
recommande est N.
A.60. Menu Sound
Loption Sound card support permet dactiver la gestion des cartes son. Si vous ne disposez
pas de carte son, choisissez la rponse N, sinon, activez cette fonctionnalit.
Les options qui suivent permettent de choisir les pilotes pour les cartes son non standards. Ces pi-
lotes grent les cartes son correctement mais ne fournissent pas exactement la mme interface de
programmation que le standard actuel sous Linux quest OSS (abrviation de langlais Open
Sound System ). Certaines fonctionnalits ne seront donc pas accessibles de manire standard avec
ces cartes.
Vient ensuite loption OSS sound modules , qui permet dactiver la slection des pilotes com-
patibles avec linterface OSS. Les options qui suivent celle-ci permettent de choisir et de congurer
les pilotes pour les cartes son compatibles. Il est recommand dutiliser les pilotes OSS si possible.
Notez quune certain nombre de pilotes ont galement t dvelopps dans le cadre de larchitecture
ALSA (abrviation de langlais Advanced Linux Sound Architecture ). Si vous ne trouvez pas de
pilote appropri votre matriel ici, vous pouvez essayer dinstaller les pilotes dALSA.
Notez enn que le gestionnaire de priphriques pour le son des cartes dacquisition TV bases sur la
puce Bt848 se situe parmi les pilotes OSS (option TV card (bt848) mixer support ). Vous
devez donc lintgrer sous forme de module si vous disposez dune telle carte.
A.61. Menu USB support
Loption Support for USB permet de prendre en charge les priphriques USB sous Linux. La
rponse recommande est Y.
412
Annexe A. Options de conguration du noyau
Loption USB verbose debug message permet de demander aux gestionnaires de priph-
riques USBdenvoyer des informations de dbogage dans les chiers de traces du systme. La rponse
recommande est N.
Loption Preliminary USB device filesystem active la gestion des informations sur les
ports USB dans le systme de chiers virtuels /proc/. Ces informations comprennent en particulier
la liste des priphriques connects sur le bus USB. La rponse recommande est Y.
Loption Enforce USB bandwidth allocation (EXPERIMENTAL) active la gestion de la
bande passante du bus USB entre les diffrents priphriques qui y sont connects. Cette option est
exprimentale, et la rponse recommandes est N.
Les quatre options suivantes ( EHCI HCD (USB 2.0) support (EXPERIMENTAL) , UHCI
(Intel PIIX4, VIA, ...) support , UHCI Alternate Driver (JE) support
et OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support permettent dinclure les
pilotes pour les diffrents types de contrleurs USB. La premire option permet dactiver le support
de lUSB 2.0, alors que les autres prennent en charge les ports USB classiques. On recense pour
ceux-ci deux diffrents types de contrleurs : les contrleurs UHCI (abrviation de langlais
Universal Host Controller Interface ) et les contrleurs OHCI (abrviation de Open Host
Controller Interface ). Les contrleurs UHCI sont fabriqus par Intel et VIA essentiellement, alors
que les contrleurs OHCI sont prsents sur les chipsets non Intel (Compaq, SiS, Aladdin). Vous
devez choisir le pilote appropri au chipset de votre carte mre. Pour les contrleurs UHCI, vous
avez le choix entre deux pilotes. Notez que la prise en charge de lUSB 2.0 nest pas exclusive de
celle de lUSB classiques, les contrleurs USB 2.0 tant gnralement fournis avec des contrleurs
USB auxiliaires permettant daccder aux anciens priphriques USB. Les gestionnaire de
priphrique pour les contrleurs USB 2.0 ne prennant en charge que les contrleurs USB 2.0, vous
devrez galement inclure le gestionnaire de priphriques adquat pour vos priphriques USB
classiques si vous dsirez y accder.
Loption USB Audio support permet de prendre en charge les priphriques audio connects
sur le port USB, comme des hauts-parleurs par exemple. La rponse recommande est N.
Loption EMI 2|6 USB Audio interface support permet de prendre en charge le tlchar-
gement dynamique du rmware des interfaces audio USB Emagic EMI 2|6. Une fois le code du rm-
ware charg, ces interfaces sont utilisables comme des interfaces audio USB classiques. La rponse
recommande est N.
Loption USB Bluetooth support (EXPERIMENTAL) active la gestion des priphriques USB
Bluetooth (capables deffectuer des transmissions sans l). La rponse recommande est N.
Loption USB MIDI support active la gestion des priphriques MIDI connects sur port USB.
La rponse recommande est N.
Loption USB Mass Storage support active la gestion des priphriques USB de masse (lec-
teurs de CD, clefs USB, etc.). La rponse recommande est N.
Loption USB Mass Storage verbose debug permet de demander au gestionnaires de pri-
phriques USB de masse de gnrer des messages de dbogage dans les chiers de traces du systme.
La rponse recommande est N.
Loption Datafab MDCFE-B Compact Flash Reader support est rserve pour activer des
fonctionnalits extrmement exprimentales au niveau des gestionnaires de priphriques USB. La
rponse recommande est N.
Loption Freecom USB/ATAPI Bridge support permet de grer les passerelles entre le bus
USB et les priphriques ATAPI connects sur ce bus. La rponse recommande est N.
Loption ISD-200 USB/ATA Bridge support permet dutiliser les priphriques de stockage
utilisant le pont SUB/ATA ISD-200. La rponse recommande est N.
413
Annexe A. Options de conguration du noyau
Loption Microtech CompactFlash/SmartMedia support permet de prendre en charge les
priphriques de lecture des cartes ash Microtech CompactFlash/SmartMedia. La rponse recom-
mande est N.
Loption HP CD-Writer 82xx support permet dutiliser les graveurs externes HP CD-Writer
82xx connects sur port USB. La rponse recommande est N.
Loption SanDisk SDDR-09 (and other SmartMedia) support) permet de prendre en
charge les cartes ash SmartMedia SDDR-09 de Sandisk au niveau du gestionnaire de priphriques
de stockage USB. La rponse recommande est N.
Loption SanDisk SDDR-55 SmartMedia support permet de prendre en charge les cartes
ash SmartMedia SDDR-55 de Sandisk au niveau du gestionnaire de priphriques de stockage USB.
La rponse recommande est N.
Loption Lexar Jumpshot Compact Flash Reader est rserve pour activer des fonction-
nalits extrmement exprimentales au niveau des gestionnaires de priphriques USB. La rponse
recommande est N.
Loption USB Modem (CDC ACM) support permet de prendre en charge les modems analo-
giques et Numris utilisant linterface CDC ACM (abrviation de langlais Communication Device
Class Abstract Control Model ) connects sur le port USB. La rponse recommande est N.
Loption USB Printer support active la gestion des imprimantes connectes sur le port USB.
La rponse recommande est N.
Loption USB Human Interface Devices (full HID) support permet dactiver la prise
en charge des priphriques dentre et de saisie tels que les claviers, souris et tablettes de digitalisa-
tion. Ce pilote gre compltement les priphriques dentre USB, et est incompatible avec les pilotes
simplis pour le clavier et la souris, que lon peut activer avec les options USB HIDBP Keyboard
(basic) support et USB HIDBP Mouse (basic) support . La rponse recommande est
N.
Loption HID input layer support permet dutiliser les priphriques dentre USB par
lintermdiaire de linterface gnrique de gestion des priphriques de Linux. Cette option nest
accessible que si loption Input core support du menu Input core support a galement
t active. La rponse recommande est N.
Loption /dev/hiddev raw HID device support (EXPERIMENTAL) permet de prendre en
charge les priphriques dentre USB qui ne sont pas des priphriques utiliss par lutilisateur
directement, mais plutt pour signaler des vnements complmentaires (comme des moniteurs
dalimentation par exemple). La communication avec ces priphriques se fera par lintermdiaire de
chiers spciaux de priphriques /dev/usb/hiddevX complmentaires, tous de code majeur 180
et de codes mineurs allant de 96 111. La rponse recommande est N.
Loption USB HIDBP Keyboard (basic) support permet dactiver un pilote simpli pour
les claviers USB. Ce pilote peut tre utilis pour allger le noyau dans les systmes embarqus, mais
ne gre pas toutes les touches des claviers tendus. Cette option est incompatible avec loption USB
Human Interface Device (full HID) support . La rponse recommande est N.
Loption USB HIDBP Mouse (basic) support permet dactiver un pilote simpli pour les
souris USB. Ce pilote peut tre utilis pour allger le noyau dans les systmes embarqus. Cette option
est incompatible avec loption USB Human Interface Device (full HID) support . La
rponse recommande est N.
Loption Aiptek 6000U/8000U tablet support permet de prendre en charge les tablettes
graphiques 6000U et 8000U dAiptek. Cette option ncessite davoir galement activ loption
Event interface support du menu Input core support . La rponse recommande
est N.
414
Annexe A. Options de conguration du noyau
Loption Wacom Intuos/Graphire tablet support active la prise en charge des tablettes
graphiques Wacom USB. Cette option ncessite davoir galement activ loption Mouse
support ou loption Event interface support du menu Input core support . La
rponse recommande est N.
Loption KB Gear JamStudio tablet support nest pas documente et ne sera pas dcrite
ici.
Loption Griffin Technology PowerMate support permet de prendre en charge les cap-
teurs PorwerMate de Grifn Technlology. La rponse recommande est N.
Loption USB Kodak DC-2xx Camera support active la prise en charge des appareils photos
numriques USB Kodak DC-2xx et de quelques appareils compatibles. La rponse recommande est
N.
Loption USB Mustek MDC800 Digital Camera support (EXPERIMENTAL) permet de
prendre en charge les appareils photos numriques USB Mustek MDC800 et de quelques appareils
compatibles. La rponse recommande est N.
Loption USB Scanner support active la prise en charge des scanners USB. La rponse recom-
mande est N.
Loption Microtek X6USB scanner support (EXPERIMENTAL) permet de prendre en
charge les scanners Microtek X6USB. Ces scanners apparatront dans le systme comme des
priphriques SCSI gnriques. Notez quil faut une version modie de SANE pour utiliser ce
pilote. La rponse recommande est N.
Loption HP53xx USB scanner support (EXPERIMENTAL) permet de prendre en charge les
scanners USB de la srie HP53xx et le scannel Scan Dual de Minolta. Avec ce gestionnaire, les
scanners apparaissent comme des priphriques SCSI normaux. La rponse recommande est N.
Loption USB IBM (Xirlink) C-it Camera support permet de connecter un appareil photo
Xirlink dIBM votre ordinateur. Cet appareil sera utilisable via linterface Video4Linux, que lon
devra donc galement activer. La rponse recommande est N.
Loption USB Konica Webcal support permet de prendre en charge les webcams Konica. La
rponse recommande est N.
Loption USB OV511 Camera support permet de connecter un appareil photo OV511 votre
ordinateur. Cet appareil sera utilisable via linterface Video4Linux, que lon devra donc galement
activer. La rponse recommande est N.
Loption USB Philips Cameras permet de connecter un appareil photo Philips votre ordina-
teur. Cet appareil sera utilisable via linterface Video4Linux, que lon devra donc galement activer.
La rponse recommande est N.
Loption USB SE401 Camera support permet de connecter un appareil photo SE401 votre
ordinateur. Cet appareil sera utilisable via linterface Video4Linux, que lon devra donc galement
activer. La rponse recommande est N.
Loption USB STV680 (Pencam) Camera support permet de connecter un appareil photo
STV680 votre ordinateur. Cet appareil sera utilisable via linterface Video4Linux, que lon devra
donc galement activer. La rponse recommande est N.
Loption USB 3com HomeConnect (aka vicam) support (EXPERIMENTAL) permet de
connecter appareil photo HomeConnect de 3Com votre ordinateur. Cet appareil sera utilisable via
linterface Video4Linux, que lon devra donc galement activer. La rponse recommande est N.
Loption D-Link USB FM radio support (EXPERIMENTAL) permet de connecter une radio
FM USB D-Link. Cette radio sera utilisable via linterface Video4Linux, que lon devra donc gale-
ment activer. La rponse recommande est N.
415
Annexe A. Options de conguration du noyau
Loption DABUSB driver permet la prise en charge dun rcepteur USB DAB (abrviation de
langlais Digital Audio Broadcasting ). La rponse recommande est N.
Loption USB Pegasus/Pegasus II based ethernet device support
(EXPERIMENTAL) permet de prendre en charge les cartes Ethernet de type Pegasus ou Pegasus II.
La rponse recommande est N.
Loption USB Realtek RTL8150 base ethernet device support (EXPERIMENTAL)
permet de prendre en charge les adaptateurs Ethernet USB bass sur la puce RTL8150 de Realtek.
La rponse recommande est N.
Loption USB KLSI KL5USB101-based ethernet device support permet de prendre en
charge les adaptateurs Ethernet connects sur port USB bass sur la puce KL5USB101. La rponse
recommande est N.
Loption USB CATC NetMate-based Ethernet driver (EXPERIMENTAL) permet de
prendre en charge les connecteurs Ethernet pour port USB bass sur la puce EL1210A. La rponse
recommande est N.
Loption USB Communication Class Ethernet device support (EXPERIMENTAL) per-
met dactiver la prise en charge de certains modems cble connects sur port USB. La rponse recom-
mande est N.
Loption USB-to-USB Networking cable device support (EXPERIMENTAL) permet de
raliser un rseau entre deux PC en utilisant un cble USB de transfert de donnes. Les interfaces
rseau seront nommes usb0, usb1, etc. dans le systme. La rponse recommande est N.
Loption USS720 parport driver permet dactiver les convertisseurs USB / Port parallle
permettant de connecter les priphriques utilisant un port parallle sur le port USB de lordinateur.
La rponse recommande est N.
Loption USB Diamond Rio500 support (EXPERIMENTAL) permet de prendre en charge les
lecteurs MP3 USB Rio500. La rponse recommande est N.
Loption USB Auerswald device support permet de connecter un adaptateur ISDN Auers-
wald sur le port USB de votre ordinateur. La rponse recommande est N.
Loption Texas Instruments Graph Link USB (aka SilverLink) cable support
permet de connecter un calculateur Graph Link de Texas Instruments sur le port USB. La rponse
recommande est N.
Loption Tieman Voyager USB Braille display support (EXPERIMENTAL) nest pas
documente et ne sera pas dcrite plus en dtail ici.
Loption USB LCD device support permet dactiver la prise en charge dune interface LCD
alphanumrique connectanle sur le port USB. La rponse recommande est N.
A.62. Menu USB Serial Converter support
Loption USB Serial Converter support permet de prendre en charge les priphriques
USB utilisant une interface srie classique. Les options qui suivent activent les gestionaires des diff-
rents priphriques supports par Linux. La rponse recommande est N.
416
Annexe A. Options de conguration du noyau
A.63. Menu Bluetooth support
Loption Bluetooth subsystem support permet dactiver la gestion des priphriques sans
l utilisant la norme Bluetooth. La rponse recommande est N.
Loption L2CAP protocol support active la prise en charge du protocole de communication
L2CAP, qui permet de travailler en mode connect ou non avec les priphriques BlueTooth. Ce
protocole tant utilis par la majorit des priphriques, il est recommand de rpondre Y cette
question.
Loption SCO links support permet dactiver la gestion de la voix au travers du protocole
Bluetooth. La rponse recommande est N.
Loption RFCOMM protocol support permet dactiver le support des communications connec-
tes sur la technologie BlueTooth. Loption qui suit permet de permettre lutilisation dun terminal
par ce protocole. La rponse recommande est N.
Loption BNEP protocol support permet de crer une interface rseau Ethernet virtuelle utili-
sant les fonctionnalits Bluetooth comme couche de transport. Cela permet de crer des rseau privs
Bluetooth. Les options qui suivent permettent de spcier les fonctionnalits disponibles au niveau de
linterface implmente par ce gestionnaire. La rponse recommande est N.
A.64. Menu Bluetooth device drivers
Loption HCI USB driver permet de prendre en charge les priphriques Bluetooth utilisant une
interface USB. La rponse recommande est N.
Loption SCO (voice) support permet dactiver le support du protocole SCO sur les priph-
riques BlueTooth USB. La rponse recommande est N.
Loption USB zero packet support permet dactiver le support dune fonctionnalit USB qui
nest ncessaire que pour certains priphriques USB Bluetooth bogus. La rponse recommande est
N.
Loption HCI UART driver permet de prendre en charge les priphriques Bluetooth utilisant
une interface srie classique. La rponse recommande est N.
Loption UART (H4) protocol supoprt permet de prendre en charge le protocole de commu-
nication srie H4 utilis par les priphriques Bluetooth et leur hte. Ce protocole est utilis par un
grand nombre de priphriques. La rponse recommande est N.
Loption BCSP protocol support permet de prendre en charge le protocole de communication
srie BSCP utilis par les priphriques Bluetooth et leur hte. Loption Transmit CRC with
every BCSP packet permet de demander ce quun code de contrle de redondance cyclique
soit transmis avec chaque paquet du protocole. Cela rduit les performances mais rend le protocole
plus sr. Les rponses recommandes sont N.
Loption HCI DTL1 (PC Card) driver permet de prendre en charge les cartes PCMCIA Blue-
tooth disposant de linterface DTL1 de Nokia. La rponse recommande est N.
Loption HCI BT3C (PC Card) driver permet de prendre en charge les cartes PCMCIA Blue-
tooth disposant de linterface BT3C de 3Com. La rponse recommande est N.
Loption HCI BlueCard (PC Card) driver permet de prendre en charge les cartes PCMCIA
Bluetooth disposant de linterface BlueCard de Anycom. La rponse recommande est N.
Loption HCI VHCI virtual HCI device driver permet dactiver le priphrique HCI vir-
tuel, qui vous permettra de simuler des priphriques Bluetooth. La rponse recommande est N.
417
Annexe A. Options de conguration du noyau
A.65. Menu Kernel hacking
Loption Kernel debugging permet daccder une srie doptions relatives au dboguage du
noyau. Ces options ne sont pas rellement utilise pour un utilisateur et ne sont prsentes que pour les
dveloppeurs de gestionnaires de priphriques ou les dveloppeurs du noyau. Les options qui suivent
ne sont donc accessibles que si vos rpondez Y cette question. Elles ne seront toutefois pas dcrites
plus en dtail ici, et la rponse recommande pour cette option est N.
A.66. Menu Library routines
Les options de ce menu ne sont pas documentes et ne seront pas dcrites plus en dtail ici.
418
Annexe B. Compilation et mise jour des
principaux composants du systme
Les paragraphes suivants contiennent les remarques et les options choisir pour compiler les prin-
cipaux composants du systme. La compilation de GCC et du noyau a dj t vue et ne sera donc
pas dcrite ici. Les informations fournies ci-dessous ne sont pas trs dtailles, car la plupart des gens
nen nont pas besoin. Elles relvent plus de la cration du systme que de son installation, mais elles
sont fournies car elles peuvent tre utiles pour les personnes dsirant approfondir srieusement le
sujet et disposant dun certain niveau en informatique.
B.1. Compilation de make 3.80.0
Le programme make est utilis systmatiquement lors des compilations. Certaines compilations n-
cessitent la dernire version de make, qui nest pas forcment fournie avec votre distribution. Vous
pouvez donc avoir besoin de le recompiler. La version courante de make est la 3.80.0, il est fortement
recommand de lutiliser.
La compilation de make est tout fait classique. Elle ncessite de :
extraire les chiers sources de leur archive dans un rpertoire source srcdir ;
crer un rpertoire pour les objets et sy placer ;
taper :
CFLAGS=-O2 ../srcdir/configure --enable-shared --host=i686-pc-linux-gnu \
--prefix=/usr
lancer make.
Lorsque la compilation sera termine, vous pourrez tester le nouveau programme avant de linstaller.
Pour cela, il suft de taper la commande suivante :
make check
Le programme make ainsi congur sera install avec la simple commande suivante :
make install
Le rpertoire dinstallation est le rpertoire /usr/bin si le prxe utilis est /usr/.
B.2. Compilation des binutils 2.14
Larchive de GCC ne fournit en soi que les compilateurs des langages supports, ainsi que quelques
outils complmentaires. Elle ne contient pas en revanche les outils de gnration et de manipulation
des chiers binaires. Ces outils sont fournis dans un paquetage distinct, les binutils.
419
Annexe B. Compilation et mise jour des principaux composants du systme
La qualit des outils de manipulation des chiers binaires est un facteur important pour une gnration
correcte des programmes partir de leurs sources. En clair, le compilateur ne fait quune partie du
travail, le reste revient aux binutils. Il est donc ncessaire de disposer des dernires versions de ces
outils, car certaines compilations de grande taille peuvent mal se passer avec les anciennes versions.
Cest en particulier le cas de la glibc.
La version courante des binutils est la 2.14. Les sources de ce paquetage peuvent, comme
lacoutume, tre rcupres sur le site Internet du GNU (http://www.gnu.org). Leur compilation
ne pose pas de problme, puisquelle utilise le trs classique script de conguration de GNU. La
conguration se fera donc avec la commande suivante :
CFLAGS=-O2 ./configure --prefix=/usr
La compilation et linstallation de ces outils pourront alors tre faites simplement avec les deux com-
mandes suivantes :
make
make install
Comme dhabitude, vous pourrez tester que tout sest bien pass laide de la commande make check
avant de lancer linstallation.
B.3. Compilation de la bibliothque C 2.3.2
La bibliothque C constitue lensemble des bibliothques de fonctions que tous les programmes crits
en C utilisent pour accder aux systme. Il sagit donc dun composant essentiel dans le systme (qui,
rappelons-le, est lui-mme crit en C). Recompiler la bibliothque C est donc une opration trs
sensible. Surtout si vous utilisez une Redhat ou une distribution drive de la Redhat (comme la
Mandrake par exemple) : vous allez certainement casser compltement votre systme si vous passez
lacte. Ces distributions font exprs de ne pas tre compatibles avec les autres et dintgrer des
fonctionnalits non stabilises et non ofcielles. Recompiler la bibliothque C est donc le meilleur
moyen pour ne plus pouvoir lancer le moindre programme avec ces distributions. Vous tes prvenus.
La compilation de la bibliothque C est une opration fastidieuse plus dun titre. Elle ncessite
souvent de recompiler certains outils, et elle est longue et consomme normment de ressources.
Enn, il faut parfois recompiler certaines parties du systme aprs son installation, an de rsoudre
des conits de versions dus la migration. La dernire version de la bibliothque C GNU est la 2.3.2.
Les prrequis sont les suivants :
le compilateur GCC (version 3.2.1 ou plus) doit avoir t compil et install ;
les outils de manipulation des chiers binaires (binutils 2.13 ou plus) doivent avoir t compils et
installs ;
le programme make utilis doit tre de version rcente (3.79.1 ou plus) ;
vous devez disposer de larchive de lextension linuxthreads prenant en charge les threads sous
Linux. Cette archive peut tre trouve au mme endroit que larchive de la bibliothque C, par
exemple sur le site du GNU (http://www.gnu.org).
420
Annexe B. Compilation et mise jour des principaux composants du systme
Note : Contrairement aux anciennes versions de la bibliothque C, il est inutile de tlcharger un
add-on pour les fonctionnalits de cryptage de la bibliothque. Celles-ci sont prsent directe-
ment intgres dans les sources de la glibc.
Le processus de compilation est ensuite assez classique. Il suft de :
extraire les chiers sources de leur archive dans un rpertoire source srcdir ;
se placer dans le rpertoire srcdir et extraire les sources de larchive de linuxthreads ;
crer un rpertoire pour les objets en dehors du rpertoire des sources de la bibliothque et sy
placer ;
taper :
CFLAGS=-O2 ../srcdir/configure --enable-shared --host=i686-pc-linux-gnu \
--prefix=/usr --enable-add-ons=linuxthreads
Les options de la commande de conguration permettent lemploi des bibliothques dynamiques
et la compilation des modules additionnels pour le multithreading. Le rpertoire dinstallation sera
/usr/lib/ pour les bibliothques, et /usr/include/ pour les chiers den-ttes. Vous pouvez bien
entendu utiliser une autre valeur pour loption --host, selon votre conguration. Normalement, cette
option est facultative, car sa valeur est automatiquement dtecte par le programme de conguration.
La compilation peut ensuite tre lance avec la simple commande suivante :
make
Une fois la compilation effectue, vous pouvez tester la nouvelle bibliothque avant de linstaller.
Pour cela, tapez la commande suivante :
make check
Il est vivement recommand deffectuer ce test. Si la moindre erreur apparat pendant lexcution du
test, ninstallez surtout pas la bibliothque, vous dtruiriez sans aucun doute votre systme.
Note : En gnral, un chec de ce test provient souvent dune mauvaise gnration de la biblio-
thque due lutilisation de programmes trop vieux sur votre systme. Il est donc parfois nces-
saire de mettre jour dautres programmes avant deffectuer la mise jour de la bibliothque C.
Par exemple, votre version de make peut tre obsolte, ainsi que celle de GCC ou encore celle
des outils GNU binutils (assembleur, diteur de liens, archiveur, etc.). Les sources de tous ces
programmes peuvent tre trouves sur le site du GNU (http://www.gnu.org).
La compilation de la bibliothque C, ainsi que celle des autres composants lourds du systme
comme le noyau, GCC, XFree86, Gnome ou KDE, peuvent stresser votre systme dune manire
quil na jamais connu. Les calculs intensifs peuvent durer plusieurs heures, ce qui fait chauffer
les composants de votre ordinateur. Il nest pas rare de voire certains de ces composants dfail-
lir dans ces circonstances, alors quils se sont toujours comports apparemment normalement
jusqu prsent. En particulier, vous pouvez avoir des problmes de surchauffe du processeur
et des corruptions de donnes dans les barettes de mmoire. Les symptmes sont en gnral
lapparition dune erreur de type SIG 11 (erreur de segmentation) sur des programmes trs
ables, comme gcc ou le shell. Dans ce cas, il faut identier et remplacer les composants d-
fecteux (ce nest pas une blague, ce problme mest personnellement arriv avec trois barettes
421
Annexe B. Compilation et mise jour des principaux composants du systme
mmoires et un processeur en moins dun an, et il est arriv bien dautres personnes dans le
monde). Il est facile de penser que, avec la baisse du prix des barettes mmoires que lon a vcu
ces derniers temps, les fabricant sont tents dtre un peu plus laxistes au niveau du contrle
qualit des composants en n de chane. Le phnomne risque donc de devenir courant, et il
peut parfaitement vous arriver. Bien entendu, il va de soi quil ne faut pas overclocker sa machine
lorsquon se lance dans des oprations telles que celles-ci. Loverclocking est de toutes manires
une technique douteuse dont le but nest que darriver plus vite avoir des problmes curieux,
surtout sous Linux. Vous tes avertis.
Linstallation se fera enn avec les deux commande suivantes :
make install
et :
make localedata/install-locales
La compilation des paramtres internationaux utiliss par la bibliothque C pour la France se fera
ensuite avec la commande suivante :
localedef -i fr_FR -f ISO-8859-15 fr_FR
Cette commande permet de compiler les chiers des paramtres dafchage des monnaies et des
dates, ainsi que le jeu de caractres utilis pour comparer et trier les chanes de caractres. Dans
lexemple donn ci-dessus, la langue choisie est le franais ( fr ) tel quil est parl en France
( FR ), avec le jeu de caractres ISO-8859-15. Les chiers compils sont placs dans le rpertoire
/usr/lib/locale/, raison dun sous-rpertoire pour chaque locale congure. Si ce rpertoire
nexiste pas sur votre machine, vous devrez le crer manuellement, car la commande localedef ne le
fait pas automatiquement.
Note : Une fois la bibliothque C compile, vous aurez peut-tre recompiler GCC et un certain
nombre dautres programmes, car la compatibilit binaire dune version lautre de la bibliothque
C est trs relative. Si la version que vous utilisez est un simple correctif de bug cependant, la
compatibilit sera sans doute totale, mais il faut savoir qu chaque version majeure un certain
nombre de fonctionnalits sont modies et peuvent ncessiter des mises jour en cascade.
Remarquez enn que le format des chiers dinternationalisation de la bibliothque C a t mod-
i depuis la version 2.2.x. Cela peut provoquer des incompatibilit avec les programmes inter-
nationnaux qui ont t compils statiquement avec lancienne version de la bibliothque. Ces
programmes devront galement tre recompils.
partir de la version 2.3 de la bibliothque C et de la version 2.13 des binutils, une
amlioration dans le chargement des bibliothques dynamiques a t apporte. Cette
amlioration permet de prcharger ces bibliothques et donc de gagner du temps au
dmarrage des programmes. Pour pouvoir bncier de ces amliorations, il faut installer
un outil complmentaire nomm prelink . Les sources de cet outil pourront tre trouvs
sur le compte de son auteur, ladresse ftp://people.redhat.com/jakub/prelink/. Sa compilation
requiert que la bibliothque libelf, permettant de manipuler les chiers binaires, soit installe.
Les sources de cette bibliothque peut galement tre rcuprs sur Internet, ladresse
422
Annexe B. Compilation et mise jour des principaux composants du systme
http://www.stud.uni-hannover.de/~michael/software/libelf-0.8.2.tar.gz. Linstallation de cette
bibliothque et de prelink se fait simplement laide des commandes suivantes :
./configure --prefix=/usr
make
make install
Note : Pour pouvoir utiliser correctement prelink, vous devez crer un chier
/etc/prelink.conf contenant la liste de tous les rpertoires des bibliothques de votre
systme, raison dune ligne par rpertoire. Le contenu de ce chier est donc typiquement le
suivant :
# Exemple de fichier /etc/prelink.conf :
/lib
/usr/lib
/usr/local/lib
/usr/X11R6/lib
/usr/lib/qt/lib
/opt/kde/lib
De plus, sachez que le prchargement des bibliothques ne peut fonctionner que si toutes
les bibliothques dont dpend un programme, directement ou indirectement (cest--dire par
lintermdiaire dventuelles autres bibliothques) ont t gnres avec les binutils 2.13 ou plus.
Cela implique quun certain nombre de composants systmes (pour ne pas dire tous) devront
tre recompils au pralable. Une mise jour de votre distribution semble donc tre la solution la
plus simple ce stade.
B.4. Compilation de OpenSSL
Les communications sur Internet nont jamais t considres comme quelque chose de sr. Cest
pour cela que bon nombre de programmes ont recours au cryptage des donnes pour assurer des
communications ables. Ce cryptage est une ncessit vitale si vous dsirez acheter quelque chose sur
Internet ou consulter vos comptes en ligne, tant pour assurer votre protection que celle des intervenants
commerciaux. La plupart des sites commerciaux refuseront laccs aux clients non scuriss.
La plupart des distributions utilisent pour assurer le cryptage une bibliothque fournissant un accs
standard la plupart des algorithmes de cryptage : OpenSSL. Vous pourrez trouver cette bibliothque
sur Internet (http://www.openssl.org).
La compilation dOpenSSL nest pas complique, car un jeu de chier makele pour Linux est fourni
avec les sources. Vous devez simplement tapez la commande suivante pour les slectionner :
./Configure linux-elf shared
Note : Par dfaut, OpenSSL va sinstaller dans le rpertoire /usr/local/ssl/, y compris
les chiers den-tte. Il faut donc ajouter le chemin /usr/local/ssl/ dans les variables
denvironnement C_INCLUDE_PATH et CPLUS_INCLUDE_PATH si on veut compiler des
programmes qui utilisent SSL (cest en particulier le cas de KDE). Une autre solution est de
423
Annexe B. Compilation et mise jour des principaux composants du systme
demander une conguration explicite et dutiliser loption --prefix pour indiquer le rpertoire de
base pour linstallation, et loption --openssldir pour indiquer le rpertoire dinstallation des
utilitaires :
./Configure linux-elf shared --prefix=/usr --openssldir=/etc/ssl
pour effectuer linstallation des bibliothques et des en-ttes dans les rpertoires /usr/lib et
/usr/include respectivement, et de placer les clefs prives et les chiers de conguration dans
le rpertoire /etc/ssl.
Une fois la conguration effectue, il suft de taper les commandes suivantes pour effectuer la com-
pilation et linstallation :
make
make install
Comme dhabitude, vous pouvez effectuer un test avec la commande make test avant de raliser
linstallation pour vrier que tout est correct.
B.5. Compilation de XFree86 4.3.0
La compilation de XFree86 est certainement lune des oprations les plus difciles raliser, car il
ny a pas de programme de conguration automatique des sources. La plupart des chiers sources
de la distribution sont fournis par le Consortium X, et ils sont prvus pour pouvoir tre modis
librement par les diffrentes implmentation. XFree86 est lune de ces implmentations, et utilise la
base de ces sources. XFree86 est en fait une implmentation des serveurs X pour le systme XWindow
fourni par le Consortium X. La conguration de XFree86 doit donc tre faite comme indique dans la
documentation de XFree86 et non pas comme indiqu dans la documentation originale du Consortium
X.
Toutes les options sont indiques dans les chiers du rpertoire /xc/config/cf/. Le chier
site.def est le chier de conguration central des sources de XWindow. Il lit les options des
chiers de conguration des autres systmes, en particulier le chier host.def. Cest pour cela
quil faut dnir les options de conguration dans le chier host.def et non pas dans le chier
site.def. Vous trouverez un exemple de chier host.def adapt Linux dans le chier
xf86site.def.
La compilation de XFree86 se droule donc comme suit :
dcomprimez les archives X430src-1.tgz X430src-5.tgz ;
dcomprimez ventuellement les archives X430src-6.tgz et X430src-7 si vous dsirez obtenir
la documentation en version imprimable ;
allez dans xc/config/cf et copiez le chier xf86site.def vers host.def ;
ditez host.def pour dnir les options de compilation de XFree86 ;
allez dans le rpertoire xc/ et tapez
make World
424
Annexe B. Compilation et mise jour des principaux composants du systme
Note : La compilation de XWindow lui-mme suppose quil y ait un lien de /usr/bin/cc vers
le compilateur C natif de votre systme, en loccurrence /usr/bin/gcc. Il en est de mme pour
le prprocesseur. Vous devrez donc crer un lien symbolique de /lib/cpp vers /usr/bin/cpp.
De mme, il faut sassurer quil y ait un lien symbolique de /usr/lib/libtermcap.so vers la
version courante de cette bibliothque (allez savoir pourquoi ce lien nexiste pas sur certaines
distributions...).
La compilation des documentation de XFree86 ncessite galement que vous disposiez des out-
ils de gnration de documentation SMGL. Ces outils comprennent OpenJade, un traducteur
SGML utilisant des feuilles de styles DSSSL, et les outils doctools de XFree86. OpenJade est
normalement fourni avec toute bonne distribution, son installation ne sera donc pas traite dans
ce document. Notez toutefois quil faut sassurer que des liens symboliques jade et nsgmls exis-
tent et rfrencent respectivement les programmes openjade et onsgmls pour que la compilation
des documentations puisse bien se passer.
Ces outils sont tous compris dans larchive doctools-1.3.tgz, que lon trouvera avec les
sources de XFree86. Linstallation de ces outils ncessite dditer le chier Makefile pour
corriger quelques paramtres spciques Linux. Ces paramtres sont les suivants :
la variable PERLCMD doit tre xe sur le chemin de linterprteur perl ;
les variables CC et CXX pourront tre dcommentes an dutiliser GCC, qui est compilateur
par dfaut sous Linux ;
enn, la variable JADE pourra tre dnie la chane de caractres vide si OpenJade est dj
install sur le systme.
La compilation et linstallation se font ensuite avec les commandes make et make install.
Les modications apporter au chier host.def sont les suivantes pour Linux :
xer loption DefaultGcc2i386Opt -O2 -fno-strength-reduce
-fno-strict-aliasing ;
xer la valeur de loption HasTk YES ;
xer la valeur de loption HasTcl YES ;
xer les chemins sur les bibliothques TCL/Tk de la distribution et leurs chiers den-tte. Les
bibliothques sont gnralement installes dans le rpertoire des bibliothques du systme, savoir
/usr/lib/, et les chiers den-tte sont gnralement situs dans le rpertoire /usr/include/ ;
de mme, donner le nom des bibliothques TCL et Tk avec lesquelles les programmes qui les
utilisent doivent tre lis. Ces noms sont peuvent par exemple tre tcl8. et tk8.4 pour
la version 8.4 de ces bibliothques. Vous devrez bien entendu corriger le nom en fonction de
la version dont vous disposez. La dernire version de Tcl/Tk peut tre rcupre sur Internet
(http://www.scriptics.com) ;
indiquer les pilotes graphiques compiler dans loption XF86CardDrivers. Vous pouvez com-
piler plusieurs pilotes, pour le cas par exemple o vous auriez plusieurs cartes graphiques instal-
les sur la mme machine. Il est recommand de toujours compiler les pilotes gnriques vga et
vesa, ainsi que le pilote utilisant la fonctionnalit virtual frame buffer du noyau (module
fbdev). Vous pouvez galement compiler le pilote AgpGartDrivers si votre carte est une carte
AGP, an dacclrer les performances OpenGL de votre carte. Enn, vous devrez ajouter le pilote
XF86OSCardDrivers pour ajouter les pilotes spciques au systmes dexploitation, comme le
pilote de support de linterface Video for Linux par exemple (recommand si vous disposez dune
carte dacquisition TV) ;
425
Annexe B. Compilation et mise jour des principaux composants du systme
dcommenter, si ncessaire, la ligne xant loption BuildFonts NO si vous ne voulez pas
compiler les polices de caractres (en gnral, on ne les compile quune seule fois, car ce nest plus
ncessaire lors des mises jour) ;
dcommenter, si ncessaire, la ligne xant loption BuildServersOnly YES si vous ne
dsirez compiler que les serveurs X (par exemple pour une mise jour) ;
dcommenter la ligne xant la valeur de loption HasSgmlFmt YES si vous avez install les
outils doctools de XFree86 et si vous dsirez compiler les documentations.
Vous pouvez laisser les autres options entre commentaires. La compilation de XFree86 se fera alors
simplement en excutant la commande suivante dans le rpertoire dinstallation des sources :
make World
Note : Notez quil nest pas ncessaire, en gnral, de compiler les polices de caractres. En
effet, celles-ci ne sont que trs rarement modies dune version lautre de X11, et les polices
de lancienne version peuvent parfaitement convenir. Il en est de mme pour la documentation,
qui nest pas toujours mise jour chaque version mineure.
Linstallation de XWindow se fait alors simplement avec les deux commandes suivantes :
make install
make install.man
B.6. Compilation de Lesstif 0.93.36
Lesstif est un clone libre de la bibliothque de composants graphiques Motif, qui est lune des biblio-
thques les plus utilises en programmation graphique sous X11, mais dont lutilisation est soumise
une licence commerciale. Lesstif est donc Motif ce que Linux est Unix en quelque sorte. tant
donn le grand nombre de programmes qui utilisent Motif, il est ncessaire de linstaller sur votre ma-
chine. La dernire version actuellement disponible est la 0.93.36. Vous pourrez en trouver les sources
sur le site de Lesstif (http://www.lesstif.org).
La compilation et linstallation de Lesstif seffectue classiquement, laide des programmes con-
gure et make. Vous aurez donc excuter les commandes suivantes dans le rpertoire dinstallation
des sources de Lesstif :
./configure --prefix=/usr/X11R6
make
make install
Ce jeu de commandes installera Lesstif dans le rpertoire /usr/X11R6/LessTif. Bien entendu,
vous tes libre dutiliser un autre emplacement, mais il vous faudra alors modier les chemins de
recherche des chiers den-tte et des bibliothques lorsque vous voudrez utiliser des programmes
qui en ont besoin.
426
Annexe B. Compilation et mise jour des principaux composants du systme
B.7. Compilation de MESA 5.0.1
MESA est une bibliothque compatible avec le standard OpenGL introduit par Silicon Graphics pour
uniformiser les fonctions 3D des systmes dexploitation. XFree86 est fourni avec une version 3.4
allge de MESA, qui ne fournit pas toutes les en-ttes et toutes les bibliothques utilisable par les
programmes OpenGL. Vous aurez donc peut-tre mettre jour MESA sur votre systme avec la
dernire version disponible.
Linstallation de MESA ne pose pas de problme particulier, si ce nest quil faut rcuprer
galement larchive des chiers de dmonstration car elle contient la bibliothque complmentaires
GLUT que bon nombre de programmes OpenGL utilisent. Larchive de MESA et larchive
de ses programmes dexemples peuvent tre rcupres toutes les deux sur le site Web de Mesa
(http://www.mesa3d.org). Ces archives portent respectivement les noms MesaLib-5.0.1.tar.bz2
et MesaDemos-5.0.1.tar.bz2.
Lorsque vous aurez rcupr ces archives, vous devrez les dcomprimer toutes les deux dans le mme
rpertoire. Vous disposerez alors dun sous-rpertoire Mesa-5.0, dans lequel se trouvent tous les
chiers sources.
La conguration et la compilation de MESA ne posent rellement aucun problme. Il suft simple-
ment de taper les commandes suivantes :
./configure --prefix=/usr/X11R6/
make
make check
make install
Notez quil nest pas ncessaire de spcier les options doptimisation congure. En effet, MESA
dtectera automatiquement votre matriel et choisira les options appropries. La bibliothque MESA
sait en effet dtecter les capacits de chaque type de processeur et utiliser le jeux dinstructions le plus
appropri an dobtenir les meilleures performances.
Note : Il est ncessaire de compiler les programmes de test pour que la bibliothque GLUT soit
installe.
Il est recommand de supprimer les chiers de lancienne version de la bibliothque MESA
fournie avec XFree86. Ces chiers sont situs dans le rpertoire /usr/X11R6/lib/ de XFree86,
et portent des noms du type libGL*.
Si vous avez install des bibliothques permettant de bncier de lacclration 3D matrielle de
votre carte graphique, vous devrez supprimer les bibliothques installes par MESA, et au besoin
rinstaller vos bibliothques prenant en charge votre carte graphique. Dans le cas contraire, les
programmes utilisant OpenGL seront considrablement ralentis, et vous ne pourrez certainement
plus les utiliser. Ce genre de situation se produit par exemple sur les machines disposant de
cartes graphiques base de puces NVidia, pour lesquelles vous devez utiliser les pilotes fournis
par NVidia (http://www.nvidia.com) an de bncier des acclrations 3D par le matriel.
B.8. Compilation de KDE 3.1.2
KDE utilise XWindow et la bibliothque Qt. Il faut donc disposer des bibliothques et des chiers
den-tte de XWindow, et compiler la bibliothque Qt au pralable pour compiler KDE. La version
de Qt utiliser pour compiler KDE 3.1.2 est la version 3.1.2. Les paragraphes qui suivent supposent
que vous disposez de cette version.
427
Annexe B. Compilation et mise jour des principaux composants du systme
Si la bibliothque Qt est fournie avec votre distribution, sont rpertoire dinstallation sera /usr/lib/.
Dans le cas contraire, elle sera place dans /usr/local/lib/. La compilation se fait sur place, ce
qui permet dviter davoir linstaller. Elle se droule de la manire suivante :
il faut se placer dans le rpertoire /usr/lib/ :
cd /usr/lib
les sources doivent ensuite tre extraites de larchive de la bibliothque Qt :
tar xvfz qt-x11-free-3.1.2.tar.gz
les sources sont extraites dans le rpertoire qt-x11-free-3.1.2/. Il faut renommer ce rper-
toire en qt/ (cest--dire, supprimer les numros de version) ou faire un lien symbolique qt
vers ce rpertoire (solution permettant de conserver les anciennes bibliothques, pour les anciens
programmes) ;
il faut ensuite ajouter les variables denvironnement dans le .profile ou .login (selon le shell
utilis, pour bash, il faut modier .profile) comme indiqu dans le chier INSTALL du rpertoire
qt. Ces variables denvironnement sont utilises par le processus de compilation. Vous devrez
bien entendu corriger les chemins dnis par dfaut pour rfrencer le rpertoire dinstallation des
sources de Qt ;
il faut recharger le chier .profile ou .login an de dnir ces variables ;
lancer la commande congure avec les options suivantes :
./configure -shared -thread -no-g++-exceptions -no-stl -system-zlib
-qt-gif -system-libpng -system-libjpeg -plugin-imgfmt-mng -xft
lancer la commande make pour construire la bibliothque :
make
lancer ldcong.
Outre la bibliothque Qt, KDE utilise galement quelques bibliothques utilitaires pour certaines
fonctionnalits annexes. Il sagit principalement de la bibliothque pcre (http://www.pcre.org), qui
permet de grer les expressions rationnelles, de la bibliothque Xine (http://xinehq.de/), qui permet
de jouer des chiers vido de manire indpendante de leur format, et dun certain nombre de bilblio-
thques du gestionnaire de bureau Gnome (http://www.gnome.org) :
la bibliothque libaudiole, qui permet de manipuler les chiers sons ;
la bibliothque libxml, qui permet danalyser les documents au format XML ;
et des bibliothques libart et ImLib, qui permettent de manipuler les diffrents formats dimage de
manire uniforme.
Ces bibliothques peuvent tre compiles de manire similaire, laide du classique triplet congure,
make et make install. Dautres bibliothques devront tre installes pour bncier de fonctionnalits
complmentaires, les bibliothques de prise en charge des chiers MP3 et Ogg/Vorbis par exemple.
428
Annexe B. Compilation et mise jour des principaux composants du systme
Cependant, linstallation de ces bibliothques reste facultative et nest pas ncessaire la compilation
complte de KDE.
Une fois les bibliothques utilitaires et la bibliothque Qt compiles, on peut sattaquer KDE lui-
mme. La compilation de KDE suppose que les variables denvironnement de la bibliothque Qt sont
toujours dnies, il ne faut donc pas les supprimer aprs avoir compil celle-ci.
KDE se congure classiquement, avec le programme de conguration congure. Pour chaque com-
posant de KDE, il faut procder comme suit :
extraire les chiers sources de larchive ;
appeler congure avec les bonnes options ;
lancer la compilation avec make ;
installer les chiers binaires avec make install .
En gnral, KDE est install dans le rpertoire /opt/kde/. Il faut donc spcier les bons prxes
lors de lappel congure. La ligne de commande utiliser est donc la suivante :
./configure --prefix=/opt/kde
Comme dhabitude, il faut ventuellement indiquer le type de machine avec loption --host et de-
mander lutilisation des bibliothques dynamiques avec loption --enable-shared.
Lordre des oprations lors de la compilation de KDE est important, parce que certaines parties de
KDE en utilisent dautres. En particulier, il faut imprativement compiler et installer les bibliothques
en premier. Il est donc recommand doprer dans lordre suivant :
arts ;
kdelib ;
kdebase ;
les autres composants de KDE, kdeaddons devant tre compil en dernier.
Note : Contrairement aux autres parties du systme, il faut compiler KDE dans le rpertoire des
sources. En effet, certaines bibliothques fournies avec les sources sont ncessaires pour la
compilation correcte de quelques modules non essentiels de KDE.
Dautre part, si KDE est dj prsent sur votre systme, il faut le supprimer avant de le recompiler
(ou au moins renommer son rpertoire si vous ntes pas sr de vous...). En effet, les chiers den-
tte et les bibliothques de lancienne version peuvent faire chouer la compilation de la nouvelle
version.
Si vous le supprimez compltement, il se rinstallera avec la conguration par dfaut. Les scripts
de conguration de votre distribution pourront alors trs bien ne plus fonctionner sur la congura-
tion de KDE. Dans ce cas, vous aurez certainement quelques problmes avec les droits xs par
dfaut sur certains programmes. En particulier, vous ne pourrez jouer des chiers son que sous
le compte root, car le serveur de son artsd de KDE et ses outils connexes ont besoin de priv-
ilges pour utiliser les chiers spciaux de priphrique de la carte son. La manire la plus propre
pour rgler ce problme est de crer un groupe dutilisateurs nomm audio et contenant tous les
utilisateurs ayant le droit dutiliser la carte son, et dattribuer ce groupe les chiers spciaux de
priphrique /dev/dsp, /dev/audio et /dev/mixer. Les droits daccs en lecture et criture sur
429
Annexe B. Compilation et mise jour des principaux composants du systme
ces chiers devront ensuite tre donns au propritaire (root) et au groupe dutilisateurs (audio).
Normalement, les autres utilisateurs ne doivent avoir aucun droit sur ces chiers.
Note : KDE 3.1.2 et Qt 3.1.2 sont capables dutiliser les fonctionnalits les plus avances des
serveurs XFree86. Ces fonctionnalits peuvent apporter un plus indniable, et il est recommand
que XFree86 soit correctement install avant de lancer leur compilation . En particulier, il est
recommand davoir compil et install la bibliothque FreeType 2, pour le support des polices
TrueType et lanti-aliasing des polices de caractres, ainsi que la bibliothque Open GL MESA.
Note : Enn, sachez que KDE 3.1.2 ncessite la version 1.4.1 ou plus de lenvironnement
dexcution java pour permettre lutilisation de java et de javascript dans le navigateur Konqueror.
Cet environnement peut tre tlcharg gratuitement sur le site de Sun (http://www.sun.com).
Les binaires fournis par Sun ne sont pas des logiciels libres, mais ce sont les seuls qui
respectent rellement la norme Java (ce qui est logique, puisquelle est impose par Sun).
Linstallation de cet environnement dexcution se fait extrmement simplement. Il est
recommand dinstaller les binaires dans le rpertoire /usr/lib/jrex.y.z et de crer un lien
symbolique /usr/lib/java vers ce rpertoire, an de permettre linstallation de plusieurs
versions de lenvironnement dexcution java tout en slectionnant la version x.y.z par dfaut.
Aprs installation, vous devrez ajouter le rpertoire /usr/lib/java/bin aux rpertoires de
votre variable denvironnement PATH pour permettre lutilisation de Java par les programmes tels
que Konqueror. Enn, le script de lancement de la machine virtuelle utilise les commandes cut
et head, et suppose quelles sont installes dans le rpertoire /usr/bin/, alors que la plupart
des distributions les placent directement dans le rpertoire /bin/. Vous aurez donc peut-tre
faire des liens symboliques cut et head sur ces deux commandes dans le rpertoire /usr/bin/.
Par ailleurs, si vous dsirez utiliser des applets Java sur des sites Web scuriss par SSL, vous
devrez galement installer la bibliothques Java JSSE. Cette bibliothque, actuellement en ver-
sion 1.0.2, est disponible gratuitement sur le site de Sun (http://java.sun.com/products/jsse) con-
sacr au langage Java. Il nest pas ncessaire de linstaller si vous utilisez lenvironnement Java
1.4 ou plus. Pour les versions antrieures de Java, son installation dans KDE se borne une
simple copie de chiers. Vous trouverez en effet trois chiers nomms jcert.jar, jnet.jar et
jsse.jar dans le sous-rpertoire lib/ de larchive de la bibliothque, que vous devrez simple-
ment recopier dans le sous-rpertoire share/apps/kjava/ de KDE.
Notez que le support de Java doit galement tre activ manuellement dans la conguration de
Konqueror pour que vous puissiez utiliser toutes les fonctionnalits de Java.
B.9. Compilation de Gnome 2.2.1
Contrairement KDE, Gnome utilise sa propre bibliothque graphique, qui est elle-mme base sur
XWindow. La compilation de Gnome requiert donc de compiler cette bibliothques ainsi que les
bibliothques utilitaires quil utilise avant de compiler les applications. Le nombre darchives com-
prises dans lenvironnement Gnome est donc relativement important, et lopration de compilation
peut donc tre relativement fastidieuse.
Les chiers darchives de Gnome 2.2.1 peuvent tre tlchargs directement partir du site du projet
Gnome (http://www.gnome.org) ou partir de lun de ses miroirs.
Les dpendances entre les diffrents constituants de Gnome sont trs fortes, et lordre de compilation
est extrmement important. Notez que lordre de compilation indiqu dans les pages daide du site de
430
Annexe B. Compilation et mise jour des principaux composants du systme
Gnome est partiellement faux, et suppose quelques prrequis quand aux outils complmentaires. En
particulier, OpenJade et Python 2.2 ou plus doivent tre installs, ainsi que la DTD XML DocBook
4.1.2 (dnition de grammaire de document XML pour les documentations informatiques).
Il est bien entendu possible dinstaller Gnome dans un autre rpertoire que le rpertoire par dfaut
en spciant le rpertoire destination laide de loption --prefix lors de la compilation de chaque
module. Toutefois, il est impratif dans ce cas dajouter le rpertoire des binaires de Gnome dans
la variable denvironnement PATH, ainsi que le rpertoire des bibliothques de Gnome dans la va-
riable denvironnement LD_LIBRARY_PATH pour que la compilation des composants de Gnome se
droule sans problme.
La premire tape dans la compilation de Gnome est dinstaller un outil de gestion des bibliothques
utilis par le processus de compilation tous les autres modules de Gnome : loutil pkg-cong. Cet
outil peut tre install simplement avec les commandes suivantes :
./configure --enable-shared --prefix=/usr
make
make install
Cet outil tant capital, la ligne de commande indique ci-dessous propose de linstaller dans le r-
pertoire systme laide de loption --prefix. Une fois linstallation effectue, il est recommande
de dnir la variable denvironnement PKG_CONFIG_PATH la valeur /usr/lib/pkgconfig.
Cette valeur est le chemin du rpertoire dans lequel seront placs les chiers stockant les options des
diverses bibliothques installes par Gnome.
Ltape suivante est ensuite dinstaller les bibliothques libxml et libxslt. Ces bibliothques peuvent
tre compiles et installes avec les commandes suivantes :
./configure --enable-shared --prefix=/usr
make
make install
Notez que ces bibliothques sont trs couremment utilises (y compris par certains programmes de
KDE) et peuvent donc tre installes dans un rpertoire classique du systme, do lutilisation de
loption --prefix dans la commande donne ci-dessus.
Une fois ces deux bibliothques installes, il faut indiquer Gnome o se trouve la DTD XML de
DocBook. Cela peut tre ralis laide des commandes suivantes :
xmlcatalog --noout --create /etc/xml/catalog
xmlcatalog --noout --add public "-//OASIS//DTD DocBook XML V4.1.2//EN" \
/usr/local/share/xml/dtd/docbook/4.1.2/docbookx.dtd /etc/xml/catalog
La premire commande permet de crer un chier de conguration vierge pour lenregistrement des
DTDs au niveau de la bibliothque libxml, et la deuxime permet dajouter la DTD DocBook dans
ce chier. Le chemin indiqu pour le chier docbookx.dtd donn ici lest titre dexemple et doit
bien entendu tre modi en fonction de lemplacement o vous avez install la DTD DocBook.
La bibliothque suivante est la bibliothque libintl, qui permet de grer les paramtres de langue de
Gnome. Cette bibliothque peut tre installe avec les commandes suivantes :
./configure --enable-shared --prefix=/opt/gnome \
--with-omfdirs=/opt/gnome/share/omf
make
make install
431
Annexe B. Compilation et mise jour des principaux composants du systme
Loption --with-omfdirs permet de xer lemplacement des chiers de conguration, qui ne sont
pas relatifs au rpertoire indiqu par loption --prefix (cela est peut-tre une anomalie).
Une fois la bibliothque libintl installe, il est possible de compiler les autres bibliothques et appli-
cations de Gnome laide des commandes congure, make et make install. Ces composants doivent
tre compils dans lordre suivant :
scrollkeeper ;
audiole ;
esound ;
gtk-doc ;
glib ;
linc ;
atk ;
gnome-common ;
pango ;
libIDL ;
ORBit2 ;
bonobo-activation ;
gtk+ ;
GConf ;
libart_lgpl ;
libzvt ;
libbonobo ;
gnome-mime-data ;
gnome-vfs ;
libglade ;
libgnome ;
libgnomecanvas ;
libbonoboui ;
libgnomeui ;
libwnck ;
libgnomeprint ;
libgnomeprintui ;
libgtop ;
librsvg ;
gail ;
eel ;
libgtkhtml ;
gtk-engines ;
432
Annexe B. Compilation et mise jour des principaux composants du systme
gnome-desktop ;
gnome-panel ;
gnome-session ;
vte ;
gnome-terminal ;
gnome-utils ;
gnome-applets ;
control-center ;
gnome-games ;
bug-buddy ;
eog ;
nautilus ;
gnome-system-monitor ;
yelp ;
gedit ;
librep ;
rep-gtk ;
sawsh ;
gnome-media ;
gdm ;
at-spi ;
libgail-gnome ;
gconf-editor ;
gnome2-user-docs.
Note : Certaines de ces bibliothques, comme les bibliothques glib et audiole par exemple,
peuvent tre utilises par dautres programmes que les programmes Gnome. Il peut donc tre
utile de les mettre disposition de tous en les installant dans un rpertoire systme tel que
/usr/lib/ ou /usr/local/lib/.
Ces bibliothques sont toutes disponibles sur le site de Gnome. Cependant, elles ne sont pas
toutes prsentes dans le rpertoire des sources de Gnome 2.2.1, dans ce cas ce sont des bib-
liothques Gnome 2.0 pour lesquelles aucune modication na t apporte. Vous les trouverez
donc dans le rpertoire de Gnome 2.0.3.
433
Annexe B. Compilation et mise jour des principaux composants du systme
B.10. Compilation de Samba 2.2.8a
La compilation de Samba 2.2.8a ne pose dsormais plus de problmes particulier. Cependant, le choix
des rpertoires par dfaut utiliss par Samba nest pas trs judicieux sur une machine Linux et pourra
tre ventuellement modi.
La conguration se fait classiquement avec congure :
CFLAGS="-O2 -pipe" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--with-smbmount --with-smbwrapper
Loption --with-smbmount permet de compiler galement les utilitaires smbmount, smbmnt et
smbumount, qui permettent de monter les volumes partags comme des systmes de chiers clas-
siques. De mme, loption --with-smbwrapper permet de crer une bibliothque dynamique que
les programmes peuvent utiliser pour accder directement aux partages SMB, quils trouveront dans
un rpertoire virtuel /smb/.
Un fois la conguration faite, il est recommand de modier les chemins dclars dans le chier
makefile. En effet, ces chemins ne sont pas forcment ceux spcis au programme de congura-
tion. Les variables suivantes devront donc ventuellement tre rednies :
# Rpertoire des fichiers de configuration de Samba :
CONFIGDIR = ${sysconfdir}
# Rpertoire priv pour les fichiers de mots de passe :
PRIVATEDIR=/etc/samba
La compilation se fait simplement avec la commande suivante :
make
et linstallation avec :
make install
Notez cependant que les outils smbmnt et smbumount ne sont pas setuid. Leurs droits doivent donc
tre modis avec les deux commandes suivantes :
chmod +s /usr/bin/smbmnt
chmod +s /usr/bin/smbumount
434
Annexe C. Formulaire pour la cration des
lignes de mode de XFree86
Les formules donnes dans cette annexe donnent les relations entre les diffrentes valeurs utilises
dans les lignes de mode de XFree86. Elles peuvent vous aider comprendre les relations entre les
principaux paramtres de ces lignes.
Ces formules utilisent des variables qui reprsentent les valeurs des lignes de mode et les caractris-
tiques techniques de votre cran. Le tableau donn ci-dessous liste les variables utilises :
Variable Signication
DC Dot Clock , frquence de base du balayage. Reprsente le nombre de pixels
balays par seconde et sert de base de temps pour tous les calculs.
BW Bandwidth , bande passante de fonctionnement du moniteur. Reprsente la
limite suprieure de la frquence de base du balayage que le moniteur peut accepter.
Cette valeur fait partie des caractristiques techniques du moniteur. Elle peut tre
extrapole partir de la rsolution maximale que le moniteur peut afcher.
GCMF Graphic Card Maximum Frequency , la plus grande valeur de frquence de
balayage que la carte graphique peut gnrer. Cette valeur fait partie des
caractristiques techniques de la carte graphique.
MHF Max Horizontal Frequency , frquence maximale du balayage horizontal. Cest
la plus forte valeur de la plage de frquences horizontales pour les moniteurs
multisynchrones. Cette donne fait partie des caractristiques techniques du
moniteur.
MVF Max Vertical Frequency , frquence maximale du balayage vertical. Cest la
plus forte valeur de la plage de frquences verticales pour les moniteurs
multisynchrones. Cette donne fait partie des caractristiques techniques du
moniteur.
RR Refresh Rate , taux de rafrachissement des images du mode graphique. Cest le
nombre dimages gnres par seconde pour ce mode graphique.
HR Horizontal Resolution , rsolution horizontale du mode graphique. Cest le
nombre de pixels visibles dans ce mode graphique.
HFL Horizontal Frame Length , longueur totale dune ligne dans ce mode. Cest le
nombre de pixels total du mode graphique, visibles ou non. Les pixels non visibles
sont les pixels de la zone de blanking horizontal.
HST Horizontal Sync Time , dure minimale des signaux de synchronisation du
balayage horizontal. Cette donne fait partie des caractristiques techniques du
moniteur.
HSL Horizontal Sync Length , longueur des signaux de synchronisation du balayage
horizontal, exprime en pixels. Cette donne peut tre dduite directement de la
dure des signaux et de la frquence de base du balayage.
HBT Horizontal Blanking Time , dure minimale du blanking horizontal dans ce
mode graphique. Cest la dure pendant laquelle le faisceau lectronique doit tre
teint. Cette donne fait partie des caractristiques techniques du moniteur.
HBL Horizontal Blanking Length , longueur totale du blanking en pixels. Cette
donne peut tre dduite directement de la dure du blanking et de la frquence de
base du balayage.
435
Annexe C. Formulaire pour la cration des lignes de mode de XFree86
Variable Signication
VR Vertical Resolution , rsolution verticale du mode graphique. Cest le nombre de
lignes visibles dans ce mode graphique.
VFH Vertical Frame Height , hauteur totale dune image dans ce mode. Cest le
nombre de lignes total du mode graphique, lignes non visibles comprises. Les
lignes non visibles sont les lignes de la zone de blanking vertical.
VST Vertical Sync Time , dure minimale des signaux de synchronisation du
balayage vertical. Cette donne fait partie des caractristiques techniques du
moniteur.
VSH Vertical Sync Height , nombre de lignes balayes pendant le signal de
synchronisation du balayage vertical. Cette donne peut tre dduite de la dure des
signaux de synchronisation du balayage vertical, de la longueur totale dune ligne
et de la frquence de base du balayage.
VBT Vertical Blanking Time , dure minimale du blanking vertical dans ce mode
graphique. Cest la dure pendant laquelle le faisceau lectronique doit tre teint
avant et aprs un retour de balayage vertical. Cette donne fait partie des
caractristiques techniques du moniteur.
VBH Vertical Blanking Height , nombre totale de lignes du blanking vertical. Cette
donne peut tre dduite de la dure du blanking vertical, de la longueur totale
dune ligne et de la frquence de base du balayage.
Certaines des variables mentionnes dans ce tableau peuvent tre directement dduites des autres.
Cest en particulier le cas de RR, HSL, HVL, VSH et VBH.
Le taux de rafrachissement dpend bien entendu de la frquence de base du balayage et du nombre
total de pixels balayer. Il peut donc tre calcul directement avec la formule suivante :
RR = DC (HFL VFH)
La longueur des signaux de synchronisation horizontale et la longueur du blanking dpendent de la
frquence de base du balayage et de leurs dures respectives. Elles peuvent donc tre calcules avec
les formules suivantes :
HSL = HST DC
HBL = HBT DC
Le mme raisonnement peut tre fait pour le nombre de lignes parcourues pendant le signal de syn-
chronisation du balayage vertical et le blanking. Cependant, il ne faut pas utiliser la frquence de
base directement quand on calcule sur les lignes, car cette frquence est exprime en pixels par se-
conde et les lignes contiennent HFL pixels. Il faut donc diviser cette frquence par HFL pour obtenir
la frquence en nombres de lignes par seconde. Les formules utiliser seront donc les suivantes :
VSH = VST (DC HFL)
VBH = VBT (DC HFL)
Par ailleurs, la longueur totale des lignes doit bien entendue tre suprieure la rsolution plus la
taille de la zone de blanking horizontal. Le mme raisonnement peut tre appliqu au nombres de
436
Annexe C. Formulaire pour la cration des lignes de mode de XFree86
lignes total, la rsolution verticale et au nombre de lignes utilises pour le blanking. On disposera
donc des relations suivantes :
HFL HR + HBL
VFH VR + VBH
Le choix des valeurs des lignes de mode est soumis un certain nombre de contraintes, qui expriment
les limitations techniques du moniteur et de la carte graphique. Ces contraintes sont exprimes ci-
dessous.
Il va de soi que les signaux de synchronisation de balayage doivent tre compris dans le blanking. Les
deux premires contraintes sont donc les suivantes :
HSL HBL
VSH VBH
Par ailleurs, la frquence de balayage de base doit bien entendu tre tolre la fois par le moniteur
et par la carte graphique. Elle doit donc vrier les deux ingalits suivantes :
DC BP
DC GCMF
Enn, il faut que les frquences de balayage horizontales et verticales utilises soient infrieures
aux frquences de balayage maximales que le moniteur peut grer. Cette rgle nest valide que pour
les moniteurs multisynchrones. Pour les moniteurs frquences xes, il faut que les frquences de
balayage horizontale et verticale soient strictement gales celles du moniteur.
La contrainte horizontale donne une troisime condition sur DC :
(DC HFL) MHF
Or :
(DC HFL) (DC (HR + HBL))
donc lingalit prcdente est forcment vrie si on sassure que :
DC (HR + HBL) MHF
soit :
DC MHF (HR + HBL)
DC MHF (HR + DC HBT)
do la condition suivante :
DC (MHF HR) (1 - MHF HBT)
(le dnominateur tant positif en pratique).
La contrainte verticale porte sur le taux de rafrachissement, qui doit tre infrieur la frquence
verticale maximale. Elle permet dobtenir une troisime condition sur DC :
437
Annexe C. Formulaire pour la cration des lignes de mode de XFree86
RR = DC / (HFL x VFH) MVF
soit :
DC MVF HFL VFH = MVF (HR + HBL) (VR + VBH) =
MVF (HR + DC HBT) (VR + DC VBT)
ce qui donne linquation suivante :
MVF HBT VBT DC
2
+ (MVF HR VBT + MVF VR HBT - 1) DC +
MVF HR VR 0
Cette inquation impose une limite infrieure en dessous de laquelle DC peut se trouver, ou une limite
suprieure au del de laquelle il peut se trouver. En pratique, la limite suprieure ne peut jamais
tre atteinte. Il faut donc que la frquence de base soit infrieure la premire racine de lquation
associe linquation donne ci-dessous. Cette quation est du second degr et sa rsolution ne pose
pas de problme particulier. Certains moniteurs ont un temps nul pour les signaux de synchronisation
verticaux. Comme le second membre de cette quation est ngatif en pratique, la limite respecter
pour la frquence de balayage de base est exprime dans ce cas par linquation suivante :
DC (MVF HR VR) (1 - MVF (HR VBT + VR HBT))
438
Appendix D. GNU Free Documentation
License
Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing
it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other written document "free" in the
sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without
modifying it, either commercially or noncommercially. Secondarily, this License preserves for the
author and publisher a way to get credit for their work, while not being considered responsible for
modications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must them-
selves be free in the same sense. It complements the GNU General Public License, which is a copyleft
license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software
needs free documentation: a free program should come with manuals providing the same freedoms
that the software does. But this License is not limited to software manuals; it can be used for any
textual work, regardless of subject matter or whether it is published as a printed book. We recommend
this License principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work that contains a notice placed by the copyright holder
saying it can be distributed under the terms of this License. The "Document", below, refers to any such
manual or work. Any member of the public is a licensee, and is addressed as "you".
A "Modied Version" of the Document means any work containing the Document or a portion of it,
either copied verbatim, or with modications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals
exclusively with the relationship of the publishers or authors of the Document to the Documents
overall subject (or to related matters) and contains nothing that could fall directly within that overall
subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section
may not explain any mathematics.) The relationship could be a matter of historical connection with
the subject or with related matters, or of legal, commercial, philosophical, ethical or political position
regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of
Invariant Sections, in the notice that says that the Document is released under this License.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-
Cover Texts, in the notice that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format
whose specication is available to the general public, whose contents can be viewed and edited di-
rectly and straightforwardly with generic text editors or (for images composed of pixels) generic paint
programs or (for drawings) some widely available drawing editor, and that is suitable for input to text
formatters or for automatic translation to a variety of formats suitable for input to text formatters.
439
Appendix D. GNU Free Documentation License
A copy made in an otherwise Transparent le format whose markup has been designed to thwart or
discourage subsequent modication by readers is not Transparent. A copy that is not "Transparent" is
called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo
input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-
conforming simple HTML designed for human modication. Opaque formats include PostScript,
PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML
or XML for which the DTD and/or processing tools are not generally available, and the machine-
generated HTML produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are
needed to hold, legibly, the material this License requires to appear in the title page. For works in
formats which do not have any title page as such, "Title Page" means the text near the most prominent
appearance of the works title, preceding the beginning of the body of the text.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially,
provided that this License, the copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no other conditions whatsoever to
those of this License. You may not use technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept compensation in exchange
for copies. If you distribute a large enough number of copies you must also follow the conditions in
section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display
copies.
3. COPYING IN QUANTITY
If you publish printed copies of the Document numbering more than 100, and the Documents license
notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all
these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover.
Both covers must also clearly and legibly identify you as the publisher of these copies. The front
cover must present the full title with all words of the title equally prominent and visible. You may add
other material on the covers in addition. Copying with changes limited to the covers, as long as they
preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in
other respects.
If the required texts for either cover are too voluminous to t legibly, you should put the rst ones
listed (as many as t reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either
include a machine-readable Transparent copy along with each Opaque copy, or state in or with each
Opaque copy a publicly-accessible computer-network location containing a complete Transparent
copy of the Document, free of added material, which the general network-using public has access to
download anonymously at no charge using public-standard network protocols. If you use the latter
option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in
quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until
at least one year after the last time you distribute an Opaque copy (directly or through your agents or
retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistribut-
ing any large number of copies, to give them a chance to provide you with an updated version of the
Document.
4. MODIFICATIONS
440
Appendix D. GNU Free Documentation License
You may copy and distribute a Modied Version of the Document under the conditions of sections
2 and 3 above, provided that you release the Modied Version under precisely this License, with the
Modied Version lling the role of the Document, thus licensing distribution and modication of
the Modied Version to whoever possesses a copy of it. In addition, you must do these things in the
Modied Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and
from those of previous versions (which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version if the original publisher of
that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of
the modications in the Modied Version, together with at least ve of the principal authors of
the Document (all of its principal authors, if it has less than ve).
C. State on the Title page the name of the publisher of the Modied Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modications adjacent to the other copyright no-
tices.
F. Include, immediately after the copyright notices, a license notice giving the public permission to
use the Modied Version under the terms of this License, in the form shown in the Addendum
below.
G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given
in the Documents license notice.
H. Include an unaltered copy of this License.
I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title,
year, new authors, and publisher of the Modied Version as given on the Title Page. If there
is no section entitled "History" in the Document, create one stating the title, year, authors, and
publisher of the Document as given on its Title Page, then add an item describing the Modied
Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for public access to a Transparent
copy of the Document, and likewise the network locations given in the Document for previous
versions it was based on. These may be placed in the "History" section. You may omit a network
location for a work that was published at least four years before the Document itself, or if the
original publisher of the version it refers to gives permission.
K. In any section entitled "Acknowledgements" or "Dedications", preserve the sections title, and
preserve in the section all the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles.
Section numbers or the equivalent are not considered part of the section titles.
M. Delete any section entitled "Endorsements". Such a section may not be included in the Modied
Version.
N. Do not retitle any existing section as "Endorsements" or to conict in title with any Invariant
Section.
If the Modied Version includes new front-matter sections or appendices that qualify as Secondary
Sections and contain no material copied from the Document, you may at your option designate some
441
Appendix D. GNU Free Documentation License
or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the
Modied Versions license notice. These titles must be distinct from any other section titles.
You may add a section entitled "Endorsements", provided it contains nothing but endorsements of
your Modied Version by various parties--for example, statements of peer review or that the text has
been approved by an organization as the authoritative denition of a standard.
You may add a passage of up to ve words as a Front-Cover Text, and a passage of up to 25 words as
a Back-Cover Text, to the end of the list of Cover Texts in the Modied Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by)
any one entity. If the Document already includes a cover text for the same cover, previously added by
you or by arrangement made by the same entity you are acting on behalf of, you may not add another;
but you may replace the old one, on explicit permission from the previous publisher that added the
old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their
names for publicity for or to assert or imply endorsement of any Modied Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms
dened in section 4 above for modied versions, provided that you include in the combination all
of the Invariant Sections of all of the original documents, unmodied, and list them all as Invariant
Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant
Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same
name but different contents, make the title of each such section unique by adding at the end of it, in
parentheses, the name of the original author or publisher of that section if known, or else a unique
number. Make the same adjustment to the section titles in the list of Invariant Sections in the license
notice of the combined work.
In the combination, you must combine any sections entitled "History" in the various original docu-
ments, forming one section entitled "History"; likewise combine any sections entitled "Acknowledge-
ments", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this
License, and replace the individual copies of this License in the various documents with a single
copy that is included in the collection, provided that you follow the rules of this License for verbatim
copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this
License, provided you insert a copy of this License into the extracted document, and follow this
License in all other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or
works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modied
Version of the Document, provided no compilation copyright is claimed for the compilation. Such a
compilation is called an "aggregate", and this License does not apply to the other self-contained works
thus compiled with the Document, on account of their being thus compiled, if they are not themselves
derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the
Document is less than one quarter of the entire aggregate, the Documents Cover Texts may be placed
on covers that surround only the Document within the aggregate. Otherwise they must appear on
covers around the whole aggregate.
442
Appendix D. GNU Free Documentation License
8. TRANSLATION
Translation is considered a kind of modication, so you may distribute translations of the Document
under the terms of section 4. Replacing Invariant Sections with translations requires special permis-
sion from their copyright holders, but you may include translations of some or all Invariant Sections
in addition to the original versions of these Invariant Sections. You may include a translation of this
License provided that you also include the original English version of this License. In case of a
disagreement between the translation and the original English version of this License, the original
English version will prevail.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for
under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void,
and will automatically terminate your rights under this License. However, parties who have received
copies, or rights, from you under this License will not have their licenses terminated so long as such
parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation
License from time to time. Such new versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document species that
a particular numbered version of this License "or any later version" applies to it, you have the option
of following the terms and conditions either of that specied version or of any later version that has
been published (not as a draft) by the Free Software Foundation. If the Document does not specify
a version number of this License, you may choose any version ever published (not as a draft) by the
Free Software Foundation.
443
Appendix D. GNU Free Documentation License
444
Annexe E. Licence de documentation libre
GNU
Disclaimer
This is an unofcial translation of the GNU Free Documentation License into French. It was not pu-
blished by the Free Software Foundation, and does not legally state the distribution terms for software
that uses the GNU FDL--only the original English text of the GNU FDL does that. However, we hope
that this translation will help French speakers understand the GNU FDL better.
Ceci est une traduction franaise non ofcielle de la Licence de documentation libre GNU. Elle na pas
t publie par la Free Software Foundation, et ne xe pas lgalement les conditions de redistribution
des documents qui lutilisent -- seul le texte original en anglais le fait. Nous esprons toutefois que
cette traduction aidera les francophones mieux comprendre la FDL GNU.
Traduction franaise non ofcielle de la GFDL Version 1.1 (Mars 2000)
Copyright original :
Copyright (C) 2000 Free Sofware Foundation, inc
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Pour la traduction :
Version 1.0 FR (Jean Luc Fortin, juillet 2000)
Version 1.1 FR (Christian Casteyde, mars 2001)
Version 1.1.1 FR (Csar Alexanian, mars 2001)
Version 1.1.2 FR (Christian Casteyde et Csar Alexanian, mars 2001)
Version 1.1.3 FR (Christian Casteyde, avril 2001)
Chacun est libre de copier et de distribuer des copies conformes de cette Licence, mais nul nest
autoris la modier.
0 - PRAMBULE
Lobjet de cette Licence est de rendre tout manuel, livre ou autre document crit libre au sens de
la libert dutilisation, savoir : assurer chacun la libert effective de le copier ou de le redistribuer,
avec ou sans modications, commercialement ou non. En outre, cette Licence garantit lauteur et
lditeur la reconnaissance de leur travail, sans quils soient pour autant considrs comme respon-
sables des modications ralises par des tiers.
Cette Licence est une sorte de copyleft , ce qui signie que les travaux drivs du document
dorigine sont eux-mmes libres selon les mmes termes. Elle complte la Licence Publique
Gnrale GNU, qui est galement une Licence copyleft, conue pour les logiciels libres.
Nous avons conu cette Licence pour la documentation des logiciels libres, car les logiciels libres
ont besoin dune documentation elle-mme libre : un logiciel libre doit tre accompagn dun manuel
garantissant les mmes liberts que celles accordes par le logiciel lui-mme. Mais cette Licence nest
pas limite aux seuls manuels des logiciels ; elle peut tre utilise pour tous les documents crits, sans
distinction particulire relative au sujet trait ou au mode de publication. Nous recommandons lusage
de cette Licence principalement pour les travaux destins des ns denseignement ou devant servir
de documents de rfrence.
1 - APPLICABILIT ET DFINITIONS
445
Annexe E. Licence de documentation libre GNU
Cette Licence couvre tout manuel ou tout autre travail crit contenant une notice de copyright autori-
sant la redistribution selon les termes de cette Licence. Le mot Document se rfre ci-aprs un
tel manuel ou travail. Toute personne en est par dnition concessionnaire, et est rfrence ci-aprs
par le terme Vous .
Une Version modie du Document dsigne tout travail en contenant la totalit ou seulement une
portion de celui-ci, copie mot pour mot, modie et/ou traduite dans une autre langue.
Une Section secondaire dsigne une annexe au Document, ou toute information indiquant les
rapports entre lauteur ou lditeur et le sujet (ou tout autre sujet connexe) du document, sans tou-
tefois tre en rapport direct avec le sujet lui-mme (par exemple, si le Document est un manuel de
mathmatiques, une Section secondaire ne traitera daucune notion mathmatique). Cette section peut
contenir des informations relatives lhistorique du Document, des sources documentaires, des dis-
positions lgales, commerciales, philosophiques, ou des positions thiques ou politiques susceptibles
de concerner le sujet trait.
Les Sections inaltrables sont des sections secondaires considres comme ne pouvant tre modi-
es et cites comme telles dans la notice lgale qui place le Document sous cette Licence.
Les Textes de couverture sont les textes courts situs sur les pages de couverture avant et arrire
du Document, et cits comme tels dans la mention lgale de ce Document.
Le terme Copie transparente dsigne une version numrique du Document reprsente dans un
format dont les spcications sont publiquement disponibles et dont le contenu peut tre visualis et
dit directement et immdiatement par un diteur de texte quelconque, ou (pour les images compo-
ses de pixels) par un programme de traitement dimages quelconque, ou (pour les dessins) par un
diteur de dessins courant. Ce format doit tre pouvoir tre accept directement ou tre convertible
facilement dans des formats utilisables directement par des logiciels de formatage de texte. Une copie
publie dans un quelconque format numrique ouvert mais dont la structure a t conue dans le but
exprs de prvenir les modications ultrieures du Document ou dans le but den dcourager les lec-
teurs nest pas considre comme une Copie Transparente. Une copie qui nest pas Transparente
est considre, par opposition, comme Opaque .
Le format de chier texte cod en ASCII gnrique et nutilisant pas de balises, les formats de -
chiers Texinfo ou LaTeX, les formats de chiers SGML ou XML utilisant une DTD publiquement
accessible, ainsi que les formats de chiers HTML simple et standard, crits de telle sorte quils
sont modiables sans outil spcique, sont des exemples de formats acceptables pour la ralisation
de Copies Transparentes. Les formats suivants sont opaques : PostScript, PDF, formats de chiers
propritaires qui ne peuvent tre visualiss ou dits que par des traitements de textes propritaires,
SGML et XML utilisant des DTD et/ou des outils de formatage qui ne sont pas disponibles publique-
ment, et du code HTML gnr par une machine laide dun traitement de texte quelconque et dans
le seul but de la gnration dun format de sortie.
La Page de titre dsigne, pour les ouvrages imprims, la page de titre elle-mme, ainsi que les
pages supplmentaires ncessaires pour fournir clairement les informations dont cette Licence impose
la prsence sur la page de titre. Pour les travaux nayant pas de Page de titre comme dcrit ci-dessus,
la Page de titre dsigne le texte qui sapparente le plus au titre du document et situ avant le texte
principal.
2 - COPIES CONFORMES
Vous pouvez copier et distribuer le Document sur tout type de support, commercialement ou non,
condition que cette Licence, la notice de copyright et la notice de la Licence indiquant que cette
Licence sapplique ce Document soient reproduits dans toutes les copies, et que vous ny ajoutiez
aucune condition restrictive supplmentaire. Vous ne pouvez pas utiliser un quelconque moyen tech-
nique visant empcher ou contrler la lecture ou la reproduction ultrieure des copies que vous
446
Annexe E. Licence de documentation libre GNU
avez cres ou distribues. Toutefois, vous pouvez solliciter une rtribution en change des copies. Si
vous distribuez une grande quantit de copies, rfrez-vous aux dispositions de la section 3.
Vous pouvez galement prter des copies, sous les mmes conditions que celles prcites, et vous
pouvez afcher publiquement des copies de ce Document.
3 - COPIES EN NOMBRE
Si vous publiez des copies imprimes de ce Document plus de 100 exemplaires, et que la Licence
du Document indique la prsence de Textes de couverture, vous devez fournir une couverture pour
chaque copie, qui prsente les Textes de couverture des premire et dernire pages de couverture du
Document. Les premire et dernire pages de couverture doivent galement vous identier clairement
et sans ambigut comme tant lditeur de ces copies. La premire page de couverture doit comporter
le titre du Document en mots dimportance et de visibilit gale. Vous pouvez ajouter des informations
complmentaires sur les pages de couverture. Les copies du Document dont seule la couverture a t
modie peuvent tre considres comme des copies conformes, condition que le titre du Document
soit prserv et que les conditions indiques prcdemment soient respectes.
Si les textes devant se trouver sur la couverture sont trop importants pour y tenir de manire claire,
vous pouvez ne placer que les premiers sur la premire page et placer les suivants sur les pages
conscutives.
Si vous publiez plus de 100 Copies opaques du Document, vous devez soit fournir une Copie trans-
parente pour chaque Copie opaque, soit prciser ou fournir avec chaque Copie opaque une adresse
rseau publiquement accessible dune Copie transparente et complte du Document, sans aucun ajout
ou modication, et laquelle tout le monde peut accder en tlchargement anonyme et sans frais,
selon des protocoles rseau communs et standards. Si vous choisissez cette dernire option, vous de-
vez prendre les dispositions ncessaires, dans la limite du raisonnable, an de garantir laccs non
restrictif la Copie transparente durant une anne pleine aprs la diffusion publique de la dernire
Copie opaque (directement ou via vos revendeurs).
Nous recommandons, mais ce nest pas obligatoire, que vous contactiez lauteur du Document suf-
samment tt avant toute publication dun grand nombre de copies, an de lui permettre de vous
donner une version jour du Document.
4 - MODIFICATIONS
Vous pouvez copier et distribuer une Version modie du Document en respectant les conditions des
sections 2 et 3 prcdentes, condition de placer cette Version modie sous la prsente Licence,
dans laquelle le terme Document doit tre remplac par les termes Version modie , donnant
ainsi lautorisation de redistribuer et de modier cette Version modie quiconque en possde une
copie. De plus, vous devez effectuer les actions suivantes dans la Version modie :
A. Utiliser sur la Page de titre (et sur la page de couverture ventuellement prsente) un titre distinct
de celui du Document dorigine et de toutes ses versions antrieures (qui, si elles existent, doivent
tre mentionnes dans la section Historique du Document). Vous pouvez utiliser le mme titre
si lditeur dorigine vous en a donn expressment la permission.
B. Mentionner sur la Page de titre en tant quauteurs une ou plusieurs des personnes ou entits
responsables des modications de la Version modie, avec au moins les cinq principaux auteurs
du Document (ou tous les auteurs si il y en a moins de cinq).
C. Prciser sur la Page de titre le nom de lditeur de la Version modie, en tant quditeur du
Document.
D. Prserver intgralement toutes les notices de copyright du Document.
E. Ajouter une notice de copyright adjacente aux autres notices pour vos propres modications.
447
Annexe E. Licence de documentation libre GNU
F. Inclure immdiatement aprs les notices de copyright une notice donnant quiconque
lautorisation dutiliser la Version modie selon les termes de cette Licence, sous la forme
prsente dans lannexe indiqu ci-dessous.
G. Prserver dans cette notice la liste complte des Sections inaltrables et les Textes de couverture
donns avec la notice de la Licence du Document.
H. Inclure une copie non modie de cette Licence.
I. Prserver la section nomme Historique et son titre, et y ajouter une nouvelle entre dcrivant
le titre, lanne, les nouveaux auteurs et lditeur de la Version modie, tels que dcrits sur la
Page de titre, ainsi quun descriptif des modications apportes depuis la prcdente version.
J. Conserver ladresse rseau ventuellement indique dans le Document permettant quiconque
daccder une Copie transparente du Document, ainsi que les adresses rseau indiques dans le
Document pour les versions prcdentes sur lesquelles le Document se base. Ces liens peuvent
tre placs dans la section Historique . Vous pouvez ne pas conserver les liens pour un travail
datant de plus de quatre ans avant la version courante, ou si lditeur dorigine vous en accorde
la permission.
K. Si une section Ddicaces ou une section Remerciements sont prsentes, les informa-
tions et les apprciations concernant les contributeurs et les personnes auxquelles sadressent ces
remerciements doivent tre conserves, ainsi que le titre de ces sections.
L. Conserver sans modication les Sections inaltrables du Document, ni dans leurs textes, ni dans
leurs titres. Les numros de sections ne sont pas considrs comme faisant partie du texte des
sections.
M. Effacer toute section intitule Approbations . Une telle section ne peut pas tre incluse dans
une Version modie.
N. Ne pas renommer une section existante sous le titre Approbations ou sous un autre titre entrant
en conit avec le titre dune Section inaltrable.
Si la Version modie contient de nouvelles sections prliminaires ou de nouvelles annexes consid-
res comme des Sections secondaires, et que celles-ci ne contiennent aucun lment copi depuis le
Document, vous pouvez votre convenance en dsigner une ou plusieurs comme tant des Sections
inaltrables. Pour ce faire, ajoutez leurs titres dans la liste des Sections inaltrables au sein de la notice
de Licence de la Version modie. Ces titres doivent tres distincts des titres des autres sections.
Vous pouvez ajouter une section nomme Approbations , condition que ces approbations ne
concernent que les modications ayant donn naissance la Version modie (par exemple, comptes-
rendus de revue de document, ou acceptation du texte par une organisation le reconnaissant comme
tant la dnition dun standard).
Vous pouvez ajouter un passage comprenant jusqu cinq mots en premire page de couverture, et
jusqu vingt-cinq mots en dernire page de couverture, la liste des Textes de couverture de la
Version modie. Il nest autoris dajouter quun seul passage en premire et en dernire page de
couverture par personne ou groupe de personnes ou organisation ayant contribu la modication du
Document. Si le Document comporte dj un passage sur la mme couverture, ajout en votre nom
ou au nom de lorganisation au nom de laquelle vous agissez, vous ne pouvez pas ajouter de passage
supplmentaire ; mais vous pouvez remplacer un ancien passage si vous avez expressment obtenu
lautorisation de lditeur de celui-ci.
Cette Licence ne vous donne pas le droit dutiliser le nom des auteurs et des diteurs de ce Document
des ns publicitaires ou pour prtendre lapprobation dune Version modie.
5 - FUSION DE DOCUMENTS
448
Annexe E. Licence de documentation libre GNU
Vous pouvez fusionner le Document avec dautres documents soumis cette Licence, suivant les
spcications de la section 4 pour les Versions modies, condition dinclure dans le document
rsultant toutes les Sections inaltrables des documents originaux sans modication, et de toutes les
lister dans la liste des Sections inaltrables de la notice de Licence du document rsultant de la fusion.
Le document rsultant de la fusion na besoin que dune seule copie de cette Licence, et les Sections
inaltrables existant en multiples exemplaires peuvent tre remplaces par une copie unique. Sil
existe plusieurs Sections inaltrables portant le mme nom mais de contenu diffrent, rendez unique
le titre de chaque section en ajoutant, la n de celui-ci, entre parenthses, le nom de lauteur ou de
lditeur dorigine, ou, dfaut, un numro unique. Les mmes modications doivent tre ralises
dans la liste des Sections inaltrables de la notice de Licence du document nal.
Dans le document rsultant de la fusion, vous devez rassembler en une seule toutes les
sections Historique des documents dorigine. De mme, vous devez rassembler les sections
Remerciements et Ddicaces . Vous devez supprimer toutes les sections Approbations .
6 - REGROUPEMENTS DE DOCUMENTS
Vous pouvez crer un regroupement de documents comprenant le Document et dautres documents
soumis cette Licence, et remplacer les copies individuelles de cette Licence des diffrents documents
par une unique copie incluse dans le regroupement de documents, condition de respecter pour cha-
cun de ces documents lensemble des rgles de cette Licence concernant les copies conformes.
Vous pouvez extraire un document dun tel regroupement, et le distribuer individuellement sous cou-
vert de cette Licence, condition dy inclure une copie de cette Licence et de lensemble des rgles
concernant les copies conformes.
7 - AGRGATION AVEC DES TRAVAUX INDPENDANTS
La compilation du Document ou ses drivs avec dautres documents ou travaux spars et indpen-
dants sur un support de stockage ou sur un mdia de distribution quelconque ne reprsente pas une
Version modie du Document tant quaucun copyright nest dpos pour cette compilation. Une telle
compilation est appele agrgat , et cette Licence ne sapplique pas aux autres travaux indpen-
dants compils avec le Document, sils ne sont pas eux-mmes des travaux drivs du Document.
Si les exigences de la section 3 concernant les Textes de couverture sont applicables ces copies du
Document, et si le Document reprsente un volume infrieur un quart du volume total de lagrgat,
les Textes de couverture du Document peuvent tre placs sur des pages de couverture qui nencadrent
que le Document au sein de lagrgat. Dans le cas contraire, ils doivent apparatre sur les pages de
couverture de lagrgat complet.
8 - TRADUCTION
La traduction est considre comme une forme de modication, vous pouvez donc distribuer les tra-
ductions du Document selon les termes de la section 4. Vous devez obtenir lautorisation spciale des
auteurs des Sections inaltrables pour les remplacer par des traductions, mais vous pouvez inclure
les traductions des Sections inaltrables en plus des textes originaux. Vous pouvez inclure une tra-
duction de cette Licence condition dinclure galement la version originale en anglais. En cas de
contradiction entre la traduction et la version originale en anglais, cest cette dernire qui prvaut.
9 - RVOCATION
Vous ne pouvez pas copier, modier, sous-licencier ou distribuer le Document autrement que selon
les termes de cette Licence. Toute autre acte de copie, modication, sous-licence ou distribution du
Document est sans objet et vous prive automatiquement des droits que cette Licence vous accorde.
En revanche, les personnes qui ont reu de votre part des copies ou les droits sur le document sous
couvert de cette Licence ne voient pas leurs droits caducs tant quelles en respectent les principes.
10 - RVISIONS FUTURES DE CETTE LICENCE
449
Annexe E. Licence de documentation libre GNU
La Free Software Foundation peut publier de temps en temps de nouvelles versions rvises de
cette Licence. Ces nouvelles versions seront semblables la prsente version dans lesprit, mais
pourront diffrer sur des points de dtail en fonction de nouvelles questions ou problmes. Voyez
http://www.gnu.org/copyleft/ pour plus de dtails.
Chaque version de cette Licence est dote dun numro de version distinct. Si un Document spcie un
numro de version particulier de cette Licence, et porte la mention ou toute autre version ultrieure ,
vous pouvez choisir de suivre les termes de la version spcie ou ceux de nimporte quelle version
ultrieure publie par la Free Software Foundation. Si aucun numro de version nest spci, vous
pouvez choisir nimporte quelle version ofcielle publie par la Free Sofware Foundation.
450

You might also like