You are on page 1of 527

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 1



Guide d'installation et de configuration de
Linux
Christian Casteyde
Permission vous est donne de copier, distribuer et modifier 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 l'annexe intitule "Licence de Documentation Libre GNU".
Ce docvument a t extrait partir de linternet et sera decoup en plusieurs parties selon les chapitres,
les annexes et autres
Table des matires
Remarques de l'auteur
1. Introduction
1.1. Matriel, logiciel et systme d'exploitation
1.2. Qu'est-ce que Linux ?
1.3. Pourquoi Linux ?
1.4. Plan du document
2. GNU, Linux et les logiciels libres
2.1. Les logiciels libres et la Free Software Foundation
2.2. Droits d'auteurs et la licence GPL
2.3. Le projet GNU et Linux
2.4. Avantages et inconvnients des logiciels libres
2.5. La motivation des auteurs et le financement des logiciels libres
3. Installation du systme
3.1. Choix de la distribution
3.2. Partitionnement et systmes de fichiers
3.2.1. Notion de partition
3.2.2. Notion de systme de fichiers
3.2.3. Choix du plan de partitionnement
3.3. Prrequis
3.3.1. Rcupration des informations sur le matriel
3.3.2. Sauvegarde des donnes
3.4. Procdure d'installation gnrique
3.4.1. Premier dmarrage
3.4.2. Trouver de la place pour installer le systme
3.4.3. Partitionnement du disque
3.4.4. Cration des systmes de fichiers
3.4.5. Cration de la partition de swap
3.4.6. Installation des composants de base
3.4.7. Configuration du gestionnaire d'amorage
3.5. Installation de la Mandriva 2007
3.6. Installation de la Debian 4.0r1
3.7. Installation de la Slackware 12.0
4. Prsentation gnrale du systme
4.1. Architecture du systme
4.1.1. Principe de modularit
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 2

4.1.2. Les diffrentes couches logicielles sous Linux
4.1.3. Rsum de l'architecture de Linux
4.2. Scurit et utilisateurs
4.2.1. Gnralits
4.2.2. Notion d'utilisateur et d'administrateur
4.2.3. La scurit au niveau du systme de fichiers
4.3. Fonctionnalits des systmes de fichiers
4.3.1. Le systme de fichiers virtuel
4.3.2. Liens symboliques et liens physiques
4.3.3. Autres fonctionnalits
4.4. Structure du systme de fichiers
5. Commandes Unix de base
5.1. Login et dconnexion
5.2. Arrt et redmarrage du systme
5.3. Pages de manuel
5.4. Oprations de base sur les rpertoires
5.5. Notions sur les chemins Unix
5.6. Oprations de base sur les fichiers
5.7. Autres commandes utiles
5.7.1. Gestion des liens
5.7.2. Recherche de fichiers
5.7.3. Recherche d'un texte dans un fichier
5.7.4. Remplacement de texte dans les fichiers
5.7.5. Compression et dcompression des fichiers
5.7.6. Archivage de fichiers
5.7.7. Passage en mode superviseur
5.7.8. Changement des droits des fichiers, du propritaire et du groupe
5.8. vi, l'diteur de fichiers de base
5.9. Utilisation du shell bash
5.9.1. Contrle des processus
5.9.2. Redirections
5.9.3. Les tubes
5.9.4. Manipulation des variables d'environnement
5.9.5. Caractre d'chappement et chanes de caractres
5.9.6. Les substitutions
5.9.7. Les expressions rationnelles
5.9.8. Structures de contrle
5.9.9. Les alias
5.9.10. Les scripts shell
6. Administration du systme de base
6.1. Sauvegarde de la configuration d'installation
6.2. Mise l'heure du systme
6.3. Gestion des utilisateurs et de la scurit
6.3.1. Mcanismes d'authentification des utilisateurs
6.3.2. Cration et suppression des utilisateurs
6.3.3. Description de la bibliothque PAM
6.4. Gestion des paquetages
6.4.1. Le gestionnaire de paquetages rpm
6.4.2. Le gestionnaire de paquetages apt
6.4.3. Le gestionnaire de paquetages pkgtool
6.5. Notion de niveau d'excution et amorage du systme
6.6. Maintenance des systmes de fichiers
6.6.1. Cration des systmes de fichiers
6.6.2. Montage des systmes de fichiers
6.6.3. Dmontage des systmes de fichiers
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 3

6.6.4. Vrification des systmes de fichiers
6.6.5. Configuration du montage des systmes de fichiers
6.6.6. Montage des systmes de fichiers la demande
6.7. Gestion des volumes
6.7.1. Gestion des fichiers images
6.7.2. Agrgation de volumes
6.7.3. Chiffrement des systmes de fichiers
6.8. Configuration des terminaux virtuels
6.9. Configuration de la console
6.9.1. Pages de codes et Unicode
6.9.2. Principe de fonctionnement du clavier
6.9.3. Principe de fonctionnement de l'cran de la console
6.9.4. Configuration du clavier
6.9.5. Choix de la police de caractres
6.9.6. Configuration des paramtres du terminal
6.9.7. Description des terminaux
6.9.8. Paramtrage des applications
6.9.9. Configuration de la souris
6.10. Configuration de l'imprimante
6.10.1. Concepts de base de l'impression sous Unix
6.10.2. Le systme d'impression LPRng
6.10.3. Le systme d'impression CUPS
6.11. Configuration du lancement automatique des tches
6.12. Gestion de l'nergie
6.12.1. Gnralits sur la gestion de l'nergie
6.12.2. Configuration de la gestion de l'nergie
6.12.3. Le dmon ACPI
7. Notions de compilation et configuration du noyau
7.1. Notions de base
7.1.1. Dfinition des termes
7.1.2. Processus de gnration
7.2. Compilation de GCC
7.2.1. Prrequis
7.2.2. Installation des sources
7.2.3. Configuration
7.2.4. Compilation
7.2.5. Installation de GCC
7.3. Compilation du noyau Linux
7.3.1. Installation des sources de Linux
7.3.2. Choix des options de configuration du noyau
7.3.3. Compilation et installation du noyau
7.3.4. Compilation et installation des modules
8. Configuration du matriel et des priphriques
8.1. Gnralits sur le support matriel sous Linux
8.1.1. Modules du noyau
8.1.2. Les fichiers spciaux de priphriques
8.2. Configuration des priphriques de masse
8.2.1. Configuration des priphriques SCSI
8.2.2. Configuration des disques durs IDE
8.2.3. Installation d'un graveur de CD/DVD
8.3. Configuration des cartes filles
8.3.1. Gnralits sur les cartes ISA, Plug And Play et PCI
8.3.2. Configuration des cartes son
8.3.3. Installation d'une carte graphique 3D
8.3.4. Installation d'une carte d'acquisition vido
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 4

8.3.5. Configuration des cartes rseau
8.3.6. Configuration des adaptateurs Wifi
8.4. Configuration des ports de communication
8.4.1. Prise en charge des priphriques ISA standards
8.4.2. Installation des priphriques USB
8.4.3. Installation des priphriques IEEE1394
9. Configuration du rseau
9.1. Notions de rseau TCP/IP
9.1.1. Gnralits sur les rseaux
9.1.2. Le protocole IP
9.1.3. Le protocole TCP
9.1.4. Les protocoles de haut niveau
9.2. Configuration du rseau sous Linux
9.2.1. Configuration statique des interfaces rseau
9.2.2. Dfinition des rgles de routage
9.2.3. Dfinition du nom de la machine
9.2.4. Rsolution des noms de domaine
9.2.5. Utilisation des protocoles DHCP et BOOTP
9.2.6. Dfinition des protocoles de haut niveau
9.2.7. Les super-dmons inetd et xinetd
9.3. Configuration de la connexion Internet
9.3.1. Le protocole PPP
9.3.2. Cration d'une connexion Internet
9.3.3. Connexion l'ADSL
9.3.4. Les autres outils de connexion
9.3.5. Configuration d'un cache de DNS
9.3.6. Installation d'un proxy HTTP
9.4. Pare-feu et partages de connexion Internet
9.4.1. Mcanismes de filtrage du noyau
9.4.2. Translations d'adresses et masquerading
9.4.3. Trajet des paquets dans le code de Netfilter
9.4.4. Configuration du noyau et installation des outils
9.4.5. Utilisation d'iptables
9.4.6. Exemple de rgles
9.4.7. Configuration des clients
9.5. Configuration de la scurit du rseau
9.5.1. Limitation des services et des accs
9.5.2. Chiffrement des communications
9.6. Configuration des fonctions serveur
9.6.1. Paramtrage des connexions extrieures
9.6.2. Configuration des liaisons PPP
9.6.3. Liaison de deux ordinateurs par un cble srie
9.6.4. Configuration d'un serveur DHCP
9.7. Systmes de fichiers en rseau
9.7.1. Installation d'un serveur de fichiers NFS
9.7.2. Configuration d'un client NFS
9.7.3. Installation d'un serveur de fichiers SMB
9.7.4. Configuration d'un client SMB
10. Installation de XWindow
10.1. Gnralits sur XWindow
10.2. Installation de X.org
10.3. Configuration de X.org
10.3.1. Gnration automatique du fichier xorg.conf
10.3.2. Utilisation de xorgconfig
10.3.3. Utilisation de xorgcfg
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 5

10.3.4. Description du fichier xorg.conf
10.3.5. Informations utilises lors du dmarrage de X.org
10.3.6. Utilisation de xvidtune
10.4. Utilisation du pilote frame buffer du noyau
10.4.1. Configuration du noyau et installation du pilote
10.4.2. Configuration du serveur X
10.5. Configuration des terminaux X
10.5.1. Principe de fonctionnement de xdm
10.5.2. Configuration de xdm
10.5.3. Paramtrage des terminaux X
10.6. Paramtrage des applications et ressources X
10.7. Gestion de la scurit sous XWindow
10.7.1. La commande xhost
10.7.2. La commande xauth
10.8. Gestion des polices de caractres
10.8.1. Gestion des polices de caractres sous XWindow
10.8.2. Installation des polices Truetype
10.8.3. Configuration d'un serveur de polices
10.9. Problmes classiques rencontrs
11. Conclusion
A. Options de configuration du noyau
A.1. Menu General setup
A.1.1. Sous-menu Configure standard kernel features (for small systems)
A.2. Menu Loadable module support
A.3. Menu Block layer
A.3.1. Sous-menu IO Schedulers
A.4. Menu Processor type and features
A.4.1. Sous-menu Firmware Drivers
A.5. Menu Power management options (ACPI, APM)
A.6. Menu Bus options (PCI, PCMCIA, EISA, MCA, ISA)
A.6.1. Sous-menu PCCARD (PCMCIA/CardBus) support
A.6.2. Sous-menu PCI Hotplug Support
A.7. Menu Executable file formats / Emulations
A.8. Menu Networking
A.8.1. Menu Networking options
A.8.2. Menu Amateur Radio support
A.8.3. Menu IrDA (infrared) subsystem support
A.8.4. Menu Bluetooth sybsystem support
A.8.5. Option RxRPC session socket
A.8.6. Menu Wireless
A.8.7. Option RF switch subsystem support
A.8.8. Option Plan 9 Resource Sharing Support (9P2000) (Experimental)
A.9. Device Drivers
A.9.1. Menu Generic Driver Options
A.9.2. Menu Connector - unified userspace <-> kernelspace linker
A.9.3. Menu Memory Technology Devices (MTD)
A.9.4. Menu Parallel port support
A.9.5. Menu Plug and Play support
A.9.6. Menu Block devices
A.9.7. Sous-menu Misc devices
A.9.8. Menu ATA/ATAPI/MFM/RLL support
A.9.9. Menu SCSI device support
A.9.10. Menu Serial ATA (prod) and Parallel ATA (experimental) drivers
A.9.11. Menu Multi-device support (RAID and LVM)
A.9.12. Menu Fusion MPT device support
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 6

A.9.13. Menu IEEE 1394 (FireWire) support (EXPERIMENTAL)
A.9.14. Menu I2O device support
A.9.15. Configuration des interfaces rseau
A.9.16. Menu ISDN subsystem
A.9.17. Menu Telephony Support
A.9.18. Menu Input device support
A.9.19. Menu Character devices
A.9.20. Sous-menu I2C support
A.9.21. Sous-menu SPI support
A.9.22. Sous-menu Dallas's 1-wire bus
A.9.23. Sous-menu Power supply class support
A.9.24. Sous-menu Hardware Monitoring support
A.9.25. Sous-menu Multifunction device drivers
A.9.26. Menu Multimedia devices
A.9.27. Menu Graphics support
A.9.28. Menu Sound
A.9.29. Menu HID Devices
A.9.30. Menu USB support
A.9.31. Menu MMC/SD Card support
A.9.32. Menu LED devices
A.9.33. Menu InfiniBand support
A.9.34. Menu EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
A.9.35. Menu Real Time Clock
A.9.36. Menu DMA Engine support
A.9.37. Menu Auxiliary Display support
A.9.38. Menu Virtualization
A.9.39. Menu Userspace I/O
A.9.40. Menu Linux hypervisor example code (NEW)
A.10. Menu File systems
A.10.1. Sous-menu CDROM/DVD Filesystems
A.10.2. Sous-menu DOS/FAT/NT Filesystems
A.10.3. Sous-menu Pseudo filesystems
A.10.4. Sous-menu Miscelaneous filesystems
A.10.5. Sous-menu Network File Systems
A.10.6. Sous-menu Partition Types
A.10.7. Sous-menu Native Language Support
A.11. Menu Instrumentation Support
A.12. Menu Kernel hacking
A.13. Menu Security options
A.14. Menu Cryptographic options
A.15. Menu Library routines
B. Compilation et mise jour des principaux composants du systme
B.1. Compilation de make 3.81
B.2. Compilation des binutils 2.17.0
B.3. Compilation de la bibliothque C 2.5.0
B.4. Compilation de OpenSSL
B.5. Compilation de MESA 6.5.2
B.6. Compilation de X.org 7.3.0
B.7. Compilation de Lesstif 0.95.0
B.8. Compilation de KDE 3.5.7
B.9. Compilation de Gnome 2.20.0
B.9.1. Rcupration des sources
B.9.2. Compilation des bibliothques gnrales
B.9.3. Compilation des modules de base d'interfaage avec les langages
B.9.4. Compilation des bibliothques de Gnome
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 7

B.9.5. Compilation de Gnome
B.9.6. Compilation des bindings de Gnome
B.9.7. Compilation des outils de dveloppements complmentaires
B.10. Compilation de Samba 3.0.23
C. Formulaire pour la cration des lignes de mode de X.org
D. GNU Free Documentation License
E. Licence de documentation libre GNU

Liste des tableaux

4-1. Caractristiques des liens physiques et symboliques
4-2. Hirarchie standard du systme de fichiers
5-1. Groupes de pages de man
5-2. Principaux signaux Unix
5-3. Variables d'environnements courantes
5-4. Tests sur les fichiers
9-1. Plages d'adresses IP rserves pour un usage personnel
10-1. Frquence maximale des moniteurs
10-2. Numros des modes graphiques VESA

Liste des illustrations

3-1. Pistes et secteurs d'un disque dur
3-2. Partitions primaires et partitions logiques
3-3. Master boot record et secteurs de boot
4-1. Architecture des systmes GNU/Linux
4-2. Le systme de fichiers virtuel
6-1. Traitements des entres clavier
6-2. Traitement des caractres pour l'affichage
6-3. Filtres d'impression et imprimantes PostScript
6-4. Filtres d'impression et imprimantes PostScript
7-1. Interprtation d'un programme
7-2. Compilation et excution d'un programme
7-3. Processus de gnration d'un excutable
8-1. Chargement des modules de pilotes de priphrique
8-2. Chargement des firmwares
8-3. Cration des fichiers spciaux de priphriques
8-4. Chargement automatique des modules du noyau
9-1. Notion de paquet et d'adresse rseau
9-2. Encapsulation de protocoles
9-3. Addresse IP et adresse de rseau
9-4. Notion de passerelle
9-5. Notion de route
9-6. Connexions TCP
9-7. Translation d'adresses avec suivi de port TCP
9-8. Trajet des paquets dans le code de filtrage
9-9. Algorithme de chiffrement symtrique
9-10. Algorithmes de chiffrement asymtriques
10-1. Notion de display
10-2. Structure du fichier xorg.conf
10-3. Paramtres des lignes de mode


DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 8

Remarques de l'auteur
Il se peut que certaines informations fournies dans ce livre soient spcifiques ma configuration
matrielle et logicielle. titre indicatif, j'utilise une machine fonctionnant sous Linux Slackware 12.0,
et j'ai contrl les informations sur une Debian Etch. En particulier, il est connu que la Slackware
n'utilise pas, par dfaut, la notion de niveaux d'excution. En revanche, elle n'utilise que les versions
officielles des logiciels, et sa configuration reste simple et comprhensible.
Je me suis toutefois efforc de rendre ce document gnrique et indpendant de ma configuration.
J'espre donc que la plupart des informations fournies ici s'appliqueront la plupart des configurations
matrielles et toutes les distributions Linux, bien que je ne puisse pas le garantir. Les informations
donnes dans ce livre permettront donc sans doute aux personnes qui n'ont jamais vu Linux de
dbroussailler un peu le terrain, et celles qui utilisent dj Linux de comprendre en profondeur
comment leur systme fonctionne.
Je remercie d'avance les gens qui pourront m'envoyer des remarques concernant les imprcisions,
voire les horreurs et les neries que j'aurais pu crire. Plus je recevrai de critiques constructives et de
propositions, plus ce document a de chances de s'amliorer. Cependant, si vous prenez le temps de
m'envoyer les remarques et les erreurs que vous avez pu dtecter, je vous saurais gr de vrifier au
pralable qu'elles sont toujours d'actualit dans la dernire version de ce document, que vous pourrez
trouver dans diffrents formats de fichiers sur mon site Web.
Vous pouvez contribuer au maintien et au support de mes documents libres sur la page de support de
mon site Web, l'adresse http://casteyde.christian.free.fr/support/support.html. Si vous estimez que ce
travail mrite salaire, n'hsitez pas m'offir un pot, c'est facile et scuris (n'envoyez pas de pizza par
La Poste SVP).
Chapitre 1 : Introduction
Table des matires

1.1. Matriel, logiciel et systme d'exploitation
1.2. Qu'est-ce que Linux ?
1.3. Pourquoi Linux ?
1.4. Plan du document
Ce livre est un guide d'installation et d'administration du systme d'exploitation GNU/Linux pour
ordinateur de type PC.
L'objet de ce document est donc de donner les connaissances de base ncessaires l'installation de
Linux sur un ordinateur de particulier ou un petit serveur. Il est suppos que l'utilisateur a dj utilis
un autre systme d'exploitation, par exemple MS Windows. Cependant, aucune notion avance
d'informatique n'est ncessaire. Tout sera expliqu au fur et mesure des besoins et, si ncessit est,
des complments d'information 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 n'ont pas une grande habitude de l'informatique aient quelques difficults
les assimiler. Cela dit, vaincre sans peine, on triomphe sans gloire, et l'installation de Linux vous
procurera le plaisir d'apprendre.
1.1. Matriel, logiciel et systme d'exploitation
Dans les grandes lignes, un ordinateur est gnralement constitu :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 9

d'un ou plusieurs processeurs, qui effectuent tous les traitements de calcul ;
de mmoire vive, o sont stockes les instructions que le ou les processeurs doivent excuter,
et les donnes quils doivent manipuler ;
d'units de stockage de masse tels que les disques durs, permettant de stocker les donnes et
les programmes de manire permanente (c'est--dire mme aprs extinction de l'ordinateur) ;
et d'une carte mre, sur laquelle on connecte tous ces lments.
ces composants de base s'ajoutent des composants annexes, que l'on appelle priphriques . Le
clavier, la souris, les cartes graphiques, son et rseau en sont des exemples.
Ce matriel n'est toutefois gnralement pas exploitable tel quel. Il faut pour cela utiliser des
programmes ddis, qui permettent de l'utiliser. L'ensemble de ces programmes constituent ce que l'on
appelle le systme d'exploitation . C'est au dessus de ce systme que viennent se placer les
programmes utilisateurs, que l'on appelle galement les applications , ou logiciels .
La fonction premire d'un systme d'exploitation est donc de grer l'ordinateur, et de permettre aux
logiciels de s'excuter. Toutefois, les systmes d'exploitation fournissent gnralement une abstraction
du matriel pour les programmes, afin que ceux-ci n'aient pas se soucier des spcificits du matriel
sur lequel ils sont installs. Par exemple, il est possible de simuler certaines fonctions absentes, telles
que les fonctions 3D des cartes graphiques modernes, ou encore une interface rseau sur un ordinateur
qui n'en dispose pas. Ainsi, les programmes qui utilisent ces fonctionnalits peuvent s'excuter
correctement, mais avec des restrictions et des performances moindres. L'essentiel est donc, dans ce
cas, de fournir une interface de programmation uniforme, quel que soit le matriel sous-jacent. Le
systme d'exploitation apparat donc comme une machine virtuelle de haut niveau pour les
programmes.
Il est vident que le systme doit savoir se montrer le plus discret possible, car le but final n'est pas de
grer l'ordinateur mais bel et bien de s'en servir. Toutefois, la mode actuelle est de faire des systmes
de plus en plus complexes, et de plus en plus visibles, et par consquent de moins en moins discrets
(suivez mon regard...). De nos jours, la notion de systme d'exploitation englobe donc de plus en plus
l'ensemble des logiciels permettant d'utiliser le matriel et les logiciels d'application courants. Mais
bien entendu, il ne s'agit l que d'un abus de langage, dont le grand public n'a pas forcment pris
conscience.
1.2. Qu'est-ce que Linux ?
Linux est le noyau d'un systme d'exploitation libre de type Unix, crit initialement par Linus Torvalds
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 d'un systme d'exploitation exprimental
dvelopp par Dennis Ritchie et Ken Thompson dans les laboratoires AT&T's Bell Laboratories 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
d'exploitation 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 n'a jamais rellement vu le jour, en revanche,
le systme Unix initial a engendr un grand nombre d'autres systmes plus ou moins compatibles.
Rcemment, les diffrents fournisseurs de systmes Unix se sont accords pour dfinir l'ensemble des
fonctionnalits que tous les systmes Unix doivent supporter, afin de rsoudre les problmes
engendrs par les incompatibilits existantes entre ces diffrents systmes. Le terme Unix est donc un
terme gnrique pour reprsenter l'ensemble de tous ces systmes, dont Linux fait partie. Pour
l'anecdote, la dnomination Unix provient de la contraction de Unics (abrviation de Uniplexed
Information and Computing Service ), terme forg ironiquement pour bien signaler qu'Unix tait une
version allge de ce que Multics devait tre.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 10

Bien que compatible avec les dernires spcifications Unix, Linux ne contient pas une ligne du code
source du systme Unix original, ce qui en fait ce que l'on appelle un clone . Cela dit, il s'agit
rellement d'un systme Unix part entire. En tant que tel, il dispose des fonctionnalits fournies par
les systmes Unix : il est multitche, multi-utilisateur et relativement orient rseau. Vous aurez donc,
avec Linux, un systme fiable, fonctionnel et performant.
Comme nous l'avons dit, Linux n'est que le noyau d'un systme d'exploitation. Ce n'est donc que le
composant de base qui prend en charge toute la gestion du matriel. Mais quel est donc ce systme
d'exploitation ? Il s'agit du systme GNU/Linux, comprenant donc, outre le noyau Linux, plusieurs
autres couches logicielles dveloppes par la Free Software Foundation et d'autres organisations. Ces
couches prennent en charge diffrentes fonctionnalits, telles que l'utilisation de l'ordinateur en ligne
de commande, l'affichage graphique, et la gestion complte de l'environnement utilisateur en mode
graphique. Parler de Linux en tant que systme d'exploitation est donc, encore une fois, un abus de
langage. Cela tant dit, nous nous autoriserons le faire dans la suite de ce document, par souci de
simplicit.
Contrairement aux ides reues, il existe un grand nombre d'applications pour Linux. La plupart de ces
applications peuvent tre installes avec le systme GNU/Linux, ce qui fait qu'en pratique ce systme
forme un ensemble complet et parfaitement utilisable pour la plupart des tches courantes.
Une installation correcte de Linux vous permettra donc de raliser les oprations les plus classiques,
comme effectuer un travail bureautique, naviguer sur Internet, raliser l'acquisition, la capture et le
retraitement d'images, 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 rgulirement ports. De mme, vous ne trouverez pas forcment tous les
logiciels spcialiss qui existent sous Windows, et certains logiciels se contenteront des
fonctionnalits fondamentales. Vous ne pourrez donc pas raliser ce que vous faisiez avec ces
applications Windows dont il n'existe pas encore d'quivalent sous Linux. C'est par exemple le cas
pour les applications de gestion et de paie utilises par nombre de professionnels indpendants ou par
des PME.
Les systmes Linux se prsentent gnralement sous la forme de distributions , que l'ont peut
acheter dans le commerce ou tlcharger sur Internet (de manire tout fait lgale, comme nous le
verrons dans le chapitre suivant). Une distribution n'est rien d'autre que le regroupement de l'ensemble
des programmes qui constituent le systme d'exploitation et des logiciels les plus utiles et les plus
connus pour Linux. Une distribution Linux est donc rellement bien plus qu'un systme
d'exploitation : c'est un tout qui vous permettra rellement d'utiliser compltement votre ordinateur,
gnralement sans mme avoir installer de logiciels complmentaires ! De ce point de vue, Linux
est beaucoup plus fonctionnel que les autres systmes d'exploitation propritaires, qui sont en pratique
livrs nus .
1.3. Pourquoi Linux ?
Que les choses soient claires : l'installation de Linux peut tre une opration relativement complique,
et l'usage d'un systme Unix en gnral n'est pas la porte de tout le monde. Mme si la qualit des
distributions actuellement disponibles s'est grandement accrue ces derniers temps, au point que
n'importe qui peut installer un systme Linux viable sans trop de problmes, la configuration du
systme pour obtenir un fonctionnement correct exige un travail assez important. En particulier, les
distributions actuelles prouvent encore quelques difficults pour optimiser les priphriques
exotiques, et souvent seules les fonctionnalits de base sont correctement configures aprs une
installation classique. 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
l'intgration de tous ces composants dans un environnement homogne, celle-ci n'est pas forcment
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 11

parfaite. Les outils de configuration des distributions vous permettront sans doute de configurer 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 d'une distribution sur un ordinateur
assez vieux (c'est--dire un ordinateur qui ne dispose pas des derniers priphriques et cartes
graphiques la mode), ou dont les constituants sont de marque courante, obtient rapidement un
systme fonctionnel et capable de raliser la plupart des oprations qu'il dsire. En particulier, celui
qui utilise son ordinateur pour travailler (j'entends par l crire des lettres, les imprimer, naviguer sur
Internet pour rcuprer des informations, ou programmer) peut parfaitement se contenter de
l'installation par dfaut. Ce type de situation ne convient pas tout le monde : la plupart des gens
disposent de cartes graphiques rcentes (surtout depuis l'avnement des jeux 3D) ou de priphriques
spcifiques. Tout le monde ne se place pas uniquement dans le cadre d'une utilisation professionnelle,
et il est absurde de disposer d'une carte son et de ne pas pouvoir l'utiliser. Et c'est l que le bt blesse !
Si l'on 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 configuration apparat
malheureusement principalement pour les particuliers, qui souvent disposent de machines htroclites
et absolument non standards. Dans le cadre d'une entreprise, il existe des personnes qualifies pour
rsoudre ce type de problme, mais ce sont des informaticiens et, de plus, les machines sont souvent
homognes, ce qui permet d'apporter des solutions gnriques.
Il faut donc tre informaticien ou amateur trs clair pour installer Linux sur une machine de
particulier et pour le configurer de manire optimale. La situation est d'autant plus grave que la plupart
des gens ne connaissent pas Linux, et qu'il est toujours difficile d'apprendre 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 l'a jamais faite. Celui qui a install trois fois MS Windows sait parfaitement
le faire prsent, et il pense que c'est relativement facile. Et pourtant, il ralise souvent des tches
d'une complexit qui dpasse, l aussi, le commun des mortels.
Heureusement, et c'est l la force de Linux, ces oprations ne doivent tre effectues qu'une seule fois.
On n'a absolument pas besoin de changer la configuration chaque instant, comme c'est 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 c'est un enfer installer et configurer, mais tout simplement parce que ce n'est pas
ncessaire de le changer.
En rsum, on peut affirmer que :
Linux est un systme simple installer sur des machines standards ;
sa configuration sur une machine plus exotique requiert parfois une intervention manuelle ;
dans la plupart des cas, cette intervention n'est pas trs difficile raliser ;
cependant, elle peut drouter les personnes qui ne l'ont jamais effectue ;
mais le jeu en vaut la chandelle, parce que le systme est rellement solide.
1.4. Plan du document
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 clarifier un peu les notions ayant trait aux logiciels libres. Elle tente
d'expliquer 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 d'exploitation, et prsente
l'installation de trois distributions Linux reprsentatives de ce qui existe actuellement. l'issue de
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 12

cette partie, vous devez disposer d'un systme fonctionnel, utilisable mais non optimis et ne
permettant pas forcment d'utiliser tous vos priphriques.
La troisime partie prsente un peu le systme et vous aidera faire vos premiers pas avec Linux, et
vous donnera les notions de base qui vous permettront de mieux comprendre la philosophie du
systme.
La quatrime partie constitue un petit cours d'Unix pour les nouveaux utilisateurs de ce type de
systme. Sa lecture en est fortement recommande, du moins si vous voulez avoir un aperu des
possibilits de Linux et de l'ensemble de ses fonctionnalits.
La cinquime partie traite des oprations d'administration et de maintenance de base des systmes
Unix. Cette partie est en quelque sorte la suite de la quatrime partie, o les notions plus spcifiques
l'administration de la machine sont dcrites.
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 septime partie prsente la manire dont la configuration du matriel est ralise sous Linux, ainsi
que la manire dont le systme fonctionne en interne. Elle vous permettra de configurer et d'optimiser
votre systme pour votre matriel.
La huitime partie traite de la configuration du rseau sous Linux. Le rseau est rellement l'un des
aspects les plus importants de Linux, et ncessite donc une attention toute particulire.
Enfin, la neuvime et dernire partie vous dcrit le fonctionnement et la procdure d'installation de
XWindow, l'environnement graphique de Linux. Cet environnement est particulirement riche et
fonctionnel, et mrite donc que l'on s'y attarde galement.
Chapitre 2 : GNU, Linux et les logiciels libres
Table des matires

2.1. Les logiciels libres et la Free Software Foundation
2.2. Droits d'auteurs et la licence GPL
2.3. Le projet GNU et Linux
2.4. Avantages et inconvnients des logiciels libres
2.5. La motivation des auteurs et le financement des logiciels libres
Vous entendrez souvent parler de la licence GPL , du projet GNU , de la Free Software
Foundation et des logiciels libres dans le monde de Linux. Pour bien comprendre ce que sont les
logiciels libres et la Free Software Foundation, et ce que signifie la licence GPL, il est ncessaire d'en
faire une brve prsentation.
2.1. Les logiciels libres et la Free Software Foundation
La Free Software Foundation est une organisation dont le but est de dvelopper des logiciels libres. Le
terme de libre signifie clairement que chacun peut faire ce qu'il veut du logiciel, y compris le
modifier. La vente n'est 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.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 13

La libert de modifier les logiciels libres implique naturellement que leur code source, c'est dire le
texte de leur programme tel qu'il a t saisi par ses auteurs, soit librement accessible et modifiable. Les
logiciels libres sont donc qualifis de logiciels Open Source , ce qui signifie en anglais que les
sources du programme sont disponibles. Attention cependant, tous les logiciels Open Source ne sont
pas forcment libres, car il n'est pas toujours possible de modifier ce code source et de le redistribuer
librement (ventuellement gratuitement). Ainsi, nombre d'diteurs de logiciels propritaires publient
leur code source sans pour autant donner de droits supplmentaires ceux qui les lisent. Certains
d'entre eux jouent d'ailleurs explicitement sur cette confusion. De plus, la plupart des journalistes
anglo-saxons 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.
2.2. Droits d'auteurs et la licence GPL
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 l'auteur et, en tant que tel, conserve les droits d'auteurs sur son
travail. Il ne fait que concder la libert d'exploiter ce travail aux autres. C'est en cela que les logiciels
libres se dmarquent du domaine public, dont les logiciels ne sont plus soumis aucun droit.
Afin de protger les logiciels libres et leurs auteurs, la Free Software Foundation a rdig la licence
GPL (abrviation de l'anglais General Public License ). Cette licence stipule que le logiciel libre
peut tre redistribu, utilis, modifi librement, pourvu que celui qui en bnficie accorde les mmes
droits ceux qui il fournit les copies du logiciel, qu'il l'ait modifi ou non. En dautres termes, elle
garantit que la libert des uns s'arrte l o commence celle des autres.
Cette licence empche donc l'alination du logiciel et sa transformation en logiciel propritaire, de
quelque manire que ce soit. Cela implique que tout logiciel libre sous licence GPL modifi par une
autre personne que son auteur reste libre, et le restera jamais. Ainsi, il est impossible qu'une socit
commerciale puisse un jour s'approprier un logiciel libre, mme si elle l'amliore. Si vous dsirez lire
la licence GPL, vous pouvez en trouver une copie dans le fichier /usr/src/linux/COPYING une fois que
vous aurez install Linux.
La FSF a galement rdig d'autres licences plus adaptes aux bibliothques de programmes et aux
documentations libres. Ainsi, la licence LGPL ( Lesser General Public License ) permet d'utiliser les
bibliothques de programmes dans des programmes propritaires, et la licence FDL ( Free
Documentation License ) permet de diffuser des documentations libres. titre d'exemple, ce guide
est distribu sous licence FDL, dont vous trouverez une tradution franaise en annexe.
Prcisons que la licence GPL n'est pas la seule licence permettant de distribuer des logiciels libres. Il
existe d'autres 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 l'appropriation des
sources par des socits commerciales. De mme, la licence X, sous laquelle est diffus
l'environnement graphique X11 qu'utilise Linux, est une licence libre. Quelques outils fournis avec
Linux sont distribus avec d'autres licences plus rares.
2.3. Le projet GNU et Linux
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 d'exploitation, qui disposent tous peu prs des
mmes fonctionnalits et proposent d'y 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 l'on appelle le noyau) est toujours en cours de
ralisation. Pour information, ce noyau se nomme Hurd .
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 14

Cependant, d'autres noyaux sont disponibles, avec lesquels les commandes GNU peuvent tre
utilises. Parmi ces noyaux, il existe bien entendu Linux, qui a t crit par le Finlandais Linus
Torvalds lorsqu'il tait tudiant, et amlior par des programmeurs du monde entier sur Internet. Linux
est un noyau parmi tant d'autres, ceci prs qu'il est, lui aussi, distribu sous la licence GPL, bien que
n'ayant rien avoir avec la Free Software Foundation.
Cela signifie qu'il 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. C'est donc un ensemble de logiciels libres provenant de plusieurs sources
distinctes. Cependant, il est trs courant d'entendre 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.
Pour information, le terme GNU est l'abrviation de l'anglais GNU's Not Unix . Cette curieuse
phrase rappelle que le projet GNU est de raliser un systme Unix diffrent des autres. Vous
remarquerez que cette dfinition est rcursive, c'est--dire qu'elle utilise le mot GNU elle-mme.
Cela doit tre attribu au got des dveloppeurs de la Free Software Foundation pour ce genre de
dfinition infiniment rcursive. Vous ne saurez sans doute jamais les raisons qui les ont pousss
choisir la lettre 'G' dans leur dfinition. Cela tant, GNU se prononce gnou en anglais, et vous
trouverez donc souvent la reprsentation d'un gnou sur les sites Internet de GNU.
2.4. Avantages et inconvnients des logiciels libres
Les logiciels libres disposent d'avantages 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 fonctionnalits la mode et sont donc gnralement extrmement comptitifs sur ce
plan.
Du fait du grand nombre possible d'intervenants sur les sources des logiciels libres, un grand
nombre de possibilits techniques peuvent tre explores, et c'est souvent la meilleure qui est
slectionne. C'est une forme de slection naturelle de la meilleure solution. Ainsi, sur le long
terme, les logiciels libres sont les plus efficaces en terme de performances.
Toujours du fait du grand nombre d'intervenants, et surtout de par la possibilit de consulter et
de modifier librement le code source, le cycle de dtection/identification/correction des
bogues est trs court. Les logiciels libres sont donc parmi les plus fiables qui se font. On peut
considrer qu'un 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 d'une 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 fixe, et sont certainement les plus rentables
en terme de cot global pour la collectivit.
Afin de garantir l'interoprabilit entre les diffrents intervenants du monde du logiciel libre,
chacun s'vertue 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 fichiers et des
protocoles de communication. Cela garantie une interoprabilit optimale et l'absence de
mauvaise surprise.
Professionnellement parlant, la disponibilit du code source fournit une garantie de
fonctionnement que l'on ne peut pas retrouver ailleurs. En cas de problme, il est toujours
possible de s'en sortir, ventuellement en recourant des comptences externes pour adapter le
logiciel ses propres besoins.
Enfin, la disponibilit du code source garantit une prennit absolue du logiciel, ce qu'aucune
socit commerciale vendant des logiciels propritaires ne peut ou ne veut faire.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 15

Pour tre honnte, il faut admettre que les logiciels libres ont galement des inconvnients. La liste
suivante en prsente quelques-uns :
La diversit des logiciels libres a galement un revers. L'utilisateur peut avoir choisir entre
plusieurs logiciels, ce qui ne simplifie pas forcment l'apprentissage ou la communication
entre les diffrents utilisateurs de logiciels libres. Prenez par exemple ce guide : il fait la
prsentation de l'installation de trois distributions Linux, qu'il a fallu choisir parmi les
centaines de distributions existantes... De plus, ce n'est pas le seul document traitant du sujet
de l'installation et de la configuration de Linux (mais c'est sans doute le plus meilleur, n'est-ce
pas ?). Cela ne simplifie pas les choses pour l'utilisateur.
La diversit des bibliothques et des outils, ainsi que le nombre d'applications susceptibles de
communiquer entre elles, implique une complexit accrue dans le travail d'intgration de tous
ces logiciels. Les distributions s'assurent que les logiciels qu'elles fournissent fonctionnent
bien ensemble, mais la redondance existe malgr tout et a un cot non ngligeable au final,
aussi bien pour les distributions que les programmeurs et les diteurs de logiciels. La
description de l'installation de trois distributions dans ce document a galement un cot pour
son auteur (pfff !). Enfin, mme l'utilisation simultane de plusieurs logiciels peut amener
charger en mmoire de nombreuses bibliothques ayant pourtant la mme fonction,
alourdissant le systme inutilement.
Certaines fonctions des logiciels ne seront pas forcment implmentes, si ses auteurs n'y
voient pas d'intrt. Si le logiciel est dvelopp par une seule personne ou une petite quipe,
ils peuvent ne pas en avoir les moyens financiers ou temporels. Toutefois, si un nombre
suffisant d'utilisateurs la rclame, il est probable qu'une personne ayant les comptences
ncessaires pour ajouter la fonctionnalit se manifeste. Mais il est galement possible qu'un
autre projet soit dmarr, ajoutant encore une fois un lment la complexit de l'cosystme
des logiciels libres. Il n'est donc pas rare d'avoir plusieurs logiciels ralisant la mme chose,
mais qu'aucun ne soit complet !
Du fait que les logiciels libres sont justement dvelopps par des passionns ou par des
socits qui ne peuvent pas en tirer un bnfice direct, certains domaines ne sont pas couverts
par les logiciels libres. Ainsi, vous ne trouverez pas toujours une alternative libre un logiciel
propritaire, soit parce que le sujet n'intresse personne, soit parce que les cots de
dveloppement dpassent les capacits des organisations de dveloppeurs de logiciels libres.
Plus spcifiquement, le march monopolistique de Windows est beaucoup plus grand que
celui de Linux. De ce fait, mme les diteurs de logiciels propritaires rechignent faire
l'effort du portage de leurs logiciels pour Unix/Linux. Ainsi, la logithque pour les systmes
libres s'en trouve d'autant plus rduite. Cela est particulirement vrai pour les jeux et les
logiciels professionnels, et malheureusement galement pour les pilotes de priphriques de
certains constructeurs de matriel.
Quand bien mme les diteurs de logiciels voudraient publier leurs logiciels sous licence libre,
ils n'en ont pas toujours le droit, en raison d'accords de licence avec des tiers ou de brevets
qu'ils utilisent, et parfois mme en raison de la rglementation locale de certains pays (comme
la France, depuis la loi DADVSI, pour tout les logiciels de lecture de films protgs par
exemple). De mme, les vendeurs de matriel ne peuvent pas toujours fournir de pilotes libres,
ni mme d'informations ou de spcifications sur le matriel.
Hlas, ces inconvnients sont parfois incontournables, car inhrents la nature mme des logiciels
libres. Des reproches injustifis sont parfois raliss envers les auteurs des logiciels libres, alors qu'ils
ne sont pas en mesure d'viter ces problmes. L'utilisateur doit donc galement se faire une raison :
aprs tout, il reoit dj beaucoup de la communaut des logiciels libres.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 16

Mais, et c'est l l'essentiel, l'aspect le plus important des logiciels libres est le fait qu'ils garantissent la
libert des utilisateurs par rapport aux diteurs de logiciels. Le respect des standards, l'ouverture des
formats de documents et des protocoles de communication garantissent une interoprabilit absolue,
qui permet ainsi chacun de rester libre de ses choix pour sa solution informatique. Il n'est que trop
courant de voir les diteurs de logiciels enfermer leurs clients dans une dpendance vis vis d'eux,
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 d'utiliser un produit implique que
ses lecteurs le possdent galement), durable (on ne peut faire de mise jour que chez le mme diteur
de logiciel), voire impose par la loi (interdiction en France d'analyser les formats de documents
protgs/chiffrs depuis la loi DADVSI par exemple).
2.5. La motivation des auteurs et le financement des logiciels libres
Bien que cela ne se situe pas au mme niveau philosophique, la question de la motivation des auteurs
de logiciel libres et, pour les entreprises, de leur financement, se pose galement de manire
rcurrente. Il n'est 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.
Pour ce qui est des auteurs bnvoles, la motivation provient gnralement de l'amusement qu'ils ont
dvelopper ces logiciels et les partager avec la communaut du logiciel libre. Cette communaut,
constitue de l'ensemble des auteurs et des utilisateurs des logiciels libres, leur apporte en gnral la
reconnaissance, des rapports de bogues ou des ides d'amlioration de leur logiciel, des conseils ou
mme de l'aide sur des sujets qu'ils ne matrisent pas (traduction, nouvelles fonctionnalits, etc.).
De plus, en s'intgrant la communaut du logiciel libre, les programmeurs amateurs peuvent
galement rcuprer des bibliothques de programme ou des morceaux complets d'autres programmes,
et ainsi voir leur logiciel progresser plus vite. Certains peuvent mme se distinguer des autres et se
voir approcher par une entreprise pour un emploi sur le logiciel qui leur servait l'origine de passe-
temps ! Il est toujours plus agrable de travailler sur quelque chose qui nous plat...
Les socits quant elles peuvent financer le dveloppement des logiciels libres qu'elles ditent ou
auxquels elles contribuent de plusieurs manires. Quelques socits vivent de manire drive des
logiciels libres qu'elles dveloppent (par vente de produits drivs, de contrat de support, ou de
services complmentaires). C'est notamment le cas des socits qui ditent des distributions Linux et
des socits de service en logiciel libre. D'autres socits proposent une double licence, constitue
d'une licence libre telle que la GPL pour bnficier des avantages des logiciels libres, et d'une licence
propritaire, permettant d'obtenir une rmunration de la part des clients qui ne veulent pas se plier
aux exigences de la GPL (obligation de redistribution des sources en particulier).
Enfin, de nombreuses socits contribuent des logiciels libres tout simplement parce qu'elles en ont
besoin. Il est en effet souvent prfrable d'adapter un logiciel libre qui satisfait ses besoins 80% et de
dvelopper les 20% restants, quitte redistribuer les modifications et amliorations qui y sont
apportes, que de redvelopper l'intgralit d'un logiciel quivalent ou d'en financer le dveloppement
par une socit tiers. Le cot total de dveloppement d'une solution compltement propritaire est en
effet gnralement beaucoup plus lev. On voit bien que dans ce cas, les dveloppeurs de logiciels
libres sont avant tout leurs propres utilisateurs...
Cela dit, il faut tre clair sur ce sujet : le logiciel libre rapporte moins que le logiciel propritaire, tout
simplement parce qu'il n'est pas question de monopole ici et qu'on ne peut pas pressurer le client aussi
facilement qu'avec une offre logicielle ferme.
Comme on le voit, le logiciel libre est trs loin d'tre l'apanage de quelques fanatiques, et les
mauvaises langues qui considrent ce modle conomique comme du communisme n'ont assurment
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 17

rien compris. Bien au contraire, il s'agit l de capitaliser les dveloppement et de rduire les cots,
deux objectifs fondamentaux dans une conomie de march et trs souvent mal appliqus
l'informatique ! Quant ceux qui prtendent que les logiciels libres constituent une forme de dumping
dans le domaine informatique, ils devraient plutt analyser la pertinence de ce modle conomique et
voir si, finalement, ce n'est pas tout simplement un modle plus rentable sur le long terme que le
modle propritaire. Il suffit de considrer le temps consacr, et le cot probablement pharaonique, du
dveloppement de Windows Vista, pour constater que le rapport qualit/prix est loin d'tre reluisant,
mme par rapport son an Windows XP...
Chapitre 3 : Installation du systme
Table des matires

3.1. Choix de la distribution
3.2. Partitionnement et systmes de fichiers
3.3. Prrequis
3.4. Procdure d'installation gnrique
3.5. Installation de la Mandriva 2007
3.6. Installation de la Debian 4.0r1
3.7. Installation de la Slackware 12.0
Maintenant que nous avons fait connaissance avec Linux et les logiciels libres, nous allons pouvoir
passer au vif du sujet, savoir l'installation du systme.
La configuration minimale supporte par Linux est un 386 avec au minimum 12 Mo de mmoire vive.
Il va de soi qu'avec un tel foudre de guerre, vous ne pourrez pas aller bien loin, et une configuration
minimale plus raisonnable serait plutt un 486DX2 66MHz avec au moins 32Mo de mmoire pour une
utilisation en mode texte. La quantit de mmoire est de loin le facteur le plus important, et si vous
voulez utiliser l'environnement graphique X11, il faudra au minimum compter sur 64 Mo de mmoire
vive. Si, de plus, vous dsirez utiliser les environnements graphiques modernes tels que KDE ou
Gnome, 128 Mo seront ncessaires. N'importe quelle machine moderne peut donc parfaitement faire
fonctionner Linux de nos jours, et vous n'aurez donc aucun problme l'installer. Vous pourrez mme
transformer un vieux 486 ou Pentium en routeur ou en pare-feu avec partage de connexion Internet
par exemple.
Mme si les distributions les plus modernes permettent une installation quasiment transparente pour
l'utilisateur, il est bon de savoir ce qui se passe en arrire plan. En effet, sauf dans le cas o l'on
raliser l'installation sur un disque dur ddi, l'installation de Linux requiert des manipulations
susceptibles de dtruire les donnes du systme dj en place, qui est gnralement Microsoft
Windows. De plus, la bonne comprhension des oprations ncessite une connaissance minimale des
notions de base relatives Linux et aux systmes d'exploitation en gnral.
Ce chapitre a donc pour but de prsenter les concepts fondamentaux utiliss pendant l'installation du
systme d'exploitation, et notamment la notion de partitionnement de disque. Les prrequis
l'installation seront ensuite abords, puis l'installation elle-mme sera ralise. Mais avant tout, il va
falloir vous dcider pour le choix d'une distribution parmi les nombreuses distributions Linux
existantes...
3.1. Choix de la distribution
Comme vous le savez peut-tre dj, il existe un grand nombre de distributions Linux. Si l'une d'entre
elles tait rellement meilleure que toutes les autres, la question du choix ne se poserait pas, et il n'y
aurait aucun problme. Mais en ralit, chaque distribution a son public, et le choix doit se faire en
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 18

fonction de ses besoins et de ses dsirs. Chose qui, videmment, n'est pas forcment vidente quand on
n'a jamais install Linux !
Pour faire concis, et sans vouloir froisser les partisans de chaque distribution, on peut en premire
approche distinguer les distributions selon leur procdure d'installation. Si vous tes un dbutant total,
il est probable que vous cherchiez installer une distribution grand public , telle que la Mandriva
de la socit ponyme, la Fedora Core soutenue par Redhat, ou la SuSE de Novell. D'autres
prfreront des distributions moins commerciales , plus simples et plus fiables, qui ne s'appuient
pas forcment sur les toutes dernires avances technologiques. Ce sera le cas avec les distributions
Debian, Ubuntu ou Slackware par exemple. Enfin, les intgristes de la pire espce s'orienteront vers
des distributions orientes source , dont le principe est essentiellement de reconstruire tout le
systme lors de l'installation. Ceux-ci seront sans doute ravis avec la distribution Gentoo ou, s'ils
veulent rellement tout refaire la main, avec la distribution LFS. Je pense que vous tes le plus
mme de choisir la distribution qui vous conviendra le mieux, en fonction de vos comptences ou de
vos apprhensions...
En revanche, dans une catgorie donne, il n'est a priori pas vident de faire ce choix. Heureusement,
il existe souvent une solution simple et rapide pour faire son choix : c'est tout simplement d'essayer
chacune de ces distributions ! Non, je ne suis pas fou, je ne vous demande pas d'installer cinq versions
de Linux les unes aprs les autres, juste pour que vous puissiez choisir celle que vous garderez... Je
parle ici de la possibilit d'utiliser les versions Live des distributions. Ces versions sont
simplement des versions allges et conues pour tenir sur un CD amorable. Il est donc possible de
dmarrer son ordinateur sur ces CD et, sans faire la moindre installation sur disque dur, d'valuer une
distribution. La plupart des distributions fournissent un CD Live (parfois mme plusieurs, selon le
niveau de fonctionnalit propos). Vous pouvez tlcharger sur Internet leurs fichiers ISO (format des
images de CD et de DVD), partir desquels tout bon logiciel de gravage peut graver un CD ou un
DVD. Vous n'avez donc plus qu' faire vos emplettes et tester...
En ce qui nous concerne, ce document a pour vocation de faire une description la plus gnrale
possible de l'installation de Linux, et si possible la plus indpendante des diffrentes distributions
existantes. tre exhaustif serait une perte de temps, et de toutes faon la qualit de la documentation
obtenue serait sans doute moindre que celle des sites ddis chaque distribution. Par consquent,
seules trois distributions seront prsentes, ce qui n'est dj pas mal.
Le choix de ces distributions ne prjuge bien sr en rien de leur valeur, il a fallu tout simplement faire
un choix. En pratique toutefois, ce choix a t orient sur les diffrents systmes d'installation
existants. En effet, de nombreuses distributions sont drives d'autres distributions plus connues ou
originelles, ce qui fait qu'il n'y a finalement pas autant de variantes de systmes d'installation qu'il y a
de distributions sur le march.
Les trois distributions prsentes dans ce document permettent donc de voir les systmes d'installation
les plus classiques, et il sera ais d'adapter les procdures d'installation de ce document aux autres
distributions de mme nature. Ces distributions sont les suivantes :
la distribution Mandriva, base sur le systme d'installation RPM, originellement dvelopp
par Redhat et galement utilis par SuSE ;
la distribution Debian, base sur le systme d'installation apt, que de nombreuses autres
distributions utilisent, comme par exemple les distributions Ubuntu et Knoppix ;
et enfin la distribution Slackware, base sur le systme d'installation pkg, qui est moins
populaire, mais qui reste d'une simplicit exemplaire.


DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 19

3.2. Partitionnement et systmes de fichiers
L'installation d'un systme d'exploitation tel que Linux sur un PC touche aux structures de donnes
fondamentales du disque dur et est de ce fait une opration trs sensible. Il est donc ncessaire de
connatre certaines notions de base afin de savoir ce que l'on est en train de faire. Cette section a donc
pour but de vous prsenter ce que sont une partition et un systme de fichiers, comment choisir un
plan de partitionnement, et comment l'accs aux partitions se fait dans un systme Linux.
3.2.1. Notion de partition
Une partition est, comme son nom l'indique, une partie d'un disque dur. Les partitions permettent
de diviser l'espace de stockage des disques durs en zones indpendantes de taille restreinte. La notion
de partition permet de rserver certaines portions du disque dur un usage particulier, et de bien
sparer les donnes qui se trouvent dans chaque partition. L'opration de partitionnement est
l'opration de cration des diffrentes partitions d'un disque dur.
L'installation de plusieurs systmes d'exploitation ncessite souvent d'allouer une partition chaque
systme, car les systmes d'exploitation ne comprennent gnralement pas le format des partitions des
autres systmes. Il est galement parfois ncessaire, pour un mme systme, de dfinir plusieurs
partitions, qui seront utilises des fins spcifiques. Par exemple, Linux fonctionne nettement mieux
si on lui attribue une partition de swap (dite aussi partition d'change ) pour stocker des donnes
peu utilises qui se trouve en mmoire, lorsqu'il a besoin de plus de mmoire qu'il n'en 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
sauvegarde d'une part, et d'assurer une plus grande scurit des donnes lors des oprations de
maintenance du systme d'autre 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 enregistrs dans le premier secteur
du disque dur, que l'on appelle souvent le Master Boot Record ( MBR en abrg). Le MBR ne
contient que quatre entres pour la dfinition des partitions, d'o la limite de quatre partitions
primaires. Le type des partitions est un code numrique qui indique le systme d'exploitation capable
de l'utiliser et sa nature (partition de swap ou systme de fichiers par exemple). titre d'exemple,
Linux utilise principalement deux types de partition : les partitions de swap (numro 82) et les
partitions pour les systmes de fichiers (type 83).
La dfinition des partitions se fait donc en donnant leur point de dpart, leur taille et leur type. Le
point de dpart et la longueur des partitions sont exprims en secteurs. Un secteur est l'unit de
base pour les donnes des disques durs, qui correspond un bloc de 512 octets utiles (auxquels
s'ajoutent bien entendu d'ventuels octets de contrle d'erreur, mais qui ne sont manipuls que par le
disque dur lui-mme et par son contrleur, et que l'on ne peut donc pas utiliser pour y stocker des
donnes). Cela dit, certains systmes (ceux de Microsoft) ne permettent pas une telle finesse dans la
dfinition des partitions et ncessitent de travailler au niveau du cylindre.
Note : Pour comprendre ce qu'est 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 s'agit bien ici de cercles et non d'une spirale car les ttes
de lecture/criture restent une position fixe 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 l'une d'entre elles doit changer de piste), les diffrentes pistes des
diffrents plateaux sont accdes simultanment. L'ensemble de ces pistes, situs un rayon donn
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 20

pour tous les plateaux, constitue ce que l'on 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 3-1. Pistes et secteurs d'un disque dur

Vous remarquerez souvent que le nombre de ttes est impair, alors qu'en gnral, un plateau a deux
faces... Cela est d au fait que les fabricants de disques durs conservent toujours une face d'un 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 l'un des autres
plateaux.
Bien entendu, la limitation quatre partitions seulement est extrmement contraignante, aussi la
notion de partition tendue a-t-elle t introduite. Une partition tendue est une partition primaire
spciale, dans laquelle il est possible de dfinir 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 dfinir qu'une seule partition tendue sur un
disque donn, mais cela n'empche pas d'avoir des partitions primaires normales ct de celle-ci. Il
est donc recommand, lorsque l'on cre la quatrime partition, de crer une partition tendue et non
une partition primaire, afin 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
(notamment DOS et Windows 9x/Millenium), bien qu'ils soient capables d'y accder une fois qu'ils ont
dmarr.
Figure 3-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 d'une des partitions primaires. Ce secteur est
communment appel le secteur de boot , parce qu'il contient le programme capable de charger le
systme d'exploitation. La partition dont le secteur de boot est charg par le bootstrap loader est
appele la partition active . Il ne peut y avoir qu'une seule partition active chaque instant : celle du
systme d'exploitation principal.
Gnralement, le programme stock sur le secteur de boot d'une partition a pour but de charger le
systme d'exploitation qui y est install. Cependant, pour certains systmes d'exploitation, ce
programme est trs volu et permet de lancer d'autres systmes d'exploitation, ventuellement
installs sur d'autres partitions ou d'autres disques durs. Ces programmes sont alors appels des
gestionnaires d'amorage .
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 21

Linux dispose de deux gestionnaires d'amorage trs puissants : le GRUB et LILO. Windows NT,
2000, XP disposent galement d'un gestionnaire d'amorage capable de lancer d'autres systmes
d'exploitation : NTLDR. Windows Vista fournit son propre gestionnaire d'amorage, bcdedit, qui est
relativement difficile utiliser.
Pour rsumer, lors du dmarrage d'un PC, le programme d'amorage de la machine (communment
appel le BIOS ) charge le MBR du premier disque dur en mmoire et excute le bootstrap loader.
Celui-ci cherche ensuite charger le secteur de boot de la partition active, et excute le gestionnaire
d'amorage qui s'y trouve. Ce gestionnaire peut donner accs aux diffrents systmes d'exploitation,
qu'ils soient situs sur d'autres partitions ou mme d'autres disques durs.
La manire dont chaque systme est lanc dpend ensuite du systme. Il faut donc, en gnral, lancer
chaque systme d'exploitation avec son propre chargeur. Cependant, on peut toujours utiliser un
gestionnaire d'amorage d'un autre systme en rusant quelque peu : il suffit d'indiquer ce
gestionnaire de charger le secteur de boot de la partition d'installation du systme que l'on dsire lancer
si celui-ci n'est pas pris en charge directement. Dans ce cas, le gestionnaire d'amorage ne fait que
passer la main au chargeur de l'autre systme.
Figure 3-3. Master boot record et secteurs de boot

3.2.2. Notion de systme de fichiers
Les systmes d'exploitation utilisent gnralement les partitions pour y stocker ce que l'on appelle des
systmes de fichiers . Nous allons voir prsent ce qu'est un systme de fichiers, et comment ils
sont manipuls sous Unix.
3.2.2.1. Dfinition
Un systme de fichiers est une structure de donnes sur disque contenant des fichiers, dans lesquels
applications peuvent y stocker leurs donnes. Les fichiers eux-mmes sont des entits capable de
contenir des donnes au sens large, ce peut tre des documents (texte, image, film, son), des
programmes, des donnes utilises par le systme ou tout autre type de donnes imaginable.
La plupart des systmes de fichiers sont structurs hirarchiquement, et regroupent les fichiers dans
des rpertoires. Cette organisation permet de classer les fichiers et de pouvoir les retrouver plus
facilement. Il existe donc un rpertoire racine, qui contient tous les fichiers soit directement, soit
indirectement dans ses sous-rpertoires. En fait, les rpertoires sont eux-mmes des fichiers spciaux,
interprts par le systme diffremment des autres fichiers. Les donnes stockes dans les rpertoires
sont simplement les entres de rpertoires, qui caractrisent et permettent d'avoir accs aux autres
fichiers et aux autres rpertoires.
Il existe de nombreux types de systmes de fichiers, pour chaque systme d'exploitation. Les plus
connus dans le monde Windows sont la FAT (systme de fichier originel du DOS) et la FAT32, ainsi
que NTFS (systme de fichiers de Windows NT4, 2000, XP et Vista) et ISO9660 (systme de fichiers
des CD-ROM et DVD). Sous Linux, on retrouve, outre les systmes de fichiers Windows, les
systmes Ext2 et Ext3, ReiserFS v3, XFS, JFS, etc. Chacun de ces systmes de fichiers a ses avantages
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 22

et ses inconvnients, aussi bien en termes de performances et de limites que de fiabilit face aux
dfaillances matrielles. En pratique, les systmes de fichiers les plus utiliss sous Linux sont Ext3 et
ReiserFS v3.
3.2.2.2. Nommage des fichiers
Afin de retrouver les fichiers, un nom leur est attribu. Il est possible, partir du nom des diffrents
sous-rpertoires et du nom du fichier, de construire un chemin d'accs , qui permet de rfrencer le
fichier en question de manire bien prcise et de pouvoir le retrouver facilement. Bien entendu, c'est
du rpertoire racine que dbutent tous les chemins possibles dans le systme de fichiers. De ce fait, le
rpertoire racine est le seul rpertoire qui n'a pas de nom.
Dans les chemins d'accs aux fichiers, les noms de rpertoires et de fichiers sont spars par un
caractre spcial. Ce caractre est traditionnellement, 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 (nomme backslash en anglais) '\', rendant ainsi tous
ses systmes incompatibles avec les systmes Unix, et gnrant ainsi beaucoup de problmes
supplmentaires l o il n'tait pas ncessaire d'en avoir (sincrement, le cot de cette nerie, ainsi que
celle des marqueurs de fin de ligne diffrents dans les fichiers textes, doit atteindre des sommes
astronomiques dans tous les projets de portage ou de dveloppement d'applications portables). Comme
le rpertoire racine n'a pas de nom, il peut tre accd directement avec un simple slash :
/
L'criture d'un chemin d'accs se fait en crivant les noms des diffrents rpertoires et le nom du
fichier, tous spars par le sparateur. L'exemple suivant vous montre l'allure d'un chemin d'accs
typique sous Unix :
/home/dupond.jean/lettres/professionnelles/marketing/ventes2005.odt
Le chemin de cet exemple rfrence le fichier ventes2005.odt de l'utilisateur Jean Dupond .
Comme on peut le voir dans cet exemple, le nom de fichier contient un suffixe odt , spar du corps
du nom par un point. En effet, il est d'usage d'ajouter un tel suffixe aux noms des fichiers, afin de
pouvoir le caractriser plus facilement. Ce suffixe est appel l'extension . Dans le cas prsent,
l'extension odt indique qu'il s'agit d'un fichier OpenOffice Document Text , donc qu'il s'agit
d'un document texte de la suite bureautique OpenOffice.
Les utilisateurs de DOS et Windows devront faire attention aux points suivants lorsqu'ils utiliseront
des fichiers sous Linux :
Contrairement DOS et Windows, les systmes Unix n'utilisent pas l'extension pour
identifier la nature d'un fichier. Ainsi, il est tout fait possible de stocker une image JPEG
dans un document d'extension .doc : cela n'en fera pas pour autant un document Microsoft
Word...
L'extension n'ayant aucun rle particulier, un nom de fichier peut parfaitement contenir un ou
plusieurs points, et une extension peut tre arbitrairement longue. En revanche, par
convention, les fichiers dont le nom commence par un point sont des fichiers cachs. Dans ce
cas, ils ne seront visibles que si on le demande explicitement.
Les systmes de fichiers Unix font la distinction entre les majuscules et les minuscules. Il faut
donc prendre garde la manire dont on crit les noms de fichiers et de rpertoires.
Cependant, la plupart des gens n'utilisent que des minuscules pour leurs noms de fichiers.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 23

Les systmes de fichiers Unix n'ont pas les mmes limitations sur les noms que les systmes de
fichiers FAT, FAT32 et ISO9660. Par exemple, les noms des fichiers et des rpertoires peuvent tre
trs longs (jusqu' 256 caractres par nom), et la longueur maximale d'un chemin d'accs est de 4 ko
dans le systme de fichiers EXT2.
3.2.2.3. Montage des systmes de fichiers
Contrairement l'usage sous Windows, les chemins d'accs Unix ne comportent pas de spcification
de lecteur. Les systmes de fichiers Unix sont dits mono-ttes, ce qui signifie qu'ils n'ont qu'un seul
point de dpart : le rpertoire racine (alors que les systmes Microsoft sont multi-ttes, puisqu'ils ont
un point de dpart par lecteur et par partition). Le fait de n'avoir qu'un seul point de dpart est
beaucoup plus simple et permet, encore une fois, d'crire 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 spcifie-
t-on le lecteur que l'on veut utiliser ? . Cette question a deux rponses. Premirement, sous Unix, on
n'accde pas aux lecteurs, mais aux systmes de fichiers. Il faut donc bien comprendre qu'un lecteur
reprsente un priphrique physique, et qu'il est possible qu'il contienne plusieurs systmes de fichiers
dans diffrentes partitions. De mme, un systme de fichiers n'est pas ncessairement stock sur un
lecteur ou dans une partition : il peut tre galement stock dans un fichier (c'est le cas par exemple
pour les images disques de CD-ROM), accessible par le rseau (c'est le cas des systmes de fichiers
rseau, Network File System en anglais), ou encore gnr par un composant du systme (c'est le
cas des systmes de fichiers virtuels du noyau).
Cependant, le problme de l'accs aux systmes de fichiers se pose malgr tout. La rponse ce
problme-ci est cette fois la suivante : pour accder un systme de fichiers, il faut raliser une
opration que l'on nomme le montage . Cette opration associe le rpertoire racine de ce systme de
fichiers l'un des rpertoires de l'arborescence existante. Ce rpertoire est couramment appel point
de montage . Les fichiers qui se trouvent dans le point de montage sont masqus par ceux du systme
de fichiers monts et ne sont donc plus accessibles, mais ils ne sont bien entendus pas dtruits.
Par exemple, il est courant de monter le lecteur de disquette dans le rpertoire /floppy/. Ainsi, si la
disquette contient le fichier ventes1999.odt, ce fichier sera accessible grce au chemin suivant :
/floppy/ventes1999.odt
Cette solution permet d'accder tous les systmes de fichiers de la mme manire, partir d'un seul
rpertoire racine, que ces systmes de fichiers soient EXT2, FAT, ISO9660, NTFS ou Amiga... En
pratique, c'est nettement plus simple.
Note : L'opration de montage peut raliser bien plus d'oprations qu'une simple association de la
racune d'un systme de fichiers un point de montage. En effet, elle peut gnrer les oprations
suivantes de manire implicite :
chargement des pilotes pour ce systme de fichiers ;
allocation de tampons mmoire pour optimiser les entres/sorties en mmoire.
On fera donc trs attention toujours dmonter les systmes de fichiers pour les lecteurs amovibles.
En effet, Linux utilise en effet les tampons mmoire ( buffers en anglais) pour y stocker les
donnes des systmes de fichiers monts, et il n'crit ces donnes sur le support de stockage que
lorsque c'est ncessaire. Ce mcanisme permet d'acclrer les lectures et les critures sur les disques,
mais a l'inconvnient de ncessiter une requte de vidange des tampons (opration que l'on appelle
sync ) avant de retirer le lecteur ou avant d'teindre le systme. Si on ne le fait pas, des donnes
seront certainement perdues. Pour les systmes de fichiers fixes, le systme effectue ce sync lorsqu'on
l'arrte proprement, mais il ne le fait pas si on coupe le courant brutalement. De manire similaire,
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 24

Linux empche l'jection des CD-ROM tant qu'ils sont monts, mais il ne peut rien faire pour les
lecteurs amovibles tels que les disquettes et les clefs ou disques externes USB. C'est donc l'utilisateur
de prendre garde bien dmonter les systmes de fichiers situs sur ces priphriques avant de les
dbrancher.
3.2.2.4. Identification des partitions
Comme nous le verrons plus tard, sous Linux, la plupart des priphriques sont considrs comme des
fichiers (la principale exception tant les interfaces rseau). Cela signifie qu'ils peuvent tre manipuls
via des fichiers spciaux, sur lesquels les oprations classiques des fichiers peuvent tre ralises (et
notamment la lecture et l'criture). Cette rgle s'appliquant aux disques durs, et mme leurs
partitions, il est utile de prciser les conventions de nommage utilises par Linux pour reprsenter ces
entits.
Les fichiers spciaux de priphriques sont par conventions tous situs dans le rpertoire /dev/. C'est
donc dans ce rpertoire que l'on trouve les fichiers spciaux de priphriques pour les disques et autres
priphriques de stockage de masse. Malheureusement, leur nom dpend de leur interface de
connexion, ce qui fait que l'on ne peut pas crire de procdure gnrique pour leur manipulation.
Historiquement, les priphriques IDE sont accessibles via des fichiers spciaux nomms avec des
noms de la forme hdX, o 'X' est une lettre identifiant le disque sur le bus IDE. Par exemple, le lecteur
matre du premier contrleur IDE est accessible via le fichier spcial de priphrique /dev/hda (qu'il
s'agisse d'un disque dur ou d'un lecteur de CD/DVD), tandis que le lecteur esclave de ce mme
contrleur sera accessible via le fichier spcial de priphrique /dev/hdb. Les lecteurs matre et esclave
du deuxime contrleur IDE seront quant eux accessibles via les fichiers spciaux de priphrique
/dev/hdc et /dev/hdd, et ainsi de suite.
Inversement, les priphriques SCSI sont accessibles via des fichiers spciaux de priphriques dont le
nom est de la forme sdX. On pourra donc accder aux divers disques SCSI via les fichiers spciaux de
priphrique /deb/sda, /dev/sdb, etc.
Note : Afin d'uniformiser la manire dont les priphriques sont accds, la tendance est de considrer
les nouveaux priphriques comme des priphriques SCSI. De ce fait, la terminologie sdX est de plus
en plus employe. Ainsi, les lecteurs de connectique Serial ATA, USB ou Firewire utilisent tous cette
terminologie. De plus, un nouveau jeu de pilotes pour les priphriques IDE classiques est en cours de
dveloppement, et il utilise dj cette terminologie, mme si tymologiquement 's' signifie SCSI . Il
n'y aura donc plus lieu de faire la distinction entre les interfaces utilises sous peu.
Les fichiers spciaux de priphrique des disques peuvent tre utiliss directement, mme si ce n'est
pas l'usage de le faire. Par exemple, il est possible de lire la totalit du contenu d'un disque en lisant
son fichier spcial de priphrique. En pratique toutefois, ces fichiers spciaux de priphriques ne
sont utiliss que pour manipuler la table des partitions. Ils ne sont gnralement utiliss que par les
programmes de partitionnement, donc que lors de l'installation du systme ou lors de l'installation d'un
nouveau disque. Par exemple, l'dition de la table des partitions du disque /deb/hda se fera avec la
commande suivante sous Linux :
fdisk /dev/hda
Les partitions d'un disque quant elle sont accessibles sous la terminologie hdXn ou sdXn, o 'X' est
toujours la lettre du lecteur, et 'n' est le numro de la partition considre (la numrotation des
partitions commence partir de 1). Ainsi, la premire partition du disque dur matre du premier
contrleur IDE (ouf !) est accessible via le fichier spcial de priphrique /dev/hda1, et ainsi de suite.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 25

Ces fichiers spciaux de priphriques peuvent galement tre utiliss directement, par exemple
lorsque l'on veut copier une partition. Toutefois, en pratique, ces fichiers spciaux sont surtout utiliss
par les programmes permettant de crer les systmes de fichiers. Par exemple, la cration d'un systme
de fichiers FAT32 sur la partition /deb/sda1 se fera avec la commande suivante sous Linux :
mkdosfs -F32 /dev/sda1
Note : Comme il l'a dj t dit ci-dessus, il est tout fait possible de crer un systme de fichiers dans
un fichier... Il suffit en effet de donner le nom de ce fichier en paramtre la commande de cration du
systme de fichiers, en lieu et place du nom du fichier spcial de priphrique de la partition ou du
disque !
Certains utilitaires non spcifiques Linux utilisent d'autres conventions de nommage pour identifier
les disques et les partitions. C'est notamment le cas, comme on le verra plus loin, pour le gestionnaire
d'amorage GRUB. En effet, ce gestionnaire ne fait pas d'hypothse sur le systme utilis, et ne peut
donc pas reprendre la terminologie Linux.
3.2.3. Choix du plan de partitionnement
Le partitionnement du disque peut gnralement tre ralis automatiquement par les programmes
d'installation des systmes d'exploitation. Cependant, les choix faits par ces programmes ne sont pas
toujours trs judicieux, et peuvent ne pas convenir si votre disque contient des partitions dj
existantes. Nous verrons donc comment raliser un partitionnement manuellement lors de l'installation
de Linux.
Toutefois, avant de se lancer dans cette opration, 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 d'au moins trois partitions :
Une partition d'change, que Linux utilisera pour y stocker temporairement des donnes
lorsqu'il aura besoin de rcuprer un peu de place en mmoire. Il est recommand de placer
cette partition au dbut du disque (c'est dire au plus prs du cylindre 0, l o le taux de
transfert est le plus rapide). La taille de cette partition peut empiriquement tre dfinie comme
tant gale deux fois la quantit de mmoire vive installe sur la machine, sans toutefois
dpasser 512Mo. Cette limite part du principe que si le systme a besoin de plus de mmoire
virtuelle (somme de la quantit de mmoire vive et de la taille des zones d'change), c'est que
de toute faon il n'est pas dimensionn pour faire ce qu'on lui demande. Sachez qu'on peut
rajouter des fichiers d'change a postriori trs facilement sous Linux.
Une partition pour le systme de fichiers racine dans laquelle se trouvera l'ensemble des
fichiers du systme. Selon l'ge de la machine et la version du BIOS, il peut y avoir des
limitations en ce qui concerne le dbut de cette partition. Il est recommand qu'elle se trouve
dans les 1024 premiers cylindres pour que le BIOS puisse y accder et charger le gestionnaire
d'amorage du systme. Sa taille devra tre de 4 8Go, afin de pouvoir installer le systme
d'exploitation, les environnements graphiques et la plupart des applications sans problme. Il
est inutile de dpasser les 8Go : si cette partition vient se remplir, c'est que les fichiers
temporaires du systme, situs dans les rpertoires /tmp/ et /var/, prennent trop de place,
auquel cas l'activit de la machine justifie l'utilisation d'une partition ddie pour ces donnes.
Une partition devant contenir les donnes des utilisateurs (qui se trouveront dans le rpertoire
/home/). Elle pourra prendre le reste de l'espace disponible sur le disque moins, bien entendu,
l'espace ncessaire aux partitions des ventuels autres systmes d'exploitation et celui d'une
ventuelle partition de sauvegarde ou d'change de donnes.
L'avantage d'avoir 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 26

de sauvegarde de ses donnes. De plus, les fichiers de configuration importants peuvent tre
sauvegards sur cette partition avant la rinstallation, ce qui est extrmement pratique. Ce type de
partitionnement est donc 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 n'est donc pas rare, dans ces conditions, d'avoir refaire une installation complte pour
nettoyer rapidement le systme.
Toutefois, si l'on 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. En effet, lorsqu'une partition est pleine, on
ne peut pas facilement utiliser l'espace restant sur les autres partitions pour l'agrandir, car il faut
dplacer toutes les donnes au pralable.
Si votre machine est destine accueillir plusieurs systmes d'exploitation, il est peut tre intressant
de crer au moins une partition FAT ou FAT32. Cette partition permettra en effet d'changer des
donnes entre Linux et les autres systmes d'exploitation, car les systmes de fichiers FAT sont
reconnus par tous les systmes d'exploitation courants. Notez que si Windows NT4 doit tre install,
vous devrez crer une partition FAT plutt qu'une partition FAT32, car Windows NT ne reconnat pas,
sans programmes additionnels, les partitions FAT32. Ce problme ne se pose plus pour Windows 2000
et les suivants. Notez galement que bien que Linux sache parfaitement lire les partitions NTFS
(utilises par Windows NT4, 2000, XP et Vista), l'criture sur ces partitions n'est pas compltement
implmente (il n'est possible d'crire que dans un fichier existant). Inversement, aucun systme
Windows ne sait et ne saura lire les systmes de fichiers Linux, quels qu'ils soient. De mme, les
systmes Windows ne savent pas accder un systme de fichiers stock dans un autre fichier, sans
installer d'outils complmentaires (pour ceux qui disposent de Windows XP, l'outil filedisk sera sans
doute relativement utile). Avoir une partition FAT est donc souvent la solution la plus simple pour
changer des informations entre les deux systmes.
Note : Sachez cependant que la taille maximum des fichiers sur les partitions FAT32 est limite
4Go. Cette limitation est en dessous de la taille d'un DVD, cela pourra donc tre assez gnant
l'occasion pour transfrer de gros fichiers tels que des fichiers images de DVD ou des fichiers vido
non compresss. De plus, Microsoft ne recommande pas que des systmes de fichiers FAT de plus de
32 Go soient utiliss, mme s'il est possible de crer de tels systmes de fichiers avec des utilitaires
spcifiques. Les systmes de fichiers Linux n'ont pas ce genre de limites.
Dans ce cas galement, vous devrez prvoir une ou deux partitions pour le deuxime systme
d'exploitation, afin de sparer les donnes de ce systme et les donnes des utilisateurs. Vous aurez
alors certainement crer une partition tendue et des partitions logiques, pour viter d'tre limit aux
quatre partitions primaires. On constate ici que le fait que les donnes des utilisateurs ne puissent pas
tre partages entre les systmes est trs pnalisant...
Rien ne vous empche de crer d'autres partitions si vous le dsirez. Par exemple, si la machine doit
tre d'une fiabilit absolue ou si vous tes soumis des contraintes d'exploitation fortes, vous pouvez
opter pour des solutions radicales qui consistent sparer les donnes d'exploitation (normalement
situes dans le rpertoire /var/) des fichiers 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 d'exploitation devra tre rpare, ou l'extrme rigueur
rinitialise compltement par les scripts de dmarrage.
Vous voyez que dfinir un plan de partitionnement n'est pas une chose facile, et il n'existe pas de
solution gnrique qui convienne tous les usages. Cela est d'autant plus vrai qu'il est impratif de
bien dterminer ses besoins en espace disque, aussi bien pour les programmes que pour les donnes et
le swap, puisque les partitions ne peuvent pas facilement tre redimensionnes. Quoi qu'il en soit, dans
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 27

tous vos choix, gardez l'esprit que ce qui est le plus important pour un particulier, ce sont ses
donnes.
3.3. Prrequis
Maintenant que les principes de base ont t vus, on peut passer l'action. Mais avant de raliser
l'installation de Linux proprement dite, il faut s'attarder sur quelques prrequis importants : le
recensement du matriel install et bien entendu la sauvegarde des donnes existantes !
3.3.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 configuration du matriel que vous pourriez rencontrer. Vous aurez
aussi peut tre spcifier certains paramtres matriels lors de l'installation 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 d'entre/sortie, lignes d'interruption) ;
nombre de ports parallles, ainsi que leurs paramtres (ports d'entre/sortie, lignes
d'interruption) ;
le type de port USB (vitesse, compatible UHCI ou OHCI) ;
si vous disposez d'un 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 d'units 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 s'ils 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 ;
nom, modle et marque de l'cran, avec, s'il s'agit d'un cran tube cathodique, ses frquences
de balayage horizontales et verticales maximale, 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 chipset pour les rseaux sans fils Wifi ;
type de modem (interne, externe) et, si le modem est interne, sa nature (modem complet ou
mulation) ;
type de chipset pour le contrleur FireWire (IEEE 1394) si vous en disposez d'un ;
type de chipset et nom, marque, modle pour les priphriques annexes (contrleurs
infrarouge, lecteurs de cartes mmoire intgrs, etc.).
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 configuration du BIOS ou affiches directement par le BIOS au dmarrage de la machine, ou tout
simplement en ouvrant le botier de la machine et en regardant ce qu'il y a l'intrieur. Vous pouvez
galement rcuprer les informations indiques dans la configuration de MS Windows si celui-ci est
install.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 28

Bien entendu, il se peut que vous n'ayez pas besoin de ces informations et que l'installation se passe
sans problme. Cependant, si d'aventure Linux exige que vous les connaissiez, mieux vaut pouvoir lui
rpondre.
Note : Bien que cela soit assez rare, certains composants ou priphriques additionnels peuvent ne pas
tre grs par Linux, faute d'avoir un gestionnaire de priphriques adquat (cet tat de fait est en
gnral d une rtention d'informations de la part des fabricants, qui empchent ainsi les
dveloppeurs de Linux d'crire les gestionnaires de priphriques dans de bonnes conditions). C'est en
particulier le cas de nombre de priphriques bas de gamme conus pour ne fonctionner qu'avec MS
Windows, ou de quelques priphriques exotiques. Les Winmodems ont une triste rputation ce sujet
(il s'agit de modems incomplets, dont une partie du traitement de signal est report dans un logiciel
spcifique Windows), ainsi que des imprimantes 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 qu'elles 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. La Liste de compatibilit Linux vous permettra galement
d'effectuer une recherche sur n'importe quel type de matriel et sur n'importe quel modle trs
facilement. Il existe d'autres sites ralisant priodiquement des tests sur le matriel rcent, comme par
exemple LinuxHardware.
3.3.2. Sauvegarde des donnes
L'installation d'un systme d'exploitation est une opration dlicate, surtout si l'on modifie les
partitions, puisqu'il faut travailler au niveau le plus bas. La moindre erreur peut provoquer une
catastrophe, ce qui peut au mieux vous obliger recommencer compltement l'installation, et au pire
perdre l'ensemble de vos donnes, y compris celles des autres systmes installs ! Par consquent :
IL FAUT DONC FAIRE UNE SAUVEGARDE DE VOS DONNES !
Toutefois, si Linux est le premier systme que vous installez sur votre ordinateur, ou si vous n'avez
pas encore utilis ou pas l'intention d'utiliser les autres systmes d'exploitation installs dessus, vous
pouvez tenter votre chance directement.
La manire de procder pour raliser une telle sauvegarde dpend bien entendu des systmes
d'exploitation dj installs. Gnralement, il s'agit de Microsoft Windows. Si vous disposez d'un
lecteur de bande, le problme de la sauvegarde est trs simple : vous n'avez qu' faire une sauvegarde
complte. Dans le cas contraire, vous allez sans doute devoir trier vos fichiers afin d'identifier ceux
auxquels vous tenez rellement, et les recopier sur un support physique fiable (vitez absolument les
disquettes, ils sont lents et n'ont jamais t fiables). Vous pouvez par exemple faire un DVD de
sauvegarde si vous disposez d'un graveur de DVD.
Dans ce cas, l'idal est tout simplement de disposer d'un autre disque dur, que l'on pourra consacrer
compltement l'installation de Linux. Ainsi, vous pourrez exprimenter tout loisir, sans craindre de
perdre vos prcieuses donnes. De plus, l'installation de Linux sur un disque vierge est nettement plus
facile que sur un disque o Windows est dj install, parce que vous n'avez pas dgager de la place
pour son installation. Prenez toutefois garde au fait que Linux restera capable d'accder aux donnes
de votre premier disque dur, et que toute erreur de manipulation peut dtruire les donnes qui s'y
trouvent. Par exemple, si vous ne spcifiez pas le bon disque dur lors de la cration des systmes de
fichiers, vous perdrez nouveau toutes vos donnes. L'achat d'un tiroir peut tre la vraie solution, car
vous n'aurez alors qu'un seul disque un instant donn dans votre ordinateur. Toutefois, cette
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 29

technique a l'inconvnient de ne pas vous permettre d'accder aux donnes de votre disque Windows
partir de Linux.
3.4. Procdure d'installation gnrique
Si vous avez fait la sauvegarde de vos donnes, que vous savez comment partitionner vos disques et
o installer Linux, vous pouvez vous lancer effectivement dans l'installation de Linux.
Cette section vous prsentera de manire gnrique les tapes d'une installation de Linux. Si vous
dsirez installer une distribution Mandriva, Debian ou Slackware, vous pouvez passer directement aux
sections suivantes, qui dcrivent plus spcifiquement l'installation de Linux avec ces distributions.
De manire gnrale, une installation de Linux se droule selon les tapes suivantes :
amorage du systme ;
cration ou redimensionnement des partitions du disque dur ;
cration des systmes de fichiers et de la partition d'change ;
installation du systme proprement dite ;
installation du gestionnaire d'amorage ;
configuration du systme.
Nous allons donc voir ces diffrentes tapes, sauf la configuration du systme, qui sera prsente dans
toute la suite de ce document.
3.4.1. Premier dmarrage
Pour commencer votre installation, vous devez pouvoir dmarrer votre ordinateur sous Linux. La
mthode la plus simple est certainement de mettre le CD ou le DVD de la distribution que vous avez
choisie dans votre lecteur et de redmarrer l'ordinateur.
Toutefois, il faut que votre BIOS soit configur pour amorcer le systme sur le lecteur de CD pour que
cette solution fonctionne. Tous les BIOS modernes permettent de le faire, il suffit de rentrer dans le
programme SETUP (gnralement, cela se fait en appuyant sur la touche F2 ou la touche Suppr/Del de
votre clavier juste au moment o l'ordinateur s'initialise).
Par ailleurs, certaines cartes mres et BIOS disposent d'une fonction de protection contre les virus de
secteurs de boot. Les virus de ce type sont gnralement assez anciens, et s'installent dans le MBR
pour tre excuts chaque dmarrage de la machine et avant le systme d'exploitation. Je prdis
toutefois une recrudescence de ce type de virus depuis l'apparition des processeurs modernes qui
permettent de virtualiser compltement le systme d'exploitation. Quoi qu'il en soit, la modification
des partitions et l'installation du gestionnaire d'amorage de Linux puisse apparatre comme une
infection virale, et chouer en raison d'un blocage par le BIOS. Il est donc ncessaire de dsactiver
cette fonctionnalit pendant l'installation du systme, et de la ractiver aprs. Cela se fait galement
dans le programme SETUP du BIOS.
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 d'autres types de disques.
Lorsqu'il se lance, Linux tente de dtecter le matriel de votre ordinateur. Seuls les pilotes
correspondant votre matriel s'activent, 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, il est probable que votre distribution fournisse des noyaux alternatifs, pour
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 30

les configurations plus exotiques. Chacun de ces noyaux permet de dmarrer sur un certain type
d'ordinateur : vous devrez donc trouver le noyau qui correspond votre matriel et ressayer.
Une autre solution est de fournir, lors du dmarrage, des options au noyau, pour qu'il utilise un pilote
plutt qu'un autre, ou qu'il ne tente pas de dtecter un matriel qui n'est pas prsent sur votre machine,
si ce teste le bloque au dmarrage. Pour trouver la liste des options et la manire de les fournir au
noyau, vous devez lire les informations du gestionnaire d'amorage de votre distribution.
Si votre machine est trs vieille, il se peut que votre BIOS ne vous permette malheureusement pas de
booter sur un lecteur de CD. Dans ce cas, vous pouvez tenter de le mettre jour, mais s'il n'en existe
pas de nouvelle version, il ne vous restera plus qu' dmarrer sur une disquette. Pour cela, vous devrez
copier une image de disquette d'amorage sur une disquette. Vous pourrez alors utiliser cette disquette
pour dmarrer l'installation. En gnral, les distributions fournissent un petit utilitaire DOS nomm
RAWRITE.EXE. Cet utilitaire s'utilise sous DOS avec la ligne de commande suivante :
rawrite image lecteur:
o image est l'image d'une des disquettes d'amorage (que vous trouverez sur le CD d'amorage 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
qu'il doit charger, ou comment crer une disquette de dmarrage pour un autre noyau. Dans le pire des
cas, la distribution utilise ne supporte plus le dmarrage sur disquette. Il ne reste plus alors qu'
trouver version plus ancienne de cette distribution, l'installer, puis faire une mise jour.
Avec la plupart des distributions, les outils ncessaires l'installation sont placs sur un disque virtuel
en mmoire aprs le dmarrage de Linux. C'est en particulier le cas du programme d'installation, et des
outils de manipulation des partitions et des systmes de fichiers. Vous devez toutefois tre en mesure
de les utiliser : il est donc impratif que Linux ait dtect vos disques durs. Si ce n'est pas le cas, soit
les fichiers spciaux de priphriques de ces disques ne seront pas prsents dans le rpertoire /dev/,
soit les outils vous signaleront une erreur lorsque vous tenterez de les utiliser.
3.4.2. Trouver de la place pour installer le systme
L'un des problmes les plus courants lors d'une nouvelle installation est l'absence de place disponible
sur le disque dur pour crer une partition Linux. Ce problme n'a 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 directement, mais ils se vendent souvent pour le prix d'un 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 redimensionnes ou dplaces !). De plus, Linux dispose galement d'un outil similaire
qui, bien qu'il soit encore en phase de dveloppement, permet dj de raliser la plupart des oprations
que l'on peut avoir faire sur les partitions FAT et les partitions EXT2 de Linux. Il s'agit du
programme parted, que nous dcrirons ci-aprs. De mme, il existe un programme DOS permettant
de rduire la taille d'une partition FAT, moyennant quelques prcautions complmentaires. Bien
entendu, il va de soi que si l'on doit dplacer ou modifier une partition, il faut faire au pralable des
sauvegardes de toutes les donnes de cette partition... Mais ne l'ai-je pas dj dit ?
Il est possible que votre distribution dispose d'un outil graphique permettant de manipuler les
partitions existantes pendant la phase d'installation. Ce type d'outil pourra tre utilis pour dgager de
la place pour Linux, ventuellement en rduisant une partition existante. Nous ne dcrirons cependant
pas ces outils ici, car ils sont spcifiques chaque distribution. En revanche, nous prsenterons les
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 31

deux principales techniques permettant de redimensionner une partition, la premire fonctionnant sous
Linux et la deuxime sous DOS.
3.4.2.1. Utilisation de parted
L'utilitaire GNU parted est le standard en ce qui concerne les manipulations de partitions sous Linux.
Cet outil s'utilise en ligne de commande, et peut donc tre utilis partir d'un terminal en mode texte
pendant la phase d'installation, si votre distribution l'inclut avec ses outils d'installation standards. Si
ce n'est pas le cas, vous pourrez rcuprer l'image d'une disquette de boot Linux contenant cet outil
l'adresse ftp://ftp.gnu.org/gnu/parted/bootdisk/partboot.img. Cette image pourra tre copie sur une
disquette l'aide de l'utilitaire 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 3.4.1.
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 l'identifiant du disque dur sur lequel la partition modifier se trouve. Par exemple, la
modification des partitions du premier disque dur IDE se fera donc l'aide de la commande suivante :

parted /dev/hda
parted dispose de plusieurs commandes permettant de modifier les partitions. l'heure actuelle, il ne
permet rellement de travailler que sur les partitions FAT et les partitions contenant un systme de
fichiers EXT2, EXT3 ou ReiserFS. Pour les partitions contenant un systme de fichiers NTFS, il vous
faudra utiliser l'outil ntfsresize. Les exemples de la suite supposeront que le systme de fichiers
manipuls est un systme de fichiers de type FAT.
La premire commande indispensable est la commande print, qui permet d'afficher la table des
partitions du disque courant. Les informations affiches 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 d'une 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 fin de ces partitions, exprims en mgaoctets, le type de la
partition, le systme de fichiers de cette partition, et des indications complmentaires.
Note : Comme il l'a 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 d'alignement 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 32

o partition est le numro de la partition tel qu'il est prsent dans la premire colonne des
informations 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 fin ! La seule contrainte est, bien entendu, que cette
partition reste suffisamment grande pour contenir l'ensemble de ses donnes. Par exemple, pour
rduire de 8 Go la premire partition du disque dur de l'exemple prcdent afin d'y placer la partition
de swap et les systmes de fichiers, on utiliserait la commande suivante :

resize 1 8192 32632.031
Note : L'opration de redimensionnement peut prendre un certain temps. En effet, parted doit
dplacer les donnes qui se trouveraient en dehors de la partition aprs son redimensionnement si
aucune mesure spciale n'tait prise, et il doit reconstruire compltement la FAT de cette partition pour
qu'elle soit cohrente avec le nouvel emplacement de ces donnes.
Linux peut dfinir des limites sur les ressources utilisables par les utilisateurs afin de protger le
systme. En particulier, il est possible qu'une limite soit dfinie concernant la taille maximale des
fichiers manipuls. Il est bien entendu impratif de dsactiver cette limite avant d'effectuer la moindre
opration sur les partitions, tant donn que ce sont gnralement des fichiers de trs grande taille.
Pour cela, 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
commande 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 (c'est--dire celui qui a t indiqu en ligne de commande lors du lancement de
parted ou celui spcifi par la commande select de parted).
Enfin, 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.
3.4.2.2. Utilisation de fips
fips (abrviation de l'anglais First Interactive Partition Splitter ) est un utilitaire similaire parted,
ceci prs qu'il fonctionne sous DOS et qu'il ne permet que de rduire la limite suprieure d'une
partition FAT. De plus, cet utilitaire est incapable de rorganiser le systme de fichiers l'issue de la
rduction de la taille de la partition. Il est donc ncessaire de dfragmenter le systme de fichiers avant
d'utiliser ce programme, afin de placer toutes ses donnes au dbut de la partition.
Note : Vrifiez bien les options du dfragmenteur de systme de fichiers que vous utilisez : quelques
outils consolident bien l'espace libre mais placent certains fichiers la fin de la partition FAT pour
laisser plus de place aux fichiers les plus utiliss au dbut du disque, afin d'optimiser le dbit de
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 33

donnes sur ces fichiers (c'est notamment le cas avec le dfragmenteur de Norton). Il faut
imprativement dsactiver ce type d'option avant de rduire la partition, faute de quoi vous perdriez
dfinitivement les fichiers qui se trouvent la fin de la partition et votre FAT serait dans un tat
incohrent.
Une fois la dfragmentation ralise, fips peut tre utilis pour rduire la taille de la partition FAT. La
plupart des distributions de Linux fournissent des utilitaires DOS sur leur CD/DVD d'installation,
gnralement dans le rpertoire dosutils. C'est l que vous pourrez sans doute trouver fips. Attention,
vous devrez imprativement utiliser la version 2.0 de fips pour manipuler les FAT32 et FAT32X.
La rduction de la taille d'une partition se fait en modifiant la variable qui contient la taille de la
partition dans la table des partitions. Pour cela, vous devrez simplement lancer fips. Celui-ci vous
prsentera alors la liste des disques durs installs sur votre systme, et vous devrez lui indiquer le
disque sur lequel la partition rduire se trouve. Il vous demandera ensuite la partition que vous
dsirez 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. fips vous
demandera alors confirmation avant d'crire sur disque les nouvelles informations de partition. Si vous
tes sr de vous, vous pouvez rpondre par l'affirmative en pressant la touche 'y'.
Note : Contrairement parted, fips ne reconstruit pas la table d'allocation des fichiers (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 n'est pas gnant, seuls quelques mgaoctets seront perdus sur la
partition FAT dans la FAT elle-mme. Cette technique a en revanche l'avantage d'tre extrmement
rapide.
3.4.3. Partitionnement du disque
Le partitionnement en soi peut se faire soit directement l'aide du fdisk de Linux, soit par
l'intermdiaire du programme d'installation de la distribution correspondante. Il est recommand
d'utiliser ce programme d'installation, 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 suffit de taper la commande suivante en ligne de commande :
fdisk disque

o disque est le fichier 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 spcifiez aucun disque en paramtre fdisk, il prendra par dfaut le disque /dev/sda, ou
/dev/hda si aucun disque SCSI n'est 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 affiches 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 fin de la partition. Par dfaut, l'unit utilise par fdisk est le cylindre. Il est recommand de
conserver cette unit, surtout si l'on 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.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 34

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 spcifiant leur dbut et leur fin, soit en cylindres, soit en secteurs selon l'unit courante.
Une fois les partitions cres, vous pouvez spcifier leur type l'aide de la commande 't' (pour
type ). Cette commande demande successivement le numro de la partition modifier et la valeur
de son identificateur en hexadcimal. Rappelons que les identificateurs utiliser pour Linux sont 83
pour les partitions de systmes de fichiers Linux, et 82 pour les partitions de swap. La liste des valeurs
admissibles peut tre obtenue l'aide de la commande 'l'. Par dfaut, le fdisk de Linux cre des
partitions Linux natives, de code 83.
Lorsque vous aurez compltement dfini vos partitions, il ne vous restera plus qu' activer la partition
qui contiendra le gestionnaire d'amorage. La slection de la partition active se fait avec la commande
'a' de fdisk. C'est donc sur cette partition que le chargeur du MBR ira chercher le gestionnaire
d'amorage du systme lancer.
Note : Thoriquement, il est tout fait possible d'installer le gestionnaire d'amorage d'un systme
directement sur le MBR, mais procder de cette manire est trs dconseill. En effet, certains
systmes d'exploitation (notamment tous les systmes de Microsoft) crasent systmatiquement le
MBR lorsqu'ils s'installent, dtruisant ainsi le chargeur d'un autre systme qui y serait ventuellement
install. Cela implique que si l'on dsire installer un gestionnaire d'amorage autre que celui des
systmes Microsoft sur le MBR, il faut le faire aprs l'installation de ces systmes. En pratique, cela
veut dire que dans ce cas, on doit installer Linux aprs Windows ou le DOS.
Notez qu'il n'est toutefois pas toujours faisable d'installer le gestionnaire d'amorage 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, certains des BIOS sont incapables d'utiliser les MBR des autres
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
d'amorage et ventuellement quelques outils de rparation en cas de coup dur, soit installer le
gestionnaire d'amorage directement sur le MBR du premier disque dur. Dans ce cas, on devra faire
particulirement attention l'ordre d'installation des systmes d'exploitation. De manire gnrale, il
faut toujours installer les systmes Microsoft en premier (respectivement dans l'ordre suivant si l'on
veut viter les problmes : DOS, Windows 9x/Millenium et Windows NT4/2000/XP). Nous verrons
plus loin comment installer le gestionnaire d'amorage de Linux et faire une configuration multiboot
avec les principaux autres systmes d'exploitation existants.
3.4.4. Cration des systmes de fichiers
Une fois le disque correctement partitionn, il faut crer les systmes de fichiers. Cette opration n'est
pas ncessaire pour les partitions de swap, cependant il faut le faire pour les autres partitions.
Note : Attention ! Dans le monde du DOS et de Windows, l'opration de cration d'un systme de
fichiers est appele le formatage d'une partition. C'est une erreur de langage relativement grave, car
il n'y a strictement rien voir entre le formatage d'un disque, qui est l'opration consistant enregistrer
des marques sur le support magntique pour dfinir les pistes et les secteurs du disque, et la cration
du systme de fichiers d'une partition, qui consiste enregistrer les structures de donnes permettant
de retrouver les fichiers 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 qu'il existe dj des
pistes et des secteurs sur le disque. C'est pour cette raison que l'on ne parlera ici que de cration de
systmes de fichiers.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 35

La cration des systmes de fichiers EXT2 et EXT3 se fait avec une mme commande, savoir la
commande mke2fs. La cration des autres systmes de fichiers se fait gnralement de la mme
manire que pour ces systmes, mais avec des outils diffrents. Par exemple, la cration d'un systme
de fichiers ReiserFS se fait l'aide de l'outil 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 fichiers mme en cas d'arrt intempestif de l'ordinateur. Cependant, ce
systme de fichiers est encore jeune et n'a certainement pas t dbogu autant que EXT3, qui s'appuie
sur la base de code du vieux systme de fichiers EXT2. Sachez galement que ReiserFS, contrairement
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 fichiers EXT2 et EXT3, consultez
la documentation de votre distribution et les pages de manuel des outils des autres systmes de fichiers
pour plus de dtails sur la mthode utiliser pour les crer.
Afin de pouvoir utiliser mke2fs correctement, il est ncessaire de dfinir quelques termes, et
d'expliquer quelles notions d'EXT2 et d'EXT3 ils se rfrent.
Premirement, le systme de fichiers EXT2 travaille, comme la plupart des systmes de fichiers (ce
n'est pas le cas des systmes de fichiers Reiser par exemple), avec des blocs de taille fixe ( clusters
en anglais). Cela signifie que l'allocation de l'espace disque se fait par multiples de la taille de ces
blocs : il est impossible de demander seulement une partie d'un bloc. Cette technique prsente des
avantages et des inconvnients. Essentiellement, l'avantage est la rapidit engendre par la
simplification des mcanismes d'allocation et de libration d'espace disque. L'inconvnient majeur est
videmment qu'on perd de la place pour tous les fichiers qui ne tiennent pas dans un nombre entier de
blocs, puisqu'il faut allouer un bloc supplmentaire qui sera partiellement utilis. En moyenne, on perd
la moiti d'un bloc par fichier, ce qui ne peut tre rduit qu'en limitant la taille des blocs une valeur
relativement faible.
Note : Les systmes de fichiers Unix grent l'allocation et la libration des blocs de manire toujours
trouver le meilleur bloc allouer pour crer un fichier. Ainsi, ils limitent la fragmentation des fichiers
son strict minimum, ce qui rend inutiles les programmes de dfragmentation de systmes de fichiers.
De ce fait, la question de la dfragmentation, souvent pose par les nouveaux utilisateurs de Linux, ne
se pose pas : en pratique, les systmes de fichiers Unix ne se fragmentent pas (si, si, c'est vrai).
Deuximement, les systmes de fichiers Unix utilisent des structures de donnes appeles inodes
pour dfinir les fichiers. Une inode contient la plupart des informations d'un fichier, savoir :
son propritaire et le groupe d'utilisateurs de son propritaire ;
ses droits d'accs ;
ses dates de cration, modification, accs ;
les blocs qu'il utilise ;
d'autres informations utilises en interne.
Dans le cas d'EXT2 et EXT3, ces inodes sont stockes dans une table du systme de fichiers, ce qui
permet d'accder trs rapidement toutes ces informations et de retrouver galement trs simplement
le ou les blocs contenant les donnes du fichier. Le problme est ici que cette table a un nombre
d'entres limit, ce qui implique un nombre limit de fichiers dans le systme de fichiers. Plus cette
table est grande, plus le nombre de fichiers que l'on pourra crer sera grand, et inversement. Il faut
donc trouver un compromis entre la taille de cette table et le nombre de fichiers que l'on est susceptible
de crer. Il va de soi qu'en gnral, les grandes partitions contiennent plus de fichiers, mais que la table
d'inodes peut galement avoir une taille suprieure sans que cela soit drangeant. Par consquent, il est
relativement courant de dfinir le taux d'inode par bloc ou, autrement dit, la proportion d'inodes dans
la partition par rapport sa taille.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 36

Toutes ces informations (blocs libres et inodes) sont sauvegardes plusieurs endroits dans la
partition, ce qui permet de disposer en permanence de copies de la structure du systme de fichiers. De
cette manire, il est relativement simple de rparer un systme de fichiers endommag, mme si les
donnes sont dtruites en raison d'une erreur matrielle (secteurs dfectueux sur le disque dur par
exemple). Chacune de ces copies s'appelle 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 d'un systme de fichiers EXT2 ou EXT3, il est ncessaire d'indiquer la taille d'un
bloc en octets. Cette taille doit imprativement tre un multiple de la taille d'un secteur du support
physique de donnes, parce que les blocs ne peuvent contenir qu'un nombre entier de secteurs. Pour un
disque dur, la taille des secteurs est fixe 512 octets, ce qui fait que la taille d'un bloc est au moins de
512 octets. De mme, il faut spcifier le nombre d'inodes de la partition. Il est possible de spcifier ce
nombre soit directement, ou d'indiquer seulement le nombre d'octets de la partition par inode. Le
nombre total d'inodes utilis sera alors calcul partir de ce nombre d'octets et de la taille de la
partition. Bien entendu, le nombre maximal d'inodes possibles est le nombre total de blocs, puisque
tout fichier non vide requiert au moins un bloc et que chaque inode caractrise un fichier. 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).
La plupart des systmes de fichiers Unix, comme EXT3 (mais pas EXT2), grent prsent, en plus de
tout ce que nous avons vu prcdemment, un journal contenant les oprations raliser de manire
transactionnelle sur le disque dur. Les oprations du journal sont excutes de telle sorte que la
structure du systme de fichiers reste cohrente en toutes circonstances. Cela implique que le systme
de fichiers est toujours valide, mme si une panne de courant se produit pendant une opration disque.
Voyons prsent la syntaxe de la commande mke2fs :
mke2fs [-j] fichier

fichier est le nom du fichier spcial de priphrique reprsentant la partition sur laquelle le systme de
fichiers doit tre cr. Ce nom est le nom du disque dur, suffix 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. L'option -_ quant elle est facultative. Lorsqu'elle est
utilise, le systme de fichiers cr est un systme de fichiers EXT3. Il est recommand d'utiliser cette
option pour tous les systmes de fichiers dont on voudra garantir la cohrence, par exemple pour les
systmes de fichiers 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 fichiers vido).
Note : Le systme de fichiers EXT3 utilise les mmes structures de donnes que le systme de fichiers
EXT2. Il est donc parfaitement compatible avec ce dernier, et un systme de fichiers EXT3 peut tre
utilis comme un systme de fichiers EXT2. En ralit, les mcanismes de journalisation peuvent tre
activs ou non lors de l'opration de montage du systme de fichiers, en fonction du type de systme
de fichiers indiqu la commande de montage. Nous dtaillerons la manire de monter les systmes
de fichiers dans la Section 6.6.2 et dans la Section 6.6.5.
Pour les mmes raisons, il est possible de convertir un systme de fichiers EXT2 en systme de
fichiers EXT3 a posteriori, l'aide de l'option -_ de la commande tune2fs. Cette commande permet
d'activer et de dsactiver des fonctionnalits complmentaires pour ces systmes de fichiers, dont la
journalisation fait partie.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 37

Invoque sans autres options, la commande mke2fs prend des valeurs par dfaut pour tous les
paramtres du systme de fichiers cr, mais vous pouvez galement spcifier d'autres valeurs. La
taille des blocs peut tre indique en octets avec l'option suivante :
mke2fs [-j] -b taille fichier

o taille reprsente la taille d'un bloc en octets. De mme, le nombre d'octets par inode peut tre
prcis avec l'une des options -i :

mke2fs [-j] -i octets fichier

o octets est le rapport de la taille de la partition en octets par le nombre d'inodes crer. Il est
possible d'indiquer directement ce nombre avec la commande suivante :

mke2fs [-j] -N nombre fichier
Enfin, sachez que l'option -c permet de demander mke2fs d'effectuer une vrification des secteurs
dfectueux du disque dur avant de crer le systme de fichiers. Il est fortement recommand d'utiliser
cette option lors de la premire cration d'un systme de fichiers.
3.4.5. Cration de la partition de swap
Comme on l'a vu prcdemment, Linux peut utiliser une partie du disque dur pour y stocker les
donnes temporairement inutilises afin de librer de l'espace mmoire lorsqu'il manque de mmoire
vive. Cette opration permet de continuer travailler, mme si la machine ne dispose pas de
suffisamment de mmoire vive pour excuter tous les processus dont elle a la charge.
videmment, l'inconvnient de cette mthode est la dgradation des performances, mais c'est un bon
compromis si l'on considre le prix du mga-octet de mmoire par rapport celui des disques durs
d'une part, et le fait qu'il vaut mieux parvenir faire son travail, mme lentement, que de ne pas le
faire du tout.
L'espace disque consacr par Linux pour ce stockage temporaire est appel swap , du terme anglais
to swap qui fait rfrence l'change des donnes de la mmoire vers le disque dur (et
inversement, lorsqu'elles sont recharges en mmoire). Linux est capable de grer plusieurs formes de
swap. Il est capable d'utiliser des fichiers d'change, qui sont stocks dans un systme de fichiers, ou
les partitions de swap. Ces dernires ont l'avantage d'tre bien plus rapides, puisque le noyau n'a pas
se proccuper de la structure du systme de fichiers lors des oprations de swap (qui, rappelons-le,
constituent dj un ralentissement notable de la machine). En revanche, elles ont l'inconvnient majeur
d'tre trs contraignantes, puisqu'elles 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 fichiers d'change que l'on peut rajouter ultrieurement.
Nous ne dcrirons que la manire de crer une partition de swap, car les fichiers d'change ne
constituent plus le meilleur compromis avec les tailles de disques que l'on rencontre de nos jours.
Bien entendu, le programme d'installation de votre distribution prend certainement dj en charge la
cration des partitions de swap. Il est donc recommand, encore une fois, d'utiliser ce programme,
mme si la description qui suit vous permettra de comprendre ce dont il s'agit.
Les partitions de swap peuvent tre cres, comme toutes les partitions, l'aide du programme fdisk.
En fait, la seule distinction entre une partition de swap et une partition rserve un systme de
fichiers est tout simplement son identificateur. Comme on l'a dj vu lors du partitionnement du
disque, l'identificateur utilis pour les partitions de systmes de fichiers Linux est 83, et celui pour les
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 38

partitions de swap est 82. Vous devrez donc affecter cet identificateur 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 c'est cet emplacement que le taux de transfert est le plus lev (et donc c'est cet
emplacement qu'on obtiendra les meilleures performances en cas de manque de mmoire vive).
Une fois cre, la partition de swap peut tre prpare pour que le noyau puisse l'utiliser. Cette
prparation revient peu prs formater un systme de fichiers, ceci prs que les structures de
donnes crites dans la partition de swap sont beaucoup plus simples car il ne s'agit plus ici de stocker
une arborescence complte de fichiers. La commande mkswap permet de prparer les partitions pour
tre utilises en tant que partition de swap. Elle s'utilise 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 fichier que sur une partition.
Lorsque la partition aura t prpare pour le swap, il est possible de demander Linux de l'utiliser
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 d'arrter le swapping sur une partition :

swapoff partition
Normalement, vous n'aurez jamais utiliser ces commandes manuellement. Le programme
d'installation de votre distribution configure 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
configuration dynamique permet d'ajouter temporairement un fichier d'change si les besoins s'en font
sentir, sans avoir redmarrer la machine.
3.4.6. Installation des composants de base
Si vous tes arriv jusqu'ici, vous avez fini les oprations les plus risques et sans doute les plus
difficiles. 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
aujourd'hui de programmes d'installation volus, qui simplifient beaucoup le travail. Les oprations
que vous allez raliser prsent sont donc plus simples, et certainement moins dangereuses.
L'ordre logique est videmment de commencer par installer les couches les plus basses du systme,
donc en particulier le noyau. Cependant, comme on le verra plus tard, le noyau ne permet pas
rellement d'utiliser le systme, et il vous faudra installer d'autres couches logicielles. Les principales
sont les suivantes :
le shell (environnement utilisateur en mode texte) ;
les outils et applications systmes en ligne de commande (utilisables via le shell) ;
l'environnement graphique X Window, constitu d'un serveur d'affichage et d'applications
graphiques simples ;
un environnement de bureau (environnement utilisateur complet en mode graphique) ;
et enfin, les applications de haut niveau (celles que vous utiliserez au jour le jour).
Les programmes d'installation cherchent gnralement installer en premier ce qu'on appelle le
systme de base (ensemble constitu du noyau, des bibliothques systmes, du shell et des outils
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 39

d'administration fondamentaux). Je vous suggre de vous assurer que ce systme de base est
correctement configur, avant de vous lancer dans l'installation des couches suprieures telles que
XWindow.
C'est videmment l'installation et la configuration du systme de base qui est la partie la plus
technique. Une fois ces oprations ralises, la suite ne pose gnralement pas de problme particulier.
De nos jours, l'installation de XWindow se fait de manire relativement simple. Lorsque vous y serez
parvenu, vous pourrez enfin installer les applications. L encore, lorsque le systme est bien configur,
l'installation des applications est une tche relativement facile et se fait rapidement.
Ce document ne traitera pas en dtail de l'installation des applications, car il y en a trop pour que l'on
puisse donner des informations valides pour toutes les applications. Quelques rgles gnrales seront
malgr tout donnes, car elles peuvent s'appliquer pour certaines applications.
Toutes les distributions organisent les diffrents composants logiciels qu'elles fournissent en
paquetages ( package en anglais). Ainsi, l'installation du systme se fait par groupes homognes de
fichiers, et le regroupement dans un paquetage est gnralement une dpendance forte (en pratique, ce
sont les fichiers d'une mme application). En installant un paquetage, on installe finalement un logiciel
particulier. Cependant, certains paquetages dpendent d'autres paquetages, par exemple, les
paquetages contenant le systme de base sont videmment utiliss par tous les autres paquetages. Les
programmes d'installation grent relativement bien les dpendances et les conflits entre paquetages, si
bien que l'installation peut maintenant se faire sans trop de problmes.
Afin d'organiser un peu tous ces paquetages, les distributions les trient souvent par sries . Une
srie n'est rien d'autre qu'un ensemble de paquetages regroups par domaine fonctionnel. Cela signifie
que l'on 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 signifie
absolument pas que tous les paquetages de la srie doivent tre installs pour obtenir une
fonctionnalit donne, mais que les logiciels qui s'y trouvent ont plus ou moins trait cette
fonctionnalit. En fait, il peut mme y avoir redondance ou conflit entre deux paquetages d'une mme
srie. Dans ce cas, il faut choisir l'un ou l'autre, selon ses besoins personnels.
Certains paquetages sont indispensables pour le systme, d'autres 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 qu'il est impensable d'installer 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 qu'il 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, afin qu'elle
puisse toujours tre en tte de liste dans les programmes d'installation. Cette srie comprend au moins
les paquetages des commandes Unix de base, du shell, du programme d'installation et de tous les
fichiers ncessaires au fonctionnement du systme (fichiers de configuration, scripts et bibliothques
partages). Tant que les programmes de cette srie sont intacts et fonctionnels, le systme est
utilisable. S'il en manque, les problmes peuvent survenir tout moment : de l'absence ou
l'indisponibilit de la documentation l'impossibilit complte de dmarrer le systme.
Le choix des paquetages installer est crucial mais non dfinitif. En effet, si vous avez install un
paquetage dont vous n'avez pas ou plus besoin, rien ne vous empche de le supprimer par la suite. De
mme, si vous vous apercevez que vous avez oubli d'installer un paquetage dont vous avez besoin,
vous pouvez l'installer ultrieurement.
Il n'est 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 d'aides du programme d'installation. Cependant, les paquetages
dont vous aurez certainement besoin pour poursuivre l'installation sont sans doute les suivants :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 40

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 l'esprit que dans le monde du logiciel libre, les programmes sont souvent distribus sous la
forme de fichiers sources et que vous aurez sans doute besoin des outils de dveloppement pour les
compiler et les installer. Veillez donc inclure d'office tous ces outils, mme si vous ne dsirez pas
programmer personnellement. Bien entendu, vous pourrez revenir ultrieurement dans le programme
d'installation et rinstaller un paquetage si vous l'avez oubli pendant la phase d'installation.
3.4.7. Configuration du gestionnaire d'amorage
Lorsque vous aurez install votre systme de base, vous devrez faire en sorte qu'il puisse dmarrer.
Pour cela, il existe plusieurs possibilits, les principales tant les deux suivantes :
soit vous dmarrez partir d'une disquette ou d'un CD d'amorage ;
soit vous utiliser un gestionnaire d'amorage.
Il va de soi que c'est la deuxime solution qui est recommande. Cependant, la premire solution
pourra tre utile si d'aventure votre MBR se trouvait tre cras ou endommag. Seule l'utilisation des
gestionnaires d'amorage de Linux et de Windows NT/2000/XP sera dcrite ici. Le gestionnaire
d'amorage de Windows Vista ne sera pas dcrit.
Le gestionnaire d'amorage 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,
Windows NT/2000/XP/Vista et OS/2. Linux dispose galement d'un autre gestionnaire d'amorage
galement trs performant : le GRUB (abrviation de l'anglais GRand Unified Bootloader ).
Vous tes libre de choisir celui que vous voulez. Le GRUB est quelque peu plus moderne que LILO,
mais le choix du gestionnaire d'amorage est ici une question de got. Windows NT, Windows 2000 et
Windows XP disposent galement d'un gestionnaire d'amorage nomm NTLDR , capable de
dmarrer d'autres systmes d'exploitation. Vous aurez donc galement la possibilit d'utiliser ce
gestionnaire la place de LILO ou du GRUB si un de ces systmes est install sur votre machine. En
revanche, Windows Vista utilise un nouveau gestionnaire d'amorage diffrent de NTLDR, et qui est
techniquement beaucoup plus difficile utiliser que les autres gestionnaires d'amorage. Ce
gestionnaire ne sera donc pas dcrit dans ce document, rfrez vous la documentation Microsoft si
vous voulez installer Linux en marge de Vista, ou utilisez tout simplement l'un des gestionnaires
d'amorage de Linux.
Quel que soit le gestionnaire d'amorage que vous dsirez utiliser, il vous faudra activer la partition
sur laquelle il est install. Cette opration peut tre ralise l'aide de l'utilitaire fdisk et a dj t
dcrite dans la Section 3.2.1. Cela permettra au bootstrap loader de slectionner le secteur de boot de
cette partition et de lancer le gestionnaire d'amorage qui y est install. Bien entendu, cela suppose que
ce gestionnaire soit install sur cette partition, ce qui est normalement le cas (rappelons qu'il n'est en
gnral pas conseill d'installer le gestionnaire d'amorage directement sur le MBR du disque dur).
3.4.7.1. Ralisation d'un multiboot avec LILO
LILO est un gestionnaire d'amorage extrmement performant, puisqu'il permet de dmarrer Linux
comme tout autre systme d'exploitation trs simplement, en donnant le nom du systme lancer lors
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 41

de l'amorage. Il est bien entendu possible de lancer un systme par dfaut, et de donner un temps
d'attente avant de choisir ce systme si l'utilisateur n'intervient pas.
LILO est constitu de deux parties. La premire partie peut s'installer sur le secteur d'amorage
principal du disque dur ou sur le secteur de boot de n'importe quelle partition. Comme on l'a dj
indiqu plus haut, il est fortement recommand d'installer cette partie de LILO sur le secteur de boot
de la partition racine de Linux, afin d'viter qu'elle 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 d'exploitation grs. Bien entendu, la premire partie est capable de retrouver directement la
deuxime sur le disque dur de manire autonome car, lors de l'amorage, les systmes de fichiers de
Linux ne sont pas encore chargs.
LILO utilise le fichier de configuration /etc/lilo.conf pour y retrouver tous ses paramtres de
configuration. Ce fichier contient la description des diffrents systmes d'exploitation que LILO doit
proposer au dmarrage. Vous pourrez consulter ce fichier avec un des nombreux diteurs de fichiers
texte prsents sur toute installation de Linux. Toutefois, si vous installez Linux pour la premire fois,
il est possible que vous n'en 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 l'environnement
utilisateur avant de vous lancer dans l'dition de ce fichier. Il existe bon nombre d'diteurs graphiques
ou en mode texte et il est hors de question de tous les dcrire ici. Toutefois, toutes les distributions
Linux installent un diteur historique, j'ai nomm l'affreux vi . Cet diteur n'est pas du tout
convivial pour les nouveaux utilisateurs, mais il dpannera toujours quand tous les autres seront
inutilisables ou inaccessibles. En fait, on finit mme par l'apprcier l'usage...
La manire d'utiliser vi sera dcrite ultrieurement, dans le chapitre donnant les notions de base d'Unix
la Section 5.8. Vous devriez donc jeter un coup d'il cette section si vous dsirez modifier
immdiatement le fichier /etc/lilo.conf, ou revenir ultrieurement la prsente section une fois que
vous vous serez familiaris avec un autre diteur.
Quoi qu'il en soit, les options les plus importantes du fichier /etc/lilo.conf sont les suivantes :
l'option boo, qui permet d'indiquer sur quel secteur d'amorage LILO doit s'installer. Cette
option suit la syntaxe suivante :
boot = destination
o destination est le nom d'un fichier spcial de priphrique sur lequel LILO va s'installer. Ce
nom peut identifier un disque dur (comme par exemple /dev/hda), auquel cas LILO va
s'installer sur le MBR de ce disque (c'est--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 s'installe sur le secteur de boot de cette partition (la deuxime partition du premier
disque dur IDE dans notre exemple). Rappelons qu'il est recommand d'installer LILO sur le
secteur de boot de la partition racine de Linux ;
l'option read-on1y permet de demander au noyau de monter le systme de fichiers racine
en lecture seule lors du dmarrage. Cette option est ncessaire pour que les scripts de
dmarrage du systme puissent effectuer les vrifications du systme de fichiers de cette
partition si ncessaire. La partition sera remonte en lecture et en criture une fois ces
vrifications ralises ;
l'option prompt, qui permet LILO de demander le systme lancer chaque dmarrage.
Cette option force donc l'apparition du message d'invite de LILO au dmarrage : LILO
boot: auquel on pourra rpondre en tapant le nom de la configuration lancer ;
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 42

l'option imeou, qui permet de fixer un dlai au del duquel LILO lancera la premire
configuration dfinie dans le fichier 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 ;
l'option 'eyab1e, qui donne la possibilit de spcifier un fichier de tradution des codes de
caractre envoys par le BIOS (qui suppose gnralement que le clavier utilise la disposition
d'un clavier amricain) en les codes de caractre qui seraient envoys par un BIOS localis.
Cette option permet donc de redfinir 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 fichier de traduction de clavier pour LILO. Un tel fichier peut
tre gnr par le script keytab-lilo.pl l'aide des fichiers de dfinition 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 fichier de dfinition de clavier Linux pour la disposition utilise par le
BIOS (donc, effectivement, la disposition d'un clavier amricain en gnral), local est le nom
du fichier de dfinition de clavier pour la disposition du clavier rellement utilise, et fichier
est le nom du fichier de traduction des codes gnrer. Par exemple, la cration de ce fichier
pour le clavier franais se ferait avec la commande suivante :
keytab-lil.pl us fr-latin1 > /boot/fr-latin1.klt
Remarquez que cette technique de traduction de clavier souffre d'un inconvnient majeur,
puisque les combinaisons de touches qui ne sont pas valides dans la disposition amricaine des
claviers ne peuvent pas tre converties. Si l'une de ces combinaisons doit tre utilise, il faut
abandonner l'ide d'utiliser l'option 'eyab1e.
La suite du fichier lilo.conf dcrit les diffrentes configurations que LILO peut lancer. Les sections de
configuration 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
fichier spcial de priphrique contenant le systme de fichier racine et nom est le nom de la
configuration tel qu'il devra tre saisi l'invite de LILO. L'exemple 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 configuration permettant de lancer un autre systme d'exploitation
que Linux (DOS ou Windows par exemple), vous pouvez utiliser la possibilit de passer le relais au
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 43

chargeur de ces systmes, qu'il s'agisse d'un simple secteur de boot ou d'un gestionnaire d'amorage
complet. Cela se fait avec la syntaxe suivante :
other = partition
table = disque
loader = relais
label = nom

o partition est la partition sur laquelle le secteur de boot de l'autre systme est install, disque est le
disque dur contenant la table des partitions utilise par ce systme, relais est le nom d'un chargeur
spcial permettant de simplement passer la main au chargeur du systme, et nom est le nom de la
configuration. Le chargeur utiliser pour demander LILO de passer le relais au chargeur de l'autre
systme d'exploitation est le chargeur contenu dans le fichier chain.b de LILO. Ce fichier se trouve
gnralement dans le rpertoire /boot/, aussi doit-on spcifier /boot/chain.b pour le champ relais.
Note : Prenez garde au fait que Windows NT/Windows 2000/XP installent NTLDR dans la premire
partition laquelle ils 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 configuration 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 d'exploitation 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 s'occupent de leurs systmes respectifs, mais il s'agit l d'une opration
extrmement technique d'une part, et qui ne concerne absolument pas Linux d'autre part. Cela ne sera
donc pas dcrit dans ce document. Il existe toutefois des documents sur Internet qui dcrivent la
manire de procder et je vous invite vous y rfrer (avec une prudence extrme cependant).
L'exemple 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 44

L'installation de LILO est trs simple une fois que l'on a crit le fichier lilo.conf. En effet, il suffit tout
simplement de taper la commande suivante :
lilo [-L]

L'option -L permet de demander LILO d'utiliser le mode d'adressage LBA pour accder au disque
dur pendant la phase d'amorage. Cette option est ncessaire si vous disposez d'un grand disque dur et
que certaines partitions disposant de systmes lancer sont situes au del du cylindre 1024. Il est
recommand de l'utiliser systmatiquement tant donn les tailles des disques durs actuels.
Note : Comprenez bien que si votre BIOS est incapable d'utiliser le mode LBA ou le si bootstrap
loader est incapable d'utiliser ce mode, cette option ne vous sera d'aucune utilit. En effet, dans ce cas,
le bootstrap loader ne parviendrait mme pas charger le secteur de boot de la partition Linux. C'est
pour cette raison qu'il 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 fichier lilo.conf.
Une fois LILO install correctement, il affichera l'invite de dmarrage lors du dmarrage de la
machine : LILO boot:
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 d'attente dans le fichier de configuration de
LILO, la premire configuration sera lance automatiquement aprs ce dlai.
LILO permet de spcifier des paramtres de dmarrage complmentaires pour Linux la suite du nom
de la configuration qui permet de le lancer. Ces paramtres servent principalement renseigner le
noyau sur la configuration matrielle (en particulier les ports d'entre/sortie et les lignes d'interruption
des priphriques non Plug and Play), pour le cas o il ne parviendrait pas les dterminer
automatiquement. L'un des paramtres les plus intressants est sans doute mem, qui permet d'indiquer
au noyau la taille de la mmoire vive dont dispose l'ordinateur. Ce paramtre peut tre ncessaire si
vous disposez de plus de 64 Mo de mmoire, parce que les fonctions du BIOS ne permettent pas
d'indiquer les tailles de mmoire plus grandes (la plupart des BIOS rcents n'ont 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 d'enregistrer ces paramtres dans le fichier de configuration de LILO afin
de ne pas avoir les saisir chaque dmarrage. Pour cela, il suffit d'indiquer le paramtre de
dmarrage du noyau dans une ligne append de la section de configuration de Linux :
append="paramtre"
Ainsi, la section de configuration de Linux du fichier 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"
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 45

La liste des paramtres que l'on 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
configuration du systme.
3.4.7.2. Ralisation d'un multiboot avec le GRUB
Le GRUB (abrviation de l'anglais GRand Unified Bootloader ) est le gestionnaire d'amorage
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 dfini
pour le Hurd. Bien entendu, il sait aussi amorcer les systmes Linux, qui n'utilisent pas ce protocole,
ainsi que la plupart des autres systmes d'exploitation en passant le relais leurs propres gestionnaires
d'amorage.
En fait, le GRUB fournit la possibilit de contrler totalement l'amorage de son systme par
l'intermdiaire d'un interprteur de commandes simplifi. Il est possible, par l'intermdiaire de cet
interprteur de commandes, d'effectuer nombre d'oprations dans le but de charger un noyau de
systme d'exploitation et de l'amorcer. Bien entendu, ces commandes peuvent tre crites dans un
fichier de configuration afin d'automatiser le processus de chargement.
Le GRUB est normalement install dans le rpertoire /boot/grub/. Ce rpertoire contient, outre les
fichiers binaires du GRUB lui-mme, son fichier de configuration. Ce fichier se nomme normalement
menu.lst, en raison du fait qu'il permet de dfinir les diffrentes configurations correspondantes aux
systmes d'exploitation charger et qui apparatront dans le menu de dmarrage lors de l'amorage de
la machine.
Contrairement LILO, qui enregistre l'emplacement des fichiers des diffrents noyaux charger dans
une liste de blocs du disque dur, le GRUB sait interprter les systmes de fichiers classiques de Linux.
En particulier, il est capable de retrouver son fichier de configuration et les fichiers images des noyaux
Linux dans les systmes de fichiers FAT, EXT2/EXT3 et ReiserFS. Cette particularit fait qu'il n'est
pas ncessaire, lorsqu'on modifie le fichier de configuration menu.lst, de rinstaller le GRUB.
Tout comme le fichier de configuration de LILO, le fichier menu.lst se compose d'une partie contenant
les options globales et d'une ou plusieurs parties contenant la description des diffrents systmes
d'exploitation proposer au dmarrage. Les options gnrales les plus utiles sont les suivantes :
l'option defau1, qui permet de spcifier la configuration par dfaut charger. Cette option
doit tre suivie du numro de cette configuration. Les configurations sont numrotes partir
de 0, dans leur ordre d'apparition dans le fichier de configuration ;
l'option imeou, qui permet de spcifier le dlai d'attente avant que la configuration par
dfaut spcifie par l'option defau1 ne soit lance.
Les configurations spcifiques aux systmes d'exploitation suivent la syntaxe suivante :
title titre
root partition
kernel noyau options

o titre est le titre de la configuration tel qu'il 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 fichier
image de ce noyau dans cette partition. Attention, ce chemin est dfini dans la partition elle-mme et
peut donc tre diffrent du chemin utilis sous Linux. En effet, il faut dfinir ce chemin par rapport au
point de montage de la partition, faute de quoi le GRUB ne retrouverait pas le fichier image du noyau
charger.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 46

Comme le GRUB n'est pas un chargeur spcifique Linux mais a t crit au contraire avec comme
principal objectif une gnricit absolue, la manire de spcifier 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 l'ordre 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 spcifier des options de dmarrage qui devront tres
fournies au noyau. Ces options devront tre spcifies immdiatement aprs le nom de l'image du
noyau. Comme vous pouvez le constater, la dfinition d'une configuration de dmarrage pour un
systme Linux est trs simple, puisqu'il suffit quasiment de donner la ligne de commande pour lancer
ce noyau !
Par exemple, pour charger le noyau /boot/vmlinuz d'un systme situ sur la deuxime partition du
premier disque, la configuration suivante doit tre dfinie :
title Linux
root (hd0,1)
kernel /boot/vmlinuz mem=256M
Cet exemple prsente galement comment spcifier la taille de la mmoire disponible dans la machine
(cela n'est normalement pas ncessaire avec les BIOS rcents et avec le GRUB). Il suffit simplement
de fournir des options en ligne de commande au noyau pour cela. Beaucoup d'autres options peuvent
tre fournies de cette manire au noyau. En particulier, des options peuvent tre fournies aux pilotes de
priphriques si ncessaire (par exemple s'il y a des conflits d'interruptions ou de ressources entre
plusieurs priphriques). Ces options seront prsentes au fur et mesure dans la suite de ce
document.
Bien entendu, le GRUB est capable de charger le secteur de boot d'une partition afin de passer le relais
au gestionnaire d'amorage d'un autre systme d'exploitation. Pour cela, il faut utiliser la commande
chainloader, plutt que la commande kernel, dans la description de la configuration de dmarrage de
ce systme. La forme gnrale d'une configuration 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
partition indique par la commande root et d'excuter le gestionnaire d'amorage normalement stock
dans ce secteur. Comme pour les configurations Linux, la syntaxe utilise pour spcifier la partition o
ce secteur est situ est la syntaxe du GRUB et non celle utilise sous Linux.
Le fichier de configuration d'exemple suivant correspond au fichier de configuration 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 :

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 47

# 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
L'installation du GRUB sur une nouvelle machine ne pose quant elle pas de problme particulier. Il
suffit de s'assurer que le fichier de configuration menu.lst se situe bien dans le rpertoire /boot/grub/,
de mme que les fichiers binaires du GRUB. Ces fichiers sont respectivement les fichiers stage1,
stage2 et tous les fichiers *_stage1_5. S'ils ne s'y trouvent pas, vous pourrez les copier partir du
rpertoire /usr/share/grub/i386-pc/, dans lequel le programme d'installation du GRUB les place par
dfaut.
Lorsque tous les fichiers sont en place, il n'y a plus qu' lancer le GRUB en mode interactif avec la
commande suivante :
grub

et dfinir le secteur o il doit installer son fichier d'amorage principal stage1 (c'est--dire dans le
secteur de boot d'une 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 s'agit 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 d'amorage du GRUB. Ces deux informations doivent suivre la syntaxe utilise par le
GRUB pour spcifier 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 n'est pas le cas
pour vous, vous devrez modifier la partition spcifie dans la commande root. Vous pourrez quitter le
grub avec la commande quit une fois l'installation termine.
3.4.7.3. Ralisation d'un multiboot avec NTLDR
Le gestionnaire d'amorage de Windows NT, Windows 2000 et XP se nomme NTLDR . Ce
gestionnaire d'amorage permet de dmarrer ces systmes, bien entendu, mais galement les autres
systmes d'exploitation les plus courants, dont Linux. Cette section ne traitera bien entendu que de la
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 48

manire d'utiliser NTLDR pour dmarrer Linux, pour de plus amples informations sur la manire
d'ajouter les autres systmes d'exploitation, veuillez consulter la documentation de Microsoft.
Tout comme LILO et le GRUB, NTLDR dispose d'un fichier de configuration qui permet de dcrire
les diffrentes options de son menu de dmarrage. Il s'agit du fichier boot.ini, qui est normalement
plac la racine du disque o NTLDR est install. Il s'agit donc gnralement du rpertoire racine du
disque C:\.
Le fichier boot.ini contient la dfinition du systme d'exploitation lancer par dfaut et du dlai
d'attente attendre avant de le slectionner. Ces deux informations sont crites dans la section [boot
loader] du fichier et sont introduites respectivement par les options defau1 et imeou. La valeur
de l'option defau1 doit tre l'une des entres de la section [operating systems], qui contient la
dfinition de tous les systmes d'exploitation que NTLDR devra proposer au dmarrage.
La syntaxe des entres pour les systmes d'exploitation dans la section [operating systems] est la
suivante :
emplacement = "Nom"

o emplacement est la description de l'emplacement o se trouve le systme d'exploitation, et Nom
est le nom avec lequel ce systme devra apparatre dans le menu de dmarrage de NTLDR. Cette
syntaxe est trs simple, mais pour les systmes NT4, Windows 2000 et XP, la dfinition de
l'emplacement du systme est assez complique. En effet, elle ncessite de dfinir compltement le
disque physique et sa partition, ainsi que le rpertoire du systme. Pour les autres systmes
d'exploitation, le plus simple est de spcifier un fichier contenant l'image du secteur de boot de leur
partition, et de laisser leur chargeur prendre en charge leur amorage.
Pour cela, il faut bien entendu disposer d'un tel fichier. Il faut donc copier le premier secteur de la
partition du systme dans un fichier 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 l'enregistrer dans le fichier
linux.sec. Vous pourrez ensuite transfrer ce fichier dans le rpertoire C:\ de Windows, soit en passant
par une partition FAT, soit tout simplement l'aide d'une disquette (rappelons que le systme de
fichiers NTFS n'est utilisable qu'en lecture seule sous Linux).
Une fois ce fichier obtenu, vous pourrez simplement ajouter la ligne suivante dans votre fichier
boot.ini :
C:\linux.sec="Linux"
Le contenu de votre fichier 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"
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 49

Vous devriez alors pouvoir dmarrer Linux directement partir du menu de dmarrage de NTLDR.
Note : Prenez soin utiliser un nom court pour le fichier contenant le secteur de Linux (c'est--dire un
nom ne comprenant pas plus de huit caractres et une extension d'au plus trois caractres). 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 d'amorage NTLDR ne puisse pas localiser le fichier si vous ne
respectez pas cette rgle.
3.5. Installation de la Mandriva 2007
Nous allons prsenter dans cette section la procdure d'installation de la distribution Mandriva 2007.
Comme nous allons le voir, cette distribution simplifie rellement la procdure d'installation et vise
tre particulirement conviviale.
L'installation peut tre dbute simplement en plaant le DVD d'installation dans le lecteur de DVD de
l'ordinateur et en configurant le BIOS pour qu'il dmarre sur ce DVD. Les premiers crans du
programme d'installation graphique apparaissent alors :



DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 50


Le premier cran vous permettra de lancer l'installation proprement dite. Vous pouvez changer la
langue du systme d'installation ce niveau en appuyant sur la touche F2 , ainsi que des options
complmentaires de dmarrage avec la touche F3 . Une fois ceci fait, vous pouvez choisir l'option
Insa11aion pour poursuivre.
Le deuxime cran vous permettra cette fois de choisir la langue du systme d'exploitation (et non
seulement celle du programme d'installation). Les deux crans qui suivent vous demandent
respectivement d'accepter la licence d'utilisation et de choisir le type de clavier que vous voudrez
utiliser.
Le programme d'installation vous invite ensuite choisir un profil de scurit pour votre systme
Linux, et crer les partitions l'aide de son outil de partitionnement interactif





DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 51




Le niveau de scurit standard convient pour la plupart des utilisateurs. Les niveaux de scurit
suprieurs peuvent ncessiter des comptences d'administration plus leves, et ne sont a priori pas
ncessaires pour un particulier.
Le partitionnement peut tre ralis manuellement ou automatiquement. Il est recommand de choisir
la mthode manuelle, quitte accepter les valeurs proposes par dfaut, ne serait-ce que pour savoir ce
que fait l'outil d'installation. Dans la suite de ce texte, le partitionnement a t ralis manuellement.
On voit sur le troisime cran l'outil de partitionnement. La cration d'une partition se fait tout
simplement, en cliquant d'abord sur l'espace libre devant la contenir, puis sur le type de la partition.
Les options de la partition peuvent ensuite tre modifies. Le quatrime cran prsente la cration de
la partition d'change (swap).
Les deux crans suivants prsentent la manire de crer les partitions racine et /home/. Le troisime
cran prsente le plan de partitionnement final, et le quatrime cran la demande de confirmation
finale aprs laquelle la table des partitions sera crite sur le disque dur :



CREE PAR DOLLARSOFT



Il faut ensuite indiquer le support d'installation utiliser (dans notre cas, c'es
choisir les logiciels installer. La copie des fichiers a ensuite lieu, cette opration peut prendre un
certain temps :

DOCUMENT SUR LINUX




Il faut ensuite indiquer le support d'installation utiliser (dans notre cas, c'est le DVD d'installation), et
choisir les logiciels installer. La copie des fichiers a ensuite lieu, cette opration peut prendre un

Page 52
t le DVD d'installation), et
choisir les logiciels installer. La copie des fichiers a ensuite lieu, cette opration peut prendre un
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 53





Une fois l'installation termine, le systme vous demande un mot de passe pour l'administrateur. Vous
pourrez ensuite crer les utilisateurs standards (cette tape est imprative). En revanche, vous pourrez
activer la fonctionnalit de connexion automatique au dmarrage de la machine si vous n'utilisez votre
machine qu' titre personnel





DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 54






Vient ensuite la configuration du matriel. Vous devez dfinir le type de souris, indiquer si vous
utilisez une carte son ISA ou non (le troisime cran indique que la configuration des priphriques
audio n'est pas encore totalement intgre dans le programme d'installation et doit tre termine aprs
l'installation avec un outil spcifique aux pilotes de son), et le type de carte graphique utilise pour
l'affichage graphique :




DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 55







Le programme d'installation exige des informations complmentaires pour l'interface graphique. Vous
devez indiquer si vous voulez qu'elle soit active au dmarrage ou non et si vous voulez que les
fonctionnalits de transparence soient actives (premier cran). Vous devez galement indiquer l'cran
que vous utilisez et la rsolution graphique utilise (deuxime et troisime cran). Le dernier cran
vous propose de tester la configuration graphique, ce qui est recommand :



DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 56






Vient ensuite la configuration du rseau. La solution la plus simple pour mettre en rseau un
ordinateur de nos jours est d'utiliser une carte Ethernet ou le port Ethernet intgr la carte mre
(toutes les cartes mre rcentes en disposent d'un). Cela permet de raliser un petit rseau familial, et
de pouvoir utiliser un modem/routeur pour se connecter Internet de manire quasi automatique et
scurise.
C'est cette configuration qui est dcrite dans la suite : le premier et le deuxime crans permettent de
choisir le type et le modle de l'adaptateur rseau utilis, et le troisime cran permet d'activer le
protocole de configuration rseau DHCP. Le quatrime cran vous permet quant lui de dfinir le
nom de votre machine sur le rseau et d'utiliser le protocole DHCP pour rcuprer les adresses des
serveurs de noms de votre fournisseur d'accs :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 57









Les crans suivants vous demandent la confirmation du dmarrage automatique des fonctionnalits
rseau au dmarrage de la machine et du dmarrage du rseau pour la suite de l'installation
(recommand). Le quatrime cran vous prsente la liste des services systme activer. Soyez assez
strict sur ce sujet, en gnral un particulier n'a besoin d'aucun de ces services :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 58









L'installation se termine ensuite par une mise jour du systme via le rseau (recommand). Vous
devrez ensuite redmarrer votre ordinateur, qui vous proposera alors la liste des systmes
d'exploitation installs et les modes dgrads pour le dmarrage en cas de rparation :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 59








Vous aurez droit remplir un petit questionnaire lors du premier dmarrage de votre systme Linux.
Faites-en ce que vous voulez. Si le son ne fonctionne pas automatiquement aprs le premier
dmarrage, connectez-vous en tant qu'administrateur et excutez le programme alsaconf.
3.6. Installation de la Debian 4.0r1
Nous allons prsenter dans cette section la procdure d'installation de la distribution Debian Etch
4.0r1. La distribution Debian a une rputation justifie de trs grande stabilit, en contrepartie de
laquelle les sorties des versions majeures sont assez espaces dans le temps.
L'installation de la Debian est relativement rustique, mais elle fournit des outils de configuration
permettant aux utilisateurs une installation sans avoir connatre les arcanes du systme et de la
configuration des logiciels installs.
L'installation de la Debian commence par un cran d'accueil vous proposant de dmarrer le systme.
L'appui sur la touche F1 vous donnera accs un cran d'aide permettant d'obtenir tous les
paramtres de dmarrage du systme. Ces paramtres pourront tre utiles pour dmarrer Linux sur
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 60

certaines machines exotiques. Vous pouvez essayer dans un premier temps le dmarrage en utilisant le
noyau par dfaut en appuyant sur Entre :



Le programme d'installation commence alors par vous demander la langue du systme, le pays o vous
vous trouvez, et le type de clavier utilis dans ce pays :



DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 61


Il vous faut ensuite indiquer le nom de votre machine et, ventuellement, le nom du domaine auquel
elle appartient :



Vient ensuite la phase de partitionnement du disque. Ce document dcrit la procdure de
partitionnement manuelle, que l'on peut activer en choisissant la mthode de partitionnement
manuelle. Cette mthode vous permettra de choisir le disque partitionner, et d'ventuellement y crer
une nouvelle table des partitions. Vous pourrez alors slectionner l'espace libre ainsi rendu disponible
afin d'y crer vos partitions :


DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 62






La cration d'une partition en soi se fait simplement en choisissant l'option Crer une nouvelle
partition . Vous pourrez alors indiquer la taille de cette partition, son type, et son emplacement dans
la table des partitions :


DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 63






Pour chaque partition ainsi dfinie, vous devez indiquer sa nature et le systme de fichiers utilis. Les
crans suivants montrent comment dfinir une partition d'change :


DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 64




Vous procderez de mme pour dfinir la partition racine de votre systme, ainsi que les ventuelles
autres partitions pour les diffrents points de montage. Vous devrez indiquer ensuite que la partition
racine est amorable en fixant son indicateur d'amorage :

Vous pouvez alors valider les modifications effectues et crire la table de partition sur le disque dur :

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 65


Le programme d'installation vous demandera ensuite de dfinir le mot de passe de l'administrateur, et
de confirmer ce mot de passe. Vous pourrez ensuite ajouter un premier utilisateur, en donnant son nom
complet, puis le login et le mot de passe qu'il devra utiliser pour se connecter :






DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 66


Le programme d'installation poursuivra en copiant les fichiers du systme de base sur le disque dur :

Vous pourrez ensuite choisir le miroir le plus proche de vous sur Internet pour la rcupration des
mises jour et des paquetages manquants :




DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 67




Le programme d'installation va ensuite vous demander de choisir les paquetages que vous dsirez
installer, puis les copiera sur le disque dur. Afin de dterminer quels sont les paquetages les plus
importants et d'amliorer la facilit d'installation de Debian il vous proposera au pralable de participer
un sondage de popularit des paquetages :




DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 68


Une fois le systme install, le programme d'installation passe la configuration du serveur X et du
gestionnaire d'amorage GRUB avant de terminer l'installation. Pour le serveur X, vous devrez
indiquer les rsolutions que vous comptez utiliser. En ce qui concerne le gestionnaire d'amorage,
vous pouvez indiquer si vous dsirez l'installer sur le secteur d'amorage ou non :





L'installation telle que prsente ici n'installe que l'environnement graphique Gnome par dfaut. Si
vous dsirez installer l'environnement graphique, il vous faudra vous connecter sous le compte
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 69

administrateur et complter l'installation manuellement. Cela se fait en ligne de commande, l'aide du
gestionnaire de paquetage de la Debian, APT (abrviation de A Package Tool ).
Pour cela, redmarrez, basculez sur le premier terminal virtuel avec les trois touches CTRL+Alt+F1,
loguez-vous en tant qu'administrateur, et excutez la commande suivante : en utilisant le gestionnaire
de Ainsi, vous devrez excuter la commande suivante :
apt-get install kde
Les crans suivants illustrent cette opration :







la suite de ces oprations, vous pouvez redmarrer votre machine. Vous devriez alors avoir un
systme Debian utilisable et oprationnel.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 70

3.7. Installation de la Slackware 12.0
Nous allons prsenter dans cette section la procdure d'installation de la distribution Slackware 12.0.
Tout comme Debian, la Slackware vise une grande stabilit et est par consquent galement assez
conservatrice dans ses choix de logiciels. Toutefois, les versions officielles sortent une frquence
suprieure celle de la Debian, car le temps d'intgration et de validation est plus court que pour la
Debian. Cela est d au fait que la Slackware a pour vocation d'tre une distribution taille humaine, et
se restreint donc aux logiciels les plus courants et fournit un nombre de logiciels nettement moindre.
De ce fait, les versions des logiciels fournis sont souvent plus rcentes, ce qui constitue un bon
compromis.
Contrairement aux autres distributions en revanche, la Slackware ne fournit pas d'outil de
configuration spcialis. Comme nous allons le voir, elle requiert donc une connaissance plus
approfondie de Linux et des principaux logiciels de la part de l'utilisateur.
L'installation de la Slackware commence par un cran d'accueil vous proposant de dmarrer le
systme. Vous pouvez choisir plusieurs noyaux en fonction de votre configuration matrielle, la liste
des noyaux disponibles tant accessible en appuyant sur la touche F3 . Il est recommand de choisir
le noyau propos par dfaut, savoir le noyau hugesmp.s , et d'appuyer sur la touche Entre
pour dmarrer Linux. Attention, le clavier tant en configuration anglaise au dmarrage, vous
trouverez le point sur la touche : .

Le systme propose de configurer le clavier ds le premier dmarrage. Lorsque vous aurez choisi votre
clavier, vous pourrez faire un test de celui-ci, comme le montre le troisime cran. Si la configuration
du clavier vous convient, vous pouvez l'accepter en saisissant '1' sur une ligne vide et en validant.
Vous aurez alors accs l'cran de login de la Slackware :


DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 71






Le systme ne possdant pas encore de mot de passe ce stade de l'installation, vous pouvez vous
connecter simplement en appuyant sur Entre . L'tape suivante est de partitionner le disque, en
utilisant la commande fdisk. La manire d'utiliser cette commande ayant dj t dcrite dans la
section dcrivant une installation gnrique, nous n'entrerons pas plus dans les dtails ici :


DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 72




Pour chaque partition, il vous faut indiquer son type et, si vous ne comptez pas installer le gestionnaire
d'amorage sur le secteur principal du disque dur, la rendre amorable. Vous pourrez ensuite crire la
nouvelle table de partitions sur le disque :





DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 73



Note : Pour rappel, la cration d'une nouvelle partition se fait avec la commande 'n' de fdisk, et la
visualisation des partitions existantes se fait avec la commande 'p'. Pour changer le type d'une
partition, il faut utiliser la commande 't', et pour la rendre amorable, il faut utiliser la commande 'a'.
Enfin, pour crire la table des partitions sur le disque, il faut utiliser la commande 'w'.
Le programme d'installation de la Slackware peut ensuite tre lanc en excutant la commande setup.
Vous accderez alors l'cran suivant, qui vous permettra d'excuter les diffrentes phases de
l'installation :

L'option HELP affiche un cran d'aide. L'option KEYMAP permet de choisir la disposition du
clavier utiliser, mais cette opration tant dj faite, il est inutile de la refaire. Les options suivantes
permettent de dfinir la partition d'change du systme, de choisir les partitions cibles et les supports
d'installation, de choisir et d'installer les logiciels, et enfin de configurer le systme. Toutes ces options
sont excutes automatiquement les unes aprs les autres par le systme d'installation, aussi suffit-il de
commencer par l'option ADDSWAP .
Le programme d'installation utilise les deux crans suivants pour configurer la partition d'change. La
vrification des blocs de la partition d'change est fortement recommande, une dfaillance matrielle
ce niveau pouvant planter le systme ultrieurement et dtruire l'intgralit de ses donnes :


DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 74


Le programme d'installation va alors relire la table des partitions et vous demander comment utiliser
chacune d'elles. La premire partition dfinir est la partition racine du systme, vers laquelle
l'installation doit se faire. Pour chaque partition ainsi dfinie, il faut crer un systme de fichiers, en
indiquant son type et le nombre d'inodes dans le systme de fichiers en fonction de sa taille (le
quatrime cran vous demande donc d'indiquer la densit d'inodes du systme de fichiers par rapport
sa taille) :





DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 75

Cette procdure est rpter pour chaque partition. Toutefois, les autres partitions que la partition
racine ncessitent un point de montage, qui doit donc tre spcifi. L'cran suivant montre comment
dfinir le point de montage d'une partition. Vous devez y indiquer le chemin du point de montage de
cette partition. Par exemple, si vous ddiez une partition pour les donnes des utilisateurs (ce qui est
recommand), vous devez saisir le chemin /home/ :

Le programme d'installation demande ensuite o il peut trouver le support d'installation. Dans notre
cas, l'installation se fait partir d'un CD-ROM ou d'un DVD-ROM. Le programme d'installation
dtectera automatiquement le lecteur dans lequel le mdia d'installation se trouve :



La suite de l'installation se fait alors classiquement : il suffit de slectionner les diffrentes catgories
de logiciels installer, et le mode de choix des paquetages. Pendant la copie des fichiers, des
informations sont affiches sur le paquetage en cours d'installation :

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 76





la fin de l'installation, le programme d'installation demande s'il faut crer une cl USB de dmarrage
de secours :

La configuration du modem est ensuite propose. Il s'agit l des modems analogiques classiques, et
non des modems ADSL ou cble par exemple :

L'tape suivante consiste installer le gestionnaire d'amorage du systme. Par dfaut, la Slackware
utilise LILO. La configuration automatique fonctionne gnralement bien, aussi pouvez-vous choisir
l'option correspondante. Le programme d'installation demande ensuite la rsolution de l'cran au
dmarrage, les options complmentaires qui doivent tre passes au noyau, et la zone du disque o
LILO doit tre install :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 77








La configuration de la souris est ensuite propose. Vous devez indiquer le type de souris dont vous
disposez, et si vous voulez lancer le gestionnaire de souris pour le mode texte GPM :

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 78


Il faut ensuite effectuer la configuration rseau. Si vous utilisez un modem routeur ADSL, le plus
simple est d'utiliser le protocole de configuration DHCP. Dans ce cas, il suffit simplement d'indiquer
le nom de la machine et le nom de son domaine :





Il est conseill d'activer ensuite le protocole DHCP. Vous pourrez alors spcifier des options
spcifiques ventuelles fournir au serveur DHCP si ncessaire :


DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 79


Vous pouvez vrifier la configuration rseau avant de la valider. La liste des services activs sur le
systme est galement personnalisable :



La configuration du systme se termine par le choix de la police de caractres pour la console et par le
rglage des paramtres horaires (horloge systme en temps local ou en temps universel, et fuseau
horaire de la machine) :



DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 80




Le programme d'installation demande enfin le gestionnaire de connexion graphique utiliser et le mot
de passe de l'administrateur du systme avant de redmarrer la machine :







DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 81

L'installation doit toutefois tre complte par quelques oprations manuelles aprs le redmarrage.
Pour cela, il faut d'abord se connecter sur la console en tant qu'administrateur :



Le programme d'installation laisse comment les entres permettant de monter les lecteurs de CD-
ROM et de DVD-ROM dans le fichier /etc/fstab. Il faut donc dcommenter ces entres et
ventuellement les corriger pour pouvoir accder au lecteur de CD-ROM et terminer l'installation.
Pour cela, vous pouvez utiliser par exemple l'diteur de fichier jed et supprimer la marque de
commentaire devant la ligne correspondante au lecteur de CD-ROM :





DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 82


Il est alors possible de monter le disque d'installation dans le rpertoire /mnt/cdrom/ et d'installer les
fichiers de prise en charge de la langue franaise pour l'environnement KDE :



La configuration de l'environnement graphique X11 pour la Slackware se fait avec la commande
xorgsetup. Cette commande vous demandera confirmation que vous voulez bien configurer X11, et
affichera un avertissement pour vous indiquer que la configuration existante sera crase :



DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 83


Le programme dtectera ensuite la configuration matrielle et vous proposera ensuite diverses options
pour la configuration du serveur X (nombre de couleurs de l'affichage par dfaut et configuration
principale du clavier) :









DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 84

xorgsetup vous permet galement de dfinir une configuration alternative pour le clavier, ainsi que de
choisir des options sur le comportement des diffrentes touches. Une fois la configuration termine, il
vous signale que l'environnement X11 est prt tre utilis :





Comme il est plus confortable de dmarrer l'environnement graphique automatiquement au dmarrage
de la machine, on devra modifier le niveau d'excution par dfaut du systme (voir plus loin pour plus
de dtails ce sujet). Pour cela, il suffit d'diter le fichier /etc/inittab, par exemple avec l'diteur jed. Il
faut y remplacer la valeur '3' prcdent le mot-cl initdefault par '4' :



DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 85

La dernire tape est de dfinir un compte d'utilisateur pour le travail quotidien. Cela se fait avec la
commande adduser :



Votre systme Slackware est prsent install, et vous pouvez le redmarrer pour commencer
l'utiliser. Vous pouvez tout moment modifier la configuration du systme l'aide du programme
pkgtool, ou celle de X11 l'aide de xorgsetup.
Chapitre 4 : Prsentation gnrale du systme
Table des matires

4.1. Architecture du systme
4.2. Scurit et utilisateurs
4.3. Fonctionnalits des systmes de fichiers
4.4. Structure du systme de fichiers
Si vous tes parvenu jusqu'ici, vous disposez d'un systme Linux fonctionnel. Flicitations ! Un
monde nouveau s'ouvre vous, et vous allez pouvoir explorer toutes les fonctionnalits de ce nouveau
systme.
Toutefois, dcouvrir un nouveau systme d'exploitation peut s'avrer moins facile qu'on ne le pense.
En effet, chaque systme a ses spcificits, et la manire de raliser une tche n'est pas forcment celle
laquelle on peut s'attendre. Ce chapitre a donc pour but de vous prsenter les notions gnrales sur
lesquelles le systme se base, afin de vous mettre le pied l'trier et de vous donner un cadre auquel
vous pourrez vous raccrocher.
Si vous avez dj utilis un systme Unix, vous n'aurez sans doute pas de difficult vous adapter, et
la plupart des notions qui seront prsentes dans ce chapitre ne vous seront donc pas trangres. De
mme, si Linux est le premier systme d'exploitation que vous utilisez, vous pourrez apprendre les
procdures sans trop de difficults. En revanche, si vous tes d'abord un utilisateur de Microsoft
Windows, la transition sera sans doute difficile dans un premier temps. Les habitudes ayant la vie
dure, vous devrez en effet commencer par vous dbarrasser d'une bonne partie d'elles avant de pouvoir
utiliser correctement Linux.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 86

Nous allons prsenter l'architecture gnrale du systme dans un premier temps. La notion d'utilisateur
et les principes de base de scurit des systmes Unix seront ensuite abords. Enfin, les notions
relatives la gestion des fichiers sous Linux, ainsi que les principaux systmes de fichiers disponibles
et leurs fonctionnalits seront vues. Ce chapitre se terminera par une prsentation de l'arborescence
standard du systme de fichiers de Linux, qui vous sera sans doute trs utile pour savoir le rle de
chacun des rpertoires systmes de Linux et l'emplacement des diffrents composants du systme.
4.1. Architecture du systme
4.1.1. Principe de modularit
Comme tout logiciel d'une certaine taille, un systme d'exploitation est d'une grande complexit. Tous
les systmes d'exploitation rcents sont en effets constitus d'un grand ensemble de composants qui
interagissent entre eux et qui doivent fonctionner de concert afin d'assurer la bonne marche du systme
et rpondre aux besoins de l'utilisateur.
Cette complexit implique un grand nombre d'erreurs, d'anomalies et de dysfonctionnements
possibles, ainsi qu'une grande difficult en comprendre l'origine. En effet, pour qu'un systme
informatique fonctionne correctement, il faut tout prvoir pour donner une action approprie tous les
vnements possibles, et trouver la cause d'un problme est d'autant plus difficile qu'il y a de
composants qui interviennent dans la fonction dfaillante. Cela n'est pas humainement ralisable
quand le systme devient trop complexe si l'on n'est pas organis et qu'on ne connat pas les grandes
lignes de l'architecture du systme.
Pour rsoudre ce problme, il est courant de subdiviser les systmes complexes en composants
indpendants, dont le mauvais fonctionnement potentiel ne peut perturber que partiellement les autres
parties du systme. Par ailleurs, ces composants sont regroups en couches logicielles successives, les
couches suprieures s'appuyant sur les services des couches infrieures. Ainsi, des points de
synchronisation partir desquels le systme peut reprendre un fonctionnement normal aprs une
dfaillance peuvent tre dfinis. Ces points de synchronisation permettent donc d'assurer la viabilit du
systme, ou du moins des couches infrieures, mme en cas d'erreur inopine d'un composant dans une
couche de plus haut niveau.
Il va de soi que, lorsqu'un composant se plante, ceux qui l'utilisent risquent de se retrouver dans un tat
d'erreur assez difficile grer. Cela peut souvent provoquer leur propre perte. Par consquent, plus un
composant est utilis, plus il doit tre fiable. Autrement dit, les composants des couches infrieures
doivent ncessairement tre beaucoup plus fiables que ceux des couches de plus haut niveau, car ils
sont utiliss par tout le reste du systme.
Pour quelques systmes, le dcoupage fonctionnel est trop grossier, voire inexistant. Il arrive
galement que les interactions entre les composants soient trop importantes et impliquent une
dpendance entre eux qui annihile le bnfice de leur isolation. Dans ces systmes, une dfaillance
d'un composant peut donc entraner un dysfonctionnement global svre, et en pratique peut ncessiter
jusqu' un redmarrage de l'ordinateur. Les systmes monolithiques et les systmes dont les
composants sont trop interdpendants sont donc sujets de nombreux redmarrage, parfois mme pour
des raisons mineures (modification de la configuration du systme, ajout d'un logiciel, ou mme
simple erreur d'un logiciel).
Il est d'usage de considrer que Linux est un systme monolithique. En effet, toute la gestion du
matriel, ainsi que la gestion de certaines fonctionnalits de haut niveau, est prise en charge au niveau
du noyau ( kernel en anglais). On pourrait donc craindre une faible fiabilit de ce systme
d'exploitation. Toutefois, cette vision des choses n'est pas tout fait juste car, comme on l'a dj dit, le
noyau n'est qu'une partie du systme d'exploitation, et en ralit un systme Linux est effectivement
constitu de diffrentes couches fonctionnelles. De plus, le noyau reste d'une taille raisonnable. Pour
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 87

l'essentiel, il est constitu que d'une base relativement petite et trs bien teste, laquelle beaucoup de
pilotes de priphriques ont t ajouts. La complexit du noyau reste donc limite, car les pilotes de
priphriques ne sont bien entendus pas tous utiliss en mme temps sur une mme machine.
Par ailleurs, le noyau Linux est d'une trs, trs grande fiabilit, et il n'est pas rare de voir un systme
Linux fonctionner plusieurs mois ou annes sur des serveurs. Cette grande fiabilit provient du modle
de dveloppement de Linux, qui est ouvert tout le monde (chacun peut rcuprer, lire, modifier, et
complter ou corriger le noyau condition de savoir bien programmer). Ainsi, partir d'une taille
critique en terme de nombre d'utilisateurs, taille que Linux a atteinte, il existe suffisamment de
dveloppeurs pour dtecter et corriger les erreurs. En pratique, ds qu'une erreur est dtecte, elle est
souvent corrige dans les jours qui suivent si la fonctionnalit concerne est effectivement utilise, ce
qui assure au final une trs grande qualit.
4.1.2. Les diffrentes couches logicielles sous Linux
Ainsi, un systme Linux est constitu, outre du noyau, d'un certain nombre d'autres couches
logicielles, qui s'appuient les unes sur les autres. Nous allons donc prsenter brivement ces couches
ici.
Le noyau se trouve bien videmment la base de toutes les autres couches, puisqu'il gre quasiment
tout le matriel (mmoire, disques, systmes de fichiers, rseau, clavier, etc.). Mais comme il n'est pas
exploitable tel quel (par exemple, il n'est pas capable d'offrir une interface utilisateur permettant de lui
donner les commandes que l'ordinateur doit excuter) il faut au moins une interface utilisateur.
Cette interface utilisateur, c'est ce qu'on appelle le shell (ce qui signifie grosso modo
environnement utilisateur ). Le shell est capable de lire des commandes saisies au clavier, de les
excuter et d'afficher leurs rsultats l'cran. En gnral, les programmes capables de raliser ces
oprations sont appeles des interprteurs de commandes. 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.). Bien
entendu, il existe plusieurs shells, mais le plus utilis sous Linux est le shell bash, qui est dvelopp
par la Free Software Foundation et distribu sous licence GPL.
En fait, les commandes que le shell peut excuter sont en nombre trs rduit. La plupart des
commandes sont donc tout simplement prises en charge par d'autres programmes. Ces programmes,
que l'on peut utiliser directement dans le shell, sont ce que l'on appelle des programmes en ligne de
commande , parce qu'ils sont propres tre utiliss dans les lignes de commandes que l'on 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 GPL. Toutes ces commandes sont des
commandes compatibles Unix, et nous apprendrons nous en servir dans le Chapitre 5.
Bien entendu, ces commandes sont absolument essentielles pour pouvoir utiliser le systme, mais elles
sont assez rbarbatives et peu d'utilisateurs acceptent de s'en contenter. C'est pour cela qu'une couche
graphique a t dveloppe, pour introduire une interface graphique plus conviviale : XWindow.
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 (d'o le nom de
serveur) aux autres applications. Plusieurs implmentations concurrentes existent. L'une d'elles est
particulirement utilise sous Linux, puisqu'elle est libre : X.org. vrai dire, un serveur X ne fait pas
grand chose d'autre que de raliser des affichages sous les ordres d'autres programmes. D'autres
composants permettent donc d'obtenir des fonctionnalits de plus haut niveau.
Le gestionnaire de fentres ( Window Manager en anglais) est un de ces composants. Il se place
juste au-dessus du serveur X et prend en charge, comme son nom l'indique, la gestion des fentres des
applications graphiques sous X. C'est le gestionnaire de fentres qui prend en charge la gestion des
dcorations des fentres de premier niveau (c'est--dire des fentres principales des programmes). Par
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 88

exemple, il s'occupe d'afficher les bords, la barre de titre, les boutons de rduction et de restauration,
etc. des fentres. C'est galement lui qui s'occupe du positionnement des fentres, et qui donc permet
l'utilisateur de dplacer et de rduire les fentres des applications graphiques. L'utilisateur est libre
d'utiliser le gestionnaire de fentres qu'il dsire, selon ses propres gots et ses dsirs, la diffrence est
souvent une pure question de style.
Il existe galement des environnements graphiques complets qui, en plus de fournir un gestionnaire de
fentres, fournissent la plupart des outils classiques que l'on est en droit d'attendre d'un systme
graphique moderne. Ainsi, ces environnements comprennent des diteurs, des outils de configuration,
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
d'amliorer l'intgration des diverses applications entre elles, et c'est la raison pour laquelle on appelle
souvent ces environnements des gestionnaires de bureau. KDE et Gnome sont des exemples de tels
environnements de travail.
Enfin, 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 d'applications en ligne de commande, c'est--dire des interfaces
graphiques pour des programmes non graphiques. Ce concept permet d'avoir un composant unique
ralisant une action, utilisable en ligne de commande et donc scriptable, et une ou plusieurs interfaces
graphiques pour ce composant. De plus, ce modle permet de sparer clairement l'interface graphique
du traitement qu'elle permet de raliser. La stabilit en est d'autant plus accrue.
Bon nombre d'applications pour XWindow sont libres, ou utilisables librement des fins non
commerciales (dans ce cas, on a le droit de les utiliser tant que ce n'est pas pour raliser un travail
qu'on revendra). On peut donc considrer qu'il est actuellement possible, avec Linux, d'avoir un
environnement logiciel complet, fiable et performant... pour un prix de revient minime.
Note : Il n'est pas vident d'tablir un parallle entre l'architecture d'un systme comme Linux avec
celle de MS Windows. Cependant, on peut considrer que le noyau Linux correspond aux modules
KERNEL de Windows et de tous les services de type pilote de priphrique, que le shell correspond
l'interprteur de commandes CMD.EXE, que les programmes en ligne de commande correspondent
aux programmes en mode 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 que le gestionnaire de bureau correspond l'explorateur, Internet Explorer, aux fonctionnalits OLE
permettant la communication entre applications, et aux programmes fournis avec Windows lui-mme.
La diffrence essentielle vient du fait que le shell est peine programmable sous Windows, que le
pilote de carte graphique, la GDI et le module USER sont tous intgrs dans le systme au lieu d'en
tre spars (ce qui multiplie les chances de crash du systme complet), et que la plupart des
applications Windows ne peuvent fonctionner que dans l'environnement graphique. Elles sont donc
entranes par le systme lorsque les modules graphiques de Windows plantent (je n'ai d'ailleurs
jamais vu un processus DOS survivre un crash de l'interface graphique de Windows).
4.1.3. Rsum de l'architecture de Linux
En rsum, un systme GNU/Linux est structur de la manire suivante :
le noyau Linux ;
les programmes en ligne de commande et le shell ;
le serveur XWindow ;
le gestionnaire de fentres et le gestionnaire de bureau ;
les applications XWindow.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 89

La figure suivante vous prsente comment ces diffrentes couches logicielles s'agencent les unes par
rapport aux autres.
Figure 4-1. Architecture des systmes GNU/Linux

Cette architecture est, comme on peut le voir, trs avantageuse :
les systmes Unix, donc Linux, sont trs structurs, donc plus simples utiliser, configurer,
maintenir et dvelopper ;
ils sont trs stables, car les composants de haut niveau n'interfrent pas sur les composants de
bas niveau ;
ils sont faciles personnaliser, puisque l'utilisateur a le choix des outils chaque niveau ;
Linux a de plus la particularit d'tre parfaitement modifiable, puisque si l'on sait programmer,
on peut personnaliser les composants du systme ou en rajouter tous les niveaux ;
et il n'est pas propritaire, c'est--dire que l'on n'est pas dpendant d'un diteur de logiciel pour
rsoudre un problme donn.
En bref, c'est la voie de la vrit.
4.2. Scurit et utilisateurs
l'heure o la scurit devient un enjeu majeur en raison de l'importance des menaces virales et autres
attaques contre les systmes informatiques et leurs utilisateurs, les systmes Unix tels que Linux, bien
que de conception trs ancienne, apparaissent comme avant-gardistes et parfaitement en phase avec le
march.
La scurit est prsent considre comme une fonctionnalit essentielle du systme d'exploitation, et
devient de plus en plus incontournable. De ce fait, il est ncessaire de prsenter les concepts de
scurit utiliss par les systmes Unix et Linux, afin que vous puissiez apprhender les risques et
matriser tous les principales fonctions de scurit du systme.
Nous verrons donc ces concepts de base dans un premier temps. Puis, nous nous intresserons la
notion d'utilisateur, qui est la base de la scurit sous Unix. Enfin, nous verrons comment cette
scurit est assure dans le systme, en particulier au niveau du systme de fichiers.
4.2.1. Gnralits
Les systmes Unix, depuis leurs origines, ont toujours pris en compte les problmes de scurit. En
particulier, les dveloppeurs d'application Unix ont toujours fait attention ce que leurs logiciels se
comportent relativement bien en termes de scurit. En pratique, bien que la scurit des programmes
soit loin d'tre parfaite, surtout pour les plus anciens, des principes de base ont toujours t respects,
ce qui fait que les applications Unix ne font pas, en rgle gnrale, n'importe quoi avec le systme.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 90

Ainsi, il est beaucoup plus facile de faire fonctionner une application Unix dans un contexte de
scurit restreint qu'une application Windows, car les dveloppeurs de ces dernires ont longtemps t
habitus une trs grande libert et ont donc ralis des applications qui ne peuvent pas tre utilises
si elles n'ont pas les pleins pouvoirs. Les applications Unix qui se comportent mal sont donc trs rares,
ce qui fait que les systmes Unix peuvent faire peu de cas d'elles et n'ont pas maintenir une
compatibilit ascendante avec elles. Les systmes Unix ont donc un modle de scurit beaucoup plus
simple et strict, et n'ont pas s'embarasser avec des techniques complexes et des circonvolutions
insenses telles que la virtualisation de l'ensemble du systme pour les applications afin d'assurer un
semblant de scurit tout en permettant la compatibilit ascendante.
Par ailleurs, la scurit permet de protger non seulement le systme, mais aussi l'utilisateur de ses
propres erreurs. En effet, le systme est capable de se protger contre les fausses manipulations de
l'utilisateur. Cela peut tre extrmement utile avec les dbutants, puisqu'ils peuvent exprimenter
loisir tout en tant srs qu'ils ne feront pas de btise irrmdiable. Ainsi, ils seront plus sereins et
n'auront pas peur de faire une btise . Mais cela est trs utile mme pour les utilisateurs chevronns,
car tout le monde peut effectivement faire une erreur !
La scurit permet galement de protger les donnes de chaque utilisateur vis vis des autres. En
effet, par dfaut, les donnes d'un utilisateur ne peuvent pas tre modifies par un autre utilisateur.
Vous n'aurez donc aucune crainte que vos chres ttes blondes puissent effacer ou dtruire par
mgarde votre correspondance professionnelle ou l'ensemble des photos de famille...
Enfin, ayant t prise en compte ds le dpart, la scurit sait se rendre trs discrte sur les systmes
Unix, et bien que parfaitement fonctionnelle, elle n'ennuie pas l'utilisateur et reste facilement
configurable. Ces deux aspects sont fondamentaux, car du coup, l'utilisateur n'a pas la tentation - ni le
besoin - de tout dsactiver pour faire fonctionner ses applications !
En rsum, la scurit sous Linux, c'est :
une fonctionnalit part entire, qui est parfaitement intgre dans le systme ;
un moyen de se protger contre ses propres erreurs ainsi que celles des autres utilisateurs ;
une facilit d'utilisation et une transparence qui la rendent utilisable en pratique sans perturber
le travail de l'utilisateur.
4.2.2. Notion d'utilisateur et d'administrateur
Linux dispose de plusieurs modles de scurit mais, historiquement, la scurit se base sur la notion
d'utilisateur. Nous allons donc nous intresser ici la notion d'utilisateur, et voir comment cette notion
peut tre utilise pour mettre en pratique les contrles de scurit du systme.
Comme vous le savez sans doute dj, Linux est un systme multi-utilisateurs. Cela signifie que
plusieurs personnes peuvent utiliser l'ordinateur simultanment (et pas uniquement les unes la suite
des autres), et que le systme se charge de faire respecter la loi entre elles. Le systme protge les
donnes de chaque utilisateur des actions que peuvent effectuer les autres utilisateurs. Il veille
galement partager quitablement les ressources de la machine entre les utilisateurs, tant au niveau
de la puissance de calcul qu'au niveau de la mmoire, du disque, des imprimantes, etc.
Note : Si vous vous demandez comment plusieurs personnes peuvent se partager le clavier et l'cran et
ainsi utiliser l'ordinateur en mme temps, la rponse est simple : ils ne le peuvent pas. Par contre, il est
possible que plusieurs personnes soient connectes l'ordinateur via le rseau, utilisant d'autres
claviers et d'autres crans (on appelle un couple clavier/cran un terminal ). Il est de plus
thoriquement possible de connecter plusieurs claviers, souris et crans une mme unit centrale,
mme si ces configurations sont encore trs rares et non standards. Les utilisateurs peuvent galement
lancer des programmes en arrire plan, et laisser ces programmes tourner mme lorsqu'ils ne sont plus
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 91

connects l'ordinateur. videmment, cela ncessite que les programmes ainsi lancs ne soient pas
interactifs. Autrement dit, ils doivent tre capable de fonctionner sans intervention de celui qui les a
lancs.
Ne croyez pas que ce dernier cas de situation est extrmement rare. En effet, le systme utilise des
tches qui tournent en arrire plan dans des comptes ddis et diffrents du vtre, afin de prendre en
charge certaines fonctionnalit ou de raliser des oprations de maintenance.
En interne, le systme affecte un numro unique chaque utilisateur afin de pouvoir l'identifier. Ce
numro d'utilisateur est dfini lors de la cration de son compte dans le systme, et ne peut tre
modifi par la suite. Ainsi, toute action effectue dans le systme peut tre rattache un utilisateur
particulier. L'utilisation du systme requiert donc que chaque utilisateur s'identifie au niveau du
systme avant toute autre opration. Gnralement, cela se fait en indiquant son nom d'utilisateur, que
l'on appelle classiquement le login . Bien entendu, afin d'viter qu'un utilisateur puisse usurper
l'identit d'un autre utilisateur, le systme exige que l'utilisateur fournisse un mot de passe aprs s'tre
identifi pour s'authentifier.
La scurit du systme se base alors, lorsqu'une opration est excute, sur l'identit de l'utilisateur qui
ralise cette commande et sur les droits dont cet utilisateur dispose sur les objets que cette commande
doit manipuler. Par exemple, la suppression d'un fichier systme ne peut pas tre ralise par un
utilisateur lambda, parce que cet utilisateur n'a pas les droits de suppression (ni de modification
d'ailleurs, et parfois mme de lecture) sur ce fichier.
L'administration du systme lui-mme revient la charge d'un utilisateur particulier. Cet utilisateur,
classiquement nomm root , a virtuellement tous les droits sur le systme. C'est ce qu'on appelle
l'administrateur du systme, ou encore le super utilisateur. En interne, le super utilisateur est identifi
par le numro 0, qui lui est rserv. Ainsi, seul l'utilisateur dont le numro est 0 peut modifier les
fichiers de configuration du systme.
Note : Bien entendu, travailler sous l'identit du super utilisateur est extrmement dangereux, car ds
lors tous les mcanismes de scurit du systme sont dsactivs. Une erreur de manipulation avec cette
identit peut donc tre fatale et dtruire compltement le systme ! C'est pour cette raison que la
plupart des distributions imposent de dfinir un compte utilisateur standard en plus du compte root, et
que vous ne devriez travailler que sous ce compte. Ce n'est pas une restriction, c'est tout simplement
pour votre bien. Ne vous inquitez pas, comme il l'a dj t dit plus haut, vous n'avez quasiment
jamais besoin des droits administrateurs pour travailler sous Linux, parce que les applications sont en
gnral conues ds le dpart pour tre utilisables dans des comptes restreints. Alors n'ayez aucune
crainte, et respectez les bonnes manires : ne travaillez jamais sous le compte root.
Les nouveaux utilisateurs de Linux qui ont fait leurs premiers pas en informatique sous Microsoft
Windows ont souvent tendance considrer cette recommandation comme un faites ce que je dis,
pas ce que je fais et croient donc que les utilisateurs chevronns ne la respectent pas. Qu'ils se
dtrompent, la plupart des utilisateurs de Linux respectent cette rgle en permanence ! Ce n'est pas
parce que ce n'est pas votre habitude que cette recommandation est un on-dit . D'ailleurs, elle est
tellement importante que certaines distributions dsactivent tout bonnement le compte administrateur.
Il est donc tout simplement impossible de se connecter sous ce compte, mme si l'on est la personne
qui a install le systme ! Bien entendu, dans ce cas, les oprations d'administration sont toutes
identifies et ncessitent de fournir le mot de passe administrateur pour tre excutes.
En rsum, les mcanismes de scurit bass sur la notion d'utilisateur fonctionnent selon les principes
suivants :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 92

l'utilisateur doit s'identifier (gnralement, en fournissant son identifiant d'utilisateur, ou
login ) et s'authentifier (classiquement en fournissant son mot de passe, ou password )
lorsqu'il se connecte l'ordinateur ;
le noyau conserve pour chaque processus que l'utilisateur lance l'identit de cet utilisateur ;
le noyau contrle les droits de l'utilisateur chaque accs d'une ressource de chaque
programme de cet utilisateur (en particulier, comme nous allons le voir plus loin, au niveau
des fichiers) ;
le noyau assure une indpendance totale des processus, tant au niveau des zones de mmoire
utilises qu'au niveau de l'accs aux ressources de la machine. Un processus ne peut donc, par
dfaut, ni lire, ni crire dans la mmoire d'un autre processus, et les ressources de calcul ou
d'entre/sortie sont partages entre les diffrents processus par les mcanismes du multitche.
4.2.3. La scurit au niveau du systme de fichiers
Nous avons vu que le noyau contrlait les droits de l'utilisateur vis vis des ressources qu'il manipulait
pour chaque processus qu'il excute. En particulier, l'accs chaque fichier est contrl lors de
l'ouverture de ce fichier par les processus de l'utilisateur. Ainsi, les donnes de chaque utilisateur sont
protges par le systme, ainsi que les fichiers du systme lui-mme. De plus, comme l'accs aux
priphriques se fait gnralement par l'intermdiaire de fichiers spciaux, les accs aux ressources
matrielles sont galement contrls via les mcanismes de scurit du systme de fichiers. Il est donc
important de comprendre comment les systmes de fichiers grent la scurit.
4.2.3.1. Les droits sur les fichiers
Les systmes de fichiers dfinissent, pour chaque fichier, les droits auquel un utilisateur peut
prtendre. Ces droits comprennent la possibilit de lire ou crire un fichier, d'accder ou non une
ressource ou d'excuter un programme. En pratique, chaque utilisateur peut dfinir les droits qu'il veut
se donner sur ses propres fichiers, et surtout les droits qu'il veut donner aux autres utilisateurs du
systme sur ses fichiers. Par exemple, il peut protger un fichier auquel il tient particulirement en
lecture seule, afin d'viter de le dtruire par inadvertance.
L'administrateur peut galement crer un ou plusieurs groupes d'utilisateurs, afin que les
utilisateurs puissent donner des droits spcifiques aux utilisateurs de ces groupes sur leurs fichiers. En
pratique, cela se fait en fixant le groupe propritaire du fichier, et en fixant les droits spcifiques ce
groupe sur le fichier.
Il est donc possible de dfinir les droits sur un fichier trois niveaux diffrents :
au niveau du propritaire du fichier (par dfaut, l'utilisateur qui l'a cr) ;
au niveau du groupe propritaire du fichier (par dfaut, les fichiers crs par les utilisateurs
appartiennent au groupe users ) ;
au niveau de tous les autres utilisateurs (c'est--dire les utilisateurs qui ne sont ni le
propritaire du fichier, ni les utilisateurs du groupe du fichier).
En pratique, les droits des fichiers sont reprsents par une srie de lettres indiquant les droits de
chacun des niveaux que l'on vient de voir. Le droit de lecture est reprsent par la lettre 'r' (pour
Read only ), le droit d'criture par la lettre 'w' (pour Writeable ), et le droit d'excution par la
lettre 'x' (pour eXecutable ). Le droit de lecture correspond la possibilit d'ouvrir et de consulter
un fichier, ou de lister le contenu d'un rpertoire. Le droit d'criture correspond la possibilit de
modifier un fichier, ou de crer ou supprimer un fichier d'un rpertoire. Enfin, le droit d'excution
correspond la possibilit d'excuter un fichier contenant un programme, ou d'entrer dans un
rpertoire.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 93

Par exemple, la liste des droits sur un fichier lisezmoi.txt appartenant un hypothtique utilisateur
Jean Dupont (dont le login serait jean) se prsente comme suit dans la sortie de la commande ls -l
lisezmoi.txt (qui, comme on le verra plus loin, permet d'afficher les informations de ce fichier) :
-rw-r--r-- 1 jean users 444 2006-12-10 08:42 lisezmoi.txt

Ce fichier appartient bien l'utilisateur jean et au groupe users et a une taille de 444 octets. Les droits
sont affichs au dbut de la ligne. Le premier groupe de droit (rw-) indique que l'utilisateur peut lire et
crire le fichier, mais pas l'excuter. En effet, le tiret (-) indique que le droit d'excution n'est pas
donn. Les deuxime et troisime groupes de droits (r-- tous les deux) indiquent respectivement que
les utilisateurs du groupe users et tous les autres utilisateurs n'ont que le droit de lecture. Le premier
tiret au dbut de la ligne signifie que le fichier n'est pas un rpertoire, dans le cas contraire il serait
remplac par la lettre 'd' (pour Directory ).
Note : On notera que le fait d'avoir le droit d'criture sur un fichier ne donne pas le droit de le
supprimer (cependant, on peut le vider !). Pour cela, il faut avoir le droit d'criture sur le rpertoire
contenant ce fichier. De mme, il est possible d'obtenir la liste des fichiers d'un rpertoire sans pouvoir
s'y dplacer, ou encore de modifier un fichier sans pouvoir le lire. Comme on le voit, les droits d'accs
aux fichiers et aux rpertoires sont trs souples.
Par dfaut, lors de la cration d'un fichier par un utilisateur, les droits de lecture et d'criture sont
donns cet utilisateur, et seuls les droits de lecture sont donns au groupe du fichier et aux autres
utilisateurs. Ainsi, tout le monde peut lire le fichier, mais seul son propritaire peut le modifier. Cela
correspond l'usage classique sur un systme multiutilisateur o les utilisateurs se connaissent et n'ont
pas de fichiers confidentiels. Dans le cas contraire, l'utilisateur devra retirer les droits de lecture pour
les autres utilisateurs (nous verrons comment faire cela plus loin).
Note : Comme vous pouvez le constater, les droits d'excution ne sont pas donns par dfaut, mme
pour les fichiers binaires. Ainsi, le systme ne se base pas sur le contenu du fichier, et, comme on l'a
vu, encore moins sur son extension, pour dterminer si un fichier est excutable ou non. Pour qu'un
fichier soit excutable, il faut lui donner explicitement les droits d'excution !
Cela n'a l'air de rien, mais cette contrainte est un facteur de scurit extrmement important de nos
jours. En effet, la plupart des virus de mail ne sont en fait rien d'autres que des chevaux de Troie
transfrs en pice jointe, et qui ne peuvent s'excuter que si l'utilisateur les lance explicitement. Sous
Windows, le simple fait de double-cliquer sur une pice jointe dont l'extension est excutable lance
effectivement le programme (c'est pour cela que les pices jointes de ce type sont souvent filtres
maintenant). Sous Unix et Linux, cela ne fait strictement rien, mme si c'est un programme, car pour
l'excuter, il faut d'abord l'enregistrer, modifier ses droits d'excution explicitement, et l'excuter.
Ainsi, un utilisateur non averti n'a quasiment aucune chance de lancer un tel cheval de Troie par
mgarde...
4.2.3.2. Notion d'ACL
La notion de groupe d'utilisateurs que l'on vient de voir est gnralement utilise pour dfinir des
classes d'utilisateurs, et attribuer un peu plus de privilges que les utilisateurs normaux n'en disposent
aux utilisateurs de ces classes, selon les ncessits.
Par exemple, l'administrateur peut n'autoriser l'accs au lecteur de CD-ROM qu' quelques utilisateurs,
en modifiant les droits sur le fichier spcial de priphrique permettant d'accder au lecteur de CD-
ROM. Premirement, il cre un groupe d'utilisateurs cdrom et affecte le fichier spcial de
priphrique du CD-ROM ce groupe. Ensuite, il restreint les droits d'accs ce fichiers pour que
seuls les membres de ce groupe puisse y accder. Enfin, il place les utilisateurs autoriss accder au
CD-ROM dans le groupe en question.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 94

Toutefois, cette technique est relativement contraignante pour les utilisateurs, parce que la cration
d'un nouveau groupe d'utilisateurs est une opration privilgie que seul l'administrateur du systme
peut raliser d'une part, et parce qu'un utilisateur ne peut changer le groupe propritaire d'un fichier
que vers un groupe dont il fait lui-mme partie, d'autre part. Enfin, un mme fichier ne peut appartenir
qu' un seul groupe, et crer un groupe pour rassembler tous les utilisateurs de deux groupes n'est pas
une solution trs lgante. C'est pour cette raison que les systmes de fichiers modernes intgrent la
notion d'ACL (abrviation de l'anglais Access Control List , c'est--dire les listes de contrle
d'accs).
Les ACL sont des listes d'informations dcrivant les droits d'accs aux fichiers. Avec les ACLs, les
droits ne sont pas dfinis pour chaque catgorie d'utilisateurs (propritaire, groupe et autres), mais de
manire plus fine, fichier par fichier, pour des utilisateurs et des groupes varis. De plus, les ACLs
peuvent tre manipules par le propritaire du fichier, donc sans avoir recours aux droits
administrateur, ce qui rsoud le problme des groupes.
Note : La contrepartie de cette facilit est qu'il n'est pas toujours vident de contrler la scurit de
manire globale avec les ACLs, puisqu'on ne peut plus retirer les droits d'un utilisateur sur tout un jeu
de fichiers appartenant un mme groupe simplement en le supprimant de la liste des utilisateurs de ce
groupe. Il n'est donc pas recommand d'utiliser les ACLs pour dfinir les droits sur les fichiers
systmes, et de ne conserver cette fonctionnalit que pour que les utilisateurs puissent dfinir des
droits plus fins sur leurs propres fichiers.
4.2.3.3. Les attributs spciaux des fichiers
Nous avons vu dans les sections prcdentes que la notion d'utilisateur, couple avec les droits sur les
fichiers, permettait au noyau de fournir une scurit sur les fichiers des utilisateurs et du systme. En
particulier, les processus lancs par l'utilisateur s'excutent en son nom, et sont soumis aux mmes
restrictions que l'utilisateur qui les a lancs.
Il existe toutefois quelques programmes qui doivent faire exceptions cette rgle. Il s'agit
gnralement de programmes qui ont besoin des droits administrateurs pour raliser une opration de
reconfiguration sur le compte de l'utilisateur. C'est en particulier le cas de quelques commandes
systmes (comme passwd, qui permet de changer de mot de passe), qui peuvent tre lances par les
utilisateurs mais qui doivent s'excuter au nom du systme (dans le compte root).
Ces programmes sont bien entendu raliss avec un grand soin, de telle sorte que l'on peut tre sr que
l'utilisateur ne peut pas les utiliser dans le but de raliser une opration laquelle il n'a pas droit dans
le compte administrateur. De ce fait, il est impossible un utilisateur de violer les rgles de scurit du
systme.
Pour parvenir ce comportement, les systmes de fichiers utilisent des attributs spciaux sur les
fichiers excutables de ces programmes. Ces attributs viennent en complment des droits d'accs que
l'on a prsents dans les sections prcdentes.
Le premier de ces attributs est le bit setuid (qui est l'abrviation de l'anglais SET User
IDentifier ). Il ne peut tre plac qu'au niveau des droits du propritaire sur le fichier. Il permet
d'indiquer que le fichier est excutable, et que lorsque le programme qu'il contient est lanc par un
utilisateur, le processus correspondant s'excute avec les droits du propritaire du fichier et non pas
avec ceux de l'utilisateur qui l'a lanc. Cependant, le systme conserve tout de mme le numro de
l'utilisateur rel qui a lanc le processus en interne, ce qui fait que le programme peut savoir par qui il
a t lanc et au nom de qui il s'excute effectivement.
Au final, un processus dispose donc toujours de deux numros d'utilisateur :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 95

le numro de l'utilisateur rel ( real user id en anglais), qui est le numro de l'utilisateur qui
a lanc le programme ;
le numro de l'utilisateur effectif ( effective user id en anglais), qui est le numro de
l'utilisateur avec les droits duquel le processus fonctionne.
Le bit setuid permet donc simplement d'affecter le numro du propritaire du fichier au numro
d'utilisateur effectif du processus lorsqu'il est lanc. Le fait de conserver le numro de l'utilisateur rel
permet au programme de raliser des vrifications de scurit additionnelles. Par exemple, la
commande passwd, qui permet de changer le mot de passe d'un utilisateur, a besoin des droits de
l'utilisateur root pour enregistrer le nouveau mot de passe. Il dispose donc du bit setuid pour que tous
les utilisateurs puissent l'utiliser. Cependant, mme s'il s'excute au nom de l'utilisateur root, il ne doit
pas permettre n'importe qui de changer le mot de passe des autres utilisateurs : seul l'utilisateur root a
le droit de faire cette opration. Il utilise donc le numro de l'utilisateur rel qui a lanc la commande
pour savoir si c'est bien l'utilisateur root qui l'a lanc.
Le bit setuid est l'attribut le plus couramment utilis, essentiellement pour certaines commandes
systmes. Il est reprsent par la lettre 's' (comme Setuid ), et il remplace le droit d'excution ('x')
des fichiers pour le propritaire des fichiers (rappelons que le bit setuid implique que le fichier est
excutable). Il n'a aucune signification pour les rpertoires.
Le deuxime attribut spcial est le bit setgid (qui est l'abrviation de l'anglais SET Group
IDentifier ). Ce bit fonctionne un peu de la mme manire que le bit setuid, ceci prs qu'il fixe le
numro de groupe effectif du processus lanc celui de son fichier excutable. Cet attribut est
galement reprsent par la lettre 's', et remplace le droit d'excution ('x') pour les utilisateurs du
groupe auquel appartient le fichier excutable. De plus, et contrairement au bit setuid, ce bit a une
signification pour les rpertoires. Un rpertoire disposant du bit setgid permet de faire en sorte que
tous les fichiers qui sont crs dans ce rpertoire se voient automatiquement attribus le mme groupe
que le rpertoire. Ce bit est relativement peu utilis.
Enfin, il existe un troisime attribut, le bit sticky . Cet attribut remplace l'attribut excutable pour
les autres utilisateurs que le propritaire du fichier 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 signification est assez spciale : elle permet de faire en sorte que les programmes restent chargs en
mmoire aprs leur terminaison, ce qui permet de les relancer plus rapidement. Afin de ne pas
consommer la mmoire de manire permanente, le code du programme est plac automatiquement
dans le swap s'il n'est toujours pas relanc aprs un certain temps, mais mme dans ce cas, tous les
calculs de chargement sont dj effectus. Le lancement des programmes 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 signification est totalement 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 d'criture sur le rpertoire, il ne peut pas supprimer tous
les fichiers de ce rpertoire. Les seuls fichiers qu'il est autoris supprimer sont ses propres fichiers.
Bien entendu, il est toujours possible d'ajouter des fichiers dans le rpertoire en question.
Les questions qui se posent videmment sont les suivantes. Est-ce qu'un particulier a besoin de tout
cela ? Ces fonctionnalits ne sont-elles pas rserves aux serveurs ? Est-ce qu'on ne risque pas de
perdre beaucoup de temps pour dfinir 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. Heureusement, les rponses sont simples. Rappelons pour commencer qu'il est trs
intressant, mme pour un particulier, de disposer de ces fonctionnalits. En effet, la scurit permet
tout simplement de protger le systme contre les erreurs des utilisateurs, voire l'utilisateur lui-mme
de ses propres erreurs. Ainsi, avec Linux, on peut faire n'importe quoi, on est certain que le systme
restera intact. Cette scurit est telle que, finalement, Linux est justement le systme d'exploitation
idal pour apprendre l'informatique quelqu'un : savoir que le systme protge tout ce qui est
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 96

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
configuration est lmentaire. Toutes les distributions s'installent de telle sorte que le systme se
protge des utilisateurs, et que ceux-ci soient indpendants les uns des autres. En pratique, les
utilisateurs n'ont tout simplement pas se soucier de tous ces attributs de fichiers. Mme
l'administrateur laisse souvent les attributs par dfaut dfinis par les distributions, car ils correspondent
la majorit des besoins de scurit.
4.3. Fonctionnalits des systmes de fichiers
Les systmes de fichiers Unix sont des systmes de fichiers extrmement volus, qui fournissent la
fois d'excellentes performances, une grande scurit, et des fonctionnalits puissantes. Peu
d'utilisateurs savent exactement quels sont les services qu'ils peuvent fournir en gnral, et beaucoup
croient que les systmes de fichiers savent juste stocker des donnes dans des fichiers organiss dans
une hirarchie de rpertoires. Mais nous allons voir qu'ils permettent de faire beaucoup mieux que
cela !
4.3.1. Le systme de fichiers virtuel
Pour commencer, il faut prciser que Linux ne travaille pas directement avec les systmes de fichiers
physiques. En effet, il interpose systmatiquement un systme de fichiers intermdiaire, nomm
Virtual File System ( VFS en abrg), qui permet aux applications d'accder diffrents
systmes de fichiers de manire indpendante de leur nature et de leur structure interne. Le systme de
fichiers virtuel ne fait pas grand chose en soi : il se contente de transfrer les requtes des applications
vers les systmes de fichiers rels. Il fournit donc une interface bien dfinie pour les applications, que
celles-ci doivent utiliser. Les systmes de fichiers rels, quant eux, doivent simplement fournir les
services dont le systme de fichiers virtuel a besoin. Tous les systmes de fichiers rels ne disposent
toutefois pas forcment de toutes les fonctionnalits demandes par le systme de fichiers virtuel.
Dans ce cas de configuration, la requte de l'application dsirant effectuer l'opration manquante
chouera tout simplement.
Comme on peut le constater, cette architecture est modulaire. Et comme on l'a vu pour l'architecture du
systme en gnral, cela apporte beaucoup de bnfices. Les plus vidents sont indiqus ci-dessous :
Linux est capable de grer plusieurs systmes de fichiers rels. La seule condition est qu'ils
doivent tous fournir les services de base exigs par le systme de fichiers virtuel ;
les applications peuvent utiliser plusieurs de ces systmes de fichiers rels de manire
uniforme, puisqu'elles n'utilisent que le systme de fichiers virtuel. Cela simplifie leur
programmation, et permet d'viter autant de bogues potentiels ;
chaque systme de fichiers rel tant indpendant des autres, il ne perturbe pas leur
fonctionnement. En particulier, un systme de fichiers corrompu ne corrompt pas les autres.
Figure 4-2. Le systme de fichiers virtuel

Avec cette architecture, un grand nombre de systmes de fichiers ont t dvelopps pour Linux.
Parmi ces systmes de fichiers, on retrouve les plus connus, savoir :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 97

le systme de fichiers EXT2, qui est le systme de fichiers natif de Linux ;
le systme de fichiers EXT3, qui est une volution du systme de fichiers EXT2 capable de
prendre en charge galement les mcanismes de journalisation (voir la note ci-dessous pour
savoir ce qu'est la journalisation d'un systme de fichiers) ainsi que les blocs dfectueux sur le
support physique ;
le systme de fichiers ReiserFS, qui supprime la notion de bloc disque et qui est galement
journalis ;
les systmes de fichiers FAT, FAT32 et FAT32X (utiliss par les systmes DOS et Windows,
ainsi que par les clefs USB et les cartes mmoire) ;
le systme de fichiers NTFS (utilis par Windows NT, Windows 2000 et XP), en lecture et
partiellement en criture (seul l'crasement des donnes existantes dans un fichier, sans
redimensionnement, est autoris l'heure actuelle) ;
le systme de fichiers 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 fichiers Joliet (extensions de Microsoft pour Windows 95) et Rock
Ridge (extensions utilises par tous les systmes Unix) ;
le systme de fichiers NFS (utilis pour distribuer sur un rseau un systme de fichiers).
Note : La journalisation consiste crire sur le disque toutes les oprations en cours chaque instant.
Ainsi, lorsqu'un redmarrage intempestif se produit, le systme peut ramener rapidement la structure
de donnes du systme de fichiers dans un tat cohrent. La journalisation accrot donc encore la
fiabilit du systme de fichiers.
Linux gre galement d'autres systmes de fichiers natifs ou utiliss par d'autres systmes
d'exploitation (Unix ou non). Il permet mme d'intgrer des pseudo systmes de fichiers gnrs par le
noyau. Ces systmes de fichiers sont compltement fictifs : leur structure et leurs fichiers sont gnrs
dynamiquement par le noyau lorsqu'une application y accde. Ils sont principalement utiliss pour
fournir aux applications des informations que le noyau met leur disposition, pour raliser des
systmes de fichiers en mmoire, et pour grer l'ensemble des fichiers spciaux de priphriques
installs sur l'ordinateur.
Les systmes de fichiers natifs de Linux sont de loin les systmes de fichiers les plus fonctionnels, les
plus fiables et les plus courants. Le choix du systme de fichiers dpend donc gnralement de l'usage
que l'on en fera, certains systmes de fichiers tant plus appropris pour certains types d'utilisation. Si
l'on recherche essentiellement la stabilit, je recommande le systme de fichiers EXT3, car c'est pour
l'instant le seul systme de fichiers capable de prendre en compte les blocs dfectueux sur le support
physique.
Quoi qu'il en soit, on ne pourra installer Linux que sur un systme de fichiers de type Unix. Ces
systmes de fichiers sont tous plus fonctionnels et plus performants que les systmes de fichiers FAT.
Leurs principales fonctionnalits sont les suivantes :
les accs aux fichiers sont rapides, mme plus rapides que les systmes de fichiers bass sur la
FAT sous Windows, qui pourtant ne grent pas les droits des utilisateurs ni les autres
fonctionnalits avances des systmes de fichiers Unix ;
la fragmentation des fichiers est quasiment inexistante. En fait, la fragmentation des fichiers
existe effectivement, mais les algorithmes utiliss par les systmes de fichiers pour allouer les
blocs du disque dur lors de l'criture dans un fichier sont suffisamment volus pour viter
qu'elle ne se produise de manire trop importante. De plus, les algorithmes de lecture anticipe
des blocs et de mise en mmoire cache des donnes lues du sous-systme d'entre/sortie
masquent compltement les latences dues la fragmentation. De ce fait, en pratique, la
fragmentation n'a pas d'impact sur les performances du systme, et peut tre tout simplement
ignore. Pour donner un ordre de grandeur, aprs installation, suppression, manipulation d'un
grand nombre d'applications et de petits fichiers sur une partition EXT2 de 800 Mo, le tout
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 98

ralis par plusieurs processus fonctionnant en mme temps, la fragmentation reste infrieure
1% sur 57571 fichiers (sur un total de 249856 fichiers que le systme de fichiers pourrait
contenir) ;
quant la fiabilit, elle est gre grce un stockage redondant des principales structures de
donnes internes. Ainsi, si une erreur apparat dans le systme de fichiers, les parties
dfectueuses peuvent tre reconstitues partir des informations sauvegardes. Cette
rparation est ralise automatiquement chaque redmarrage de la machine si ncessaire.
4.3.2. Liens symboliques et liens physiques
Une fonctionnalit intressante fournie par les systmes de fichiers Unix est la possibilit de raliser
des liens sur des fichiers ou des rpertoires.
Un lien est une rfrence un fichier 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 fichier au niveau de la structure mme du systme de fichiers, et les liens
symboliques, qui ne sont rien d'autre qu'un fichier 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 fichiers que celui dans lequel ils sont crs. La
limitation sur les rpertoires permet d'viter de construire des cycles dans la structure du systme de
fichiers. Quant la limitation la frontire des systmes de fichiers, elle est obligatoire puisque les
liens physiques sont grs directement au niveau de la structure du systme de fichiers. En revanche,
ils prsentent des avantages certains :
le dplacement des cibles ne les perturbe pas si celles-ci restent dans le mme systme de
fichiers, 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
fichier partagent la mme structure de donnes du systme de fichiers, et celle-ci n'est
rellement dtruite qu' la destruction du dernier lien physique.
En fait, toute entre de rpertoire est un lien physique sur le contenu du fichier. Le fait d'avoir
plusieurs liens physiques sur les mmes donnes correspond disposer de plusieurs entres de
rpertoire donnant accs aux mmes donnes dans le systme de fichiers. Il serait possible de crer des
liens physiques dans un systme de fichiers FAT, mais ils seraient interprts comme des rfrences
croises par les outils de vrification de disque. Le systme de fichiers 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 fichiers ou des rpertoires se trouvant
dans d'autres systmes de fichiers que le leur. C'est pour cette raison qu'ils sont trs couramment
utiliss (en fait, les liens physiques ne sont quasiment pas utiliss, parce qu'il 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 s'y rfrent deviennent invalides.
La rfrence sur le fichier ou le rpertoire cible contenue dans les liens symboliques peut tre soit
relative l'emplacement de leur cible, soit absolue dans le systme de fichiers. Chacune de ces
mthodes a ses avantages et ses inconvnients : les liens symboliques qui contiennent des rfrences
relatives ne sont pas briss lors d'un dplacement de la cible, pourvu qu'ils soient dplacs galement
et restent la mme position relative par rapport celle-ci dans la hirarchie du systme de fichiers.
En revanche, ils sont briss s'ils sont dplacs et que la cible ne l'est pas. Les liens symboliques
utilisant des rfrences absolues sont systmatiquement briss lorsque la cible est dplace, mais ils
restent valides lorsqu'ils sont eux-mmes dplacs. Comme en gnral c'est le comportement que l'on
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 99

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 n'est jamais une bonne ide. Le tableau suivant rcapitule les avantages et les inconvnients
des diffrents types de liens :
Tableau 4-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 fichiers
Non Oui Oui
Peuvent rfrencer des rpertoires Non Oui Oui
4.3.3. Autres fonctionnalits
Les systmes de fichiers de Linux fournissent galement des fonctionnalits qui peuvent tre
intressantes, mais que l'on utilise gnralement moins souvent.
La premire de ces fonctionnalits est les quotas. Ceux-ci permettent de dfinir la proportion d'espace
disque que chaque utilisateur peut consommer dans le systme de fichiers. Ainsi, il est possible de
restreindre les utilisateurs et d'viter qu'un seul d'entre eux ne consomme l'ensemble des ressources
disque. En pratique, cette fonctionnalit n'est pas d'une grande utilit pour un particulier, qui souvent
est le seul utilisateur de sa machine.
Note : Sachez toutefois que les systmes de fichiers rservent gnralement une petite partie (environ
5%) de l'espace disque pour l'administrateur du systme, afin de s'assurer que celui-ci pourra toujours
effectuer les oprations de maintenance en cas de saturation du systme de fichiers. Cet espace libre
est galement utilis pour les mcanismes de dfragmentation automatique des systmes de fichiers.
Les systmes de fichiers permettent galement d'enregistrer des informations complmentaires sur les
fichiers, afin par exemple de pouvoir les marquer pour un traitement spcifique. Ces informations
complmentaires sont stocks sous la formes d'attributs , pouvant contenir virtuellement n'importe
quel type d'information. Certains systmes de fichiers utilisent cette fonctionnalit pour implmenter
les mcanismes de scurit bass sur les ACLs.
Enfin, les systmes de fichiers Unix sont galement capables de prendre en charge ce que l'on appelle
les fichiers trous ( sparse files en anglais). Ces fichiers sont des fichiers contenant des donnes
spares par de grands espaces vides. On peut donc dire qu'ils sont presque vides . Pour ces
fichiers, il est vident qu'il est inutile de stocker les espaces vides sur le disque. Les systmes de
fichiers mmorisent donc tout simplement qu'ils contiennent des trous, et ils ne stockent que les
donnes relles et la position des trous avec leurs tailles. Cela constitue une conomie de place non
ngligeable. Les applications classiques des fichiers presque vides sont les bases de donnes, qui
utilisent souvent des fichiers structurs contenant relativement peu de donnes effectives, et les images
disque pour installer des systmes d'exploitation dans des machines virtuelles.

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 100

4.4. Structure du systme de fichiers
Nous allons prsent nous intresser l'organisation du systme de fichiers de Linux. Ce systme de
fichiers contient un certain nombre de rpertoires et de fichiers standards, qui ont chacun une fonction
bien dfinie. 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 d'un systme un
autre, et les utilisateurs ne sont pas dpayss lorsqu'ils changent de machine (en fait, cette structure est
peu prs la mme pour tous les systmes Unix, ce qui donne encore plus de poids l'argument
prcdent).
Cette organisation standard du systme de fichiers a t conue de telle manire que les donnes et les
programmes sont placs chacun leur place, et qu'ils puissent tre facilement intgrs dans un rseau.
L'intgration dans un rseau sous-entend que les fichiers des programmes peuvent tre partags par les
diffrentes machines de ce rseau, ce qui permet d'conomiser beaucoup de place. De plus, il est
possible d'accder la plupart des ressources du systme grce une interface uniforme. En
particulier, il est possible d'accder tous les priphriques installs sur l'ordinateur par l'intermdiaire
de fichiers spciaux, et on peut rcuprer des informations sur le systme mises disposition par le
noyau simplement en lisant des fichiers gnrs par un pseudo systme de fichiers. Le tableau suivant
dcrit les principaux lments de l'arborescence du systme de fichiers de Linux.
Tableau 4-2. Hirarchie standard du systme de fichiers
Rpertoire Signification
/
Rpertoire racine. Point de dpart de toute la hirarchie du systme de fichiers. Le
systme de fichiers contenant ce rpertoire est mont automatiquement par le
noyau pendant l'amorage du systme. Ce systme de fichiers est appel systme
de fichiers racine ( root en anglais).
/boot/
Rpertoire contenant le noyau de Linux et ses informations de symboles. Ce
rpertoire est parfois le point de montage d'un systme de fichiers de trs petite
taille, ddi au noyau. Dans ce cas, il est recommand que le systme de fichiers
correspondant soit mont en lecture seule. On notera que sur certains systmes, le
noyau reste plac dans le rpertoire racine. Cette technique n'est pas
recommande, car on ne peut pas monter en lecture seule la partition racine en
utilisation normale du systme.
/boot/vmlinuz
Noyau compress de Linux. Les noyaux compresss se dcompressent
automatiquement lors de l'amorage du systme. Sur certains systmes, le noyau
est encore plac dans le rpertoire racine du systme de fichiers.
/boot/System.map
Fichier systme contenant la liste des symboles du noyau. Ce fichier 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) afin de donner le nom de la fonction du noyau dans lequel un
processus se trouve bloqu lorsqu'il est en attente de la fin d'une opration que le
noyau doit excuter pour lui.
/dev/
Rpertoire contenant tous les fichiers spciaux permettant d'accder aux
priphriques. Comme on l'a vu, hormis les interfaces rseau, les priphriques
sont gnralement accessibles au travers de fichiers spciaux. Ces fichiers
permettent l'envoi et la rception des donnes vers les priphriques associs, et ce
de manire uniforme. Tous ces fichiers spciaux sont tous placs dans le rpertoire
/dev/. Gnralement, le rpertoire /dev/ est un systme de fichiers virtuel (c'est--
dire un systme de fichiers qui est compltement gr en mmoire par le noyau),
qui est rempli dynamiquement par le systme en fonction du matriel install. Le
rpertoire /dev/ ne contient donc que les fichiers spciaux des priphriques pour
lesquels le noyau dispose effectivement d'un pilote de priphrique charg.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 101

Rpertoire Signification
Toutefois, il est galement possible que ce rpertoire soit effectivement pr-rempli
avec les fichiers spciaux de la plupart des priphriques existants sur le march,
mme ceux qui ne sont pas physiquement prsents dans la machine. Dans ce cas,
les oprations sur les fichiers spciaux des priphriques non installs seront tout
simplement refuses par le noyau. Ce type de configuration se rencontre encore
assez souvent sur des installations assez anciennes. Quoi qu'il en soit, quelle que
soit la technique utilise, ce rpertoire doit tre imprativement plac dans le
systme de fichiers racine.
/sbin/
Rpertoire contenant les commandes systmes ncessaires l'amorage et
rserves l'administrateur. Ce rpertoire doit tre imprativement plac dans le
systme de fichiers racine. En gnral, seul l'administrateur utilise ces commandes.
/bin/
Rpertoire contenant les commandes systmes gnrales ncessaires l'amorage.
Ce rpertoire doit tre imprativement plac dans le systme de fichiers 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
fichiers racine.
/lib64/
Sur les systmes 64 bits bass sur une architecture x86_64 (processeurs AMD
Athlon64 ou ultrieurs, ou processeurs Intel avec jeu d'instruction EMT64),
rpertoire quivalent au rpertoire /lib/ pour les bibliothques 64 bits natives. Ces
machines tant capables d'excuter des programmes 32 bits en plus des
programmes natifs 64 bits, il est ncessaire de fournir deux jeux de bibliothques
pour les deux modes de fonctionnement. Normalement, le rpertoire /lib/ devrait
tre utilis pour les bibliothques natives, mais il est d'usage de continuer y
placer les bibliothques 32 bits pour des raisons de compatibilit ascendante, les
programmes 32 bits cherchant naturellement leurs bibliothques dans ce rpertoire.
/lib32/
Sur les systmes 64 bits natifs bass sur une architecture x86_64 (processeurs
AMD Athlon64 ou ultrieurs, ou processeurs Intel avec jeu d'instruction EMT64),
rpertoire des bibliothques 32 bits si les bibliothques 64 bits natives sont places
dans le rpertoire /lib/. Attention, sur les systmes qui utilisent ce type
d'organisation, les paquetages 32 bits natifs ne peuvent pas tre installs sans
modification, car ils placeraient leurs bibliothques 32 bits dans le rpertoire /lib/,
qui contient dans ce cas des bibliothques 64 bits. Raliser une installation de
paquetages non modifis dans ces conditions peut craser les bibliothques 64 bits
natives et donc provoquer de graves dysfonctionnements.
/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 d'amorage 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 fichiers
racine.
/etc/
Rpertoire contenant tous les fichiers de configuration du systme. Ce rpertoire
doit tre imprativement plac dans le systme de fichiers racine.
/etc/X11/
Rpertoire contenant les fichiers de configuration de l'environnement graphique
XWindow.
/etc/rc.d/
Rpertoire contenant les scripts de dmarrage du systme. Ces scripts sont
excuts lorsque le systme dmarre ou s'arrte, ainsi que lorsqu'il change de mode
de fonctionnement. Il est galement possible de les excuter pour dmarrer ou
arrter un service particulier. Dans certaines distributions, ces fichiers sont placs
dans le rpertoire /sbin/init.d/.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 102

Rpertoire Signification
/etc/opt/ Rpertoire contenant les fichiers de configuration des applications.
/tmp/
Rpertoire permettant de stocker des donnes temporaires. En gnral, /tmp/ ne
contient que des donnes trs phmres. Il est prfrable d'utiliser le rpertoire
/var/tmp/. En effet, le rpertoire /tmp/ ne dispose pas ncessairement de beaucoup
de place disponible.
/usr/
Rpertoire contenant les fichiers du systme partageables en rseau et en lecture
seule.
/usr/bin/
Rpertoire contenant la plupart des commandes des utilisateurs et des logiciels
installs.
/usr/sbin/
Rpertoire contenant les commandes systmes non ncessaires l'amorage. Ces
commandes ne sont normalement utilises que par l'administrateur 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/lib64/
Sur les systmes 64 bits bass sur une architecture x86_64 (processeurs AMD
Athlon64 ou ultrieurs, ou processeurs Intel avec jeu d'instruction EMT64),
rpertoire quivalent au rpertoire /usr/lib/ pour les bibliothques 64 bits natives.
La raison pour laquelle les bibliothques 64 bits natives de ces systmes n'est pas
place dans le rpertoire /usr/lib/ est la mme que pour les bibliothques du
rpertoire /lib64/.
/usr/lib32/
Sur les systmes 64 bits natifs bass sur une architecture x86_64 et utilisant le
rpertoire /usr/lib/ pour les bibliothques 64 bits natives, rpertoire contenant les
bibliothques 32 bits. Les mmes prcautions d'usage que celles indiques pour le
rpertoire /lib32/ s'appliquent ici.
/usr/include/
Rpertoire contenant les fichiers d'en-ttes du systme pour le compilateur C/C++.
Les fichiers de ce rpertoire sont utiliss pour raliser des programmes dans les
langages de programmation C et C++.
/usr/X11/
Rpertoire historique qui contenait l'environnement graphique X11 et ses
applications sur les anciennes distributions. Dans les distributions rcentes
(environnement X11 bas sur X.org de version 7.0 ou plus), X11 est prsent
directement install dans le rpertoire /usr/, et ce rpertoire n'est plus conserv qu'
titre de compatibilit sous la forme de liens symboliques. Ce rpertoire contient
des sous-rpertoires bin/, lib/ et include/, o se trouvent les excutables de
XWindow, les bibliothques et les fichiers d'en-ttes pour crer des programmes
pour XWindow en C et C++.
/usr/share/
Rpertoire contenant l'ensemble des donnes et des fichiers partags par les
applications du systme. C'est ici que sont par exemple stockes les polices de
caractres, les sons et les images utiliss par les environnements de bureau, les
fonds d'cran, les fichiers d'aide ou encore les associations de fichiers avec leurs
extensions.
/usr/src/
Rpertoire contenant les fichiers 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, afin de pouvoir changer la configuration du
systme tout moment.
/usr/local/
Rpertoire contenant les programmes d'extension du systme indpendants de la
distribution. Ce n'est toutefois pas le rpertoire d'installation des applications, que
l'on installera en gnral dans le rpertoire /opt/. local ne signifie 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 qu'on ne trouve donc
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 103

Rpertoire Signification
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 signification que les
rpertoires du mme nom de /usr/, ceci prs qu'ils 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 fichiers temporaires. Il est prfrable d'utiliser 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. C'est dans ce
rpertoire que l'on peut consulter les messages d'erreurs du systme et des
applications.
/var/spool/
Rpertoire contenant les donnes en attente de traitement. Les travaux
d'impression en cours, les mails et les fax en attente d'mission, les travaux
programms en attente d'excution 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 fichier
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 historique contenant les applications qui ne font pas rellement partie
du systme d'exploitation. En particulier, sur les anciennes distributions, le
gestionnaire de bureau KDE tait install dans le sous-rpertoire /opt/kde/, mais
prsent il est considr comme partie intgrante du systme et est donc install
directement dans le rpertoire /usr/ sur les distributions rcentes.
/home/
Rpertoire contenant les rpertoires personnels des utilisateurs. Il est fortement
recommand de placer ce rpertoire dans un systme de fichiers indpendant de
ceux utiliss par le systme. Cela permet de faire des sauvegardes plus facilement,
et de faire les mises jour du systme de manire sre, sans craindre de perdre les
donnes des utilisateurs.
/root/
Rpertoire contenant le rpertoire personnel de l'administrateur. Il est donc
recommand que le rpertoire personnel de l'administrateur soit plac en dehors de
/home/ pour viter qu'un problme sur le systme de fichiers des utilisateurs ne
l'empche de travailler. Toutefois, il est important que l'administrateur puisse
travailler mme si les rpertoires /root/ et /home/root/ ne sont pas prsents. Dans
ce cas, son rpertoire personnel sera le rpertoire racine.
/media/
Rpertoire rserv au montage des systmes de fichiers sur priphriques
amovibles (CD-ROM, disquettes, etc.). Ce rpertoire peut contenir plusieurs sous-
rpertoires pour chaque priphrique amovible, afin de permettre d'en monter
plusieurs simultanment. Notez qu'il est assez courant de disposer de liens
symboliques dans la racine rfrenant les principaux systmes de fichiers, afin
d'en simplifier l'accs. Par exemple, il est courant d'avoir un rpertoire /floppy/
rfrenant le lecteur de disquette et un rpertoire /cdrom/ rfrenant le lecteur de
CD-ROM.
/mnt/ Rpertoire rserv l'administrateur pour le montage temporaire des systmes de
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 104

Rpertoire Signification
fichiers lors de leur maintenance (disques d'installation, disques durs externes qui
ne doivent pas tre manipulables par les utilisateurs, etc.). Ce rpertoire peut
contenir plusieurs sous-rpertoires pour chaque priphrique hbergeant les
systmes de fichiers en question, afin de permettre d'en monter plusieurs
simultanment. Notez que ce rpertoire contenait historiquement les mmes
entres que le rpertoire /media/, qui a t introduit rcemment afin de sparer les
oprations de montage ralises dans un but purement administratif des oprations
de montage ralises dans un contexte d'utilisation normale des systmes de
fichiers sur priphriques amovibles.
/lost+found/
Rpertoire contenant les donnes rcupres lors de la rparation d'un systme de
fichiers endommag. Ces donnes sont crites par les utilitaires de vrification et
de rparation des systmes de fichiers lorsqu'ils trouvent des informations qui ne
peuvent tre rattaches aucun fichier 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 fichiers du noyau. Ce pseudo systme
de fichiers contient des fichiers permettant d'accder aux informations sur le
matriel, la configuration du noyau et sur les processus en cours d'excution.
/sys/
Rpertoire contenant le pseudo systme de fichiers des gestionnaires de
priphriques. Ce pseudo systme de fichiers contient des fichiers permettant
d'obtenir des informations sur l'ensemble des objets du noyau, en en particulier sur
l'ensemble des priphriques de l'ordinateur. Ce systme de fichiers est appel
recevoir une bonne partie des informations exposes par le systme de fichiers
/proc/, dont le rle se restreindra sans doute fournir des informations plus
gnrales et raliser la configuration des fonctions gnrales du systme.
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 fichiers version 2.3 ( FHS en anglais). Vous
pouvez consulter ce document pour une description exhaustive du systme de fichiers de Linux.
Vous avez pu constater que les rpertoires bin/, lib/, include/ et src/ apparaissent rgulirement dans la
hirarchie du systme de fichiers. Cela est normal : les rpertoires sont classs par catgorie
d'applications 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 gnrer ces programmes.
Dans le cas de Linux, ce compilateur est gcc (pour GNU C Compiler ). La cration d'un
programme ncessite que l'on dispose des fichiers sources, qui contiennent le programme crit dans un
langage de programmation, des fichiers d'en-ttes, qui contiennent les dclarations de toutes les
fonctions utilisables, et des fichiers de bibliothques statiques, contenant ces fonctions. Ces diffrents
fichiers 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.
Chapitre 5 : Commandes Unix de base
Table des matires

5.1. Login et dconnexion
5.2. Arrt et redmarrage du systme
5.3. Pages de manuel
5.4. Oprations de base sur les rpertoires
5.5. Notions sur les chemins Unix
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 105

5.6. Oprations de base sur les fichiers
5.7. Autres commandes utiles
5.8. vi, l'diteur de fichiers de base
5.9. Utilisation du shell bash
Mais pour cela, il va falloir que vous appreniez les commandes Unix de base et la manire d'utiliser un
systme Linux en ligne de commande (c'est--dire en mode texte, sans XWindow).
5.1. Login et dconnexion
Comme il l'a dj t dit, Linux est un systme multi-utilisateur. Il faut donc que chacun s'identifie
pour que le systme puisse fonctionner correctement. Cela est ralise lors de l'opration dite de login
(du verbe anglais to log in , qui signifie s'enregistrer dans le systme). Le login consiste
essentiellement taper son nom d'utilisateur, 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 d'accder au systme d'une autre
manire, et la vrification du mot de passe fournit l'authenticit de l'utilisateur 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 identifier avec la ligne
suivante :
login:
D'autres informations peuvent tre affiches avant le mot login, qui peuvent vous renseigner sur la
nature du systme. Quoi qu'il en soit, vous devez taper votre nom d'utilisateur (que l'on appelle
simplement login ), ou root si vous dsirez vous connecter en tant qu'administrateur. 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 n'aurez plus qu'une seule solution : dmarrer l'ordinateur partir d'une disquette systme,
et faire le mnage dans le fichier de mots de passe. Cette opration n'est jamais trs agrable raliser.
Conclusion : n'oubliez 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 (c'est--dire un terminal graphique). La procdure peut varier selon l'environnement utilis,
mais le principe reste toujours le mme : il faut fournir son nom d'utilisateur et son mot de passe.
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 l'utilisateur local,
plusieurs terminaux virtuels. Cela signifie qu'il est possible de se connecter plusieurs fois dans le
systme dans des terminaux diffrents. Pour passer d'un terminal virtuel un autre, il suffit de taper les
combinaisons de touches ALT+DROITE ou ALT+GAUCHE, o DROITE et GAUCHE sont
respectivement les flches du curseur droite et gauche. Il est galement possible d'accder un
terminal donn l'aide de la combinaison de touches ALT+Fn, o Fn est l'une 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 lorsqu'on est sous XWindow, les combinaisons ALT+Fn ont une autre signification. Elles
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 106

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 dfinie, spcialement pour XWindow :
CTRL+ALT+Fn. Il suffit donc simplement d'utiliser la touche CTRL en plus de la touche ALT.
L'utilisation des terminaux virtuels est trs pratique, mme pour un seul utilisateur. En effet, ceux-ci
permettent de lancer plusieurs programmes simplement, raison d'un par terminal virtuel, et de s'y
retrouver ainsi plus facilement. Pour ceux qui ne connaissent pas les systmes Unix, il est
recommand de jouer un peu avec les terminaux virtuels afin de simuler la prsence de plusieurs
utilisateurs. Ils auront ainsi un aperu de la puissance de ces systmes.
Lorsqu'on a fini de travailler, il faut se dconnecter. Cette opration est trs simple pour les terminaux
non graphiques, puisqu'il suffit de taper la commande suivante :
logout
Si d'aventure 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 l'environnement 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 l'environnement de travail,
afin d'appeler 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 l'intrus. Bien entendu, ce genre de
considration n'a pas autant d'importance 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 d'exploitation modernes, ne
peut pas tre arrt en teignant directement l'ordinateur, comme on le faisait autrefois avec le DOS.
En effet, la plupart des systmes d'exploitation utilisent une partie de la mmoire de l'ordinateur 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 qu'on 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 qu'une requte de lecture sur des donnes dj situes en mmoire est infiniment plus rapide
que si elles ne s'y trouvaient pas. Il est en revanche plus difficile de comprendre pourquoi les requtes
d'criture doivent tre diffres. La raison est la suivante : le systme prfre diffrer l'criture
physique sur le disque parce qu'une autre requte d'criture dans la mme zone du disque peut trs
bien avoir lieu ultrieurement. Si les donnes qui n'ont pas t crites sont ainsi modifies par une
requte ultrieure, il n'est 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 d'une 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 n'ont pas tre dplaces). Enfin, si les
donnes qui doivent tre crites font l'objet d'une requte de lecture, il va de soi qu'elles 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 d'entres / sorties, ce qui en fait un
systme extrmement performant. Le gain en performances peut facilement atteindre un facteur 3 ou
4.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 107

Le problme majeur est videmment que si l'on teint l'ordinateur brutalement, les donnes dont
l'criture a t diffre sont perdues. Pire, parmi ces donnes, il est probable qu'il y ait des
informations vitales pour le systme de fichiers, ce qui fait qu'il risque fort d'tre endommag. Les
systmes de fichiers journaliss comme EXT3 et ReiserFS sont l'abri de ce type d'erreur en raison de
l'accs transactionnel aux structures de donnes des systmes de fichiers qu'ils utilisent, et le systme
parvient gnralement rparer les autres systmes de fichiers lors de la vrification qui est lance au
redmarrage suivant de la machine, mais il est inutile de prendre des risques. Tout cela signifie qu'il
est impratif de prvenir le systme avant de l'arrter, pour qu'il puisse crire les donnes situes dans
ses tampons.
L'arrt du systme est une opration qui est du ressort de l'administrateur. 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 d'arrter le systme.
reboot, qui permet de le redmarrer.
Ces commandes sont en fait des scripts permettant d'effectuer les oprations d'arrt 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 l'option -r permet de demander un redmarrage et non un arrt simple.
Il est galement possible que votre gestionnaire de bureau vous donne le moyen d'arrter l'ordinateur
par l'intermdiaire de l'interface graphique de X11. La technique utiliser dpend videmment de
l'environnement 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 lorsqu'on appuie sur les touches CTRL+ALT+SUPPR simultanment dans
un terminal virtuel.
5.3. Pages de manuel
Maintenant que vous savez l'essentiel 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 d'obtenir de l'aide !
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 afficher la page de manuel d'une commande, il suffit d'utiliser 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 afficher l'aide
sur la commande cp, il suffit de taper :

man cp
Lorsqu'une page de man est affiche, il est possible de faire dfiler son texte l'aide des touches du
curseur. Pour quitter l'aide, il suffit d'appuyer sur la touche q.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 108

Les pages de man sont classes en groupes de pages thmatiques, chaque groupe tant identifi
gnralement par un numro ou une lettre. Si la page de man affiche ne correspond pas celle
dsire, c'est qu'une page homonyme d'un autre groupe a t utilise. Dans ce cas, il faut prciser
l'identificateur du groupe de pages de manuel avant le nom de la page afficher :
man groupe page

o groupe est l'identificateur du groupe auquel la page de manuel appartient. Les principaux groupes
sont les suivants :
Tableau 5-1. Groupes de pages de man
Identificateur Type de pages de manuel
1 Commandes utilisateur
2 Appels systmes (programmation en C)
3 Fonctions de la bibliothque C
4 Description des fichiers spciaux
5 Description des fichiers de configuration
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 l'option -k,
qui permet d'afficher l'ensemble des pages disponibles portant ce nom :
man -k commande
L'identificateur 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 l'aide 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 utiliser
le programme propos, qui recherchera toutes les pages de manuel qui contiennent un mot cl
particulier. Ce programme s'utilise avec la syntaxe suivante :
propos mot

o mot est le mot cl rechercher dans toutes les pages de manuel.
La commande man est la commande d'aide standard sur tous les systmes Unix. Cependant, Linux
utilise un grand nombre de commandes crites sous la licence GNU, et qui utilisent un format d'aide
spcifique GNU. L'aide 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 d'info, car la commande que vous utilisez est sans aucun doute une commande
GNU, qui a t fournie avec sa page d'information. Il est donc recommand de lire plutt la page
d'information GNU.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 109

Le format d'aide GNU est plus riche que celui de man, puisqu'il permet de naviguer dans le systme
d'aide l'aide de liens hypertextes. Ces liens sont organiss hirarchiquement, avec des chapitres et
des sous-chapitres. Chaque chapitre dispose d'une forme de table des matires constitue de menus,
qui permettent d'accder aux sous-chapitres. Les menus se distinguent du texte normal par un
astrisque ( * ) en dbut de ligne dans la table des matires. Les commandes clavier suivantes
pourront vous tre utiles pour naviguer dans la hirarchie du systme d'aide 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 d'un niveau dans le systme d'aide et d'atteindre
la table des matires rfrenant le chapitre courant.
Enfin, la commande q permet de quitter le systme d'aide.
5.4. Oprations de base sur les rpertoires
Ce paragraphe va vous dcrire les oprations de base qu'il faut savoir faire pour manipuler les
rpertoires du systme de fichiers.
La premire commande est videmment celle qui permet de lister le contenu d'un rpertoire. Elle
dispose d'un grand nombre d'options :
ls [options] [fichier]

o fichier est le nom d'un fichier ou d'un rpertoire que l'on dsire lister. Si ce paramtre est absent, ls
affichera tous les fichiers du rpertoire courant. Les principales options sont -l, qui permet d'afficher
des informations tendues (notamment les propritaires, les groupes, les droits, la taille et
ventuellement les liens), et -a, qui permet d'afficher tous les fichiers, y compris les fichiers 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 :
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 n'est spcifi,
cette commande change le rpertoire courant pour le rpertoire personnel de l'utilisateur. Par exemple,
pour aller dans le rpertoire d'installation de XWindow, il faut taper la commande suivante :

cd /usr/X11
La notion de chemin sera dtaille dans le paragraphe suivant. cd est l'abrviation de l'anglais
Change Directory .
La troisime commande permet de crer un rpertoire :
mkdir chemin

o chemin est le chemin spcifiant le rpertoire crer. Si le chemin ne contient que le nom du
rpertoire crer, celui-ci est cr dans le rpertoire courant et devient donc un sous-rpertoire.
mkdir est l'abrviation de l'anglais MaKe DIRectory ).
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 110

La commande pour supprimer un rpertoire est la suivante :
rmdir chemin
Pour supprimer un rpertoire, il faut qu'il soit vide (c'est--dire qu'il ne contienne ni fichier, ni
rpertoire). rmdir est l'abrviation de l'anglais ReMove DIRectory .
Enfin, voici une commande dont vous ne vous servirez normalement que trs peu, voire pas du tout.
Elle permet d'afficher le rpertoire courant :
pwd
Cette commande n'est a priori pas trs utile, car le shell affiche toujours le rpertoire courant sur la
plupart des distributions. Cependant, le chemin affich par le shell tant relatif au rpertoire personnel
de l'utilisateur lorsqu'on se trouve dans un sous-rpertoire de celui-ci, la commande pwd peut tre utile
lorsqu'on dsire obtenir un chemin absolu sur le rpertoire courant. pwd est l'abrviation de
l'anglais Print Working Directory . Cette commande est galement utilise par les scripts pour
dterminer le rpertoire partir duquel ils sont excuts.
5.5. Notions sur les chemins Unix
Les chemins Unix permettent de qualifier compltement un rpertoire ou un fichier sur le disque.
Comme on l'a vu, ils utilisent pour cela les noms de ces rpertoires et de ces fichiers, et ils les
combinent pour indiquer comment atteindre la cible dans le systme de fichiers. Sous Unix, le
sparateur utilis pour sparer les diffrents constituants du nom est la barre oblique ( / ). Le
rpertoire racine n'a pas de nom, et peut donc tre rfrenc par une barre oblique seule.
Les chemins peuvent tre absolus (c'est--dire qu'ils peuvent partir du rpertoire racine) ou relatifs
(c'est--dire quils peuvent partir du rpertoire courant). Si l'on utilise un chemin relatif, il faut savoir
que le rpertoire courant est dsign par un point ( . ), et que le rpertoire parent du rpertoire
courant est dsign par deux points successifs ( .. ). Ainsi, si l'on 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 qu'il 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 concernent pas un utilisateur de
base.
La plupart des shells sont capables d'effectuer ce que l'on appelle la compltion automatique des
commandes. La compltion automatique permet de n'crire qu'une partie des noms de fichiers 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 d'utiliser une
touche spciale qui permet de demander au shell de le complter. Si vous utilisez le shell bash (bash
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 111

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 fichiers et des rpertoires qui commencent par ho dans le rpertoire
racine. Normalement, il ne s'y trouve que le rpertoire /home/, et c'est ce nom que bash utilise. Il va de
soi qu'il ne faut pas qu'il 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 utiliser
entre /usr/lib/ et /usr/local/. Dans ce cas, il mettra un petit bip signalant l'erreur. En appuyant une fois
de plus sur la touche de tabulation, bash affiche la liste des choix possibles et vous propose de
terminer la ligne de commande en saisissant des caractres supplmentaires afin de rsoudre
l'ambigut.
La deuxime solution est d'utiliser les caractres gnriques du shell. Ces caractres permettent de
dsigner n'importe quel caractre, ou n'importe quelle squence de caractres. Ils sont dsigns
respectivement par un point d'interrogation ( ? ) et par un astrisque ( * ). Ainsi, si l'on 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 d'crire :

cd /?ome

et dans ce cas le caractre gnrique ? sera remplac par h . Encore une fois, il ne faut pas qu'il
y ait ambigut. Dans le cas contraire, le comportement varie selon le shell. En gnral, il essaie de
rsoudre l'ambigut au mieux en analysant la suite du chemin, et s'il ne peut pas, il affiche un message
d'erreur.
Note : Ces caractres gnriques sont interprts directement par le shell et non par la commande qui
les reoit en paramtres. Tout nom de fichier contenant un caractre gnrique est remplac par la liste
des fichiers qui correspondent au motif donn. S'il n'existe qu'un seul fichier dans cette liste, il est
possible d'utiliser les commandes comme cd, qui ne prennent qu'un seul paramtre. Mais il est possible
d'utiliser les commandes acceptant plusieurs paramtres, mme s'il y a plusieurs fichiers dans cette
liste. Ainsi, la commande suivante :
ls *txt

permet de lister tous les fichiers dont le nom se termine par txt . Il ne peut videment pas y avoir
d'ambigut dans ce cas.
Si on doit passer un paramtre comprenant l'un des caractres gnriques interprts par le shell une
commande particulire, on devra prfixer les caractres gnriques d'un caractre d'chappement pour
signaler au shell qu'il ne doit pas l'interprter. Ce caractre d'chappement est la barre oblique inverse
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 112

( \ ). Il est galement possible de passer les paramtres entre guillemets " , car le shell n'interprte
pas les caractres gnriques dans les chanes de caractres. Par exemple, pour crer un rpertoire ?,
on utilisera la commande suivante :
mkdir \?
Les noms de fichiers commenant par un tiret (caractre '-') posent galement des problmes avec la
plupart des commandes, car ce caractre est utilis pour spcifier des options. Ce n'est pas le shell qui
interprte ce caractre dans ce cas, mais le problme est le mme. La plupart des commandes utilisent
l'option - (elle-mme introduite par un tiret, ce qui fait donc deux tirets accols) pour signaler que ce
qui suit dans leur ligne de commande ne contient plus d'options, et ne doit donc plus tre interprt. Il
suffit donc de faire prcder le nom du fichier par deux tirets pour arrter l'interprtation des options.
Par exemple, pour afficher les informations relatives un fichier nomm -l , il faudrait utiliser la
commande suivante :
ls -l -- -l
Enfin, sachez que le caractre '~' reprsente le rpertoire personnel de l'utilisateur courant. Il est donc
trs facile d'accder aux fichiers et aux rpertoires de son rpertoire personnel (situ, rappelons-le,
dans le rpertoire /home/). Par exemple, pour lister le contenu de son rpertoire personnel, on utilisera
la commande suivante :
ls -l ~
5.6. Oprations de base sur les fichiers
Vous aurez sans doute afficher le contenu d'un fichier. Pour cela, la commande la plus approprie est
certainement la commande less :
less fichier
Cette commande affiche le contenu du fichier et vous permet de le faire dfiler avec les flches du
curseur. Lorsque vous dsirez terminer la visualisation, il suffit de taper la touche q (pour quitter
less). Pour information, le nom de la commande less provient d'un trait d'humour sur une commande
Unix plus classique, la commande more. Cette commande effectue peu prs le mme travail que
less, mais elle n'affiche le texte que page par page. Pour passer la page suivante, il faut appuyer sur
la barre d'espace. Quant l'origine du nom de la commande more, c'est qu'elle affiche le mot more
au bas de l'cran pour indiquer qu'il y a encore du texte visualiser, et qu'il faut appuyer sur la barre
d'espace pour lire la suite.
La commande less permet galement d'effectuer une recherche dans le fichier en cours d'dition. Pour
cela, il suffit 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 fichier en cours de visualisation avec less, il suffit de taper :
/local
Lorsque vous voudrez rechercher l'occurrence suivante du motif de recherche, vous pourrez appuyer
sur la touche n (pour Next en anglais). Pour rechercher l'occurrence prcdente, il suffit de taper la
touche N (en majuscule, cette fois).
Il est encore plus probable que vous aurez diter un fichier. Cette opration peut se faire relativement
facilement grce un diteur simplifi, vi. Cet diteur n'est pas franchement ce qui se fait de plus
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 113

convivial, cependant, il existe sur toutes les plates-formes Unix d'une part, et il est suffisamment 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 d'un grand
nombre de commandes et il ne serait pas opportun de les dcrire ici.
En gnral, la cration d'un fichier se fait avec vi, bien que d'autres commandes puissent crer des
fichiers. En revanche, pour supprimer un fichier, il n'existe qu'une seule commande :
rm chemin

o chemin est le chemin complet permettant d'accder au fichier supprimer. Il est possible de
spcifier plusieurs fichiers la commande rm. Dans ce cas, ils seront tous supprims. rm est
galement capable de supprimer tous les fichiers d'un rpertoire, ainsi que ses sous-rpertoires. Dans
ce cas, elle dtruit toute une branche de l'arborescence du systme de fichiers. Pour cela, il suffit
d'utiliser l'option -r (pour rcursif ) avant le chemin du rpertoire supprimer.
Attention ! : La commande rm ne demande aucune confirmation avant de supprimer les fichiers !
D'autre part, les fichiers supprims sont irrmdiablement perdus (il n'y a pas de commande
undelete ou autre commande similaire). Vrifiez 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 confirmation avant la suppression des fichiers, l'aide de son option -i. On
pourra pour cela dfinir un alias rm -i pour la commande rm dans le fichier d'initialisation du shell
(c'est--dire le fichier .bashrc pour le shell bash). La notion d'alias sera dcrite dans la Section 5.9.9.
La copie d'un fichier se fait avec la commande cp, dont la syntaxe est donne ci-dessous :
cp fichiers rpertoire

o fichiers est la liste des fichiers copier, et rpertoire est le rpertoire destination dans lequel ces
fichiers doivent tre copis.
Enfin, le dplacement des fichiers se fait avec la commande mv, comme indiqu ci-dessous :
mv source destination

o source est le nom du fichier source et destination est le nom du rpertoire destination. Notez que
mv est une commande trs puissante, puisqu'elle permet galement de dplacer des rpertoires et de
renommer des fichiers et des rpertoires. Pour renommer un fichier ou un rpertoire, il suffit d'indiquer
le nouveau nom de ce fichier ou de ce rpertoire la place de destination.
5.7. Autres commandes utiles
Pour terminer ce petit cours d'Unix, nous allons dcrire quelques-unes des autres commandes d'Unix
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. Gestion des liens
La commande pour crer un lien est ln. Cette commande utilise la syntaxe suivante :
ln [-s] source lien

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 114

o source est le nom du fichier ou du rpertoire source auquel le lien doit se rfrer, et lien est le nom
du lien. L'option -s permet de crer un lien symbolique. Par dfaut, ce sont des liens physiques qui
sont crs. Rappelons qu'il est impossible de crer des liens physiques sur des rpertoires.
Lorsqu'on liste des fichiers, on peut demander l'affichage d'informations complmentaires sur les liens.
Pour cela, il suffit d'utiliser l'option -1 de la commande ls. Ainsi, la commande suivante :
ls -l lien

permet d'afficher les informations sur le lien, et en particulier le fichier ou le rpertoire cible de ce lien.
La suppression des liens se fait exactement comme celle d'un fichier. La destination n'est pas affecte
en gnral, sauf si le lien est un lien physique et constitue la dernire rfrence au fichier point par le
lien.
Les liens symboliques n'ont pas de droits d'accs ni de propritaires, les informations de scurit de la
cible sont utilises lorsqu'on accde au lien.
5.7.2. Recherche de fichiers
Il vous sera sans doute ncessaire de rechercher des fichiers selon un critre donn dans toute une
arborescence de rpertoires. Pour cela, vous utiliserez la commande find. Cette commande est trs
puissante, mais dispose d'une 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 fichier
rechercher. Ce nom peut contenir des caractres gnriques du shell, mais dans ce cas doit tre plac
entre guillemets afin d'viter que ce dernier ne les interprte.
find accepte d'autres options de recherche que le nom (partie -name de la ligne de commande), et
peut effectuer d'autres actions que l'affichage du chemin des fichiers trouvs (partie -print ).
Consultez les pages de manuel pour plus d'informations ce sujet.
5.7.3. Recherche d'un texte dans un fichier
La recherche d'une chane de caractres dans un ou plusieurs fichiers peut se faire l'aide de la
commande grep. Cette commande prend en premier paramtre le texte rechercher, puis la liste des
fichiers dans lequel ce texte doit tre trouv :
grep texte fichiers
Le texte peut tre plac entre guillemets si ncessaire (en particulier, s'il contient des espaces ou des
caractres interprts par le shell, comme * et ?). grep accepte un grand nombre d'options, qui ne
seront pas dcrites ici. Consulter les pages de manuel pour plus d'information ce sujet.
5.7.4. Remplacement de texte dans les fichiers
Le remplacement de texte dans un fichier peut tre effectu de manire automatique, c'est--dire sans
avoir ouvrir le fichier dans un diteur, grce la commande sed (abrviation de l'anglais Stream
Editor ). Cette commande est en fait un utilitaire de manipulation de flux de donnes, qui permet
d'effectuer des traitements plus gnraux que le simple remplacement de texte, mais c'est malgr tout
pour cette opration qu'elle reste la plus utilise.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 115

sed peut travailler la vole sur un flux de donnes textuelles, que ce flux provienne de l'entre
standard ou d'un fichier. Par dfaut, il crit le rsultat de son travail sur le flux de sortie standard. Les
oprations qu'il doit effectuer sur le flux de donnes peuvent tre spcifies de diffrentes manires,
soit en fournissant un fichier script l'aide de l'option -f, soit directement sur la ligne de commande,
avec l'option -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 fichier sur lequel sed doit travailler, et rsultat est le fichier devant recevoir le flux de
donnes modifies. Notez que cette commande utilise une redirection du flux de sortie standard dans
un fichier. 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 d'effectuer 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
d'options exprimant la manire dont le remplacement doit tre fait. Les options sont spcifies l'aide
de simple caractres, les plus utiles tant sans doute g, qui permet d'effectuer un remplacement global
(au lieu de ne remplacer que la premire occurrence du texte rencontre dans chaque ligne), et I, qui
permet d'effectuer 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 fichier test.txt, et d'enregistrer le rsultat dans le fichier
modif.txt.
Note : Il ne faut pas utiliser le mme nom de fichier pour le fichier source et le fichier de rsultat. En
effet, sed lit le fichier source la vole, et effectuer une redirection sur ce fichier pendant son
traitement provoquerait la perte irrmdiable de son contenu. Pour rsoudre ce problme, on pourra
utiliser un nom de fichier temporaire, et craser le fichier original par ce fichier une fois la commande
sed excute.
5.7.5. Compression et dcompression des fichiers
Linux fournit un grand nombre de programmes de compression de fichiers. 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 compresser et dcompresser des fichiers avec gzip et bzip2 dans ce paragraphe.
La compression d'un fichier se fait de manire lmentaire :
gzip fichier

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 116

o fichier est le fichier compresser. Aprs avoir effectu son travail, gzip renomme le fichier
compress en fichier.gz . La compression d'un fichier avec bzip2 utilise exactement la mme
syntaxe, ceci prs qu'il faut remplacer gzip par bzip2. De plus, le nom du fichier compress porte
l'extension .bz2 au lieu de .gz. Le fichier obtenu est donc nomm fichier.bz2 .
La dcompression d'un fichier se fait l'aide de la commande suivante :
gunzip fichier.gz

ou

bunzip2 fichier.bz2

selon qu'il a t compress avec gzip ou bzip2. Aprs dcompression, l'extension complmentaire .gz
ou .bz2 est supprime du nom de fichier.
5.7.6. Archivage de fichiers
L'archivage de fichiers se fait classiquement sous Unix avec le programme tar (abrviation de l'anglais
Tape ARchiver ). Ce programme permet simplement de regrouper tous les fichiers qu'il doit
archiver dans un seul fichier 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 fichiers archives contenant toute une arborescence.
La syntaxe de tar est trs simple :
tar options archive [fichiers]

o options sont les options qui indiquent l'opration effectuer et comment elle doit tre ralise,
archive est le nom de l'archive qui doit tre cre ou le nom du fichier de priphrique du priphrique
d'archivage, et fichiers est la liste des fichiers archiver.
Les options de tar que vous utiliserez le plus souvent sont les suivantes :
cvf pour crer une archive ;
vf pour lister le contenu d'une archive ;
xvf pour restaurer le contenu d'une archive.
Par exemple, pour archiver le contenu du rpertoire courant dans le fichier archive.tar, vous utiliserez
la ligne de commande suivante :
tar cvf archive.tar *
De plus, pour extraire le contenu de l'archive archive.tar, vous utiliserez la commande suivante :
tar xvf archive.tar
Note : L'option z permet d'effectuer une compression des donnes archives ou une dcompression
des donnes restaures la vole. tar utilise gzip et gunzip pour la compression et la dcompression.
De mme, l'option _ permet de compresser l'archive la vole avec bzip2.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 117

Si l'on utilise un signe ngatif ('-') la place du nom de l'archive, 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.7. 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,
cependant, elle pose un problme vident : vous ne pouvez pas y faire votre travail d'administrateur.
C'est pour cela que la commande su a t cre. Cette commande permet de changer son identit dans
le systme :
su [utilisateur]

o utilisateur est l'utilisateur dont on veut prendre l'identit. Par dfaut, si aucun utilisateur n'est
spcifi, le changement d'identit se fait vers l'utilisateur root. Bien entendu, il va de soi que la
commande su demande le mot de passe avant d'obtemprer...
5.7.8. Changement des droits des fichiers, du propritaire et du groupe
Les mcanismes de droits d'accs ont dj t dcrits en dtail ci-dessus dans le chapitre concernant
les notions gnrales sur Unix. Il peut tre judicieux de relire ce chapitre afin de comprendre les effets
des commandes prsentes dans cette section.
5.7.8.1. Changement de propritaire et de groupe
Le changement de propritaire d'un fichier ne peut tre ralis que par l'administrateur du systme.
Cette opration se fait l'aide de la commande suivante :
chown utilisateur fichier

o utilisateur est le nom de l'utilisateur qui doit devenir propritaire du fichier, et fichier est le fichier
devant changer de propritaire.
Le changement de groupe peut tre ralis par n'importe quel utilisateur, mais on ne peut donner un
fichier qu' l'un des groupes dont on est membre. Cette opration se fait l'aide de la commande
suivante :
chgrp groupe fichier

o groupe est le nom du groupe qui doit tre affect au fichier, et fichier est le fichier devant changer
de groupe. Bien entendu, l'administrateur peut affecter un fichier n'importe quel groupe d'utilisateur.
5.7.8.2. Modification des droits Unix sur les fichiers
La commande permettant de changer les droits d'un fichier ou d'un rpertoire est la suivante :
chmod droits fichier

o fichier est le fichier ou le rpertoire dont on dsire changer les droits, et droits est une chane de
caractres permettant de spcifier les nouveaux droits. Cette chane commence par une lettre indiquant
le groupe d'utilisateurs auquel le droit doit tre appliqu, d'un caractre + ou - indiquant si le droit doit
tre ajout ou supprim, et d'une lettre indiquant le droit que l'on est en train de manipuler. La
premire lettre peut prendre les valeurs suivantes :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 118

u pour le champ utilisateur , c'est--dire le propritaire du fichier ;
g pour le champ groupe , c'est--dire tous les utilisateurs faisant partie du groupe du
fichier ;
o pour le champ other , c'est--dire pour tous les utilisateurs qui ne sont ni propritaires, ni
membres du groupe du fichier ;
a pour tous les champs sans distinction, donc pour tous les utilisateurs.
Les droits sont identifis par l'un des caractres suivants :
r pour le droit de lecture ;
w pour le droit d'criture ;
x pour le droit d'excution ;
s pour les bits setuid et setguid ;
t pour le bit sticky.
Ainsi, la commande suivante :
chmod g+w exemple

permet de donner le droit d'criture sur le fichier exemple tous les membres du groupe auquel ce
fichier appartient.
5.7.8.3. Utilisation des ACLs
Si l'on veut donner des droits un utilisateur ou un groupe particulier, on pourra dfinir une ACL
( Access Control List ) sur le fichier ou le rpertoire, et affecter les droits unitairement. Ceci se fait
simplement avec la commande setfacl, de la manire suivante :
setfacl -m ACL fichier

o ACL est l'ACL affecter au fichier ou au rpertoire fichier. Les ACLs sont constitus d'une liste
d'entres nommes des ACE ( Access Control Entries ). Les ACEs sont spares par des virgules et
dfinissent chacune un droit. Chacun de ces droits doit tre spcifi de manire complte, en prcisant
la classe d'utilisateur sur lequel il porte avec un mot-cl (user pour l'utilisateur propritaire, group pour
les utilisateurs du groupe propritaire, ou other pour les autres utilisateurs), le nom de l'utilisateur ou
du groupe si ncessaire, et les droits affects cet utilisateur ou ce groupe. Tous ces paramtres
doivent tre spars par deux points (caractre ':'). Par exemple, pour ajouter les droits d'criture
l'utilisateur alfred sur le fichier exemple, vous pourrez utiliser la commande suivante :

setfacl -m user:alfred:w exemple
Si l'on ne spcifie aucun utilisateur avec la classe d'utilisateurs user dans une entre, cette entre se
rfre automatiquement l'utilisateur propritaire du fichier ou du rpertoire. De mme, si l'on ne
spcifie aucun groupe avec la classe d'utilisateurs group, l'entre se rfre au groupe auquel le fichier
appartient. Fixer ces entres d'ACL sur un fichier avec ces deux syntaxes revient donc exactement
utiliser chmod avec les droits Unix classiques ( un dtail prs que l'on verra ci-dessous pour le
groupe).
Les droits complets d'un fichier ou d'un rpertoire peuvent tre consults avec la commande getfacl.
Cette commande affiche en commentaire les informations sur l'objet auquel elle s'applique, savoir
son nom, son propritaire et son groupe, la suite d'un dize (caractre '#'). Suivent toutes les ACEs
affectes cet objet. Les droits Unix classiques sont lisibles directement avec les entres user::,
group:: et other:: respectivement pour l'utilisateur, les utilisateurs du groupe et les autres utilisateurs.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 119

Par exemple, si l'on affiche les ACLs associes au fichier exemple aprs la commande prcdente, on
obtient ceci :
# file: exemple
# owner: batman
# group: users
user::rw-
user:alfred:-w-
group::r--
mask::rw-
other::r--
Ds qu'une ACL nominative a t attribue un fichier, une ACL spciale est cre automatiquement.
Il s'agit de l'ACL mask, qui, comme son nom l'indique, dfinit un masque de droits complmentaires
pour tous les utilisateurs et les groupes ajouts nominativement l'ACL. Pour ces utilisateurs, les
droits effectivement accords sont leurs droits respectifs, restreints aux droits prsents dans le masque.
Le masque permet donc de restreindre les droits de tous les utilisateurs de la classe group, au sens
large. Par exemple, si le masque contient les droits de lecture et d'criture, et que l'utilisateur alfred
dispose des droits de lecture et d'excution sur le fichier, ses droits effectifs seront uniquement la
lecture. Les droits effectifs sont indiqus en commentaire par getfacl pour les utilisateurs et les
groupes s'ils ne sont pas gaux aux droits indiqus dans leurs entres respectives.
Ds qu'il est dfini, le masque remplace l'entre du groupe du fichier pour les commandes classiques.
Ainsi, ds qu'un masque est dfini dans l'ACL d'un fichier, les changements de droits sur le groupe
effectus avec la commande chmod ne modifient plus que le champ de masque. Cela peut surprendre
dans certaines situations. Par exemple, si l'entre de l'ACL dcrivant les droits du groupe du fichier ne
donne aucun droit, les utilisateurs de ce groupe n'auront toujours aucun droit mme aprs un chmod
g+rwx sur le fichier. En effet, cette dernire commande ne modifie que le masque. Il est donc
ncessaire d'ajouter les droits sur le groupe du fichier explicitement avec setfacl, de la manire
suivante :
chmod g+rwx exemple
setfacl -m group::rwx exemple

La premire commande modifie les droits sur le masque, et la deuxime ajoute les droits pour tous les
utilisateurs du groupe.
Notez bien que le masque ne s'applique pas pour la dtermination des droits du propritaire et des
utilisateurs de la classe other. Par ailleurs, lorsque l'on affiche les droits tendus d'un fichier avec
l'option -1 de la commande ls, les droits affichs pour le groupe du fichier sont les droits dfinis dans
le masque lui-mme (mme si aucune entre d'ACL ne donne compltement ces droits un utilisateur
ou un groupe). Cela permet donc de voir directement les droits les plus forts qui pourraient tre
attribus sur ce fichier, ce qui est cohrent avec ce qu'attendent les outils Unix classiques.
Il est possible de supprimer toutes les entres de l'ACL d'un fichier avec l'option -b de setfacl. Pour
supprimer une entre spcifique de l'ACL, vous devrez utiliser l'option -x. Cette dernire option ne
permet pas de supprimer les entres gnriques pour le propritaire et le groupe du fichier, ni celles
des autres utilisateurs. Par exemple, pour retirer toutes les entres dfinies prcdemment sur le fichier
exemple, on utilisera la commande suivante :
setfacl -b exemple

Vous pourrez toutefois constater que getfacl continue d'afficher les entres gnriques user:: ,
group:: et other:: .
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 120

Les rpertoires disposent, en plus de leur ACL normale, d'une ACL par dfaut. L'ACL par dfaut d'un
rpertoire est celle qui est applique tout nouveau fichier ou rpertoire crs dans ce rpertoire. De
plus, les sous-rpertoires hritent de l'ACL par dfaut de leur parent. Les ACLs par dfaut sont
modifiables avec l'option -d de setfacl et sont affiches avec le prfixe default: par getfacl.
Note : Notez bien que de nombreux outils Unix classiques ne grent pas correctement la notion d'ACL
(en particulier les gestionnaires de fichiers graphiques). La copie ou la modification d'un fichier peut
donc provoquer la perte de son ACL, modifiant ainsi les droits des utilisateurs sur ce fichier. Les
ACLs doivent donc tre utilises avec parcimonie et leur manipulation entoure du plus grand soin.
5.8. vi, l'diteur de fichiers de base
Vous serez oblig, lorsque vous effectuerez la configuration de votre systme, d'diter les fichiers de
configuration (classiquement, ces fichiers sont placs dans le rpertoire /etc/). Ces modifications
peuvent tre ralises avec n'importe quel diteur a priori, et il est mme conseill d'utiliser votre
diteur favori. Cependant, il faut savoir se servir de vi, parce que c'est le seul diteur qui sera toujours
install, et qui fonctionnera en toutes circonstances. Le prix payer pour cette fiabilit est un nombre
restreint de fonctionnalits. En fait, vi est trs puissant, mais il ne s'embarrasse pas de superflu, ce qui
en fait certainement l'diteur 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 n'utiliserez
certainement pas vi dans la vie courante.
Pour diter un fichier avec vi, il suffit de passer le nom de ce fichier en ligne de commande :
vi fichier
Il est possible de passer plusieurs fichiers 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 fichiers la fois, et qu'il
n'est pas facile de passer de l'un l'autre. Par consquent, il est conseill de n'diter qu'un seul fichier
la fois.
vi est un diteur qui fonctionne dans plusieurs modes diffrents : le mode d'dition, dans lequel le texte
peut tre modifi, le mode de commande, dans lequel des commandes particulires peuvent tre
donnes, et le mode de visualisation, dans lequel le fichier ne peut tre que visualis. Par dfaut, vi est
en mode de visualisation, et il faut utiliser une commande d'dition pour passer en mode d'dition.
Quand on est en mode d'dition, on peut revenir au mode de visualisation en appuyant sur la touche
Echap (ou Esc, selon votre clavier). Cette touche a aussi une signification dans le mode de
commande : elle annule la saisie de la commande en cours. Par consquent, lorsqu'on est perdu et que
l'on ne sait plus dans quel mode on se trouve (ce qui arrive fatalement un moment donn), il suffit
d'appuyer sur cette touche. On sait alors qu'on se trouve en mode de visualisation.
Le dplacement du curseur en mode de visualisation se fait avec les touches du curseur. Cependant, si
votre clavier n'est pas bien configur, ces touches peuvent ne pas fonctionner. C'est 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 d'dition.
Le passage en mode d'dition peut se faire avec l'une des commandes suivantes :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 121

la touche i permet de passer en mode d'insertion (le texte saisi s'insre avant le caractre sur
lequel le curseur est positionn) ;
la touche a permet de passer en mode d'ajout de caractres (le texte saisi s'insre aprs le
caractre sur lequel le curseur est positionn) ;
la touche A permet de placer le curseur en fin de ligne et de passer en mode d'ajout de
caractres ;
la touche o permet de crer une nouvelle ligne aprs la ligne o se trouve le curseur et de
passer en mode d'dition 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 d'dition sur cette nouvelle ligne.
La cration d'une 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
d'dition. Inversement, la commande J permet de supprimer un saut de ligne en fin de ligne et de
placer ainsi le texte de la ligne suivante la suite du texte de la ligne courante.
La suppression d'un 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 configur :
la commande x permet d'effacer le caractre situ sous le curseur ;
la commande dd permet d'effacer la ligne o se trouve le curseur ;
la commande dw permet d'effacer le mot o se trouve le curseur.
Le texte qui a t supprim est plac dans ce que l'on appelle un buffer. Le contenu du buffer peut tre
insr n'importe quel endroit du fichier 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 l'emplacement destination.
La commande u permet d'annuler 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 spcifiant ce nombre avant
de les crire. Ainsi, pour supprimer 3 lignes, il suffira de taper la commande suivante :
3dd
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.
Enfin, vi accepte un certain nombre de commandes gnrales lorsqu'il est en mode de commande. Ce
mode est activ ds que l'on 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 fichier en cours d'dition a t modifi, vi refusera
de se terminer sans l'enregistrer. Si l'on veut malgr tout sortir sans l'enregistrer, il faudra
utiliser la commande :q! ;
la commande :w permet d'enregistrer le fichier courant. Pour enregistrer ce fichier et quitter vi,
la commande :wq peut tre utilise ;
la commande :help sujet permet d'obtenir de l'aide sur le sujet sujet ;
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 122

la commande :!commande permet d'excuter 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 efficace d'utiliser un autre terminal virtuel.
Comme vous l'avez constat, vi est rellement une horreur utiliser. Malgr tout, il permet de faire
tout ce dont on a besoin pour diter un fichier. 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 l'aide de vi pour de plus amples informations.
5.9. Utilisation du shell bash
Le shell est l'environnement utilisateur en mode texte sous Linux. C'est le programme qui se charge de
lire et d'excuter les commandes que l'utilisateur saisit. Classiquement, le shell est utilis de manire
interactive, c'est--dire que l'utilisateur dialogue avec le systme par l'intermdiaire du shell. Il saisit
les commandes, et le shell les excute et affiche les rsultats. Le shell le plus couramment utilis sous
Linux est sans aucun doute bash. En tout cas, c'est 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 l'abrviation de l'anglais Bourne Again SHell , ce qui signifie qu'il s'agit
effectivement d'une 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. C'est en partie vrai, mais il faut
savoir que les shells Unix sont extrmement puissants et que les interfaces graphiques ne permettent
toujours pas, mme l'heure actuelle, de raliser toutes les tches faisables avec un shell. D'autre part,
il est souvent plus efficace 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 confirmeront, que la
souris n'est pas le priphrique d'entre le plus prcis et le plus facile utiliser pour manipuler les
objets de l'environnement utilisateur. La plupart des programmeurs utilisent encore bon nombre de ce
qu'on appelle des raccourcis clavier pour excuter des commandes, mme dans les environnements
utilisateurs graphiques.
Quoi qu'il en soit, le shell est bien plus qu'un interprteur de commande. Il s'agit rellement d'un
environnement de programmation, permettant de dfinir des variables, des fonctions, des instructions
complexes et des programmes complets, que l'on 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 bnfique ceux qui dsirent comprendre les scripts de
configuration 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
mthodes 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 d'un programme en arrire-plan
Le lancement normal d'un 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 123

arrire-plan une commande dont la dure d'excution 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 :
s'assurer que la commande aura toutes les informations ncessaires pour travailler sans
intervention de l'utilisateur (ou, autrement dit, que la commande n'est pas interactive) ;
ajouter une esperluette (caractre & ) la fin de la ligne de commande.
Par exemple, la commande suivante :
cp /cdrom/kernel/linux-2.6.6.tar.gz . &

copiera l'archive du noyau 2.6.6 du CD-ROM vers le rpertoire courant, et s'excutera en arrire-plan.
Lorsqu'une commande est lance en arrire-plan, le shell affiche deux nombres qui permettront de
l'identifier par la suite. Le premier nombre, indiqu entre crochets, est le numro de job du shell.
Ce numro sert identifier 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 IDentifier ) dans le systme du processus matre du job. Le PID est un numro unique
dans le systme, qui permet d'identifier de manire unique les processus en cours. Ces deux nombres
permettront de manipuler les processus, avec les commandes que l'on verra plus tard.
Il ne faut pas confondre les numros de job avec les numros de processus. Premirement, un numro
de job n'est unique que dans un shell donn, et n'a aucune signification au niveau du systme complet,
alors que le numro de processus est attribu par le systme chaque programme en cours d'excution.
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 l'utilisation d'une redirection du flux de sortie standard d'un processus
vers le flux d'entre standard d'un autre processus.
Le numro de processus affich par le shell lors du lancement d'une ligne de commande complexe
reprsente le PID du processus matre de la commande, c'est--dire, en pratique, le dernier processus
d'une srie de redirections ou le processus du shell excutant les commandes complexes. Cela signifie
que dans tous les cas de configuration, ce PID est celui du processus qui contrle l'ensemble des
oprations effectues par la ligne de commande. C'est donc par ce processus que l'on peut manipuler la
commande complte, par exemple pour l'interrompre.
Il est possible de retrouver le PID du processus matre d'une commande partir du numro de job
correspondant du shell. Cela se fait simplement, en utilisant lexpression 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 prfix du
caractre de pourcentage.
5.9.1.2. Listing des processus
Il n'est pas ncessaire de retenir tous les numros de jobs et tous les PID des processus en cours
d'excution. Il existe en effet des commandes permettant d'obtenir 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 suffit de taper la commande suivante :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 124

jobs

qui affiche, dans l'ordre, le numro de job, l'tat du processus correspondant, et la ligne de commande.
Une autre commande, plus bas niveau, permet d'obtenir des informations plus compltes directement
partir du systme. Il s'agit 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 l'affichage de toutes les
commandes en cours d'excution et non pas seulement les processus en cours d'excution dans le shell
o la commande ps est excute, et a, qui permet d'obtenir l'affichage de toutes les commandes, pour
tous les utilisateurs connects. Ces deux options peuvent tre cumules, et la commande suivante :
ps ax

affiche donc toutes les commandes en cours d'excution sur le systme.
Les informations les plus intressantes affiches par ps sont le PID du processus, qui est donn par le
premier nombre affich, et la ligne de commande, qui est la dernire information affiche. 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 l'utilisateur,
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 qu'il a fait une faute et qu'il va tre
termin. Cependant, ce n'est 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 n'entrerons pas en dtail dans la gestion
des signaux ici, car cela nous emmnerait trop loin. Cependant, la manire d'envoyer un signal un
processus partir du shell sera dcrite.
L'envoi d'un 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 Signification
15 Signal de terminaison de processus.
9 Signal de destruction inconditionnelle de processus.
19 Signal de suspension de processus.
18 Signal de reprise d'excution d'un processus suspendu.
Lorsquaucun signal n'est spcifi, le signal 15 de terminaison est utilis par dfaut. Ce signal
demande au processus en cours d'excution de se terminer immdiatement. Il peut tre capt par le
processus, pour lui donner une chance d'enregistrer les donnes sur lesquelles il travaillait et de librer
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 125

les ressources qu'il utilisait. Pour certains processus, cela ne fonctionne pas, et il faut utiliser le signal
de destruction du processus l'aide de la commande suivante :
kill -9 PID
Attention cependant cette commande : le processus est immdiatement dtruit, sans autre forme de
procs. Il peut donc s'ensuivre une perte de donnes, n'en abusez donc pas trop.
5.9.1.4. Arrt d'un 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 d'excution interactive (c'est--dire lorsqu'il n'a pas t lanc en
arrire-plan). S'il a t lanc en arrire-plan, on peut soit le ramener en avant-plan (avec la commande
fg, que l'on verra plus loin) avant d'utiliser CTRL+C, soit lui envoyer le signal de terminaison l'aide
de la commande kill vue prcdemment. Dans le cas d'une ligne de commande, le signal de
terminaison est transmis au processus matre de la ligne de commande, et est ensuite propag
l'ensemble des processus fils de ce processus. Cela signifie que tous les processus invoqus dans le
cadre de cette commande sont galement arrts.
5.9.1.5. Gel d'un processus
Il est possible de geler un processus en cours d'excution, c'est--dire de le suspendre, sans pour
autant l'arrter dfinitivement. Cela peut tre utilis pour librer un peu les capacits de calcul, lorsque
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 ) l'aide de la commande kill.
La premire mthode est recommande pour les processus lancs par une ligne de commande
complexe, car le signal STOP est envoy au processus matre de la commande, et est propag
l'ensemble des processus fils de ce processus. Cela signifie 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 n'importe quel processus que l'on a lanc.
5.9.1.6. Relancement d'un 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 n'est pas spcifi, le dernier
processus stopp sera relanc en arrire-plan. fg est l'abrviation de l'anglais foreground , ce qui
signifie avant-plan . Il faut attendre que ce processus se termine pour entrer de nouvelles
commandes. Par consquent, on ne peut lancer en avant-plan qu'un seul processus.
De mme, pour lancer un processus en arrire-plan, il faut utiliser la commande bg, qui est
l'abrviation de l'anglais background . Cette commande s'utilise de la mme manire que la
commande fg :
bg [PID]
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 126

Le relancement d'un processus suspendu peut galement se faire en lui envoyant le signal 18 l'aide
de la commande kill.
5.9.2. Redirections
Pour pouvoir lancer un programme en arrire-plan, il est ncessaire qu'il n'ait pas besoin de demander
des donnes l'utilisateur. En effet, lorsqu'il 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 affichage en
provenance d'une commande en arrire-plan apparat sur la console tel quel, et risque de se mlanger
avec l'affichage des autres programmes ou mme avec la commande en cours d'dition. C'est 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 d'un flux vers les
donnes d'un autre flux. Il se base sur la notion de descripteur de fichier, utilise par la plupart des
systmes Unix. Un descripteur de fichier est un numro utilis par les programmes pour identifier les
fichiers ouverts. Les descripteurs 0, 1 et 2 sont respectivement affects d'office au flux d'entre
standard (nomm stdin ), au flux de sortie standard ( stdout ) et au flux d'erreur standard
( stderr ), qui en gnral apparat galement sur l'cran.
Les descripteurs de fichiers d'un processus sont gnralement hrits par tous ses processus fils. Cela
signifie que, lors de leur lancement, ces processus peuvent utiliser tous les descripteurs de fichiers mis
leur disposition par leur pre. Dans le cas des lignes de commande, les processus fils sont les
processus lancs par le shell, et les descripteurs de fichiers hrits sont donc les descripteurs de
fichiers du shell. C'est de cette manire que le shell peut manipuler les descripteurs de fichiers des
processus qu'il lance : il effectue d'abord les redirections sur ses propres descripteurs de fichiers, puis
il lance le processus fils avec ces redirections actives. Le mcanisme est donc compltement
transparent pour les processus fils.
Le mcanisme des redirections permet en fait d'injecter dans un descripteur de fichier des donnes
provenant d'un autre descripteur ou d'un fichier identifi par son nom, et d'envoyer les donnes
provenant d'un descripteur de fichier dans un autre descripteur ou dans un fichier identifi par son
nom. Si l'on utilise les descripteurs de fichiers des flux d'entre / sortie standards, on peut excuter
n'importe quelle commande interactive en arrire-plan.
5.9.2.2. Redirections de donnes en entre
Pour injecter des donnes provenant d'un fichier dans le descripteur de fichier n d'un processus, il
suffit d'ajouter la ligne suivante la fin de la commande permettant de lancer ce processus :
n<fichier

o fichier est le nom du fichier 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 fichier seront donc envoyes dans le flux d'entre standard du processus. Par exemple,
supposons que l'on dsire utiliser une commande nomme search , et que cette commande demande
un certain nombre d'informations lors de son excution. Si l'on sait l'avance les rponses aux
questions qui vont tre poses, on peut crer un fichier de rponse (nomm par exemple
answer.txt ) et alimenter la commande search avec ce fichier. Pour cela, on utilisera la ligne de
commande suivante :

search < answer.txt
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 127

Il est galement possible d'injecter des donnes provenant d'un autre descripteur de fichier dans un
descripteur de fichier. On utilisera pour cela la syntaxe suivante :
n<&s

o n est toujours le descripteur de fichier du processus excuter dans lequel les donnes doivent tre
injectes, et s est un descripteur de fichier contenant les donnes sources injecter. Par dfaut, si n
n'est pas prcis, le flux d'entre standard du processus sera utilis.
5.9.2.3. Redirection de donnes en sortie
Inversement, il est possible d'enregistrer les donnes crites par un processus dans un de ses
descripteurs de fichier dans un fichier. Pour cela, on utilisera l'oprateur '>' avec la syntaxe suivante :
n>fichier

o n est le numro du descripteur de fichier du processus enregistrer, et fichier est le nom du fichier
dans lequel les donnes doivent tre stockes. Par dfaut, si n n'est pas spcifi, le descripteur du flux
de sortie standard sera utilis (descripteur 1). Par exemple, si la commande prcdente affiche des
rsultats et que l'on dsire les stocker dans le fichier result.txt , on utilisera la ligne de commande
suivante :

search < answer.txt >result.txt
Notez que cette commande dtruira systmatiquement le contenu du fichier result.txt et le
remplacera par les informations provenant du flux de sortie standard du processus search . Il est
possible de ne pas vider le fichier result.txt et d'ajouter les informations en fin de fichier, en
utilisant l'oprateur '>>' la place de l'oprateur '>'. Ainsi, la commande suivante :
search < answer.txt >>result.txt

aura pour effet d'ajouter la fin du fichier result.txt les informations affiches par le processus
search .
Le flux d'erreur standard, qui correspond normalement l'cran et qui permet d'afficher les messages
d'erreur, peut tre redirig avec l'oprateur '2>', de la mme manire que l'oprateur '>' est utilis pour
le flux de sortie standard (puisque c'est le descripteur de fichier utilis par dfaut par l'oprateur '>').
Par exemple, si l'on veut envoyer les messages d'erreurs ventuels de la commande prcdente vers le
priphrique nul (c'est--dire le priphrique qui n'en 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 l'utilisateur :
search <answer.txt >result.txt 2> /dev/null &
Il est galement possible d'effectuer une redirection des donnes provenant d'un descripteur de fichier
du processus vers un autre descripteur de fichier de ce processus. On utilisera pour cela la syntaxe
suivante :
n>&d

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 128

o n est le descripteur de fichier dont les donnes doivent tre rediriges, et d le descripteur de fichier
destination. Cette syntaxe est souvent utilise pour rediriger le flux d'erreur standard vers le flux
d'entre standard, lorsqu'on veut rcuprer les erreurs et les messages d'excution normale dans un
mme fichier. Par exemple, si l'on veut rediriger le flux de sortie et le flux d'erreurs de la commande
search dans un mme fichier, on utilisera la ligne de commande suivante :

search <answer.txt >result.txt 2>&1
Cette ligne de commande utilise deux redirections successives pour les donnes affiches par la
commande search : la premire redirige le flux de sortie standard vers un fichier, et la deuxime le
flux d'erreur standard vers le flux de sortie standard. Notez que l'ordre des redirections est important.
Elles sont appliques de gauche droite. Ainsi, dans la commande prcdente, le flux de sortie
standard est redirig vers le fichier result.txt , puis le flux d'erreur standard est inject dans le flux
de sortie standard ainsi redirig.
Note : Il est galement possible d'utiliser un autre descripteur de fichier que les descripteurs des flux
standards. Cependant, il est ncessaire, dans ce cas, d'ouvrir ce descripteur dans le shell avant de
lancer la commande. Cela peut se faire l'aide de la syntaxe suivante :
n<>fichier

o n est un numro de descripteur de fichier non encore utilis, et fichier est un nom de fichier. Ce
nouveau descripteur de fichier pourra tre utilis dans les commandes prcdentes, afin de faire
manipuler le fichier fichier par les processus fils de manire transparente.
Les descripteurs de fichiers ouverts de cette manire le restent d'une commande sur l'autre dans le
shell. Cela implique que toutes les donnes crites dans ces descripteurs de fichiers sont ajoutes
automatiquement la fin des fichiers manipuls par ces descripteurs. Ce comportement est diffrent de
la redirection vers un fichier effectue par l'oprateur '>', qui ouvre chaque fois le fichier en criture
son dbut et qui supprime donc toutes les donnes dj existantes. Il n'y a donc pas d'oprateur '>>&'
pour ajouter des donnes un descripteur de fichier, car cela n'a pas de sens.
Les descripteurs de fichiers peuvent galement tre manipuls directement, par l'intermdiaire de
fichiers virtuels du rpertoire /dev/fd/. chaque descripteur de fichier (y compris les descripteurs pour
les flux d'entre/sortie standards !) y correspond un fichier dont le nom est le numro du descripteur.
Par exemple, le fichier /dev/fd/2 correspond au flux d'erreur standard.
En fait, le rpertoire /dev/fd/ est un lien symbolique vers le rpertoire /proc/self/fd/ du systme de
fichiers virtuel /proc/. Ce systme de fichiers est gr par le noyau directement, et permet d'accder
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 descripteurs de fichiers ouvert par le processus
correspondant. Le systme de fichiers /proc/ contient galement un lien symbolique self/ pointant sur
le sous-rpertoire du processus qui cherche l'ouvrir. Ainsi, /proc/self/fd/ est un chemin permettant
chaque processus d'accder ses propres descripteurs de fichiers.
En pratique, la manipulation directe des descripteurs de fichiers n'est rellement intressante que pour
les flux standards, dont les numros de descripteurs sont fixes et connus de tous les programmes. Pour
les autres descripteurs, cette technique est souvent inutilisable ou inutile, sauf lorsqu'on utilise des
programmes sachant manipuler des descripteurs de numros bien dtermins.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 129

5.9.2.4. Insertion de documents
Il existe un dernier oprateur de redirection, qui n'est utilis en pratique que dans les scripts shell. Cet
oprateur permet d'insrer directement un texte complet dans le flux d'entre standard, sans avoir
placer ce document dans un fichier part. Cette technique permet donc de stocker des donnes avec le
code des scripts shell, et de n'avoir ainsi qu'un seul fichier contenant la fois le script et ses donnes.
Cet oprateur est l'oprateur '<<', il s'utilise selon la syntaxe suivante :
<<EOF
texte
.
.
.
EOF

o texte est le contenu du texte insrer, et EOF est un marqueur quelconque qui sera utilis seul sur
une ligne afin de signaler la fin du texte.
Par exemple, il est possible de crer un fichier 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 l'on veut, et utiliser les fonctions d'ditions
de ligne du shell si l'on veut.
Pour terminer le fichier, il faut taper le mot "fin" tout seul, au dbut
d'une ligne vide.
fin
5.9.3. Les tubes
Les redirections sont trs pratiques lorsqu'il s'agit d'injecter un fichier dans le flux d'entre standard
d'un processus, ou inversement de rediriger le flux standard d'une commande vers un fichier, mais
elles ont justement le dfaut de devoir utiliser des fichiers. Il est des situations o l'on dsirerait
injecter le rsultat d'une commande dans le flux d'entre standard d'une autre commande, sans passer
par un fichier intermdiaire. Cela est heureusement ralisable, grce ce que l'on appelle les tubes .
5.9.3.1. Syntaxe des tubes
Pour rediriger le rsultat d'une commande dans le flux d'entre d'une autre commande, il faut utiliser
l'oprateur '|'. Cet oprateur reprsente un tuyau canalisant les donnes issues d'une commande vers le
flux d'entre standard de la commande suivante, d'o le nom de pipe en anglais (ce qui signifie
tuyau ou tube ). L'oprateur tube s'utilise de la manire suivante :
on crit la premire commande, qui doit fournir les donnes la deuxime commande ;
on crit l'oprateur tube ;
on crit la deuxime commande, qui doit lire les donnes provenant de la premire.
La commande se trouvant la gauche de l'oprateur tube doit tre complte, avec ses autres
redirections ventuelles. La redirection dans un tube s'effectue aprs les autres types de redirections
vues prcdemment.
Le systme contrle l'excution des processus qui se trouvent aux deux bouts d'un tube, de telle sorte
que le transfert de donnes puisse toujours se faire. Si le processus source a trop de donnes, il est fig
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 130

par le systme d'exploitation en attendant que le processus consommateur ait fini de traiter les donnes
dj prsentes. Inversement, si le processus source est trop lent, c'est le processus consommateur qui
attendra patiemment que les donnes soient disponibles.
Les tubes sont utiliss trs couramment, ne serait-ce que pour afficher page par page le contenu d'un
rpertoire. La commande suivante effectue un tel travail :
ls | less
Ici, le rsultat de la commande ls est redirig vers la commande less, qui permet d'afficher page par
page (et de revenir en arrire dans ces pages) la liste des fichiers du rpertoire courant.
Note : ATTENTION ! Il se peut que vous obteniez parfois un message d'erreur de la part de
l'interprteur de commande vous signalant bash: less: command not found , sans que cette erreur ne
soit systmatique. Il s'agit d'un des gags les plus comiques que j'ai rencontr dans le monde Linuxien :
en ralit, il s'agit d'une faute de frappe de votre part. En effet, certaines distributions utilisent le plan
de clavier fr-latin1, et d'autres utilisent plan de clavier fr-latin9. Or, sur le plan de clavier fr-latin9, la
combinaison de touches AltGr+Espace gnre une espace inscable qui, bien qu'elle soit totalement
indiffrenciable visuellement de l'espace normale, n'est pas reprsente par le mme caractre. Or il est
trs facile de maintenir la touche AltGr enfonce lorsqu'on tape une espace aprs un tube ! De ce fait,
la ligne de commande est errone, puisque la commande situe droite du tube est prcde d'une
espace inscable, et que ce caractre n'est pas compris par le shell... Par consquent, si vous rencontrez
souvent ce problme, vous pouvez changer de plan de clavier, cesser de mettre des espaces aprs les
tube, ou apprendre taper !
Prenons un exemple un peu plus complexe. Supposons que l'on veuille archiver et compresser un
rpertoire. Il est possible d'archiver ce rpertoire avec la commande tar, puis de compresser le fichier
archive rsultant :
tar cvf archive.tar *
gzip archive.tar
Cette mthode est correcte, mais souffre d'un dfaut : elle utilise un fichier intermdiaire, qui peut
prendre beaucoup de place disque. Une mthode plus conome consiste lancer tar et gzip en
parallle, et rediriger la sortie standard de l'un dans le flux d'entre de l'autre. Ainsi, il n'y a plus de
fichier temporaire, et la place consomme sur le disque est minimale :
tar cv * | gzip > archive.tar.gz
La premire commande demande tar d'archiver tous les fichiers du rpertoire et d'envoyer le rsultat
dans le flux standard de sortie. Le pipe redirige ce flux standard vers le flux d'entre standard de gzip.
Celui-ci compresse les donnes et les met vers son flux standard de sortie, qui est lui-mme redirig
vers le fichier archive.tar.gz. Aucun fichier temporaire n'a t utilis, et on a ainsi conomis l'espace
disque de l'archive complte non compresse, c'est--dire environ la taille complte du rpertoire
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 compresser la vole les donnes archiver,
permettant d'viter de se prendre la tte comme on vient de le faire. Pour cela, il suffit d'utiliser
l'option z dans la ligne de commande de tar. Ainsi, la ligne de commande suivante fournit le mme
rsultat :
tar cvfz archive.tar.gz *

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 131

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 fichiers d'un systme de
fichiers un autre. Vous ne pourrez pas y parvenir l'aide de la commande mv, car celle-ci ne fait que
modifier la structure du systme de fichiers pour dplacer les fichiers et les rpertoires, elle ne peut
donc pas fonctionner avec deux systmes de fichiers. Vous ne pouvez pas non plus utiliser la
commande cp, car celle-ci ne prendra pas en compte les dates des fichiers, leur propritaire et leur
groupe, ainsi que les liens symboliques et physiques. Il faut donc imprativement utiliser un
programme d'archivage. La mthode suivre est donc de crer une archive temporaire, puis de se
dplacer dans le rpertoire destination, et enfin d'extraire l'arborescence de l'archive :
cd source
tar cvf archive.tar *
cd destination
tar xvf source/archive.tar
rm source/archive.tar
Malheureusement, cette technique ncessite beaucoup de place disque, puisque l'archive 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 finalement 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 d'extraction des
fichiers 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 l'extraction par
tar de l'archive qui lui est transfre par le flux d'entre standard (reprsent ici par '-'). Ces deux
commandes sont mises entre parenthses, car l'oprateur '|' du tube est prioritaire sur l'oprateur ';' de
concatnation des commandes du shell. Si vous trouvez que cela est un peu compliqu, je vous
l'accorde. Cependant, la commande qui utilise le tube consomme deux fois moins d'espace disque et
est deux fois plus rapide que la commande qui n'en 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 l'oprateur '|' constituent ce que l'on 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 l'on appelle des tubes nomms.
En fait, les tubes nomms sont des fichiers spciaux, que l'on cre dans un systme de fichiers capable
de les grer. Les seules oprations ralisables sont l'criture et la lecture, sachant que les donnes
crites en premier seront forcment les premires donnes lues. C'est ce comportement qui a donn
leur nom ces fichiers, que l'on appelle des FIFO (abrviation de l'anglais First In First Out ).
De plus, la quantit de donnes en transit dans ces fichiers est souvent trs rduite, ce qui fait que ces
donnes sont toujours places dans la mmoire cache du systme. Ainsi, bien qu'il s'agisse de fichiers,
aucune criture ou lecture sur disque n'a lieu lors de l'utilisation d'un pipe.
Les tubes nomms sont crs par la commande mkfifo, dont la syntaxe est la suivante :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 132

mkfifo nom

o nom est le nom du tube nomm. Notez que cette commande chouera sur les systmes de fichiers
incapables de grer les tubes nomms.
Une fois cr, le fichier de tube peut tre utilis comme n'importe quel fichier dans les redirections que
l'on 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 :

mkfifo /tmp/tempfifo
ls > /tmp/tempfifo
less < /tmp/tempfifo
La destruction d'un tube nomm se fait comme n'importe quel fichier, l'aide de la commande rm.
5.9.3.3. La commande tee
La commande tee est un petit programme permettant d'enregistrer les donnes qu'il reoit dans son
flux d'entre standard dans un fichier et de les renvoyer simultanment vers son flux de sortie
standard. Elle est couramment utilise, en conjonction avec les tubes, pour dupliquer un flux de
donnes. Sa syntaxe est la suivante :
tee fichier

o fichier est le nom du fichier dans lequel le flux d'entre standard doit tre enregistr.
Supposons par exemple que l'on dsire rediriger tous les messages (d'erreur ou non) de la commande
ls /proc/1/* dans un fichier result.txt, tout en continuant les visualiser sur l'cran. Pour cela, on
utilisera la commande suivante :
ls -l /proc/1 2>&1 | tee result.txt

l'issue de cette commande, le fichier 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 d'appeler une autre commande, en passant en paramtre les donnes
qu'elle reoit dans le flux d'entre 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 flux d'entre
standard. Une fois cette ligne de commande construite, xargs l'excutera. Par exemple, la commande
suivante :

ls l

peut tre excute galement de la manire suivante :

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 133

xargs ls

et en tapant la chane de caractres -l suivie du caractre de fin de fichier CTRL+D.
La commande xargs est une commande extrmement utile lorsqu'elle est utilise conjointement avec
les tubes, parce qu'elle permet d'utiliser le rsultat d'une commande en tant que paramtre pour une
autre commande. Ce mcanisme est donc complmentaire de celui des pipes, puisque ceux-ci
permettaient d'utiliser le rsultat d'une commande pour alimenter le flux d'entre standard d'une autre
commande.
Un exemple plus utile que le prcdent permettra de mieux comprendre comment on utilise la
commande xargs. Supposons que l'on dsire trouver tous les fichiers d'une arborescence complte
dont l'extension est .txt et contenant la chane de caractres test . La liste des fichiers de
l'arborescence peut tre dtermine simplement l'aide de la commande find, et la recherche du texte
dans les fichiers se fait naturellement l'aide de la commande grep. On utilisera xargs pour construire
la ligne de commande pour grep, partir du rsultat fourni par la commande find :
find -name "*.txt" | xargs grep -l "test"

Cette commande est plus simple et plus efficace que la commande quivalente :

find -name "*.txt" -exec grep -l "test" {} \;
parce que grep n'est excut qu'une seule fois (alors que l'option -exec de la commande find
l'excute pour chaque fichier trouv).
5.9.4. Manipulation des variables d'environnement
Les systmes Unix permettent de dfinir un environnement d'excution pour chaque programme en
cours d'excution. L'environnement est un ensemble de paramtres, que l'on appelle les variables
d'environnement, qui permettent de modifier le comportement du programme. Ces variables
contiennent une valeur de type chane de caractres, dont la signification est propre chaque variable.
Il est d'usage que les noms des variables d'environnement soient crits compltement en majuscules,
mais ce n'est pas une obligation.
Chaque programme est susceptible de reconnatre un certain nombre de variables d'environnement qui
lui sont propres, mais il existe galement des variables standards que tous les programmes utilisent.
C'est notamment le cas de la variable d'environnement RATH, 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 fichier de ce
programme dans chacun des rpertoires indiqus dans cette variable.
Par dfaut, les programmes sont lancs avec l'environnement du programme qui les lance, c'est--dire
dans la plupart des cas l'environnement d'excution du shell. Les programmes peuvent galement
dfinir de nouvelles variables d'environnement, qui seront ainsi accessibles par les programmes qu'ils
lanceront eux-mmes.
Comme tout programme, le shell dispose d'un environnement, qu'il utilise pour stocker ses propres
variables. En effet, comme nous l'avons dj signal plus haut, le shell est bien plus qu'un interprteur
de commande : il est compltement programmable. Et en tant qu'interprteur d'un langage de
programmation, il fournit la possibilit de dfinir des variables de ce langage. Les variables du shell
sont donc galement des variables d'environnement, mais le shell ne les communique pas par dfaut
aux programmes qu'il lance. Pour tre plus prcis, le shell utilise deux environnements diffrents :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 134

son propre environnement, qui contient les variables d'environnement locales la session du
shell en cours ;
l'environnement d'excution, dont les variables d'environnement sont transmises aux
programmes que le shell lance.
Il est trs facile de dfinir une variable du shell. Pour cela, il suffit de lui affecter une valeur, l'aide de
la syntaxe suivante :
variable=valeur

o variable est le nom de la variable dfinir, et valeur est la valeur que l'on dsire lui affecter. Notez
qu'il n'est pas ncessaire de fournir une valeur. Dans ce cas, la variable ainsi dfinie sera vide.
Par exemple, la ligne suivante :
BONJOUR="Bonjour tout le monde \!"

permet de dfinir la variable BONJOUR. Notez que la valeur est encadre entre guillemets, car elle
contient des espaces. Notez galement que le caractre point d'exclamation ('!') est prcd d'un
caractre d'chappement antislash ('\'), car il a une signification particulire pour le shell. Ce caractre
d'chappement permet simplement de signaler au shell qu'il ne doit pas interprter le caractre qui le
suit, et fait donc en sorte que le point d'exclamation 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 prfix d'un autre antislash si l'on dsire l'utiliser dans une chane de caractres.
La valeur d'une variable peut tre rcupre simplement en prfixant le nom de la variable du symbole
dollar ('$'). Ainsi, la commande suivante permet d'afficher le contenu de la variable BONJOUR :
echo $BONJOUR
Les variables ainsi dfinies ne font partie que de l'environnement du shell, elles ne sont donc pas
accessibles aux programmes que le shell lance. Donc, si l'on relance un nouveau shell avec la
commande suivante :
bash

et que l'on 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 (c'est--dire celui qui est en cours d'excution)
n'utilise pas le mme environnement que le premier shell. Vous pouvez quitter le nouveau shell avec la
commande suivante :

exit
Ds lors, vous serez nouveau dans le shell initial, et la variable BONJOUR sera nouveau accessible.
Pour rendre une variable du shell accessible aux programmes que celui-ci peut lancer, il faut l'exporter
dans l'environnement d'excution. Cela peut tre ralis avec la commande export :
export variable

o variable est le nom de la variable du shell exporter dans l'environnement d'excution.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 135

La syntaxe prcdente exporte de manire permanente les variables du shell. Mais il existe galement
une autre syntaxe, qui permet de ne dfinir des variables d'environnement que pour l'environnement
d'excution d'une seule commande. Cette syntaxe consiste simplement prfixer la commande
excuter par la dfinition de ladite variable. Par exemple, la commande suivante :
BONSOIR="Bonsoir tout le monde \!" bash

permet de lancer un shell et de lui communiquer la variable d'environnement BONSOIR. Cette variable
ne sera dfinie que pour ce programme, si l'on quitte ce shell avec un exit, la variable BONSOIR ne
sera plus dfinie.
Une variable peut tre dtruite tout instant l'aide 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 l'ensemble des variables dfinies avec la commande set. Le
tableau donn ci-dessous vous prsentera les variables d'environnement les plus utilises, que la
plupart des programmes utilisent pour permettre l'utilisateur de modifier leur comportement :
Tableau 5-3. Variables d'environnements courantes
Nom Signification
HOME Chemin du rpertoire personnel de l'utilisateur.
USER
Nom de login de l'utilisateur. Cette information est galement disponible
au travers de la variable d'environnement LOGNAME.
TERM
Type de terminal utilis. La valeur de cette variable sert aux applications
pour dterminer les caractristiques du terminal et ses fonctionnalits afin
d'optimiser leur affichage. La valeur de cette variable est souvent linux sur
les consoles Linux, et xterm dans les mulateurs de terminal graphiques
sous X11. Nous verrons l'utilit de cette variable plus en dtail dans la
Section 6.9.7.
SHELL
Chemin sur le fichier de programme du shell actuellement utilis. Sous
Linux, il s'agit souvent du shell bash.
RATH
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 suffit de placer un cheval de Troie
portant le nom d'une commande classique dans un rpertoire pour que
l'utilisateur le lance sans s'en rendre compte).
L_LIBRARY_RATH
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_INCLUE_RATH
Liste des rpertoires dans lesquels le compilateur C recherchera les
fichiers d'en-tte lors de la compilation des fichiers sources C. Cette liste
doit contenir les rpertoires additionnels, qui ne sont pas dj pris en
compte automatiquement par le compilateur C.
CRLUS_INCLUE_RATH
Liste des rpertoires dans lesquels le compilateur C++ recherchera les
fichiers d'en-tte lors de la compilation des fichiers sources C/C++. Cette
liste doit contenir les rpertoires additionnels, qui ne sont pas dj pris en
compte automatiquement par le compilateur C++.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 136

Nom Signification
LIBRARY_RATH
Liste des rpertoires dans lesquels les bibliothques utiliser lors de
l'dition de liens des programmes doivent tre recherches. Cette variable
n'est utilise que par les outils de dveloppement lors de la compilation de
fichiers sources et elle ne doit pas tre confondue avec la variable
d'environnement L_LIBRARY_RATH, qui indique la liste des rpertoires
dans lequel l'diteur de liens dynamiques recherchera les bibliothques
dynamiques utilises par les programmes lors de leur chargement. Les
notions de fichiers sources et de compilation seront dtailles dans le
Chapitre 7.
TMRIR
Rpertoire des fichiers temporaires. Par dfaut, le rpertoire des fichiers
temporaires est le rpertoire /tmp/, mais il est possible d'en changer grce
cette variable d'environnement.
TZ
Dfinition de la zone horaire de l'utilisateur. Le systme travaillant
exclusivement en temps universel, chaque utilisateur peut dfinir sa propre
zone horaire pour obtenir l'affichage des dates et des heures dans son
temps local. Le format de cette variable d'environnement 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 l'heure universelle pour obtenir l'heure
locale, le nom du fuseau horaire pour l'heure d't, le dcalage pour l'heure
d't, et les dates de dbut et de fin de l'heure d't. Les dcalages horaires
doivent tre exprims avec un '+' pour les fuseaux horaires placs l'ouest
de Greenwich, '-' pour ceux situs l'est. Les dates de dbut et de fin de la
priode d'heure d't peuvent tre exprims de deux manires diffrentes.
La premire mthode est d'indiquer le numro du jour dans l'anne aprs la
lettre 'J'. Ce numro ne doit pas tenir compte du 29 fvrier, mme pour les
annes bissextiles. La deuxime mthode est d'indiquer le mois de l'anne,
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 d'utiliser les noms de fuseaux horaires dfinis par la
bibliothque C. En France, on utilise normalement le fuseau CES (temps
d'Europe centrale).
LANG
Nom de la locale utiliser par dfaut pour les paramtres
d'internationalisation des applications. Cette valeur sera utilise pour les
paramtres qui n'en dfinissent 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 redfinie
par l'une des variables d'environnement dcrites ci-dessous.
LC_MESSAGES
Nom de la locale utiliser pour dterminer la langue des messages. La
valeur par dfaut est spcifie par la variable d'environnement LANG.
LC_TYRE
Nom de la locale utiliser pour dterminer les rgles de classification des
caractres. La classification des caractres permet de dire si un caractre
est un chiffre ou non, s'il est en majuscule ou en minuscule, etc. La valeur
par dfaut est spcifie par la variable d'environnement 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 spcifie par la variable d'environnement LANG.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 137

Nom Signification
LC_MONETARY
Nom de la locale utiliser pour dterminer l'emplacement et le caractre
reprsentant le symbole montaire du pays. La valeur par dfaut est
spcifie par la variable d'environnement LANG.
LC_NUMERIC
Nom de la locale utiliser pour dterminer les conventions locales
d'criture des nombres (sparateur dcimal, format de la virgule, etc.). La
valeur par dfaut est spcifie par la variable d'environnement LANG.
En rsum, le shell utilise les variables d'environnement du systme pour grer ses propres variables,
et permet de les exporter vers l'environnement d'excution qu'il communique aux commandes qu'il
lance. Un grand nombre de variables d'environnement classiques sont reconnues par les programmes.
Elles servent paramtrer leur comportement. Nous reverrons ultrieurement quelques-unes de ces
variables lors de la configuration du systme de base.
5.9.5. Caractre d'chappement et chanes de caractres
Un certain nombre de caractres sont interprts par le shell d'une manire spciale. Nous en avons
dj vu quelques-uns pour les redirections et les tubes, mais il en existe d'autres. Par consquent, il
faut utiliser une syntaxe particulire lorsqu'on dsire utiliser un de ces caractres dans une commande
du shell sans qu'il soit interprt par le shell. Pour cela, il suffit de faire prcder ces caractres du
caractre d'chappement antislash (caractre de la barre oblique inverse, '\'). Ce caractre permet
d'indiquer 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 d'un autre antislash, lorsqu'on veut
l'utiliser en tant que caractre normal.
Le caractre d'chappement antislash permet galement, lorsqu'il est plac en fin de ligne, de
supprimer le saut de ligne qui le suit. Cela signifie qu'il permet de rpartir une commande trop longue
sur plusieurs lignes, des fins 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. C'est pour cela que le shell permet de
dfinir des chanes de caractres dont il ignore le contenu lors de l'analyse syntaxique. Ces chanes de
caractres sont simplement donnes entre guillemets simples (caractre '). Par exemple, la commande
suivante :
MESSAGE='La syntaxe est A | B'

permet d'affecter la chane de caractres La syntaxe est A | B, contenant des espaces et le caractre |
normalement utilis par le shell pour les tubes, dans la variable d'environnement 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 d'un caractre
d'chappement.
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 signification trs diffrente. Le premier sert dfinir des chanes
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 138

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 bnficier des fonctionnalits de substitutions du shell, comme par exemple le
remplacement d'une variable par sa valeur dans la chane de caractres. De plus, elles ne peuvent pas
contenir de guillemets simples, puisque c'est leur caractre de terminaison. C'est pour ces raisons que
le shell donne la possibilit de dfinir des chanes de caractres plus souples, l'aide des guillemets
doubles (caractre "). Dans ces chanes de caractres, la plupart des caractres normalement interprts
par le shell ne le sont plus, comme pour les chanes de caractres utilisant les guillemets simples.
Cependant, les caractres spciaux $, ` et \ conservent leur signification initiale. Il est donc possible,
par exemple, d'utiliser des variables d'environnement dans les chanes de caractres de ce type :
echo "Mon nom est $USER"
Le caractre d'chappement 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 fin de la
chane de caractres s'il n'tait pas prcd d'un antislash.
Note : Remarquez que les guillemets et les caractres d'chappement ne sont utiliss que pour
l'analyse de la ligne de commande. Une fois toutes les chanes de caractres et toutes les substitutions
traites, les guillemets et les caractres d'chappement inutiles sont supprims. En pratique, ce sont
tous les caractres d'chappement et les guillemets qui restent aprs traitement de la ligne de
commande et qui ne font pas partie du rsultat d'une 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 l'excuter. 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 affich.
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 caractres
Bonjour, tout, le et monde en tant que paramtres (4 au total) la commande echo, alors que
l'utilisation des guillemets permet de passer toute la phrase en un seul paramtre. On peut voir la
diffrence en utilisant plus d'un espace entre chaque mot : les espaces superflus ne sont conservs que
dans la premire commande.
5.9.6. Les substitutions
L'une des fonctionnalits les plus puissantes du shell est sans doute sa capacit effectuer des
substitutions d'expressions par leur valeur. L'une des substitutions les plus courantes est sans doute le
remplacement d'une variable par sa valeur, mais le shell peut faire beaucoup plus que cela. Les lignes
de commandes peuvent tre crites en utilisant diffrents types d'expressions spciales, qui seront
remplaces par leur valeur par le shell avant l'excution de la commande. Ces expressions permettent
de spcifier des motifs de chane de caractres, d'exprimer des chemins partiels sur des fichiers ou des
rpertoires, de rcuprer la valeur des variables du shell, et de calculer des expressions mathmatiques,
voire d'inclure le rsultat d'une autre commande dans la ligne de commande en cours.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 139

Les mcanismes des substitutions dcrits ci-dessous sont prsents par ordre de priorit dcroissante.
Cela signifie que si une expression substituable contient elle-mme une autre expression substituable
de priorit infrieure, cette expression sera remplace aprs la substitution de l'expression contenant.
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 d'un prfixe, suivi d'une partie variable, suivie d'un suffixe. La
partie variable du motif est celle qui subira les substitutions pour gnrer une liste de chanes de
caractres commenant par le prfixe suivi du rsultat de la substitution et se terminant par le suffixe.
Cette partie variable doit tre spcifi entre accolades, et prend la forme d'une 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 qu'il s'agit l d'une
factorisation. C'est rigoureusement exact.
5.9.6.2. Substitution du nom d'utilisateur
Le caractre tilde ('~') est remplac par le nom de l'utilisateur courant ou, dfaut de nom, par le
chemin sur le rpertoire personnel de cet utilisateur. Il est possible de spcifier 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

permet de copier tous les fichiers d'extension .txt dans le rpertoire personnel de l'utilisateur jean.
5.9.6.3. Remplacements de variables
Comme il l'a dj t indiqu plus haut, la valeur des variables du shell et des variables
d'environnement peut tre rcupre en prfixant le nom de la variable par le caractre dollar ('$'). En
fait, cette criture est l'une des formes les plus simples que peuvent prendre les substitutions de
paramtres. En effet, il est possible de remplacer l'expression 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
compliques, et il peut tre ncessaire de les isoler du reste de la ligne de commande l'aide
d'accolades. La syntaxe exacte complte de ce type de substitution est donc la suivante :
${expression}

o expression est l'expression qui dfinit 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 n'est pas dfinie. Pour cela, on utilisera la syntaxe suivante :
${variable:-valeur}
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 140


o valeur est la valeur par dfaut utiliser dans ce cas. Notez que la variable reste indfinie aprs la
substitution. Pour fixer la valeur de la variable cette valeur par dfaut en plus d'effectuer la
substitution, on utilisera plutt la syntaxe suivante :

${variable:=valeur}

valeur a toujours la mme signification dans cette syntaxe.
Il est parfois prfrable d'afficher un message d'erreur plutt que de donner une valeur par dfaut
lorsqu'une variable n'est pas dfinie. Cela peut se faire avec la syntaxe suivante :
${variable:?message}

o message est le message afficher dans le cas o la variable variable est non dfinie ou de valeur
nulle.
Si l'on veut tester si une variable est non dfinie et renvoyer une valeur spcifique si elle est dfinie, on
utilisera la syntaxe suivante :
${variable:+valeur}

o valeur est la valeur renvoyer si la variable est dfinie. Si la variable n'est pas dfinie, la
substitution sera faite avec la chane de caractres vide (l'expression complte sera donc supprime).
Le shell permet galement de faire la substitution avec une sous-chane de la valeur de la variable,
partir d'une position donne et d'une 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 spcifier 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 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 l'on veut obtenir
la longueur d'une 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 d'une variable est une chane de caractre prfixe
d'une autre chane de caractres particulire. Le shell permet d'extraire la chane de caractres
principale, en supprimant ce prfixe. Pour raliser cette opration, on utilisera l'une des syntaxes
suivantes :
${variable#prfixe}

ou :
${variable##prfixe}

o variable est la variable contenant la chane de caractres traiter, et prfixe est le prfixe
supprimer.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 141

En fait, le prfixe peut tre spcifi l'aide d'un 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
d'interprter ce motif, et donc plusieurs choix de prfixes possibles supprimer. La premire syntaxe
devra tre utilise lorsqu'on dsire supprimer le plus petit prfixe possible correspondant au motif. La
deuxime syntaxe, quant elle, permettra de supprimer le prfixe le plus long. Par exemple, si la
variable VAR contient la chane de caractres abbbc, la commande suivante :
echo ${VAR#a*b} affichera la chane de caractres bbc, car le plus petit prfixe correspondant au
motif a*b est ab.

Inversement, la commande :

echo ${VAR##a*b} utilisera le prfixe 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 Secion5.9.7.
Le shell fournit une syntaxe similaire pour extraire des suffixes de la valeur des variables. Cette
syntaxe utilise simplement le caractre % au lieu du caractre #. Comme pour les prfixes, le fait de
doubler ce caractre implique que le suffixe le plus long correspondant au motif sera utilis, alors que
l'utilisation d'un seul % permet de choisir le suffixe le plus court. Ainsi, la commande :
echo ${VAR%b*c} affichera la chane de caractres abb, alors que la commande :
echo ${VAR%%b*c} n'affichera que a.
Pour terminer ce tour d'horizon 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 :
${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} affichera la chane de caractres adab.
Ce remplacement n'est donc effectu qu'une seule fois. Si l'on veut que toutes les occurrences du motif
soient remplaces par la chane de remplacement, il suffit de doubler le premier / :
${variable//motif/remplacement}

Dans les deux syntaxes, la prsence du champ remplacement est facultative. Cela permet de supprimer
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 fin de cette chane. Ces deux notations permettent d'obtenir le mme
effet que les suppressions de prfixes et de suffixes prsentes plus haut.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 142

5.9.6.4. Substitution du rsultat d'une commande
Le shell peut valuer une commande apparaissant dans une expression afin de la remplacer par son
rsultat dans la commande appelante. 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 (c'est--dire ce qu'elle enverra
ce rsultat sur le flux 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 fichier
/var/pid/p.pid. La commande cat est utilise pour afficher le contenu de ce fichier, et elle est substitue
par ce contenu. En fin de compte, la commande kill est applique au PID affich par cat.
La deuxime syntaxe utilisable est la suivante :
$(commande)

o commande est toujours la commande excuter et substituer. La diffrence entre ces deux
syntaxes est que, dans le premier cas, les caractres $, ` et \ sont toujours interprts par le shell et
doivent tre prcds d'un antislash s'ils 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, puisqu'elle marque la fin de la commande).
5.9.6.5. valuation d'expressions arithmtiques
En gnral, le shell ne manipule que des chanes de caractres. Cependant, il est capable d'valuer des
expressions mathmatiques simples faisant intervenir des entiers. Pour cela, il faut utiliser la syntaxe
suivante :
$((expression))

o expression est l'expression valuer.
Les expressions mathmatiques peuvent contenir tous les oprateurs classiques du langage C :
addition, soustraction, multiplication et division. Il existe en plus un oprateur d'lvation 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
l'expression qui les utilise est vraie, et 0 dans le cas contraire. Les oprateurs disponibles sont ==, <,
<=, >, >= et !=. Les tests peuvent tre composs l'aide des oprateurs && ( ET logique ) et ||
( OU logique ).
Les divers oprateurs d'affectation du langage C +=, -=, etc. sont galement disponibles.
5.9.6.6. Substitution de commandes
Nous avons dj vu qu'il tait possible de rcuprer le rsultat d'une commande et de l'injecter dans le
flux d'entre standard d'un processus par l'intermdiaire d'une pipe (cf. Section 5.9.3.2). Mais le shell
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 143

fournit une gnralisation de cette fonctionnalit sous la forme des substitutions de commandes. Ces
substitutions permettent de lancer une commande et de remplacer son expression par une pipe
nomme, grce auquel on peut communiquer avec le processus qui excute la commande.
La syntaxe utilise par les substitutions de commande est similaire celle des redirections classiques :
<(command)

ou :

>(command)

o command est la commande substituer.
Note : Attention ne pas mettre d'espace entre le caractre de redirection et la parenthse ouvrante,
faute de quoi le shell signalera une erreur.
La premire syntaxe permet de lancer une commande en arrire-plan en redirigeant son flux standard
de sortie vers un descripteur de fichiers du shell. Le rsultat de cette substitution est le nom du fichier
/dev/fd/n, permettant de lire les donnes crites par la commande dans ce descripteur de fichier. En
pratique, on utilise donc cette substitution en lieu et place d'un fichier d'entre pour une commande
normale. La deuxime commande permet de lancer galement une commande en arrire-plan, mais en
redirigeant le flux d'entre standard de cette commande cette fois. Il est alors possible de fournir les
donnes ncessaires cette commande en crivant dans le fichier /dev/fd/n dont le nom est fourni par
le rsultat de la substitution.
Ces deux commandes permettent donc de simplifier l'usage des pipes nomms, en vitant d'avoir
crer un fichier de tube nomm manuellement et d'avoir lancer les deux commandes devant se servir
de ce tube pour communiquer. Ainsi, la commande suivante :
cat <(ls)

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 n'imposent
pas la cration d'un fichier 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 signifie que
les rsultats de substitutions sont analyss pour identifier les mots qu'ils contiennent, en se basant sur
la notion de sparateur. Par dfaut, les sparateurs utiliss sont l'espace, le caractre de tabulation et le
retour de ligne, mais il est possible de spcifier des sparateurs diffrents l'aide de la variable
d'environnement IES (abrviation de l'anglais Internal Field Separator ).
Par exemple, le rsultat de la commande ls dans la commande suivante :
echo `ls`
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 144


est une chane de caractres contenant la liste des fichiers 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 fichiers renvoys par la commande ls. Au final, la commande echo est
appele, avec comme paramtres ces noms de fichiers, raison d'un par paramtre. Les noms de
fichiers sont donc affichs sur une seule ligne.
Note : Ce dcoupage en mot est effectu automatiquement par le shell la suite des substitutions vues
prcdemment. Cela signifie en particulier que s'il n'y a pas de substitution, il n'y 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 l'expression en cours de traitement, il interprtera la partie de l'expression
contenant ces caractres comme un motif reprsentant des chemins de fichier Unix. Les caractres * et
? auront donc le comportement que l'on 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 fichiers 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 spcifies en indiquant le premier et le dernier caractre, spars par un tiret. Par exemple, la
commande suivante :
ls [a-c,m-t]*.txt

permet d'afficher tous les fichiers dont le nom commence par les lettres a, b, c et les lettres allant de m
t, et dont l'extension 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 s'appliquera pas, par dfaut, sur le rpertoire courant et le rpertoire parent.
Paramtrer bash pour qu'il 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 fichiers utilisent des motifs pour identifier 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 vrifient 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 dfinir les motifs de chanes de caractres dans le shell bash est un sous-
ensemble d'un langage plus complexe permettant de dcrire ce que l'on appelle les expressions
rationnelles (l'usage dit galement expressions rgulires ). Le langage des expressions rationnelles
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 145

est relativement compliqu, mais extrmement puissant. Ce langage permet d'identifier avec prcision
des sous-chanes de caractres dans un chane de caractres l'aide 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 les expressions utilisables dans les substitutions du shell bash.
Comme vous l'avez sans doute dj devin au travers des exemples prcdents, le caractre '*' permet
d'identifier 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 d'une expression rationnelle, ventuellement en le
rptant un certain nombre de fois.
Les deux caractres de substitutions prcdents peuvent contenir n'importe quel caractre, ce qui peut
parfois ne pas tre assez restrictif dans la dfinition d'un motif. Le shell fournit donc une syntaxe plus
volue, permettant de dfinir 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 l'ensemble des caractres qui peuvent apparatre dans le
motif ainsi dfini. Notez que dans le cas d'une suite de caractres, il suffit de spcifier le premier et le
dernier caractre, et de les sparer par un trait d'union (caractre '-'). Ainsi, le motif suivant :

[a-egt]

reprsente n'importe lequel des caractres de 'a' 'e', plus les caractres 'g' et 't'.
Note : Pour spcifier le caractre - lui-mme, il suffit de le placer tout seul au dbut ou la fin de la
liste de caractres spcifie entre les crochets. De mme, pour spcifier le caractre ']' lui-mme
(normalement utilis pour marquer la fin du jeu de caractres), il faut le placer au dbut de la liste,
juste aprs le crochet ouvrant.
Pour finir, sachez que le shell bash est galement capable de prendre en charge des expressions
rationnelles plus complexes que celles prsentes ici. Cependant, ces expressions ne sont pas actives
par dfaut, et ne sont donc accessibles qu'en 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
permettant de contrler l'excution du programme, de raliser des boucles et de structurer l'ensemble
d'un programme. Le shell n'chappe pas la rgle, et fournit la plupart des constructions classiques.
Cette section a pour but d'exposer 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 d'un
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 dfinie
comme tant une ligne de commande normale du shell.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 146

Le shell permet bien entendu de raliser des instructions composes, afin de regrouper plusieurs
traitements dans un mme bloc d'instructions. La mthode la plus simple pour raliser un bloc
d'instructions 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
d'instructions :
{
cd /tmp
rm *.bak
}

Notez que l'accolade fermante est considre comme une instruction part entire. Cela signifie que si
l'on ne met pas l'accolade fermante sur une ligne indpendante, il faut faire prcder l'instruction
prcdente d'un point-virgule. De mme, il faut le faire suivre d'un autre point-virgule s'il ne se trouve
pas la fin d'une ligne.
Les instructions des instructions composes cres l'aide des accolades sont excutes au sein du
shell courant. Les variables qu'elles dfinissent, ainsi que les changements de rpertoires, sont donc
toujours valides l'issue de l'excution de ces instructions. Si cela n'est pas dsirable, on pourra crer
des instructions composes l'aide de parenthses. Les instructions seront alors excutes dans un
autre shell, lanc pour l'occasion, et elles n'auront donc pas d'effet de bord imprvu dans le shell
appelant. Par exemple, le rpertoire courant l'issue de l'instruction compose prcdente est le
rpertoire /tmp/, alors que l'instruction compose suivante :
(
cd /tmp
rm *.bak
)

ne change pas le rpertoire courant.
Note : On ne confondra pas les instructions composes utilisant des parenthses et les substitutions de
rsultat de commande. Les instructions composes renvoient le code d'erreur de la dernire instruction
excute, alors que le rsultat des substitutions est ce que la commande a crit sur son flux de sortie
standard.
Le shell permet galement de raliser des instructions composes conditionnelles, o l'excution de
chaque instruction de l'instruction compose est conditionne par le rsultat de l'instruction
prcdente. Ces instructions composes sont dfinies l'aide 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 l'oprateur ||, la
commande command2 n'est excute que si le code de retour de la commande command1 est non nul,
ou, autrement dit, si cette commande ne s'est pas excute correctement. Inversement, avec l'oprateur
&&, la commande command2 n'est excute que si la premire commande s'est 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 d'effacer tous les fichiers d'extension .txt, ou d'afficher le message d'erreur Aucun fichier
supprimer s'il n'existe pas de fichier ayant une telle extension.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 147

Les instructions composes peuvent tre utilises comme n'importe quelle commande normale. En
particulier, elles peuvent tre utilises dans des commandes plus complexes, par exemple comme
destination d'un tube. C'est ce que faisait l'exemple 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 d'autres paramtres peuvent tre fournis par le processus appelant par l'intermdiaire
de variables d'environnement et de descripteurs de fichiers. Le code de retour, quant lui, est un entier
signalant si l'excution du processus s'est termine correctement ou si des erreurs ont eu lieu. Si les
codes d'erreurs varient grandement d'un programme un autre, la valeur 0 signifie toujours, et ce quel
que soit le programme, que l'excution s'est droule correctement.
Il est possible de tester le code de retour d'une commande avec l'instruction 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 (c'est--dire, si la commande commande s'est excute correctement).
Il peut paratre rducteur de ne pouvoir tester que le code de retour d'une commande. Mais en fait, c'est
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 qu'on lui passe, et d'ajuster son code d'erreur en consquence. Par exemple, pour
tester l'galit d'une variable d'environnement 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 qu'il faut
mettre une espace entre chaque paramtre, et en particulier entre le nom de la commande ([), le
premier oprande ($variable), l'oprateur utilis (==), le deuxime oprande (valeur) et le caractre de
marque de fin de test (]).
La commande [ est capable d'effectuer tous les tests standards. Par dfaut, elle considre que les deux
oprandes du test sont des chanes de caractres, et elle utilise l'ordre lexicographique pour les
comparer. Les tests d'galit et d'ingalit sont effectus respectivement avec les oprateurs == et !=.
Les oprateurs d'antriorit dans l'ordre lexicographique sont < et <=, et les oprateurs de postriorit
sont > et >=. Notez que l'utilisation 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 d'chappement antislash.
L'ordre lexicographique convient dans la plupart des cas, mais il n'est 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"
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 148

fi

est vrifi, car le caractre 1 prcde le caractre 2 dans l'ordre lexicographique. La commande [
fournit donc la possibilit d'utiliser une autre syntaxe pour comparer les entiers. Cette syntaxe utilise
les options 1 et g respectivement pour les tests d'infriorit stricte et de supriorit stricte, et les
options 1e et ge respectivement pour les tests d'infriorit et de supriorit ou d'galit. 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
d'une commande, et qu'en fonction de la valeur de ce code de retour, d'excuter 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 l'instruction 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
Notez que la deuxime commande [ n'est excute que si le premier test est vrifi. L'utilisation de
l'oprateur || se fait selon le mme principe. Il est bien entendu possible de regrouper plusieurs
commandes de test ensemble, l'aide de parenthses.
Comme dans la plupart des langages informatiques, l'instruction if peut prendre une forme plus
complexe pour traiter les cas o le test n'est pas vrifi. Ainsi, pour excuter une action spcifique
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 l'action 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 l'on 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 d'optimisation, le shell peut simuler le comportement du programme [, et
viter ainsi de le lancer chaque fois qu'il a faire un test. Cependant, le principe originel tait bien
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 149

celui dcrit ci-dessus. Cette description, bien que n'tant 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 d'avoir manipuler cette valeur directement, car les
structures de contrle du shell telles que if permettent d'effectuer les actions qui s'imposent 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 exi ou par l'instruction return de la fonction principale main. Les paramtres de la ligne
de commande, quant eux, sont rcuprables par l'intermdiaire des paramtres de la fonction
principale main.
Il ne faut pas oublier que la fonction premire du shell est de permettre les manipulations de fichiers. Il
n'est donc pas tonnant que la commande [ permette galement de raliser tous les tests imaginables
sur les fichiers. Ces tests vont de l'existence d'un fichier au test de sa nature et de ses attributs, en
passant par les tests sur l'identit de son propritaire et de son groupe. La syntaxe gnrale de ces tests
est la suivante :
if [ option fichier ] ; then
.
.
.
fi
o option est une option de la commande [ dcrivant la proprit teste, et fichier est le nom du fichier
sur lequel le test doit porter.
Les principales options utilisables dans les tests sur les fichiers sont rcapitules dans le tableau ci-
dessous :
Tableau 5-4. Tests sur les fichiers
Option Signification
-e Test d'existence d'un fichier ou d'un rpertoire.
-d Test d'existence d'un rpertoire.
-f Test d'existence d'un fichier normal.
-s Test d'existence d'un fichier et vrification que sa taille est non nulle.
-L Test d'existence d'un lien symbolique.
-b
Test d'existence d'un fichier spcial de priphrique de type bloc (disque dur, CD-ROM,
lecteur de cassettes, etc.).
-c
Test d'existence d'un fichier spcial de priphrique de type caractre (port srie, port
parallle, carte son...).
-p Test d'existence d'un tube.
-r Test d'existence du fichier et d'accessibilit en lecture de ce fichier.
-w Test d'existence du fichier et d'accessibilit en criture de ce fichier
-x Test d'existence du fichier et de possibilit d'excution de ce fichier.
-g Test d'existence du fichier et de prsence du bit setgid sur ce fichier.
-u Test d'existence du fichier et de prsence du bit setuid sur ce fichier
-k Test d'existence du fichier et de prsence du bit sticky sur ce fichier.
-O Test d'existence du fichier et d'appartenance de ce fichier l'utilisateur effectif courant.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 150

Option Signification
-G Test d'existence du fichier et d'appartenance de ce fichier au groupe effectif courant.
-N Test d'existence du fichier et de modification de ce fichier depuis la dernire fois qu'il a t lu.
Note : Ce tableau n'est pas exhaustif, mais les options les plus importantes et les plus utilises s'y
trouvent.
Vous pourrez vous rafrachir la mmoire sur les notions de bit setuid, setgid et sticky, ainsi que sur les
notions d'utilisateur et de groupe effectifs en relisant la Section 4.2.
La commande [ accepte galement les options -n et -o, qui permettent respectivement de tester si
un fichier est plus rcent ou plus vieux qu'un autre, en se basant sur les dates de dernire modification
de ces fichiers. Ces deux oprateurs s'utilisent avec la syntaxe suivante :
if [ fichier1 option fichier2 ] ; then
.
.
.
fi

o fichier1 et fichier2 sont les deux fichiers sur lesquels la comparaison doit porter, et option est l'une
des options -n ou -o.
5.9.8.3. Le branchement conditionnel
Lorsqu'on veut effectuer diffrentes oprations selon la valeur d'une variable, l'instruction 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 spcifier quelle action doit tre prise pour chaque valeur de la variable.
Le branchement conditionnel s'utilise de la manire suivante :
case valeur in
( motif1 | motif2 | ... ) commande1 ;;
( motifn | motifn+1 | ... ) commande2 ;;
.
.
.
esac

o motif1, motif2... motifn+1 sont des motifs spcifiant 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 l'un de ses
motifs correspondants. Une fois excute, la recherche se termine, et l'excution 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 compress avec gzip" ;;
( *.tar ) echo "$i est une archive" ;;
esac

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 151

affiche la nature du fichier 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 fin de la boucle,
et action est l'instruction (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, l'instruction action est excute.
L'instruction until utilise la mme syntaxe que l'instruction while :
until commande ; do
action
done

ceci prs que l'instruction action est excute tant que la commande commande renvoie un code de
retour non nul. L'instruction until utilise donc simplement le test inverse de celui de l'instruction while.
Bien entendu, il est possible d'utiliser la commande [ pour effectuer des tests plus complexes que le
simple test du code de retour d'une 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 s'excutent pour chaque lment d'un ensemble donn. Le shell
gre les itrations par l'intermdiaire de l'instruction 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 l'itration, ensemble est l'ensemble des valeurs que
peut prendre cette variable, et action est la commande (simple ou compose) excuter pour chaque
valeur de cette variable.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 152

Le principe des itrations est trs simple. Pour chaque valeur indique dans l'ensemble des valeurs, la
commande est excute, avec la valeur en question accessible dans la variable utilise pour l'itration.
Par exemple, la commande suivante :
for i in *.txt ; do
mv $i ${i/%.txt/.doc}
done

permet de renommer tous les fichiers portant l'extension .txt en fichier du mme nom, mais avec
l'extension .doc.
Il n'est pas ncessaire de prciser l'ensemble des valeurs que peut prendre la variable. Dans ce cas,
l'ensemble 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.
5.9.8.6. Les ruptures de squence
Il est parfois ncessaire de modifier l'ordre d'excution dans les boucles et les itrations du shell. Par
exemple, il est souvent ncessaire de sortir de la boucle courante, soit parce qu'on ne peut plus la
continuer dans de bonnes conditions, soit parce que le traitement est termin. C'est notamment le cas
lorsqu'une erreur se produit, ou lorsqu'on recherche une valeur spcifique en itrant sur les valeurs
possibles d'un ensemble.
Le shell fournit donc les instructions break et continue, qui permettent respectivement de sortir de la
boucle courante et de passer directement l'itration suivante. Ces deux commandes peuvent tre
utilises aussi bien l'intrieur des boucles while et until que dans les itrations crites avec
l'instruction 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
d'imbrication de la boucle sur laquelle elles s'appliquent. Ce paramtre doit imprativement tre
suprieur sa valeur par dfaut, c'est--dire 1. Ainsi, pour sortir directement d'une double boucle
lorsqu'on 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 signifie que l'on peut crer des fonctions pour
regrouper des sries d'instructions couramment excutes. La syntaxe permettant d'crire de telles
fonctions est la suivante :
function nom () {
instructions
}
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 153


o nom est le nom de la fonction, et instructions est la liste des commandes excuter dans cette
fonction.
Vous constaterez qu'il n'y a pas de dclaration des paramtres de cette fonction. C'est normal : les
paramtres des fonctions sont passs implicitement dans les variables d'environnement $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 signifie que les paramtres du script ne
sont pas accessibles dans le corps d'une fonction, puisqu'ils 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 l'excution de cette
fonction. Si l'on veut dfinir des variables locales, on prcdera la dfinition 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
indique l'aide de l'instruction return. Par exemple, la fonction suivante calcule la somme des entiers
de 0 la valeur de l'entier qu'elle 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 d'erreur pourra tre rcupr par l'appelant dans la variable d'environnement $? :
somme 10
echo $?
5.9.8.8. Les entres / sorties de donnes
Tout langage de programmation qui se respecte dispose de possibilits d'entre / sortie pour permettre
la communication avec l'utilisateur de manire interactive, et le shell n'chappe pas la rgle.
Nous avons dj vu la commande echo dans bon nombre des exemples qui prcdaient, et vous avez
sans doute devin qu'il s'agissait l de la commande qui permet d'afficher du texte l'cran. Son
utilisation est des plus simples, puisqu'elle se contente d'envoyer sur le flux de sortie standard une
chane de caractres contenant tous les paramtres qu'elle reoit, spars par des espaces. Nous ne
nous attarderons donc pas sur cette commande, qui n'a pas d vous poser de problmes jusqu' prsent.
Il ne nous reste donc plus qu' voir la manire de demander l'utilisateur de saisir une valeur. Avec
bash, la demande de saisie des donnes se fait classiquement l'aide de la commande read. Cette
commande lit une ligne sur le flux d'entre standard, la dcoupe en une ou plusieurs donnes et place
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 154

les rsultats dans les variables d'environnement qu'elle reoit en paramtre. La syntaxe de read est
donc la suivante :
read variable1 variable2 ... variablen

o variable1, variable2, etc. sont les noms des variables d'environnement dans lesquelles les rsultats
de la saisie doivent tre placs.
La commande read utilise les sparateurs indiqus dans la variable d'environnement IES pour
dcouper la ligne lue dans le flux d'entre standard. Si le nombre de variables spcifi est infrieur au
nombre de mots de cette ligne aprs dcoupage, les premires variables d'environnement reoivent 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 d'une ligne dans la variable d'environnement MOT et de placer le reste
dans la variable RESTE.
La commande read dispose d'une syntaxe simplifie, qui ne prend aucun paramtre. Dans ce cas, la
ligne lue dans le flux d'entre standard est place telle quelle dans la variable d'environnement RERLY.
Il est la charge du programmeur d'analyser son contenu.
Le shell dispose galement d'une instruction volue permettant de raliser des menus simplifis :
l'instruction select. Cette instruction construit un menu partir d'un certain nombre de choix, chaque
choix tant prcd par un numro, et demande l'utilisateur de taper le numro de son choix. Elle
affecte alors la valeur du choix correspondant une variable d'environnement, et excute une
commande pour le traitement du choix. La syntaxe gnrale de l'instruction 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 l'utilisateur, 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 l'utilisateur est incorrect, la variable de contrle reoit la valeur nulle. Le programmeur
peut rcuprer la valeur saisie par l'utilisateur dans la variable d'environnement RERLY et effectuer un
traitement d'erreur appropri.
L'instruction select est une boucle. Le menu est repropos aprs chaque excution de l'action action.
La sortie de cette boucle ne peut se faire que si un caractre de fin de fichier (CTRL + D) est lu sur le
flux d'entre standard, ou si une option de menu spcifique est propose pour quitter cette boucle.
Vous trouverez un exemple de menu simplifi 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 155

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 l'on en a besoin. D'autre part, la saisie d'une
longue ligne de commande multiplie les risques de faire une faute de frappe et d'avoir corriger la
commande. Cela peut au mieux faire perdre son temps l'utilisateur, et au pire l'nerver.
Le shell fournit donc un mcanisme pour donner un nom simplifi aux commandes complexes : le
mcanisme des alias. Les alias reprsentent en fait des chanes de caractres complexes, et sont
remplacs automatiquement par le shell lorsqu'il analyse les lignes de commandes. C'est un
mcanisme plus souple que celui des variables d'environnement, et qui permet de dfinir des macro-
commandes plus facilement qu'avec les fonctions du shell.
Pour crer un alias, vous devrez utiliser la syntaxe suivante :
alias nom=chane

o nom est le nom de l'alias, 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 utilis simplement en tapant beep en ligne de commande.
Vous pouvez visualiser la liste des alias existant simplement l'aide 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 l'aide de la commande unalias. Sa syntaxe est la suivante :
unalias nom

o nom est le nom de l'alias supprimer.
Note : Les alias ne sont remplacs par la chane de caractres qu'ils reprsentent que lorsque le shell
analyse la ligne de commande. Cela signifie que les dfinitions d'alias ne sont valides qu'aprs
validation de cette ligne. On vitera donc de dfinir des alias dans la dclaration d'une instruction
compose, car cet alias ne sera pas disponible l'intrieur de son propre bloc d'instructions.
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 l'instant, toutes les fonctionnalits de bash, aussi puissantes soient-elles, ne constituent que
l'interface d'un interprteur de commandes puissant. Mais nous avons dit que le shell tait
vritablement un langage de programmation. Cela signifie qu'il est possible d'crire des programmes
complexes en langage shell, simplement en stockant plusieurs commandes dans un fichier. On appelle
ces fichiers des scripts shell.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 156

L'criture d'un script shell n'est 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 fichier texte sur lequel on a mis les droits d'excution. Il contient les
diffrentes commandes qu'il doit excuter. Sa premire ligne est trs importante, elle permet d'indiquer
au shell excutant quelle est la nature du fichier. La syntaxe de cette ligne est la suivante :
#!shell

o shell est le chemin absolu sur le shell ou l'interprteur de commande capable d'excuter 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 l'expression $1, le deuxime avec l'expression $2, le
troisime avec l'expression $3, etc.
Le code de retour d'un shell pourra tre fix l'aide de la commande exit. Par exemple :
exit 0

Ce code de retour pourra tre rcupr par l'appelant l'aide de l'expression $?.
Nous n'irons pas plus loin dans la description du shell bash, car ce n'est pas le but de ce document.
Vous pouvez vous rfrer un bon livre d'Unix 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 n'avons pas parl ici, chacun tant
conu souvent pour raliser un certain type de tche (administration systme, manipulation de fichiers
textes, cration de pages Web dynamiques, cration d'interfaces utilisateur en mode fentr, pilotage
d'applications, etc.). Si vous vous y intressez, vous verrez que le sujet est rellement vaste et
passionnant.
Chapitre 6 : Administration du systme de base
Table des matires

6.1. Sauvegarde de la configuration d'installation
6.2. Mise l'heure du systme
6.3. Gestion des utilisateurs et de la scurit
6.4. Gestion des paquetages
6.5. Notion de niveau d'excution et amorage du systme
6.6. Maintenance des systmes de fichiers
6.7. Gestion des volumes
6.8. Configuration des terminaux virtuels
6.9. Configuration de la console
6.10. Configuration de l'imprimante
6.11. Configuration du lancement automatique des tches
6.12. Gestion de l'nergie
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 157

Un certain nombre d'oprations que l'on peut faire avec un systme Unix ne rentre pas dans le cadre
d'une utilisation quotidienne, mais est destine plutt l'administration du systme lui-mme. Ces
oprations peuvent tre ralises l'aide de commandes Unix spciales, gnralement rserves
l'administrateur du systme, ou peuvent tre ralises en modifiant les fichiers de configuration du
systme.
Il est trs probable que le programme d'installation ou le programme de configuration de votre
distribution vous permette d'effectuer ces tches de manire relativement aise ou conviviale.
L'utilisation de ces programmes est trs simple, puisqu'en gnral il suffit de rpondre quelques
questions et les modifications 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 spcificits de chaque distribution. Cela dit, ces programmes ne peuvent pas tout prvoir, parce que
Linux est un systme capable d'effectuer un grand nombre de tches trs diversifies d'une part, et
parce que ce que vous voulez en faire personnellement ne correspond pas forcment un standard
prdtermin d'autre part.
Cette partie dcrira donc les commandes d'administration et de maintenance les plus importantes et le
mcanisme gnral d'amorage des systmes Linux. Les principaux fichiers de configuration
permettant de modifier le comportement du systme seront galement dcrits afin de permettre un
usage courant de Linux dans de bonnes conditions. Les notions les plus avances concernant
l'administration 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 d'administration
Unix.
L'administration du systme est un peu moins sensible que son installation. En effet, les seuls risques
que l'on encourt sont de dtruire les fichiers de configuration du systme, et donc de devoir les recrer
manuellement. Il n'y a pas de manipulation de partitions ou de systme de fichiers crer, aussi le
risque de perdre des donnes est-il nettement plus faible. Cependant, les oprations d'administration se
feront sous le compte root, ce qui implique une prudence extrme. C'est pour cette raison que nous
allons commencer par sauvegarder l'ensemble des fichiers de configuration, afin de pouvoir revenir
l'tat initial aprs installation, sans repasser par la case dpart.
6.1. Sauvegarde de la configuration d'installation
La sauvegarde de la configuration du systme est une opration facile raliser. En effet, tous les
fichiers de configuration sont placs dans le rpertoire /etc/. Par consquent, il suffit de faire une
archive des fichiers 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
l'administrateur systme. On notera que, pour certaines distributions, quelques fichiers de
configuration 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/*
De cette manire, si l'on a un gros problme avec la configuration de la machine, on peut revenir
simplement la configuration utilise juste aprs l'installation du systme avec la simple commande
suivante :
tar xvfz /root/install.conf.tar.gz

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 158

commande que l'on excutera dans la racine du systme de fichiers.
Cette commande crasera tous les fichiers existants par ceux de la sauvegarde. Les fichiers 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 l'on aura russi
configurer le systme correctement et que, thoriquement, il n'y aura plus toucher aux fichiers de
configuration. Cette sauvegarde devra tre place sur une disquette ou un support amovible que l'on
conservera en lieu sr

6.2. Mise l'heure du systme
Les systmes d'exploitation utilisent l'heure pour un certain nombre de tches. En particulier, les
fichiers disposent de plusieurs dates (date de cration, date d'accs et date de dernire modification),
qui sont utilises par diffrents programmes. Les programmes de sauvegarde en font videmment
partie, parce qu'ils se basent sur les dates de modification des fichiers pour dterminer quels sont les
fichiers 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 l'intgrer dans leurs
documents. En clair, il est important que votre systme soit l'heure.
En fait, il existe deux horloges dans votre systme. La premire horloge, qui est l'horloge de rfrence
pour toutes les oprations effectues dans le systme, est l'horloge dite systme . Cette horloge est
maintenue par le noyau grce un compteur qui est incrment rgulirement, sur la base d'une
interruption matrielle. La prcision de ce compteur est a priori la mme que celle de l'interruption 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
systmes reprogramment la frquence de cette interruption 100 Hz environ). La deuxime horloge
est l'horloge matrielle, qui est l'horloge qui maintient l'heure de votre ordinateur pendant qu'il est
teint. Cette horloge est couramment appele l'horloge CMOS, parce qu'elle est gre par un
composant CMOS qui stocke toutes les informations permanentes du BIOS.
Pour rpondre immdiatement une question (dsormais sans objet), prcisons que Linux n'a aucun
problme vis--vis des dates critiques du changement de millnaire. En effet, les systmes Unix
n'utilisent qu'un 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 l'an 2000. En fait, le dbordement de ce compteur est prvu pour
2038, mais n'aura jamais lieu car l'apparition des processeurs 64 bits va porter, d'ici l, la taille de ce
compteur 64 bits. Cela tant, il est possible que certaines applications mal crites n'utilisent pas ce
format de date, et ne soient donc pas compatibles. Heureusement, ce cas de figure est trs rare sous
Unix. Bien entendu, le problme reste entier si l'horloge matrielle de votre PC n'est pas compatible.
Dans ce cas, la solution la plus simple est de rgler l'heure systme chaque dmarrage, manuellement
ou l'aide de scripts de correction de la date renvoye par l'horloge matrielle.
La valeur du compteur de l'horloge systme est toujours interprte en temps universel ( UTC en
anglais, abrviation de Universal Time Coordinated ), c'est--dire le temps de rfrence valide dans
le monde entier. Ce temps ne comprend pas les fuseaux horaires ni les rglementations concernant les
heures d'hiver et d't. Cette convention est utilise partout dans le systme, ce qui est la condition 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 simplifie beaucoup les choses. Notez galement que le fait de compter
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 159

le temps en secondes permet de s'affranchir des conventions de dcoupage du temps et des calendriers
utiliss dans chaque pays.
Bien entendu, les dates prsentes l'utilisateur doivent tre traduites en temps local, corrig des
carts pour l'heure d't et l'heure d'hiver. Cela est ralis par tous les programmes qui doivent afficher
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 d't et d'hiver.
La solution la plus simple pour rgler la date et l'heure de votre machine est donc de rgler l'horloge
matrielle sur le temps universel, et de dfinir le fuseau horaire dans lequel elle se trouve, pour que le
systme puisse calculer l'heure locale. Malheureusement, les systmes d'exploitation de Microsoft ne
voient pas la chose de la mme manire. Ils attendent que l'horloge matrielle soit rgle l'heure
locale. Par consquent, si Linux est install sur un ordinateur disposant dj de Windows, vous devrez
rgler l'heure 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 l'heure locale et de la zone horaire.
Cependant, cela a un inconvnient : il est ncessaire de mettre l'heure l'horloge systme en cas de
dplacement de la machine, et chaque changement d'horaire d't ou d'hiver. Bien sr, Windows est
suppos tre capable de mettre jour l'heure matrielle en observation avec l'heure d't / d'hiver .
Mais il utilise pour cela des rgles qui sont fixes dfinitivement dans le systme et qui ne peuvent pas
tre mises jour avec les rglementations locales (par exemple, la rgle de changement d'heure a t
modifie en 1996, si bien que Windows 95 n'a jamais pu fonctionner correctement sur ce point...).
Quoi qu'il en soit, la mise l'heure d'un systme Linux requiert la dfinition de la zone horaire, la mise
l'heure du systme et la mise l'heure de l'horloge matrielle. La dfinition 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 dfinies 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 fin) et la diffrence entre le
temps universel et le temps local lorsque cette rgle s'applique (gestion des horaires d't et d'hiver
compris). Toutes ces rgles portent le nom de la zone gographique dans laquelle elles sont valides.
Vous pourrez trouver des exemples de dfinitions de rgles (ainsi que l'historique des conventions
concernant le temps) dans le rpertoire timezone des sources de la bibliothque C GNU.
Les fichiers 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 dfinir la
zone horaire active. Cette opration se fait dans les fichiers de dmarrage de votre systme, avec une
commande similaire la suivante :
zic -l zone

o zone est le chemin relatif du fichier de dfinition 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 fixe, il est possible de rgler l'horloge systme. Il existe deux solutions pour
cela. La premire solution est d'utiliser la commande systme date. Cette commande, appele sans
paramtres, permet d'obtenir la date systme, exprime en temps local. Mais elle permet galement de
modifier la date et l'heure systme avec l'option -s. La syntaxe complte utilise est donne ci-
dessous :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 160

date -s "MM/JJ/AAAA HH:MM:SS"
Il n'est pas ncessaire de prciser l'anne si celle-ci ne doit pas tre change. De mme, vous pouvez
ne donner que l'heure, si la date du jour est correcte. En revanche, vous devez obligatoirement prciser
l'heure si vous changez la date. Notez que l'heure doit tre donne en temps local, moins que l'option
-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 l'heure exacte
en appelant le 3699.
La deuxime solution est celle qui est utilise au dmarrage du systme. Elle consiste initialiser
l'horloge systme partir de l'horloge matrielle. Cette opration se fait normalement l'aide de la
commande clock (qui en fait est un lien symbolique vers hwclock, mais la commande Unix
traditionnelle est clock). La syntaxe de cette commande est la suivante :
clock [-u] -s | -w | -a
L'option -s permet d'initialiser l'horloge systme partir de la date et de l'heure stockes dans l'horloge
matrielle. C'est typiquement cette commande qui est utilise dans les scripts de dmarrage du
systme. L'option -w permet de raliser l'opration inverse, c'est--dire sauvegarder la date et l'heure
de l'horloge systme dans l'horloge matrielle. Elle n'est en gnral utilise qu'aprs avoir remis
l'heure l'horloge systme. L'option -a permet, quant elle, de corriger l'avance ou le retard que
l'horloge matrielle peut prendre.
Ce dernier point mrite quelques explications complmentaires. En fait, l'horloge matrielle n'est pas
extrmement prcise, et peut se dcaler petit petit de l'heure relle. Heureusement, ce dcalage est
constant, ce qui fait qu'il est possible de le mesurer et de le prendre en compte. Le programme clock
utilise le fichier /etc/adjtime pour enregistrer de combien est ce dcalage afin de pouvoir effectuer les
corrections. Le principe de fonctionnement est le suivant :
lors du premier rglage de l'horloge matrielle (avec l'option -w), il enregistre l'instant de ce
rglage dans le fichier /etc/adjtime ;
lors des rglages suivants, il calcule le temps qui s'est coul depuis le rglage prcdent, et le
dcalage entre l'heure de l'horloge matrielle et l'heure laquelle celle-ci aurait d se trouver.
Il enregistre ce dcalage et met jour la date de mise l'heure (pour pouvoir refaire ce calcul
ultrieurement) ;
lorsqu'on l'appelle avec l'option -a, clock ajuste l'horloge matrielle. Pour cela, il regarde la
date courante, calcule le temps coul depuis la dernire mise l'heure ou le dernier
ajustement, en dduit l'avance ou le retard de l'horloge matrielle, et la remet l'heure en
consquence. Il enregistre galement la date de cet ajustement comme nouvelle date de mise
l'heure, afin de ne pas faire deux fois l'ajustement pour cette priode la prochaine fois.
De cette manire, il est possible de maintenir l'horloge systme une valeur proche de la ralit (sans
ce genre de mcanisme, il est courant de prendre 5 minutes d'cart en trois ou quatre mois, ce qui est
dj considrable).
Les scripts d'initialisation de votre systme doivent donc certainement contenir au moins les deux
lignes suivantes aprs le rglage de la zone horaire :
# Ajuste l'horloge matrielle :
clock -a
# Initialise l'horloge systme :
clock -s
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 161

Dans tous les cas, l'option -u permet d'indiquer que l'horloge matrielle est rgle en temps universel.
Si votre machine ne dispose pas d'autre systme que Linux, il est recommand de procder ainsi et
d'utiliser systmatiquement cette option.
Note : Il est important de dfinir la zone horaire avec zic avant d'utiliser clock. En effet, si l'horloge
matrielle est rgle en temps local, clock ne pourra pas dterminer l'heure en temps universel. D'autre
part, clock initialise la structure de zone horaire interne noyau, que celui-ci utilise notamment pour
l'criture des dates en temps local sur les systmes de fichiers FAT (Eh oui, les dates des fichiers des
systmes de fichiers FAT sont enregistres en temps local...).
Sachez galement que l'horloge systme peut galement se dcaler sensiblement sur de longues
priodes. videmment, ce phnomne ne peut se dtecter que si le systme reste actif suffisamment
longtemps, ce qui en pratique ne se produit que dans les serveurs (n'oubliez pas que Linux peut
fonctionner des mois sans interruption...). Si vous tes intress par la manire de resynchroniser
l'horloge systme pour de telles configurations, vous devriez vous intresser la diffusion du temps
sur le rseau Internet avec le protocole NTP ( Network Time Protocol ). En gnral, la
resynchronisation de l'heure systme doit se faire progressivement afin de ne pas perturber la ligne du
temps pour les applications. Cela peut tre fait avec le programme adjtimex.
6.3. 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 effet, ce
compte dispose de tous les droits, et la moindre erreur de la part de l'utilisateur dans ce compte peut
endommager non seulement ses propres donnes, mais galement l'ensemble du systme
d'exploitation. 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.
L'une des premires tapes dans l'installation d'un 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 qu'aux
tches d'administration, et toute opration ralise sous cette identit doit tre contrle deux fois
avant d'tre effectivement lance. Les programmes d'installation 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. Le mot de passe root doit tre choisi avec
un grand soin, surtout si l'ordinateur est susceptible d'tre connect Internet. En effet, la moindre
erreur de configuration au niveau des services fournis par l'ordinateur, couple avec un mot de passe
faible, risque de laisser votre ordinateur la merci de pirates mal intentionns.
Ces mmes programmes d'installation peuvent tre utiliss par la suite pour ajouter de nouveaux
utilisateurs dans le systme. Il est d'ailleurs recommand de les utiliser ds qu'une 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.3.1. Mcanismes d'authentification des utilisateurs
La scurit des systmes Unix repose fondamentalement sur les mcanismes d'authentification des
utilisateurs. Ces mcanismes visent s'assurer que chacun est bien celui qu'il prtend tre, afin de
donner chacun les droits d'accs aux diffrents services du systme en fonction de ses privilges.
L'accs aux services du systme repose donc sur deux oprations essentielles : l'identification et
l'authentification. L'opration d'identification consiste annoncer qui l'on est, afin de permettre au
systme de dterminer les droits auxquels on a droit, et l'opration d'authentification consiste
prouver qu'on est bien celui qu'on prtend tre. Le systme refuse ses services tout utilisateur
inconnu (c'est--dire qui s'est identifi sous un nom inconnu) ou qui n'a pas pass avec succs la phase
d'authentification.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 162

En interne, les systmes Unix identifient les utilisateurs par un numro qui est propre chacun, son
UID (abrviation de l'anglais User IDentifier ), mais il existe une correspondance entre cet UID
et un nom d'utilisateur plus humainement lisible. Ce nom est classiquement appel le login , en
raison du fait que c'est la premire chose que le systme demande lorsqu'on cherche accder ses
services, pendant l'opration dite de login.
L'authentification des utilisateurs se fait classiquement par mot de passe, bien que d'autres mcanismes
soient possibles en thorie. L'accs au systme se passe donc toujours de la manire suivante :
le systme demande l'utilisateur son nom (c'est--dire son login) ;
il demande ensuite son mot de passe ;
il vrifie la validit du couple (login / mot de passe) pour dterminer si l'utilisateur a le droit
de l'utiliser ;
et, si l'utilisateur est connu et s'est correctement authentifi, le programme qui a ralis
l'authentification prend l'identit et les privilges de l'utilisateur, fixe son environnement et ses
prfrences personnelles, puis lui donne accs au systme.
L'exemple classique de ces oprations est tout simplement l'opration de login sur une console : le
programme getty de gestion de la console demande le nom de l'utilisateur, puis passe ce nom au
programme login qui l'authentifie en lui demandant son mot de passe. Si l'authentification a russi, il
prend l'identit de cet utilisateur et lance son shell prfr. La suite des oprations dpend du shell. S'il
s'agit de bash, le fichier de configuration /etc/profile est excut (il s'agit donc du fichier de
configuration dans lequel toutes les options communes tous les utilisateurs pourront tre places par
l'administrateur), puis les fichiers de configuration ~/.bash_profile et ~/.bashrc sont excuts. Ces deux
fichiers sont spcifiques chaque utilisateur et permettent chacun d'entre eux de spcifier leurs
prfrences personnelles. Le fichier ~/.bash_profile n'est excut que lors d'un nouveau login, alors
que le fichier ~/.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 fichier de configuration
/etc/passwd. Cela n'est, 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
configuration, il est courant de recourir un service rseau permettant de rcuprer les informations
concernant les utilisateurs partir d'un 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 fichier /etc/passwd ne contient plus que les informations
publiques sur les utilisateurs. Les informations utilises pour l'authentification sont dsormais
stockes dans un autre fichier de configuration, qui n'est lisible que pour l'utilisateur root : le fichier
/etc/shadow. La raison premire de procder ainsi est d'viter que des utilisateurs malicieux puissent
casser les mots de passe.
Note : Les mots de passe n'ont jamais t stocks en clair dans le fichier passwd. Le mcanisme
d'authentification repose en effet sur une fonction sens unique gnrant une empreinte. Les fonctions
de ce type ne disposent pas de fonction inverse, il n'est donc virtuellement pas possible de retrouver un
mot de passe partir de son empreinte. Lorsqu'un utilisateur saisit son mot de passe, l'empreinte est
recalcule de la mme manire que lorsqu'il l'a dfini initialement, et c'est cette empreinte qui est
compare avec celle qui se trouve dans le fichier /etc/passwd ou le fichier /etc/shadow. Ainsi, il est
ncessaire de connatre le mot de passe en clair pour authentifier l'utilisateur, mais aucun moment ce
mot de passe n'est stock sur le disque dur.
Cela dit, mme si la rcupration des mots de passe est quasiment impossible, la connaissance des
empreintes des mots de passe peut tre d'une aide prcieuse. Un intrus potentiel peut essayer de
calculer les empreintes de tous les mots de passe possibles et imaginables l'aide d'un dictionnaire ou
de mots de passe probablement choisis par les utilisateurs peu inventifs, et comparer le rsultat avec ce
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 163

qui se trouve dans le fichier de mot de passe. S'il y a une correspondance, l'intrus pourra pntrer le
systme et tenter d'utiliser d'autres failles pour acqurir les droits de l'utilisateur root. Cette technique,
dite attaque du dictionnaire, est tout fait ralisable, d'une part parce que la puissance des machines
actuelles permet de calculer un nombre considrable d'empreintes la seconde, et d'autre 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.
Les systmes Unix utilisent deux techniques pour pallier ces problmes. La premire est de ne pas
calculer l'empreinte du mot de passe tel qu'il est fourni par l'utilisateur, mais de la calculer avec une
donne gnre alatoirement et stocke dans le fichier de mot de passe. Cette donne, que l'on appelle
classiquement sel , jour le rle de vecteur d'initialisation de l'algorithme de gnration d'empreinte.
Le sel n'est jamais le mme pour deux utilisateurs, ce qui fait que deux utilisateurs qui auraient le
mme mot de passe n'auraient toutefois pas la mme empreinte. Cela complique la tche des
attaquants qui utilisent la force brute, car ils doivent ainsi recalculer les empreintes pour chaque
utilisateur.
La deuxime technique utilise est tout simplement de ne pas laisser le fichier des empreintes
accessible tout le monde. C'est pour cela que le fichier de configuration /etc/shadow a t introduit.
tant lisible uniquement par l'utilisateur root, un pirate ne peut pas rcuprer les empreintes de mots
de passe pour les comparer avec des empreintes de mots de passe prcalcules. Il doit donc essayer les
mots de passe un un, ce qui peu en dcourager plus d'un, surtout si le systme se bloque pendant un
certain temps aprs quelques tentatives infructueuses...
La technique d'authentification par mot de passe peut paratre relativement primitive, l'heure o les
cartes puce sont lgions et o l'on commence voir apparatre des scanners d'empreintes digitales.
En fait, c'est une bonne solution, mais qui ne saurait en aucun cas tre exhaustive en raison des
problmes mentionns ci-dessus. L'idal est donc d'utiliser plusieurs systmes d'authentification 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
n'voluera pas aisment vers de nouveaux mcanismes d'authentification. C'est pour cela que les
programmes devant raliser une opration d'authentification ou de gestion des utilisateurs de manire
gnrale ont t modifis pour utiliser la bibliothque PAM (abrviation de l'anglais Pluggable
Authentification Modules ). Cette bibliothque permet de raliser les oprations d'identification et
d'authentification de manire externe aux programmes qui l'utilisent, et se base pour ces oprations des
fichiers de configuration et des modules dynamiquement chargeables. Ainsi, grce la bibliothque
PAM, l'administrateur peut dfinir avec prcision les diffrentes oprations ralises pour identifier et
authentifier les utilisateurs, sans avoir modifier les programmes qui ont besoin de ces fonctionnalits.
De plus, il est possible d'ajouter de nouveaux modules au fur et mesure que les besoins voluent, et
de les intgrer simplement en modifiant les fichiers de configuration.
De nos jours, la plupart des distributions utilisent la bibliothque PAM. Bien entendu, il existe des
modules qui permettent de raliser les oprations d'identification et d'authentification Unix classiques,
et ce sont ces modules qui sont utiliss par dfaut. Nous verrons le format des fichiers de configuration
de la bibliothque PAM plus en dtail dans les sections suivantes.
Note : Les mcanismes dcrits ici ne sont srs que dans le cadre d'une 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 n'importe quel pirate peut les capter en moins de temps qu'il n'en 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 d'effectuer des connexions distance :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 164

FTP, qui permet de transfrer et de rcuprer des fichiers sur une machine distante ;
POP3, qui permet de consulter son mail ;
SMTP, qui permet d'envoyer des mails un serveur de messagerie ;
X, qui permet aux applications graphiques d'afficher leurs fentres sur un terminal X.
Cette liste n'est pas exhaustive mais regroupe dj les protocoles rseau des applications les plus
utilises.
La scurisation de ces protocoles ne peut se faire qu'en les encapsulant dans un autre protocole
utilisant un canal de communication chiffr. L'un des outils les plus courant pour cela est sans doute
ssh. Cet outil sera dcrit dans la Section 9.5.2.2 du chapitre traitant du rseau.
6.3.2. Cration et suppression des utilisateurs
La cration d'un nouvel utilisateur est une opration extrmement facile. Il suffit simplement de lui
crer un rpertoire personnel dans le rpertoire /home/ et de le dfinir dans le fichier de configuration
/etc/passwd. Si votre systme utilise les shadow passwords, ce qui est probable, il faut galement
dfinir cet utilisateur dans le fichier de configuration /etc/shadow. De plus, il faut ajouter cet utilisateur
dans au moins un groupe d'utilisateurs dans le fichier /etc/group.
Le fichier de configuration /etc/passwd est constitu de plusieurs lignes, raison d'une ligne par
utilisateur. Chaque ligne est constitue de plusieurs champs, spars par deux points (caractre ':'). Ces
champs contiennent respectivement le login de l'utilisateur, l'empreinte de son mot de passe, son
identifiant numrique, l'identifiant numrique de son groupe principal, son nom complet ou un
commentaire, 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. S'il est vide, le mot
de passe est stock dans le fichier /etc/shadow.
Le fichier de configuration /etc/shadow a une syntaxe similaire celle de /etc/passwd, mais contient
les champs suivants : le login de l'utilisateur, l'empreinte de son mot de passe, le nombre de jours
depuis que le mot de passe a t dfini (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 d'expiration
de son mot de passe pendant lesquels l'utilisateur doit tre averti que son mot de passe va expirer, le
nombre de jours attendre avant de dsactiver le compte aprs l'expiration 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 l'obligation 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.
Enfin, le fichier de configuration /etc/group, dans lequel les groupes d'utilisateurs sont dfinis, ne
dispose que des champs suivants : le nom du groupe, son mot de passe (cette fonctionnalit n'est plus
utilise), son identifiant numrique, et la liste des utilisateurs qui y appartiennent, spars par des
virgules.
Bien entendu, tous ces champs ne doivent pas tre modifis la main. La commande useradd permet
de dfinir 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 165

Comme vous pouvez le constater, cette commande prend en paramtre le login de l'utilisateur, c'est--
dire le nom qu'il devra utiliser pour s'identifier sur le systme, et un certain nombre d'options
complmentaires. Ces options sont rcapitules dans le tableau suivant :
Option Signification
-c Permet de dfinir le champ commentaire du fichier de mot de passe.
-d Permet de fixer le rpertoire personnel de l'utilisateur.
-e
Permet de fixer la date d'expiration du compte. Cette date doit tre spcifie au format
AAAA-MM-JJ.
-f
Permet de dfinir 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 dfinir le groupe principal auquel l'utilisateur appartient. Il s'agit souvent du groupe
users.
-G
Permet de donner la liste des autres groupes auxquels l'utilisateur 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 l'utilisateur. Les fichiers du modle de
rpertoire personnel stocks dans le rpertoire /etc/skel/ sont automatiquement copis dans le
nouveau rpertoire. Si ces fichiers doivent tre copis partir d'un autre rpertoire, il faut
spcifier celui-ci l'aide de l'option -'
-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 fixera donc toujours le mot de passe initial de l'utilisateur
l'aide de la commande passwd.
-s Permet de spcifier le shell par dfaut utilis par l'utilisateur.
-u
Permet de spcifier l'UID de l'utilisateur. Cette valeur doit tre unique en gnral, cependant,
il est possible de forcer l'utilisation d'un mme UID pour plusieurs utilisateurs l'aide de
l'option -o. Cela permet de crer un deuxime compte pour un utilisateur dj existant.
L'ajout d'un 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 n'est normalement pas possible de dfinir un
groupe avec un identifiant numrique dj attribu un autre groupe, sauf si l'on utilise l'option -o.
De la mme manire, la suppression d'un utilisateur peut se faire manuellement en effaant son
rpertoire personnel et en supprimant les lignes qui le concernent dans les fichiers /etc/passwd,
/etc/shadow et /etc/group. Il est galement possible d'utiliser la commande userdel. Cette commande
utiliser la syntaxe suivante :
userdel [-r] login

o login est le nom de l'utilisateur. L'option -r permet de demander userdel d'effacer rcursivement
le rpertoire personnel de l'utilisateur, ce qu'elle ne fait pas par dfaut. Il existe galement une
commande groupdel pour supprimer un groupe d'utilisateurs (cette commande supprime le groupe
seulement, pas les utilisateurs qui y appartiennent !).
Note : Comme pour la plupart des autres oprations d'administration systme, il est fortement
probable que l'outil de configuration fourni avec votre distribution dispose de toutes les fonctionnalits
ncessaires l'ajout et la suppression des utilisateurs. Il est recommand d'utiliser cet outil, car il
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 166

peut effectuer des oprations d'administration complmentaires que les outils standards n'effectuent
pas forcment, comme la dfinition des comptes mail locaux par exemple.
6.3.3. Description de la bibliothque PAM
La bibliothque PAM permet de centraliser toutes les oprations relatives l'identification et
l'authentification 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 dfinis dans des fichiers de configuration. Le comportement des applications peut donc
tre parfaitement dfini simplement en ditant ces fichiers.
La bibliothque PAM permet une trs grande souplesse dans l'administration 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 l'on peut
combiner loisir pour dfinir 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 configuration
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 configuration de PAM se faisait dans le fichier de configuration /etc/pam.conf.
Ce fichier contenait donc la dfinition du comportement de chaque programme utilisant la
bibliothque PAM, ce qui n'tait pas trs pratique pour l'administration et pour les mises jour. Les
informations de chaque programme ont donc t spares en plusieurs fichiers distincts, raison d'un
fichier par application, tous stocks dans le rpertoire /etc/pam.d/. Il est fort probable que votre
distribution utilise cette solution, aussi le format du fichier /etc/pam.conf ne sera-t-il pas dcrit.
Certains modules utilisent des fichiers de configuration pour dterminer la manire dont ils doivent se
comporter. Ces fichiers de configuration 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. Lorsqu'un programme dsire raliser une opration
relative l'authentification d'un utilisateur, il s'adresse la bibliothque PAM pour effectuer cette
opration. La bibliothque recherche dans le rpertoire /etc/pam.d/ le fichier de configuration
correspondant cette application (il porte gnralement le nom de l'application elle-mme), puis
dtermine les modules qui doivent tre chargs dynamiquement dans l'application. Si le fichier de
configuration d'une application ne peut pas tre trouv, le fichier de configuration /etc/pam.d/other est
utilis, et la politique de scurit par dfaut qui y est dfinie est utilise. Quel que soit le
fichier de configuration utilis, chaque module est utilis en fonction des paramtres qui y
sont stocks. Les modules peuvent, s'ils en ont besoin, utiliser leurs propres fichiers de
configuration, qui se trouvent dans le rpertoire /etc/security/. Ces fichiers portent gnralement le
nom du module avec l'extension .conf. Par exemple, le fichier de configuration du module limits, qui
prend en charge les limites d'utilisation des ressources systme pour chaque utilisateur, est le fichier
/etc/security/limits.conf.
Les fichiers de configuration des applications sont constitus de lignes dfinissant les diffrents
modules qui doivent tre chargs, le contexte dans lequel ils sont chargs, et comment doit se
comporter l'application en fonction du rsultat de l'excution des oprations ralises par ces modules.
L'ordre des lignes est important, puisqu'elles sont analyses les unes aprs les autres. Chaque ligne est
constitue de trois colonnes. La premire colonne indique le cadre d'utilisation du module. La
deuxime colonne indique le comportement que doit adopter la bibliothque PAM en fonction du
rsultat renvoy par le module aprs son excution. Enfin, la troisime colonne donne le chemin
d'accs complet au module, ventuellement suivi des options qui doivent lui tre communiques pour
son excution.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 167

Les modules peuvent tre utiliss dans l'un des contextes suivants :
auth, qui est le contexte utilis par les programmes qui demandent l'authentification de
l'identit dutilisateur ;
account, qui est le contexte utilis par les programmes qui dsirent obtenir des informations
sur l'utilisateur (rpertoire personnel, shell, etc.)
password, qui est le contexte utilis par les applications qui cherchent revalider
l'authentification de l'utilisateur. Les programmes comme passwd par exemple, qui demandent
le mot de passe de l'utilisateur avant d'en fixer un nouveau, sont susceptibles d'utiliser ce
contexte ;
session, qui est le contexte utilis par les applications lorsqu'elles effectuent les oprations
de gestion d'ouverture et de fermeture de session. Ce contexte peut tre utilis pour raliser
des tches administratives, comme l'enregistrement de l'utilisateur dans la liste des utilisateurs
connects ou le chargement des prfrences personnelles de l'utilisateur par exemple.
Une mme application peut dfinir plusieurs jeux de rgles pour plusieurs contextes diffrents, et
certains modules peuvent tre utiliss dans plusieurs contextes diffrents galement. Cependant,
lorsqu'une application ralise une demande la bibliothque PAM, cette demande n'est excute que
dans le cadre d'un contexte bien dfini. Attention cependant, une mme application peut effectuer
plusieurs oprations successivement dans des contextes diffrents. Par exemple, le programme login
peut utiliser le contexte auh pour valider l'identit de l'utilisateur, puis le contexte accoun pour
dterminer le rpertoire personnel de l'utilisateur, et enfin le contexte session pour enregistrer
l'utilisateur dans le journal des utilisateurs connects.
Le comportement de la bibliothque PAM en fonction du rsultat de l'excution des modules dpend
de ce qui est spcifi dans la deuxime colonne des lignes de ces modules. Les options qui peuvent y
tre utilises sont les suivantes :
required, qui permet d'indiquer que le succs de l'opration effectue par le module est
ncessaire pour que l'opration effectue dans le contexte spcifi dans la premire colonne de
la ligne russisse. Un chec sur cette ligne ne provoque pas l'arrt de l'analyse du fichier de
configuration, ce qui permet d'appeler d'autres modules, par exemple pour gnrer des traces
dans les fichiers de traces du systme. Cependant, quel que soit le comportement des modules
suivants, l'opration demande par le programme appelant chouera ;
requisite, qui permet d'indiquer que le succs de l'opration effectue par le module est
ncessaire, faute de quoi l'opration ralise par le programme appelant choue
immdiatement. Les autres modules ne sont donc pas chargs en cas d'chec, contrairement
ce qui se passe avec l'option required ;
sufficient, qui permet d'indiquer que le succs de l'excution du module garantira le
succs de l'opration demande par le programme appelant. Les modules suivants seront
chargs malgr tout aprs l'appel de ce module, sauf s'il s'agit de modules de type
required ;
optional, qui permet d'indiquer que le rsultat du module ne doit tre pris en compte que si
aucun autre module ne peut dterminer si l'opration est valide ou non. Dans le cas contraire,
le module est charg, mais son rsultat est ignor.
titre d'exemple, nous pouvons prsenter deux implmentations possibles du fichier de configuration
par dfaut /etc/pam.d/other. Une configuration extrmement sre interdira l'accs toute
fonctionnalit fournie par un programme n'ayant pas de fichier de configuration. Dans ce cas de
configuration, on utilisera un fichier comme celui-ci :
auth required /lib/security/pam_warn.so
auth required /lib/security/pam_deny.so
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 168

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 authentification ou de revalidation de l'identit sont
d'abord traces dans les fichiers de traces du systme, puis dclares comme interdites. Une telle
configuration peut tre un peu trop restrictive car, en cas d'erreur dans un fichier de configuration
d'une application, l'accs cette application peut tre interdit systmatiquement. Une autre
configuration, plus permissive, cherchera utiliser les mcanismes d'identification et d'authentification
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 fichiers de configuration 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 fichiers de configuration des diffrents modules, car
cela dpasserait largement le cadre de ce document. Cela dit, la plupart de ces fichiers sont
parfaitement comments et leur modification ne devrait pas poser de problme particulier. titre
d'exemple, on peut prsenter le cas du module de gestion des limites des ressources consommes par
les utilisateurs. Si l'on dsire restreindre le nombre de processus que les utilisateurs peuvent lancer, on
pourra ajouter la ligne suivante dans le fichier
/etc/security/limits.conf :
@users hard nproc 256

Il faudra galement demander le chargement de ce module dans les fichiers de configuration des
applications fournissant un accs au systme. Pour cela, on ajoutera une ligne telle que celle-ci la fin
de leur fichier de configuration :

session required /lib/security/pam_limits.so
Il est galement possible de limiter le nombre de login de chaque utilisateur, la quantit de mmoire
qu'il peut consommer, la dure de connexion autorise, la taille maximum des fichiers qu'il peut
manipuler, etc. Vous trouverez de plus amples renseignements sur la configuration des modules de
PAM dans le guide d'administration de PAM pour Linux, que l'on trouvera avec les sources de PAM.
6.4. Gestion des paquetages
Il existe plusieurs systmes de gestion de paquetages, chaque distribution fournissant ses propres
outils. Toutefois, les fonctionnalits de ces outils sont toujours de maintenir la liste des paquetages
installs, et de permettre l'installation, la mise jour et la suppression de ces paquetages. Nous ne
prsenterons ici que les systmes de paquetages des distributions les plus utilises. Si les outils de
votre distribution ne sont pas dcrits dans cette section, ne vous alarmez pas, leur documentation vous
permettra sans doute de trouver rapidement la manire de raliser les oprations lmentaires
quivalentes.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 169

6.4.1. Le gestionnaire de paquetages rpm
La plupart des distributions actuelles utilisent le format de fichier rpm ( Redhat Package
Manager ) pour leurs paquetages. Ce format de fichier a t introduit par la distribution Redhat, mais
a t licenci sous la licence GNU, ce qui a permis aux autres distributions de l'utiliser. Ces fichiers
encapsulent tous les fichiers 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 fichiers rpm peuvent tre manipuls l'aide du programme rpm. Il est probable que le programme
d'installation de votre distribution vous vite d'avoir manipuler cet outil vous-mme. Cependant, les
principales commandes de rpm seront dcrites ici, afin que vous puissiez l'utiliser 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 l'option -i, qui
permet l'installation d'un paquetage :
rpm -i paquetage
La mise jour d'un paquetage dj install se fait l'aide de l'option -U :
rpm -U paquetage
La suppression d'un paquetage se fait l'aide de l'option -e :
rpm -e paquetage
La commande permettant d'obtenir les informations (auteur, description, version) sur un paquetage
contenu dans un fichier rpm est la suivante :
rpm -qi -p paquetage
Enfin, la commande pour lister tous les fichiers d'un paquetage contenu dans un fichier rpm est la
suivante :
rpm -ql -p paquetage
Cette commande affiche les chemins complets, ce qui permet de savoir dans quel rpertoire chaque
fichier sera install.
Il existe beaucoup d'autres options disponibles. Cependant, leur description dpasserait le cadre de ce
document. Vous pouvez toujours consulter la page de manuel rpm si vous dsirez plus d'informations.
6.4.2. Le gestionnaire de paquetages apt
Les distributions bases sur la distribution Debian utilisent le gestionnaire de paquetages apt-get, qui
est sans doute l'un des plus performants qui soit. Ce gestionnaire de paquetages permet d'installer,
mettre jour et supprimer des paquetages en tenant compte des dpendances entre ceux-ci, et ce
partir de n'importe quelle source. Ainsi, si l'on est connect en rseau, il est possible d'installer ou de
mettre jour n'importe quel paquetage via le rseau. Dans le cas contraire, il faut rfrencer le
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 170

rpertoire contenant les paquetages pour que apt-get puisse les utiliser, ce aprs quoi les oprations
sont exactement les mmes.
La liste des localisations des paquetages est stocke dans le fichier de configuration
/etc/apt/sources.list. Ce fichier contient une ligne par rfrentiel disponible. Le format gnral de ces
lignes est le suivant :
type site distribution sections

o type est le type du paquetage, site est l'emplacement du rfrentiel, distribution est le nom de la
distribution, et sections une liste des sections dans lesquelles les paquetages pourront tre trouvs. Le
type de paquetage le plus courant est deb, qui est utilis pour les paquetages binaires pour la
distribution Debian. Par exemple, la ligne suivante permet de rfrencer le site principal de Debian aux
tats-Unis :

deb http://http.us.debian.org/debian stable main contrib non-free
Par dfaut, le fichier /etc/apt/sources.list contient les rfrences sur les principaux sites Internet de
Debian. Si vous voulez installer des paquetages que vous avez tlchargs, il va vous falloir y rajouter
une ligne telle que celle-ci :
deb file:/base rpertoire/

o base est un rpertoire dans lequel vous devez placer un sous-rpertoire contenant vos paquetages, et
rpertoire est le nom de ce sous-rpertoire. Vous pouvez bien entendu classer vos paquetages dans
diffrents sous-rpertoires, du moment que vous ajoutez les lignes adquates dans le fichier
sources.list.
apt-get recherchera alors, dans chacun de ces sous-rpertoires, un fichier d'index contenant la liste des
paquetages. Ce fichier doit tre nomm Packages.gz, et peut tre cr simplement en compressant le
rsultat de la commande dpkg-scanpackages. La commande utiliser pour crer un tel fichier est la
suivante :
dpkg-scanpackages rpertoire /dev/null | gzip > rpertoire/Packages.gz

o rpertoire est le sous-rpertoire du rpertoire de base dans lequel vous avez plac vos paquetages
binaires. Cette ligne de commande suppose que le rpertoire courant soit le rpertoire base spcifi
dans la ligne que vous avez ajout dans le fichier sources.list.
Dans le cas des CD-ROMs, la procdure est plus simple. En effet, l'utilitaire apt-cdrom permet de
prendre en compte un CD-ROM de manire automatique, avec une simple commande telle que celle-
ci :
apt-cdrom -d rpertoire add

o rpertoire est le rpertoire servant de point de montage de votre CD-ROM. Cette commande ajoute
la rfrence du CD-ROM dans le fichier /var/lib/apt/cdrom.list. Il n'existe pas de commande pour
supprimer un CD-ROM de cette liste.
Une fois les sources de paquetages dfinies, leur manipulation est lmentaire. Avant toute chose, il
est ncessaire de mettre jour la liste des paquetages dans le systme de paquetages. Cette opration
doit tre ralise de manire assez rgulire en gnral, car cette liste volue assez rapidement. Pour
effectuer cette opration, il suffit simplement d'excuter la commande update d'apt-get :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 171

apt-get update
L'installation d'un paquetage se fait avec la commande install d'apt-get :
apt-get install paquetage

paquetage est ici le nom du paquetage installer. Si ce paquetage est dj install et que l'on dsire le
rinstaller, par exemple pour le rparer ou pour le mettre jour ajoutera l'option --reinsa11 :

apt-get --reinstall install paquetage
La suppression d'un paquetage est toute aussi simple. Elle se fait videmment avec la commande
remove :
apt-get remove paquetage

Cette commande supprime le paquetage, mais ne dtruit pas les fichiers de configuration qu'il a
install. Cela permet d'viter de perdre les ventuelles modifications que l'on pourrait y avoir
apportes. Si l'on dsire supprimer ces fichiers galement, il faut ajouter l'option --purge :

apt-get --purge remove paquetage
La mise jour de tous les paquetages existants se fait simplement avec la commande upgrade d'apt-
get :
apt-get upgrade

Cette commande ne permet pas toujours de rsoudre les nouvelles dpendances sur les paquetages.
C'est pour cela que la commande dist-upgrade a t dfinie. Elle permet de mettre jour le systme
complet (mais est videmment bien plus longue).
Enfin, si vous dsirez obtenir des informations sur un paquetage, vous devez utiliser le programme
apt-cache. Ce programme permet de rechercher un paquetage l'aide de mots-clefs, et d'afficher les
informations compltes sur le paquetage. Par exemple, pour obtenir des informations sur un
paquetage, il faut utiliser la commande suivante :
apt-cache show paquetage

o paquetage est le nom du paquetage. De mme, pour obtenir la liste des paquetages qui se rapporte
un mot-clef particulier, il faut utiliser la commande search d'apt-cache :

apt-cache search mot-cl

o mot-cl est le mot-cl que l'on doit rechercher dans les paquetages.
6.4.3. Le gestionnaire de paquetages pkgtool
Les distributions bases sur la Slackware utilisent le gestionnaire de paquetages pkgtool. Celui-ci est
beaucoup plus rudimentaire que les gestionnaires prsents prcdemment, car il ne prend pas en
charge les dpendances entre les paquetages, et ne s'occupe pas de localiser les paquetages sur le
rseau. Bien entendu, la manipulation des paquetages est trs simplifie, et il est du ressort de
l'utilisateur de savoir ce qu'il fait.
L'installation d'un paquetage se fait avec la commande installpkg :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 172

installpkg paquetage

o paquetage est le nom du paquetage installer.
La suppression d'un paquetage se fait avec la commande removepkg :
removepkg paquetage
Enfin, la mise jour d'un paquetage se fait avec la commande upgradepkg :
upgradepkg paquetage

Cette commande supprime toutes les anciennes versions du paquetage aprs avoir install la nouvelle.
La commande upgradepkg peut galement accepter en paramtre l'option --insa11-new, qui
permet d'installer le paquetage s'il n'est pas encore install, et l'option --reinsa11, qui permet de
rinstaller le paquetage s'il est dj install.
Enfin, la Slackware fournit l'outil pkgtool, qui est un peu plus convivial utiliser que les outils en
ligne de commande prcdents. Cet outil fournit une interface utilisateur en mode texte permettant
d'installer, de supprimer, d'obtenir des informations sur les paquetages, ainsi que de reconfigurer le
systme.
6.5. Notion de niveau d'excution et amorage du systme
La plupart des systmes Unix disposent de plusieurs modes de fonctionnement, que l'on appelle des
niveaux d'excution. Dans chaque niveau d'excution, un certain nombre de services sont accessibles.
Ainsi, le lancement et l'arrt des services des systmes Unix peut se faire de manire groupe
simplement en changeant de niveau d'excution. En gnral, il existe 7 niveaux d'excution, dont
seulement trois fournissent des services bien dfinis pour quasiment toutes les distributions de Linux.
Le niveau 0 correspond l'arrt du systme, et aucun service n'est disponible ( part le redmarrage de
la machine bien entendu...). Le fait de passer dans le niveau d'excution 0 correspond donc arrter le
systme. Le niveau 6 correspond au redmarrage de la machine. Le fait de passer dans le niveau
d'excution 6 revient donc arrter et redmarrer la machine. Le niveau d'excution 1 correspond au
mode de fonctionnement mono utilisateur (encore appel mode de maintenance). Ce niveau
d'excution fournit les services de base pour un seul utilisateur (normalement l'administrateur du
systme). Dans ce niveau d'excution, l'administrateur peut changer la configuration et effectuer les
tches de maintenance les plus critiques (par exemple, vrifier le systme de fichiers racine). La
signification des autres niveaux d'excution dpend de la distribution que vous utilisez mais en gnral
le niveau d'excution 2 correspond au mode multi-utilisateur avec rseau mais sans XWindow, et les
niveaux d'excution 3 et 4 correspondent au mode multi-utilisateur avec login graphique sous
XWindow. Les autres niveaux restent votre disposition.
Le programme en charge de grer les niveaux d'excution est le programme init. Ce programme est le
premier programme lanc par le noyau aprs qu'il a t charg et dmarr par le gestionnaire
d'amorage ( savoir, en gnral, LILO ou le GRUB). Ce programme ne peut pas tre dtruit ou arrt,
et c'est rellement le processus pre de tous les autres dans le systme. Le rle fondamental d'init est
de grer les changements de niveau d'excution et de lancer et arrter les services du systme en
fonction de ces niveaux. Toutefois, il s'occupe galement de tches de 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 processus n'a
lu le code de retour. De tels processus apparaissent gnralement lorsque leur processus pre se
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 173

termine avant eux car, gnralement, c'est toujours le processus pre qui lit le code de retour de ses
processus fils.
Il suffit d'utiliser la syntaxe suivante pour forcer le changement de niveau d'excution :
init niveau

o niveau est le niveau d'excution atteindre. Cela dit, cette manire de faire est assez rare, car en
gnral on n'a pas besoin de changer de niveau d'excution, sauf pour arrter et redmarrer la machine.
Mais pour ces oprations, les commandes shutdown, halt et reboot sont dj disponibles.
Le niveau d'excution 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 semblable
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 d'excution niveau. Ainsi, pour passer en
mode monoutilisateur (c'est--dire le mode de maintenance), il suffit de taper la commande suivante
l'amorage 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 d'utiliser le paramtre single, qui est synonyme du niveau d'excution
1.
Le comportement d'init est dfini dans le fichier de configuration /etc/inittab. Ce fichier contient la
description des niveaux d'excution, le niveau par dfaut dans lequel le systme se place au
dmarrage, et les actions qu'init doit effectuer lorsque certains vnements arrivent. En particulier, il
est indiqu quels sont les scripts qui doivent tre excuts lors du changement de niveau d'excution. Il
est fortement, mais alors trs fortement dconseill de toucher au fichier /etc/inittab pour des raisons
bien videntes. Vous trouverez de plus amples renseignements dans les pages de manuel d'init et
d'inittab.
Lorsqu'on change de niveau d'excution, ainsi qu'au dmarrage du systme, init appelle des scripts de
configuration pour effectuer les oprations de configuration du systme et de lancement et d'arrt des
diffrents services. Comme on l'a vu, ces scripts sont spcifis dans le fichier /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 d'un niveau d'excution ;
les scripts excuts lors de l'entre dans un niveau d'excution.
Le script appel lors du dmarrage du systme est en gnral spcifi directement dans /etc/inittab.
Vous pouvez y ajouter les commandes spcifiques votre systme, comme par exemple les
commandes de configuration du matriel. Ce fichier n'est excut qu'une 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 d'excution sont souvent placs dans
des sous-rpertoires du rpertoire rc.d ou init.d. Ils sont classs raison d'un rpertoire par niveau
d'excution. Ces sous-rpertoires portent le nom de rc0.d, rc1.d, rc2.d, etc. pour les diffrents niveaux
d'excution. En fait, un seul script est excut par init lorsqu'on change de niveau d'excution, et ce
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 174

script se charge d'excuter les bons scripts dans les sous-rpertoires de rc.d ou init.d. Classiquement,
ce script principal est appel avec le numro du niveau d'excution en paramtre, et il commence par
appeler les scripts de sortie du niveau d'excution courant, puis les scripts d'entre dans le nouveau
niveau d'excution.
La distinction entre les scripts d'entre et de sortie dans chaque rpertoire rc?.d se fait par la premire
lettre du script. Sur certaines distributions, la lettre 'K' correspond aux scripts de sortie et la lettre 'S' au
script d'entre (ces deux lettres correspondent respectivement aux mots anglais Kill et Start ).
De plus, l'ordre 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 distribution.
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 fichiers
de scripts, et que ceux-ci soient tous placs directement dans le rpertoire /etc/rc.d/ (ou /sbin/init.d/).
La raison en est qu'un mme script peut tre utilis pour diffrents niveaux d'excution, et qu'il n'a
donc pas de raison d'tre dans le rpertoire d'un niveau plutt que celui d'un autre.
De mme, il est assez courant que chacun de ces scripts gre la fois l'entre et la sortie du niveau
d'excution, selon le paramtre qu'il 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 d'excution (celui
appel par init et enregistr dans /etc/inittab) utilisera lors de l'entre et de la sortie du niveau
d'excution. Il existe d'autres paramtres, par exemple restart permet de redmarrer le service
correspondant.
De cette manire, vous pouvez ajouter ou supprimer des services simplement dans chaque niveau
d'excution. Il suffit d'crire un fichier script capable de prendre en paramtre l'action 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 d'excution dans lequel passera le systme.
La rdaction des scripts shells de configuration dpasse largement le cadre de ce document, de mme
que la configuration du comportement du systme chaque changement de niveau d'excution. La
description qui tait donne ici permet simplement d'avoir une ide plus claire de la manire dont le
systme se comporte au dmarrage et l'arrt. Consultez la documentation de votre distribution pour
plus de dtails ce sujet.
6.6. Maintenance des systmes de fichiers
Cette section vous prsentera les oprations de base sur les systmes de fichiers, telle que leur
cration, leur montage et dmontage, et leur vrification. Vous y trouverez galement la manire de
monter automatiquement les systmes de fichiers les plus utiliss au dmarrage du systme, ainsi que
la manire de monter la demande les systmes de fichiers amovibles. Vous verrez enfin comment
raliser des agrgats de volumes et comment chiffrer vos systmes de fichiers. En revanche, la
description des systmes de fichiers rseau sera donne dans le chapitre traitant de la configuration
rseau.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 175

6.6.1. Cration des systmes de fichiers
Nous avons vu lors de l'installation comment crer un nouveau systme de fichiers EXT2 sur une
partition l'aide de la commande mke2fs. Cependant, Linux peut grer de nombreux autres systmes
de fichiers, et leur cration peut se faire de manire tout fait semblable la cration d'un systme de
fichiers EXT2.
Pour chaque systme de fichiers, une commande spcifique est fournie afin de le crer. Toutefois, une
commande gnrique de cration de systmes de fichiers permet d'uniformiser la manire de crer les
systmes de fichiers, rendant ainsi inutile la connaissance de ces commandes spcifiques.
Cette commande gnrique est la commande mkfs. Elle prend en paramtre le type de systme de
fichiers crer, que l'on peut spcifier l'aide de l'option -. En fait, mkfs appelle systmatiquement
la commande de cration du systme de fichiers spcifi en paramtre. Pour que cela fonctionne, il est
ncessaire que cette commande ait un nom de la forme mkfs.type, o type est le nom du systme de
fichiers. Ainsi, pour crer un systme de fichiers JFS (systme de fichiers journalis cr par IBM) sur
la premire partition du premier disque SCSI, il suffit d'excuter la commande suivante :
mkfs -t jfs /dev/sda1

En gnral, les commandes mkfs.type ne sont rien d'autre que des liens vers les programmes de
cration spcifiques des systmes de fichiers.
Les commandes de cration des systmes de fichiers peuvent prendre des options particulires, qu'il
faut donc pouvoir leur fournir via mkfs. mkfs transfre donc toutes les options qu'il trouve aprs la
spcification du type de systme de fichiers telles quelles aux programmes de cration spcifique des
systmes de fichiers. La liste des options effectivement disponibles peut tre consulte dans les pages
de manuel respectives de ces programmes.
6.6.2. Montage des systmes de fichiers
Comme il l'a t vu dans le chapitre expliquant les gnralits sur Unix, les systmes de fichiers ne
sont donc pas accessibles directement. Ils doivent en effet subir une opration que l'on nomme le
montage avant de pouvoir tre utiliss. Le montage est donc l'opration qui consiste associer un
rpertoire au point d'entre d'un systme de fichiers. Une fois mont, les donnes d'un systme de
fichiers sont accessibles partir de ce rpertoire. L'opration de montage permet ainsi de raliser une
abstraction du support des systmes de fichiers, qui peuvent se trouver aussi bien sur disque qu'en
mmoire ou que sur un rseau.
L'opration permettant de monter un disque suit la syntaxe suivante :
mount [-t type] fichier base

o fichier est le fichier contenant le systme de fichiers monter (en gnral, il s'agit d'un fichier
spcial de priphrique, mais ce peut galement tre une image disque), et base est le point de
montage, c'est--dire le rpertoire partir duquel le systme de fichiers doit tre accd. L'option -
permet d'indiquer le type du systme de fichiers. Notez qu'en gnral il n'est pas ncessaire de le
prciser, car le noyau sait reconnatre la plupart des systmes de fichiers automatiquement.
Pour information, les types de systmes de fichiers les plus utiliss sont les suivants :
ext2, pour les systmes de fichiers EXT2 ;
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 176

ext3, pour les systmes de fichiers EXT3. Il est ncessaire d'avoir cr le journal du systme
de fichiers au pralable, avec l'option -_ de la commande mke2fs ou de la commande
tune2fs ;
reiserfs, pour les systmes de fichiers ReiserFS ;
iso9660, pour les CD-ROM (qu'ils soient avec extensions Joliet ou Rock Ridge ou en mode
ISO 9660 pur) ;
ntfs, pour les systmes de fichiers NTFS ;
msdos, pour les systmes de fichiers FAT normaux ;
vfat, pour les systmes de fichiers FAT32.
Si le rpertoire de montage n'est pas vide, les fichiers qui s'y trouvent sont masqus par le systme de
fichiers mont. Il est donc recommand de ne monter les systmes de fichiers que dans des rpertoires
vides.
Pour les supports de systme de fihciers amovibles, il arrive parfois que Linux ne puisse pas
dterminer la gomtrie ou la table de partition du support de donnes. Par exemple, lorsque l'on
insre une carte mmoire dans un lecteur de carte, Linux considre que le priphrique n'a pas chang
(puisque le lecteur de carte est toujours branch) et ne relit donc pas les informations de la carte
mmoire. Il peut donc tre ncessaire de demander explicitement au systme de relire la table de
partition du priphrique. Cela peut tre ralis avec l'option --rereadp de la commande
blockdev :
blockdev --rereadpt priphrique

o priphrique est le fichier spcial de priphrique dont la table de partition doit tre relue.
La commande mount peut prendre diverses options pour le montage des systmes de fichiers. Par
exemple, elle permet de monter des systmes de fichiers en lecture seule, ou de monter des systmes
de fichiers placs dans des images disques. Ces options sont introduites par l'option de ligne de
commande -o, et doivent tre spares les unes des autres par des virgules.
Par exemple, pour monter un systme de fichiers 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 l'option session, qui permet
d'indiquer le numro de la session monter dans le cas des CD-ROMs multisessions. Par exemple,
pour monter la deuxime session d'un CD-ROM multisession, on utilisera une ligne de commande
telle que celle-ci :

mount -t iso9660 -o ro,session=2 fichier base
Le systme de fichiers EXT3 prend galement des options supplmentaires par rapport au systme de
fichiers EXT2. Ces options permettent de contrler la manire dont la journalisation des oprations sur
disque est ralise. Avec EXT3, le journal peut tre utilis pour stocker toutes les oprations
concernant la structure de donnes mme du systme de fichiers (c'est--dire ce que l'on appelle les
mta-donnes du systme de fichiers) et les oprations concernant les donnes des fichiers elles-
mmes. La diffrence est importante et il faut bien la comprendre. Si l'on choisit de ne journaliser que
les mta-donnes du systme de fichiers, les informations concernant les rpertoires, les fichiers et les
droits d'accs seront toujours dans un tat cohrent. En revanche, les donnes stockes dans les
fichiers eux-mmes peuvent tre a priori fausses la suite d'un redmarrage impromptu. Si, en
revanche, on dcide de stocker galement les informations concernant les donnes des fichiers dans le
journal, le contenu des fichiers sera galement garanti, au dtriment d'une perte de performances
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 177

notable. Le mode de fonctionnement utiliser est spcifi l'aide de l'option daa du systme de
fichiers, qui doit donc tre fixe lors de l'opration de montage. Cette option peut prendre l'une des
trois valeurs suivantes :
journal, qui permet d'effectuer une journalisation complte des mta-donnes et des donnes
des fichiers. Il est donc garanti que le contenu des fichiers est toujours cohrent, tout comme
l'est le systme de fichiers. Cette option procure le maximum de scurit, mais c'est 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 l'option par dfaut et qui permet de ne journaliser que les mta-donnes, mais
qui garantit galement que les tampons d'criture sont vids avant chaque journalisation d'une
opration disque. Tout comme avec l'option journal, il est garantit que le systme de fichiers
est dans un tat cohrent. Les donnes des fichiers seront galement cohrentes avec les
structures de donnes du systme de fichiers. Cependant, rien ne garantit que le contenu des
fichiers sera lui aussi cohrent en interne, car mme si les donnes sont crites avant toute
modification du systme de fichiers, aucun contrle n'est effectu pour que les critures soient
ralises dans l'ordre dans lequel les applications les ont effectues. Cela dit, les performances
sont meilleures qu'avec l'option journal, tout en garantissant une scurit quasi totale des
fichiers ;
writeback, qui permet de ne journaliser que les mta-donnes du systme de fichiers. Le
contenu des fichiers peut donc tre incorrect, voire mme contenir des donnes alatoires la
suite d'un arrt brutal du systme, mais le systme de fichiers est toujours dans un tat correct.
Cette option permet donc simplement de rendre facultative la vrification et la rparation des
systmes de fichiers EXT2 au redmarrage. Les performances sont quasiment aussi bonnes
que pour le systme de fichiers EXT2.
Enfin, il est possible de monter un systme de fichiers plusieurs fois, ventuellement avec des options
diffrentes, dans diffrents points de montage. De mme, il est possible de monter une partie d'un
systme de fichiers seulement dans un autre rpertoire, par exemple pour raliser un raccourci vers un
sous ensemble du systme de fichiers hte. Vous pouvez consulter la page de manuel de la commande
mount pour obtenir plus de dtail ce sujet.
Vous pourrez trouver la liste des autres options acceptes par mount et par les systmes de fichiers
dans la page de manuel mount.
6.6.3. Dmontage des systmes de fichiers
Les systmes de fichiers sont grs de manire trs efficace par les systmes d'exploitation. Des
mcanismes de copie en mmoire des donnes sont utiliss afin d'acclrer leur lecture, et les critures
peuvent tre diffres pour tre regroupes et ainsi optimiser les transferts. De ce fait, l'tat du systme
de fichiers sur le support n'est quasiment jamais exactement en phase avec celui du systme de fichiers
en mmoire lorsqu'il est en cours d'utilisation. Il est donc ncessaire de signaler au systme
d'exploitation que l'on dsire l'arrter avant de couper le courant, ou que l'on dsire retirer un lecteur
amovible avant de le faire, afin qu'il puisse effectuer les synchronisations ncessaires. Ne pas le faire
risquerait de provoquer des pertes de donnes irrmdiables. Cette opration s'appelle simplement le
dmontage.
Note : Bien entendu, les commandes d'arrt du systme se chargent (entre autres) de dmonter tous les
systmes de fichiers avant d'teindre l'ordinateur.
La commande permettant de dmonter un systme de fichiers est beaucoup plus simple que celle
permettant de les monter, car aucune option n'est ncessaire. Il suffit en effet d'excuter l'une des
commandes suivantes :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 178

umount fichier ou umount base

Dans ces commandes, fichier reprsente le fichier contenant le systme de fichiers dmonter, et base
est le rpertoire dans lequel ce systme de fichiers est mont. On peut utiliser l'un ou l'autre de ces
paramtres, la commande umount se dbrouillera pour retrouver l'autre automatiquement. On notera
qu'il est impossible de dmonter un systme de fichiers qui est en cours d'utilisation par quelqu'un. En
particulier, il ne faut pas tre dans le rpertoire servant de point de montage pour pouvoir dmonter un
systme de fichiers, car dans ce cas on est en train de l'utiliser. Faites bien attention l'orthographe de
la commande umount, elle a perdu son 'n' depuis bien longtemps dj, et on ne l'a jamais retrouv. Si
vous savez o il se trouve, faites-le savoir.
Pour les supports de systmes de fichiers amovibles, le dmontage du systme de fichiers peut ne pas
tre suffisant. En effet, il peut tre ncessaire d'arrter le priphrique correctement avant de l'jecter.
C'est en particulier le cas pour les systmes de fichiers sur les clefs USB par exemple. Cette opration
peut tre ralise l'aide de la commande eject :
eject priphrique

o priphrique est le fichier spcial du priphrique jecter Cette commande ralise galement
l'opration de dmontage sur les systmes de fichiers monts avant d'ejecter le disque.
6.6.4. Vrification des systmes de fichiers
La vrification des systmes de fichiers est une opration que l'on ne devrait jamais avoir faire. Il y a
plusieurs raisons cela. Premirement, si l'on arrte le systme correctement avant d'teindre la
machine, et si l'on dmonte bien les systmes de fichiers avant de retirer les lecteurs amovibles, les
systmes de fichiers sont normalement toujours dans un tat correct. Deuximement, les systmes de
fichiers Unix sont rputs pour tre trs fiables. Troisimement, une vrification priodique est faite
par le systme au bout d'un certain nombre de dmarrages. Quatrimement, si un systme de fichiers
n'est pas dmont correctement avant l'arrt du systme, celui-ci sera vrifi automatiquement au
dmarrage suivant, ce qui fait qu'il n'y a pas lieu de le faire soi-mme. Enfin, pour les systmes de
fichiers journaliss tels que EXT3, JFS ou ReiserFS, cette opration peut tre ralise trs rapidement
l'aide des informations qui sont stockes dans le journal des transactions du systme de fichiers.
Toutefois, mme le meilleur systme du monde ne saurait tre l'abri des secteurs dfectueux du
disque dur sur lequel il est install. Il est donc parfois ncessaire d'effectuer une vrification manuelle
des systmes de fichiers, et il faut savoir le faire mme quand plus rien ne fonctionne.
Un systme de fichiers ne se manipule que lorsqu'il est dmont. Cela pose videmment quelques
problmes pour le systme de fichiers racine, puisqu'on ne peut pas accder aux outils de vrification
sans le monter. Pour ce systme de fichiers, il n'y a donc que deux possibilits :
soit on utilise une disquette de dmarrage contenant les outils de vrification et de rparation
des systmes de fichiers ;
soit on monte le systme de fichiers racine en lecture seule.
La deuxime solution est la seule ralisable si l'on ne dispose pas de disquette de dmarrage. Par
consquent, c'est cette mthode qui sera dcrite ici.
La premire tape consiste passer en mode mono utilisateur, afin de s'assurer que personne ni aucun
programme n'accde au systme de fichiers racine en criture. Pour cela, il suffit de taper la
commande suivante :
init 1
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 179


qui fait passer le systme dans le niveau d'excution 1. On peut galement passer le paramtre
sing1e au noyau lors de l'amorage du systme, comme il l'a t expliqu dans la section prcdente.
Ensuite, il faut s'assurer que le systme de fichiers racine est en lecture seule, ce qui se fait avec la
commande suivante :

mount -n -o remount,ro /

L'option remoun permet de dmonter et de remonter le systme de fichiers racine, et l'option ro
indique qu'il doit tre remont en lecteur seule ( ro signifie Read Only ). Les options sont
spares par des virgules (attention, il ne faut pas insrer d'espace). De plus, l'option -n indique
mount qu'il ne doit pas crire dans le fichier /etc/mtab lorsqu'il aura remont le systme de fichiers,
parce que ce fichier sera alors galement en lecture seule et qu'on ne pourra pas y crire. Ce fichier est
utilis par mount pour mmoriser les systmes de fichiers qui sont monts, afin de pouvoir en donner
la liste (ce que la commande mount fait lorsqu'elle est appele sans paramtres) et de permettre la
commande umount de vrifier que les systmes de fichiers dmonter ne le sont pas dj.
Note : Normalement, le noyau monte toujours le systme de fichiers racine en lecture seule lors de
l'amorage. Ce sont les scripts de dmarrage du systme, lancs par init, qui le remontent en lecture /
criture s'il est dans un tat correct. Il est donc fortement probable, si votre systme ne dmarre plus
correctement, que le systme de fichiers racine soit dj en lecture seule aprs un dmarrage en mode
de maintenance. La commande prcdente n'est donc dcrite qu' titre indicatif.
Une fois le systme de fichiers racine mont en lecture seule, on peut utiliser le programme fsck afin
de le vrifier et ventuellement le rparer. En ralit, ce programme ne fait rien d'autre que d'appeler
un programme spcifique pour chaque systme de fichiers, de la mme manire que mkfs appelle des
programmes spcifiques pour les crer. Par exemple, pour les systmes de fichiers EXT2 et EXT3,
fsck appelle le programme fsck.ext (qui est un lien vers e2sfck).
La ligne de commande utiliser pour vrifier un systme de fichiers avec fsck est la suivante :
fsck -a fichier

o fichier est le fichier spcial du priphrique ou le fichier image contenant le systme de fichiers
vrifier. Il faut donc, gnralement, spcifier la partition sur laquelle le systme de fichiers racine se
trouve. L'option -a demande fsck d'effectuer les ventuelles corrections automatiquement en cas
d'erreur sur le systme de fichiers ainsi vrifi, sans confirmation de la part de l'utilisateur.
Il est galement possible de demander la vrification de tous les systmes de fichiers enregistrs dans
le fichier de configuration /etc/fstab. Ce fichier contient la liste des systmes de fichiers les plus
utiliss et leurs options respectives. Il suffit donc d'ajouter l'option -A :
fsck -a A

Il n'est videmment plus ncessaire de spcifier le fichier spcial du priphrique contenant le systme
de fichiers vrifier, puisque cette information est enregistre dans le fichier /etc/fstab. La syntaxe de
ce fichier sera dcrite dans la section suivante.
Si le disque dur contient des secteurs dfectueux, il peut tre ncessaire de les marquer comme tels
dans les structures du systme de fichiers afin de ne pas les utiliser par la suite. De manire gnrale,
la recherche de ces blocs peut tre faite l'aide du programme badblocks. Cette commande effectue
un test de lecture de tous les blocs du disque sur lequel le systme de fichiers se trouve, et gnre une
liste des blocs dfectueux. Vous pouvez l'appeler directement et fournir cette liste au programme
e2fsck l'aide de son option -1, mais le plus simple est encore de demander e2fsck d'appeler
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 180

badblocks lui-mme. Pour cela, il suffit de lui passer l'option -c, ce qui se fait en faisant prcder
cette option d'un double-tiret dans la ligne de commande de fsck :
fsck -a -- -c priphrique
Note : L'option -c est spcifique e2fsck et peut ne pas fonctionner avec d'autres systmes de
fichiers. En particulier, certains systmes de fichiers ne sont pas capable de grer correctement les
blocs dfectueux des disques durs. C'est le cas du systme de fichiers ReiserFS.
Le programme badblocks peut galement effectuer un test d'criture sur le disque dur, si on lui
communique l'option -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 fichiers contenant des donnes !
De manire gnrale, il vaut mieux prvenir que gurir, aussi est-il recommand d'utiliser la
commande badblocks au moins une fois avant d'utiliser un systme de fichiers. Cette vrification peut
tre ralise de manire automatique lors de la cration du systme de fichiers l'aide de l'option -c
de la commande mke2fs.
Une fois que vous aurez termin la vrification du systme de fichiers, vous pourrez le remonter en
lecture et criture avec la commande suivante :
mount -n -o remount,rw /
Cette commande est similaire celle que l'on a vue pour monter le systme de fichiers en lecture
seule, ceci prs que l'option rw est utilise la place de l'option ro. Cette option permet de remonter
le systme de fichiers en lecture et en criture ( rw est l'abrviation de l'anglais Read Write ).
6.6.5. Configuration du montage des systmes de fichiers
Le montage des systmes de fichiers peut devenir trs vite une opration assez fastidieuse.
Heureusement, elle peut tre automatise au dmarrage pour les systmes de fichiers situs sur les
disques fixes, et simplifie pour les systmes de fichiers amovibles. Pour cela, il faut enregistrer ces
systmes de fichiers et leurs options de montage dans le fichier de configuration /etc/fstab.
Ce fichier contient, entre autres, le rpertoire de montage, le type du systme de fichiers et le fichier de
priphrique utiliser pour chaque systme de fichiers. De cette manire, il est possible d'utiliser la
commande mount de manire simplifie, en ne prcisant que le rpertoire servant de point de montage
ou le fichier spcial de priphrique.
Le fichier /etc/fstab contient une ligne pour chaque systme de fichiers enregistr. Chaque ligne
contient plusieurs champs spars par des espaces. Les informations suivantes sont enregistres dans
ces champs :
le fichier spcial permettant d'accder au systme de fichiers ;
le rpertoire servant de point de montage par dfaut ;
le type du systme de fichiers ;
les options de montage pour ce systme de fichiers ;
un entier indiquant si le systme de fichiers doit tre sauvegard ;
un entier indiquant l'ordre que ce systme de fichiers doit avoir dans la liste des systmes de
fichiers vrifier.
Grce ces informations, l'emploi de la commande mount est plus simple :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 181

mount priphrique ou mount rpertoire

o priphrique est le fichier spcial de priphrique contenant le systme de fichiers monter, et
rpertoire est le rpertoire servant de point de montage indiqu dans le fichier /etc/fstab. Il est possible
d'utiliser indiffremment le fichier spcial de priphrique ou le rpertoire du point de montage.
Le type du systme de fichiers est l'un des types disponibles accepts par la commande mount.
Consultez la page de manuel de cette commande pour plus de renseignements ce sujet. Les
principales options disponibles pour le montage sont les suivantes :
l'option defaults, qui permet de choisir les options par dfaut pour ce systme de fichiers ;
l'option auto, qui permet de faire en sorte que le systme de fichiers soit mont
automatiquement au dmarrage du systme ;
l'option user, qui permet d'autoriser le montage de ce systme de fichiers par les utilisateurs ;
l'option ro, qui permet de monter le systme de fichiers en lecture seule ;
l'option rw, qui permet de monter le systme de fichiers en lecture et criture ;
l'option exec, qui permet d'autoriser l'excution des fichiers excutables sur ce systme de
fichiers si celui-ci ne supporte pas la notion de droit d'excution ;
l'option acl, qui permet d'autoriser l'utilisation des ACLs ( Access Control List ) pour fixer
les droits des utilisateurs sur les fichiers ;
l'option uid=utilisateur, qui permet de spcifier le numro utilisateur de l'utilisateur
propritaire du rpertoire racine de ce systme de fichiers ;
l'option gid=groupe, qui permet de spcifier le numro groupe du groupe d'utilisateurs
auquel le rpertoire racine du systme de fichiers appartient ;
l'option mode=valeur, qui permet de fixer les droits sur le rpertoire racine du systme de
fichiers monter. La valeur valeur est donne en octal ;
l'option umask=valeur, qui permet de fixer les droits sur les fichiers qui ne sont pas grs
par le systme de fichiers. La valeur valeur est donne en octal ;
les options codepage=cp et iocharset=charset, qui permettent de fixer les tables de
conversion des caractres pour les systmes de fichiers pour lesquels les noms de fichiers
doivent tre transcods.
Nous allons dtailler un peu quelques-unes de ces options.
Par dfaut, les utilisateurs n'ont pas le droit de monter et de dmonter les systmes de fichiers. L'option
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, l'excution des fichiers excutables n'est par
dfaut pas autorise sur les systmes de fichiers. Cette restriction permet d'viter l'excution de
programmes placs sur des systmes de fichiers de systmes d'exploitation diffrents. Elle peut tre
leve grce l'option exec.
Tous les systmes de fichiers disposant de l'option auo seront monts automatiquement au
dmarrage du systme par la commande mount -a. Les autres systmes de fichiers sont montables
manuellement, avec les autres options indiques dans le fichier /etc/fstab.
Les options ro et rw permettent d'indiquer mount si le systme de fichiers doit tre mont en
lecture seule ou en lecture et criture. Les systmes de fichiers devant tre rpars doivent tre monts
en lecture seule si l'on ne peut pas les dmonter (c'est le cas notamment du systme de fichiers racine).
Il en va de mme pour les CD-ROM, car on ne peut bien entendu pas crire dessus.
Les options uid et gid permettent de spcifier le propritaire et le groupe du rpertoire racine du
systme de fichiers monter. Par dfaut, c'est l'utilisateur root qui devient propritaire de ce systme
de fichiers.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 182

L'option mode permet de spcifier les droits d'accs sur tous les fichiers du systme de fichiers
monter. L'option umas' permet quant elle de fixer les droits qui ne sont pas grs par le systme de
fichiers. Ce peut tre utile pour les systmes de fichiers FAT et FAT32. Il est ainsi possible de donner
les droits de lecture et d'excution pour les fichiers de ces systmes avec une valeur de masque nulle.
Cela permet de monter les systmes de fichiers FAT et FAT32 de telle sorte que tous les fichiers
appartiennent l'utilisateur root par dfaut, et de donner cependant tous les droits tous les utilisateurs
sur ces fichiers. On prendra garde ces options, car elles permettent quiconque d'crire des fichiers
sous le nom de root, et donc constituent un grave dfaut dans la scurit du systme.
Les options codepage et iocharse permettent de spcifier respectivement la page de codes et le
jeu de caractres utiliss pour les systmes de fichiers qui ne stockent pas les noms de fichiers Unix
nativement. En particulier, elles permettent de modifier la page de code et le jeu de caractres
slectionns par dfaut dans la configuration du noyau pour les systmes de fichiers FAT. L'option
codepage est utilise pour donner la page de codes utilise pour la conversion des noms de fichiers
en noms de fichiers courts. En gnral, pour les systmes franais, la page de codes utilise est la page
de codes 850. Il faut donc donner cette option la valeur cp850. L'option iocharse quant elle est
utilise pour faire la conversion des noms de fichiers Unix en Unicode. Elle est utilise pour les
systmes de fichiers VFAT, car ceux-ci stockent les noms de fichiers longs en Unicode. Pour la
plupart des systmes, le jeu de caractres le plus appropri est sans doute le jeu de caractres
ISO8859-1. Aussi faut-il gnralement donner cette option la valeur iso8859-1. Cette option n'est pas
ncessaire pour les systmes de fichiers FAT purs, puisque ceux-ci ne savent pas grer les noms de
fichiers longs.
Les deux derniers champs de /etc/fstab spcifient des options pour des programmes annexes. L'avant-
dernier contrle le comportement du programme de sauvegarde dump, et le dernier celui du
programme de vrification de systme de fichiers fsck. Consultez les pages de manuel pour plus de
dtails ce sujet.
Si vous disposez de systmes de fichiers FAT ou FAT32, vous pourrez monter ces partitions
automatiquement lors du dmarrage du systme. Comme les systmes de fichiers bass sur la FAT ne
peuvent pas grer les droits des utilisateurs, vous allez devoir faire un choix pour fixer ces droits une
valeur raisonnable. Vous pouvez par exemple donner le droit de lecture tous les utilisateurs, mais le
droit d'criture uniquement l'administrateur systme. La ligne ajouter dans le fichier /etc/fstab sera
alors la suivante :
/dev/partition rpertoire vfat auto,exec,codepage=cp850,iocharset=iso8859-1 0 0
o partition est la partition contenant le systme de fichiers FAT, et rpertoire est le rpertoire servant
de point de montage pour cette partition. Cette ligne permettra de monter automatiquement ce systme
de fichiers en tant que FAT32 au dmarrage du systme. Les fichiers binaires seront excutables, bien
qu'ils ne soient pas stocks sur un systme de fichiers EXT2. Si vous voulez laisser les droits d'criture
aux utilisateurs, vous pouvez utiliser la ligne suivante la place de celle indique ci-dessus :
/dev/partition rpertoire vfat auto,codepage=cp850,iocharset=iso8859-1,umask=0 0 0
Cette ligne permet de monter le systme de fichiers FAT en laissant les droits d'excution et d'criture
aux utilisateurs. Cependant, aucun fichier excutable de ce systme de fichiers ne pourra tre lanc,
car l'option exec n'a pas t prcise.
Par ailleurs, certaines distributions spcifient des options incorrectes pour le systme de fichiers
/dev/pts/ dans le fichier /etc/fstab. Veuillez vous assurer que la ligne utilise pour ce systme de
fichiers est bien identique la ligne suivante :
none /dev/pts devpts auto,gid=5,mode=620 0 0
Si ce n'est pas le cas, certains mulateurs de terminaux dvelopps rcemment ne fonctionneront pas
correctement. Le systme de fichiers /dev/pts/ est en effet un systme de fichiers virtuel, gr
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 183

directement par le noyau, dans lequel des fichiers spciaux de priphriques utiliss par les mulateurs
de terminaux sont placs. Si les droits ne sont pas correctement fixs sur le rpertoire racine de ce
systme de fichiers, 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 qu'il faut que tout le
monde ait les droits d'criture et de lecture sur le fichier spcial de priphrique /dev/ptmx pour que
les utilisateurs non privilgis puissent utiliser ce systme de fichiers virtuel.
Vous devrez galement ajouter le systme de fichiers virtuel /dev/shm/ dans votre fichier /etc/fstab. Ce
systme de fichiers permet aux applications qui le dsirent d'utiliser des segments de mmoire
partage de manire compatible avec la norme POSIX, par exemple pour raliser des communications
inter-processus. Ce systme de fichiers permet en effet de crer des fichiers qui sont directement
stocks dans la mmoire virtuelle et qui peuvent tre ouverts par plusieurs processus simultanment,
ce qui permet d'utiliser les fonctionnalits classiques de partage de fichiers 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 fichier fstab :
tmpfs /dev/shm tmpfs defaults 0 0

Bien entendu, vous devrez crer le point de montage /dev/shm/ si celui-ci n'existe pas avant de monter
ce systme de fichiers virtuels.
Vous pouvez monter les systmes de fichiers virtuels du noyau, qui vous permettront d'obtenir des
informations sur votre systme et d'en modifier le comportement, en ajoutant les deux lignes suivantes
dans le fichier /etc/fstab :
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0

La premire ligne monte le systme de fichiers /proc/, qui contient tous les paramtres du noyau et
permet de paramtrer son comportement, et la deuxime contient le systme de fichiers /sys/, qui
contient une vue de tous les objets systmes grs par le noyau. Ce systme de fichiers n'est disponible
qu'avec les versions 2.6 et plus du noyau. Ces deux lignes ne sont gnralement pas ncessaires, car
ces systmes de fichiers sont monts automatiquement dans les scripts d'initialisation des distributions.
Enfin, si vous utilisez des priphriques USB, il vous faudra galement monter le systme de fichiers
virtuel /proc/bus/usb/ en ajoutant la ligne suivante dans le fichier fstab :
none /proc/bus/usb usbfs defaults 0 0

Cette ligne doit tre place aprs celle qui effectue le montage du systme de fichiers virtuel /proc/.
6.6.6. Montage des systmes de fichiers la demande
Les systmes de fichiers sur les supports amovibles ne peuvent pas tre monts automatiquement au
dmarrage du systme, tant donn qu'ils ne sont pas forcment prsents ce moment. Les entres qui
les dcrivent dans le fichier fstab doivent donc utiliser l'option noauo. De ce fait, l'utilisation des
systmes de fichiers stocks sur les supports amovibles ncessite toujours un montage et un
dmontage manuel, et mme si ces oprations sont simplifies, elles restent gnantes.
Il est toutefois possible de faire en sorte que ces systmes de fichiers soient monts la demande, c'est
dire ds qu'un accs est ralis dans les rpertoires de montage ddis ces systmes par un
quelconque programme. Ainsi, il n'est plus ncessaire de monter ces systmes de fichiers
manuellement. Le dmontage quant lui peut tre ralis automatiquement aprs un temps
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 184

d'inactivit, ou manuellement, lorsqu'on veut retirer le lecteur amovible. Notez que le dmontage reste
vital si le systme de fichiers est accd en criture, car des donnes pourraient tre perdues si l'on
supprime le lecteur avant qu'elles ne soient crites.
Les oprations de montage et de dmontage sont ralises par un dmon, que le noyau appelle
automatiquement ds qu'une opration susceptible de concerner un systme de fichiers amovible se
produit. Ce dmon se nomme automount, et il s'appuie donc sur une fonctionnalit ddie du noyau
Linux. Pour que le montage automatique des systmes de fichiers fonctionne, il faut activer soit
l'option Kernel automounter support , soit l'option Kernel automounter version 4 support (also
supports v3) du menu File systems du programme de configuration du noyau.
Note : Un dmon est un processus qui tourne en arrire plan dans le systme. Les dmons
fonctionnent 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 signifie ange en
ralit. Le dmon se place donc en tant qu'intermdiaire entre Dieu (c'est--dire le noyau) et les
hommes (c'est--dire les applications normales). Le terme daemon a t ensuite clairci et dfini
comme l'acronyme de l'anglais Disk And Execution MONitor .
Le dmon automount peut surveiller plusieurs points de montage, s'ils sont tous placs dans le mme
rpertoire. Le noyau surveille simplement les accs sur les sous-rpertoires de ce rpertoire, et signale
automount toutes les oprations susceptibles de ncessiter un montage de systme de fichiers.
Les informations spcifiques aux points de montage doivent tre stockes dans un fichier de
configuration, que l'on doit fournir automount en ligne de commande. Cette ligne de commande est
donc typiquement de la forme suivante :
automount -t dure rpertoire file fichier

o dure est la dure d'inactivit avant dmontage automatique du systme de fichiers, rpertoire est le
rpertoire dont les sous-rpertoires seront utiliss comme points de montage des systmes de fichiers
(il s'agit gnralement du rpertoire /mnt/), et fichier est le fichier de configuration pour les points de
montage placs dans ce rpertoire. La dure d'inactivit doit tre spcifie en secondes, et la valeur par
dfaut est de cinq minutes. Pour dsactiver le dmontage automatique, il suffit de spcifier une valeur
nulle.
Note : automount est capable d'utiliser d'autres mthodes de paramtrage des systmes de fichiers
amovibles que des fichiers de configuration, principalement utilises dans le contexte du montage
automatique des systmes de fichiers en rseau. Ces mthodes de paramtrage ne seront toutefois pas
dcrites ici, vous pouvez consulter la page de manuel du dmon automount pour plus de dtails ce
sujet.
Les fichiers de configuration pour automount sont gnralement placs dans le rpertoire /etc/, et
portent un nom de la forme auto.nature , o nature est la nature des systmes de fichiers dcrits par
ce fichier. Par exemple, le fichier de configuration pour les lecteurs amovibles locaux pourrait
s'appeler /etc/auto.local. Ce fichier de configuration est constitu de plusieurs lignes, raison d'une
ligne par point de montage. Chaque ligne utilise la syntaxe suivante :
rpertoire -options priphrique

o rpertoire est le sous-rpertoire du rpertoire spcifi en ligne de commande automount et devant
servir de point de montage, options est la liste des options de montage du systme de fichiers, spares
par des virgules, et priphrique est la localisation du systme de fichiers. Pour les lecteurs amovibles,
il s'agit du fichier spcial de priphrique permettant d'y accder, prcd du caractre ':'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 185

Par exemple, pour raliser le montage automatique du lecteur de CD-ROM et du lecteur de disquettes,
vous devez ajouter deux lignes telles que celles-ci dans le fichier de configuration d'automount :
cdrom -fstype=iso9660,ro :/dev/cdrom
floppy -fstype=auto,umask=0 :/dev/fd0

Vous noterez que les options sont prcdes d'un tiret ('-'), et que les fichiers spciaux de priphrique
sont prcds de deux points (':'). Une fois ce fichier dfini, vous n'aurez plus qu' lancer automount
avec la ligne de commande suivante :

automount -t 60 /mnt file /etc/auto.local
En gnral, les distributions lancent automatiquement le dmon automount au dmarrage, via le script
d'initialisation rc.autofs. Ce script utilise le fichier de configuration /etc/auto.master pour dterminer
les noms des fichiers de configuration fournir en paramtre aux dmons automount, ainsi que pour
dterminer les options avec lesquelles ils doivent tre lancs. Ce fichier est constitu de lignes,
raison d'une ligne par instance du dmon automount qui doit tre lance. Le format de ces lignes est
le suivant :
rpertoire fichier options

o rpertoire est le rpertoire spcifi en ligne de commande automount, fichier est le fichier de
configuration, et option est la liste des options lui fournir. Par exemple, pour lancer automatiquement
automount comme dans l'exemple prcdent, la ligne suivante devrait tre ajoute dans le fichier
/etc/auto.master :

/mnt /etc/auto.local -t 60
Note : Vous noterez que lorsque les systmes de fichiers ne sont pas monts, le rpertoire contenant
leurs points de montage est vide. De ce fait, les chemins sur ces rpertoires devront tre saisis
explicitement pour forcer le montage des systmes de fichiers. Cela peut tre gnant lorsque l'on
utilise les fonctionnalits de compltion automatique des shells, ou lorsqu'on cherche localiser un
fichier dans un de ces rpertoires avec un gestionnaire de fichiers ou une bote de dialogue d'un
programme graphique. Une solution pour rsoudre ce problme est de forcer une rfrence aux points
de montage. Pour cela, il suffit de dfinir des liens symboliques sur les points de montage, et d'utiliser
ces liens symboliques vers ces points de montage. Par exemple, on pourra dfinir les liens
symboliques /cdrom et /floppy pour rfrencer les points de montage /mnt/cdrom et /mnt/floppy, et
laisser automount monter les systmes de fichiers relatifs et crer les rpertoires des points de
montage ds qu'on accdera aux liens symboliques.
6.7. Gestion des volumes
Linux fournit des mcanismes trs puissants permettant de crer des fichiers spciaux de priphrique
de type bloc virtuels, et d'indiquer les donnes qui seront accdes au travers de ces fichiers. Cela
permet de manipuler des systmes de fichiers stocks sur un fichier. Linux permet galement de
raliser des agrgats de volumes. Ces agrgats peuvent ensuite tre accds via diffrentes techniques,
par exemple pour raliser de la rplication de donnes ou tout simplement pour simuler un
priphrique de trs grande taille. Ils permettent galement de raliser la vole des oprations de
chiffrement sur les donnes crites, et de les dchiffrer en lecture. Ainsi, ces mcanismes d'agrgation
sont utiliss pour grer les volumes de manire beaucoup plus souple que les mcanismes de
partitionnement classiques et pour crer des systmes de fichiers chiffrs l'aide des algorithmes
cryptographiques du noyau. Nous allons prsenter tous ces mcanismes dans les sections suivantes.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 186

6.7.1. Gestion des fichiers images
Linux permet de stocker des systmes de fichiers dans des fichiers image et de les manipuler de
manire transparente, grce un mcanisme de priphriques de type bloc virtuel. Le principe est
d'associer le fichier l'un de ces priphriques, et d'utiliser simplement le fichier spcial de
priphrique correspondant comme un fichier spcial de priphrique de type bloc classique. Il est
ainsi possible de construire une image de systmes de fichiers de manire tout fait transparente, et
d'accder aux donnes stockes dans une image de CD-ROM de manire tout aussi facile.
Les fichiers spciaux de priphrique utiliss pour manipuler les fichiers images sont les fichiers
/dev/loopX, o X est un numro allant de 0 7. Ces fichiers ne sont utilisables que si l'option
Loopback device support du menu Block devices a t active dans la configuration du noyau.
L'association entre le priphrique de type bloc virtuel et le support des donnes peut tre ralise
l'aide de la commande losetup. La syntaxe la plus simple de cette commande est la suivante :
losetup /dev/loopX fichier

o loopX est le fichier spcial de priphrique de type bloc virtuel utiliser, et fichier est le fichier
dans lequel les donnes de ce priphrique doivent tre stockes. Une fois cette association faite, on
peut utiliser ce priphrique comme un vritable priphrique. Ainsi, pour crer un systme de fichiers
dans un fichier image de 10 Mo, on procdera comme suit :

dd if=/dev/zero of=image bs=1024 count=10240
losetup /dev/loop0 image
mkfs -t ext2 /dev/loop0
Note : La commande dd permet de copier un certain nombre de blocs, ici 10240 (option coun) de
1024 octets (taille indique par l'option bs) du fichier spcial de priphrique /dev/zero dans le fichier
image. Cette commande a dj t prsente dans le chapitre d'installation pour raliser une copie du
secteur de boot principal du disque dur.
En ralit, les commandes de cration de systmes de fichiers peuvent galement crer directement les
systmes de fichiers dans des fichiers images. La manire classique de procder a toutefois t
prsente ici pour la bonne comprhension du mcanisme de gestion des fichiers images.
Le montage d'un systme de fichiers plac dans l'image disque est ensuite ralisable de manire tout
fait classique, en utilisant le fichier spcial de priphrique /dev/loopX adquat dans la commande
mount. Toutefois, cette commande permet de raliser le montage d'une image de manire simplifie
grce son option 1oop. Celle-ci permet de configurer le priphrique virtuel image de manire
automatique avant de raliser le montage. Elle prend donc en paramtre le fichier spcial de
priphrique virtuel utiliser, ainsi que le chemin sur le fichier image contenant le systme de fichiers.
Ainsi, pour monter une image de CD-ROM, vous pouvez utiliser la commande suivante :
mount -t iso9660 -o ro,loop=/dev/loop0 image /mnt/cdrom
Lorsque l'on n'a plus besoin du priphrique de type bloc virtuel, il est possible de supprimer
l'association avec le support de donnes simplement avec la commande suivante :
losetup -d /dev/loopX

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 187

o X est toujours le numro du fichier spcial de priphrique virtuel. Lorsque l'on utilise l'option
1oop de la commande mount, cette opration est ralise automatiquement par la commande umount
et ne doit plus tre effectue manuellement.
6.7.2. Agrgation de volumes
Les agrgats de volumes de Linux permettent de construire un priphrique virtuel constitu d'un
certain nombre de volumes de donnes. Ceux-ci peuvent tre regroups pour raliser un volume de
grande taille, ou mis en parallle afin de rpliquer les donnes sur plusieurs disques par exemple. Il est
donc possible, grce cette fonctionnalit, de regrouper plusieurs disques durs ou plusieurs partitions
en une seule partition logique, ou au contraire de subdiviser de manire fine des partitions ou des
disques existants. De mme, il est possible de prendre en charge au niveau logiciel les fonctionnalits
RAID normalement disponibles uniquement avec du matriel spcialis. Nous ne prsenterons
toutefois pas ces fonctionnalits ici.
La ralisation des agrgats de volumes se fait l'aide de l'outil dmsetup. Cet outil peut tre rcupr
sur le site de Redhat s'il n'est pas fourni avec votre distribution. Son installation se fait par compilation
des sources, par excution des commandes suivantes dans le rpertoire des sources :
./configure
make
make install
La principale commande de dmsetup est celle qui permet de crer un nouvel agrgat. Cela se fait
simplement grce l'option creae :
dmsetup create agrgat dfinition

o agrgat est le nom de l'agrgat et dfinition est le nom d'un fichier contenant la dfinition de cet
agrgat. Si vous ne fournissez pas ce paramtre, dmsetup attendra que vous le dfinissiez en ligne de
commande.
La dfinition d'un agrgat se fait de manire gnrale l'aide de plusieurs lignes, raison d'une ligne
par composante de l'agrgat. Chaque ligne a la forme suivante :
dbut taille mthode arguments

dbut est le secteur de dbut de la plage de secteurs de l'agrgat qui seront stocks dans la composante.
taille est le nombre de secteurs de cette plage. mthode est la mthode d'agrgation utilise, elle est
suivie par des options qui lui sont spcifiques. La mthode la plus classique est sans doute linear, qui
permet de stocker des donnes de l'agrgat dans les secteurs correspondants de la composante. Dans le
cas de la mthode linaire, ces secteurs sont spcifis simplement avec le nom du fichier spcial de
priphrique contenant les secteurs, et le numro du premier secteur partir duquel la composante sera
stocke.
Par exemple, pour crer un agrgat des deux partitions /dev/hda2 et /dev/hdb1, respectivement de
tailles 16579080 et 59665410 secteurs, il suffit d'utiliser les deux lignes suivantes :
0 16579080 linear /dev/hda2 0
16579080 59665410 linear /dev/hdb1 0

On constatera que le secteur de dpart dans l'agrgat de la deuxime composante est le secteur suivant
le dernier secteur dfini par la premire composante. De manire gnrale, il n'est pas possible de
dfinir des trous dans un agrgat. La totalit des deux partitions est utilise dans cet exemple, pour
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 188

crer un volume de taille totale 40 Go environ (pour rappel, un secteur de disque dur fait 512 octets,
les deux partitions de cet exemple font donc environ 8 et 32 Go).
Une fois l'agrgat cr, un fichier spcial de priphrique portant le nom de l'agrgat doit apparatre
dans le rpertoire /dev/mapper/. Ce fichier spcial de priphrique peut tre utilis comme n'importe
quel fichier spcial de priphrique, pour y crer un systme de fichiers, pour le monter et pour le
dmonter. Par exemple, pour crer un agrgat group0 avec les dfinitions prcdentes, il suffit
d'excuter la commande suivante :
dmsetup create group0 group0.def

o group0.def est le fichier contenant les deux lignes dfinissant les composantes vues ci-dessus. La
cration et le montage du systme de fichiers se font ensuite avec les commandes suivantes :

mke2fs /dev/mapper/group0
mount /dev/mapper/group0 /mnt/group

o /mnt/group/ est le nom du rpertoire o le systme de fichiers agrg doit tre mont.
Lorsqu'un agrgat n'est plus utilis, il peut tre supprim l'aide de l'option remove de dmsetup
dmsetup remove agrgat

Cela ne supprime bien entendu pas les donnes, mais dtruit l'association entre les composantes de cet
agrgat.
Note : Les fonctionnalits d'agrgation de volumes ne sont disponibles que si les options Multiple
devices driver support (RAID and LVM) , Device mapper support et Crypt target support du
noyau ont t actives dans le menu Multi-device support (RAID and LVM) du programme de
configuration du noyau.
dmsetup utilise le fichier spcial de priphrique /dev/mapper/control pour communiquer avec le
noyau. Vous devrez donc crer ce fichier si votre distribution ne le fournit pas. Pour cela, vous pouvez
excuter le script devmap_mknot.sh fourni dans le rpertoire scripts/ des sources de dmsetup. Ce
script permet galement de crer le rpertoire /dev/mapper/ si celui-ci n'existe pas.
6.7.3. Chiffrement des systmes de fichiers
Il est possible de crer des systmes de fichiers chiffrs afin de garantir la confidentialit des donnes
qui y sont stockes. Ces systmes de fichiers sont chiffrs la vole par le noyau avec des algorithmes
de chiffrement trs puissants, que l'on paramtre avec une clef de chiffrement. Cette clef doit bien
entendu rester secrte, faute de quoi tout ce travail de chiffrement devient inutile. Le chiffrement et le
dchiffrement sont raliss de manire compltement transparente par le noyau lors des accs aux
rpertoires et aux fichiers du systme de fichiers, qui apparat donc en clair lorsqu'on l'utilise. La
diffrence est donc que le systme de fichiers reste illisible pour tous les autres ordinateurs, ou pour
tous les autres utilisateurs s'ils n'ont pas la clef de dcryptage et que le systme de fichiers n'est pas
mont (rappelons que le mcanisme des droits Unix permet un utilisateur d'interdire aux autres
utilisateurs de consulter ses donnes).
Pour crer un tel systme de fichiers, il est ncessaire de crer un volume agrg, et d'utiliser un
algorithme de chiffrement comme algorithme d'agrgation. Ceci se fait simplement en indiquant que
les composantes de l'agrgat utilisent la technique d'agrgation crypt. Cette technique est semblable
la technique linear, ceci prs qu'elles permettent de chiffrer les donnes la vole. L'algorithme de
chiffrement utilis peut alors tre spcifi et prendre en paramtre une clef prive, qui doit tre fournie
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 189

chaque fois que l'agrgat est redfini, faute de quoi les donnes resteront indchiffrables. Pour des
raisons de scurit, un vecteur d'initialisation peut tre utilis afin de rendre plus difficiles les
tentatives de dcryptage par la force brute. Ce vecteur d'initialisation est ajout la clef de chiffrement
et permet ainsi d'obtenir des donnes chiffres diffrentes pour deux systmes de fichiers mme si les
clefs utilises sont identiques. Dans l'implmentation actuelle, le vecteur d'initialisation utilis est le
numro du secteur chiffr, ce qui n'est pas la panace tant donn que ce numro est prdictible, mais
c'est dj mieux que rien.
La technique d'agrgation crypt prend en paramtre l'algorithme de chiffrement utiliser, la clef prive
utiliser pour chiffrer le volume agrg, un dcalage ajouter au numro du secteur pour dterminer
le vecteur d'initialisation, le fichier spcial de priphrique sur lequel les donnes chiffres seront
crites, et le numro du secteur de ce priphrique partir duquel les donnes seront crites. Les
dcalages fournis permettent de n'utiliser qu'une partie d'un priphrique de type bloc pour stocker les
donnes chiffres. En gnral, ces valeurs seront nulles, car les donnes sont souvent stockes sur la
totalit du priphrique hte.
Ainsi, la dfinition d'une composante de l'agrgat chiffr se fait selon la syntaxe suivante :
dbut taille crypt algorithme clef dcalage priphrique origine

o dbut et taille dfinissent la composante dans l'agrgat, algorithme et clef l'algorithme de
chiffrement et la clef prive utilise, dcalage le dcalage pour le vecteur d'initialisation, priphrique
le fichier spcial de priphrique dans lequel les donnes chiffres devront tre crites, et origine le
secteur de dpart dans ce priphrique partir duquel les donnes seront crites.
Les algorithmes utilisables sont les algorithmes de chiffrement inclus dans la configuration du noyau,
dont vous pourrez trouver la liste et les paramtres dans le fichier /proc/crypto. Pour chaque
algorithme de chiffrement, vous pouvez indiquer si vous dsirez utiliser un vecteur d'initialisation ou
non en ajoutant un suffixe leur nom. Le suffixe ecb signifie qu'il n'y a pas de vecteur d'initialisation,
et le suffixe plain signifie que le vecteur utilis est le numro de secteur. Bien entendu, vous devriez
utiliser plain, en attendant qu'une meilleure technique ne soit mise au point. Ainsi, le nom d'algorithme
des-plain indique que l'algorithme DES doit tre utilis avec un vecteur d'initialisation. La clef de cet
algorithme doit faire 64 bits (soit huit octets).
Une fois l'agrgat dfini, celui-ci peut tre accd comme un priphrique de type bloc classique, via
son fichier spcial de priphrique dans le rpertoire /dev/mapper/. La cration du systme de fichiers
se fait de la mme manire que pour les autres fichiers spciaux de type bloc. Par exemple, pour
chiffrer la partition /dev/hda2 (dont la taille est suppose tre de 10000000 blocs) avec l'algorithme
AES, vous devrez dfinir l'agrgat suivant :
0 10000000 crypt aes-plain clef 0 /dev/hda2 0

o clef est une clef de taille comprise entre 16 et 32 octets. Si cet agrgat a t nomm cr0, vous
pourrez ensuite crer le systme de fichiers simplement avec la commande suivante :

mkfs -t ext2 /dev/mapper/cr0

et le monter dans le rpertoire /mnt/secure/ avec une commande telle que celle-ci :

mount /dev/mapper/cr0 /mnt/secure
Enfin, il est possible d'utiliser un fichier en tant que priphrique de stockage des donnes chiffres.
Pour cela, il faut associer ce fichier un fichier de type bloc virtuel l'aide de la commande losetup.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 190

Ce fichier peut ensuite tre utilis pour dfinir un agrgat, comme n'importe quel autre fichier spcial
de priphrique.
6.8. Configuration des terminaux virtuels
Un terminal est, comme son nom l'indique, un quipement qui se trouve au bout d'une connexion un
ordinateur et qui permet de travailler sur l'ordinateur. 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 l'ordinateur. Cette architecture permettait de
partager une mme unit centrale avec plusieurs utilisateurs. De nos jours, la plupart des terminaux
sont simplement d'autres ordinateurs du rseau, qui se connectent l'aide d'un programme que l'on
appelle mulateur de terminal . L'mulateur 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, qu'ils soient physiques ou muls.
Les connexions locales sont donc ralises par l'intermdiaire d'un terminal local, la console. La
console est tout simplement le priphrique prenant en charge le clavier et l'cran. Ce priphrique est
gr directement par le noyau, et mule un modle de terminal standard, le VT102. En fait, la console
n'est utilise directement en tant que terminal de login qu'en mode monoutilisateur (c'est--dire en
mode maintenance). En mode multi-utilisateur, la console est partage entre plusieurs terminaux dits
virtuels , parce qu'ils simulent la prsence de plusieurs terminaux sur la mme console. Ces
terminaux virtuels se partagent le clavier et l'cran, mais seulement un de ces terminaux peut accder
la console chaque instant : celui qui traite les caractres saisis au clavier et qui ralise l'affichage.
Pour pouvoir passer d'un 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 l'une des
touches de fonction du clavier. Si l'on 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 lorsqu'on commence lancer plusieurs programmes en mme temps (cela
ncessite videmment de se connecter plusieurs fois sur des terminaux diffrents). Bien entendu, la
configuration du clavier et la police de caractres utilise sont communs tous les terminaux virtuels,
puisqu'ils utilisent tous la mme console.
La plupart des distributions utilisent au moins quatre terminaux virtuels, plus ventuellement un
terminal pour le serveur X. Mais il est possible de dfinir d'autres terminaux, qu'ils soient graphiques
ou non. Nous allons maintenant voir comment modifier le nombre de terminaux virtuels disponibles.
L'utilisation des terminaux avec XWindow sera traite dans le chapitre traitant de la configuration de
XWindow.
Chaque terminal virtuel utilise un fichier spcial de priphrique du rpertoire /dev/. Le nom de ce
fichier commence toujours par tty et est complt par le numro du terminal. Ainsi, le fichier
spcial de priphrique /dev/tty1 correspond au premier terminal virtuel, accessible avec la
combinaison de touches CTRL+ALT+F1, le fichier spcial de priphrique /dev/tty2 correspond au
deuxime terminal virtuel, etc. Linux peut grer jusqu' 64 terminaux virtuels, cependant, il est
ncessaire de dfinir d'autres combinaisons de touches pour accder aux terminaux 13 et suivants
(puisqu'il n'existe que 12 touches de fonctions). Il serait possible d'utiliser les combinaisons de touches
ALT+DROITE et ALT+GAUCHE pour les atteindre, mais d'une part ce ne serait pas trs pratique, et
d'autre part, vous ne devriez pas avoir besoin de plus de quatre ou cinq terminaux virtuels. Nous
n'utiliserons donc ici que les douze premiers terminaux virtuels.
Les terminaux virtuels sont crs par le noyau la demande, ds qu'un processus cherche y accder.
Ainsi, le systme n'alloue 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 n'est pas restreint
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 191

la simple connexion des utilisateurs. Par exemple, il est possible d'afficher un message sur un
terminal simplement en crivant dans son fichier spcial de priphrique. Ainsi, si vous tapez la
commande suivante sous le compte root :
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 afficher les messages du systme, soit pour
permettre aux utilisateurs de se connecter, soit pour XWindow. Les terminaux peuvent donc tre
attribus diffrents programmes, selon l'emploi qu'on 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 suffit 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 dfinition des terminaux de login se fait donc dans le fichier de configuration /etc/inittab. Si
vous regardez le contenu de ce fichier, 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 d'utilisateur
sur les terminaux virtuels. Plus prcisment, getty initialise le terminal, demande le nom d'utilisateur et
lance le programme login en lui fournissant le nom saisi, afin que celui-ci demande le mot de passe de
cet utilisateur.
Si vous dsirez rajouter des terminaux de login votre configuration, vous devrez donc rajouter des
lignes de ce genre dans le fichier /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 d'excution dans lesquels cette
ligne est valide. Ces numros doivent tre spcifis les uns la suite des autres, sans
sparateur. Dans l'exemple donn ci-dessus, ces lignes sont valides dans les niveaux
d'excution 2 5 compris, c'est--dire tous les niveaux d'excution classiques ;
le troisime champ indique init des options pour le lancement du programme getty. Dans
l'exemple donn ci-dessus, le programme getty doit tre relanc immdiatement ds qu'il se
termine. Cela est le comportement dsir, puisque la terminaison de getty correspond la
dconnexion de l'utilisateur courant, et qu'il 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 s'agit 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. L'opration
est trs simple : il suffit de renumroter les lignes et les terminaux virtuels utiliss. Prenez garde
cependant ne pas affecter getty un terminal utilis par XWindow. Il est recommand d'effectuer ces
modifications dans le niveau d'excution 2 pour ne pas tre gn par XWindow.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 192

Une fois les modifications ajoutes, vous pourrez demander init de relire son fichier de configuration
avec la commande suivante :
init Q
Ds lors, les nouveaux terminaux sont prts tre utiliss.
6.9. Configuration 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 configuration de celle-ci... Nous allons donc
voir dans ce chapitre la manire de paramtrer le clavier et l'affichage du texte l'cran.
Pour cela, il est ncessaire de bien comprendre les mcanismes mis en uvre pour le traitement des
codes mis par le clavier d'une part, et pour l'affichage des symboles des lettres partir de leurs codes
d'autre 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 l'allure des
symboles affichs l'cran.
Le plus simple pour comprendre le fonctionnement de la console est encore de voir les diffrentes
tapes entrant en ligne de compte de l'appui sur une touche jusqu' l'action correspondant cet appui.
Notez bien que cette action n'est pas forcment l'affichage d'une lettre l'cran : cela dpend de
l'application qui a trait l'vnement correspondant l'appui sur la touche. Il est toutefois ncessaire de
prsenter auparavant quelques notions sur la manire dont les caractres sont reprsents dans les
programmes.
6.9.1. Pages de codes et Unicode
De par leur nature de calculateurs, les ordinateurs n'ont jamais t conus pour manipuler nativement
du texte. Cela signifie qu'ils n'ont aucune notion de caractre ou de symbole : pour eux, tout est
numrique. Par consquent, il a fallu trouver le moyen de reprsenter les caractres humains sous une
forme numrique afin de pouvoir raliser des programmes de manipulation de texte. Cette
reprsentation est effectue en associant chaque caractre un numro donn, et 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. L'opration consistant effectuer cette association sur chaque
caractre d'un texte constitue ce que l'on appelle l'encodage du texte. Plusieurs manires de raliser cet
encodage ont t inventes, mais l'un des standards les plus utiliss est l'encodage ASCII. Lorsqu'il a
t cr, l'encodage 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 suffisant pour toutes les langues occidentales.
Cependant, le standard ASCII initial ne spcifiait que l'encodage 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, c'est--dire pour quasiment tout le monde. Il a donc fallu
dfinir d'autres conventions que celle initialement utilise, afin d'associer des codes numriques aux
caractres utiliss par les autres pays. Ces conventions constituent ce que l'on appelle les pages de
codes. Chaque pays est donc susceptible d'utiliser une page de codes qui lui est spcifique. Par
exemple, la page de codes 437 reprsente l'encodage utilis aux tats-Unis, et la 850 celle utilise en
France.
Historiquement, les pages de codes n'ont 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 193

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 l'o franais) et le symbole de l'Euro.
Le dfaut majeur de l'ASCII 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 n'est pas le cas de quelques
autres pays, qui utilisent un nombre de symboles de trs loin suprieur 256. C'est 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 d'autres types d'encodages, plus riches, permettant de satisfaire aux besoins
de tout le monde.
Aprs des tentatives infructueuses d'encodages taille variable (un ou plusieurs octets selon le
caractre 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 n'utilise que 16 bits). Chaque caractre est reprsent par un
nombre et un seul, comme pour l'ASCII. Cependant, avec ses 16 ou 32 bits, le jeu de caractres
Unicode est suffisamment 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 dfinis dans la
norme ISO 8859-1 (ce qui rend malheureusement non compatible la norme ISO 8859-15, plus
complte). Les autres caractres sont affects d'autres plages de codes, qui sont parfaitement
dfinies. Ainsi, l'utilisation d'Unicode permettra, terme, de n'avoir plus qu'une seule page de codes
pour tous les pays.
Malheureusement, Unicode est une volution relativement rcente, et la plupart des programmes
travaillent encore avec des caractres 8 bits, ce qui rend l'utilisation d'Unicode prmature. Linux,
quant lui, est capable de grer l'Unicode. Cependant, pour des raisons d'conomie de place, il ne
l'utilise pas directement. Il prfre en effet utiliser l'encodage UTF-8 (abrviation de l'anglais
Unicode Tranfer Format ). Cet encodage est un encodage taille variable, qui permet d'encoder les
caractres Unicode avec de un six octets selon leur emplacement dans la page de codes Unicode.
6.9.2. Principe de fonctionnement du clavier
En gnral, les claviers envoient une srie de codes l'unit centrale lorsqu'on appuie sur une touche.
Certaines touches gnrent un seul code, d'autres peuvent en produire jusqu' une dizaine. Ces codes,
que l'on appelle scancode, sont rcuprs par le pilote du clavier dans le noyau de Linux, et constituent
le dbut du traitement des saisies clavier. Les scancodes permettent normalement de dterminer avec
certitude l'vnement qui s'est produit, pour peu que l'on connaisse parfaitement le type de clavier
utilis. Malheureusement, ils sont spcifiques chaque modle de clavier, et il est difficilement
concevable pour un programme de prendre en charge les particularits de tous les claviers existants.
De plus, qui peut prvoir aujourd'hui combien de touches les claviers du futur auront, et quels
scancodes ceux-ci utiliseront ?
Linux effectue donc un travail d'uniformisation en interprtant les scancodes et en les traduisant en
dautres codes, les keycodes. Ces codes sont toujours les mmes, quel que soit le clavier utilis. Les
keycodes simplifient le traitement des donnes provenant du clavier en dfinissant 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 d'un clavier virtuel uniforme et commun
toutes les plates-formes. La gestion des vnements clavier par l'intermdiaire des keycodes est donc
beaucoup plus aise, car il n'y 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 dfinie
dans le pilote du clavier. La plupart des claviers courants sont pris en charge et, en gnral, peu de
personnes ont besoin de modifier ce type d'information. Toutefois, afin de permettre l'intgration des
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 194

claviers futurs, il est possible de complter la table de conversion des scancodes en codes de touches
virtuelles.
L'interprtation 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. C'est pour cela
qu'une autre association, qui permet de dfinir le comportement obtenir pour chaque combinaison de
codes de touches virtuelles, a t introduite. Cette correspondance est dcrite dans un fichier que l'on
appelle couramment le plan de clavier (ou keymap en anglais). Les keymaps contiennent donc, pour
chaque touche ou combinaison de touches virtuelles utilise, la dfinition d'une action effectuer ou
d'un code de caractre renvoyer. Ces codes sont renvoys en ASCII, cods selon la page de codes
dfinie 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. C'est le cas, par exemple, des touches
du curseur et des touches de suppression du clavier. Ces touches sont donc signales aux programmes
l'aide de squences de codes appeles les codes d'chappement. Les codes d'chappement sont en
ralit des squences de codes ASCII dont le premier est le code du caractre d'chappement 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 qu'un traitement particulier doit tre effectu,
comme par exemple le dplacement du curseur.



Figure 6-1. Traitements des entres clavier

Les programmes peuvent travailler n'importe lequel des trois niveaux de traitement que l'on vient de
dcrire. Les programmes qui rcuprent directement les scancodes travaillent en mode raw (ce qui
signifie en anglais que les donnes sont brutes ). Ils n'utilisent donc pas la traduction en codes de
touches virtuelles et doivent ncessairement connatre les caractristiques physiques des claviers qu'ils
veulent supporter. C'est le cas par exemple des serveurs X. Les programmes qui utilisent 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 bnficier d'une plus
grande portabilit (y compris avec d'autres systmes Unix que Linux). Dans ce cas, on dit qu'ils
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 195

travaillent en mode ASCII, ou xlate (abrviation de l'anglais translate , ce qui signifie
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 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
l'intermdiaire du fichier spcial de priphrique /dev/console. En fait, ces programmes ne savent pas
qu'ils lisent les donnes du clavier local. Pour eux, ces donnes semblent provenir d'un terminal
VT102, et ils traitent ces donnes comme celles provenant de n'importe quel terminal. Cela signifie
que ces donnes semblent provenir d'une 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 n'est en
gnral pas ncessaire de modifier ces paramtres, puisque la ligne de communication utilise est bien
entendue idale (quitte tre virtuelle, autant tre idale, non ?).
Gloups !? Que c'est compliqu ! C'est effectivement la rflexion que vous tes en droit de vous faire.
Cependant, si l'on 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 n'y a
rien dire. Grce aux keycodes, il n'est plus ncessaire de se soucier du modle de clavier utilis.
Ensuite, grce aux keymaps, il est possible de faire l'association 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. Enfin, les applications qui grent les touches spciales du clavier
peuvent interprter les codes d'chappement, 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 d'un terminal classique. Ils n'ont donc pas besoin de faire des hypothses sur l'origine des
donnes, et leur programmation en est d'autant plus simple.
Passons maintenant aux travaux pratiques. La commande kbd_mode permet de dterminer le mode de
fonctionnement du clavier. Si vous l'essayez partir d'une console, vous verrez que le clavier est en
mode ASCII. Inversement, si vous tapez cette commande partir d'une 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 l'option -s, elle permet d'afficher les scancodes lors de l'appui sur
chaque touche. Vous pourrez constater que toutes les touches ne renvoient pas le mme nombre de
codes. Vous pourrez utiliser l'option -' pour visualiser les keycodes renvoys par le noyau lors de
l'appui et du relchement des touches. Enfin, si vous utilisez l'option -a, vous verrez les codes de
touches ASCII. Vous pourrez constater que les touches spciales renvoient des squences de codes
d'chappement.
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
d'chappement. 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, c'est 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
l'appui de la squence de touches CTRL+D s'il est en mode ASCII.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 196

6.9.3. Principe de fonctionnement de l'cran de la console
Il est temps maintenant de passer au mcanisme d'affichage des caractres sur l'cran. Comme vous
avez pu le voir dans les paragraphes prcdents, le fait d'appuyer sur une touche ne fait rien d'autre 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 l'cran (heureusement, comment
taperiez-vous votre mot de passe l'abri des regards indiscrets sinon ?). En fait, l'affichage des
caractres l'cran est un des paramtres de la ligne du terminal, que l'on nomme echo. Pour la plupart
des programmes, l'cho automatique est dsactiv. Pour d'autres ce sont les applications qui, en
fonction des codes qu'elles lisent sur la console, effectuent une action. Mais la majorit de ces actions
ncessitent effectivement d'afficher des rsultats sur le moniteur. Pour raliser cela, les programmes
crivent les donnes afficher dans le fichier spcial de priphrique de la console.
Comme nous l'avons 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 n'en savent absolument rien car, pour eux, tout se
passe comme s'ils crivaient sur un terminal rel. Quoi qu'il en soit, le flux de caractres arrive au
niveau du gestionnaire de la console aprs ce traitement de base.
Comme nous l'avons dj dit plus haut, la console Linux mule un terminal VT102, et recherche donc
les codes de contrle et les squences d'chappement de ces consoles. Ces codes d'chappement sont
classiquement utiliss pour effectuer des oprations sur la console, comme par exemple le
dplacement du curseur, la prise en compte de la couleur et des attributs des caractres affichs,
l'effacement de l'cran, 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 d'chappement sont traits en tant que
caractres normaux. Le gestionnaire de la console doit donc dterminer quel caractre doit tre
imprim l'cran pour chaque code fourni par l'application. Cela n'est pas une opration facile, parce
que les polices de caractres, qui contiennent la dfinition de la reprsentation graphique des
caractres, n'utilisent pas forcment la page de codes active dans le systme. Cela signifie que les
caractres dfinis dans la police n'apparaissent 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 complique donc un peu plus les choses, puisqu'il faut utiliser une table de conversion entre la
page de codes du texte afficher et l'encodage propre de la police.
Afin de raliser cette conversion, le gestionnaire de la console Linux commence par convertir tous les
caractres qu'il reoit en Unicode . Si la console est en mode UTF-8, cette opration est immdiate,
car l'UTF-8 est un encodage Unicode. En revanche, si la console est en mode ASCII, cette opration
ncessite l'emploi d'une 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 dfinition, immdiate) ;
la deuxime table permet de faire la conversion entre les codes graphiques des terminaux
VT100 et Unicode ;
la troisime table permet d'effectuer la conversion entre la page de codes 437 et Unicode ;
et la quatrime et dernire table est rserve l'usage personnel de l'utilisateur.
La dernire table est trs utile, car elle permet de dfinir 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 197

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
slectionner 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 modifi l'aide de codes
d'chappement. Seul un jeu de caractres est actif un moment donn. Par dfaut, il s'agit 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, l'aide d'un 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 l'application sont donc convertis en Unicode (16 bits). Ils
peuvent donc tre reconvertis aisment dans l'encodage utilis par la police de caractre charge en
mmoire vido. Par dfaut, cette opration est triviale, et l'encodage cible est donc l'encodage ISO
8859-1, sauf si la quatrime table de conversion a t utilise. Dans ce cas en effet, l'encodage cible est
le mme encodage que celui utilis par l'application (tout se passe donc comme si rien ne s'tait pass).
Enfin, la dernire opration est tout simplement l'criture 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
affich.

Figure 6-2. Traitement des caractres pour l'affichage

Gloups !? Que c'est 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 l'encodage qu'il dsire, et grce un petit passage en Unicode, tous les caractres finissent par
tre reprsents par le bon symbole l'cran... En fait, le passage par Unicode donne la possibilit de
dfinir les tables de conversion des polices uniquement par rapport Unicode, et non par rapport
tous les encodages possibles que les applications peuvent utiliser. Cela permet donc l'utilisation de
polices de caractres diverses et varies, sans avoir modifier les applications.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 198

6.9.4. Configuration du clavier
Bien que les distributions modernes fournissent les outils ncessaires la configuration correcte du
clavier, vous aurez peut-tre intervenir pour le personnaliser selon vos propres dsirs. La
configuration du clavier comprend la dfinition des scancodes, la dfinition du plan de clavier, et le
rglage de la vitesse de rptition et de la touche de verrou numrique.
6.9.4.1. Dfinition de scancodes
La dfinition des scancodes est une opration qui ncessite une bonne connaissance du
fonctionnement du clavier des PC. Heureusement, rares sont les personnes qui disposent de claviers
non standards, c'est--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 n'y a donc
pas lieu de dfinir leurs scancodes. Cependant, les claviers les plus rcents disposent de touches
Internet ou Multimedia , qui ne sont pas encore reconnues par Linux en standard. L'utilisation
de ces touches se traduit donc simplement par un message d'erreur dans les traces systmes. Si vous
disposez d'un tel clavier, et que vous dsirez utiliser ces touches, vous allez devoir les dfinir dans la
table des scancodes du noyau.
Pour raliser cette opration, il faut avant tout dterminer les scancodes envoys par le clavier lors de
l'appui sur la touche dfinir. Comme nous l'avons indiqu plus haut, les scancodes peuvent tre
visualiss avec l'option -s de showkey :
showkey -s
Les scancodes sont exprims en hexadcimal, c'est--dire en base 16. Dans cette base, les lettres A F
reprsentent les chiffres manquants la base 10, c'est--dire les chiffres ayant respectivement pour
valeur 10, 11, 12, 13, 14 et 15.
En gnral, le clavier envoie un scancode lors de l'appui 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 l'appui, 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 l'on 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 dfinition des premiers claviers PC, et qui ont sensiblement le
mme rle qu'une touche dj prsente. C'est 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 prfixe 0xE0, qui indique qu'il
s'agit d'une touche tendue. Par exemple, la touche CTRL de gauche (c'est--dire la premire touche
de contrle qui ait t utilise) utilise le scancode 0x1D l'appui, et le scancode 0x9D au relchement.
La touche CTRL de droite renvoie donc la squence suivante l'appui :
0xE0 0x1D

et la squence suivante au relchement :

0xE0 0x9D
L'intrt 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.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 199

D'autres 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 simplifier le dplacement
du curseur l'cran. Initialement, on n'utilisait 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 l'utilisation de la touche Flche Haute du pav numrique tait 0x48 si le
verrou numrique n'tait 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 l'tat du verrou numrique. La
touche Flche Haute tendue renvoie donc deux squences de scancodes diffrents selon l'tat 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 l'tat du verrou numrique. Notez que l'tat du verrou numrique est maintenu en interne par
l'lectronique du clavier, indpendamment de l'tat 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.
Enfin, pour couronner le tout, certaines touches spciales utilisent une squence de scancodes
spcifiques. Par exemple, la touche Pause ne renvoie que la squence 0xE1 0x1D 0x45 0xE1 0x9D
0xC5 l'appui. Elle utilise donc le prfixe 0xE1 au lieu de 0xE0, et simule l'appui et le relchement
immdiat des touches CTRL + Verrou Numrique (ce qui tait la manire de provoquer la pause avant
l'introduction 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 prfixe 0xE0.
L'association d'un scancode inconnu un keycode se fait l'aide de l'utilitaire setkeycodes. Sa syntaxe
est la suivante :
setkeycodes scancode keycode

o scancode est le numro du scancode, exprim en hexadcimal et sans le prfixe 0x , et keycode
est bien entendu le numro de keycode attribuer cette touche. Les numros de scancodes peuvent
tre simples (par exemple 48) ou prcds de leur prfixe (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 l'appui :
0xE0 0x20

je peux lui associer le keycode 119 avec la commande suivante :

setkeycodes E020 119
Il va de soi qu'il faut s'assurer que chaque keycode n'est utilis qu'une fois ( moins, bien entendu, de
vouloir que plusieurs touches aient le mme comportement). Pour cela, vous aurez sans doute besoin
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 200

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 affich 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.9.4.2. Dfinition d'un plan de clavier
Comme nous l'avons expliqu dans les paragraphes prcdents, les plans de clavier dfinissent les
associations entre les keycodes et les caractres ou les squences d'chappement renvoys par le
clavier. Les plans de clavier permettent galement de dfinir des squences de composition, afin
d'obtenir de nouveaux caractres en composant les actions de plusieurs touches.
La dfinition d'un 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 '', l'aide des touches de majuscule et AltGr. La
deuxime partie permet d'affecter des chanes de caractres certaines touches particulires. Cette
partie peut contenir par exemple la dfinition de touches de raccourci pour les commandes les plus
utilises. En pratique cependant, elles sont souvent utilises pour dfinir des squences d'chappement
pour les touches de fonction et les touches du curseur, squences qui seront interprtes ensuite par les
applications. Enfin, la dernire partie permet de dfinir les compositions de touches pour obtenir des
caractres qui n'auraient t accessibles autrement que par des combinaisons de touches compliques.
Pour chaque touche normale du clavier, il est possible de dfinir jusqu' 256 symboles diffrents. Ces
symboles sont slectionns grce des touches de modification 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 modification diffrentes en plus de
la touche affecte (remarquez qu'avec dix doigts, on peut encore y parvenir !). Ces touches sont
rcapitules dans le tableau suivant :
Touche de
modification
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 d'espacement.
control 4 Touches Ctrl, situes aux extrmits infrieures du clavier.
alt 8 Touche Alt, situe gauche de la barre d'espacement.
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 d'un code numrique qui est une puissance de deux. Lorsqu'elles 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 dfinir effectivement 256 symboles diffrents pour chaque touche du clavier.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 201

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 n'importe 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 n'est pas ncessaire d'aller jusque l. Les plans de clavier
n'utilisent en pratique que les quatre premires touches de contrle, qui sont celles que vous
connaissez.
La dfinition des symboles accessibles pour une touche utilise la syntaxe suivant :
keycode = symbole symbole symbole ...

o keycode est le keycode qui identifie la touche en question, et symbole est un des symboles accepts
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
alphabtiques. Il existe galement des symboles pour les touches spciales comme Backspace, Delete,
Escape. Enfin, le symbole VoidSymbol permet de signaler l'absence de symbole pour la combinaison
de touches considre.
En thorie, il faut dfinir la liste des 256 symboles accessibles pour chaque touche. Le premier
symbole 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 dfinir ces 256 possibilits.
Pour simplifier le format des plans de clavier, il est possible de ne spcifier 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 s'ils sont tous VoidSymbol. Vous pouvez indiquer au dbut du
plan de clavier les valeurs des combinaisons de touches de modifications qui seront effectivement
utilises avec la syntaxe suivante :
keymaps valeurs

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 modifier que les symboles
associs certaines combinaisons de touches. Cette syntaxe est trs utile lorsque vous ne dsirez
modifier que quelques affectations de touches :
modificateur keycode = symbole
Dans cette syntaxe, modificateur est la liste des modificateurs devant intervenir dans la combinaison
de touches, et keycode et symbole sont toujours le keycode de la touche et le symbole gnrer. Les
modificateurs autoriss sont les noms des touches de modification indiques dans le tableau ci-dessus,
plus le modificateur plain, qui signifie qu'aucune touche de modification n'est utilise. Par exemple, la
ligne suivante :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 202

plain keycode 16 = q

permet d'affecter le symbole q la touche A de votre clavier, et la ligne :

alt keycode 30 = a

permet d'affecter le symbole a la combinaison de touches Alt + Q (n'essayez 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. D'autres encodages sont utilisables, mais celui-ci convient parfaitement pour
un clavier franais.
Comme nous l'avons dit plus haut, la deuxime partie d'un plan de clavier permet d'affecter des
chanes de caractres certaines touches. Cela est facilement ralisable, avec la syntaxe suivante :
string symbole = "chane"

o symbole est le nom d'un 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 d'chappement :

\"
Vous pouvez galement spcifier des caractres directement l'aide de leur valeur en base huit,
l'aide de la syntaxe suivante :
\0valeur

o valeur est la valeur du caractre. Bien entendu, l'antislash tant utilis comme caractre
d'chappement, il doit lui-mme tre prcd d'un caractre d'chappement si l'on dsire l'utiliser dans
une chane de caractres :

\\
Ainsi, si l'on veut faire en sorte que la touche F4 affiche la chane de caractres Coucou , il suffit
d'utiliser la ligne suivante dans le plan de clavier :
string F4 = "Coucou"
Bien entendu, les chanes de caractres les plus utiles sont celles qui dfinissent les squences
d'chappement pour les touches spciales. Par exemple, la dfinition de la touche Page Haut est la
suivante :
string PageUp = "\033[5~"
Vous pouvez reconnatre ces squences d'chappement la prsence du caractre octal 033, soit 27 en
dcimal, qui n'est rien d'autre que le caractre Escape dans le jeu de caractres ISO 8859-1. Ne vous
inquitez par pour l'instant de la forme apparemment complique de ces squences d'chappement,
nous verrons plus loin comment elles sont utilises.
Enfin, les plans de clavier contiennent la dfinition des compositions. Les compositions de touches
sont accessibles l'aide d'une touche spciale dite de composition, dont le symbole est Compose dans
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 203

le plan de clavier (il est donc ncessaire que ce symbole soit affect l'une des touches du clavier pour
utiliser les compositions). Lorsqu'on 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 dfinit 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...
D'une manire gnrale, vous pourrez trouver de plus amples renseignements concernant les plans de
clavier dans la page de man keymaps.
Il est long et difficile de crer un plan de clavier de toutes pices. Heureusement, encore une fois, cette
description n'tait que didactique. Vous n'aurez certainement mme pas modifier votre plan de
clavier (sauf si vous voulez faire des expriences), car des plans de claviers prdfinis sont fournis
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 d'accder toutes les
touches utilises par le franais, plus la plupart des touches utilises en Europe. Il utilise l'encodage
ISO 8859-15, afin d'avoir accs aux rares caractres manquants dans l'encodage ISO 8859-1.
Le chargement d'un plan de clavier est trs simple. Il suffit de taper la commande suivante sous le
compte root :
loadkeys keymap

o keymap est le nom du fichier contenant le plan de clavier utiliser. Si l'on ne spcifie pas de
fichier, loadkey attend que vous tapiez la spcification des touches directement. Vous pourrez valider
en gnrant le caractre EOF (abrviation de End Of File , ce qui signifie Fin de fichier ) l'aide
de la combinaison de touche CTRL + D, ou abandonner avec le classique CTRL + C.
En gnral, les distributions utilisent la commande loadkey dans les fichiers d'initialisation du
systme, pour charger le plan de clavier que vous avez choisi l'installation ds le dmarrage. Il est
recommand de ne modifier le plan de clavier courant que par l'intermdiaire du programme de
configuration du systme fourni avec votre distribution.
6.9.4.3. Modification des paramtres du clavier
Il nous faut encore voir deux petits utilitaires permettant de fixer quelques paramtres du clavier pour
finir notre tour d'horizon de ce priphrique. Le premier de ces outils permet de manipuler l'tat des
diodes lumineuses qui indiquent si le verrou numrique, le verrou des majuscules ou l'arrt dfilement
sont actifs. Cet utilitaire se nomme logiquement setleds, et il permet non seulement de fixer l'tat de
ces diodes, mais galement l'tat du clavier. Rappelons en effet que les diodes peuvent tre
dsynchronises par rapport l'tat rel du clavier. Ce cas de figure peut se produire si l'on passe d'un
terminal X un terminal en mode console, tout simplement parce que les serveurs X ne savent pas
comment dterminer l'tat du clavier sur une console afin de le restaurer.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 204

La syntaxe de setleds est la suivante :
setleds -D num | caps | scroll

o num, caps et scroll sont des options permettant de prciser respectivement l'tat des verrous
numriques, majuscules et dfilement. Ces options sont de la forme +num, -num pour le verrou
numrique, et de forme similaire pour les autres verrous. Comme leur syntaxe l'indique, elles
permettent d'enclencher ou de dsenclencher l'tat des verrous correspondants du clavier.
L'tat 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. L'option -
permet de rendre les changements permanents pour le terminal slectionn. Ainsi, si ce terminal est
rinitialis, la modification sera conserve. C'est en gnral l'effet dsir. Sachez qu'il est galement
possible d'effectuer une modification temporaire, et de ne modifier que l'affichage des diodes (sans
changer l'tat des verrous).
Il est recommand de placer les quelques lignes suivantes dans les fichiers d'initialisation de votre
systme afin d'activer le verrou numrique pour tous les terminaux, si votre distribution ne vous
permet pas de le faire par l'intermdiaire de son programme de configuration :
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.
Le deuxime utilitaire est kbdrate. Sa fonction est de fixer les paramtres de dlai d'attente avant
rptition lorsqu'on maintient une touche enfonce, ainsi que la vitesse de rptition utilise une fois
que ce dlai d'attente 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 d'attente avant le dbut des rptitions de la touche
enfonce. L'option -s indique kbdrate de ne pas afficher de messages pendant l'excution de la
commande. Les dlais d'attente spcifis 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.9.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 l'affichage 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 bnficier d'un
encodage adapt la langue franaise, et pour bnficier d'amliorations esthtiques ventuelles.
Linux est fourni avec un certain nombre de fichiers de polices, qui sont normalement installes dans le
rpertoire /usr/lib/kbd/consolefonts. Comme vous pourrez le constater si vous y jetez un coup d'il, 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 l'encodage ISO 8859-15, et contient donc tous les symboles utiliss en Europe. Il est
recommand, mais non ncessaire, d'utiliser une des polices encodes en ISO 8859-1 ou en ISO 8859-
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 205

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 l'utilitaire setfont. La syntaxe de ce programme
est trs simple :
setfont police

o police est le fichier de police charger. Si vous ne spcifiez aucun fichier de police, la police par
dfaut sera charge.
Notez que les fichiers de polices peuvent utiliser un encodage particulier spcifique, qui ne correspond
aucune des tables de conversion prdfinies du noyau. Pour ces polices, il est ncessaire de spcifier
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 dfinir les codes qui permettront
d'accder directement aux caractres de la police. L'association entre les codes de caractres de
l'application et leurs descriptions dans la police de caractres est donc ralise grce ces tables de
conversion.
Vous pouvez charger une table de conversion spcifique l'aide de l'utilitaire mapscrn. Cet utilitaire
prend en ligne de commande un fichier contenant la table de conversion, et charge cette dernire dans
la quatrime table de conversion du noyau (c'est--dire la table rserve l'utilisateur) :
mapscrn fichier
(o fichier est le fichier contenant la description de la table de conversion).
Notez que l'utilitaire mapscrn charge la table de conversion, mais ne s'assure pas que le jeu de
caractres courant utilise cette table. Par consquent, vous aurez sans doute utiliser les codes
d'chappement \033(K et \033)K pour faire pointer respectivement les jeux de caractres G0 et G1 sur
la quatrime table. Ces codes d'chappement peuvent tre saisis l'aide de la commande cat :
cat
Il vous faudra alors taper sur la touche Echap, puis saisir (K ou )K , at enfin signaler la fin de
fichier avec un CTRL + D. Faites bien attentiol ce(que vous fates : en cas d'erreur, le jeu de
caractres utilis peut rendre l'cran totalement illisible. Si cela devait se produire, vous devrez taper
l'aveugle la commande reset. Cette table s'assure que le jeu de caractres actif est le jeu de caractres
G0, et que celui-ci utilise la premare table de conversion. Voes pourrez galement recharger la police
par dfaut l'aide 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 s'assure enfin que le jeux de caractres
G0 soit actif et utilise cette table. Ainsi, l'utilisation de mapscrn est devenue facultative.
La dernire tape dans la configuration 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
c'est elle qui indique l'emplacement des caractres de la police utiliser pour chaque code Unicode.
Ces tables dpendent donc de l'encodage 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 :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 206

loadunimap fichier

o fichier est un fichier de conversion appropri. Vous trouverez de tels fichiers dans le rpertoire
/usr/lib/kbd/consoletrans. Les fichiers proposs permettent d'utiliser les polices de caractres encodes
selon les encodages les plus courants.
Bien entendu, certaines polices disposent de leur propre table d'encodage. Encore une fois, l'utilisation
de loadunimap est rendue facultative par setfont, qui se charge d'effectuer tout le travail. C'est
notamment le cas pour les polices fr-latin0.psfu.gz et fr-latin1.psfu.gz, dont le u en fin d'extension
indique la prsence de la table de conversion Unicode.
6.9.6. Configuration des paramtres du terminal
La configuration 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 l'intermdiaire d'une ligne de communication. En gnral, les
lignes de communication utilises pour les terminaux sont des lignes srie, c'est--dire des lignes sur
lesquelles les donnes sont envoyes sous la forme de petits paquets de 5 8 bits, et contrles par
d'autres bits ventuellement facultatifs (bit de stop et bit de parit). Il va de soi que tous les terminaux
ne sont pas identiques, et qu'un certain nombre de paramtres doivent tre dfinis tant au niveau des
terminaux qu'au niveau des lignes de communication utilises.
Ces paramtres peuvent tre fixs avec la commande stty. Leur nombre interdit ici une description
exhaustive, d'autant plus que pour un terminal local, ils sont tous initialiss des valeurs par dfaut
correctes, et vous n'aurez pas les modifier. 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
communication d'un terminal avec l'option -a de stty :
stty -a
Comme vous pourrez le constater, le nombre des options utilises est assez impressionnant. Sont
dfinis, 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 co1umns), les caractres de contrle
affects un certain nombre d'actions (comme, par exemple, le caractre ^Z , accessible par la
combinaison de touches CTRL + Z, qui permet de suspendre l'excution 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 l'on tape).
Parmi ces paramtres, les plus intressants sont sans doute ceux dfinissant les actions associes aux
diffrentes touches de contrle. Vous pourrez modifier ces paramtres avec la syntaxe suivante :
stty action caractre

o action est l'une des actions gres par stty, comme par exemple susp pour suspendre le processus
en cours, inr pour le tuer, etc. Remarquez que l'action 'i11 n'a rien voir avec la gestion des
signaux des processus. Elle permet simplement d'effacer la ligne courante du terminal.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 207

6.9.7. Description des terminaux
Le dernier maillon de la chane de gestion des caractres est bien entendu les applications. La plupart
des applications sont capables de traiter les caractres simples comme les lettres de l'alphabet, les
chiffres et la ponctuation. Cependant, il n'en va pas de mme pour les codes d'chappement des
terminaux. Comme nous l'avons vu, certaines touches sont programmes pour renvoyer des codes
d'chappement dans le plan de clavier. Mais le gestionnaire de la console est galement capable
d'interprter certains codes d'chappements, afin d'effectuer des actions spcifiques. Par exemple, les
touches du curseur mettent des codes d'chappement spciaux, et il est du ressort de chaque
programme de reconnatre ces codes et d'agir en consquence. De mme, les programmes peuvent
envoyer des codes d'chappement la console pour dplacer le curseur affich, effacer l'cran,
effectuer un dfilement, etc.
Le malheur, c'est que les codes d'chappement 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 d'chappement doivent tre
utiliss pour effectuer telle ou telle action.
C'est pour ces diverses raisons que les systmes Unix disposent d'une base de donnes de dfinition
des terminaux. Cette base de donne contient tous les codes d'chappement que chaque type de
terminal est capable de grer, dcrits d'une manire uniforme. Ainsi, les programmes dsirant grer
correctement les terminaux n'ont qu' consulter cette base de donnes pour interprter et rcuprer les
codes d'chappement utiliss par le terminal. Historiquement, la dfinition des terminaux tait ralise
dans le fichier de configuration /etc/termcap. Ce fichier est obsolte et a t remplac par la base de
donnes terminfo, que tous les programmes modernes doivent prsent utiliser. Cependant, le fichier
de configuration /etc/termcap a t conserv par compatibilit avec les vieux programmes qui
l'utilisent encore.
Le fichier termcap comprend une ligne pour chaque type de terminal dcrit. Cette ligne est constitue
d'un 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 dfinitions des variables
contenant les squences d'chappement 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 dfinitions des variables. Chaque variable est dfinie selon la syntaxe suivante :
variable=squence

o variable est le nom de la variable, et squence est la squence d'chappement 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 d'galit est remplac par un caractre dise ('#').
Un certain nombre de variables peuvent tre dfinies pour chaque terminal. Ce sont ces variables qui
sont utilises par les programmes pour retrouver les squences d'chappement du terminal. Par
consquent, les noms de ces variables sont fixs une fois pour toutes, et elles reprsentent toujours la
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 208

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 fichier /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 l'aide du caractre de
tabulation.
Vous trouverez ci-dessous un exemple de dfinition 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:
Cette ligne permet de dfinir le terminal associ la console Linux. Vous pourrez par exemple
reconnatre le nombre de colonnes et de lignes (variables co et li), ainsi que les codes d'chappement
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 d'chappement utilisable pour effacer
l'cran et faire revenir le curseur en haut gauche (squence d'chappement Esc [ H Esc [ J ).
Comme il l'a dj t dit plus haut, la liste complte des variables peut tre obtenue en consultant la
page de manuel termcap, et ce fichier ne sera pas dcrit plus en dtail ici.
La base de donnes terminfo a t introduite pour combler certaines limitations du fichier termcap. Si
le principe de fonctionnement est presque le mme, les informations fournies tiennent compte des
terminaux plus rcents et de nouvelles fonctionnalits. Cela signifie en pratique que de nouvelles
variables ont t dfinies pour dcrire les nouveaux terminaux. Inversement, certaines variables de
termcap ont disparu parce qu'elles devenaient obsoltes, et ont t remplaces par des variables
quivalentes de terminfo.
La principale diffrence entre terminfo et termcap est que la description des terminaux n'est plus
stocke dans un fichier de configuration en mode texte. Toutes les donnes sont dsormais stockes
dans des fichiers binaires, qui peuvent tre gnrs l'aide du programme tic. Ces fichiers binaires
sont usuellement placs dans les sous-rpertoires du rpertoire /usr/share/terminfo/. En fait, le nombre
de fichiers de description est tellement grand qu'ils ont t regroups par ordre alphabtique. Ainsi, le
rpertoire /usr/share/terminfo contient des sous-rpertoires dont les noms sont les premires lettres des
fichiers de description, et chaque fichier de description est situ dans le rpertoire correspondant. Par
exemple, le fichier 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 commence par 'l'.
Note : En fait, les fichiers de description de terminaux peuvent tre placs un autre emplacement que
l'emplacement par dfaut. Les bibliothques de programme utilisant les informations de terminfo
cherchent en effet en premier dans le chemin rfrenc par la variable d'environnement TERMINEO,
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 209

puis dans le rpertoire .terminfo du rpertoire de l'utilisateur. Ce n'est que si ces deux recherches
chouent qu'elles utilisent les informations du rpertoire par dfaut.
Comme nous l'avons dit, les fichiers de description sont des fichiers binaires, qui ont t compils
l'aide du compilateur tic. Cependant, vous pouvez parfaitement visualiser le contenu de ces fichiers ou
comparer deux fichiers l'aide de l'utilitaire infocmp. Par exemple, vous pouvez visualiser sous une
forme lisible les informations du fichier 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,
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 fichier /etc/termcap. Les principales diffrences sont que les diffrents champs
sont spars par des virgules (',') au lieu du caractre deux points (':'), et qu'il est possible de les
rpartir sur plusieurs lignes physiques (il est donc inutile d'utiliser le caractre antislash en fin de ligne
physique pour indiquer la continuation de la ligne logique). De plus, le nom des variables utilises
dans les fichiers terminfo n'est pas le mme a priori. Cependant, le principe d'utilisation de ces
variables reste le mme, chacune d'entre elles permet de dfinir une des fonctionnalits gres par le
terminal et de dfinir la squence d'chappement ncessaire l'obtention de cette fonctionnalit si
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 210

ncessaire. Vous pourrez trouver la liste exhaustive des variables utilisables dans la page de manuel
terminfo. Le format des fichiers de configuration de terminfo ne sera donc pas dcrit plus en dtail
dans ce document.
Qu'ils 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 l'utiliser dans
ces bases de donnes. C'est prcisment ce quoi sert la variable d'environnement 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 fixer 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 fichier termcap.
Cette liste peut tre obtenue plus facilement pour terminfo, l'aide de l'utilitaire toe (abrviation de
l'anglais Table Of terminfo Entry ).
Bien entendu, vous n'aurez dfinir la valeur de TERM que si cette variable d'environnement n'est pas
correctement dfinie, ce qui est trs rare. En fait, cela ne peut se produire que lors d'une connexion
distance sur un autre ordinateur, dont les terminaux ne sont pas de type Linux.
6.9.8. Paramtrage des applications
En thorie, la description du terminal courant fournie par les bases de donnes termcap ou terminfo est
suffisante pour faire fonctionner correctement la plupart des applications. En particulier, les
programmes qui utilisent les bibliothques de fonctions de manipulation des terminaux sont capables
d'utiliser ces informations. C'est le cas par exemple de tous les programmes qui utilisent les
bibliothques curses ou ncurses , car celles-ci s'appuient 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 configuration spcifique doit tre effectue, souvent pour
chaque terminal, en prcisant les codes d'chappement utiliser dans leurs fichiers de configuration.
On remarquera la prsence du shell bash , de l'diteur vi et du programme de pagination less
dans cette catgorie de logiciels. Comme ce sont les logiciels les plus couramment utiliss, il est
indispensable d'indiquer comment les configurer pour une utilisation correcte.
6.9.8.1. Configuration du clavier pour la bibliothque readline
Un certain nombre d'applications, dont le shell bash , utilisent la libraire GNU readline pour
obtenir les lignes de commandes saisies par l'utilisateur. Tous ces programmes peuvent donc tre
configurs de la mme manire, grce au fichier de configuration de la bibliothque readline.
Cette bibliothque recherche son fichier de configuration en premier l'emplacement indiqu par la
variable d'environnement INRUTRC. Si cette variable d'environnement n'est pas dfinie, le fichier de
configuration ~/.inputrc est lu pour dterminer les squences d'chappement utiliser. Il est donc
recommand de crer un fichier de configuration gnral /etc/inputrc et de dfinir la variable
d'environnement INRUTRC afin de dfinir des paramtres communs tous les utilisateurs. Vous
pouvez galement recopier ce fichier 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 fichier inputrc :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 211

# 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 d'chappement associs aux touches du curseur :
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[2~": overwrite-mode
"\e[3~": delete-char
"\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

# Redfinit les codes d'chappement pour l'mulateur de terminal xterm :
$if term=xterm
"\e[H": beginning-of-line
"\e[F": end-of-line
$endif
Ce fichier commence par autoriser le traitement des caractres dont le bit meta , c'est--dire le
huitime bit, est positionn. C'est en particulier le cas de tous les caractres accentus dans les
principales pages de codes ; ces options sont donc ncessaires pour pouvoir utiliser ces caractres dans
le shell. La suite du fichier dfinit les actions associes chaque code d'chappement du terminal. Le
caractre d'chappement est reprsent ici par la chane de caractres \e . Comme les codes
d'chappement sont diffrents pour la console et pour les mulateurs de terminaux de XWindow, il est
ncessaire de les redfinir en fonction de la nature du terminal. Ce fichier prsente un exemple
d'expression conditionnelle sur le nom du terminal, tel qu'indiqu dans la variable d'environnement
TERM, afin de ne redfinir ces codes que pour ces terminaux.
6.9.8.2. Configuration du clavier pour vi
L'diteur en ligne de commande vi n'est pas rput pour tre agrable utiliser. Cela provient
essentiellement de sa distinction entre les modes de commande, d'dition et de visualisation. Mais cela
n'est pas suffisant 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.
L'diteur vim peut bien entendu tre parfaitement compatible avec vi afin ne pas drouter les habitus
de vi. Mais il dispose en plus de fonctionnalits avances qui en font un outil extrmement
configurable, 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
l'utiliser 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 configuration de vim sont stockes dans deux fichiers. Le premier fichier est le fichier
de configuration commun tous les utilisateurs, vimrc. Ce fichier peut tre plac soit dans le rpertoire
/etc/, soit dans le rpertoire /usr/share/vim/, selon votre distribution. Le deuxime fichier est le fichier
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 212

de prfrences personnelles de chaque utilisateur, et se nomme .vimrc. Il est normalement plac dans
le rpertoire personnel de l'utilisateur.
Plusieurs types d'options peuvent tre indiqus dans ces fichiers de configuration. Les premires
associent les actions effectuer aux codes d'chappement gnrs par les touches du curseur. Les
autres spcifient simplement le comportement de l'diteur et le paramtrage de ses principales
fonctionnalits. Vous trouverez ci-dessous les principales options que vous pourrez ajouter votre
fichier de configuration vimrc. Ces options rendront sans doute l'utilisation de vim beaucoup plus
agrable.
" Exemple d'options 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


" 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 213

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
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 d'insertion 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 l'indentation automatique dans les fichiers C et C++
" (pour les programmeurs) :
set cindent
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 214


" 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 fichier de configuration, dont
le caractre de contrle ^[ , qui reprsente le caractre d'chappement. 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 qu'elles reprsentent dans le fichier de configuration. Pour saisir ces
caractres spciaux, vous devrez passer en mode insertion dans vi, puis utiliser la combinaison de
touches CTRL+V. Ce raccourci permet d'indiquer vi qu'il doit insrer les codes d'chappement
directement issus du clavier, sans les interprter. Vous pourrez alors taper la squence de touches
gnrant le caractre de contrle ou la squence d'chappement dsire. Par exemple, vous pourrez
obtenir le caractre ^H en tapant la combinaison de touches CTRL+H, et le caractre ^? en
appuyant sur la touche Backspace (retour arrire). Les caractres d'chappement 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 d'chappement. Mais certaines options ne fonctionnent pas avec ces notations,
et je vous les dconseille.
Vous pouvez bien entendu ajouter d'autres options dans ce fichier de configuration. En pratique, toutes
les options utilisables dans le mode de commande de vim peuvent tre fixes dfinitivement dans ce
fichier. Vous obtiendrez de l'aide sur ces options grce la commande :help de vim.
6.9.8.3. Configuration du clavier pour less
Le programme de pagination less est naturellement bien plus agrable utiliser que son anctre more,
puisqu'il permet de revenir sur les pages dj consultes. Cependant, il peut le devenir encore plus si
l'on s'arrange pour qu'il reconnaisse les touches du curseur.
Le programme less lit ses informations de configuration dans un fichier binaire dont l'emplacement est
spcifi par la variable d'environnement LESSKEY. Si cette variable d'environnement n'est pas dfinie,
less utilise le fichier de configuration .less du rpertoire personnel de l'utilisateur. Ce fichier binaire
contient les associations entre les squences d'chappement du terminal et les actions effectues par
less. Il est gnr par le compilateur lesskey, partir d'un fichier de configuration textuel classique.
Ce fichier de configuration comprend plusieurs sections, qui permettent de dfinir les touches utilises
en mode de commande, les touches utilises en mode d'dition de lignes (par exemple dans une
commande de recherche), et enfin les variables d'environnement utilises par less. Vous trouverez ci-
dessous un exemple de fichier de configuration pour less. Vous trouverez de plus amples
renseignements sur les actions qui peuvent tre associes aux squences d'chappement et aux
caractres de contrle dans la page de manuel lesskey.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 215

# 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


# 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 .
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 216



# Troisime section :

#env
LESSCHARSET=latin1
Conformment un usage courant, les commentaires sont introduits par le caractre dise ('#') dans ce
fichier de configuration. Cependant, certains commentaires sont utiliss pour identifier le dbut des
trois sections du fichier. Il s'agit des commentaires #command , #line-edit et #env . Il ne faut
donc surtout pas supprimer ces commentaires dans votre fichier de configuration.
Encore une fois, le caractre d'chappement 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 fichier
de configuration /etc/vimrc, ces notations peuvent tre utilises directement dans le fichier de
configuration de less.
Ce fichier de configuration pourra tre compil avec le programme lesskey afin de gnrer le fichier
binaire utilis par less. Pour cela, il faudra simplement utiliser la syntaxe suivante :
lesskey fichier

o fichier est le nom du fichier de configuration compiler. Le fichier binaire gnr est par dfaut
celui rfrenc par la variable d'environnement LESSKEY. Si cette variable n'est pas dfinie, un fichier
.less sera cr dans le rpertoire personnel de l'utilisateur.
6.9.9. Configuration de la souris
L'installation 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). Aujourd'hui, 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 dfinit une interface standard
pour toutes les souris. De plus, il permet de dgager un des ports srie, ce qui simplifie la
configuration 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 l'on ne trouve quasiment plus
prsent. Ces souris pouvaient se connecter sur des cartes spciales voire, parfois, sur la carte
graphique.
Pour que l'installation de la souris se fasse correctement, il faut s'assurer que les options concernant la
souris ait bien t dfinies dans la configuration du noyau de Linux. Cela n'est pas ncessaire pour les
souris srie. Vous pouvez consulter la Section 7.3 pour plus de dtails sur la configuration 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 d'utiliser la souris en mode texte. La
configuration de la souris pour XWindow sera vue dans le Chapitre 10.
La configuration de gpm se fait normalement par l'intermdiaire du programme de configuration de
votre distribution. Lorsqu'on n'utilise pas XWindow, gpm est lanc automatiquement au dmarrage. Il
se peut que votre programme de configuration 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 d'une petite roue entre les deux boutons, et
permettant de faire dfiler le contenu des fentres), le type de souris utiliser est imps2 et non
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 217

simplement ps2 . Pour avoir la liste des types de souris grs par gpm, il suffit 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 fichier spcial de
priphrique grant votre souris.
6.10. Configuration de l'imprimante
Il existe deux systmes d'impression concurrents sous Linux : LPRng ( Line Printer Next
Generation ) et CUPS ( Common Unix Printing System ). LPRng est une volution du systme
initial, LPR, qui est devenu trs vite obsolte en raison de l'volution des technologies d'impression.
En effet, celui-ci a t conu l'poque o les imprimantes taient encore des imprimantes matricielles
et ne pouvaient imprimer qu'en noir et blanc. CUPS, quant lui, a t cr pour fournir une
infrastructure compltement nouvelle et pour s'affranchir des limitations de LPRng. C'est donc la
solution d'avenir, mais il n'est pas rare de trouver encore des systmes bass sur LPRng. D'autre part,
la compatibilit au niveau des commandes d'impression est assure par CUPS, ce qui fait que la
prsentation de LPRng n'est pas superflue.
Quelle que soit la technologie d'impression utilise, l'imprimante reste gnralement accessible par un
port local. En effet, la plupart des imprimantes sont connectes sur le port parallle ou sur un port USB
(les imprimantes professionnelles mises part, celles-ci disposant gnralement d'une interface
rseau). Nous supposerons donc dans la suite de ce document que l'imprimante est connecte soit sur
le port parallle (accessible via le fichier spcial de priphrique /dev/lp0), soit sur un port USB
(accessible via le fichier /dev/usb/lp0).
6.10.1. Concepts de base de l'impression sous Unix
La principale difficult lors de l'impression d'un document est de le convertir de son propre format de
fichier vers un format de donnes que l'imprimante est capable de comprendre. Le problme ici est
qu'il existe une multitude de formats de documents et une multitude d'applications qui peuvent les
gnrer, d'une part, et, d'autre part, que chaque fabricant d'imprimantes a dvelopp ses propres jeux
de commandes pour ses imprimantes. Il existe bien un standard pour les imprimantes laser avec le
langage PostScript dvelopp par Adobe, mais ce langage n'est pas utilisable avec la majorit des
imprimantes jet d'encre. De fait, la plupart des applications sont capables de gnrer un fichier
PostScript lors d'une impression, mais ce fichier doit encore tre traduit dans le langage spcifique de
l'imprimante effectivement installe.
Il est donc toujours possible d'envoyer directement un fichier imprimer l'imprimante, en le
recopiant directement sur le fichier spcial de priphrique de l'imprimante, mais cette technique
suppose que ce fichier soit gnr directement dans le langage de l'imprimante. Ceci ne peut que
compliquer les applications qui permettent l'impression, et les empcher de fonctionner ultrieurement
avec de nouvelles imprimantes dont le langage leur sera inconnu. Cette technique ne convient donc, en
gnral, que pour des fichiers textes simples. De plus, cette solution ne convient pas dans un systme
multitche et multi-utilisateur, puisque un seul programme seulement peut accder l'imprimante un
instant donn.
Les systmes d'impression ont donc pour principal but de rsoudre ces problmes. La multiplicit des
formats de fichiers et des langages d'imprimante est prise en charge par tout un jeu de programmes de
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 218

conversion que l'on appelle les filtres. Les filtres ne sont en fait rien d'autre que des programmes qui
reoivent un fichier en entre et qui fournissent la traduction de ce fichier dans un autre format en
sortie. Les systmes d'impression LPRNG et CUPS fournissent un certains nombres de filtres, qui
peuvent tre agencs afin de permettre l'impression de n'importe quel fichier sur l'importe quelle
imprimante.
Enfin, en ce qui concerne le partage des ressources d'impression, les systmes d'impression utilisent
gnralement un mcanisme de files d'attente ( spool en anglais). Tous les travaux d'impression
soumis sont placs dans une file d'attente, et attendent leur tour pour tre envoys l'imprimante
associe cette file. Une fois que l'impression est termine, les travaux sont supprims de la file.
Ainsi, un seul programme accde l'imprimante : le sous-systme d'impression. Notez qu'il est
gnralement possible de dfinir plusieurs files d'attentes sur une mme imprimante, selon la nature du
travail effectuer. Par exemple, une file peut se charger des documents textes, et une autre des
documents graphiques en couleur. Bien entendu, le sous-systme d'impression contrle tous les accs
l'imprimante et assure qu'un seul document est en cours d'impression chaque instant.
6.10.2. Le systme d'impression LPRng
Le systme d'impression LPRng est constitu d'un dmon nomm lpd et d'un jeu de commandes
permettant de communiquer avec lui pour soumettre les travaux d'impression, visualiser ceux qui sont
en attente ou en cours d'impression et les annuler.
6.10.2.1. Le mcanisme des filtres APSFILTER
Sous Linux, le mcanisme de filtres de LPRng est gnralement APSFILTER. Ce mcanisme est
profondment orient vers le langage de description de pages PostScript, initialement invent par
Adobe et que nombre d'imprimantes laser comprennent. En fait, il s'agit d'un vritable langage de
programmation, qui permet de programmer les priphriques dont la vocation est d'afficher ou
d'imprimer des documents. Techniquement parlant, PostScript permet d'obtenir une qualit
d'impression irrprochable, car c'est l'imprimante elle-mme qui dessine la page imprimer.
APSFILTER utilise donc un premier jeu de filtres pour convertir les fichiers imprimer en PostScript
s'ils ne sont pas dj dans ce format. Le langage PostScript apparat donc comme le langage
d'impression universel, que toutes les imprimantes sont supposes comprendre...
Le problme, c'est que ce n'est pas le cas. En particulier, les imprimantes jet d'encre ne comprennent
gnralement pas le PostScript. Aussi APSFILTER utilise-t-il un second jeu de filtres, capables de
convertir le PostScript dans le langage graphique de l'imprimante (si l'imprimante n'est pas une
imprimante PostScript, bien entendu). APSFILTER utilise pour cela un interprteur PostScript . Un
interprteur PostScript est un programme capable de comprendre les fichiers PostScript et de les
convertir dans le format compris par l'imprimante. L'interprteur couramment utilis sous Linux est
GhostScript, parce que c'est un logiciel libre (cependant, la version courante est toujours
commerciale). Il est galement capable d'afficher les fichiers PostScript sous XWindow, et de grer la
plupart des imprimantes du march.
L'avantage 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, puisqu'ils n'ont qu'un seul format grer. Bon nombre d'applications gnrent
directement des fichiers PostScript, qui sont donc envoys directement GhostScript pour l'impression
dfinitive.
Figure 6-3. Filtres d'impression et imprimantes PostScript
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 219


Comme on le voit, avec APSFILTER, le langage d'impression universel est le langage PostScript.
Bien entendu, cela est idal si l'on dispose effectivement d'une imprimante PostScript, mais mme
dans le cas contraire, les impressions se font parfaitement grce GhostScript.
6.10.2.2. Installation des filtres et configuration des files d'impression
Les distributions modernes fournissent toutes un outil permettant d'effectuer la configuration du sous-
systme d'impression. Il est videmment recommand d'utiliser ces outils, car le rsultat est assur et
la vie en est d'autant plus facile. De plus, les distributions peuvent fournir des filtres complmentaires
que seuls ces outils connaissent et sont capables d'installer.
Si le jeu de filtres utilis de votre distribution est APSFILTER, vous pourrez installer votre
imprimante manuellement en excutant le programme SETUP du rpertoire /usr/share/apsfilter/.
Ce programme est rellement affreux utiliser car il s'agit en ralit d'un script, mais il effectue
correctement son travail. Ds son dmarrage, il vous demande d'accepter la licence logicielle (la
licence GPL avec une forte invitation envoyer une carte postale l'auteur, qui les collectionne). La
question suivante est donc si vous dsirez obtenir l'adresse postale de l'auteur. Une fois ces deux
questions passes, le programme d'installation commence rellement.
Le programme vous demande de confirmer les droits sur le rpertoire des fichiers d'impression en
cours, puis, si vous le faites effectivement, si vous dsirez complter le fichier de configuration de
LPRNG /etc/printcap ou en crer un compltement nouveau. Vient ensuite le menu de configuration
des imprimantes :
Figure 6-4. Filtres d'impression et imprimantes PostScript
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 220


La premire option vous permet de choisir le pilote de l'imprimante, qui donc en gnral est un des
pilotes fournis avec l'interprteur GhostScript. Vous devez slectionner le pilote de votre imprimante
ou, dfaut, celui de l'imprimante qui s'en rapproche le plus. La deuxime option vous permet de
slectionner l'interface de l'imprimante. Vous pourrez indiquer le port de l'imprimante ou, s'il s'agit
d'une imprimante rseau, la manire d'y accder. Les autres options du menu quant elles sont
relativement simples, et vous permettront respectivement de slectionner le format du papier, la qualit
et le mode d'impression, ainsi que la rsolution de l'imprimante.
Vous pourrez (et devriez) tester la configuration ainsi dfinie avec l'option 'T'. Si le rsultat vous
convient, installez l'imprimante avec l'option 'I'. Vous pouvez installer plusieurs imprimantes ou
plusieurs files d'impression pour la mme imprimante en rptant les tapes prcdentes. Au final,
terminez l'installation avec l'option 'Q', et envoyez une carte postale l'auteur du logiciel.
6.10.2.3. Commandes d'impression
La commande d'impression de LPRng est la classique commande lpr (abrviation de l'anglais off
Line PRint , ce qui signifie impression diffre ). Cette commande est trs simple utiliser,
comme le montre la syntaxe suivante :
lpr fichier

o fichier est le nom du fichier imprimer. Cette commande se contente de placer le fichier
imprimer dans un rpertoire affect la file d'attente des travaux d'impression. Le travail d'impression
est ensuite effectu par le dmon lpd, qui fait passer chaque fichier imprimer travers la srie de
filtres pour le convertir dans le langage de l'imprimante, puis qui alimente l'imprimante.
La liste des travaux d'impression 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 l'abandonner l'aide de la commande lprm.
Enfin, pour consulter et contrler l'tat des files d'impression, on peut utiliser la commande lpc. Cette
commande peut prendre des options en ligne de commande afin de prciser l'opration effectuer. Par
exemple, l'option saus permet d'obtenir l'tat de chacune des files d'impression. Les autres options
permettent d'arrter le travail en cours, de le suspendre, de dsactiver l'imprimante pour les travaux
suivants, et inversement de relancer les travaux d'impression sur cette file.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 221

6.10.2.4. Description du fichier /etc/printcap
Le dmon lpd utilise le fichier de configuration /etc/printcap pour dterminer l'ensemble des files
d'impression existantes et quels filtres doivent tre utiliss. Ce fichier est gnr automatiquement par
les utilitaires des distributions ou, dfaut, par le script d'installation d'APSFILTER. Toutefois,
comme il est bon de savoir ce qui se passe lorsqu'une commande d'impression est envoye au dmon
lpd, une brve description de ce fichier sera faite dans cette section.
Chaque file est dcrite par une ligne du fichier /etc/printcap et une seule. 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 d'chappement '\' la
fin de chaque ligne, sauf la dernire.
Le premier champ de la description d'une file d'attente est une liste des noms sous lesquels cette file
sera connue. Les diffrents noms sont crits les uns la suite des autres, spars par une barre verticale
(caractre '|').
Les champs suivants dcrivent l'imprimante utiliser, ainsi que les options gnrales de la file
d'attente. Ces champs utilisent tous la mme syntaxe :
option = valeur
Il existe un grand nombre d'options, nombre d'entre elles sont facultatives. Cependant, il est impratif
que le dmon lpd puisse trouver l'imprimante utiliser. Par consquent, il faut lui fournir au moins
l'une des deux options suivantes :
l'option lp permet de spcifier le fichier spcial de priphrique auquel l'imprimante est
connecte ;
les options rm et rp permettent de spcifier respectivement le nom d'un serveur d'impression
distant ( remote en anglais) et de l'imprimante 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 dfini avec l'option sd.
D'autres 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 spcifier la taille
maximale des travaux d'impression soumis. Cette dernire option permet de fixer des quotas
d'impression selon la taille des documents, afin de donner la possibilit aux autres documents d'tre
imprims. Cette option utilise une syntaxe particulire :
mx#taille

o taille est la taille maximale autorise, exprime en kilo-octets. Le fait de spcifier une taille nulle
permet de supprimer ce contrle.
L'exemple ci-dessous correspond la dfinition d'une file d'attente locale lmentaire :
ascii|lp:lp=/dev/lp:sd=/var/spool/lpd/ascii:mx#0:sh
Comme vous pouvez le constater, il n'y a aucune spcification des filtres d'impression utiliser dans
cet exemple. Les travaux sont donc directement envoys l'impression, sans traduction pralable. Il
est donc ncessaire qu'ils soient dj au format de l'imprimante. Si l'on veut utiliser des filtres
d'impression, il faut utiliser l'une des options if, cf, df, gf, nf, rf, f ou vf. Chacune de ces
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 222

options permet de spcifier la ligne de commande d'un filtre d'impression spcifique. Le choix du filtre
utilis pour un travail d'impression est effectu lors de l'appel la commande lpr, l'aide d'une option
en ligne de commande. Le filtre if est le filtre par dfaut, il n'y a donc besoin d'aucune option pour
l'utiliser. Les autres filtres peuvent tre slectionns respectivement avec les options -c, -d, -g, -n,
-f, - et -v.
Comme on le voit, le sous-systme d'impression ne reconnat pas automatiquement le format de fichier
utilis. D'autre part, le nombre de filtres utilisables est limit 8, ce qui peut ne pas suffire tant donn
la prolifration des formats de fichiers. Pour rsoudre ce problme, APSFILTER utilise un filtre
gnrique (utilis en tant que filtre par dfaut) qui, lui, est capable de reconnatre le format du fichier
imprimer et de le diriger vers un autre filtre ou une srie de filtres. Comme on l'a vu ci-dessus, l'ultime
filtre utilis est en gnral l'interprteur GhostScript. Ainsi, il n'y a plus de limite sur le nombre de
filtres utilisables, et les filtres sont slectionns automatiquement en fonction de la nature du document
imprimer.
6.10.3. Le systme d'impression CUPS
Le systme d'impression CUPS a pour but de remplacer LPRng et d'offrir de nouvelles fonctionnalits.
En particulier, il est plus facile de configurer et d'ajuster les paramtres avancs des imprimantes.
CUPS permet une meilleure intgration dans un rseau htrogne, car il implmente le protocole
d'impression rseau IPP ( Internet Printing Protocol ), qui est devenu un standard de fait pour tous
les systmes d'exploitation. Coupl au logiciel Samba, il permet galement d'accder aux imprimantes
des postes Windows.
CUPS est constitu du dmon cupsd, qui gre la fois les requtes d'impression effectues via le
protocole d'impression IPP, qui est un protocole d'impression encapsul dans des requtes HTML (le
langage de description de pages Web utilis sur Internet). Le dmon cupsd tend mme ce protocole
d'impression pour prendre en charge des pages Web de configuration, ce qui permet de raliser
l'administration du systme d'impression trs simplement par l'intermdiaire d'une interface Web. Il est
ainsi possible de raliser la configuration et la gestion des imprimantes, ainsi que des groupes
d'imprimantes sur lesquelles les travaux d'impression peuvent tre rpartis. Enfin, CUPS fournit les
fonctionnalits de base du systme d'impression LPRng, en dfinissant automatiquement un fichier
/etc/printcap correspondant sa propre configuration, et en fournissant un jeu de commandes lp
classiques redirigeant tous les traveaux d'impression vers lui.
CUPS utilise galement un nouveau systme de filtres, qui permettent d'viter de passer
systmatiquement par le format d'impression PostScript. Plusieurs filtres peuvent tre utiliss pour
passer par diffrents formats intermdiaires. Le choix de ces filtres est dtermin en fonction du cot
de chaque conversion dans la chane de transformations du document vers le format final utilis par
l'imprimante. On peut donc dire que CUPS est la fois plus facile configurer et plus performant que
LPRng, tout en restant compatible avec lui pour les applications.
6.10.3.1. Le mcanisme des filtres de CUPS
CUPS utilise une architecture lgrement diffrente de celle de LPRng. Son systme de filtres est plus
complexe et plus puissant, et ne ncessite pas un passage oblig par le langage d'impression
PostScript.
En ralit, CUPS fournit tout un jeu de filtres lmentaires capables de transformer un document d'un
format dans un autre. Tous ces filtres sont agencs pour effectuer la traduction complte du document
imprimer dans le langage d'impression utilis par l'imprimante. Contrairement LPRng, les formats
intermdiaires ne cette fois sont ni uniques, ni forcment du PostScript.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 223

Il est parfois possible de trouver plusieurs jeux de filtres distincts qui ralisent la conversion du
document dans le langage d'impression destination, en passant par diffrents formats intermdiaires.
CUPS doit donc effectuer un choix entre les diffrents jeux de filtres. Pour cela, il attribue un cot
chaque conversion, et calcule le cot total de chaque jeu de filtres utilisable pour imprimer le
document. Il choisit ensuite le jeu de filtres qui a le cot total minimal, et garantit ainsi les
performances du systme d'impression.
Bien entendu, certains de ces filtres utilisent le bon vieux GhostScript, et la plupart des gestionnaires
d'imprimantes sont en ralit des drivers crs pour GhostScript ou pour le logiciel de retouche
d'images The Gimp. CUPS requiert donc une version modifie de l'interprteur GhostScript, mais les
distributions l'installent automatiquement et cela ne pose pas de problme. Au final, l'impression des
documents est une opration trs facile, et l'utilisateur ne voit rien de toutes les transformations
effectues sur les documents par le mcanisme des filtres.
Enfin, contrairement LPRng, CUPS donne la possibilit de fournir des paramtres complmentaires
sur les filtres d'impression, ce qui confre une grande souplesse au systme d'impression. C'est pour
cette raison qu'il est recommand d'utiliser CUPS si l'on dsire faire des impressions couleur ou
contrler finement les paramtres d'impression.
6.10.3.2. Configuration d'une imprimante CUPS
La manire la plus simple de configurer CUPS est d'utiliser son interface Web. Celle-ci est accessible
l'aide de n'importe quel navigateur Internet, en utilisant l'adresse http://localhost:631/admin. Lorsque
l'on dsire se connecter au serveur Web de CUPS via cette interface, celui-ci exige une
authentification de l'administrateur. Vous devrez donc vous identifier en tant que root pour effectuer la
configuration du systme d'impression.
La page Web affiche prsente trois zones permettant de raliser les principales oprations de
configuration du systme d'impression.
L'ajout d'une imprimante se fait en cliquant sur le bouton Add Printer . Ce bouton ouvre une autre
page, dans laquelle il est possible de donner le nom de l'imprimante (champ Name ), son
emplacement sur le rseau (champ Location ) et sa description (champ Description/ ). La
description permet de dtailler la nature de l'imprimante et peut contenir n'importe quel texte. Le
bouton Continue permet de passer l'cran suivant, qui fournit la liste des priphriques
disponibles. Cette liste contient tous les fichiers spciaux de priphriques de votre systme, ainsi que
les protocoles d'impression en rseau supports par CUPS. La page suivante permet de slectionner la
marque de l'imprimante, et la suivante son modle. Le bonton Continue permet alors de terminer
l'installation de l'imprimante.
La configuration des imprimantes installes se fait en cliquant sur le bouton Manage Printers .
L'cran qui s'affiche contient les boutons Print Test Page (impression d'une page de test), Stop
Printer (suspension des impressions), Reject Jobs (interdiction de soumettre de nouveaux travaux
d'impression), Modify Printer (modification de la dfinition de l'imprimante), Configure
Printer (configuration avance de l'imprimante) et Delete Printer (suppression de l'imprimante).
La fonctionnalit de configuration avance des imprimantes permet de fixer les valeurs des paramtres
du pilote d'impression, comme la rsolution, la taille et le type de papier, ainsi que les paramtres de
correction des couleurs.
L'ajout d'un groupe d'imprimantes se fait en cliquant sur le bouton Add Class . Comme pour la
dfinition des imprimantes, le formulaire qui apparat vous permet de dcrire le groupe d'imprimantes.
L'cran suivant donne ensuite la possibilit d'indiquer les imprimantes qui font partie du groupe. Une
fois un groupe d'imprimantes dfini, il est possible d'effectuer les tches d'administration le concernant
l'aide du bouton Manage Classes .
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 224

6.10.3.3. Les fichiers de configuration de CUPS
Les fichiers de configuration de CUPS sont gnralement placs dans le rpertoire /etc/cups/. Le
fichier le plus important est sans doute le fichier cupsd.conf, qui contient tous les paramtres de
configuration du dmon cupsd. Ces paramtres sont nombreux et bien dcrits dans la documentation
de cups, que l'on peut obtenir simplement en ouvrant un navigateur sur l'adresse
http://localhost:631/documentation.html. De plus, ce fichier est trs bien comment, aussi seules les
options les plus importantes seront-elles dcrites ici.
Les principales options concernent la scurit du systme d'impression. Normalement, le dmon
d'impression cupsd ne doit pas fonctionner sous le compte root, pour viter de lui donner tous les
droits. Pour cela, il change d'identit lorsqu'il dmarre et se place dans le compte utilisateur spcifi
par l'option User. De mme, il se place dans le groupe utilisateur spcifi par l'option Group.
Gnralement, les valeurs utilises pour ces deux options sont l'utilisateur lp et le groupe sys, ce sont
donc leurs valeurs implicites.
Une autre option particulirement importante est l'option Lisen. Cette option permet d'indiquer au
dmon cupsd sur quelles interfaces rseau il doit se mettre en coute pour les clients dsirant s'y
connecter. Il n'est gnralement pas conseill de laisser ouvert un port non utilis lorsqu'on se connecte
Internet, aussi est-il recommand de configurer le dmon cupsd pour qu'il n'coute pas les requtes
provenant d'autres machines que la machine locale. Pour cela, on utilisera la ligne suivante dans le
fichier de configuration cupsd.conf :
Listen 127.0.0.1:631
Cette commande permet de ne rpondre qu'aux requtes provenant de la machine locale, sur le port
ddi au protocole d'impression IPP, savoir le port 631. Bien entendu, vous pourrez ajouter d'autres
machines si vous disposez d'un rseau local, simplement en ajoutant d'autres options Lisen. Notez
que l'usage de cette option est incompatible avec l'option Ror, qu'il faut donc commenter au
pralable, faute de quoi cupsd ne rpondra aucune requte.
Note : Comme on le verra dans le chapitre sur la configuration rseau, l'adresse rseau 127.0.0.1
reprsente soi-mme dans les communications rseau. Cela signifie ici que seuls les clients de la
machine locale pourront utiliser le systme d'impression.
Il est galement possible de fixer des droits sur les diffrents rpertoires de configuration de l'interface
Web, ainsi que sur les rpertoires virtuels utiliss par le protocole IPP lorsque des requtes sont faites
par les clients. Ainsi, il est possible de ne permettre l'impression que pour des clients qui vrifient
certains critres. Les rgles dfinissant les droits d'accs aux rpertoires sont indiques dans des
sections Location, dont la syntaxe est similaire celle des balises du langage XML. Par exemple, la
section qui dcrit les droits d'accs au rpertoire de configuration /admin est typiquement de la forme
suivante :
<Location /admin>
AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>
Vous constaterez que plusieurs informations sont donnes dans ce type de section. Premirement, le
type d'authentification utilis est spcifi l'aide de l'option AuhType. Les diffrentes valeurs
possibles pour cette option sont dcrites dans le tableau suivant :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 225

Valeur Signification
None Aucune identification n'est faite.
Basic
L'identification est ralise via les mcanismes d'authentification HTML classique. cupsd
attend ici un nom d'utilisateur et un mot de passe Unix classiques, qui doivent donc exister
dans le fichier /etc/passwd. Notez qu'avec ce mode d'authentification, le mot de passe est
envoy en clair du navigateur Internet utilis pour raliser la connexion vers le serveur Web
du dmon cupsd. Cela signifie que si la communication ne se fait pas en local, une tierce
personne pourrait voir le nom d'utilisateur et le mot de passe en coutant les communications
rsau. Ce mode d'authentification est donc extrmement dangereux.
Digest
L'identification se fait de la mme manire que pour le mode Basic, mais le nom de
l'utilisateur et le mot de passe ne sont pas transmis en clair. Au lieu de cela, seules les
signatures de ces informations, obtenues l'aide d'une fonction de chiffrement sens unique,
sont transmises sur le rseau. Il n'est donc plus possible de dterminer le nom de l'utilisateur et
son mot de passe en clair. De plus, les mots de passe utiliss ne sont pas forcment les mmes
que ceux du systme, et ils sont stocks de manire indpendante dans le fichier passwd.md5
du rpertoire /etc/cups/. Ces mots de passe peuvent tre ajouts avec la commande lppasswd.
Ce mode d'authentification est donc plus sr, notez toutefois qu'il reste possible pour un
attaquant de se connecter avec le nom de l'utilisateur et son mot de passe chiffr une fois ceux-
ci capturs.
Pour chaque mthode d'authentification, il est possible de prciser le critre utilis pour vrifier les
droits d'accs du client. Ce critre est fix par l'option AuhC1ass. Celle-ci peut prendre les valeurs
suivantes :
Valeur Signification
Anonymous
Aucun critre n'est utilis, tout le monde peut accder la page spcifie dans la directive
Location. Il va de soi que l'utilisation de ce critre avec les autres modes
d'authentification que None est absurde.
User L'utilisateur authentifi doit tre un utilisateur du systme Unix sous-jacent.
System
L'utilisateur authentifi doit tre membre du groupe systme. Ce groupe est, par dfaut, le
groupe sys, mais il peut tre modifi l'aide de l'option SysemGroup du fichier de
configuration cupsd.conf.
Group
L'utilisateur authentifi doit tre membre du groupe spcifi par l'option
AuhGroupName du fichier de configuration cupsd.conf. Ce groupe doit tre un des
groupes du systme Unix sous-jacent, sauf si le mode d'authentification Digest est utilis.
En effet, dans ce cas, le groupe de l'utilisateur doit tre celui stock avec son mot de
passe dans le fichier de mots de passe de CUPS (c'est--dire le fichier
/etc/cups/passwd.md5).
Les mots de passe cups utiliss pour l'authentification dans le mode d'authentification Digest peuvent
tre ajouts l'aide de la commande lppasswd. Cette commande permet galement de fixer le groupe
de l'utilisateur lorsque le critre d'accs utilis est le critre Group. La syntaxe gnrale de cette
commande est la suivante :
lppasswd [-g groupe] -a utilisateur

o groupe est le nom de groupe de l'utilisateur (uniquement utilis pour le mode d'authentification
Digest) et utilisateur est son nom d'utilisateur. l'issue de cette commande, lppasswd demande deux
fois le mot de passe de l'utilisateur et met jour le fichier passwd.md5.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 226

La deuxime srie d'informations fournie dans les sections Location sont les droits sur les machines
capables d'accder la page Web. L'option Order indique l'ordre d'valuation des directives
suivantes. Il est recommand d'interdire en premier, et de regarder ensuite si la machine cliente a le
droit de se connecter. C'est ce qui est fait dans l'exemple prcdent, avec les options Deny From
All et Allow From 127.0.0.1 , qui indiquent que seule la machine locale a le droit de se connecter
au serveur d'impression.
6.11. Configuration du lancement automatique des tches
Il est possible de dclencher l'excution de certaines oprations intervalles rguliers sous Linux. Ces
oprations sont dfinies pour le systme et pour chaque utilisateur. Elles sont enregistres dans des
fichiers de configuration indiquant le moment o elles doivent tre dclenches, et quelle action elles
doivent raliser. Les oprations dfinies pour le systme sont stockes dans le fichier de configuration
/etc/crontab. Des commandes additionnelles peuvent tre dfinies dans les rpertoires /etc/cron.d/,
/etc/cron.daily/, /etc/cron.weekly/ et /etc/cron.monthly/. Par ailleurs, les fichiers de configuration des
utilisateurs sont stocks dans le rpertoire /var/cron/tab/, sous le nom de chaque utilisateur. Il est bien
entendu possible d'diter ces fichiers en tant que root, mais ce n'est pas recommand. En effet, la
commande crontab permet d'installer, de supprimer et de consulter les fichiers crontab de chaque
utilisateur, et ce de manire sre.
La commande crontab peut tre utilise pour afficher le contenu du fichier de configuration de
l'utilisateur qui l'appelle, l'aide de l'option -l :
crontab -l
Elle permet galement de supprimer ce fichier, l'aide de l'option -r :
crontab -r
Enfin, l'option -e permet d'diter le fichier crontab, l'aide de l'diteur spcifi dans la variable
d'environnement VISUAL ou EDITOR. Par dfaut, l'diteur vi sera utilis.
En tant qu'administrateur du systme, il est possible de modifier les paramtres pour n'importe quel
utilisateur. Pour cela, il faut prciser le login de l'utilisateur avec l'option -u. Il est recommand
d'utiliser galement l'option -u si l'on a effectu un su, car la commande crontab peut ne pas pouvoir
dterminer l'utilisateur qui l'a appel dans ce cas.
Le format des fichiers crontab est suffisamment riche pour permettre de spcifier avec finesse les
conditions d'excution des oprations programmes. En gnral, le dbut du fichier contient la
dfinition de variables d'environnement utilises par crontab. La suite du fichier est rserve aux
commandes programmes. Chaque programmation est ralise sur une ligne du fichier crontab. Les
lignes contiennent 5 champs spcifiant la date et l'heure laquelle la commande doit tre excute, un
nom d'utilisateur ventuel et la commande elle-mme. Le nom d'utilisateur ne doit tre spcifi que
dans le fichier /etc/crontab, qui dfinit les commandes du systme. Il spcifie alors au nom de quel
utilisateur la commande doit tre excute. Pour les fichiers crontab propres chaque utilisateur, il
n'est bien entendu pas ncessaire d'indiquer ce nom.
Les 5 champs de la partie dcrivant la date d'excution 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) ;
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 227

le mois (compris entre 0 et 12, ou indiqu par les trois premires lettres du nom du 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, l'heure et les minutes du systme
correspondront avec ces 5 champs. Il suffit que l'une des spcifications du jour corresponde pour que
la commande soit excute (c'est--dire qu'elle est excute une fois pour le jour du mois et une fois
pour le jour de la semaine si ces deux champs sont spcifis).
Il est possible d'utiliser un intervalle de valeurs pour chacun de ces champs, en indiquant la premire et
la deuxime valeur, spares d'un tiret. Il est galement possible de faire une liste de valeurs et
d'intervalles, en sparant chaque donne par une virgule. Si l'on veut spcifier toutes les valeurs
possibles pour un champ, on peut utiliser le caractre '*'. Enfin, il est possible d'indiquer que la
commande doit tre excute toutes les n valeurs pour chaque champ. Pour cela, il suffit de faire
suivre le champ d'une barre oblique de division ('/') et du nombre n. Ainsi, si l'on trouve l'expression
*/3 pour les heures, la commande sera excute toutes les trois heures.
La spcification de la commande doit tre faite sur une seule ligne. Le caractre de pourcentage ('%') a
une signification spciale, sauf s'il est prcd d'un antislash ('\'). Les donnes qui suivent le premier
pourcentage sont passes telles quelles dans l'entre standard de la commande. Les caractres
pourcentages suivants sont interprts comme des saut de lignes (donc une validation). Ainsi, la
commande suivante :
rm -i file.txt%y%

permet de supprimer le fichier file.txt et de rpondre 'y' la commande rm. Le caractre 'y' est pass
ici dans le flux d'entre standard de rm.
Comme vous pouvez le voir, le fichier /etc/crontab du systme permet de programmer des oprations
priodiques, comme les sauvegardes, la destruction des fichiers temporaires, ou toute autre tche de
maintenance. Ne vous tonnez donc pas si votre ordinateur semble s'activer tout seul rgulirement,
heure fixe (par exemple, sur le coup de 11 heures ou minuit). C'est le fonctionnement normal de votre
systme, qui s'occupe de toutes les tches mnagres qu'il s'est rserv pour une heure o normalement
tout le monde dort...
Les utilisateurs peuvent galement dfinir leur propre crontab pour effectuer les oprations
priodiques quils dsirent. Par exemple, ils peuvent programmer une commande qui leur rappellera
un rendez-vous.
6.12. Gestion de l'nergie
6.12.1. Gnralits sur la gestion de l'nergie
La gestion de l'nergie sur les ordinateurs se fait classiquement via l'une des interfaces APM ou ACPI.
APM (abrviation de Advanced Power Management ) est la plus vieille, et s'appuyait
essentiellement sur le BIOS pour prendre en charge la gestion de l'nergie. Elle peut encore n'tre que
la seule possibilit fonctionnelle sur la plupart des vieilles machines, mais est destine tre remplac
par l'interface ACPI (abrviation de Advanced Configuration and Power Interface ), dveloppe par
Intel. Cette nouvelle interface, bien que souffrant manifestement encore de quelques dfauts de
jeunesse, est nettement plus souple. En effet, elle se base sur un tout autre principe qu'APM,
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 228

puisqu'elle permet cette fois de laisser le systme prendre en charge la gestion de l'nergie. tant
donn que l'interface APM est voue disparatre, et sachant qu'on ne peut utiliser qu'une seule de ces
interfaces, seule l'interface ACPI sera prsente dans ce document.
Le principe de fonctionnement de l'ACPI est le suivant. Le BIOS contient une table dfinie par le
fabricant de l'ordinateur qui dcrit le matriel fourni, et dfinit les oprations de base permettant de
grer l'nergie. Ces oprations sont dfinies dans un langage standard spcifi par Intel. Le systme
d'exploitation est en charge de lire ces informations et d'interprter les oprations dfinies dans la table
ACPI. Ainsi, c'est bien le systme d'exploitation qui se charge de la gestion de l'ordinateur.
L'implmentation de l'interprteur ACPI de Linux est l'implmentation de rfrence ralise par Intel.
Dans le meilleur des mondes, il ne devrait donc y avoir aucun problme pour utiliser l'ACPI sous
Linux. Malheureusement, bon nombre de BIOS fournis par les fabricants sont bogus et ne respectent
pas la norme ACPI. En effet, l'implmentation ACPI de Microsoft est incorrecte et son interprteur
accepte des erreurs de syntaxe que leur compilateur ACPI laisse passer (ce qui somme toute est
cohrent, ils ne pouvaient pas faire moins sans que le rsultat ne cesse de fonctionner). Ce n'est pas le
cas de l'interprteur ACPI de Linux puisque, par dfinition, elle ne peut se conformer celle de
Microsoft et tre compatible bogue bogue.
Le rsultat est, hlas, catastrophique, puisque les fonctionnalits ACPI de ces machines ne peuvent pas
tre utilises totalement sous Linux. Microsoft aurait voulu exploiter sa position dominante et
corrompre le standard d'Intel pour isoler les concurrents qu'il n'aurait pas fait mieux (avis personnel).
La seule solution est de rcuprer la table ACPI du BIOS, de la dsassembler pour en obtenir le code
source, et de tenter de la recompiler avec le compilateur d'Intel (pas celui de Microsoft). Les erreurs
apparaissent donc et peuvent ainsi tre corriges. Une fois la table ACPI corrige, il faut soit
convaincre le fabricant de l'ordinateur de mettre un nouveau BIOS disposition, soit paramtrer le
noyau pour qu'il charge cette table au lieu de prendre celle du BIOS pour argent comptant. Corriger
une table ACPI bogue est une opraiton extrmement technique et absolument hors sujet, et faire en
sorte que le noyau l'utilise ncessitait de patcher les sources du noyau jusqu' la version 2.6.9.
prsent, cela est faisable directement partir du programme de configuration du noyau, mais je n'en
parlerais pas plus ici. Vous pouvez consulter le site web de l'ACPI pour plus de dtails ce sujet. Si
vous rencontrez des problmes de ce type, je vous suggre de trouver un Linuxien confirm, ou de
faire une croix sur les fonctionnalits ACPI qui ne sont pas oprationnelles sous Linux.
6.12.2. Configuration de la gestion de l'nergie
La prise en charge des fonctionnalits de gestion d'nergie au niveau du noyau se fait simplement en
activant les options correspondantes dans la configuration du noyau. Elles sont regroupes dans le
menu Power management options (ACPI, APM) . Seules les plus intressantes sont listes ci-
dessous :
l'option Power Management support permet d'activer les fonctionnalits de mise en veille
du systme sur disque. Il est possible ainsi de sauvegarder l'ensemble du systme sur la
partition d'change du systme, et de le redmarrer et le restaurer (options Suspend-to-Disk
Support et Default resume partition ). Cette option permet galement d'activer le menu de
gestion de l'nergie par APM.
le menu ACPI (Advanced Configuration and Power Interface) Support permet d'activer les
fonctionnalits ACPI. Il donne accs l'option ACPI Support , qui elle-mme donne accs
de nombreuses options pour les diffrents composants grant l'ACPI.
le menu CPU Frequency scaling donne accs l'option CPU Frequency scaling . Cette
option permet d'activer la gestion des fonctions d'conomie d'nergie des processeurs pour les
portables. Ces processeurs sont en effet capables de changer de frquence d'excution pour,
lorsque l'ordinateur est utilis pour des tches peu consommatrices de ressources, abaisser la
consommation de l'ordinateur et augmenter l'autonomie du systme lorsqu'il fonctionne sur
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 229

batterie. Les sous-options permettent de spcifier les politiques de gestion de l'nergie ainsi
que le type de processeur utilis.
Les fonctionnalits ACPI prises en charge par le noyau sont exposes l'utilisateur au travers des
systmes de fichiers virtuels /proc/ et /sys/.
Le rpertoire /proc/acpi/ contient essentiellement un sous-rpertoire pour chaque composant ACPI pris
en charge par le noyau. Dans chacun de ces sous-rpertoires, vous trouverez des fichiers contenant les
informations courantes sur ces diffrents sous-systmes.
Le sous-rpertoire /sys/power/ vous permettra quant lui de modifier le niveau d'conomie d'nergie
utilis par votre ordinateur. En particulier, le fichier state vous permettra de le suspendre ou de le
mettre en veille. Pour cela, il vous faut simplement crire le mode dsir dans ce fichier avec la
commande echo :
echo -n mode > /sys/power/state

o mode est le mode dsir. Vous obtiendrez la liste des modes accepts par Linux en lisant ce fichier
avec la commande cat :

cat /sys/power/state
En gnral, les modes standby, mem et disk sont disponibles. standby correspond la mise en veille
simple de l'ordinateur. mem permet de raliser une suspension du systme en mmoire, et correspond
donc un niveau d'conomie d'nergie suprieur. Enfin, disk permet d'teindre compltement
l'ordinateur aprs avoir stock son tat dans la partition d'change. Cette commande correspond au
niveau maximum d'conomie d'nergie.
Note : Ces fonctionnalits sont relativement exprimentales et peuvent ne pas toutes fonctionner.
Gnralement, seule la suspension sur disque semble fonctionner, souvent sous condition que certains
gestionnaires de priphriques soient dchargs avant la mise en veille.
Si vous disposez d'un portable, il est probable que votre processeur soit capable de fonctionner
diffrentes frquences. Il est possible de lire la frquence courante et de la modifier par l'intermdiaire
des fichiers du rpertoire /sys/devices/system/cpu/cpu0/cpufreq/. La frquence courante peut tre lue
via le fichier cpuinfo_cur_freq. Il n'est pas possible de modifier directement cette valeur. Toutefois, le
noyau donne la possibilit de la modifier via la politique de gestion d'nergie via le fichier
scaling_governor. Les valeurs possibles pour ce fichier peuvent tre lues dans le fichier
scaling_available_governors.
Gnralement, les politiques disponibles sont powersave et performance. Ces politiques permettent
respectivement de changer la frquence du processeur vers les frquences indiques dans les fichiers
scaling_min_freq et scaling_max_freq. Ce sont donc dans ces fichiers que l'on pourra dfinir les
frquences utilisables. La liste des frquences accessibles est fournie par le fichier
scaling_available_frequencies.
6.12.3. Le dmon ACPI
Le noyau expose les fonctionnalits de surveillance de l'ordinateur de l'interface ACPI via le fichier
spcial de priphrique /proc/acpi/event. Ds qu'un vnement se produit (passage de l'alimentation
sur batterie pour un portable, hausse anormale de la temprature du processeur, appui sur le bouton de
mise en marche / arrt, etc.), une ligne signalant cet vnement est ajoute ce fichier virtuel.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 230

Les applications ne doivent pas lire ce fichier directement, cette tche tant normalement attribue au
dmon acpid. Ce dmon surveille le fichier d'vnement du noyau et fournit un mcanisme de
notification plus gnrique (c'est dire moins spcifique Linux) aux applications. Ainsi, les
applications peuvent se connecter au dmon ACPI et tre prvenue des vnements que le noyau met.
Le dmon ACPI permet aussi de programmer des actions en rponse aux vnements ACPI. Pour cela,
il consulte les fichiers de configuration placs dans le rpertoire /etc/acpi/events/ et excute les actions
qui y sont enregistres.
Ces actions sont dfinies par des paires de lignes evnment / action permettant de renseigner, pour
chaque type d'vnement, l'action effectuer. Les lignes de dfinition des vnements utilisent des
expressions rationnelles pour slectionner les vnements ou les groupes d'vnements associs
l'action. Les lignes d'action quant elles permettent d'indiquer la ligne de commande excuter en cas
d'apparition de ces vnements.
Par exemple, le fichier de configuration par dfaut capte l'ensemble des vnements ACPI et les passe
aux scripts /etc/acpi/acpi_handler.sh l'aide de ces deux simples lignes :
event=.*
action=/etc/acpi/acpi_handler.sh %e

L'expression rationnelle utilise dans la ligne de dfinition des vnements signale que toute chane de
caractres doit correspondre. L'action en rponse est l'excution du script acpi_handler.sh. La chane
de caractres complte dfinissant l'vnement est passe en premier paramtre et est reprsente par
le symbole %e.
Si les vnements intressants taient tous les vnements concernant le bouton d'alimentation de
l'ordinateur, l'expression rationnelle utilise aurait t la suivante :
event=button power.*

Comme vous pouvez le constater, le format utilis pour les descriptions des vnements envoys par le
noyau doit tre connu pour pouvoir crire les expressions rationnelles devant les slectionner. Ces
descriptions sont envoyes par le script par dfaut acpi_handler.sh dans les fichiers de traces du
systme. Vous pourrez donc les y trouver aprs avoir gnr les vnements ACPI corresondants.
Pour donner un exemple, voici comment ce script peut tre modifi afin de faire en sorte que la
fermeture du couvercle d'un portable le mette en veille immdiatement sur disque :
#!/bin/sh

# Ajoute / la liste des sparateurs pour le dcoupage de la ligne de commande :
IFS=${IFS}/
set $@

case "$1" in
button)
case "$2" in
power) /sbin/init 0
;;
# Traite l'vnement de fermeture du couvercle :
lid)
# Vrifie que le couvercle est ferm :
grep -q "close" /proc/acpi/button/lid/LID/state
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 231

if [ $? -eq 0 ] ; then
# Met en veille prolonge l'ordinateur :
/usr/sbin/suspend.sh disk
fi
;;
# Trace les vnements de type "bouton" non traits :
*) logger "ACPI action $2 is not defined"
;;
esac
;;
# Trace tous les autres vnements non traits :
*)
logger "ACPI group $1 / action $2 is not defined"
;;
Esac

Ce script capte l'vnement lid ( couvercle en anglais) et vrifie l'tat du capteur de fermeture du
couvercle, accessible via le fichier d'tat /proc/acpi/button/lid/LID/state (l'emplacement de ce fichier
peut varier selon les ordinateurs). Si ce fichier indique que le couvercle est ferm, le script utilitaire
suspend.sh est appel pour mettre en veille l'ordinateur.
Ce dernier script utilise le fichier /sys/power/state pour effectuer cette mise en veille :
#!/bin/sh

# Stocke l'heure systme (pour mise jour de /etc/adjtime) :
hwclock --systohc

# Suspend le systme et sur disque (mthode sre) :
echo -n $1 > /sys/power/state

# Rtablit l'heure systme :
hwclock --hctosys

Comme vous pouvez le constater, il est ncessaire de prendre en compte l'horloge systme avant et
aprs une suspension. En effet, sans cela, l'horloge systme reprendrait exactement la date de la
suspension lors du rveil. Le stockage de l'heure courante avant suspension est galement ncessaire,
afin de maintenir le fichier de configuration /etc/adjtime cohrent.
Note : Une autre solution aurait t de faire le test sur l'tat du bouton dans le script de suspension et
d'appeler celui-ci directement en rponse l'vnement button lid .

Chapitre 7 : Notions de compilation et configuration du noyau
Table des matires

7.1. Notions de base
7.2. Compilation de GCC
7.3. Compilation du noyau Linux
Ce chapitre prsente les notions de base de compilation et de fichiers sources de programmes. Il est
certain que le lecteur de ce document n'a pas forcment l'intention de programmer sous Linux,
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 232

cependant, il est ncessaire de connatre les notions qui vont tre dcrites ici. En effet, il n'est pas rare,
voire il est mme courant, d'avoir recompiler une application lorsqu'on travaille avec Linux. Cela
n'est 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 fichiers sources aux utilisateurs d'une part, et que le langage C et Unix sont historiquement
fortement lis.
Nous allons commencer par donner la dfinition des notions de base et les tapes intervenant dans le
processus de gnration des fichiers binaires des programmes. Nous verrons ensuite comment installer
(et compiler !) la suite de compilateurs GCC du projet GNU, et nous prsenterons les tapes
intervenant dans la compilation et l'installation d'un nouveau noyau. Ces informations pourront tre
utiles pour la lecture du chapitre traitant de la configuration du matriel puisque, bien souvent, la prise
en charge d'un priphrique ncessite la compilation de ses pilotes au niveau du noyau.
7.1. Notions de base
7.1.1. Dfinition 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
syntaxiques complexes, et il dispose d'un vocabulaire trs tendu. Il permet donc d'exprimer la plupart
des ides humaines, et c'est bien sa fonction. En revanche, il n'est pas rigoureux, dans le sens o il
laisse la porte ouverte un grand nombre d'ambiguts. Ce qui n'est pas dit est souvent sous-entendu,
et c'est donc pratiquement entre les mots que se trouve le sens du discours. Il n'est 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 l'on ne peut pas utiliser facilement le langage naturel pour dcrire
rigoureusement, voire mathmatiquement, quelque chose.
Un langage formel est, au contraire, un langage restreint, qui ne dispose que de trs peu de
constructions syntaxiques et d'un vocabulaire trs limit. La caractristique principale des langages
formels est qu'ils 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 dfinissant une association entre les constructions d'un langage formel et un jeu de concepts limit,
il est possible de donner une smantique un langage formel. Cette smantique donne la possibilit de
qualifier de vraie ou de fausse les assertions crites dans le langage formel (on notera qu'une
expression peut tre valide du point de vue de la syntaxe mais smantiquement fausse).
Un langage formel permet donc d'exprimer avec prcision, sans aucune ambigut possible, une ide
base sur les concepts qu'il utilise. Les notations mathmatiques constituent un langage formel par
excellence.
Note : Par exemple, l'expression mathmatique x=1 est toujours valide, c'est une simple quation.
En revanche, elle n'est 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 dfinir les tches qu'un 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 qu'un programme ne fait que ce qui a t crit : ni plus, ni moins. Il faut donc tout dire
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 233

l'ordinateur quand on crit un programme, ce qui en gnral est relativement fatigant et compliqu.
C'est le prix payer pour la rigueur de l'informatique : l'ordinateur ne se trompe jamais, parce qu'il ne
fait qu'obir aux ordres donns dans un langage formel (donc prcis). Celui qui se trompe, c'est en
gnral le programmeur, et assez couramment l'utilisateur.
Note : Notez qu'un programme est un texte valide s'il vrifie la grammaire du langage formel dans
lequel il est crit. Cela ne l'empchera pas de faire n'importe quoi si on l'excute. Un programme
vrai est donc un programme syntaxiquement correctement crit et qui en plus fait ce que l'on dsire
qu'il fasse. Il n'y en a pas beaucoup... surtout que dans bien des cas, on ne s'est jamais pos clairement
la question de savoir ce que doivent faire les programmes que l'on crit !
Le C est un langage de programmation relativement simple, qui se trouve sur tous les types
d'ordinateurs et de systmes d'exploitation. Les programmes sont plus difficiles crire en C que dans
d'autres langages de programmation, mais ils sont plus performants. Le C est trs utilis pour crire les
systmes d'exploitation : 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 d'crire 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 d'autres langages.
Les programmes sont en gnral crits dans un certain nombre de fichiers. Ces fichiers sont appels les
fichiers sources, du fait qu'ils sont l'origine du programme. Le texte de ces fichiers 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 n'est pas
comprhensible tel quel par le matriel de l'ordinateur. Pour excuter un programme partir de son
code source, il n'y a que deux solutions :
disposer d'un autre programme, nomm interprteur, capable de lire le code source et
d'effectuer les oprations dcrites dans le code source ;
disposer d'un autre programme, nomm compilateur, capable de traduire le code source en
langage binaire, qui sera alors directement excutable par l'ordinateur.
Les programmes interprts sont fatalement relativement lents, puisque l'interprteur doit analyser en
permanence les fichiers sources pour le traduire en opration excuter la vole.





Figure 7-1. Interprtation d'un programme
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 234


En revanche, les programmes compils sont beaucoup plus rapides l'excution, puisque la phase
d'analyse du code source a t ralise au pralable et se fait en dehors de la phase d'excution. Ces
programmes peuvent donc s'excuter nativement, sans tre ralenti par l'interprteur.
Figure 7-2. Compilation et excution d'un programme

Note : Si vous avez bien suivi, on se trouve face au problme de l'uf et de la poule. En effet, les
interprteurs et les compilateurs sont eux-mmes des programmes crits dans un langage informatique.
Quel est donc le premier compilateur ou interprteur ? Ce problme a effectivement d tre rsolu au
dbut de l'informatique, 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 d'erreurs 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
constituent ce que l'on appelle des scripts. Le systme utilise le shell pour les interprter. La plupart
des oprations d'administration du systme utilisent des scripts, car il est toujours plus facile d'crire et
de tester un script que d'crire 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 fin de compte
effectuent le travail, et ils sont souvent appels partir de scripts. Nous avons dj vu des exemples de
scripts lors de la configuration du systme. Pour l'instant, nous allons nous intresser au langage C et
au processus de compilation.
La compilation est l'opration qui consiste lire un fichier source et le traduire dans le langage
binaire du processeur. Ce langage est absolument incomprhensible par les tres humains, cependant,
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 235

il existe un langage de programmation qui permet de coder directement le binaire : il s'agit de
l'assembleur.
En gnral, le processus de compilation gnre un fichier binaire pour chaque fichier source. Ces
fichiers binaires sont nomms fichiers objets, et porte de ce fait l'extension .o (ou .obj dans les
systmes Microsoft). Comme un programme peut tre constitu de plusieurs fichiers sources, il faut
regrouper les fichiers objets pour gnrer le fichier excutable du programme, fichier que l'on appelle
galement le fichier image en raison du fait que c'est le contenu de ce fichier qui sera charg en
mmoire par le systme pour l'excuter et qu'il contient donc l'image sur disque des instructions des
programmes en cours d'excution. L'opration de regroupement des fichiers objets pour constituer le
fichier image s'appelle l'dition de liens, et elle est ralise par un programme nomm le linker
(diteur de liens en franais). Ce programme regarde dans tous les fichiers objets les rfrences
partielles aux autres fichiers objets et, pour chaque lien ainsi trouv, il complte les informations
ncessaires pour en faire une rfrence complte. Par exemple, un fichier source peut trs bien utiliser
une fonctionnalit d'un autre fichier source. Comme cette fonctionnalit n'est pas dfinie dans le
fichier source courant, une rfrence partielle est cre dans le fichier objet lors de sa compilation,
mais il faudra tout de mme la terminer en indiquant exactement comment accder la fonctionnalit
externe. C'est le travail de l'diteur de liens, lorsqu'il regroupe les deux fichiers objets.
Certains fichiers objets sont ncessaires pour tous les programmes. Ce sont notamment les fichiers
objets dfinissant les fonctions de base, et les fonctions permettant d'accder au systme d'exploitation.
Ces fichiers objets ont donc t regroups dans des bibliothques (galement couramment appeles
librairies ), que l'on peut ainsi utiliser directement lors de la phase d'dition de liens. Les fichiers
objets ncessaires sont alors lus dans la bibliothque et ajouts au programme en cours d'dition de
liens. Les bibliothques portent souvent l'extension .a (ou .lib dans les systmes Microsoft).
Figure 7-3. Processus de gnration d'un excutable

Malheureusement, la solution consistant stocker dans des bibliothques les fonctions les plus
utilises souffre de la duplication du code contenu dans ces bibliothques dans tous les programmes,
d'o une perte de place considrable. De plus, la mise jour d'une bibliothque ncessite de refaire
l'dition de liens de tous les programmes qui l'utilisent, ce qui n'est pas ralisable en pratique. C'est
pour cela que les bibliothques dynamiques ont t cres : une bibliothque dynamique n'est pas
incluse dans les fichiers des excutables qui l'utilisent, mais reste dans un fichier spar. Les
bibliothques sont regroupes dans un rpertoire bien dfini du systme de fichiers, ce qui permet de
les partager entre diffrents programmes. Ainsi, la mise jour d'une bibliothque peut se faire sans
avoir toucher tous les programmes qui l'utilisent. Le problme est cependant que l'dition de liens
reste incomplte, parce que les rfrences aux objets des bibliothques dynamiques sont toujours
externes. Il existe donc un programme spcial, l'diteur de liens dynamiques ( ld , pour Link
Dynamically ), qui rsout les dernires rfrences incompltes lors du chargement de chaque
programme. Les bibliothques dynamiques portent l'extension .so (pour Shared Object ), ou
.dll dans les systmes Microsoft (pour Dynamic Link Library ).
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 236

videmment, le chargement des programmes est un peu plus lent avec les bibliothques dynamiques,
puisqu'il faut raliser l'dition de liens dynamiques lors de leur lancement. Cependant, ce processus a
t optimis, et les formats de fichiers binaires utiliss contiennent toutes les informations prcalcules
pour faciliter la tche de l'diteur de liens dynamiques. Ainsi, la diffrence de performance est
devenue peine dcelable.
7.1.2. Processus de gnration
Classiquement, les fichiers sources C et C++ se divisent en deux grandes catgories :
les fichiers d'en-tte, qui contiennent les dclarations des symboles du programme ;
les fichiers C (ou C++), qui contiennent leurs dfinitions.
Le fait de faire cette distinction entre la dclaration (qui consiste dire : telle chose existe ) et la
dfinition (qui consiste dcrire la chose prcdemment dclare) permet de faire en sorte que l'on
peut utiliser les fichiers objets sans avoir les fichiers sources. En effet, la dclaration permet de raliser
les rfrences partielles dans les programmes, tandis que les fichiers objets contiennent bien entendu la
dfinition binaire de ce qui a t dclar.
Pour compiler un programme, on n'a donc rellement besoin que de trois types de fichiers :
les fichiers de dclaration du systme et des bibliothques de base ;
les fichiers des bibliothques de base eux-mmes ;
les fichiers source (de dclaration et de dfinition) du programme compiler.
En C et C++, les fichiers sources de dclaration portent l'extension .h (plus rarement .hpp pour
les fichiers de dclaration C++), et les fichiers de dfinition portent l'extension .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 d'un programme peut ncessiter la cration d'un grand nombre de
fichiers, tous plus ou moins dpendants les uns des autres. Pour pouvoir s'y retrouver plus facilement,
les programmeurs utilisent un programme spcial : make. Ce programme est capable de raliser toutes
les oprations ncessaires la cration des fichiers excutables d'un programme partir de ses fichiers
sources. Pour cela, il utilise un fichier contenant la dfinition des oprations raliser, ainsi que la
description des dpendances entre les diffrents fichiers sources. Ce fichier est appel le fichier
makefile. Grce make, l'utilisateur de base que vous tes va pouvoir compiler la plupart des
programmes sans avoir la moindre notion de programmation.
En gnral, la compilation d'un programme passe par les tapes suivantes :
rcupration des fichiers sources du programme ;
configuration du programme pour l'environnement courant ;
appel make pour la compilation ;
appel make pour l'installation.
La premire tape est lmentaire et va de soi.
La deuxime tape se fait souvent en appelant un script dans le rpertoire d'installation des fichiers
sources. Ce script se nomme souvent configure, et peut tre appel avec la ligne de commande
suivante :
./configure

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 237

partir du rpertoire o se trouvent les fichiers sources. Ce script effectue tous les tests sur le systme
et l'environnement de dveloppement, et gnre le fichier makefile. Le programme configure est en
gnral fourni avec les logiciels GNU. Il permet de dterminer l'environnement logiciel et systme et
de gnrer le fichier makefile et des fichiers d'en-ttes contenant la dfinition de quelques options du
programme. Dans quelques cas particuliers, vous aurez utiliser des options de configure afin de
prciser certains paramtres. L'option --host permet d'indiquer le type de la machine cible, dans le
cas o configure ne parvient pas le dterminer automatiquement :

--host=machine

o machine est la description de votre machine. Pour les PC fonctionnant sous Linux, cette description
est de la forme ix86-pc-linux-gnu , o le 'x' reprsente le numro de la gnration du processeur du
PC. Par exemple, pour un Pentium ou un AMD K6, la description sera i586-pc-linux-gnu . L'option
--enable-shared permet de gnrer des bibliothques dynamiques lors de la compilation. Cela
procure un gain de place vident. Enfin, l'option --prefix permet de prciser le rpertoire de base
dans lequel le programme sera install a priori. Cette option s'utilise de la manire suivante :

--prefix=rpertoire

o rpertoire est le rpertoire de base de l'installation. 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 prfixe convient, mais il est parfois ncessaire de le modifier. C'est en particulier
le cas lorsque vous dsirez mettre jour un programme dj install et que votre distribution n'utilise
pas le rpertoire par dfaut. Dans ce cas, il convient d'indiquer le rpertoire de base dans lequel ce
programme a t install, afin de le remplacer au lieu de le dupliquer d'une part, et afin que les autres
programmes puissent trouver la nouvelle version la place de l'ancienne d'autre part.
La troisime tape est trs simple aussi. Il suffit de taper la commande suivante :
Make

toujours dans le rpertoire o se trouvent les fichiers sources.
Enfin, 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 fichier texte indiquant comment effectuer ces oprations dans le rpertoire des
fichiers sources. Ce fichier porte souvent le nom de readme , install , ou quelque chose de
similaire.
Avec les notions que vous venez de voir, vous devriez pouvoir compiler quasiment tous les
programmes que vous pourrez rcuprer sous la forme de fichiers sources. Un dernier dtail
cependant : la compilation est une opration trs gourmande en ressources. Cela signifie qu'elle peut
consommer beaucoup de ressources processeur, de mmoire, de disque et de temps. Pour des gros
programmes, il n'est 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 238

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 d'installation, mais ne les installent
pas par dfaut. Il est toutefois recommand d'installer au moins le compilateur C/C++ et les outils de
dveloppement associs, ainsi que les fichiers d'en-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 spcifique
du compilateur pour tre compils, soit parce qu'ils n'ont t tests qu'avec cette version par les
dveloppeurs, soit parce qu'ils utilisent une fonctionnalit qui n'est disponible que dans les versions
rcentes de GCC.
Les versions de GCC les plus utilises sont actuellement les versions issues des branches 3.4 et 4.1. Il
est dconseill d'utiliser les versions les plus rcentes (typiquement la version de la branche courante),
car elles peuvent souffrir de bogues de jeunesse et elles peuvent tre trop strictes pour compiler des
programmes qui ne sont pas tout fait la norme (en particulier au niveau du langage C++, qui peut
avoir des constructions d'usage courant et nanmoins extrmement compliques). Ce document
suppose que votre distribution utilise la version 4.1.2 de GCC, qui offre les avantages suivnats :
elle permet de compiler de programmes pour les processeurs les plus rcents, tels que les IA-
64 d'Intel, les x86-64 d'AMD et les PowerPC d'IBM ;
elle permet d'utiliser les instructions spcifiques des processeurs les plus rcents, mme
d'architecture x86 ;
elle gnre un code bien plus optimis que les versions prcdentes ;
elle permet de rduire la visibilit des fonctions, variables et types non publiques des
bibliothques, et donc de rduire l'empreinte des binaires aussi bien en mmoire que sur
disque et de rduire le temps de chargement des programmes rcents ;
la bibliothque standard C++ fournie avec cette version respecte nettement mieux la norme
C++ que les versions antrieures, et elle permet d'utiliser les caractres Unicode dans les
programmes C++.
On prendra garde au fait que certaines distributions utilisent rgulirement des versions non stabilises
des programmes de base tels que GCC, la bibliothque C ou le noyau. C'est en particulier le cas de la
Redhat et de toutes ses drives, telle la Mandrake par exemple. Tout cela est fort dommageable, car
les paquetages binaires de ces distributions sont systmatiquement incompatibles avec ceux des autres
d'une part, et il est quasiment impossible d'envisager une compilation correcte d'un programme avec
ces distributions d'autre part. En pratique, les possesseurs de distributions Redhat et drives
s'abstiendront donc de faire une mise jour manuelle de GCC, de la bibliothque C ou mme du
noyau, car les programmes installs sur leur machine risqueraient de ne plus fonctionner. Les
utilisateurs de ces distributions devraient faire une mise jour complte de leur distribution dans ce
cas.
Note : En ce qui concerne les numros de version, il faut savoir que le dernier chiffre caractrise
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 d'installer systmatiquement les dernires
versions des logiciels lorsque ces versions sont les premires d'une nouvelle srie. Ainsi, un
programme de version x.y.0 est certainement peu fiable. Il faudra attendre au moins la version x.y.1 ou
mieux la x.y.2, pour pouvoir l'utiliser sereinement. Sachez galement que le numro intermdiaire sert,
pour certains logiciels, indiquer les versions de dveloppement. C'est par exemple le cas du noyau
Linux, pour lequel les numros de version impairs correspondent aux versions de dveloppement et les
numros pairs aux versions stables. Ce n'est pas le cas pour la bibliothque C ou GCC. De plus,
certains logiciels utilisent un schma de version quatre chiffres, le dernier chiffre correspondant
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 239

gnralement aux correctifs mineurs n'entranant thoriquement aucune rgression. C'est galement le
cas du noyau Linux depuis la version 2.6.8. Ainsi, dans un numro de version x.y.z.t, x reprsente
gnralement la version majeure du logiciel (et n'est change qu'en cas d'incompatibilit majeure ou de
refonte complte), y est le numro de la branche (une convention permettant de distinguer les branches
de dveloppement des branches stables y est parfois applique), z est le numro de version dans la
branche, et t le numro du patch regroupant les corrections de scurit ou de petite taille.
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. Ces sources sont fournies sous la forme d'une archive au format tar-gzip. Le nom de cette
archive est gcc-3.4.4.tar.gz .
Un autre prrequis est bien entendu que vous disposiez galement d'un compilateur C sur votre
systme. Ce compilateur peut trs bien tre une ancienne version de GCC, mais il est impratif de
disposer d'un 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 l'un des rpertoires de la variable d'environnement PATH, ou que
la variable CC ait t dfinie 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 dcompresser les
sources de GCC. Cela doit se faire avec la commande suivante :
tar xvfz archive

o archive est le nom de l'archive compresse contenant ces sources. Dans notre cas, ce doit tre gcc-
4.1.2.tar.gz. Cette commande a pour consquence de crer l'arborescence 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
supposerons que le rpertoire des sources se nomme srcdir, et que le rpertoire de compilation se
nomme objdir.
7.2.3. Configuration
L'tape suivante est d'aller dans le rpertoire de compilation et de lancer le programme de
configuration de GCC dans ce rpertoire. Cela peut tre ralis avec les commandes suivantes :
cd objdir
srcdir/configure [options]
Comme on l'a vu ci-dessus, le programme de configuration configure peut recevoir des options en
ligne de commande. Il est recommand de fournir l'option --enable-__cxa_atexit, qui permet
de rendre GCC compatible avec la version 3 de la norme inter-vendeurs spcifiant le format des
interfaces binaires pour les compilateurs C++, et donc de garantir la compatibilit binaire ascendante
avec les versions futures de GCC. Cela vous permettra d'viter d'avoir recompiler toutes les
bibliothques C++ lors des mises jours ultrieures de GCC. Il est galement recommand d'utiliser
l'option --enable-long-long, qui ajoute le support du type de donnes long long, qui permet
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 240

de manipuler des donnes 64 bits sur les machines 32 bits comme les PC, ainsi que l'option --
enable-threads, qui permet d'ajouter le support des threads aux langages.
Normalement, le programme de configuration dtecte le type de machine et le systme utilis.
Cependant, 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 spcifier la machine hte
l'aide de l'option --host. La ligne de commande pour la configuration sera alors la suivante :
srcdir/configure --enable-__cxa_atexit \
--enable-long-long --enable-threads --host=configuration

o configuration est un triplet de la forme i686-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 l'aide de l'option --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 n'installer que les compilateurs C/C++ et Java en ajoutant l'option suivante la ligne de
commande :
--enable-languages=c,c++,java
Enfin, 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 d'installation de GCC. Normalement, GCC s'installe dans le rpertoire /usr/local/
ce qui fait qu'il ne remplace pas la version de votre distribution. Vous devez donc spcifier les
rpertoires de base pour l'installation. Pour cela, il suffit d'ajouter les options suivantes :
--prefix=/usr

la ligne de commande de configure.
7.2.4. Compilation
La compilation de GCC peut ensuite tre ralise. Autant vous prvenir tout de suite : c'est une
opration trs longue, qui de plus demande beaucoup d'espace disque. Il faut au moins prvoir 800 Mo
d'espace disque, et presque trois heures sur une machine 500 Mhz. Cela est d au nombre de
langages supports par les versions rcentes de GCC, la technique employe lors de sa compilation.
La plupart des compilateurs C ne sont en effet pas capables de compiler GCC avec toutes ses
fonctionnalits, aussi la compilation se droule-t-elle en trois tapes :
une version allge de GCC est compile avec le compilateur natif du systme dans une
premire passe ;
cette version est utilise pour compiler la version complte de GCC ;
la version complte est utilise pour se recompiler, afin de tester les diffrences entre les deux
versions compltes.
Ainsi, GCC se compile lui-mme !
Ces trois oprations peuvent tre excutes l'aide d'une seule commande :
make bootstrap

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 241

Cette commande doit tre excute partir du rpertoire de compilation objdir.
7.2.5. Installation de GCC
Lorsque la compilation s'est termine, vous pouvez installer GCC. Il est recommand de supprimer le
compilateur que vous avec utilis pour compiler GCC, sauf si, bien entendu, il s'agissait dj de GCC.
En effet, il n'est pas ncessaire de le conserver, puisque vous utiliserez dsormais GCC. L'installation
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 spcificit des systmes libres, qui n'est possible que parce que l'on
dispose des sources du noyau. Cependant, mme pour certains Unix commerciaux, il est possible
d'effectuer une dition de liens, les modules du noyau tant fournis sous la forme de fichiers objets. La
compilation ou l'dition 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 d'obtenir 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 d'effectuer 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 sources du noyau fourni par votre
distribution. En effet, la plupart des distributions modifient ces sources pour y ajouter des
fonctionnalits ou des correctifs de scurit, ce qui permet de ne pas prendre le risque d'utiliser la
dernire version officielle du noyau, qui peut ne pas tre considre comme stable car trop rcente.
Parfois mme, ce sont des fonctionnalits non encore incluse dans le noyau officiel qui sont utilise
par les distributions, ce qui rend l'utilisation du noyau gnrique impossible. Rien ne vous empche
d'utiliser pour autant la dernire version officielle du noyau, mais vous vous exposerez au risque
d'avoir un systme non fonctionnel, ou au moins diagnostiquer des problmes encore inconnus ou
d'avoir mettre jour d'autres composants de votre distribution manuellement en raison des
volutions que ce noyau peut avoir subi.
Le noyau utilise des constructions spcifiques gcc et ne peut donc tre compil de manire fiable que
par ce compilateur (mme si d'autres compilateurs compatibles avec GCC sont utilisables moyennant
quelques efforts).
Note : La documentation du noyau indique que la version de gcc utiliser pour le compiler est la
version 3.2. La raison en est que les dveloppeurs du noyau eux-mmes changent rarement de
compilateur, afin de ne pas avoir se proccuper d'ventuels bogues de celui-ci et ainsi de pouvoir se
concentrer sur leur travail. La version 3.2 n'ayant pas de bogues majeurs, elle a t retenue, et les
dveloppeurs principaux sont supposs utiliser cette version. Ainsi, le noyau est thoriquement test
avec cette version, c'est la raison pour laquelle elle est recommande. Toutefois, les versions plus
rcentes de GCC sont galement tout fait valables de manire gnrale, et parfois mme elles sont
ncessaires pour les architectures les plus rcentes. Ainsi, les architectures 64 bits requirent au
minimum GCC 3.4... Quoi qu'il en soit, il n'y a gnralement aucun problme compiler le noyau
avec les versions rcentes de GCC, et en pratique on pourra utiliser la version installe dans le systme
sans inquitude.
La compilation du noyau n'est pas trs difficile. Elle ncessite cependant de rpondre correctement aux
questions de configuration. Les erreurs peuvent tre multiples, et souvent fatales. Il est donc fortement
conseill de disposer d'une disquette de dmarrage afin de rparer le systme en cas d'erreur. Par
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 242

ailleurs, il faut toujours conserver le dernier noyau utilisable en sauvegarde dans le rpertoire /boot/. Il
faut galement ajouter une entre spcifiant ce noyau dans le programme de dmarrage (lilo), afin de
pouvoir slectionner l'ancien noyau en cas d'erreur. Ces oprations seront dcrites en dtail plus loin.
La compilation du noyau se passe en quatre tapes :
installation des fichiers sources ;
rponse aux questions de configuration ;
compilation et installation du noyau ;
compilation et installation des modules.
7.3.1. Installation des sources de Linux
Les sources du noyau sont normalement fournies par votre distribution. Vous pouvez toutefois trouver
les sources gnriques du noyau officiel sur le site kernel.org. Il est possible de rcuprer les
sources compltes, sous la forme d'une archive compresse d'environ 43 Mo. Toutefois, si l'on dispose
dj d'une version complte des fichiers sources, il est envisageable de ne tlcharger que les fichiers
diffrentiels de cette version la version courante (ce que l'on 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 fonctionnalits 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 l'aventure d'une quelconque compilation d'un des composants systme.
Il est recommand d'installer les sources du noyau dans un autre rpertoire que celui o se trouvent les
fichiers sources de votre distribution, car ceux-ci contiennent les fichiers d'en-tte C qui ont t utiliss
pour gnrer la bibliothque C du systme et sont donc ncessaires la compilation des programmes.
Le remplacement des fichiers sources du noyau imposerait donc, en toute rigueur, de recompiler la
bibliothque C du systme. Cette opration est extrmement technique, risque et longue, de plus, les
fichiers d'en-tte du noyau voluent souvent et provoquent des incompatibili avec les programmes
qui les utilisent. Les plus motivs trouveront toutefois en annexe la manire de procder pour
recompiler la bibliothque C.
Gnralement, les fichiers sources de Linux sont installs dans le rpertoire /usr/src/linux/. Certaines
distributions font une copie des fichiers d'en-tte du noyau qui ont servi pour la gnration de la
bibliothque C dans les rpertoires /usr/include/linux/, /usr/include/asm/ /usr/include/asm-generic. Si
ce n'est pas le cas, il faudra viter d'craser le contenu du rpertoire /usr/src/linux/ lors de l'installation
des sources du nouveau noyau. Une solution est par exemple d'installer les fichiers du noyau dans le
rpertoire /usr/src/linux<version>/ et de ne pas toucher au rpertoire des sources originels
/usr/src/linux/. Les commandes suivantes permettront d'extraire les sources dans le rpertoire ddi
aux sources de Linux :
cd /usr/src
tar xvfz linux-2.6.13.2.tar.gz
Si l'on dispose dj d'une version complte des fichiers sources, et que l'on dsire appliquer un patch,
il faut dcompresser le fichier de patch avec la commande suivante :
gunzip fichier.gz

o fichier.gz reprsente le fichier de patch compress (en supposant qu'il ait t compress l'aide de
gzip). L'application du patch se fait de la manire suivante :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 243


patch -p1 < fichier
Cette commande doit tre lance partir du rpertoire des sources du noyau (par exemple
/usr/src/linux-2.6.13.2/). Dans cette ligne de commande, fichier reprsente le nom du fichier de patch
prcdemment dcompress, et l'option -p1 indique au programme patch d'utiliser les noms de
rpertoires relatifs au rpertoire parent ( savoir le rpertoire contenant le rpertoire des sources du
noyau, donc /usr/src/ dans notre cas). Si le patch doit tre appliqu depuis un autre rpertoire, il faudra
ventuellement modifier l'option -px passe en paramtre au programme patch, o x est le nombre de
niveaux de rpertoires ignorer pour l'application du patch. Consultez la page de manuel patch pour
plus de dtails sur cette option.
7.3.2. Choix des options de configuration du noyau
La configuration du noyau peut se faire l'ancienne avec la commande suivante :
make config
Cette commande pose une srie de questions auxquelles il faut pouvoir rpondre correctement du
premier coup. On n'a pas le droit l'erreur ici, faute de quoi il faut tout reprendre zro.
Il est nettement prfrable d'utiliser la version texte, qui fournit les options de configuration sous la
forme de menus. Cela peut tre ralis avec la commande suivante :
make menuconfig
Certains prfreront l'une des versions X11 du programme de configuration, que l'on peut obtenir avec
les commandes
make xconfig ou make gconfig

Sachez cependant que certaines options ne sont toutefois pas correctement proposes dans ce mode, et
que la version textuelle du programme de configuration reste recommande.
Quelle que soit la mthode utilise, il faut rpondre par 'Y' (pour Yes ), 'N' (pour No ) ou 'M'
(pour Module ) lorsque c'est possible. 'Y' et 'M' incluent la fonctionnalit courante dans le noyau,
'N' la supprime. 'M' permet d'utiliser la fonctionnalit en tant que module du noyau. En gnral,
l'utilisation des modules permet d'allger le noyau car les fonctionnalits sont charges et dcharges
dynamiquement. Cependant, les fonctionnalits ncessaires au dmarrage de Linux, comme les
gestionnaires de disques et systmes de fichiers par exemple, ne doivent en aucun cas tre places dans
des modules, car le systme ne pourrait alors pas dmarrer.
Le choix des options de configuration 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 n'utiliserez pas tous les gestionnaires de priphriques et toutes les fonctionnalits de Linux
avec un mme ordinateur. Il s'agit donc de rpondre aux questions appropries pour votre
configuration, mais de le faire avec rigueur : la moindre erreur de configuration peut empcher votre
systme de fonctionner correctement, voire l'empcher de dmarrer tout simplement. Vous trouverez
une description rapide des principales options de configuration dans l'Annexe A. Les options les plus
utiles seront galement dcrites lorsque cela sera ncessaire dans le chapitre de configuration du
matriel.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 244

7.3.3. Compilation et installation du noyau
Une fois la configuration du noyau ralise, la compilation peut tre lance. Pour cela, il suffit de
lancer la simple commande make dans le rpertoire /usr/src/linux.
Une fois la compilation acheve, il faut installer le nouveau noyau. Cette opration ncessite beaucoup
de prudence, car si le noyau nouvellement cr n'est pas bon, le systme ne redmarrera pas. C'est pour
cela qu'il est conseill de conserver toujours deux versions du noyau, dont on est sr que l'une d'entre
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 suffit donc
de taper par exemple la commande suivante :
cp vmlinuz vmlinuz.old
Il faut galement indiquer au gestionnaire d'amorage qu'il faut qu'il donne maintenant la possibilit de
dmarrer l'ancienne version du noyau sous ce nouveau nom. Pour LILO, il suffit d'diter le fichier
/etc/lilo.conf et d'y ajouter une nouvelle configuration. En pratique, cela revient dupliquer la
configuration du noyau actuel et changer simplement le nom du noyau charger (paramtre
image de la configuration dans /etc/lilo.conf) et le nom de la configuration (paramtre label ).
Vous devrez aussi rajouter l'option prompt si elle n'y est pas dj, afin que LILO vous demande la
configuration lancer chaque dmarrage. Dans notre exemple, le nom du noyau utiliser pour la
configuration de sauvegarde sera vmlinuz.old. De mme, si la configuration initiale de Linux porte le
nom linux , vous pouvez utiliser le nom oldlinux pour la configuration de sauvegarde.
Une fois le fichier lilo.conf mis jour, il faut vrifier que l'on peut bien charger l'ancien systme. Pour
cela, il faut rinstaller LILO et redmarrer la machine. La rinstallation de LILO se fait exactement de
la mme manire que son installation, simplement en l'invoquant en ligne de commande :
lilo
Si LILO signale une erreur, vous devez corriger immdiatement votre fichier lilo.conf et le rinstaller.
Pour le GRUB, la dfinition d'une nouvelle configuration se fait galement en dupliquant la
configuration initiale et en changeant le nom de l'option de menu du GRUB et le chemin sur le fichier
du noyau sauvegard. Veillez galement bien ajouter une option imeou pour avoir la moindre
chance de slectionner la configuration lancer. Tout cela doit tre effectu dans le fichier de
configuration /boot/grub/menu.lst. Contrairement LILO, il n'est pas ncessaire de rinstaller le
GRUB pour que les modifications de ce fichier soient prises en compte au dmarrage suivant.
Vous pourrez alors redmarrer la machine avec la commande suivante :
reboot
Le gestionnaire d'amorage utilis vous propose alors de choisir le systme d'exploitation lancer. Il
faut ici slectionner la configuration de sauvegarde pour vrifier qu'elle 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
configuration du gestionnaire d'amorage.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 245

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. L'installation 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 fichier System.map du rpertoire /usr/src/linux/ dans le rpertoire /boot/ :
cp System.map /boot
Ce fichier 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 qu'il prennent en compte le nouveau
noyau. Cela se fait avec la mme commande que celle utilise prcdemment :
Lilo

Cette opration n'est en revanche pas ncessaire avec le GRUB.
Encore une fois, il faut redmarrer la machine avec la commande suivante :
Reboot

et vrifier que le nouveau noyau fonctionne bien. S'il ne se charge pas correctement, c'est que les
options de configuration choisies ne sont pas correctes. Il faut donc utiliser le noyau sauvegard,
vrifier 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 installer les modules. Il n'est pas ncessaire de
prendre les mmes prcautions pour les modules que pour le noyau. Il suffit donc ici de lancer la
commande suivante dans le rpertoire /usr/src/linux/ :
make modules_install
Au pralable, il est recommand de dcharger tous les modules prsents en mmoire. Cela peut tre
ralis l'aide de la commande modprobe et de son option -r.
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 d'autres versions du noyau existent dans leurs
rpertoires respectifs. Si vous n'en avez plus besoin, vous pouvez les effacer. Attention cependant si
vous avez install des modules additionnels non fournis avec le noyau dans ces rpertoires, vous
pourriez encore en avoir besoin.
Comme on l'a 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 afin
de les charger dans le bon ordre. Il faut donc imprativement mettre jour le fichier
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 246

/lib/modules/version/modules.dep chaque fois que l'on installe les modules, l'aide de la commande
suivante :
depmod -a
Note : La commande depmod -a est excute automatiquement lors de l'installation des modules du
noyau. Toutefois, elle devra tre excute manuellement si l'on installe des modules non fournis avec
le noyau.
Chapitre 8 : Configuration du matriel et des priphriques
Table des matires

8.1. Gnralits sur le support matriel sous Linux
8.2. Configuration des priphriques de masse
8.3. Configuration des cartes filles
8.4. Configuration des ports de communication
Ce chapitre prsente les concepts ncessaires l'installation de cartes filles additionnelles et la
configuration des priphriques complmentaires sous Linux. La procdure d'installation des disques
durs, graveurs, cartes son, cartes graphiques, cartes vido et cartes rseau sera donc dcrite, ainsi que
la manire de les configurer pour obtenir un fonctionnement correct sous Linux.
8.1. Gnralits sur le support matriel sous Linux
Comme il l'a dj t expliqu dans les chapitres prcdents, Linux gre la plupart des priphriques
comme des fichiers 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 modules du noyau, les fichiers spciaux de priphriques, ainsi que leurs rles
respectifs dans la configuration d'un nouveau matriel. La syntaxe utilise pour fournir des options au
noyau lors de son amorage et les mcanismes de dtection du matriel et de chargement automatique
des gestionnaires de priphriques seront galement prsents.
8.1.1. Modules du noyau
Les modules du noyau sont des bibliothques que l'on peut charger dans le noyau lorsque celui-ci a
besoin d'une 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 configures pour tre utilises sous la forme de
modules. Dans le cas des pilotes de priphriques, les modules permettent de raliser un noyau
gnrique et de prendre en charge dynamiquement les diffrents priphriques de l'ordinateur. Certains
pilotes ne fonctionnent d'ailleurs que sous la forme de modules, aussi faut-il savoir les manipuler. Les
modules sont galement fortement utiliss pour la configuration automatique des priphriques
connectables chaud.
8.1.1.1. Chargement et dchargement des modules
Les modules peuvent tre chargs manuellement l'aide des commandes insmod et modprobe.
modprobe 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 simples :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 247

insmod module ou modprobe module

o module est le nom du module charger.
En ralit, la commande modprobe appelle la commande insmod pour chaque module qui doit tre
charg, dans l'ordre des dpendances des modules. De cette manire, chaque module peut tre charg
sans problmes, car toutes les fonctionnalits qu'il utilise sont dj prsentes dans le noyau lors de son
chargement. La commande modprobe va chercher les informations de dpendances dans le fichier
modules.dep, situ dans le rpertoire /lib/module/version/. Ce fichier utilise une syntaxe trs simple, et
spcifie pour chaque module les modules dont il dpend. Bien qu'il puisse parfaitement tre crit la
main, cela ncessiterait d'avoir une connaissance approfondie des modules du noyau. C'est donc pour
cela que l'outil depmod a t crit. Cet outil permet de gnrer le fichier modules.dep
automatiquement, pourvu qu'on l'appelle avec l'option -a en ligne de commande :
depmod a

Il faudra donc appeler cette commande aprs chaque installation ou suppression de modules dans le
systme.
La liste de modules qui ont t chargs peut tre obtenue aisment avec la commande lsmod :
lsmod
Enfin, la commande rmmod permet de dcharger un module, avec la ligne de commande suivante :
rmmod module

On prfrera cependant l'utilisation de la commande modprobe avec l'option -r pour dcharger les
modules, car cette commande est capable de dcharger rcursivement les modules dont dpendait le
module dcharger lorsqu'ils ne sont eux-mme plus utiliss. La syntaxe est alors la suivante :

modprobe -r module
Note : En ralit, il n'est gnralement pas ncessaire de charger les modules du noyau manuellement
pour les pilotes de priphriques. En effet, comme nous allons le voir dans les sections suivantes,
Linux dispose de mcanismes permettant de raliser le chargement des modules de pilotes de
priphriques automatiquement, lorsque ces pilotes sont dtects. Toutefois, il est possible que
certains priphriques ne soient pas pris en charge par ces mcanismes (notamment les vieux
priphriques ISA non Plug and Play).
8.1.1.2. Options des modules
La plupart des modules peuvent prendre un certain nombre d'options lors de leur chargement. Ces
options permettent de fixer certains paramtres, et dans le cas des pilotes de priphriques, de prciser
la configuration matrielle utilise.
Les options des modules peuvent tre spcifies en ligne de commande lors de l'appel de insmod ou
de modprobe. Toutefois, il est possible d'enregistrer ces options de manire permanente l'aide du
fichier de configuration /etc/modprobe.conf. Lors du chargement d'un module modprobe consulte en
effet ce fichier et passe les paramtres indiqus au module charger.
Afin de faciliter la maintenance du systme, modprobe consulte galement les fichiers de
configuration situs dans le rpertoire /etc/modprobe.d/. Ainsi, les options spcifiques chaque
module peuvent tre places dans un fichier de configuration ddi dans ce rpertoire.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 248

Le format de ces fichiers de configuration est assez simple, les options de chaque module se
dfinissant sur une ligne commenantpar le mot cl options. Ce mot cl doit tre suivi du nom du
module pour lequel ces options sont dfinies, lui-mme suivi des paramtres de chargement du
module. La syntaxe est donc la suivante :
options module paramtres

La liste des paramtres que l'on peut passer un module dpend bien videmment du module. Vous
pouvez obtenir la liste des options supportes par un module l'aide de l'option -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.
Les fichiers de configuration de modprobe permettent galement de dfinir la manire dont le
chargement et le dchargement des modules doit tre fait. Pour cela, il permet de spcifier une ligne de
commande complte pour ces oprations. Ces lignes de commandes sont introduites via les mots-clefs
install et remove. La syntaxe de ces mots-cls est la suivante :
install module commande
remove module commande

o module est le nom du module charger ou dcharger, et commande est la ligne de commande de
l'opration effectuer pour cela.
Par exemple, si le port parallle est utilis pour accder un priphrique ncessitant une opration
d'initialisation quelconque, celle-ci peut tre excute lors du chargement du module l'aide du mot
cl install :
install parport_pc modprobe parport_pc --ignore-install && initperiph

(En supposant que la commande initperiph permet d'initialiser le priphrique en question).
videmment, ce type d'opration dpend du matriel connect sur le port parallle, mais le principe est
l. Vous noterez que pour viter que la commande modprobe ne boucle sur elle-mme dans la
commande indique par la directive install, l'option --ignore-install lui a t fournie. Dans le
cas d'une directive remove, il faudrait utiliser l'option --ignore-remove.
Dans la plupart des cas, la dfinition de ces commandes de chargement et de dchargement sont
facultatives, car les modules utilisent gnralement un jeu de paramtres implicites qui permettent de
les utiliser mme si le fichier de configuration modprobe.conf est absent. Vous pouvez visualiser ces
options en renommant le fichier de configuration modprobe.conf et en tapant la commande suivante :
modprobe c

Cette commande vous permettra galement de recrer un nouveau fichier de configuration si
d'aventure vous perdiez celui fourni avec votre distribution.
8.1.1.3. Options des priphriques intgrs au noyau
La plupart des fonctionnalits disponibles sous la forme de modules peuvent galement tre intgres
directement dans le noyau, lors de la compilation de celui-ci. Il est vident qu'il n'est alors pas possible
d'utiliser les fichiers de configuration de modprobe pour fixer les valeurs des diffrentes options que
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 249

ces fonctionnalits peuvent utiliser. En effet, ces paramtres doivent dans ce cas tre dfinis ds le
dmarrage du systme, et il est ncessaire de les fournir ds le chargement du noyau en mmoire.
Cela se fait, comme nous l'avons vu dans la Section 3.4.7, en fournissant au noyau les paramtres en
question sur sa ligne de commande. Nous avons dj vu comment la quantit de mmoire de
l'ordinateur pouvait tre passe au noyau l'aide de l'option mem si elle n'tait pas dtecte
correctement. Il est possible de spcifier de la mme manire de nombreuses autres options, en
particulier pour activer ou dsactiver certains gestionnaires de priphriques ou pour leur indiquer les
paramtres du matriel.
Les options fournies au noyau sur sa ligne de commande par le gestionnaire d'amorage sont lues par
le noyau ds son dmarrage, afin de fixer les paramtres qu'elles dcrivent jusqu'au redmarrage
suivant. Pour certaines fonctionnalits, ces paramtres peuvent toutefois tre modifis dynamiquement
aprs le dmarrage, via le systme de fichiers virtuel /proc/.
Il existe un grand nombre d'options, et leur syntaxe varie en fonction du sous-systme qui les utilise.
Le fichier de documentation kernel-parameters.txt du rpertoire Documentation/ des sources du noyau
vous donnera la liste complte de ces options. Nous verrons quelques-unes de ces options
spcifiquement dans la suite du chapitre, lorsque nous dcrirons les paramtres des gestionnaires de
priphriques.
En revanche, les options des modules intgrs au noyau suivent toujours la mme syntaxe. Cette
syntaxe est la suivante :
module.paramtre=valeur

o module est le nom du module du noyau qui implmente la fonctionnalit lorsqu'elle est utilise sous
la forme de module, paramtre est le nom de l'option de ce module du noyau telle qu'elle est donne
par la commande modinfo, et valeur est sa valeur. Ainsi, si vous voulez intgrer une fonctionnalit
d'un module dans le noyau, il suffit simplement d'ajouter les paramtres complmentaires dans la ligne
de commande de celui-ci en fonction des options dfinies dans les fichiers de configuration de
modprobe. Nous verrons la manire de procder plus loin dans ce chapitre.
Note : Intgrer un pilote de priphrique directement dans le noyau peut tre intressant si ce
priphrique est inamovible et que l'on ne veut pas avoir prendre en charge les modules. Toutefois,
ce n'est pas une bonne ide lorsqu'on installe ce priphrique et qu'on cherche le configurer, ou si
l'on dsire se rserver la possibilit de faire une mise jour de ce priphrique sans redmarrer
l'ordinateur. En effet, il est souvent ncessaire de redmarrer pour prendre en compte de nouveaux
paramtres lorsque le pilote de priphrique est intgr au noyau, alors que lorsqu'il est sous la forme
d'un module, un simple dchargement et rechargement suffit.
Par contre, lorsque votre configuration sera finie, vous pourrez parfaitement vous passez des modules
et supprimer les modules des pilotes de priphriques dont vous ne disposez pas. Vous gagnerez ainsi
de la place disque et potentiellement plusieurs dizaines de secondes au dmarrage de votre ordinateur
si votre distribution recherche les nouveaux priphriques chaque dmarrage.
8.1.2. Les fichiers spciaux de priphriques
8.1.2.1. Gnralits
La notion de fichier spcial de priphrique simplifie normment l'utilisation du matriel par les
programmes d'application, puisque la plupart des oprations sur un priphrique reviennent
simplement raliser une criture ou une lecture. videmment, l'criture sur un fichier spcial de
disque permet d'enregistrer les donnes sur ce disque, et la lecture permet de les rcuprer. Mais cela
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 250

ne s'arrte pas l ! Par exemple, la communication avec le modem se fait simplement en crivant et en
lisant les donnes sur le fichier spcial du port srie sur lequel le modem est connect. De mme, jouer
un fichier son revient simplement l'crire dans le fichier spcial qui gre la carte son. Il est mme
possible d'accder la mmoire vido par l'intermdiaire d'un fichier spcial de priphrique...
Bien entendu, certaines fonctionnalits avances des priphriques ne peuvent pas tre accdes
simplement par une criture ou une lecture dans un fichier spcial. Le systme fournit donc aux
applications d'autres moyens d'accder ces fonctionnalits, par l'intermdiaire d'appels systmes
spcifiques (pour ceux qui sont intresss par la programmation systme, cet appel systme est ralis
par la fonction ioctl, dont le nom provient de l'abrviation de l'anglais Input / Output ConTroL ).
videmment, cette mthode n'est utilise que par les programmes qui connaissent bien le
fonctionnement du gestionnaire des priphriques, car ils doivent spcifier une requte que seul ce
gestionnaire comprend en gnral. Quoi qu'il en soit, les requtes de ce type utilisent elles aussi un
descripteur de fichier spcial de priphrique, ce qui fait que tous les accs au matriel ont lieu par
l'intermdiaire de ces fichiers.
Il existe deux principaux types de fichiers spciaux de priphriques. Le premier type correspond aux
priphriques de type bloc, dont les donnes ne peuvent tre lues que par blocs (c'est 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 fichier spcial de priphrique est caractris par deux codes permettant
d'identifier le type et le modle du priphrique auquel il donne accs. Ces deux codes portent le nom
de code majeur et de code mineur. C'est par l'intermdiaire de ces codes que le noyau est capable de
retrouver le gestionnaire de priphriques utiliser pour satisfaire aux requtes des clients qui
accdent un fichier spcial de priphrique. Il y a donc, en gnral, une association unique entre ces
codes et les gestionnaires de priphriques.
Les fichiers spciaux de priphriques sont tous stocks dans le rpertoire /dev/. Selon votre
distribution, ce rpertoire peut tre gr de manire totalement dynamique en fonction du matriel
effectivement install sur votre machine, ou tre prrempli statiquement avec les fichiers spciaux de
la plupart des priphriques rencontrs sur le march (y compris donc pour des priphriques
inexistants sur votre machine). Nous allons voir dans les sections suivantes comment ces fichiers sont
crs et utiliss par le systme en relation avec les pilotes de priphriques.
8.1.2.2. Le systme de fichiers virtuel udev
8.1.2.2.1. Prsentation
Depuis la version 2.6 du noyau, Linux dispose d'une fonctionnalit permettant aux applications de
dtecter l'apparition et la suppression des priphriques, que ceux-ci soient dtects au dmarrage du
systme ou qu'ils soient branchs chaud une fois l'ordinateur allum.
Cette fonctionnalit est principalement utilise par le sous-systme udev (abrviation de Userspace
/dev ). Comme son nom l'indique, udev a pour principale fonction de prendre en charge la gestion du
rpertoire /dev/, mais en ralit il est capable de faire beaucoup mieux que cela.
En particulier, udev peut raliser les oprations suivantes lorsque le noyau signale la prsence d'un
nouveau priphrique :
chargement du module du pilote de priphrique si ncessaire ;
si le priphrique requiert un firmware, chargement de celui-ci ;
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 251

cration du fichier spcial de priphrique et de ses alias ncessaires l'utilisation du
priphrique ;
excution des oprations d'initialisation complmentaires ou lancement des applications
utilitaires associes au priphrique ;
notification de la prsence du priphrique l'ensemble des autres programmes qui
s'intressent la gestion du matriel (par exemple le gestionnaire de bureau).
udev peut galement effectuer les oprations ncessaires la suppression d'un priphrique, ce qui est
utile pour les priphriques amovibles. Ainsi, la dtection, la configuration et la notification
dynamique de la prsence des priphriques Plug and Play est totalement automatise.
Note : Le noyau, et donc udev, ne sont en ralit capables de dtecter que les priphriques connects
au bus IDE, USB, PCMCIA, FireWire ou PCI. En effet, ces bus utilisent des technologies
suffisamment rcentes et permettent la dtection, la configuration automatique et l'identification
prcise des priphriques. De ce fait, seuls les pilotes de priphriques de ce type peuvent tre chargs
automatiquement par udev. Les pilotes des priphriques plus anciens (priphriques ISA par
exemple) ne peuvent tre chargs automatiquement, car ces priphriques ne sont dtects que si leur
pilote est dj charg dans le noyau. Aussi est-il ncessaire de prcharger ces pilotes au dmarrage de
l'ordinateur, ou de les intgrer directement dans le noyau, pour qu'ils soient reconnus automatiquement
par le systme.
udev permet de rsoudre plusieurs problmes concernant les fichiers spciaux de priphriques. Le
plus vident pour l'utilisateur est que seuls les fichiers spciaux des priphriques effectivement
prsents et pris en charge par un gestionnaire de priphrique apparaissent dans le rpertoire /dev/.
Le rpertoire /dev/ n'a donc plus contenir les fichiers spciaux de priphriques pour tous les
priphriques pris en charge par Linux. Il en est d'autant rduit, ce qui permet de le placer dans un
systme de fichiers virtuel (c'est--dire un systme de fichiers gr par le noyau en mmoire). La
plupart des distributions bases sur udev utilisent cette technique afin d'acclrer la phase de
chargement du systme et les accs aux fichiers spciaux de priphriques par les applications, et
d'viter de consommer inutilement de l'espace disque pour stocker des fichiers spciaux qui sont de
toutes manires recrs dynamiquement chaque dmarrage.
Un autre avantage d'udev est que les codes majeurs et mineurs des fichiers spciaux de priphriques
peuvent prsent tre attribus dynamiquement par le noyau lorsque les gestionnaires de
priphriques s'initialisent. Cela a plusieurs consquences :
il n'y a plus besoin d'avoir recours une autorit centrale pour obtenir les valeurs de codes
mineurs et majeurs, ceux-ci pouvant tre dtermins dynamiquement par le noyau ;
il n'y a plus de risque de conflit entre deux priphriques, le noyau s'assurant de l'unicit des
codes utiliss ;
la limitation du nombre de priphriques due au nombre limit de codes majeurs et mineurs
n'existe plus (il suffit de consulter la liste du fichier /usr/src/linux/Documentation/devices.txt
pour constater qu'il reste peu de codes libres pour les priphriques venir).
Enfin, udev permet de simplifier considrablement la configuration et l'utilisation du systme. Par
exemple, il est possible de fixer de manire permanente le nom des fichiers spciaux des priphriques
amovibles, et les environnements utilisateurs graphiques peuvent ragir l'apparition et la
suppression des priphriques afin de permettre leur utilisation par l'utilisateur.
8.1.2.2.2. Principe de fonctionnements de udev
Le principe de fonctionnement de udev est le suivant. Lorsque le noyau dtecte un changement dans la
configuration matrielle, il signale ce changement via un canal de communication NetLink aux
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 252

applications qui s'y intressent. udev utilise le dmon udevd pour couter sur ce canal de
communication, et il met chacun de ces vnements dans une file pour les traiter dans leur ordre
d'apparition.
Les vnements envoys par le noyau contiennent toutes les informations relatives au priphrique
pour lequel le noyau a gnr un vnement. Ces paramtres comprennent, entre autres, la nature de
l'vnement (apparition ou disparition d'un priphrique inconnu sur un bus, demande de chargement
de firmware, notification de chargement ou de dchargement d'un pilote de priphrique, etc.). udevd
utilise ces informations, ainsi que les informations sur le priphrique fournies par le noyau au travers
du systme de fichiers /sys/, pour effectuer les oprations de chargement des modules de pilotes de
priphrique, de chargement des firmware, et de cration des fichiers spciaux de priphriques.
Note : Le dmon udevd excute les commandes udev selon l'ordre indiqu par le noyau via un
numro de squence. Cette srialisation est ncessaire parce que le noyau est capable de gnrer
plusieurs vnements simultanment pour les priphriques complexes, et qu'il faut s'assurer que les
pilotes de priphriques parents sont bien initialiss avant de charger les pilotes des sous-
priphriques. Ce cas peut se produire par exemple pour les cartes d'extension ou pour les hubs USB.
Les anciennes versions de udev n'coutaient pas directement les vnements gnrs par le noyau. Le
mcanisme utilis tait lgrement plus complexe et passait par un programme utilitaire nomm
hotplug. Le noyau appelait ce programme chaque fois qu'un vnement se produisait au niveau de la
configuration matrielle. Ce programme dterminait les modules de pilotes de priphriques charger,
effectuait le chargement de ces modules, et initialisait les priphriques avec leur firmware si
ncessaire. Puis, il envoyait les vnements au dmon udevd pour que celui-ci mette jour le
rpertoire /dev/. Ce mcanisme a t abandonn au profit d'une gestion totalement intgre dans
udevd en raison des mauvaises performances dues l'excution de l'utilitaire hotplug pour chaque
vnement matriel.
Le comportement que udev doit adopter dpend bien videmment de chacun des priphriques, ou du
moins de la classe du priphrique pour lequel l'vnement se produit. Ce comportement est donc
paramtrable l'aide des fichiers de configuration situs dans le rpertoire /etc/udev/ et
/etc/udev/rules.d/. Ce dernier rpertoire contient en particulier les rgles qui permettent de dfinir les
fichiers spciaux de priphriques qui doivent tre crs, les alias permettant de les nommer de
manire constante, et les permissions que l'on doit leur affecter.
Le rpertoire /etc/udev/ ne contient gnralement que le fichier de configuration principal d'udev,
savoir le fichier udev.conf. Ce fichier permet d'indiquer le rpertoire cible dans lequel les fichiers
spciaux de priphrique seront crs (paramtre udev_root, dont la valeur doit obligatoirement
tre /dev/), le rpertoire contenant les fichiers de dfinition des actions prises par udev en fonction des
diffrents vnements (paramtre udev_rules, dont la valeur est normalement /etc/udev/rules.d/),
et le niveau d'erreur partir duquel les traces d'udev seront enregistrs dans le journal du systme
syslog (paramtre udev_log).
L'essentiel de la configuration rside toutefois dans les fichiers du rpertoire /etc/udev/rules.d/. Ces
fichiers expriment, sous la forme de rgles permettant de slectionner les diffrents vnements
provenant du noyau en fonction des informations de cet vnement, les actions entreprendre. Ce
mcanisme est suffisamment gnrique pour permettre d'identifier de manire unique les priphriques
et de raliser les actions dont udev a la charge.
Les rgles sont dcrites raison d'une ligne par rgle dans les fichiers de configuration. L'action
identifie par chaque rgle n'est excute que si l'vnement gnr par le noyau correspond aux
critres de slection de la rgle. Certains mots cls permettent d'obtenir les informations sur
l'vnement produit par le noyau, et d'autres mots cls permettent de dcrire les actions effectuer
lorsque les critres de slection de l'vnement sont satisfaits.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 253

Par exemple, le mot cl ACTION identifie la nature de l'vnement. Le mot cl KERNEL donne le
nom que le noyau donne au priphrique qui a gnr l'vnement, et DEVPATH le chemin du
priphrique dans le systme de fichiers virtuel /sys/. Inversement, le mot cl NAME permet de
paramtrer l'action de cration du fichier spcial de priphrique en dfinissant le nom de ce fichier, et
OWNER, GROUP et MODE permettent de dfinir respectivement l'utilisateur propritaire, le groupe,
et les droits d'accs ce fichier. Ainsi, les simples rgles suivantes :
KERNEL=="mem", NAME="%k", GROUP="kmem", MODE="0640"
KERNEL=="kmem", NAME="%k", GROUP="kmem", MODE="0640"

permettent de crer les fichiers spciaux de priphriques /dev/mem et /dev/kmem (qui donnent
respectivement accs la totalit de la mmoire physique de l'ordinateur et la mmoire du noyau).
Bien entendu, ces fichiers spciaux ne doivent tre accessibles que par l'administrateur, mais il est
galement autoris que les utilisateurs du groupe kmem puissent y accder en lecture.
Note : Notez bien que dans les dfinitions de rgle, le signe '==' est utilis pour indiquer une
contrainte d'galit, alors que le signe '=' est utilis pour raliser une affectation, et constitue donc une
partie de l'action de la rgle.
D'autres mots cls sont disponibles. Ainsi, SYMLINK permet de dfinir des liens symboliques
supplmentaires (par exemple /dev/modem ou /dev/mouse) rfrenant les fichiers spciaux de
priphriques rels. Le mot cl PROGRAM permet d'excuter un programme avant que le fichier
spcial de priphrique ne soit cr (gnralement pour dterminer le nom du fichier crer,
justement), et le mot cl RUN permet d'excuter une commande aprs que le fichier spcial de
priphrique a t cr (gnralement pour configurer le priphrique ou signaler sa prsence
l'utilisateur). Vous trouverez de plus amples renseignements sur toutes ces rgles dans la page de
manuel de udev, ainsi que dans la documentation fournie avec udev pour la rdaction de rgles
personalises.
Les fichiers du rpertoire /etc/udev/rules.d/ doivent tous avoir l'extension .rules. De plus, ces fichiers
sont interprts dans l'ordre lexicographique de leur nom. Ainsi, il est d'usage de prfixer le nom du
fichier par un numro indiquant l'ordre de priorit des rgles de ce fichier par rapport aux autres. Par
exemple, les rgles du fichier 50-udev.rules (fichier de dfinition des rgles principales de udev) sont
toujours lues avant les rgles du fichier 90-hal.rules (fichier de dfinition des rgles permettant
d'envoyer les vnements concernant le matriel au dmon d'abstraction du matriel hald), car 50 est
plus petit que 90 dans l'ordre lexicographique.
Comme vous pouvez le constater, les fichiers de configuration de udev permettent de paramtrer de
manire trs souple et trs prcise les actions effectuer lorsqu'un priphrique apparat ou disparat.
Nous verrons dans les sections suivantes comment les principales actions sont ralises. La
contrepartie de ce systme est tout de mme une certaine complexit dans la dfinition des rgles des
fichiers de configuration d'udev, mais vous n'aurez gnralement pas vous en proccuper, car les
distributions fournissent des fichiers de configuration adapts la plupart des usages.
8.1.2.2.3. Identification et chargement des pilotes de priphrique
Gnralement, les priphriques modernes disposent d'identifiants qui leur sont propres et qui peuvent
tre rcuprs par des mcanismes standards des bus modernes. Ces identifiants sont gnralement au
nombre de deux, le premier tant un code spcifique au fabricant du priphrique, et le deuxime tant
un identifiant de ce priphrique. Par exemple, vous pouvez visualiser les diffrents priphriques
connects au bus PCI de votre ordinateur avec la simple commande lspci -nn. La commande lsusb
vous donnera des identifiants similaires pour les priphriques USB.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 254

udev peut dterminer, l'aide des identifiants du matriel, quels sont les pilotes de priphriques
capables de grer ce matriel. En effet, les fichiers sources de chaque module de pilote de priphrique
contiennent une liste des identifiants des priphriques qu'ils prennent en charge. Lors de l'installation
du module, la commande depmod extrait ces informations et les place dans un des fichiers situs dans
le rpertoire d'installation des modules du noyau ( savoir /lib/module/version/, o version est le
numro de version du noyau). depmod cre un fichier pour chaque type de priphrique. Ces fichiers
ont tous un nom de la forme :
module.typemap

o type est le type de priphrique.
Par exemple, le fichier module.usbmap contient, pour chaque priphrique USB pris en charge par les
modules installs, une ligne indiquant le nom du module et l'ensemble des identifiants du priphrique
USB en question.
Ainsi, lorsque le noyau indique udev l'apparition d'un nouveau priphrique, celui-ci consulte les
fichiers d'association des modules aux priphriques pour dterminer quel module est capable de grer
ce priphrique. Ce module est charg si ncessaire, et le gestionnaire de priphrique peut
s'initialiser.
Figure 8-1. Chargement des modules de pilotes de priphrique

Note : La table des priphriques pris en charge par certains modules peut ne pas tre complte ou
jour. C'est gnralement le cas pour les nouveaux priphriques vendus par un fabricant qui utilisent
une nouvelle rvision d'une puce lectronique que des anciens priphriques supports par un pilote
utilisaient dj. Ainsi, lorsqu'un priphrique n'est pas reconnu immdiatement par les pilotes
existants, vous pouvez tenter une recherche sur Internet avec les identifiants de priphriques tels
qu'ils sont donns par lspci ou lsusb et identifier le pilote ncessaire pour ce priphrique. S'il en
existe un, vous pouvez essayer d'ajouter les identifiants de votre priphrique dans les sources du
pilote, le recompiler et l'installer nouveau. Si ce pilote vous permet d'utiliser effectivement ce
priphrique de manire stable, vous pouvez alors demander au mainteneur du pilote d'ajouter les
identifiants du priphrique dans la liste des priphriques supports.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 255

8.1.2.2.4. Chargement des firmwares
Certains priphriques ncessitent un firmware (c'est--dire un micro logiciel pour les priphriques
volus) pour fonctionner correctement. Ce firmware peut tre stock de manire permanente dans le
priphrique dans une mmoire non volatile, ou devoir tre recharg chaque initialisation du
priphrique. Dans ce cas, cette opration de chargement doit tre faite par le pilote de priphrique.
Grce udev, il est possible de faire en sorte que cette opration se fasse automatiquement. Lorsqu'un
pilote dsire charger le firmware dans le priphrique, il appelle une fonction du noyau qui gnre un
vnement udev. udev prend alors en charge les oprations et localise le firmware, puis le fournit au
noyau. Le pilote de priphrique peut alors effectuer le chargement effectif du firmware dans le
priphrique. Pour cela, udev copie le fichier de firmware demand par le pilote de priphrique dans
un fichier ddi cet effet dans l'entre du priphrique du systme de fichiers virtuel /sys/. Bien
entendu, le chemin permettant de trouver les informations du priphrique dans le systme de fichiers
virtuel /sys/ est fourni aux scripts de configuration d'udev via le mot cl EVRATH.
Figure 8-2. Chargement des firmwares

En gnral, les fichiers de firmware sont fournis avec les pilotes de priphriques ou sont disponibles
sur le site Web indiqu dans leur documentation. Ils doivent tre installs dans le rpertoire
/lib/firmware/. Il est galement ncessaire d''activer l'option Hotplug firmware loading support du
sous-menu Generic Driver Options du menu Device Drivers pour que cette fonctionnalit soit
disponible.
8.1.2.2.5. Cration des fichiers spciaux de priphriques
chaque priphrique dtect par un pilote de priphrique, le noyau gnre un vnement
destination d'udev. Ces vnements indiquent le nom du priphrique tel qu'il est connu par le
gestionnaire de priphrique, ainsi que les informations sur le priphrique dans le systme de fichiers
/sys/. udev utilise ces informations pour dterminer les rgles qui indiquent quels sont les fichiers
spciaux de priphriques utiliser.
Si aucune rgle ne correspond, udev cre le fichier spcial de priphrique avec le nom utilis par le
pilote de priphrique pour l'identifier. Dans le cas contraire, c'est le nom fourni dans les fichiers de
configuration qui est utilis. De mme, les fichiers sont crs par dfaut au nom de l'utilisateur root, et
seul cet utilisateur dispose des droits de lecture et d'criture sur ces fichiers. Enfin, si des liens
symboliques sont dfinis dans les rgles appliques, ceux-ci sont crs. Par exemple, il est classique
d'avoir un lien symbolique cdrom pointant vers le priphrique de type bloc grant le lecteur de CD.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 256

Figure 8-3. Cration des fichiers spciaux de priphriques

Les rgles d'udev sont gnralement fournies par les distributions et permettent de crer les fichiers
spciaux de priphriques de manire gnrique, ainsi que les liens symboliques standards. De mme,
bien que les interfaces rseau ne soient pas accdes par l'intermdiaire de fichiers spciaux de
priphriques, les rgles udev sont galement appliques afin de les renommer sous un nom
spcifique.
8.1.2.2.6. Persistance des fichiers spciaux de priphriques
L'un des princpaux avantages d'udev est de permettre un nommage fixe des diffrents priphriques.
Par exemple, si vous disposez de deux imprimantes, chaque imprimante se verra affecter un fichier
spcial de priphrique ddi. Toutefois, il est possible qu'une de ces imprimantes ne soit pas
disponible, ou pas allume. Dans ce cas, un dcallage des fichiers spciaux de priphriques peut se
produire, ce qui peut tre gnant si une configuration spcifique doit tre faite pour la deuxime
imprimante. De mme, vous pouvez disposer de plusieurs disques amovibles ou clefs USB, et il peut
tre utile que les fichiers spciaux de ces priphriques aient un nom constant.
udev permet tout cela, en faisant en sorte que les rgles des fichiers de configuration slectionnent les
priphriques sur une de leurs caractristiques principales (par exemple, le nom de modle du
priphrique).
Pour fixer les ides et donner un exemple, supposons que l'on ait deux clefs mmoire USB de modles
diffrents et que l'on dsire affecter de manire permanente des fichiers de priphriques chacune
d'elle. Il suffit pour cela simplement de trouver un paramtre unique dans les identifiants de ces
priphriques afin de les distinguer.
La manire la plus simple pour obtenir la liste des paramtres d'un priphrique est d'utiliser la
commande udevinfo. Pour obtenir la liste des attributs utilisables dans les rgles de udev, il faut
utiliser l'option --attribute-walk. Le priphrique dont les attributs doivent tre rcuprs peut
tre spcifi soit grce au nom de son fichier spcial de priphrique utilis par le noyau (avec l'option
--name), ou avec son chemin dans le systme de fichiers /sys/.
Note : La commande udevmonitor peut vous permettre de dterminer le chemin du priphrique dans
le systme de fichiers /sys/.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 257

Par exemple, la commande suivante permet d'obtenir les informations sur un disque amovible
connect sur le port USB et apparaissant sous le nom /dev/sdb :
udevinfo --name=/dev/sdb --attribute-walk

Supposons que cette commande donne le rsultat suivant :

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

looking at device '/block/sdb':
KERNEL=="sdb"
SUBSYSTEM=="block"
DRIVER==""
ATTR{capability}=="12"
ATTR{stat}==" 52 127 556 486 0 0 0 0 0 426 486"
ATTR{size}=="156301488"
ATTR{removable}=="0"
ATTR{range}=="16"
ATTR{dev}=="8:16"

looking at parent device '/devices/pci0000:00/0000:00:02.2/usb1/1-2/1-
2:1.0/host5/target5:0:0/5:0:0:0':
KERNELS=="5:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
ATTRS{modalias}=="scsi:t-0x00"
ATTRS{ioerr_cnt}=="0x0"
ATTRS{iodone_cnt}=="0x3b"
ATTRS{iorequest_cnt}=="0x3b"
ATTRS{iocounterbits}=="32"
ATTRS{timeout}=="30"
ATTRS{state}=="running"
ATTRS{rev}=="09.0"
ATTRS{model}=="WD800VE-00HDT0 "
ATTRS{vendor}=="WDC "
ATTRS{scsi_level}=="3"
ATTRS{type}=="0"
ATTRS{queue_type}=="none"
ATTRS{queue_depth}=="1"
ATTRS{device_blocked}=="0"
ATTRS{max_sectors}=="240"

...
Comme on peut le voir, les informations du priphrique /dev/sdb sont d'abord affiches. Viennent
ensuite les informations des priphriques parents, donc en particulier les informations sur le disque
physique (ici, un Western Digital WD800VE-00HDT0), et ainsi de suite (seules les deux premiers
blocs d'information ont t recopis dans cet exemple, les suivants identifiant l'adaptateur USB et les
composants du bus USB eux-mmes).
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 258

Ainsi, les informations spcifiques au matriel connect que l'on doit utiliser pour dfinir un fichier
spcial de priphrique unique sont donnes dans le deuxime groupe d'information (relative au disque
physique). Il est donc possible de dfinir la rgle udev suivante pour crer un fichier spcial de
priphrique /dev/hd_externe ddi ce disque :
SUBSYSTEMS=="scsi", ATTRS{model}=="WD800VE-00HDT0", NAME="hd_externe"

Notez cependant que l'on ne peut pas, dans une mme rgle udev mlanger des critres de slection
utilisant des informations des diffrents groupes d'informations renvoys par udevinfo, parce que
chaque groupe identifie un priphrique logique et un seul dans le noyau.
Une fois vos rgles dfinies, vous pouvez les tester avec la commande udevtest. Cette commande
prend en paramtre le nom du priphrique de plus haut niveau renvoy par udevinfo. Dans notre
exemple, il s'agit de /block/sdb :
udevtest /sys/block/sdb

Cette commande affichera l'ensemble des oprations que udev effectuerait si ce priphrique tait
connect. Attention toutefois, les informations affiches proviennent d'une simulation, et peuvent tre
incorrectes si des rgles udev utilisent des commandes externes, puisque en simulation ces commandes
ne sont pas excutes.
En pratique, les distributions font en sorte que les rgles de nommage des priphriques soient crites
ou mises jour dynamiquement lors de la premire dtection du priphrique. Elles s'appuient pour
cela sur des programmes utilitaires, gnralement situs dans le rpertoire /lib/udev/. Par exemple, le
script /lib/udev/cdrom-symlinks.sh a pour but de crer le fichier de configuration /etc/udev/rules.d/75-
optical-devices.rules, qui contient les dfinitions des liens symboliques sur les lecteurs de disque
optique (CDROM et graveurs de CD par exemple).
Note : Les scripts de gnration de rgles peuvent ne pas nommer les priphriques comme vous le
dsirez (par exemple, le fichier spcial /dev/cdrom peut rfrencer votre graveur de CD, alors que le
fichier spcial /dev/cdwriter un simple lecteur de CD. Dans ce cas, vous pourrez modifier directement
le fichier de configuration 75-optical-devices.rules pour remettre les choses dans l'ordre. Si vous vous
trompez, supprimez simplement ce fichier, il sera recr automatiquement au prochain redmarrage
d'udev.
8.1.2.2.7. Notification des applications utilisateurs
udev est galement livr avec un fichier de configuration contenant une rgle permettant de notifier les
applications de haut niveau des apparitions et disparition des priphriques.
Le mcanisme utilis se base ici sur le sous-systme HAL ( Hardware Abstraction Layer Daemon ).
Ce sous-systme a pour principal but de fournir une interface unifie pour que l'ensemble des
applications de haut niveau (par exemple les gestionnaires de bureau KDE et Gnome) puisse obtenir
des informations sur les priphriques et tre notifies de toutes modification de la configuration
matrielle.
Toutes ces oprations sont implmentes au niveau du dmon hald. Ce dmon reoit les informations
concernant les priphriques directement de udev, grce la rgle mentionne ci-dessus. Grce ces
informations, il maintient une base de donnes des priphriques prsents et de leurs principales
caractristiques.
De plus, hald fournit une interface de programmation standard pour toutes les applications utilisateurs.
Cette interface se base sur un protocole de communication standard, le protocole D-BUS. Ce protocole
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 259

a t dvelopp de manire commune avec les deux principaux environnements de bureau de Linux,
savoir KDE et Gnome. Ainsi, les applications de ces environnements sont capables de grer les
modificiations intervenant sur le matriel. Par exemple, le fait de brancher une clef USB ou un disque
externe permet de demander l'utilisateur s'il veut le monter ou non.
Note : Le protocole de communication DBUS a t conu de manire gnrique est n'a pas pour
vocation de n'tre utilis que par HAL. En ralit, c'est tout un systme de communication inter
processus de haut niveau et d'utilisation simplifie (par rapport aux systmes de composants lourds tels
que CORBA par exemple).
DBUS permet les communications entre les applications utilisateurs d'un mme utilisateur, ainsi que
les communications transverses entre les applications systme. En pratique, ces communications sont
gres par un dmon, dont une instance est lance pour le systme, et potentiellement une instance
supplmentaire est excute pour chaque utilisateur. Les mcanismes de DBUS et de HAL ne sont
d'intrt que pour les programmeurs et ne seront donc pas dtaills plus dans ce document.
8.1.2.2.8. Initialisation du systme
Pour terminer cette description des mcanismes d'udev, signalons que le dmon udevd ne peut
videmment pas couter les vnements du noyau avant qu'il ne soit lanc. Par consquent, les
priphriques dtects par le noyau avant le dmarrage du dmon udevd ne sont pas tre dtcts
automatiquement.
Ce problme est gr au niveau des scripts de dmarrage des distributions, en rejouant les vnements
matriels des priphriques dj dtects par le noyau. Cela se fait en appelant la commande
udevtrigger. Cette opration est totalement prise en charge par les distributions, et vous n'avez
normalement pas utiliser cette commande.
8.1.2.3. Gestion statique des fichiers spciaux de priphriques
La gestion des priphriques et du rpertoire /dev/ par udev est utilise par la plupart des distributions
rcentes. Toutefois, les anciennes distributions sont encore susceptibles d'utiliser un rpertoire /dev/
compltement statique, c'est--dire rempli l'avance avec les fichiers spciaux des priphriques les
plus courants.
Normalement, votre distribution fournit un rpertoire /dev/ relativement complet. Vous n'avez donc
pas toucher au rpertoire /dev/. Cependant, si vous devez crer un fichier spcial de priphrique
vous-mme, par exemple pour un gestionnaire de priphrique exotique non pris en charge par votre
distribution ou non reconnu par le systme, vous devrez utiliser la commande mknod. Sa syntaxe est
relativement simple :
mknod fichier type majeur mineur

o fichier est le nom du fichier spcial de priphrique crer, type est une lettre indiquant le type du
fichier spcial ('c' pour les fichiers de type caractre et 'b' pour les fichiers de type bloc), et majeur et
mineur sont les codes majeur et mineur du priphrique. Je vous invite consulter la page de manuel
de la commande mknod pour plus d'informations.
Note : La liste des codes majeurs et mineurs dj affects des priphriques est donne dans le
fichier /usr/src/linux/Documentation/devices.txt. Comme vous pouvez le constater, l'utilisation d'un
rpertoire /dev/ statique impose donc de disposer d'une autorit centrale rgissant l'affectation des
codes majeurs et mineurs aux gestionnaires de priphriques. De plus, la plupart des codes sont dj
affects, ce qui est une des raisons pour laquelle le systme udev a t dvelopp.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 260

Lorsqu'une application tente d'accder un fichier spcial de priphrique, trois cas peuvent se
prsenter :
soit un pilote de priphrique capable de grer le priphrique est dj charg ;
soit il n'existe aucun pilote capable de grer le priphrique, mais le noyau peut en trouver un ;
soit le noyau est incapable de trouver un pilote pour ce priphrique.
Dans les deux premiers cas, la requte de l'application est satisfaite, ventuellement aprs le
chargement automatique du pilote de priphrique sous la forme de module. Dans le troisime cas,
videmment, la requte est refuse.
Ainsi, lors de l'ouverture d'un fichier spcial de priphrique par une application, le noyau vrifie s'il
dispose d'un pilote de priphrique capable de grer ce priphrique, en s'appuyant sur les codes
majeur et mineur du fichier spcial de priphrique. Si ce n'est pas le cas, il effectue un appel
modprobe pour charger le module contenant ce pilote de priphrique.
Le nom du module dont le noyau demande le chargement modprobe dpend du pilote et ne
correspond pas forcment un nom de module existant. Par exemple, le module de gestion des ports
parallles se nomme, sur les ordinateurs de type PC, parport_pc. Toutefois, lorsque le noyau dsire
accder au port parallle, il n'utilise pas ce nom, mais plutt un nom gnrique, qui est le mme pour
toutes les architectures matrielles supportes par Linux. Ce nom est parport_lowlevel. Ainsi, le noyau
utilise la commande suivante pour charger le module de prise en charge du port parallle :
modprobe -k parport_lowlevel

L'option -' permet d'indiquer modprobe qu'il est appel par le noyau, donc dans le contexte de
chargement automatique des modules.
modprobe doit donc faire la correspondance entre le nom de module demand par le noyau et le nom
d'un module rel. C'est donc dans les fichiers de configuration de modprobe que cette correspondance
est dfinie. Pour cela, un certain nombre d'alias peuvent tre dfinis pour identifier les 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 l'alias, et module est le nom du module rel. Lorsque la commande modprobe
est appele avec le nom d'un alias en paramtre, elle commence par rechercher le nom du module rel
dans ses fichiers de configuration, puis elle le charge en mmoire.
Par exemple, pour charger le module parport_pc automatiquement lorsque le noyau a besoin d'accder
au port parallle, on pourra ajouter la dfinition d'alias suivante dans le fichier
modprobe.conf :
alias parport_lowlevel parport_pc
Figure 8-4. Chargement automatique des modules du noyau
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 261


Vous pouvez constater que le mcanisme d'alias permet de rendre le noyau indpendant des modules
utiliss, puisque l'association entre le nom du module utilis par le noyau et le module rel et ses
paramtres est maintenue dans des fichiers de configuration. L'inconvnient de cette mthode est en
revanche qu'il faut connatre les noms de modules utiliss par le noyau pour chaque pilote et pour leurs
fonctionnalits. Ces noms sont assez variables et dpendent de la fonctionnalit demande. En gnral,
ce nom apparat dans les messages de traces du noyau lorsqu'il ne parvient pas localiser un module
lors de son chargement automatique. Ces messages de traces peuvent tre affichs l'aide de la
commande dmesg. Il est donc possible de dterminer la liste des modules que le noyau a tent de
charger relativement facilement. Toutefois, cela n'indique pas forcment la fonctionnalit implmente
par le module en question, et encore moins l'application qui a tent d'utiliser cette fonctionnalit.
Il est heureusement beaucoup plus facile de savoir quelle est la fonctionnalit demande lorsque celle-
ci a trait un priphrique de l'ordinateur. En effet, le nom de module utilis par le noyau pour chaque
gestionnaire de priphrique est construit partir du type de fichier spcial de priphrique et de ses
codes majeur et mineur. Ainsi, le noyau utilise un nom de module de la forme char-major-xxxx
pour les priphriques de type caractre, et un nom de la forme block-major-xxxx pour les
priphriques de type bloc. Les caractres xxxx identifient le code majeur de ce priphrique, plus
rarement son code mineur. Il est donc facile de dduire le gestionnaire de priphrique ncessaire la
gestion de ce fichier spcial de priphrique, et de dfinir l'alias permettant de faire la correspondance
entre le nom du module utilis par le noyau et le module rel charger.
Par exemple, pour les cartes son, le nom de module char-major-14 est utilis pour demander le
chargement du module de gestion du son, parce que les cartes son utilisent toutes le code majeur 14. Il
faut donc dfinir un alias sur ce nom de module vers le module du gestionnaire de cartes son. Comme
on le verra dans la section traitant de la configuration des cartes son, ce module pourra lui-mme
demander le chargement de modules complmentaires, en fonction de la carte son rellement utilise
et des fonctionnalits demandes. Le numro de code mineur sera indiqu lors de ces oprations.
Si vous devez modifier les fichiers de configuration de modprobe, sachez qu'il s'agit d'une 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 configuration. En gnral, vous trouverez les
informations sur les entres ajouter ou modifier dans le fichier d'aide du module correspondant,
que vous pourrez trouver dans les sources du noyau (dans le rpertoire /usr/src/linux/Documentation/).
Quoi qu'il en soit, la modification des fichiers de configuration de modprobe peut gnrer de
nouvelles dpendances entre les modules. Il est donc ncessaire d'excuter la commande depmod -a
aprs chaque modification de ce fichier.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 262

8.2. Configuration des priphriques de masse
Les priphriques de masse sont les priphriques permettant de manipuler de grandes quantit de
donnes. Il s'agit gnralement des priphriques connects sur bus SCSI, des disques durs et lecteurs
de CD/DVD, des graveurs et des scanners.
8.2.1. Configuration 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
d'utiliser plusieurs priphriques simultanment.
Sous Linux, les priphriques SCSI sont accds par l'intermdiaire des fichiers spciaux de
priphriques /dev/sdx pour les disques durs ou /dev/scdn pour les lecteurs ou les graveurs de CD-
ROM, o x est la lettre dfinissant le disque dur et n est le numro du lecteur ou du graveur de CD-
ROM. Les autres priphriques SCSI sont accds par l'intermdiaire des fichiers spciaux de
priphriques SCSI gnriques, savoir les fichiers /dev/sgn. Notez que certains priphriques
pourront tre utiliss par l'un ou l'autre de ces fichiers spciaux, selon la fonctionnalit laquelle on
cherche accder. Par exemple, les programmes de gravage utilisent les fichiers spciaux de
priphriques /dev/sgn pendant le gravage, alors que la simple lecture d'un CD avec un graveur se fait
via le fichier 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 configuration des priphriques SCSI se restreint celle de la carte SCSI utilise. Les
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 l'est par les logiciels d'acquisition d'image.
La gestion des contrleurs SCSI au niveau du noyau se fait par l'intermdiaire des options du menu
SCSI support du programme de configuration du noyau. Outre l'option SCSI support que l'on
activera bien videmment, ce menu comprend les options suivantes, que l'on choisira en fonction du
type des priphriques SCSI utiliser :
SCSI disk support , pour les disques durs SCSI, ainsi que pour certains priphriques de
masse qui apparaissent comme des disques durs SCSI (c'est en particulier le cas pour les clefs
USB et un grand nombre d'appareils photo numriques) ;
SCSI tape support , pour les lecteurs de cartouches SCSI. Les possesseurs de lecteurs de
cartouches OnStream SC-x0 devront plutt utiliser l'option SCSI OnStream SC-x0 tape
support , car le gestionnaire de priphriques standard n'est pas capable de les prendre en
charge ;
SCSI CD-ROM support , pour les lecteurs de CD-ROM SCSI et pour les graveurs de CD-
ROM IDE, si l'on dcide d'utiliser l'mulation SCSI avec certains logiciels de gravage (voir
plus loin pour plus de dtails ce sujet) ;
SCSI generic support , pour les autres priphriques dont l'utilisation requiert l'utilisation
d'un programme applicatif spcifique. Il s'agit ici des graveurs de CD, des scanners et autres
priphriques spciaux.
Certains priphriques SCSI disposent de plusieurs numros d'units logiques sur leur bus. Il peut
donc tre ncessaire, pour ces priphriques, d'activer l'option Probe all LUNs on each SCSI
device afin de pouvoir les utiliser correctement. Les autres options ne sont pas essentielles, consultez
leur aide pour plus de dtails leur sujet.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 263

En plus des options gnrales de la prise en charge du SCSI, il est impratif de slectionner le
gestionnaire 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 dfinie ce niveau. Consultez la documentation de votre matriel pour
dterminer le gestionnaire de priphriques adquat utiliser.
Une fois la configuration du noyau effectue, vous n'avez plus qu' le compiler et l'installer pour
pouvoir utiliser vos priphriques. La manire de procder a t dcrite en dtail dans la Section 7.3.
8.2.2. Configuration des disques durs IDE
Les disques durs IDE ont longtemps souffert d'un gros dfaut par rapport aux disques SCSI : celui de
ne pas pouvoir effectuer des oprations sans l'intervention du processeur. En effet, l'envoi des donnes
aux disques se faisaient classiquement par de nombreuses critures dans les ports d'entre/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 l'anglais Direct Memory Access ). Le mode DMA des priphriques
IDE existe depuis les tous dbuts de l'architecture PC, mais les premiers contrleurs DMA n'taient
pas capables de suivre la cadence des disques durs, mme des plus anciens. Il n'a donc
malheureusement pas t utilis pendant longtemps, jusqu' ce qu'une nouvelle technologie soit mise
au point : l'Ultra DMA. La plupart des jeux de composants des cartes mres modernes sont prsent
capables de grer l'Ultra DMA, dont les frquences de bus les plus courantes sont 33, 66 et 100MHz.
Note : Mme si les interfaces IDE ont prsent rduit l'cart 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 d'une part capables de communiquer entre eux sur leur bus, dchargeant ainsi
totalement le processeur de ce travail de transfert des donnes, et d'autre part capables de traiter
plusieurs requtes d'affile sans l'intervention du processeur. Ces fonctionnalits dchargent le bus
systme, mais sont galement extrmement utiles pour les systmes d'exploitation multitches. Ceux-
ci peuvent en effet envoyer plusieurs commandes aux priphriques et effectuer d'autres traitements
pendant qu'elles s'excutent en asynchrone. Les disques SCSI ont donc un taux d'occupation du
processeur et du bus systme nettement moindre, et permettent aux systmes tels que Linux d'atteindre
un degr de ractivit ingal avec les disques IDE classiques. Cela dit, les priphriques IDE cotent
nettement moins cher que les priphriques SCSI, et c'est sans doute l la clef de leur succs.
En gnral, Linux configure les contrleurs des disques durs de manire quasi optimale, et il n'est
gnralement pas ncessaire de modifier leur paramtrage. Cependant, les contrleurs IDE peuvent
tre configurs ou optimiss manuellement grce l'utilitaire hdparm. Comme son nom l'indique, cet
utilitaire permet de modifier les paramtres des disques durs et des contrleurs IDE. Il permet
galement de tester les performances de votre configuration, et peut donc servir d'outil 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 fichier spcial de priphrique de votre disque dur.
Note : Si vous obtenez des valeurs infrieures ou gales 6 Mo/s, vous avez rellement un problme
de configuration. 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 l'option -T la place de l'option -. En effet, vous mesureriez le
dbit dans le sous-systme disque complet de Linux, avec ses mcanismes de cache. Vous obtiendriez
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 264

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.
L'utilitaire hdparm permet galement de fixer un certain nombre de paramtres des disques durs. Par
exemple, l'activation ou la dsactivation de l'UltraDMA se fait simplement avec l'option -d. Cette
option prend en paramtre un entier pouvant valoir 1 ou 0, selon que l'UltraDMA doit tre activ ou
non. Cette option peut tre complte d'autres options d'optimisation pour les disques modernes, pour
lesquels on peut galement prciser le mode de transfert utiliser. Ce mode peut tre indiqu l'aide
de l'option -X, qui prend en paramtre un nombre dont la valeur est le numro du mode plus une
constante identifiant le type de transfert utilis. Les transferts de type PIO (c'est dire le mode dans
lequel le processeur effectue lui-mme les transferts par l'intermdiaire des ports d'entre / 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

La valeur 66 utilise ici signifie donc que les transfers se font en UltraDMA (constante 64), mode 2
(valeur 2).
Note : Pour que l'UltraDMA 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 d'aventure ce
n'tait pas le cas, vous devriez recompiler votre noyau. Les options activer dans le programme de
configuration 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.
L'utilitaire hdparm permet galement d'activer et de dsactiver le mode 32 bits de ces contrleurs
l'aide de l'option -c. Comme pour l'option -d, l'option -c prend en paramtre un indicateur pouvant
valoir 1 ou 0 et permettant d'activer 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 l'activez.
Note : Prenez garde lorsque vous utilisez la commande hdparm. Si vous spcifiez 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 d'aventure cela se produisait, il
faudrait attendre un peu de temps, jusqu' ce que le systme s'aperoive de la mauvaise configuration
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 afficher avec la
commande dmesg. Sachez toutefois que le risque de corruption du systme de fichiers en cas de
mauvaise configuration reste bien rel, et qu'il vaut mieux un systme lgrement plus lent qu'un
systme qui dtruit vos donnes en un temps record.
Lorsque vous aurez trouv les paramtres optimaux de vos contrleurs de disque, vous pourrez
demander au systme de conserver ces paramtres par dfaut en ajoutant l'option -'1 dans la ligne de
commande de hdparm. Par exemple, pour configurer 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 265

Note : Prenez garde toutefois au fait que les rinitialisations du contrleur en cas d'erreur reprendront
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.
La configuration 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 configuration utilise, car elle sera excute systmatiquement chaque dmarrage.
8.2.3. Installation d'un graveur de CD/DVD
Linux dispose de tous les logiciels permettant de graver des CD ou des DVD, et ce avec la plupart des
graveurs disponibles sur le march. Il permet de copier des CD et de crer des images disques.
Cependant, il n'est pas encore possible d'utiliser le gravage par paquet, qui permettrait d'utiliser les
graveurs de CD comme des priphriques de sauvegarde amovibles. Cette fonctionnalit est en effet
encore l'tude, 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/DVD utilisaient l'interface SCSI. Ce n'est que plus tard que
les graveurs sur port parallle et les graveurs IDE ATAPI sont apparus. Actuellement, les graveurs
externes connects sur port parallle sont de moins en moins vendus. Les graveurs IDE on fait une
belle perce et sont les plus courants actuellement. Les logiciels de gravage doivent donc toutefois tre
capables d'utiliser n'importe quel type de graveur, ce qui n'est pas simple. Heureusement, le protocole
de communication ATAPI n'est rien d'autre qu'un mode de transport de commandes SCSI pour les
priphriques IDE, ce qui fait que les logiciels de gravage peuvent utiliser les deux types de
priphriques de manire relativement gnrique.
Les anciennes versions des logiciels de gravage ne permettaient d'utiliser que l'interface SCSI pour
graver des CD. Il n'tait donc pas possible d'utiliser les graveurs IDE de manire native. Une couche
d'mulation SCSI a donc t dveloppe dans Linux afin de simuler une interface SCSI pour les
priphriques IDE, et de traduire la vole les commandes SCSI en commandes ATAPI. prsent,
les logiciels de gravage sont tous capables d'utiliser nativement les graveurs IDE, et cette couche
d'mulation n'est plus que trs rarement ncessaire. Elle ne sera donc pas dcrite plus en dtail ici.
8.2.3.2. Configuration du noyau
L'utilisation des graveurs de CD/DVD ne requiert gnralement pas d'option particulire au niveau de
la configuration. Autrement dit, si vous pouvez utiliser votre graveur comme un simple lecteur, alors
vous pouvez galement l'utiliser pour graver. Cependant, il peut-tre intressant d'activer le support de
certains systmes de fichiers pour utiliser correctement les lecteurs et les graveurs.
Les principales options de configuration du noyau ayant trait aux lecteurs et aux graveurs de CD/DVD
sont rcapitules ci-dessous :
Loopback device support
Cette option permet d'activer une fonctionnalit permettant d'utiliser un fichier comme un priphrique
normal. Elle est trs utile pour tester les images de CD, car il suffit simplement de monter le fichier
image comme un priphrique loopback . Il est donc recommand d'activer cette fonctionnalit, que
l'on dispose d'un graveur SCSI ou IDE. Cette fonctionnalit peut tre active sous la forme de module
ou non, la rponse recommande est 'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 266

Include IDE/ATA-2 CDROM support
Cette option permet d'activer la gestion des lecteurs de CD IDE ATAPI. Vous devez rpondre cette
question par 'Y' si vous disposez d'un graveur ou d'un lecteur IDE, ce qui est gnralement le cas. La
rponse recommand est 'Y'.
SCSI support
Cette option permet d'activer la gestion des priphriques SCSI dans votre noyau. Il va de soi qu'il faut
l'activer si vous disposez d'un graveur SCSI. Cette fonctionnalit peut tre active sous forme de
module ou non. La rponse recommande est 'N'.
SCSI CD-ROM support
Cette option permet d'activer la gestion des lecteurs de CD SCSI. Il faut l'activer si l'on dispose d'un
graveur SCSI. La rponse recommande est 'Y' si vous disposez d'un lecteur ou d'un graveur SCSI, et
'N' dans le cas contraire.
Enable vendor-specific extensions (for SCSI CDROM)
Cette option permet d'autoriser l'emploi d'extensions au protocole SCSI dfinies par les fabricants de
matriels. Certains graveurs utilisent de telles extensions, c'est en particulier le cas des graveurs de CD
HP. Toutefois, si vous ne disposez pas d'un tel graveur, il est peu probable que vous ayez activer
cette fonctionnalit. La rponse recommande est donc 'N'.
SCSI generic support
Cette option permet d'utiliser les priphriques SCSI avec des commandes non standards, ce qui
requiert l'emploi de programmes capables de communiquer directement avec les priphriques SCSI.
C'est le cas pour les graveurs, qui seront pilots directement par les logiciels de gravage. Il faut
gnralement activer cette fonctionnalit si l'on dispose de priphrique SCSI, aussi la rponse
recommande est-elle 'Y' si l'on se trouve dans cette situation.
Probe all LUNs on each SCSI device
Cette option permet, lorsqu'on dispose de priphriques SCSI capables de grer plusieurs numros
d'unit logiques, de leur demander tous ces numros. Ce type de priphrique est assez rare, et en
gnral chaque priphrique n'utilise qu'un et un seul numro d'unit logique. Il ne faut donc pas, en
gnral, activer cette fonctionnalit. La rponse recommande pour cette question est donc 'N'.
ISO 9660 CDROM file system support
Cette option permet de prendre en charge les systmes de fichiers des CD-ROMs. Il est impratif
d'activer cette fonctionnalit, aussi la rponse recommande pour cette question est-elle 'Y'.

Microsoft Joliet CDROM extensions
Cette option permet de prendre en charge les extensions Microsoft au systme de fichiers ISO 9660
(pour la gestion des noms longs du DOS). tant donn le nombre de CDs qui utilisent ces extensions,
il est impratif d'activer cette fonctionnalit. La rponse recommande pour cette question est donc 'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 267

UDF file system support
Cette option permet de prendre en charge les systmes de fichiers UDF, utilis par certains CD-ROMs
gravs par paquets et par tous les DVDs. Il est impratif d'activer cette fonctionnalit, aussi la rponse
recommande pour cette question est-elle 'Y'.
Enfin, il faut choisir le pilote bas niveau permettant de grer son graveur de CD. Pour les graveurs IDE
ATAPI il n'y a pas de pilote bas niveau inclure. Pour les graveurs SCSI, il faut choisir le pilote
appropri de votre carte ou de votre contrleur SCSI.
Une fois cette configuration 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. Configuration des modules du noyau
Vous aurez sans doute modifier le fichier de configuration /etc/modprobe.conf si vous avez activ
certaines fonctionnalits SCSI sous la forme de modules, afin de charger les modules ncessaires
lorsqu'une commande sera effectue sur l'un des fichiers spciaux de priphriques SCSI. Si toutes les
fonctionnalits SCSI sont intgres au noyau, cette tape est bien entendue facultative. Les fichiers
spciaux utiles pour les priphriques blocs SCSI sont les fichiers scdx et sgx, o x est le numro du
priphrique. Les fichiers spciaux du premier groupe sont de type bloc, et permettent d'accder aux
lecteurs de CD SCSI. Les fichiers du deuxime groupe en revanche sont de type caractre, et
permettent d'accder aux priphriques SCSI de manire gnrique. Les codes majeurs pour ces deux
groupes de fichiers spciaux sont respectivement 11 et 21, il faut donc ajouter les entres du fichier
modprobe.conf pour les modules nomms block-major-11 et char-major-21. Normalement, ces entres
sont dj prsentes dans le fichier fourni par votre distribution.
8.2.3.4. Installation des logiciels de gravage
Lorsque le noyau aura t correctement configur 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 d'effectuer 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 d'extraire les donnes numriques des CD audio ;
cdrdao, qui permet de raliser des gravages bas niveau et en mode Disk At Once .
Vous pourrez vrifier que votre configuration fonctionne correctement si vous disposez d'un
priphrique SCSI ou si vous utilisez l'mulation SCSI 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. Cette commande ne
fonctionne pas si vous utilisez un graveur IDE.
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 l'installation de Linux et non son utilisation,
elles vous permettront de tester si tout fonctionne correctement.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 268

La copie directe d'un CD peut se faire avec la commande suivante :
cdrecord -dummy -v dev=graveur speed=n -isosize /dev/source
L'option dev permet de spcifier le priphrique du graveur utiliser. Cette option peut prendre en
paramtre soit le fichier spcial de priphrique du graveur (par exemple /dev/hdc), soit un triplet de
valeur permettant d'identifier un priphrique sur le bus SCSI (par exemple 0,1,0). La premire valeur
reprsente le bus SCSI sur lequel le graveur est branch, la deuxime le numro de priphrique du
graveur sur ce bus SCSI et la troisime son numro d'unit 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 si vous utilisez un graveur SCSI. Le numro d'unit logique est, dans la
majorit des cas, 0.
Le nombre n donn dans la ligne de commande prcdente doit valoir le facteur multiplicateur de la
vitesse de gravage. Vous pouvez essayer avec des valeurs faibles pour commencer, afin d'tre sr que
tout se passe bien. Le fichier de priphrique /dev/source quant lui reprsente le fichier spcial de
priphrique du lecteur de CD utilis pour lire le CD-ROM. L'option -isosize permet de demander
cdrecord de lire la taille de la piste graver dans le systme de fichiers ISO9660 du CD source.
Enfin, l'option -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 suffit de supprimer cette
option.
Il va de soi que si vous ne disposez pas d'un 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/source of=image

o /dev/source est le fichier spcial de priphrique du lecteur utilis pour faire l'image, et image est le
fichier image qui doit tre cr.
Le gravage d'une image disque peut tre ralis avec la commande suivante :
cdrecord -dummy -v dev=graveur speed=n -data image

o les options sont les mmes que dans les commandes prcdentes.
Si vous dsirez crer une image disque partir des fichiers 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 fichiers Unix (noms de fichiers plus longs, liens
symboliques, droits d'accs...), et ventuellement les extensions Joliet utilises par les systmes
Windows 95, Windows NT, Windows 2000 et XP (noms de fichiers 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 d'utiliser 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 d'exploitation diffrents. La
seule contrepartie est la perte de quelques dizaines de kilo-octets, ce qui est drisoire. La distinction
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 269

entre l'option -r et l'option -R est que -r modifie les attributs des fichiers Unix afin 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 fichiers voient leurs valeurs fixes 0. L'option -V permet de fixer le nom du volume
dans l'image. 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 spcifier l'emplacement de cette session
lors de la cration de l'image disque. Cela se fait avec l'option -C de mkisofs. Cette option prend en
paramtre le numro du secteur de dbut et le numro du secteur de fin de la session la suite de
laquelle la nouvelle session doit tre crite, spars par des virgules. Si l'on veut galement importer la
session prcdente (c'est--dire permettre l'accs aux donnes des sessions prcdentes comme si elles
taient galement prsentes dans la session crire), il faut utiliser l'option -M, laquelle il faut
indiquer le fichier spcial de priphrique du lecteur contenant le disque dont la session doit tre
importe.
La dtermination des secteurs de dbut et de fin de la session prcdente peut tre difficile, mais
cdrecord est capable d'obtenir cette information avec la commande suivante :
cdrecord dev=graveur msinfo

Appel ainsi, cdrecord affiche les secteurs de dbut et de fin de la dernire session du disque du
lecteur spcifi par son option dev, directement dans le format attendu par mkisofs.
L'option -o de mkisofs permet de spcifier le nom du fichier image qui doit tre cr. Les paramtres
suivant l'option -o constituent la liste des rpertoires et des fichiers qui doivent tre insrs dans le
CD-ROM. Par dfaut, chaque rpertoire ou fichier indiqu en paramtre est plac dans le rpertoire
racine du CD-ROM, et l'arborescence des sous-rpertoires est respecte. Cependant, il est possible de
placer un des rpertoires ou fichiers indiqus en paramtre dans un autre rpertoire du CD-ROM,
l'aide de la syntaxe suivante :
destination=source

o destination est le rpertoire destination du CD-ROM, et source le rpertoire ou le fichier source
ajouter l'image disque. De mme, il est possible d'exclure certains sous-rpertoires de l'image disque
l'aide de l'option -x :

-x rpertoire

Les sous-rpertoires du rpertoire indiqu seront galement supprims de l'image disque.
Vous pouvez tester votre image disque en la montant par l'intermdiaire du priphrique virtuel du
noyau loopback. Il faut pour cela que vous ayez activ la gestion de ce priphrique dans la
configuration du noyau. La commande utiliser est la suivante :
mount -t iso9660 -o ro,loop=/dev/loop0 image /cdrom

o image est le nom de votre fichier image tester. Cette commande monte le systme de fichiers de
cette image dans le rpertoire /cdrom. La commande umount peut tre utilise pour dmonter ce
systme de fichiers de la manire habituelle.
Lorsque votre image disque est satisfaisante, vous pouvez la graver avec la premire ligne de
commande suivante :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 270

cdrecord -v dev=graveur speed=n -multi -data image

Vous noterez la prsence de l'option -multi, qui permet de demander cdrecord de crer un disque
multisession. Bien entendu, vous pouvez vous passer de cette option si votre disque n'est pas
multisession.
La cration d'une image disque ncessite d'avoir une place disque gale la taille de la session
ajouter, ce qui peut tre contraignant. Sur les systmes suffisamment puissants, il est possible de crer
l'image 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 l'image disque dans la ligne de commande de mkisofs, et utiliser l'option -
dans la ligne de commande de cdrecord pour lui demander de prendre les donnes sur son entre
standard. Malheureusement, cette technique n'est 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 l'option -waii de
cdrecord, qui lui demande d'attendre l'arrive des premires donnes dans le tube avant d'ouvrir le
fichier 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=graveur -msinfo` \
fichiers | cdrecord -v dev=graveur speed=vitesse -multi -waiti -
Les commandes prsentes ci-dessus ne permettent pas de travailler avec des CD audio. Pour extraire
les donnes audio d'un CD, vous devrez utiliser le programme cdda2wav :
cdda2wav [-H] -B nom [-tdbut[+fin]] -O wav dev=graveur
L'option -H permet d'viter la cration des fichiers d'information .inf sur les pistes extraites par
cdda2wav. L'option -B permet d'utiliser le nom nom complt d'un numro pour les fichiers son
crs. Les pistes seront donc stockes dans des fichiers portant les noms nom_01, nom_02, etc.
L'option -t permet d'indiquer la piste dbut et la piste fin afin de slectionner les pistes dont les
donnes audio doivent tre extraites. Si la piste de fin n'est 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 n'est pas
prcise, l'extraction commencera partir de la premire piste. L'option -O permet d'indiquer le type
de fichier de sortie, wav indique ici que les fichiers crs seront au format WAV des fichiers son de
Windows. Il est galement possible d'utiliser le type de fichier raw, avec lequel les fichiers seront prts
tre gravs tels quels. Enfin, l'option dev permet de spcifier le priphrique utiliser pour lire les
donnes audio. La syntaxe de cette option est la mme que celle utilise par cdrecord.
Le gravage des pistes audio peut tre ralis avec la commande suivante :
cdrecord -dummy -v dev=graveur speed=n -nofix -audio piste1.wav \
piste2.wav ...
L'option -nofix permet ici d'viter de fermer la session. Elle doit tre utilise si l'on dsire rajouter
des pistes audio sur le CD-ROM ultrieurement. Si, en revanche, elle est omise, cdrecord fermera
automatiquement la session aprs l'criture de la dernire piste, et plus aucune donne ne pourra tre
ajoute. La commande suivante vous permettra de fixer le disque a posteriori :
cdrecord -dummy -v dev=graveur speed=n -fix
Enfin, si vous disposez d'un graveur de CD rinscriptible, vous pourrez utiliser la commande suivante
pour effacer un CDRW :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 271

cdrecord -dummy -v dev=graveur -blank=fast

o graveur reprsente toujours le priphrique du 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 (k3b, gcombust, xcdroast, etc.).
Il est vivement recommand d'en installer un et de l'utiliser. Ils sont relativement simples d'emploi et
leur utilisation ne devrait pas poser de problme particulier.
8.3. Configuration des cartes filles
Il existe un grand nombre de cartes filles sur le march, dont les plus courantes sont sans doute les
cartes graphique, les cartes son et les cartes rseau. Toutes ces cartes permettent d'ajouter des
fonctionnalits de manire modulaire une machine, en les enfichant dans les emplacements prvus
cet effet sur la carte mre.
Les cartes les plus vielles que l'on peut encore rencontrer sont les cartes ISA. La configuration de ces
cartes a toujours t extrmement difficile, en raison des nombreux conflits matriels qu'elles
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 n'est qu'avec l'arrive des cartes PCI que l'on
a enfin pu commencer brancher n'importe quoi n'importe comment dans un ordinateur (cela dit, ce
n'est pas encore la panace parce que l'on est toujours oblig d'teindre l'ordinateur...). Enfin, 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 ne
pose cependant pas de problme de configuration spcial (du moins si l'on se contente d'une seule
carte graphique).
Ce chapitre traite de la manire de configurer les cartes ISA et PCI en gnral, et donne des
informations plus dtailles pour chacun des types courants de cartes filles.
8.3.1. Gnralits sur les cartes ISA, Plug And Play et PCI
L'architecture initiale des PC a trs mal vieilli et souffre actuellement de dfauts majeurs qui nuisent
leur dveloppement. Sans parler des goulots d'tranglement 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.
L'une des limitations majeurs de cette architecture est le nombre incroyablement restreint de lignes
d'interruption permettant un priphrique de signaler au processeur qu'il a besoin de l'intervention de
son gestionnaire pour poursuivre son travail, et la quasi absence des possibilits d'accs directs la
mmoire, qui impose l'utilisation 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
d'extensibilit. En effet, qui dit ressource limit dit qu'il est impossible de connecter plus de
priphriques intelligents que ce que l'architecture matrielle autorise. L'installation de plusieurs
cartes ISA grant chacune une interruption ou un canal DMA tait rellement un casse-tte il y a
encore peu de temps. C'est pour rsoudre ces problmes de configuration du matriel que le standard
Plug and Play a t dvelopp. Ce standard tablit un protocole de communication matriel permettant
au BIOS de configurer automatiquement les priphriques ISA en vitant les conflits sur les ressources
partages (le plus souvent, les lignes d'interruption).
Ce protocole a soulag bien des gens, mais suppose un support spcifique de la part du systme
d'exploitation, puisque les paramtres matriels de chaque carte Plug and Play ne sont pas fixs d'un
dmarrage l'autre de la machine. Il faut donc que le systme soit ou capable de rcuprer ces
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 272

paramtres, ou de refaire la configuration du matriel. Cette deuxime solution est souvent impose
par le fait que bon nombre de BIOS sont bogus et effectuent une mauvaise configuration des cartes
Plug and Play.
Le Plug and Play a t une amlioration sensible, mais n'a pas rsolu les problmes concernant les
ressources limites des PC. Heureusement, depuis l'avnement du bus PCI, ces limitations se sont
estompes. En effet, le bus PCI permet non seulement aux priphriques de s'autoconfigurer et de se
dclarer dans le systme PCI, mais galement de partager une mme ligne d'interruption et de prendre
le contrle du bus mmoire. Ainsi, il n'y a virtuellement plus aucune difficult pour installer une carte
PCI dans un ordinateur. De nos jour, on ne trouve quasiment plus de cartes ISA, et la plupart des
cartes mres n'acceptent mme plus ces cartes.
Mais ne croyez pas pour autant que le bus PCI soit idal, c'est loin d'tre le cas. En effet, il ne permet
pas encore l'ajout et la suppression de cartes chaud (c'est--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 encore appel voluer.
Le sous-systme PCI de Linux permet d'utiliser directement les cartes PCI, sans configuration
particulire. Les priphriques ISA, en revanche, peuvent tre plus difficiles configurer. S'ils ne sont
pas Plug and Play, il n'y a pas d'autre choix que de spcifier leurs paramtres matriels directement,
soit lors de la compilation du noyau, soit l'aide d'options de boot lorsque le systme dmarre, soit
l'aide d'options dans le fichier /etc/modprobe.conf si leur gestionnaire est compil sous forme de
module. La premire solution est la plus technique, puisqu'elle ncessite de reconfigurer et de
recompiler le noyau, les deux autres relvent de la configuration simple.
Les cartes ISA Plug and Play constituent un cas part car, comme il l'a 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 configuration 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 configuration des cartes et d'allocation des ressources. La deuxime
possibilit est d'effectuer la configuration 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
lorsqu'on dsire contrler finement les ressources alloues par les priphriques dans le systme.
Si l'on dsire utiliser les fonctionnalits Plug and Play du noyau, il n'y a strictement rien faire. Linux
se charge simplement d'initialiser automatiquement les cartes ISA Plug 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 conflits avec les autres
priphriques, qu'ils soient ISA non Plug and Play ou PCI. Par consquent, vous n'aurez aucune
configuration spcifique 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
configuration tellement spcifique qu'elle ncessite un paramtrage manuel. Dans ce cas,
l'initialisation 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 d'initialisation du systme, mais ce
n'est pas une obligation. Quoi qu'il en soit, comme l'attribution des ressources aux cartes est diffre,
les gestionnaires de priphriques ne peuvent pas tre inclus dans le noyau. Il est donc ncessaire
d'utiliser les modules du noyau pour ces gestionnaires. Les paramtres matriels pourront alors tre
communiqus simplement ces gestionnaires lors du chargement des modules, l'aide d'options dans
le fichier de configuration /etc/modprobe.conf.
La configuration manuelle des cartes ISA Plug and Play se fait classiquement l'aide des outils
isapnp . Parmi ces outils se trouve le programme isapnp, que l'on utilise pour initialiser les cartes
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 273

ISA Plug and Play. Cet utilitaire utilise les informations qui se trouvent crite dans le fichier de
configuration /etc/isapnp.conf pour dterminer les plages d'entre/sortie, les canaux DMA et les lignes
d'interruption utiliser pour chaque carte.
La rdaction manuelle du fichier isapnp.conf n'est pas une tche aise. Heureusement, cela peut tre
ralis automatiquement, l'aide d'un autre utilitaire nomm pnpdump. Celui-ci affiche la liste des
diffrentes possibilits de configuration pour chaque priphrique ISA Plug and Play. Cette liste est
affiche exactement sous une forme exploitable par isapnp, ce qui fait qu'il est trs simple de crer un
fichier de configuration correct en faisant une redirection de sa sortie standard dans un fichier :
pnpdump > /etc/isapnp.conf
Le fichier de configuration ainsi cr contient les diffrentes configurations possibles. Cependant, elles
sont toutes commentes, et aucun priphrique ISA ne sera configur sans intervention
supplmentaire. Il va donc falloir diter ce fichier et retirer les commentaires devant les options de
configuration qui vous intressent. Les lignes de commentaires commencent toutes par un caractre
dise ('#'). Il suffit donc d'effacer ce caractre pour les dcommenter. Vous devez choisir les options
dcommenter de telle manire qu'aucun conflit d'adresse, d'interruption ou de canal DMA n'existe
dans votre systme. Pour chaque priphrique, plusieurs possibilits sont offertes, mais vous ne devez
retirer les commentaires que devant les lignes d'une seule de ces possibilits. Les zones
dcommenter sont clairement identifies dans le fichier isapnp.conf gnr par pnpdump, il vous
suffit donc d'effectuer le choix de la configuration utiliser. Enfin, il ne faut pas oublier de retirer le
commentaire devant la ligne suivante :
(ACT Y)

la fin des diffrentes options de configuration pour chaque carte correctement configure, faute de
quoi elle ne sera pas active lors de l'appel isapnp.
En gnral, il est souhaitable d'appeler 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 fichier de dmarrage principal de votre systme. Ce fichier peut se trouver dans le rpertoire
/etc/rc.d/ (ou dans /sbin/init.d/ selon la distribution que vous utilisez). La plupart des distributions
permettent de paramtrer l'appel cette commande l'aide d'une option de configuration modifiable
l'aide de leur programme de configuration. Consultez la documentation de votre distribution pour plus
de dtails ce sujet.
Une fois que vous aurez dtermin la configuration correcte pour vos priphriques dans le fichier
/etc/isapnp.conf, vous pourrez charger les modules du noyau grant ces priphriques. Cela peut
ncessiter la modification du fichier /etc/modprobe.conf. Afin de limiter les risques d'erreur, vous
devriez procder comme suit :
dterminer le fichier spcial de priphrique utilis par les applications pour accder votre
priphrique ;
dterminer le nom du module que le noyau tentera de charger lorsqu'un programme tentera
d'utiliser ce fichier spcial de priphrique ;
rechercher la ligne dfinissant l'alias pour ce nom de module, afin de savoir quel est le module
qui sera effectivement charg par modprobe. Vous pouvez galement trouver ce nom dans la
documentation de la configuration du noyau pour le gestionnaire du priphriques que vous
configurez, ou en regardant directement dans le rpertoire d'installation des modules
/lib/modules/ ;
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 274

ajouter ventuellement la ligne options module paramtres permettant de spcifier les
paramtres de chargement paramtres pour le module module ;
ajouter ventuellement les lignes install et remove , permettant d'effectuer des actions
complmentaires lors du chargement et du dchargement du module.
Comme il l'a t indiqu dans la Section 8.1.1, la dtermination des noms de modules utiliss par le
noyau pour les requtes de chargement automatique n'est pas facile. Vous aurez sans doute vous
servir du type, du code majeur et du code mineur de ce fichier spcial de priphrique. Vous pourrez
obtenir ces informations l'aide de la commande ls -l fichier, o fichier est le nom du fichier spcial
de priphrique. Le type de ce fichier est indiqu dans le premier caractre des droits des fichiers. Le
caractre 'c' indique que le priphrique est un priphrique de type caractre, et le caractre 'b'
indique qu'il s'agit d'un 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 fichier,
gnralement gaux root .
Quoi qu'il en soit, 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/.
Pour tester si les modifications que vous avez effectues sont correctes, vous pouvez essayer de
charger le module avec la commande suivante :
modprobe module

o module est le nom du module charger. Vous pouvez galement vrifier que ce module se charge
bien lorsqu'une requte sur le fichier spcial de priphrique correspondant est effectue, avec par
exemple la commande suivante :

echo Coucou > /dev/priphrique

o priphrique est le fichier spcial de priphrique tester. Vous pouvez voir si le module s'est
correctement charg en demandant la liste des modules chargs l'aide de la commande lsmod. Cette
commande vous indique galement l'tat de chaque module, ainsi que le nombre de fois qu'il est utilis
et par qui. Si un module est marqu uninitialized , vous avez de fortes chances de devoir redmarrer
l'ordinateur et de revoir votre configuration, car un module qui se trouve dans cet tat est inutilisable et
peut parfois mme refuser de se dcharger.
8.3.2. Configuration des cartes son
8.3.2.1. Fonctionnalits du matriel
Les fonctionnalits fournies par les gestionnaires de son de Linux varient dans de larges proportions,
selon le matriel utilis. La quasi totalit des cartes son grent bien entendu l'essentiel : la restitution
de fichiers audio numriques. Les fonctionnalits des cartes son sont ce niveau relativement
disparates : les diffrences vont du taux d'chantillonage utilis jusqu' la possibilit de les faire
fonctionner en full duplex (enregistrement et lecture simultane) ou non. Cette dernire fonctionnalit
est essentielle pour les applications de tlphonie sur Internet par exemple.
De plus, trs peu de cartes son sont capables de grer la restitution des fichiers MIDI correctement (les
fichiers MIDI sont des fichiers musicaux permettant de stocker les squences de notes jouer pour
restituer le morceau, au lieu de stocker le son lui-mme sous forme numrique). La plupart des cartes
son ne fournissent aucun support matriel pour cela, et la restitution des notes des fichiers MIDI se fait
gnralement l'aide d'un synthtiseur logiciel. C'est en particulier le cas pour toutes les cartes son
intgres sur les cartes mres des ordinateurs rcents. Les gestionnaires de priphriques de Linux ne
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 275

fournissent pas de synthtiseur logiciel, en revanche il existe plusieurs programmes permettant de lire
les fichiers MIDI, moyennant une consommation plus ou moins importante des ressources de calcul de
l'ordinateur.
La plupart des cartes son bas de gamme disposent toutefois d'un synthtiseur en modulation de
frquence (synthtiseur dit FM ), qui permet de simuler des notes d'instrument de musique,
gnralement avec une qualit trs mdiocre. Certains pilotes de cartes son de Linux permettent
d'utiliser ces synthtiseurs, mais ce n'est toujours pas la panace. En ralit, si l'on veut restituer
correctement les notes des fichiers MIDI, il faut utiliser une carte son disposant de ce que l'on appelle
une table d'chantillons. Ces tables permettent de stocker dans la mmoire de la carte son des
chantillons de sons d'instruments de musique enregistrs en qualit numrique. La carte son peut
ainsi reconstituer le son de toutes les notes de musique fidlement, avec une trs grande ressemblance
avec l'instrument rel. Ces cartes sont bien entendu plus coteuses, mais la qualit sonore est
incomparable ce niveau (les cartes SoundBlaster AWE et Live en particulier disposent de tables
d'chantillons). Linux permet parfaitement d'utiliser ces cartes, et mme de charger de nouveaux jeux
d'chantillons dans la mmoire de la carte pour changer la sonorit des instruments.
Je ne saurais donc que trop vous conseiller de bien vous renseigner avant l'achat d'une carte son, car ce
sujet n'est pas trs souvent pris en considration lors de l'achat. Bien entendu, si vous ne dsirez pas
utiliser votre carte son dans ses derniers retranchements, vous pouvez vous contenter des cartes
intgres sur les cartes mres. Dans les autres cas, renseignez-vous.
8.3.2.2. Configuration du noyau
La plupart des cartes son vendues actuellement sont des cartes PCI, qui se configurent relativement
aisment. Cependant, il existe encore un bon nombre de cartes son ISA, dont la configuration peut tre
plus technique, surtout si elles ne sont pas Plug and Play.
La premire tape lors de la configuration de votre carte son sera la slection du gestionnaire de
priphriques utiliser dans le programme de configuration du noyau. En ce qui concerne les cartes
son, les options de configuration se trouvent dans le menu Sound . Vous y trouverez deux jeux de
pilotes : les pilotes ALSA ( Advanced Sound Linux Architecture ) et les pilotes OSS ( Open Sound
System ). Les pilotes ALSA sont les plus modernes, et devront tre utiliss en priorit, car ils
fournissent le plus de fonctionnalits. Les pilotes OSS sont des pilotes plus anciens, qui sont toutefois
maintenus titre de compatibilit d'une part et, d'autre part, parce que certaines cartes son ne sont pas
encore totalement prises en charge par les pilotes ALSA. Les pilotes OSS sont eux-mmes classs en
deux catgories : les pilotes classiques (premire partie des options du menu) et les pilotes OSS purs.
Ces derniers utilisent une spcification d'interface de programmation commune permettant l'accs aux
cartes son, mais il n'y a pas de diffrence au niveau des applications pour l'utilisation de ces pilotes.
Vous devez choisir le gestionnaire de priphriques ALSA ou OSS qui convient le mieux votre
matriel.
L'erreur la plus classique que l'on peut faire au niveau du choix du pilote est de supposer que l'on
possde une carte compatible Sound Blaster alors que ce n'en est pas une. Je tiens prciser que
quasiment aucune carte dite compatible sous Windows ne l'est sous Linux. La compatibilit sous
Linux, c'est le fait d'avoir quasiment la mme lectronique ou du moins les mmes interfaces au
niveau matriel. Sous Windows, la compatibilit n'existe qu'au niveau des interfaces fournies par le
pilote de la carte son. Par consquent, 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 incompatibilits entre les diffrents modles de cartes son). C'est notamment le cas
pour les cartes sons SB64 PCI et SB128 PCI, qui sont en ralit des cartes son ESS1370 ou ESS1371,
et dont l'lectronique est fabrique par la socit Ensoniq (cette socit a t rachete par Creative
Labs, qui vend ces cartes en s'appuyant sur son image de marque et qui sme ainsi la confusion sur le
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 276

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
l'acheter, au moins afin de savoir exactement ce que vous aurez). Vous pouvez galement taper la
commande lspci afin de voir les priphriques rellement prsents sur le bus PCI. La commande
systme dmesg peut galement vous tre utile. Elle permet de rafficher la liste des messages de traces
gnrs par le noyau, et vous y trouverez donc les messages relatifs la phase de dtection des
priphriques.
Lorsque vous aurez choisi le gestionnaire de priphriques adquat, vous aurez le choix entre le
compiler l'intrieur du noyau (en choisissant l'option 'Y') ou le compiler sous forme de module (en
choisissant l'option 'M'). Il est possible soit de charger ces pilotes en tant que module, soit de les
intgrer au noyau. En gnral, il est prfrable d'utiliser les modules, car les programmes de
configuration audio peuvent ainsi dtecter automatiquement les cartes son utilises. De plus, certaines
fonctionnalits non essentielles sont souvent dsactives par dfaut par les pilotes, et doivent tre
actives explicitement l'aide d'une option lors du chargement du module ou d'un paramtre fournir
au noyau lors de son amorage. Les modules sont donc l aussi plus faciles utiliser, car ils viteront
de redmarrer le systme chaque essai. Cependant, pour la plupart des paramtres matriels (en
particulier les lignes d'interruptions, les ports d'entre/sortie et les canaux d'accs direct la mmoire),
Linux dterminera automatiquement les valeurs correctes. Cette configuration n'est donc pas faire, et
votre carte son fonctionnera gnralement immdiatement.
Les vielles cartes son ISA qui ne sont pas Plug and Play devront gnralement galement tre
intgres au noyau. En effet, pour ces cartes sons, la configuration logicielle est trs simple, puisqu'on
ne peut pas les configurer du tout, et l'on n'a donc pas besoin de modules du tout. Bien entendu, il faut
que vous ayez rsolu manuellement les conflits possibles de matriel de votre ordinateur en fixant les
switchs adquats sur vos cartes filles, mais cela ne concerne pas Linux. Pour ces cartes, il faut
gnralement indiquer au noyau les paramtres matriels (IRQ, DMA et ports d'entre/sortie) lors de
la configuration.
Il se peut toutefois que vous ne puissiez pas spcifier ces paramtres matriels dans les menus de
configuration de Linux. Bien qu'en thorie il soit possible de modifier les fichiers sources de Linux
directement pour indiquer ces paramtres, ce n'est pas la porte du commun des mortels. Par
consquent, on utilisera malgr tout dans ce cas les modules du noyau, et les options matrielles seront
indiques dans le fichier de configuration /etc/modprobe.conf. Notez que c'est galement de cette
manire que vous devrez procder si vous dsirez configurer vous-mme l'allocation des ressources
pour les cartes son ISA Plug and Play, ou, autrement dit, si vous prfrez utiliser l'outil isapnp au lieu
des fonctionnalits Plug and Play du noyau.
8.3.2.3. Configuration des modules du noyau
Si vous compilez les gestionnaires de son sous la forme de modules, vous devrez ajouter les alias et les
options ncessaires leur chargement dans le fichier /etc/modprobe.conf.
Les fichiers spciaux de priphriques utiliss ne sont pas les mmes pour les pilotes OSS et les
pilotes ALSA. Les premiers utilisent les fichiers spciaux /dev/audio?, /dev/dsp? et /dev/mixer?, dont
le numro de code majeur est 14, alors que les seconds utilisent les fichiers spciaux de priphriques
/dev/aloadCn et /dev/aloadSEQ, ainsi que tous les fichiers spciaux de priphrique du rpertoire
/dev/snd/, tous de numro de code majeur 116. Les pilotes ALSA tant galement capables de simuler
le comportement des pilotes OSS par compatibilit, ils utilisent le numro de code majeur 14
galement.
Lorsque le noyau dsire accder aux fonctionnalits d'ALSA ou d'OSS, il cherche donc charger,
selon les fichiers spciaux de priphriques utiliss, les modules char-major-116 ou char-major-14.
Le premier doit tre associ au module snd d'ALSA, alors que le second doit tre associ au module
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 277

soundcore. Ces modules prennent en charge respectivement les systmes de son d'ALSA et d'OSS. Le
fichier /etc/modprobe.conf devra donc dfinir ces alias comme suit :
# Permet le chargement des pilotes ALSA :
alias char-major-116 snd

# Permet le chargement des pilotes OSS ou l'mulation des pilotes OSS par ALSA :
alias char-major-14 soundcore
Les systmes de son grs par ces modules permettent de prendre en charge plusieurs cartes son.
Chaque carte son est bien entendu rfrence par le numro de code mineur du fichier spcial de
priphrique utilis. Il faut donc dfinir, pour chaque carte son, le module du gestionnaire de
priphrique de cette carte son. Cela se fait en dfinissant les alias pour les noms de modules
gnriques snd-card-n pour ALSA et sound-slot-n pour OSS, o 'n' est le numro de la carte son.
Par exemple, si l'on dispose d'une carte son SoundBlaster 128 avec les pilotes ALSA, le module
utiliser est snd-ens1370 ou snd-ens1371 selon le modle (parce que ces cartes son sont en ralit des
cartes Ensoniq). Le fichier de configuration /etc/modprobe.conf devra donc contenir les alias suivants :
# La premire carte son est gre par le module snd-ens1371 :
alias snd-card-0 snd-ens1371
alias sound-slot-0 snd-card-0

Si vous dsirez utiliser les pilotes OSS, le module utiliser pour ce type de carte se nomme es1371, ce
qui fait que le fichier de configuration /etc/modprobe.conf se rduit dans ce cas :

# La premire carte son est gre par le module es1371 :
alias sound-slot-0 es1371
Les modules des gestionnaires de priphriques peuvent prendre des options permettant de contrler
les ressources matrielles et les fonctionnalits prises en charge. Vous pourrez trouver la liste des
diffrents modules de pilotes de priphriques disponibles, ainsi que leurs options, dans la
documentation fournie dans le rpertoire Documentation/sound/ des sources du noyau.
Enfin, les pilotes de priphriques OSS n'implmentent pas forcment l'ensemble des fonctionnalits
classiques des cartes son. Lorsqu'une de ces fonctionnalits est demande, le pilote peut donc
demander le chargement d'un module complmentaire. Le nom utilis par le noyau pour ce module est
sound-service-n-m , o 'n' est le code majeur du fichier spcial de priphrique de la carte son et m
le code de la fonctionnalit utilise. Ces codes correspondent aux numros de codes mineurs des
fichiers spciaux de priphriques permettant d'accder ces fonctionnalits. Ainsi, la valeur 0
correspond au mixeur (fichier spcial de priphrique /dev/mixer), la valeur 2 correspond au port MIDI
(fichier spcial de priphrique /dev/midi), et les codes 3 et 4 au canal de la carte son (fichiers spciaux
de priphriques /dev/dsp et /dev/audio). La liste des fichiers spciaux de priphriques utiliss par
OSS peut tre consulte dans le fichier Documentation/devices.txt.
Si vous utilisez les pilotes ALSA, vous devrez ajouter les alias suivants dans le fichier
/etc/modprobe.conf afin de charger la demande les modules d'mulation des services OSS :
# Charge les modules ALSA des services OSS :
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 278

8.3.2.4. Ajustage des paramtres audio avec ALSA
Ces oprations vous permettront de faire fonctionner votre carte son pour toutes les oprations de base,
savoir la lecture et l'enregistrement de fichiers son, le rglage du volume sonore et ventuellement la
lecture des CD audio par l'intermdiaire de votre carte son (si, bien entendu, vous avez reli la sortie
audio de votre lecteur de CD l'entre auxiliaire de votre carte son).
Le rglage des paramtres de votre carte son peut tre ralis trs simplement si vous utilisez les
pilotes ALSA. En effet, il existe une application en mode texte permettant de raliser ces rglages.
Cette application se lance simplement avec la commande alsamixer
Comme vous pouvez le constater, cette application prsente une interface trs simple, dans laquelle
chaque canal de la carte son peut tre rgl indpendamment. Pour passer d'un canal l'autre, il suffit
d'utiliser les flches droite et gauche, et pour rgler les volumes, d'utiliser les flches haut et bas du
clavier. Vous pouvez galement rendre un canal compltement muet en appuyant sur la touche 'M'.
Cette touche permet galement d'activer ou de dsactiver certaines fonctionnalits de votre carte son.
Lorsque les rglages vous conviendront, vous pouvez simplement quitter alsamixer en appuyant sur la
touche 'chap'.
Les rglages raliss de cette manire ne sont pas permanents. Cela signifie que d'un redmarrage
l'autre de la machine, les valeurs par dfaut seront reprises. ALSA fournit donc galement l'outil
alsactl, qui permet d'enregistrer les paramtres des cartes son dans le fichier de configuration
/etc/asound.conf. Pour cela, il suffit simplement d'appeler cette commande avec l'option store :
alsactl store
alsactl permet galement de restaurer les paramtres sauvegards, l'aide de son option restore.
On aura donc tout intrt placer une ligne telle que celle-ci dans les fichiers d'initialisation de sa
distribution, si ce n'est dj fait :
alsactl restore
Par ailleurs, pour les cartes son qui disposent d'un synthtiseur FM, il peut tre intressant d'activer
cette fonctionnalit. Gnralement, les pilotes ALSA dsactivent cette fonctionnalit. Elle peut
toutefois tre ractive en spcifiant le port d'entre / sortie du synthtiseur FM de la carte son l'aide
de l'option fm_port. du module prenant en charge votre carte son. De mme, vous pourrez activer la
gestion des pilotes MIDI en ajoutant l'option mpu_port et en indiquant le numro de port pour le
port MIDI. Vous pouvez consulter le fichier de documentation Documentation/sound/alsa/ALSA-
Configuration.txt des sources du noyau Linux pour plus d'informations ce sujet. En gnral, le
numro de port utilis pour les synthtiseurs FM est le numro 0x388, et le numro du port MIDI est
le 0x300. Par exemple, pour une carte son CMI, la ligne suivante pourra tre ajoute dans le ficher de
configuration modprobe.conf :
options snd-cmipci fm_port=0x388 mpu_port=0x300
Si vous dsirez compiler en dur le pilote de votre carte son, vous devrez fournir ces informations en
ligne de commande l'amorage du noyau. Vous devez donc ajouter, pour chacun de ces paramtres,
une option la ligne de commande du noyau. Par exemple, pour une carte son CMI, il faudrait ajouter
les options suivantes dans le fichier de configuration du GRUB ou dans le fichier lilo.conf :
snd-cmipci.index=0 snd-cmipci.fm_port=0x388 snd-cmipci.mpu_port=0x300

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 279

La premire option permet d'indiquer que cette carte son est la premire carte son du systme. Elle
peut tre ncessaire si vous avez intgr dans le noyau des pilotes pour d'autres cartes son, relles ou
virtuelles. Les autres options sont directement dduites de celles spcifies dans le fichier
modprobe.conf.
Enfin, vous aurez sans doute charger une banque de sons dans le pilote, que vous utilisiez une
synthse FM ou une table d'chantillons. La manire de procder est toutefois diffrente selon la carte
son utilise. Pour les cartes sons qui ne disposent que d'une mulation FM, il faut utiliser le
programme sbiload. Ce programme est fourni avec les outils complmentaires d'ALSA, et disponible
sur le site web du projet ALSA. Ce programme permet de charger dans le pilote les dfinitions des
notes en modulation de frquence. La syntaxe est la suivante :
sbiload -p65:0 --opl3 std.o3 drums.o3

Cette commande permet de charger dans le priphrique MIDI ALSA 65:0 les fichiers de dfinition de
notes std.o3 et drums.o3. Ces fichiers sont fournis avec sbiload (pas dans toutes les versions
toutefois). L'option --opl3 permet d'indiquer le format de ces fichiers. Quant l'option -p, elle
permet d'indiquer le port MIDI dans le pilote ALSA. Les numros de ports disponibles peuvent tre
obtenus avec la commande suivante :

sbiload -l
Note : La commande sbiload ne fonctionne qu'avec les ports MIDI FM.
Si le priphrique MIDI FM ne s'affiche pas, c'est que soit votre carte son n'en dispose pas, soit il n'a
pas t activ dans le pilote et qu'il faut fournir l'option fm_port au module ou au noyau lors de son
dmarrage, soit que le module snd-synth-opl3 n'a pas t charg.
Pour les cartes son qui disposent d'une table d'chantillons, le programme utiliser est diffrent. Pour
les cartes Sound Blaster AWE et Sound Blaster Live, ce programme se nomme sfxload. Ce
programme peut tre trouv sur le site http://mitglied.lycos.de/iwai/awedrv.html. Vous trouverez
galement les fichiers de patches utilisables avec les cartes son AWE sur ce site. Vous pouvez utiliser
le fichier de dfinition des patches de Creative, que vous trouverez normalement soit sur une
installation de Windows avec une carte son AWE, soit sur vos CD d'installation, soit sur Internet. Le
fichier fourni par Creative se nomme synthgm.sbk.
Pour charger les patches dans la mmoire de la carte, il suffit d'utiliser la commande suivante :
sfxload /usr/lib/synthgm.sbk

(En supposant que le fichier 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 de prise en charge de votre carte son.
8.3.2.5. Fichiers MIDI et synthtiseurs logiciels
Comme indiqu en introduction, la plupart des cartes son ne permettent pas de lire les fichiers MIDI
au niveau matriel. Les fichiers MIDI sont des fichiers ne contenant que les partitions des
morceaux enregistrs. Ils ne contiennent pas les donnes audio numriques comme c'est le cas pour les
fichiers son classiques ou les pistes de CD audio. Cela explique leur taille rduite, mais pose un
problme pour leur restitution. En effet, la lecture d'un fichier MIDI suppose que votre carte son
dispose d'un jeu de sons numriss dans sa mmoire afin de pouvoir reconstituer le signal sonore
partir des informations du fichier MIDI. Ces sons sont couramment appels des chantillons
( patches en Anglais), et ils peuvent tre enregistrs soit en dur dans la mmoire de la carte son, soit
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 280

chargs lors de son initialisation. Il va de soi que certaines cartes son ne disposent pas des
fonctionnalits ncessaires la lecture des fichiers MIDI. Dans ce cas, il faut utiliser un programme
externe capable de synthtiser le son partir d'chantillons enregistrs sur le disque dur et d'envoyer
les donnes audio ainsi cres la carte son pour la lecture.
Pour les cartes son ne disposant pas de la possibilit de lire les fichiers MIDI, il ne reste que la
solution de l'mulation logicielle. Le meilleur synthtiseur logiciel sous Linux est incontestablement le
logiciel Timidity. Timidity est un programme de lecture de fichiers MIDI trs complet, paramtrable et
capable d'utiliser des banques de sons externes varies. De plus, le moteur de Timidity est utilis par
de nombreux autres programmes, en particulier par le lecteur KMidi de KDE.
L'auteur originel de Timidity ne le maintient plus. Cependant, d'autres programmeurs ont pris le relais
et l'ont amlior pour en faire la version Timidity++. Cette dernire version peut tre trouve sur
Internet sur le site de Timidity. L'archive que vous rcuprerez ne contient pas forcment le
programme : il peut ne s'agir que des fichiers sources permettant de le gnrer. Les notions de fichiers
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. De
plus, il est capable d'utiliser diffrentes interfaces pour lire et jouer les morceaux. En particulier, il
peut tre utilis comme un serveur MIDI via ALSA afin que tous les programmes MIDI puissent y
accder via linterface standard d'ALSA. De mme, il est capable de partager le canal audio de sortie
de la carte son via le serveur de son aRts de KDE. Pour utiliser ces fonctionnalits, il faut configurer
les sources avec la ligne de commande suivante :
./configure --prefix=/usr --enable-dynamic --enable-server \
--enable-interface=gtk,ncurse --enable-audio=arts,alsa,oss --enable-alsaseq
Une fois cela fait, vous pourrez gnrer l'excutable avec la commande suivante :
Make

et l'installer avec la commande :

make install

Cela installera Timidity dans le rpertoire /usr/bin/.
La deuxime tape est bien entendu d'installer les fichiers 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 ralise par Eric A. Welsh
est trs complte. Cette collection a de plus l'avantage d'tre prconfigure pour l'emploi avec
Timidity.
Lorsque vous aurez install les fichiers de patches, vous devrez indiquer Timidity leur emplacement
dans le systme de fichiers. Cette information doit tre stocke dans le fichier de configuration
timidity.cfg du rpertoire /usr/share/timidity/. Vous pourrez vous inspirer du fichier fourni avec la
collection de patches EAWPATS. Cependant, vous aurez modifier les chemins indiqus dans ce
fichier, 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/lib/timidity . Notez que cette ligne est facultative et peut tre commente si vous n'avez pas
dplac ce rpertoire. Le deuxime rpertoire est plus important, puisque c'est le rpertoire
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 281

d'installation des patches. Il s'agit cette fois de remplacer la ligne dir c:\eawpats par la ligne dir
rpertoire , o rpertoire est le rpertoire o vous avez extrait les fichiers patches.
Une fois que vous aurez termin ces modifications, vous pourrez lire un fichier MIDI simplement en
utilisant la ligne de commande suivante :
timidity fichier

o fichier est le nom du fichier MIDI lire. Si vous dsirez utiliser l'interface graphique de Timidity,
vous n'avez qu' ajouter l'option -ig la ligne de commande prcdente. Enfin, si vous dsirez
utiliser Timidity en tant que squenceur systme ALSA et permettre le mixage du flux audio qu'il
produit avec les flux des autres applications par l'intermdiaire du serveur de son aRts de
l'environnement de dveloppement de KDE, vous devrez utiliser les options -iA -OR -B2,8 -
EFreverb=0. Les programmes MIDI devront ensuite se connecter sur le port MIDI 128:0 d'ALSA.
L'installation de KMidi ne pose pas de problme particulier, puisqu'il est fourni avec KDE et que KDE
est normalement inclus dans toute bonne distribution. La seule opration que vous ayez faire est
simplement de modifier le fichier de configuration de KMidi pour lui indiquer l'emplacement des
fichiers de patches. Or comme KMidi est bas sur les sources de Timidity, il utilise le mme fichier de
configuration timidity.cfg que Timidity. Ce fichier est normalement situ dans le rpertoire
/base/kde/share/apps/kmidi/config/, o base reprsente le rpertoire de base d'installation de KDE.
Vous n'aurez donc qu' rpter les oprations faites sur le fichier de configuration de Timidity avec le
fichier de configuration de KMidi.
8.3.3. Installation d'une carte graphique 3D
De nos jours, toutes les cartes graphiques disposent d'une 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 n'existe pas de standard au niveau matriel. Comme il est impensable
que les applications qui dsirent utiliser les fonctionnalits 3D des ordinateurs modernes aient
prendre en compte le type de carte utilise, des interfaces logicielles standards ont t dfinies.
De toutes ces interfaces, Linux n'en gre qu'une seule : OpenGL. Cette interface a t dfinie par
Silicon Graphics pour ses stations de travail haut-de-gamme et s'est impose comme tant la norme en
la matire pour ce qui est de la 3D. Cette interface a l'avantage d'tre ouverte et disponible sur la
plupart des systmes, qu'ils soient de type Unix ou non.
La prise en charge de l'interface OpenGL est ralise deux niveaux sous Linux. La partie principale
rside dans le serveur X qui, comme nous l'avons dj signal, n'est rien d'autre que le programme
fournissant les services graphiques aux autres applications sous Unix. Cette partie est implmente par
une extension de l'interface de programmation XWindow, que l'on 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 s'appuie donc pour cela sur un
module du noyau, dont le but est de contrler les accs aux ressources matrielles et de garantir ainsi
la stabilit globale du systme.
La configuration des fonctionnalits 3D des cartes graphiques sous Linux ncessite donc d'intervenir
la fois dans le noyau et au niveau du serveur X. Pour ce qui est du noyau, il faut tout d'abord s'assurer
que les fonctionnalits d'accs direct au matriel sont bien supportes. Ces fonctionnalits sont
couramment appeles DRI , ce qui est l'abrviation de l'anglais Direct Rendering Infrastructure .
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 282

Pour activer les fonctionnalits DRI, vous devrez, dans la configuration du noyau, valider l'option
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 X.org et par le noyau. En revanche, NVidia fournit un pilote pour Linux
pour ces cartes, qui, bien qu'il n'utilise pas DRI, dispose galement d'un module du noyau et d'un
module pour X.org.
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 suffit
d'activer l'option /dev/agpgart (AGP support) dans le menu Character devices de la
configuration du noyau, ainsi que le type de chipset utilis par votre carte mre.
Une fois la configuration du noyau faite, vous pourrez le recompiler et l'installer. La manire de
procder a t dcrite en dtail dans la Section 7.3.
Vous devrez galement vous assurer que le fichier 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 qu'ils sont bien
rfrencs dans le fichier modprobe.conf.
La suite des oprations se passe alors au niveau de la configuration du serveur X de X.org. L'activation
du support de l'AGP et d'OpenGL se fait simplement en rajoutant deux options dans le fichier de
configuration /etc/X11/xorg.conf. 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.
Note : Pour le pilote fourni par NVidia pour X.org, il n'est pas ncessaire de demander le chargement
du module DRI, car il ne l'utilise pas.
Il est suppos ici que le serveur X utilis correspond bien la carte graphique et dispose des
fonctionnalits 3D. Si ce n'est pas le cas, vous devrez sans doute rinstaller X.org.
Les programmes utilisant OpenGL utilisent souvent une bibliothque complmentaire nomme
GLUT. Cette bibliothque est fournie avec la couche d'mulation logicielle d'OpenGL MESA.
Toutefois, la bibliothque GLUT n'est disponible que dans les programmes d'exemples de MESA.
Vous devrez donc rinstaller MESA compltement si votre distribution ne fournit pas la bibliothque
GLUT.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 283

8.3.4. Installation d'une carte d'acquisition vido
Linux fournit toutes les fonctionnalits ncessaires la manipulation des flux de donnes vido par
l'intermdiaire d'une interface de programmation nomme video4linux (ce qui se lit Video for
Linux ). Linux est capable de grer la plupart des cartes d'acquisition TV du march et quelques-unes
des cartes d'acquisition vido. Comme d'habitude, 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 lorsqu'on achte
une carte d'acquisition TV.
En pratique, quasiment toutes les cartes d'acquisition TV utilisent les circuits intgrs Bt848 ou un de
leurs drivs, et Linux sait les grer sans problmes. Les cartes d'acquisition et de montage vido
utilisent d'autres circuits plus puissants, dont les spcifications ne sont gnralement pas disponibles.
Seule la configuration des cartes TV sera donc dcrite ci-dessous.
Les applications, pour accder aux priphriques vido, utilisent l'un des fichiers spciaux de
priphrique /dev/video*. Ces fichiers sont des fichiers 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 l'un de ces fichiers spciaux, qui sera utilis pour
accder au priphrique vido par dfaut. Normalement, tous ces fichiers sont installs d'office dans le
rpertoire /dev/ soit par les distributions, soit par udev au dmarrage du systme, et vous n'aurez donc
gnralement pas les crer vous-mme.
Le support de la vido sous Linux passe bien entendu par la configuration du noyau. Cette fois, il n'est
pas certain du tout que le noyau fourni avec votre distribution supporte les cartes d'acquisition 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 configuration du noyau se trouvent dans le menu
Multimedia devices . Vous devrez activer l'option Video For Linux . Si vous compilez cette
fonctionnalit sous la forme de module, celui-ci sera nomm videodev. Ce pilote se chargera de
rpondre aux requtes du client sur les fichiers 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 . Il est recommand de compiler ces gestionnaires de priphriques
sous la forme de modules, car il vous faudra sans doute spcifier des options afin d'adapter ces
gestionnaires votre matriel.
Note : La configuration des cartes bases sur la puce Bt848 (option de menu BT848 Video For
Linux ) n'est accessible que si vous avez galement activ l'option I2C bit-banging interfaces du
menu I2C support (lui-mme situ dans le menu Character devices ).
De plus, le pilote prenant en charge les puces du type Bt848 ne prend pas en charge la gestion du son.
Ces puces n'intgrent en effet pas de gestion du son, et ncessitent de brancher la sortie audio de la
carte TV sur l'entre ligne d'une carte son. Toutefois, un mixeur est disponible. Celui-ci est pris en
charge automatiquement pour les pilotes de son ALSA. Pour les pilotes OSS en revanche, un
gestionnaire spcifique devra tre activ. L'option correspondante est l'option TV card (bt848) mixer
support . Pour les puces Bt878, qui sont plus rcentes, une carte son intgre est fournie, et il existe
un pilote complet ALSA et OSS, que l'on devra galement activer.
Une fois le noyau recompil et install, il faut modifier les paramtres adapts votre matriel. En
effet, bien que Linux soit parfaitement capable de dterminer les ressources requises par les cartes
vido, il est rare que le matriel soit correctement identifi par les gestionnaires de priphriques. Cela
est d au fait que les gestionnaires se basent plus sur les composants courants permettant de faire
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 284

l'acquisition 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, puisqu'il 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, et bien souvent le modle de tuner doit galement tre
spcifi.
Si vous avez compil les gestionnaires de priphriques sous forme de module, vous pourrez spcifier
le type de carte et le type de tuner simplement dans le fichier de configuration /etc/modprobe.conf,
l'aide des options du module du gestionnaire de priphrique adquat. Pour les cartes bases sur la
puce Bt848, le gestionnaire de priphrique est pris en charge par le module bttv. Le type de carte peut
lui tre communiqu l'aide de l'option card. Cette option peut prendre comme valeur un numro
identifiant le modle de la carte. Les valeurs actuellement supportes sont indiques dans le fichier
CARDLIST.bttv du rpertoire /usr/src/linux/Documentation/video4linux/bttv/. Le type de tuner quant
lui doit tre spcifi l'aide de l'option uner. Cette option prend, elle aussi, une valeur numrique
indiquant la nature du tuner utilis. Les valeurs supportes sont donnes dans le fichier
CARDLIST.tuner. En pratique, il est fort probable que vous utilisiez le type de tuner 3, qui correspond
au tuner Philips SECAM, car la France utilise le standard SECAM pour les missions TV.
Ainsi, si vous disposez d'une carte MIRO PCTV (carte de type 1) base sur le tuner Philips SECAM,
vous devriez avoir les lignes suivantes dans votre fichier modprobe.conf :
# Nom du module de gestion de Video For Linux :
alias char-major-81 videodev

# Nom du module utiliser pour le premier priphrique vido :
alias char-major-81-0 bttv

# Options du module de gestion du Bt848 :
options bttv card=1 tuner=3

Vous devrez bien entendu adapter ces lignes selon votre propre configuration.
Si vous ne dsirez pas utiliser les modules du noyau, vous devrez fournir ces paramtres au
gestionnaire de priphrique via la ligne de commande du noyau. Les options utiliser peuvent alors
tre dduites des options du module, comme on l'a expliqu dans la Section 8.1.1.3. Pour notre
exemple, ces paramtres seraient les suivants :
bttv.card=1 bttv.tuner=3
Si vous avez compil les fonctionnalits de l'interface I2C sous forme de module (option de menu
I2C bit-banging interfaces ), vous aurez galement ajouter ces lignes dans votre fichier de
configuration modprobe.conf :
# Nom du module de gestion des fonctionnalits I2C :
alias char-major-89 i2c-dev

# Activation de l'agorithme bit-banging :
options i2c-algo-bit bit_test=1

Pour information, I2C est un protocole de communication entre micro-contrleurs, que la plupart des
cartes mres sont capables de grer. Cette fonctionnalit n'est ncessaire que pour les cartes bases sur
la puce Bt848.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 285

Enfin, si vous utilisez les pilotes OSS pour la gestion du mixer de votre carte d'acquisition vido (ce
qui est ncessaire pour les cartes vido bases sur les puces Bt848, parce qu'ALSA ne fournit pas de
pilote pour ces cartes l'heure actuelle), vous devrez dfinir les alias ncessaires au chargement des
modules de cette carte lors de l'accs aux priphriques audio. Par exemple, pour une carte base sur la
puce Bt848, les alias suivants doivent tre ajouts dans le fichier de configuration modprobe.conf :
# Charge le pilote de la carte vido en tant que deuxime carte son :
alias sound-slot-1 bttv

# Charge le mixer de la carte son de cette carte :
alias sound-service-1-0 tvmixer
Note : Vous pouvez rencontrer quelques problmes lors de la configuration de votre carte TV.
Gnralement, si vous n'obtenez aucune image, c'est que vous vous tes tromp de tuner. Revoyez
dans ce cas l'option ype du module tuner. Si vous obtenez bien une image, mais pas de son, c'est
sans doute que vous vous tes tromp dans le type de carte, ou que vous avez oubli d'inclure 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 configuration du noyau ou
modifier la valeur passe l'option card du module bttv. Dans tous les cas, n'hsitez 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 fichiers spciaux de priphriques
/dev/videoX. Le symptme classique est dans ce cas que tout fonctionne parfaitement sous le compte
root, mais pas sous les comptes utilisateurs. Dans ce cas, on pourra rsoudre ces problmes en crant
un groupe d'utilisateurs video, auquel appartiendront tous les utilisateurs ayant le droit d'utiliser la
carte d'acquisition TV, et de changer le groupe des fichiers spciaux de priphriques /dev/videoX.
Enfin, l'utilisation des cartes d'acquisition TV ncessite d'activer les fonctionnalits DGA ou Xv du
serveur X. Ces fonctionnalits permettent aux programmes d'accder directement la mmoire vido,
et donc de faire l'incrustation de l'image dcode par la carte TV dans la surface d'affichage d'un cran.
La manire d'activer les fonctionnalits DGA et Xv sera prcise dans le chapitre traitant de la
configuration du serveur X.
8.3.5. Configuration des cartes rseau
Le support des cartes rseau est trs complet sous Linux et la prise en charge d'une nouvelle carte
revient souvent simplement ajouter le gestionnaire de priphriques de cette carte dans la
configuration du noyau. La plupart des cartes rseau sont des cartes Ethernet compatibles soit avec les
cartes NE2000, soit avec les cartes 3COM, aussi suffit-il en gnral d'activer le gestionnaire de
priphriques pour l'une de ces cartes pour qu'elle soit utilisable.
La configuration des gestionnaires de priphriques se fait dans le menu Networking support de la
configuration du noyau. Il faut activer l'option 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 l'option EISA, VLB,
PCI and on board controllers . 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 tant ici de ne pas utiliser les
modules afin d'avoir viter de complter le fichier de configuration /etc/modprobe.conf.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 286

La compilation du noyau elle-mme est 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 suffit en aucun cas l'utilisation de l'ordinateur en rseau. En effet, il faut galement
configurer l'ensemble 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.3.6. Configuration des adaptateurs Wifi
Le Wifi (abrviation de l'anglais Wireless Fidelity est une technologie permettant de mettre
plusieurs ordinateurs en rseau par ondes radio. La plage de frquences utilise est situe dans la
gamme des micro-ondes (2.44 GHz) et est soumise une rglementation stricte dans de nombreux
pays, car elle est en partie rserve aux applications militaires. En pratique, seuls certains canaux sont
donc utilisables, et des drogations peuvent tre ncessaires pour une utilisation en extrieur. De plus,
cette plage de frquences est la mme que celle utilise par de nombreux autres appareils sans fil,
comme les tlphones portables. Les communications sont donc fortement perturbables par ces
appareils, ainsi bien sr que par les fours micro-ondes. Enfin, du fait mme que ce sont des ondes
radio, la confidentialit et la scurit des communications peuvent tre compromises.
Note : Comme pour toute onde proche des 2.4 GHz, l'influence des ondes radio Wifi sur les corps
organiques humides n'est pas neutre (la problmatique se pose bien entendu galement pour les
tlphones portables). En effet, les effets sont strictement les mmes que ceux des ondes des fours
micro-ondes : ces ondes sont la frquence propre des molcules d'eau, qui entrent donc en
rsonnance en leur prsence (cette interaction est due la polarit de la molcule H2O, elle mme due
son asymtrie - les atomes d'hydrogne et d'oxygne ne sont pas en ligne - et la diffrence
d'elctrongativit entre les atomes d'hydrogne et d'oxygne qui la constituent). Les molcules d'eau
restituent ensuite l'nergie de l'onde par diffusion de leur agitation molculaire dans les molcules
avoisinantes, ce qui provoque une augmentation de temprature. On est donc en droit de se poser la
question du danger de l'utilisation de ces ondes pour l'organisme. En gnral, les puissances mises
restent trs faibles, et leur influence dcroit de manire inversement proporionnelle au carr de la
distance l'metteur, ce qui fait que le danger est relativement rduit. Toutefois, titre personnel, et
sans prtendre avoir fait la moindre tude sur le sujet, je vous invite la prudence lors de l'utilisation
d'ordinateurs ou de tlphones portables, en raison mme de leur proximit (note : je n'ai pas de
tlphone portable). Notez galement que la chaleur directe dgage par ces appareils par effet Joule
est certainement la plus nocive, de mme que leur utilisation prolonge pour l'quilibre mental...
Plusieurs normes de transmission ont t dfinies pour spcifier les interactions entre les appareils
Wifi, ainsi que les technologies de chiffrement utilises. La norme la plus rpandue est la norme
802.11b, qui permet d'atteindre un dbit de 11 Mbits/s thorique sur des distances allant jusqu' 300
mtres en extrieur (quelques dizaines de mtres en intrieur). Toutefois, la plupart des adaptateurs
Wifi implmentent galement la norme 802.11g prsent. Cette norme permet en effet une
compatibilit ascendante avec les quipements 802.11b d'une part (elle utilise la mme plage de
frquences), et en constitue une amlioration consquente puisque le dbit thorique est relev 54
Mbits/s d'autre part (30 Mbits/s rls). Notez qu'une autre norme concurrente du 802.11g a t dfinie,
mais, n'tant pas compatible avec les quipements existants, elle n'a pas eu autant de succs. Il s'agit
de la norme 802.11a, qui utilise une plage de frquence 5 GHz. Les problmes d'interfrences sont
donc moindres, mais la porte est galement rduite (plus la frquence d'une onde radio est leve,
plus sa porte est rduite et plus elle est susceptible d'tre bloque par des objets).
Ces normes Wifi dfinissaient galement un mcanisme de scurit primitif, qui peut tre considr
comme absolument inefficace de nos jours (il s'agit du WEP). En particulier, les algorithmes utiliss
n'taient pas fiables du tout et peuvent tre casss simplement par coute du traffic pendant une
priode de temps relativement courte. De ce fait, de nouveaux mcanismes de scurits ont t dfinis
(notamment le WPA et le WPA2). Enfin, la norme 802.11i, encore peu rpandue, a pour but
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 287

d'amliorer la scurit des communications en utilisant un vritable procd cryptographique. Cette
norme peut tre transpose pour les appareils 802.11g et 802.11a.
Comme vous pouvez le constater, le terme Wifi cache bien des choses complexes, et le choix d'une
technologie sur une autre peut tre assez difficile.
Malgr tous ces inconvnients, la technologie Wifi est trs pratique, car elle permet de connecter
simplement des machines sans s'emmler les pattes dans les cbles rseau. La plupart des ordinateurs
portables vendus disposent maintenant d'un adaptateur rseau sans fil Wifi, et il est trs facile d'en
connecter un un ordinateur de bureau, soit avec une carte fille, soit grce un adaptateur USB (il
existe mme des clefs USB dont l'encombrement est rduit celui d'une gomme). Il est donc certain
que ces technologies sont appeles se dvelopper et se gnraliser.
Certains matriels Wifi ne sont pas supports nativement par Linux, soit parce que les constructeurs ne
dsirent pas fournir les informations permettant aux dveloppeurs de faire un gestionnaire de
priphrique libre, soit parce que les constructeurs n'ont eux-mmes pas le droit de divulguer la
technologie utilise dans leurs appareils ou parce que les rglementation locales sur les missions
radio leur impose de tenir secret les caractristiques de leurs appareils. Le choix d'un priphrique
Wifi doit donc se faire avec prcaution. Vous pourrez consulter le site Web de Jean Tourrilhes pour
savoir le matriel support par les diffrents pilotes disponibles.
La prise en charge des priphriques Wifi ncessite d'activer le support du Wifi dans le noyau lui-
mme. Cela peut tre fait en activant l'option Wireless LAN drivers (non-hamradio) & Wireless
Extensions du menu Network device support du noyau. Cette option vous donnera galement
accs aux options de configuration des pilotes de priphriques Wifi (sauf pour certains priphriques
USB, qui sont accessibles dans les options de configuration des priphriques USB). Certains pilotes
ne sont pas encore intgrs au noyau, et vous devrez peut-tre chercher sur Internet le pilote
correspondant votre matriel. Plusieurs projets ont en effet t crs afin de prendre en charge le
Wifi sous Linux. Vous trouverez galement sur le site de Jean Tourrilhes des liens vers les projets des
pilotes pour les autres puces Wifi.
Si aucun pilote Linux n'est disponible pour votre matriel, vous pourrez vous rabattre sur le projet
NDISWrapper (http://ndiswrapper.sourceforge.net). Ce projet a pour but de simuler la couche rseau
NDIS de Windows XP afin de pouvoir charger les gestionnaires de priphriques pour Windows
fournis par les fabricants, et les duper en leur faisant croire qu'ils s'excutent bien sous Windows.
Cette technique reste toutefois une magouille et ne rsout bien entendu pas le problme de la
disponibilit de pilotes libres.
L'installation des pilotes ne sera pas dtaille plus ici, car la manire de procder est spcifique
chaque matriel. Dans le cas de NDISWrapper, l'installation se fait simplement en installant
NDISWrapper lui-mme et en excutant la commande suivante :
ndiswrapper -i driver.inf

o driver.inf est le fichier .inf du gestionnaire de priphrique pour Windows de votre matriel. Cette
commande copie les fichiers ncessaires de ce gestionnaire de priphrique dans le rpertoire
/etc/ndiswrapper/ et dfinit la configuration pour l'utilisation de ce priphrique. Une fois cela fait, le
chargement du module ndiswrapper suffit pour charger le gestionnaire de priphrique :

modprobe ndiswrapper

Pour les autres gestionnaires de priphriques, il suffit gnralement galement de charger le module
du noyau du pilote, et ventuellement de charger un firmware.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 288

Lorsque le pilote est charg, une nouvelle interface rseau wlanX apparat dans le systme, o X
est le numro de l'interface rseau sans fil. Cette interface peut ensuite tre utilise comme n'importe
quelle interface rseau, ceci prs qu'il faut au pralable configurer les paramtres du rseau sans fil.
En particulier, il est ncessaire de spcifier le mode de fonctionnement, le canal utiliser et
l'identifiant du rseau sans fil. Une clef de chiffrement des communications peut galement tre
donne (cela ne garantit toutefois pas une scurit absolue, sauf en 802.11i).
Les rseaux Wifi peuvent tre tablis de plusieurs manires. S'il s'agit de relier deux machines par
Wifi, le mode de fonctionnement utilis le plus simple est le mode ad hoc . Dans ce mode, les deux
machines peuvent communiquer directement, sans avoir recours une infrastructure quelconque.
Inversement, si plusieurs machines doivent tre relies un rseau existant (ou simplement entre
elles), il est ncessaire d'installer ce qu'on appelle un point d'accs , qui synchronisera les
communications entre toutes ces machines. Dans ce cas, le mode de fonctionnement utilis est le mode
manag .
Le canal permet de spcifier la frquence utilise par les priphriques sans fil. Bien entendu, toutes
les machines devant participer la communication doivent utiliser le mme canal. Le canal est donc
un des paramtres essentiel du rseau. Il existe plusieurs canaux, mais en pratique, seuls quelques-uns
peuvent tre utiliss librement en France. Il s'agit des canaux 10 (2457 MHz), 11 (2462 MHz), 12
(2467 MHz) et 13 (2472 MHz).
Comme on peut tre amen crer plusieurs rseaux Wifi utilisant un mme canal, il est ncessaire de
pouvoir les distinguer afin d'viter de mlanger les transmissions. Deux possibilits s'offrent alors
l'utilisateur : soit on utilise ce qu'on appelle un numro de rseau virtuel ( Network ID ), soit on
utilise un nom de rseau. La premire solution ne permet de dfinir qu'une cellule du rseau, alors que
la deuxime permet de regrouper plusieurs de ces cellules et autorise un utilisateur passer d'une de
ces cellules l'autre (une cellule est une zone gographique prise en charge par un point d'accs).
Tous ces paramtres peuvent tre spcifis avec la commande iwconfig, sauf pour certains pilotes de
priphriques non standards qui ncessitent des commandes spcifiques. La syntaxe gnrale de cette
commande est la suivante :
iwconfig interface options

o interface est le nom de l'interface rseau sans fil (par exemple wlan0), et options est la liste des
options permettant de dfinir les paramtres du rseau sans fil. Les principales options sont
rcapitules dans le tableau suivant :

Option Signification
channel Numro du canal.
mode Mode de fonctionnement.
essid Nom de rseau.
nwid Numro de rseau.
key Clef de chiffrement WEP du rseau.
Les modes de fonctionnement les plus courants sont le mode ad hoc pour le mode ad hoc, et le
mode managed pour l'utilisation d'un point d'accs. La page de manuel de iwconfig vous donnera
la liste des autres modes utilisables.
Par exemple, pour configurer une interface sans fil sur le canal 11, en mode manag et avec un nom de
rseau "MonWLAN", il faudra utiliser la commande suivante :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 289

iwconfig wlan0 mode managed essid MonWLAN channel 11

la suite de cette commande, l'interface wlan0 sera utilisable comme n'importe quelle interface
rseau.
Si vous dsirez dfinir une clef de chiffrement pour votre rseau sans fil, vous devrez utiliser l'option
'ey. L'utilisation du chiffrement peut tre facultative en Wifi, sauf si l'interface est configure pour
n'accepter que les communications chiffres. L'option 'ey peut donc accepter, en plus de la clef de
chiffrement (dont la taille est de 64 ou 104 bits, soit 8 ou 13 octets), un paramtre indiquant si le
chiffrement est obligatoire ou non. Ce paramtre peut prendre la valeur open si le chiffrement est
facultatif, restricted s'il est obligatoire, ou tout simplement off si le chiffrement doit tre dsactiv.
Par exemple, pour imposer l'utilisation d'une clef de chiffrement sur l'interface wlan0, la commande
suivante devra tre utilise :
iwconfig wlan0 key restricted 74151B6DCD98D808

Comme vous pouvez le constater, la clef est fournie en hexadcimal (c'est--dire en base 16, les
chiffres au dessus de 9 tant reprsents par les lettres A F). Pour sortir du mode chiffr, la
commande suivante pourra tre utilise :

iwconfig wlan0 key off
Sachez toutefois que le chiffrement WEP n'est pas fiable du tout, et qu'il ne faut pas se reposer dessus.
Le chiffrement WPA, bien que n'tant pas encore support par tous les adaptateurs et tous les pilotes,
est donc privilgier. Outre l'utilisation d'algorithmes de chiffrement plus volus, le chiffrement
WPA permet de rengocier rgulirement les clefs de chiffrement utilises par les interlocuteurs.
Sous Linux, cette ngociation priodique est la charge du dmon wpa_supplicant. Ce dmon prend
en charge tous les aspects de la liaison Wifi, et rend par consquent obsolte l'utilisation de la
commande iwconfig pour la configuration du rseau sans fil. En effet, cette configuration doit se faire
dans le fichier de configuration /etc/wpa_supplicant.conf, dont vous trouverez un exemple ci-dessous :
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="MonRezo"
key_mgmt=WPA-PSK
psk=1cc5a2db98bfd1387de265397772b9ea36e4d049e17fd1d660c014576d5e71a4
proto=WPA
}
L'option ctrl_interface permet de spcifier un rpertoire dans lequel wpa_supplicant placera
des fichiers servant de canaux de communication avec des programes complmentaires permettant de
le contrler et d'obtenir des informations sur l'tat de la liaison Wifi. La dfinition des paramtres des
rseaux sans fil se fait ensuite dans une section network, comme vous pouvez le constater.
Le nom du rseau est obligatoire. Il doit tre dfini avec l'option ssid. Le protocole de gestion de clef
utilis peut ensuite tre spcifi avec l'option key_mgmt. Dans cet exemple, il a t choisi d'utiliser
une clef secrte partage ( PSK , abrviation de Private Shared Key ) par toutes les machines
connectes au rseau sans fil. Cette configuration est trs classique, et convient en particulier pour tous
les modems routeurs sans fil que l'on peut trouver dans le commerce.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 290

La clef elle-mme doit tre spcifie avec l'option psk. Cette option peut prendre une chane de
caractres ASCII entre guillemets (exactement comme on a donn le nom du rseau l'option ssid),
ou une valeur hexadcimale. La commande wpa_password permettra de crer une telle valeur partir
d'une chane de caractre et du nom du rseau.
Enfin, l'option proto permet d'indiquer le protocole de chiffrement utilis. Dans le cas prsent, nous
avons utilis le protocole WPA, qui rengocie les clefs rgulirement. Le protocole WPA2,
intrinsquement plus sr, aurait pu tre utilis, mais n'a pas t choisi parce que les points d'accs les
plus anciens ne savent pas grer ce protocole.
Note : Il est possible de dfinir plusieurs rseaux sans fil dans le fichier de configuration, dans ce cas,
wpa_supplicant utilisera le premier rseau dfini dans le fichier, en privilgiant les rseaux utilisant
les protocoles de chiffrement les plus srs.
Cet exemple de fichier de configuration ne prsente que le cas d'un rseau sans fil classique, dont les
diffrentes machines partagent une mme clef secrte de chiffrement. Sachez toutefois que
wpa_supplicatn sait grer des configurations plus compltes, dans lesquels des mcanismes de
chiffrement plus volus et des serveurs d'authentification peuvent tre utiliss par exemple. Ces
configurations ne seront pas abordes ici.
Une fois le fichier de configuration des rseaux sans fil mis en place, il ne reste plus qu' lancer le
dmon wpa_supplicant. Typiquement, la commande utiliser est la suivante :
wpa_supplicant -Bw -c/etc/wpa_supplicant.conf -Dwext -iwlan0

Les options B et w permettent respectivement de faire passer le processus ainsi lanc en arrire plan, et
de lui demander d'attendre que l'interface rseau utiliser soit cre, si elle ne l'est pas encore lors de
son lancement. Le nom de cette interface est spcifi avec l'option i, et l'interface de programmation
utilise est spcifie avec l'option . Dans le cas prsent, l'interface de programmation utilise est
l'interface des extensions sans fil classique de Linux ( wext , abrviation de Wireless
Extentions ). Enfin, l'option c permet de spcifier le fichier de configuration utiliser. Il s'agit ici du
fichier que l'on vient de dcrire dans les paragraphes prcdents.
Sachez enfin que la liste des rseaux sans fils disponibles peut tre rcupre avec l'option scan de la
commande iwlist. Par exemple, la commande suivante vous affichera tous les rseaux sans fils
disponibles via l'interface rseau wlan0, ainsi que leurs caractristiques :
iwlist wlan0 scan

La commande iwlist accepte d'autres options, dont vous trouverez la liste et la description dans sa
page de manuel.
Pour finir, la commande iwconfig, utilise sans option, affiche la configuration des interfaces sans fil
du systme. En particulier, vous y trouverez le mode de fonctionnement, le numro de canal et les
identifiants du rseau, ventuellement la clef de chiffrement utilise, ainsi que la qualit du signal
radio. La page de manuel de iwconfig vous donnera de plus amples informations sur la manire dont
ces informations peuvent tre interprtes.
8.4. Configuration des ports de communication
Les ports de communication sont les seuls moyens de communication de l'ordinateur avec d'autres
appareils, et sont donc essentiels au mme titre que les rseaux.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 291

Historiquement, le plus vieux type de port de communication utilis est sans doute le port srie, qui
permet 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 l'un des principaux est sans doute le faible
dbit de donnes qu'ils autorisent. Ils ne peuvent donc pas tre utiliss pour les applications les plus
exigeantes. C'est pour cela que les ports USB (abrviation de l'anglais Universal Serial Bus ) et
IEEE1394 (alias FireWire ) ont t invents.
Cette section prsente la manire de configurer les diffrents ports de communication actuellement
utiliss, savoir le port parallle, les ports srie standards, et enfin les ports USB et IEEE1394.
8.4.1. Prise en charge des priphriques ISA standards
La plupart des PC disposent encore de priphriques d'entre/sortie standards ISA intgrs aux cartes
mres, comme les ports sries et les ports parallles, mme s'ils ne permettent plus de brancher des
cartes filles ISA. Il est donc encore ncessaire de prendre en charge ces fonctionnalits au niveau du
noyau, mme si vous ne disposez d'aucun priphrique ISA.
Pour cela, il suffit d'activer les options Plug and Play support et Plug and Play BIOS support du
menu Plug and Play support de la configuration du noyau. Ces options permettent de prendre en
charge les ressources Plug and Play des cartes mres, et donc de raliser la configuration automatique
des ports parallles et srie de l'ordinateur.
8.4.1.1. Configuration du port parallle
La configuration du port parallle sous Linux est relativement automatique. Il suffit en effet, dans le
programme de configuration du noyau, d'activer les options Parallel port support , PC-style
hardware , Use FIFO/DMA if available 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 l'option 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 l'option Parallel port IDE device support du
menu Block devices , ainsi qu'au 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.
Pour des raisons de compatibilit, le gestionnaire de ports parallles utilise par dfaut une
interrogation priodique pour dterminer l'tat des ports. Cela consomme gnralement des ressources
de calcul, mais c'est une technique fiable. Toutefois, si votre matriel le permet, il est possible de le
configurer pour utiliser une interruption matrielle, et soulager ainsi le processeur de cette tche. Nous
allons donc voir comment configurer le port parallle ci-dessous.
Afin d'utiliser une interruption matrielle pour le port parallle, il est ncessaire de spcifier
explicitement la ligne de cette interruption. Cela peut se faire avec l'option 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 l'a vu dans la Section 8.1.1, le noyau demande toujours le chargement du module
parport_lowlevel pour des raisons de portabilit. Il faut donc dfinir un alias dans le fichier de
configuration /etc/modprobe.conf.
Outre la ligne d'interruption utiliser, le module parport_pc peut prendre en paramtre une autre
option permettant d'indiquer le port d'entre / sortie qu'il doit utiliser pour accder au port parallle.
Cette option est l'option io. En gnral, le port utilis est le port numro 378h et la ligne d'interruption
est souvent la 7. Les options suivantes doivent donc tre dfinies dans le ficher modprobe.conf pour
obtenir un fonctionnement optimal du port parallle sous Linux :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 292

alias parport_lowlevel parport_pc
options parport_pc io=0x378 irq=7
Dautres options pourront tre dfinies dans le fichier de configuration modprobe.conf pour prendre en
charge les priphriques de type bloc connects sur port parallle. Cela est inutile pour les
imprimantes connectes sur le port parallle.
Si l'on dsire intgrer le gestionnaire de priphrique du port parallle dans le noyau et faire en sorte
qu'il utilise les paramtres dtects automatiquement pour ce port, la solution la plus simple est de
fournir l'option parport du noyau et de lui affecter la valeur auto :
parport=auto

Cela activera automatiquement l'utilisation de la ligne d'interruption du port parallle. Les autres
paramtres du port parallle peuvent tre trouvs dans le fichier kernel-parameters.txt de la
documentation du noyau.
8.4.1.2. Configuration des ports srie
Les ports srie fournis en standard sur les cartes mres sont dtects et configurs automatiquement
par le noyau lorsque l'ordinateur dmarre. Pour que cela fonctionne, il suffit que l'option
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 spcifiques pour votre matriel. Il vous faudra, dans ce cas, activer les options
complmentaires relatives aux ports srie dans le menu Character devices .
Le noyau n'est, en gnral, capable d'initialiser que les ports srie standards intgrs dans les cartes
mres (c'est--dire les ports COM1 COM4), auxquels on accde, sous Linux, par l'intermdiaire des
fichiers spciaux de priphriques /dev/ttyS0 /dev/ttyS3. Pour les autres ports srie, il peut tre
ncessaire de les initialiser manuellement, par exemple dans un fichier de configuration lanc au
dmarrage du systme.
Cette initialisation se fait l'aide de la commande setserial, dont la syntaxe simplifie est la suivante :
setserial fichier [uart type] [port adresse] [irq ligne]

o fichier est le fichier spcial de priphrique permettant d'accder au port srie initialiser, type est
le type de port srie utilis, adresse est son adresse d'entre / sortie et ligne est la ligne d'interruption
qu'il 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 fixer les paramtres de la ligne de
communication avec la commande stty. Comme on l'a dj vu prcdemment, cette commande permet
de fixer tous les paramtres des lignes de communication des terminaux et non seulement les
paramtres des lignes srie, et elle dispose donc d'un grand nombre d'options. Nous n'allons nous
intresser ici qu'aux 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 d'une ligne srie est la suivante :
stty -a -F priphrique

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 293

o priphrique est le fichier spcial de priphrique de la ligne. Si vous excutez cette commande,
vous constaterez qu'un grand nombre d'information 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 l'absence du caractre '-'), et [-]cstopb, qui indique le nombre de bits de stop utiliss
(un ou deux selon la prsence ou l'absence du caractre '-'). L'option [-]crtscts indique si le
contrle de flux matriel est utilis ou non. titre d'exemple, 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 fixer 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 fixer la vitesse de la ligne est
dcompose en deux options ispeed pour le flux de donnes entrant et ospeed pour le flux de
donnes sortant. On peut fixer la vitesse de la ligne avec l'option 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 configurer 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.2. Installation des priphriques USB
Bien qu'ayant eu quelques difficults ses dbuts, le port USB est dsormais en pleine expansion. Il
s'agit d'une 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 pour l'USB 1.1, et de 480 Mbits/s pour
l'USB 2.0 ;
capacit de connexion des priphriques chaud et dtection automatique par le systme
d'exploitation ;
possibilit d'alimentation des priphriques par le bus lui-mme, vitant ainsi d'avoir des
cbles supplmentaires pour les priphriques consommant peu d'lectricit.
Tous ces avantages font que le bus USB est appel remplacer les ports srie que l'on connat, et que
l'on n'utilise plus dsormais que pour les modems, les vieilles souris srie et quelques appareils
extrieurs. Notez que la simplicit du port srie fera qu'il restera encore prsents sur bon nombre
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 294

d'appareils pour plusieurs annes encore, mais les priphriques informatiques risquent de s'en
dtourner de plus en plus.
La gestion de l'USB sous Linux se base profondment sur les mcanismes de dtection dynamique des
priphriques connectables chaud. Les gestionnaires de priphriques sont donc gnralement des
modules du noyau chargs automatiquement lorsque ces priphriques sont dtects. Il est toutefois
galement possible d'intgrr ces gestionnaires au sein du noyau, et de laisser les oprations de
configuration des priphriques (chargement du firmware, cration des fichiers spciaux de
priphriques par udev et configuration du matriel) se faire via les mcanismes de gestion des
priphriques amovibles. Linux est capable d'utiliser la plupart des priphriques USB existant
actuellement sur le march.
Au niveau du noyau, la configuration des priphriques USB se fait dans le menu USB support . Il
faut simplement activer l'option Support for USB , slectionner un gestionnaire pour le port USB et
choisir les gestionnaires des diffrents types de priphriques que l'on voudra connecter sur la
machine.
Il est impratif d'activer l'option USB device filesystem afin de permettres certains outils
d'accder, via le rpertoire /proc/bus/usb/ du systme de fichiers virtuel /proc/, aux priphriques USB
connects l'ordinateur. Ce systme de fichiers doit tre mont l'aide de la commande suivante :
mount -t usbfs none /proc/bus/usb

pour pouvoir tre utilis. Il est galement possible de le monter automatiquement dans le fichier
/dev/fstab.
En fait, il existe trois types d'interfaces USB sur le march : les interfaces EHCI (abrviation ed
l'anglais Enhanced Host Controler Interface ), qui prennent en charge l'USB 2.0, les interfaces
UHCI (abrviation de l'anglais Universal Host Controller Interface ), spcifies par Intel et que les
contrleurs de la plupart des cartes mres utilisent (chipsets Intel et VIA), et les interfaces OHCI
( Open Host Controller Interface ), spcifies par Compaq, et qui sont utilises par les chipsets
Compaq et ALi principalement. Les ports USB 2.0 comprennent galement un port USB 1.1 UHCI ou
OHCI, qui permet donc de connecter les anciens priphriques USB. La configuration de l'USB se
restreint donc simplement la slection des pilotes ncessaires pour votre matriel (option EHCI
HCD (USB 2.0) support si vous disposez d'un port USB 2.0, et le pilote UHCI UHCI HCD (most
Intel and VIA) support ou le pilote OHCI OHCI HCD support ). Notez que le pilote EHCI ne
gre que la partie USB 2.0 de votre contrleur USB, et que vous devez galement inclure le support
UHCI ou OHCI pour pouvoir utiliser les priphriques USB 1.1.
Comme vous pouvez le constater dans le menu de configuration du noyau, un grand nombre de
priphriques USB sont grs par Linux. Vous devez bien entendu activer les options permettant de
prendre en charge votre matriel. Il est conseill d'inclure ces fonctionnalits sous forme de modules
afin de permettre le chargement dynamique des gestionnaires de priphriques. Cela est ncessaire
pour la configuration des priphriques connects chaud dans le systme. Les options les plus
importantes sont sans doute USB Audio support , pour la prise en charge des priphriques USB
audio, USB Printer support , pour toutes les imprimantes USB et USB Mass Storage support ,
pour la prise en charge des clefs USB et de la majorit des appareils photos numriques. Les scanners
USB sont pris en charge automatiquement par les logiciels et ne requirent pas de configuration
particulire au niveau du noyau.
Les priphriques d'entre tels que le clavier et la souris devront, si possible, tre inclus directement au
sein du noyau afin d'viter de se retrouver sans clavier et sans souris au dmarrage, en cas de problme
dans la configuration du systme. Notez qu'il existe deux types de pilotes pour les priphriques
d'entre : un pilote gnral (option USB Human Interface Device (full HID) support), qui fonctionne
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 295

avec tous les priphriques d'entre du menu Input core support , et des pilotes simplifis (options
du sous-menu USB HID Boot Protocol drivers ), que l'on utilisera pour raliser des systmes
embarqus ou des noyaux lgers. Il est videmment recommand d'utiliser le premier pilote, si
rellement le support du clavier USB est ncessaire (normalement, les claviers USB sont pris en
charge par le BIOS de l'ordinateur et apparaissent exactement comme des claviers classiques pour le
systme d'exploitation).
Il est fortement recommand, si l'on dsire utiliser des priphriques USB, d'activer les fonctionnalits
de chargement dynamique des modules, de gestion des priphriques connectables chaud et de
chargement des firmware automatique de Linux.
8.4.3. 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 CDROM externes par exemple),
mais sa principale utilisation reste pour les transferts de donnes vido provenant des camscopes
numriques. Certaines cartes mres disposent d'un port IEEE1394 intgr, mais la plupart ncessitent
l'ajout d'une carte fille PCI. La plupart de ces cartes sont vendues en tant que cartes de montage vido
et disposent de deux ports IEEE1394 afin de permettre une entre et une sortie du flux vido.
Le bus IEEE1394 dispose d'avantages indniables, puisqu'il permet de brancher et de dbrancher un
priphrique chaud (c'est--dire sans redmarrer l'ordinateur), 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 d'un logiciel de montage
vido). Il est galement possible d'utiliser le bus IEEE1394 pour connecter deux ordinateurs en rseau,
bien que cette fonctionnalit soit encore exprimentale.
Linux dispose des pilotes permettant d'utiliser les ports IEEE1394 de manire gnrique. Cependant, il
faut bien le reconnatre, les logiciels spcifiques aux diffrents types d'appareils sont encore trs rares
ou incomplets. Cet tat de fait est particulirement vrai en ce qui concerne les camscopes numriques,
pour lesquels il n'existe quasiment aucun logiciel de montage vido dont la qualit s'approche 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 configuration 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 FireWire sous
Linux sur le site de linux1394.
8.4.3.1. Configuration du noyau
La prise en charge du bus IEEE1394 au niveau du noyau est ralisable par l'intermdiaire 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 l'on a
activ l'option Prompt for development and/or incomplete code/drivers du menu Code maturity
level options . Les principales options utilisables sont les suivantes :
l'option IEEE 1394 (FireWire) support (EXPERIMENTAL) , qui est l'option principale qui
active toutes les autres options. Il faut donc imprativement activer cette option et rpondre
'Y' ;
l'option 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 configurer des paramtres complmentaires du gestionnaire de priphriques
avec les options Use PCILynx local RAM (utilisation de la mmoire embarque sur la carte
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 296

PCI) et Support for non-IEEE1394 local ports (utilisation de fonctionnalits
complmentaires non FireWire de ces cartes) ;
l'option OHCI-1394 support , qui active la prise en charge des priphriques IEEE1394
compatible OHCI (abrviation de l'anglais Open Host Controller Interface), qui sont les
priphriques les plus courants prsent. La rponse recommande est 'Y' ;
l'option OHCI-1394 Video support , qui permet de prendre en charge les camras vido
numriques. Cette option ajoute galement une fonctionnalit intressante qui permet aux
programmes de partager les donnes avec le gestionnaire de priphriques directement. Cela
permet d'viter qu'une copie de ces donnes ne soit ralise entre la mmoire du noyau et la
mmoire de l'application et d'obtenir ainsi de meilleures performances. La rponse
recommande est bien videmment 'Y'. Cette option n'est toutefois disponible que pour les
priphriques OHCI ;
l'option 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 l'un des priphriques /dev/sdx ;
l'option Raw IEEE1394 I/O support , qui permet aux applications de communiquer
directement avec le bus IEEE1394 par l'intermdiaire d'un fichier spcial de priphrique.
Cette option est ncessaire au bon fonctionnement de la plupart des applications IEEE1394 et
la rponse recommande est donc 'Y' ;
l'option Excessive debugging output , qui active l'mission de messages de traces pour
toutes les donnes survenant sur le bus IEEE1394. Cette option saturera vos fichiers de traces
trs vite et n'est rellement utile que pour les dveloppeurs, aussi faut-il rpondre 'N'.
Comme pour tous les priphriques sous Linux, les fonctionnalits IEEE1394 du noyau seront
accessibles par l'intermdiaire de fichiers spciaux de priphriques situs dans le rpertoire /dev/. Les
fonctionnalits vido seront accdes par l'intermdiaire d'un fichier spcial de priphrique de type
caractre et de code majeur 172. De mme, l'interface de donnes brute active par l'option Raw
IEEE1394 I/O support est expose par l'intermdiaire d'un fichier spcial de priphrique de type
caractre et de code majeur 171. Vous devrez donc crer ces fichiers spciaux l'aide 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 fichiers
spciaux de priphriques que pour le premier port IEEE1394.
8.4.3.2. Installation des bibliothques complmentaires
Les fonctionnalits IEEE1394 peuvent tre utilises par les applications directement par
l'intermdiaire des fichiers spciaux de priphriques /dev/raw1394 et /dev/video1394, mais quasiment
aucune ne le fait. En effet, des bibliothques spcifiques ont t crites afin de fixer les interfaces de
programmation de Linux avec ces applications. Il est donc ncessaire d'installer ces bibliothques pour
pouvoir utiliser les priphriques IEEE1394.
Il est encore rare que ces bibliothques soient installes par les distributions, certainement parce
qu'elles 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 d'utiliser la fonctionnalit
d'accs direct aux priphriques IEEE1394 par l'intermdiaire du fichier spcial de priphrique
/dev/raw1394. Les fichiers sources de cette bibliothque peuvent tre trouvs sur le site du projet
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 297

libraw1394. Une autre bibliothque utilise par les programmes vido est la bibliothque libavc1394.
Cette bibliothque permet en effet aux programmes de piloter les camscopes numriques par
l'intermdiaire du bus IEEE1394. Enfin, les programmes d'dition vido peuvent avoir besoin de la
bibliothque libdv, qui permet de manipuler les donnes au format DV (c'est--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 suivantes :
./configure --prefix=/usr
make

partir du rpertoire des sources. Celui-ci pourra tre extrait des archives l'aide de la commande tar
xzf archive, o archive est le nom de l'archive 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
d'dition de squences vido). Force est de reconnatre que ces programmes sont trs loin d'tre finis et
rellement difficiles utiliser.
Chapitre 9 : Configuration du rseau
Table des matires

9.1. Notions de rseau TCP/IP
9.2. Configuration du rseau sous Linux
9.3. Configuration de la connexion Internet
9.4. Pare-feu et partages de connexion Internet
9.5. Configuration de la scurit du rseau
9.6. Configuration des fonctions serveur
9.7. Systmes de fichiers en rseau
Linux est un systme d'exploitation fabriqu par l'Internet et pour l'Internet. Inutile de prciser que
c'est l'un des meilleurs systmes pour grer et exploiter un rseau. Certains ne l'utilisent d'ailleurs que
pour cela, et profitent de ses excellentes performances sur les petites machines afin de rcuprer du
matriel autrement vou la casse. En fait, les fonctionnalits rseau de Linux sont si nombreuses que
j'ai t oblig d'y consacrer un chapitre part entire.
La configuration d'un 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 configurer les services rseau de toute machine connecte, et pas seulement les machines
fonctionnant sous Linux. Il n'est en effet pas rare de trouver des rseaux de machines fonctionnant sur
des systmes dont la configuration est suppose tre plus simple, mais dont l'organisation 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
informatiques. Il traitera ensuite de la configuration des rseaux locaux, puis celle des connexions
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 298

temporaires Internet. Les services rseau volus tels que le partage de connexion Internet et la
cration d'un serveur de fichiers seront finalement traits en fin de chapitre.
9.1. Notions de rseau TCP/IP
9.1.1. Gnralits sur les rseaux
Un rseau n'est en gnral rien d'autre qu'une interconnexion entre plusieurs machines qui leur permet
d'changer 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 d'envoyer et de recevoir des informations est diffrente pour ces
diffrents supports physiques, parce qu'elle 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. L'information la plus
importante est sans doute celle permettant de connatre la machine destinataire du paquet. On l'appelle
l'adresse de la machine cible, il s'agit gnralement d'un numro permettant de l'identifier de manire
unique sur le rseau. En gnral, les paquets contiennent galement l'adresse de la machine source,
afin qu'une rponse puisse lui tre envoye.
Figure 9-1. Notion de paquet et d'adresse rseau

Du fait de la diversit des supports physiques de rseau, il n'est pas simple d'crire une application
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 l'infini 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 spcifiques au support physique. Les applications
quant elles utilisent un protocole de communication plus volu, dont le but est d'assurer
l'interoprabilit des diffrents supports physiques. Ce protocole utilise toujours des paquets et une
notion d'adresse, 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 s'appelle l'encapsulation d'un
protocole dans un autre protocole.
Figure 9-2. Encapsulation de protocoles
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 299


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 l'interconnexion d'un grand nombre de rseaux
physiques diffrents (le nom d'Internet provient d'ailleurs de cette caractristique : INTERconnected
NETworks ). Il permet de transmettre des informations de manire uniforme sur tous ces rseaux
physiques. Ainsi, les programmes qui utilisent IP ne voient pas les spcificits des diffrents rseaux
physiques. Pour eux, il ne semble y avoir qu'un seul rseau physique, dont le protocole de
communication de base est IP. Autrement dit, les applications qui utilisent le rseau se contentent
d'utiliser le protocole IP, et n'ont 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 l'a dj t dit ci-dessus, le protocole IP utilise des adresses pour identifier 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 dfinissant une partie du rseau. Ces adresses sont
utilises un peu comme les numros de tlphone : le premier octet dfinit le numro d'un super-
rseau dans lequel le correspondant se trouve (ces super-rseaux sont appels les rseaux de
classe A), le deuxime octet dfinit le numro du sous-rseau dans le super-rseau (ces sous-rseaux
sont appels rseaux de classe B), le troisime octet dfinit 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 d'affecter des adresses similaires pour les diffrentes machines d'un rseau,
et de simplifier ainsi la gestion de ce dernier. Elle dispose en revanche d'un inconvnient majeur :
beaucoup d'adresses sont gaspilles, car il n'y a pas suffisamment de rseaux de classe A d'une part, et
qu'on ne peut pas mlanger les machines de deux sous-rseaux dans un mme rseau de classe A
d'autre part. Si l'on reprend la comparaison avec les numros de tlphone, il y a normment
d'abonns 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 l'on venait manquer de place dans la liste
des numros commenant par 01, on ne pourrait pas pour autant utiliser les numros commenant par
02 pour des raisons gographiques. C'est 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 d'adresses disponibles (alors qu'il y en a plein de libres mais inutilisables parce
qu'elles se trouvent dans d'autres sous-rseaux !). Il va donc falloir effectuer une renumrotation d'ici
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 protocole IPv6 sont
codes sur 16 octets, ce qui rsoudra dfinitivement le problme du manque d'adresses. De plus, les
services modernes que sont l'authentification de l'metteur, ainsi que la qualit de service (c'est--dire
la garantie du dlai de transmission des donnes, garantie ncessaire pour transmettre de faon
correcte les flux multimdia tels que le son et la vido en temps rel) sont fournis par IPv6. Bien
entendu, Linux est dj capable d'utiliser IPv6 (combien de systmes peuvent aujourd'hui
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 300

l'affirmer ?) ! 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 difficilement concevable de crer un rseau
aussi grand qu'Internet avec les autres protocoles existant sur le march...
Les adresses IP sont donc parfaitement dfinies l'aide de leurs quatre nombres, que l'on note les uns
la suite des autres et en les sparant d'un point. Comme on l'a 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
fixs, 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 fixs, et seuls les deux derniers nombres
permettent de distinguer les diffrentes machines du rseau. Enfin, les rseaux de classe A n'ont de
fix que leur premire composante, les autres sont libres. Il est donc clair qu'il existe peu de rseaux de
classe A, mais que ce sont de trs gros rseaux (ils peuvent contenir jusqu' 16 millions 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 toute 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
dfinir la notion d'adresse de rseau, qui est l'adresse IP d'une machine du rseau dont les parties
variables ont pour valeur 0. Par exemple, si une machine d'un rseau de classe C a pour adresse
192.168.1.15, alors l'adresse de son sous-rseau est 192.168.1.0. Cela signifie que toutes les machines
de ce rseau auront une adresse de la forme 192.168.1.xxx .
Un rseau n'appartient 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 identifiables 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 n'existe 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 fix 1, et c'est 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 s'adresser des
groupes d'ordinateurs en multicast) et ne doivent pas tre utilises. Il s'agit des adresses 224.0.0.0
255.255.255.255. Cette dernire adresse a une signification spciale et permet de s'adresser tous les
ordinateurs d'un rseau.
Il est possible de dterminer l'adresse du rseau auquel une machine appartient en utilisant ce qu'on
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 l'adresse dudit sous-
rseau. Les composantes qui correspondent la valeur 0 dans le masque de sous-rseau n'en font pas
partie, et varient pour chaque machine du rseau. Pour reprendre l'exemple 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 l'adresse de
son rseau est 189.113.1.0. Si le masque de sous-rseau avait t 255.255.0.0 (typiquement le masque
d'un rseau de classe B), l'adresse 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 l'adresse de sous-rseau d'une
machine partir de son adresse IP. On notera que certaines combinaisons d'adresses IP et de masques
de sous-rseau sont invalides. Par exemple, les adresses affectes aux rseaux de classe C (comme
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 301

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.
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 d'adresses utilise pour le sous-
rseau dont elle fait partie. Pour cela, les classes de rseau, ainsi que les adresses qu'ils utilisent, sont
attribues par l'IANA, un organisme de gestion de l'Internet. Le rle de l'IANA (abrviation de
l'anglais Internet Assigned Numbers Authority ) est essentiellement d'assurer l'unicit des adresses
IP sur l'Internet. Cependant, certaines adresses sont librement utilisables pour les rseaux locaux qui
ne sont pas connects directement l'Internet. Les paquets utilisant ces adresses sont assurs de ne pas
tre transmis sur Internet. Ces adresses peuvent donc tre utilises par quiconque. Les plages d'adresse
rserves sont les suivantes :
Tableau 9-1. Plages d'adresses 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 (d'adresse 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 (d'adresses 192.168.0.0 192.168.255.0) sont disponibles.
Vous pouvez donc les utiliser librement.
Il est galement possible de configurer les machines pour qu'elles rcuprent leurs adresses IP auprs
d'un serveur l'aide du protocole DHCP (abrviation de l'anglais Dynamic Host Configuration
Protocol ). Cette technique est trs intressante quand on dispose d'un grand nombre de machines qui
ne sont pas toujours toutes connectes un rseau. Il est donc possible de redistribuer les adresses IP
d'un stock d'adresses en fonction des machines qui se connectent, et d'conomiser ainsi les prcieuses
adresses. En revanche, elle n'est pas approprie pour les serveurs qui sont couramment accds par des
postes clients, et qui doivent donc avoir une adresse IP fixe.
Certaines adresses IP ont une signification particulire et ne peuvent pas tre attribues une machine.
Par exemple l'adresse 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 d'autres adresses. De plus, les adresses dont les derniers
nombres (c'est--dire les nombres qui ne font pas partie de l'adresse du rseau) se terminent par 0 ou
255 sont rserves pour l'envoi 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 n'a pas encore d'adresse fixe.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 302

Il est important de savoir que, par dfaut, une machine ne communiquera qu'avec les machines de son
propre rseau. C'est dire que si une machine utilise l'adresse 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 l'adresse est de la forme
192.168.1.xxx. Elle ne pourra donc pas voir par exemple une machine dont l'adresse IP est
192.168.0.2. Cela ne signifie pas que l'on 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 n'empche de dfinir,
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
l'intermdiaire de la mme interface rseau.
Arriv ce stade des explications, je sens venir la question suivante : ?! Euhhh... Mais alors,
comment peut-on voir les machines sur Internet ? Je n'ai pas de rseau, et quand je me connecte
Internet, je peux y accder ! Et mme si j'avais 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
gnralement au moins son propre rseau virtuel, sur laquelle elle est la seule machine, et o
elle a l'adresse 127.0.0.1 ;
deuximement, effectivement, les machines qui se trouvent sur Internet n'appartiennent 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 d'accs Internet. C'est cet ordinateur qui se charge de
faire le transfert de ces informations vers les machines situes sur Internet.
C'est donc ici qu'intervient 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 d'autre, puisqu'elle 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 l'autre rseau.
Figure 9-4. Notion de passerelle

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 303

Lorsque vous vous connectez Internet, vous ne faites rien d'autre que de crer un rseau (dont le
support physique est la ligne tlphonique), et vous utilisez l'ordinateur 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 n'avez pas de rseau local) sont donc envoys sur le rseau constitu de votre
connexion Internet et arrivent donc chez votre fournisseur d'accs, 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 d'un particulier, le choix du rseau sur lequel les paquets doivent tre transmis est trs
facile faire puisqu'en gnral un paquet est soit destination de la machine locale, soit destination
d'une 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
qu'une machine ait le choix entre plusieurs passerelles diffrentes pour envoyer un paquet dont la
destination n'est pas sur son propre rseau. Par exemple, les passerelles d'Internet peuvent tre elles-
mmes connectes diffrents autres rseaux, qui sont eux-mmes connect s d'autres rseaux. Un
paquet peut donc tre achemin de plusieurs manires sa destination, selon la topologie du rseau.
L'ensemble des rseaux emprunts par un paquet dans son voyage constitue ce qu'on appelle sa route.
Chaque passerelle contribue donc dterminer la route des paquets en choisissant, pour chaque
paquet, l'interface rseau utiliser pour transmettre ce paquet. Ce choix est fait en suivant un certain
nombre de rgles bases sur l'adresse destination des paquets. Par exemple, si une passerelle reoit un
paquet dont l'adresse destination est 129.46.10.15, et qu'elle 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 l'un de ses rseaux, elle l'enverra 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 passerelle
193.49.20.1 du rseau 193.49.20.0 . Notez qu' chaque tape de la route, seules les passerelles de
l'tape suivante peuvent tre choisies comme relais.
Ainsi, si la passerelle est connecte trois rseaux d'adresses 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
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
qu'elle utilise.
Les rgles utilises par les passerelles sont stockes dans ce qu'on appelle des tables de routage. Les
tables de routage peuvent tre configures statiquement dans la configuration des passerelles, c'est--
dire initialises dans les fichiers de configuration et ne jamais tre modifies. Cette technique convient
parfaitement pour les petits rseaux. Elle se rvle cependant insuffisante sur les passerelles d'Internet.
En effet, si les rseaux emprunts par une route sont saturs, voire hors service, il peut tre intressant
d'utiliser une autre route. Ces passerelles utilisent donc des tables de routage dynamiques, qui sont
automatiquement mises jour en fonction de l'tat du rseau. Bien que Linux puisse parfaitement
effectuer ce type de routage, c'est une configuration rserve un usage spcifique de Linux. Ce
document ne traitera donc pas du routage dynamique.
Figure 9-5. Notion de route
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 304


Le problme des adresses IP est qu'elles ne sont pas trs parlantes pour les tres humains : que peut
donc signifier 192.147.23.2 ? Pas grand chose... C'est pour cela qu'on affecte des noms de machines
plus humains, comme par exemple krypton.andromede.galaxie. Ces noms suivent une convention de
nommage bien prcise. En gnral, le premier nom est le nom de la machine elle-mme, et la suite du
nom constitue ce qu'on appelle le domaine dans laquelle la machine se trouve. Ainsi, dans l'exemple
prcdent, krypton est le nom d'une 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, l'toile Altar ne se
trouve pas dans la galaxie d'Andromde, mais bon...). Souvent, les noms de domaines sont des noms
de socits. La dernire partie du nom de domaine permet galement de dterminer la nature du
domaine, ou sa localisation. Par exemple, l'extension .com indique clairement que le domaine est de
nature commerciale (de surcrot, il s'agit sans doute d'une socit amricaine, l'extension .com tant
rserve aux tats-Unis). De mme, l'extension .gov est utilise pour les organismes gouvernementaux
amricains, et l'extension .edu pour les universits ou les coles amricaines. L'extension .org est
utilise pour les organisations non commerciales. Enfin, les noms de domaines des autres pays que les
tats-Unis utilisent quasiment systmatiquement une extension indiquant leurs pays d'origine. 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 d'un nom littral, l'adresse IP de la machine correspondante. Cette
opration n'est pas simple, et en fait elle est effectue de deux manires :
soit la machine locale demande une autre machine qu'elle connat d'effectuer la recherche de
l'adresse du correspondant ;
soit elle dispose d'une liste de noms et d'adresses lui permettant de dterminer directement les
adresses de ses interlocuteurs.
La premire solution utilise ce qu'on appelle un serveur de noms ( DNS en anglais, abrviation de
Domain Name Service ), qui connat toutes les machines du rseau soit directement, soit
indirectement (donc via un autre DNS). L'opration qui consiste retrouver l'adresse IP d'une machine
partir de son nom s'appelle la rsolution de nom de domaine. Il est vident que si le serveur de noms
ne peut tre contact, il sera impossible d'utiliser les noms de machines. En revanche, il sera toujours
possible d'utiliser 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
rgulirement, ce qui est beaucoup plus complexe que la gestion centralise d'un DNS. On ne
l'utilisera donc que pour les petits rseaux.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 305

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 suffisamment petite pour pouvoir transiter sur tous les types de rseaux physiques, la gestion des
destinations des paquets l'aide des adresses IP, et le choix de la route permettant d'acheminer les
paquets destination. En revanche, il est incapable d'assurer les services plus volus comme la
gestion de l'ordre d'arrive des paquets et la gestion de la fiabilit du transfert des informations. C'est
donc des protocoles plus volus, eux-mmes encapsuls dans IP, d'effectuer ces tches. L'un des
protocoles les plus importants est le protocole TCP (abrviation de l'anglais Transfer Control
Protocol ). Ce protocole se charge d'tablir les connexions entre deux ordinateurs, et assure la
fiabilit des informations transmises et l'arrive des informations dans leur ordre d'envoi. Il existe
d'autres protocoles, moins connus que TCP mais tout aussi importants. On retiendra en particulier les
deux protocoles suivants :
UDP (abrviation de l'anglais User Datagram Protocol ), qui permet d'mettre des
datagrammes sur le rseau, qui sont de simples paquets de donnes (c'est 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).
Les services rseau des machines sont organiss en couches logicielles, qui s'appuient chacune sur la
couche infrieure. Ainsi, TCP utilise IP, qui lui-mme utilise le pilote qui gre l'interface rseau. Du
fait que ces couches s'appuient les unes sur les autres, on appelle souvent l'ensemble de ces couches
une pile ( stack en anglais). Vous avez peut-tre dj entendu parler de la pile TCP/IP. Lorsqu'un
service rseau d'une machine n'est plus accessible, il se peut que ce service rseau ait plant. Si tout un
ensemble de services rseau ne fonctionne plus, c'est 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 signifie
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 d'autres 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 d'utiliser plusieurs connexions
simultanment, TCP fournit la possibilit de les identifier par un numro unique sur la machine,
compris entre 0 et 65535. Chaque numro identifie ce qu'on 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 dfinis, 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 l'adresse IP de la machine sur laquelle il fonctionne et le numro de port qu'il coute pour
les connexions extrieures. Les clients qui se connectent savent donc parfaitement quel service ils
accdent lorsqu'ils choisissent le numro de port destination. Leur propre numro de port est en
gnral choisi par le systme, afin d'viter tout conflit avec un autre processus de la mme machine.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 306

Figure 9-6. Connexions TCP

Une fois tablie, une connexion TCP permet d'effectuer des communications bidirectionnelles. Cela
signifie que le client et le serveur peuvent tous deux utiliser cette connexion pour envoyer des donnes
l'autre. 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 d'un port
source (c'est--dire le port TCP de l'metteur), et d'un 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 l'a dj t dit, le protocole TCP s'assure que les informations transmises arrivent bon port
(c'est le cas de le dire !). Pour cela, il utilise un mcanisme d'accuss rception, qui indiquent
l'metteur si le destinataire a bien reu chaque paquet envoy. Si l'accus rception n'est pas reu dans
un temps fix, le paquet est r-mis. Un paquet reu en double cause d'un retard dans la
communication de l'accus rception est tout simplement ignor. La fiabilit des informations est
galement assure. Cette fiabilit est ralise par un mcanisme de sommes de contrle. Si le rcepteur
constate que la somme de contrle des donnes reues n'est pas celle que l'metteur a calcul, il rejette
le paquet parce qu'il sait que les informations ont t corrompues pendant la transmission. Enfin, TCP
s'assure que les informations mises en plusieurs passes sont bien reues dans leur ordre d'mission.
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 d'arrive des paquets est
hautement dpendante de la route IP qu'ils 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 logique
que ceux-ci s'appuient 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 flux de donnes changs.
La plupart des services rseau dfinissent donc un protocole qui leur est propre. Il est d'ailleurs assez
courant de confondre le service et le protocole, tellement ils sont intrinsquement lis. Ainsi, le service
FTP utilise le protocole FTP ( File Transfer Protocol , protocole de transfert de fichiers), les
serveurs Internet utilisent essentiellement le protocole HTTP ( Hyper Text Transfer Protocol ,
protocole de transfert d'hypertexte), le service de courrier lectronique utilise les protocoles POP
( Post Office Protocol ) pour la rception des courriers et SMTP ( Simple Mail Transfer
Protocol ) pour leur envoi. Cette liste de protocoles n'est pas exhaustive, et de nouveaux services
apparaissent rgulirement. 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 d'utilisateurs et les mots
de passe. Toute personne ayant physiquement accs au rseau ou une machine par laquelle les
paquets passent peut donc, s'il le dsire, rcuprer tous les mots de passe avec une simplicit extrme
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 307

(il existe mme des programmes spcialiss pour cela). Il est donc inconcevable d'utiliser tous ces
protocoles sans prendre de prcautions particulires. Heureusement, il est possible d'encapsuler les
protocoles dans un rseau virtuel qui, lui, transmet les donnes sous forme chiffre. L'outil le plus
utilis de nos jours est ssh (abrviation de l'anglais 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 configurer et utiliser OpenSSH pour amliorer
la scurit du rseau dans la Section 9.5.2.2.
9.2. Configuration du rseau sous Linux
La configuration du rseau ncessite donc la configuration du protocole IP et des services TCP, UDP
et ICMP (entre autres). Cette opration se fait en dfinissant l'adresse IP le masque de sous-rseau et
les routes utiliser. Vient ensuite la configuration du nom de la machine locale, de son domaine, des
noms de machines qu'elle peut rsoudre elle-mme et des serveurs de DNS qu'elle doit utiliser pour les
autres noms.
Il est quasiment certain que votre distribution dispose d'un outil permettant d'effectuer la configuration
du rseau simplement. Connaissant prsent la signification des termes utiliss dans les rseaux
TCP/IP, vous devriez pouvoir parvenir une configuration valide relativement simplement. Il est
fortement recommand de consulter la documentation de votre distribution. Les commandes de
configuration du rseau sont souvent appeles dans les scripts de dmarrage de la machine, ou dans les
scripts de changement de niveau d'excution. 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 fichiers de configuration du rseau utiliss
sous Linux.
9.2.1. Configuration statique des interfaces rseau
La principale commande permettant de configurer le rseau est la commande ifconfig. Comme son
nom l'indique ( InterFace CONFiguration ), elle permet de configurer les interfaces rseau de la
machine. Il faut savoir qu'il existe plusieurs types d'interfaces rseau. Les plus courants sont les trois
types d'interfaces suivants :
l'interface loopback, qui reprsente le rseau virtuel de la machine, et qui permet aux
applications rseau d'une mme machine de communiquer entre elles mme si l'on 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 d'utiliser les connexions
srielles, parallles ou tlphoniques comme des rseaux.
La configuration d'une interface comprend l'initialisation des pilotes ncessaires son fonctionnement
et l'affectation d'une 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 l'interface rseau que vous voulez configurer, adresse est l'adresse IP que
cette interface grera, et masque est le masque de sous-rseau que vous utilisez. Les interfaces que
vous aurez configurer seront certainement des interfaces Ethernet, auquel cas vous devrez utiliser les
noms eth0, eth1, etc. dans la commande ifconfig. Si vous dsirez configurer l'interface loopback, vous
devrez utiliser le nom d'interface lo.
Le paramtre up donn ifconfig lui indique que l'interface doit tre active. Cela signifie que ds
que la commande ifconfig s'achvera, votre interface rseau sera active et fonctionnelle. On ne peut
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 308

faire plus simple... Bien entendu, il existe le paramtre inverse : down. Ce paramtre s'utilise tout
simplement dans la commande ifconfig avec la syntaxe suivante :
ifconfig interface down

o interface est toujours le nom de l'interface.
Un exemple de configuration 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 supplmentaire
devant les nombres qui la constituent. En effet, il existe une convention en informatique qui dit que les
nombres prfixs d'un 0 sont cods en octal, c'est--dire en base 8. Il va de soi qu'une adresse IP code
en octal n'utilise pas les mmes nombres que lorsqu'elle est exprime en dcimal, aussi prouveriez-
vous quelques difficults 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
l'adresse IP qui ne fait pas partie de l'adresse de sous-rseau. Si vous dsirez utiliser une autre adresse
(en gnral, l'alternative est de prendre l'adresse du sous-rseau), vous devrez utiliser l'option
broadcas adresse dans la commande ifconfig. Cependant, le comportement par dfaut
convient la plupart des rseaux. La commande de configuration donne en exemple ci-dessus sera
alors :
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.0 up
Enfin, il est possible d'affecter plusieurs adresses IP certaines interfaces rseau. C'est en particulier le
cas pour toutes les interfaces rseau classiques, mais bien entendu cela n'est pas ralisable avec les
interfaces de type point point comme les interfaces des connexions ppp. Lorsqu'une interface dispose
de plusieurs adresses, la premire est considre comme l'adresse principale de l'interface, et les
suivantes comme des alias. Ces alias utilisent comme nom le nom de l'interface rseau principale et le
numro de l'alias, spars par deux points (caractre ':'). Par exemple, si l'interface eth0 dispose d'un
alias, celui-ci sera nomm eth0:0. Ainsi, pour fixer l'adresse d'un alias d'une interface rseau, on
utilisera la syntaxe suivante :
ifconfig interface:numro add adresse netmask masque

o interface est toujours le nom de l'interface, numro est le numro de l'alias, adresse est l'adresse IP
attribuer cet alias, et masque est le masque de sous-rseau de cette adresse.
La commande ifconfig est en gnral appele dans les scripts d'initialisation du systme, qui ont t
gnrs par l'utilitaire de configuration rseau de votre distribution. Si vous effectuez un grep sur
ifconfig dans le rpertoire /etc/rc.d/ (ou /sbin/init.d/, selon votre distribution), vous trouverez la
commande de dmarrage du rseau. Il se peut qu'une variable d'environnement soit utilise la place
de l'adresse IP que vous avez choisie. Quoi qu'il en soit, vous devez sans aucun doute avoir les lignes
suivantes, qui permettent l'initialisation de l'interface loopback :
ifconfig lo 127.0.0.1 netmask 255.0.0.0 up
9.2.2. Dfinition des rgles de routage
La deuxime tape dans la configuration du rseau est la dfinition des rgles de routage. Il est
possible de dfinir plusieurs rgles de routage actives simultanment. L'ensemble de ces rgles
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 309

constitue ce qu'on appelle la table de routage. La rgle utilise est slectionne par le noyau en
fonction de l'adresse destination du paquet router. Chaque rgle indique donc un critre de slection
sur les adresses, et l'interface vers laquelle doivent tre transfrs les paquets dont l'adresse destination
vrifie cette rgle.
La commande utilise pour dfinir une route est, chose surprenante, la commande systme route. Sa
syntaxe est donne ci-dessous :
route opration [-net | -host] adresse netmask masque interface

o opration est l'opration effectuer sur la table de routage. L'opration la plus courante est
simplement l'ajout d'une rgle de routage, auquel cas add doit tre utilis. L'option suivante permet
d'indiquer si le critre de slection des paquets se fait sur l'adresse du rseau destination ou plus
restrictivement sur l'adresse de la machine destination. En gnral, il est courant d'utiliser la slection
de toutes les adresses d'un mme rseau et de les router vers une mme interface. Dans tous les cas,
adresse est l'adresse IP de la destination, que celle-ci soit un rseau ou une machine. Si la destination
est un rseau, il faut indiquer le masque de sous-rseau masque l'aide de l'option nemas'. Enfin,
interface est l'interface rseau vers laquelle doivent tre envoys les paquets qui vrifient les critres
de slection de cette rgle.
Par exemple, la rgle de routage utiliser pour l'interface loopback est la suivante :
route add -net 127.0.0.0 netmask 255.0.0.0 lo
Cette rgle signifie que tous les paquets dont l'adresse de destination appartient au sous-rseau de
classe A 127.0.0.0 doivent tre transfrs vers l'interface loopback. Cela implique en particulier que
les paquets destination de la machine d'adresse IP 127.0.0.1 (c'est--dire la machine locale) seront
envoys vers l'interface 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 d'envoyer tous les paquets destination du rseau de classe C 192.168.0.0 vers la premire
interface Ethernet. C'est typiquement ce genre de rgle qu'il faut utiliser pour faire fonctionner un
rseau local.
Il n'est normalement pas ncessaire d'ajouter les rgles de routage pour les rseaux auxquel la machine
est connecte. En effet, la configuration d'une carte rseau l'aide de la commande ifconfig ajoute
automatiquement la table de routage une rgle pour envoyer les paquets destination de ce rseau
par l'interface rseau qui y est connecte. Cependant, la commande route devient rellement
ncessaire lorsqu'il faut dfinir les passerelles utiliser pour l'envoi des paquets destins une
machine laquelle la machine locale ne peut accder directement. Les rgles de routage faisant
intervenir une passerelle sont semblables aux rgles de routage vues ci-dessus, ceci prs que l'adresse
IP de la passerelle utiliser doit tre fournie. Pour cela, on utilise l'option gw (abrviation de l'anglais
Gateway ). La syntaxe utilise est donc la suivante :
route add [-net | -host] adresse netmask masque gw passerelle interface

o passerelle est l'adresse IP de la passerelle utiliser pour router les paquets qui vrifient les critres
de cette rgle. Les autres paramtres sont les mmes que pour les rgles de routage classique.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 310

Par exemple, supposons qu'une machine soit connecte un rseau d'adresse 192.168.0.0, et que sur
ce rseau se trouve une passerelle d'adresse 192.168.0.1 permettant d'atteindre un autre rseau, dont
l'adresse 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
La premire rgle permet, comme on l'a dj vu, de communiquer avec toutes les machines du rseau
local. La deuxime rgle permet d'envoyer la passerelle 192.168.0.1 tous les paquets destination du
rseau 192.168.1.0.
Inversement, si la passerelle utilise l'adresse 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 spcifier 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 qu'elles spcifient l'adresse du rseau destination. Il est
videmment hors de question d'utiliser une rgle de routage diffrente pour toutes les adresses de
rseaux possibles. Il est donc possible de dfinir ce qu'on appelle une passerelle par dfaut, qui n'est
rien d'autre que la passerelle vers laquelle doivent tre envoys tous les paquets qui n'ont pas vrifi
les critres des autres rgles de routage. La syntaxe utiliser pour dfinir la passerelle par dfaut est
plus simple, puisqu'il n'est plus ncessaire de prciser les critres de slection :
route add default gw passerelle interface

o la signification des paramtres passerelle et interface est inchange.
Ainsi, pour reprendre l'exemple prcdent, supposons que la machine 192.168.0.47 dispose d'une
connexion Internet et soit configure pour partager cette connexion avec les machines du rseau
local. Pour que toutes les machines du rseau local puisse profiter de cette connexion, il suffit de
demander ce que tous les paquets qui ne vrifient 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. Dfinition du nom de la machine
La configuration du nom d'un ordinateur n'est pas proprement parler une opration indispensable,
mais elle permet de le nommer de manire plus conviviale qu'en utilisant son adresse IP. La
commande 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 modifier ce nom, simplement avec la syntaxe suivante :
hostname nom

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 311

o nom est le nom utiliser. Il est d'usage de n'utiliser 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 configuration 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 fichier /etc/HOSTNAME pour stocker
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 fixer 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 l'a dj
t indiqu au dbut de ce chapitre, il existe deux solutions pour trouver l'adresse IP d'une machine
partir de son nom : la consultation d'une liste de noms stocke en local, soit l'interrogation d'un serveur
de noms de domaine.
Le fichier /etc/host.conf permet de dfinir le comportement du systme lors de la rsolution d'un nom.
Sa structure est trs simple, puisqu'il y a une option de recherche par ligne. Dans la plupart des cas, les
lignes suivantes sont suffisantes :
order hosts,bind
multi on
Elles permettent d'indiquer que la recherche des noms pour leur rsolution doit se faire d'abord
localement, puis par appel aux DNS si la recherche prcdente a chou. C'est en gnral le
comportement dsir. La deuxime ligne permet de faire en sorte que toutes les adresses correspondant
une machine soient renvoyes. Si l'on avait utilis l'option mu1ioff, seule la premire adresse IP
trouve aurait t renvoye.
La liste de noms locale est stocke dans le fichier /etc/hosts (cela explique le nom hosts utilis pour
l'option order dans le fichier /etc/host.conf). Votre ordinateur connatra directement l'adresse IP de
toutes les machines rfrences dans ce fichier. 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 fichier doit tre relativement simple : seule la ligne affectant l'adresse
127.0.0.1 la machine locale (appele localhost ) doit s'y trouver.
127.0.0.1 localhost
De la mme manire, le fichier /etc/networks contient les adresses des rseaux. Ce fichier est utilis
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 fichier se rduit sa plus simple
expression pour ceux qui n'ont pas de rseau local, puisqu'il ne contiendra tout au plus qu'une entre
pour le rseau loopback , sur lequel se trouve l'adresse de retour 127.0.0.1. Cette entre aura donc
la forme suivante :
loopback 127.0.0.0
La configuration des serveurs de noms est en revanche une opration ncessaire si l'on dsire accder
des machines dont on ne connat que le nom. Le fichier de configuration utilis est cette fois le fichier
/etc/resolv.conf. Sa structure est encore une fois trs simple, avec une option par ligne, chaque option
tant introduite par un mot cl.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 312

Le mot cl domain permet d'indiquer 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 spcifier une liste de noms de domaines ajouter par dfaut
aux noms de machines non compltement qualifis. Les lments de cette liste doivent tre spars par
des espaces. La recherche d'une machine dont le nom ne comprend pas la partie de nom de domaine
s'effectue 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, s'il a t dfini. Il est donc recommand d'indiquer 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 l'adresse de la machine krypton , la requte au DNS se fera avec le nom
compltement qualifi krypton.andromede.galaxie . Vous tes bien entendu libre d'ajouter d'autres
noms de domaines pour le cas o la rsolution de nom chouerait sur ce domaine.
Enfin, l'option nameserver est essentielle, puisqu'elle 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, d'adresse 192.168.0.10, et un secondaire, d'adresse
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 fichier /etc/hosts.
9.2.5. Utilisation des protocoles DHCP et BOOTP
Gnralement, la gestion des adresses IP des machines devient rapidement une tche difficile sur les
grands rseaux, pour trois raisons. Premirement, il faut toujours s'assurer que chaque machine dispose
bien d'une adresse qui lui est propre, ce qui peut tre difficile si l'on ne s'organise pas en consquence.
Deuximement, il faut que les fichiers /etc/hosts de toutes les machines soient jour, ce qui ncessite
un travail proportionnel au nombre de machines administres. Enfin, le nombre d'adresses IP
disponibles peut se rduire, ce qui peut devenir gnant terme.
Afin de rsoudre ces problmes de configuration rseau, le protocole DHCP (abrviation de l'anglais
Dynamic Host Configuration Protocol ) a t dfini. Il s'agit d'un protocole qui permet aux
machines connectes sur un rseau d'interroger un serveur d'adresses du rseau capable de grer
une liste d'adresses et de les affecter dynamiquement aux machines du rseau. En fait, ce protocole
permet de fournir plus d'informations 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
configuration rseau des machines ds leur dmarrage : le protocole BOOTP (abrviation de l'anglais
BOOTstrap Protocol ). Ce protocole est videmment plus lger que DHCP, mais permet aux
machines d'obtenir dynamiquement leur configuration rseau ds leur dmarrage, avant mme que ne
soient monts les systmes de fichiers. Ce protocole est donc particulirement utile pour faire dmarrer
des machines sans disque, pour lesquelles le systme de fichiers racine est mont en NFS.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 313

La manire la plus simple de configurer les protocoles DHCP et BOOTP sur un poste client est
d'utiliser les fonctionnalits d'auto-configuration du noyau. Cependant, il est galement possible
d'effectuer cette configuration au niveau utilisateur l'aide de programmes complmentaires. Les deux
sections suivantes dcrivent ces deux techniques.
9.2.5.1. Autoconfiguration des clients DHCP et BOOTP
La configuration des protocoles DHCP et BOOTP ne comporte aucune difficult particulire lorsque
l'on utilise les fonctionnalits d'autoconfiguration du noyau. Ces fonctionnalits tant prises en charge
au niveau du noyau, il va vous falloir recompiler un nouveau noyau pour en bnficier. 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.
L'option activer pour permettre l'utilisation du protocole BOOTP est l'option IP: kernel level
autoconfiguration du menu Networking options . Cette option vous permettra de slectionner le
protocole d'auto-configuration rseau que le noyau devra utiliser lors de son amorage. Vous devrez
alors choisir l'option IP: DHCP support (NEW) ou l'option IP: BOOTP support (NEW) pour
activer respectivement les protocoles DHCP et BOOTP.
Note : Vous remarquerez qu'il existe galement un autre protocole d'auto-configuration du rseau au
dmarrage : le protocole RARP. Ce protocole fournit les mmes services que le protocole BOOTP,
mais est plus ancien. Il n'est donc plus conseill de l'utiliser, 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, l'installer 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 configuration 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 fichiers racine mont en NFS lors du dmarrage.
9.2.5.2. Configuration d'un client DHCP au niveau utilisateur
Il est galement possible de configurer les clients DHCP au niveau utilisateur, l'aide de programmes
complmentaires. Comme sur la plupart des machines Unix, le programme utiliser est le programme
dhclient. Ce programme est gnralement lanc dans les scripts de dmarrage des machines, et envoie
des paquets de demande de configuration sur le rseau l'adresse de diffusion gnrale
255.255.255.255. Ces paquets sont donc susceptibles d'tre captes par toutes les machines du rseau,
mais seuls les serveurs DHCP y rpondent. Les rponses obtenues sont alors analyss par dhclient,
qui configure en consquence l'interface 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 l'adresse IP de la machine et son masque de sous-rseau. Il est toutefois possible de donner
plus d'informations, 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 configuration automatique des postes itinrants ou susceptibles de redmarrer souvent. Par
consquent, ces adresses sont fournies dans le cadre d'un bail, dont la dure maximum est fixe par le
serveur. Ds que le bail obtenu par un client expire, celui-ci doit chercher le renouveler. C'est encore
le programme dhclient qui s'en charge. C'est la raison pour laquelle celui-ci passe en arrire-plan aprs
avoir configur l'interface pour la premire fois : il attend la fin des baux de la machine sur laquelle il
tourne et cherche les renouveler. Si un client ne renouvelle pas ce bail (parce qu'il est arrt par
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 314

exemple), le serveur DHCP peut rutiliser son adresse IP et l'affecter une autre machine. Bien que
les serveurs DHCP s'efforcent gnralement de conserver les adresses IP des clients chaque bail, un
client configur par DHCP ne peut donc pas considrer que son adresse IP restera toujours la mme.
C'est la contrepartie de la flexibilit.
Si aucun serveur DHCP ne peut tre contact lors du dmarrage, dhclient abandonne temporairement
et ressaie au bout d'un temps alatoire. Au bout d'un certain nombre d'essais non fructueux, il peut
dcider de configurer les interfaces rseau avec les adresses IP des anciens baux obtenus par la
machine. Pour cela, il mmorise dans le fichier de configuration /var/db/dhclient.lease les adresses IP
de ces anciens baux. Ce fichier est priodiquement rcrit avec la liste des adresses des baux valides
afin d'viter qu'il ne se remplisse ad vitam eternam.
Bien entendu, les postes clients ne peuvent pas choisir leurs adresses IP sans vrification d'unicit.
Dans le cas de l'absence de serveur DHCP (et donc d'autorit centrale), les clients qui dmarrent
interrogent les machines dj prsentes sur le rseau pour dterminer si l'adresse qu'ils 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 d'un rseau, les postes clients peuvent toujours
travailler ensemble sans conflit d'adresses IP.
Comme vous pouvez le constater, le comportement de dhclient est relativement complexe et dpend
de nombre de paramtres. Tous ces paramtres peuvent tre dfinis dans le fichier de configuration
/etc/dhclient.conf. Ce fichier contient en particulier les diffrentes dures intervenant dans le choix des
adresses IP, comme par exemple la dure minimale d'un bail, les dures entre chaque tentatives de
configuration, 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 fichier de configuration
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 fichier dhclient.conf
soit vide. Si toutefois vous dsirez en savoir plus, vous pouvez consulter la page de manuel
dhclient.conf.
La configuration DHCP pour les postes clients se rduit donc l'essentiel : le lancement de dhclient.
Celui-ci s'utilise avec la syntaxe suivante :
dhclient interface0 [interface1 [...]]
o interface0, interface1, etc., sont les interfaces rseau qui doivent tre configures par DHCP. On ne
peut donc pas faire plus simple...
Note : Sous Linux, le programme dhclient utilise les fonctionnalit d'accs direct aux cartes rseau et
de filtrage des paquets. Ces deux fonctionnalits peuvent tre actives dans la configuration du noyau
l'aide des options Packet socket , Packet socket: mmapped IO et Socket Filtering du menu
Networking options . L'option IP: multicasting de la liste des options du protocole IP devra
galement tre active. Le dtail de la configuration et de la compilation du noyau a t vu dans la
Section 7.3.
Le programme dhclient est assez factieux depuis quelques versions. S'il refuse obstinment de
fonctionner, vous devrez sans doute vous rabattre vers le programme dhcpcd, beaucoup plus simple,
mais galement beaucoup plus fiable. La plupart des distributions utilisent de dernier en lieu et place
de dhclient. Consultez la documentation de votre distribution pour dterminer la solution qu'elle
utilise.
9.2.6. Dfinition des protocoles de haut niveau
Comme nous l'avons vu plus haut, le protocole IP fournit les mcanismes de base pour la transmission
des paquets. Plusieurs protocoles de plus haut niveau ont t dfinis pour fournir des services valeur
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 315

ajoute, qui satisfont donc plus aux besoins des applications. Tous ces protocoles sont encapsuls dans
le protocole IP, ce qui signifie 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
protocole de haut niveau dont ils transportent les informations. chaque protocole est donc attribu
un identificateur numrique qui lui est propre, et qui permet aux services rseau d'interprter les
donnes des paquets.
Tout comme les adresses IP, ces numros identifiant 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 identifier les protocoles. Pour leur permettre de faire l'association entre ces noms
et les identificateurs numriques, le fichier /etc/protocols est utilis.
Le format de ce fichier est trs simple. Il contient une ligne pour chaque protocole, constitue du nom
du protocole, de la valeur de son identificateur, et des autres noms que ce protocole peut avoir (c'est--
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 d'un identificateur de protocole (qui vaut 0 en
l'occurrence). Cet identificateur est un identificateur de pseudo protocole , parce qu'IP est en fait le
protocole de base. ICMP est identifi par le numro 1, TCP par le numro 6 et UDP par le numro 17.
Il existe beaucoup d'autres protocoles, qui ne seront pas dcrits ici. Bien entendu, le fichier
/etc/protocols fourni avec votre distribution doit dj contenir la dfinition de la plupart des
protocoles.
De la mme manire, la plupart des ports TCP et UDP sont affects des services bien dfinis, 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 fichier de configuration /etc/services.
Les informations concernant les services sont donnes raison d'une 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 l'extrait donn ci-dessous :
Service Port/Protocole
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 316

Service Port/Protocole
pop3 110/tcp
irc 194/tcp
irc 194/udp
Comme vous pouvez le constater, ces services n'ont pas d'alias. Ces informations sont donnes
uniquement titre d'exemple. Il va de soi que le fichier /etc/services fourni avec votre distribution
contient la dfinition d'un grand nombre de services, et vous n'aurez 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 s'excutent 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
lorsqu'un 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 finir par consommer une part non ngligeable des ressources systme. C'est pour cette
raison que les super-dmons inetd (de l'anglais InterNET Daemon ) et xinetd (de l'anglais
eXtended INETD ) ont t crs. Ces dmons sont l'coute des demandes de connexion des clients
pour les autres services rseau, et ne lancent ceux-ci que lorsqu'un 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 d'entre-eux de
toutes manires). Les deux sections suivantes dcrivent la configuration 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 n'est donc
pas inutile, car toutes les distributions n'utilisent pas encore xinetd.
Le super-dmon inetd utilise le fichier de configuration /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 qu'il doit
lancer lorsqu'une telle connexion arrive. Ce fichier 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 qu'il est dfini dans la premire colonne du fichier /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 communications bases sur les datagrammes, donc typiquement les
communications utilisant le protocole UDP) ;
le protocole rseau utilis ( tcp ou udp ) par ce service ;
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 317

l'un des mots cls wait ou nowait, qui permettent d'indiquer si inetd doit attendre la fin de
l'excution du dmon grant le service ou s'il peut attendre de nouvelles requtes de la part des
clients ;
le nom de l'utilisateur au nom duquel le dmon grant ce service doit fonctionner (en gnral,
c'est l'utilisateur root) ;
le chemin sur le fichier excutable de ce dmon ;
les ventuels paramtres en ligne de commande pour ce dmon, en commenant par
l'argument 0, qui doit toujours tre le nom du fichier 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 n'est pas
ncessaire de fournir un dmon pour ces services. Dans ce cas, il faut utiliser le mot cl internal la
place du nom du fichier 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 fichier de configuration /etc/inetd.conf dfinisse les services
comme indiqu dans cette section. En effet, un programme intermdiaire en charge d'assurer 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 fichier de configuration que celui du super-dmon inetd. Pour
xinetd, la dfinition des services mis disposition des clients se fait dans le fichier de configuration
/etc/xinetd.conf. Toutefois, contrairement au fichier inetd.conf, le fichier xinetd.conf peut inclure
d'autres fichiers de configuration et rfrencer des rpertoires contenant les fichiers de configuration
spcifiques aux services. Ainsi, la configuration des services est beaucoup plus modulaire et se fait
plus facilement.
En pratique, il est d'usage de dfinir les options par dfaut pour tous les services dans le fichier de
configuration /etc/xinetd.conf, et de dcrire les diffrents services dans des fichiers complmentaires
stocks dans le rpertoire /etc/xinetd.d/. Ce rpertoire est alors inclus directement dans le fichier
xinetd.conf l'aide de la directive includedir ddie cet usage.
Les fichiers de configuration 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
{
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
identifiant une des options de ce service, et oprateur est l'un des oprateurs '=' (pour la dfinition de
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 318

la valeur d'une option ou l'crasement de sa valeur prcdente), '+=' (pour complter la liste de valeurs
d'une option) ou '-=' (pour supprimer une valeur de la liste de valeurs d'une 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 Signification
id
Identificateur du service, pour le cas o plusieurs sections devraient tre dfinies
pour un mme service. Cette possibilit est utilise lorsque l'on dsire fournir
des options diffrentes pour un mme service. L'entre choisie (et donc le jeu
d'options choisi) dpend dans ce cas de critres dfinis par exemple sur
l'interface rseau ou sur les adresses des clients.
type
Permet d'indiquer la nature du service dcrit par cette section. Gnralement,
cette option n'a pas tre donne, sauf lorsque l'on veut forcer la mthode
d'implmentation d'un service. Par exemple, il est possible de donner la valeur
INTERNAL cette option pour utiliser l'un des services implments par xinetd
en interne.
server
Permet de donner le chemin sur l'excutable 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 l'excutable en premier argument dans cette
option. Cette rgle peut toutefois tre rendue fausse en ajoutant la valeur
NAMEINARGS dans l'option 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
n'est pas indique, le numro de port utilis sera celui indiqu dans le fichier de
configuration /etc/services pour le service en cours de configuration.
wait
L'indicateur de capacit du dmon grer plusieurs connexions simultanment.
Les valeurs que l'on 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 d'instance peut toutefois tre contrl
l'aide des options insances et per_source dcrites ci-dessous.
flags
Les paramtres permettant de contrler diffrents aspects du service. Les options
les plus courantes sont IDONLY , qui permet de n'autoriser que les
connexions provenant de machines disposant d'un serveur d'identification des
clients, NORETRY , qui permet d'viter de ressayer de lancer le dmon du
service si le lancement prcdent a chou, et NAMEINARGS, qui permet
d'indiquer que le nom de l'excutable doit tre spcifi en premier paramtre
dans l'option 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
L'interface laquelle le service est attach. Cette option permet de dfinir
plusieurs configurations pour un mme service et d'affecter ces diffrentes
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 319

Option Signification
configurations des interfaces rseau distinctes. Pour l'heure, seul l'adresse IP
de l'interface rseau peut tre spcifie grce cette option, ce qui impose
d'avoir des adresses IP fixes.
only_from
La liste des adresses des machines autorises se connecter. Il est possible de
spcifier les adresses IP explicitement ou l'aide d'une adresse et d'un masque
de sous-rseau. Les noms de domaines peuvent galement tre utiliss. Dans ce
cas, le nom n'est pas transform en adresse IP. Au contraire, c'est l'adresse du
client qui est retransforme en nom de machine pour vrifier s'il a le droit de se
connecter. Notez que l'absence de ce champ indique que, par dfaut, l'accs est
accord toutes les machines (sauf celles explicitement interdites de connexion
par l'option no_access dcrite ci-dessous). En revanche, la prsence de ce
champ mais sans valeur permet d'interdire l'accs toutes les machines.
no_access
La liste des adresses des machines qui n'ont pas le droit de se connecter. Les
adresses peuvent tre spcifies de la mme manire que pour l'option
on1y_from. Si une adresse vrifie les critres des deux options on1y_from
et no_access, c'est l'option 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 d'une liste d'intervalles heure:minute-heure:minute .
instances
Permet d'indiquer le nombre maximum d'instances d'un mme dmon que
xinetd peut lancer. Cette option permet donc de spcifier un nombre de
connexions maximum pour chaque service.
per_source
Permet d'indiquer le nombre maximum d'instances d'un mme dmon que
xinetd peut lancer pour un mme client (identifi par son adresse IP). Cette
option permet donc de limiter le nombre de connexions d'un client, de manire
indpendante du nombre de connexions total donn par l'option insances.
cps
Permet de limiter dans le temps le nombre de connexions entrantes pour un
service, afin d'viter 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 n'est 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 l'option disab1ed, ceci prs qu'elle fonctionne en
logique inverse. L'absence de cette option implique l'activation de tous les
services, sauf ceux qui sont lists dans l'option disab1ed. En revanche, ds
que cette option est dfinie, seuls les services lists sont dmarrs. Tout comme
l'option disab1ed, 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, afin d'indiquer de manire plus fine qu'avec les
options enab1ed et disab1ed s'ils 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
enab1ed et disab1ed ont priorit l'option disab1e. Ainsi, un service
dsactiv par l'une de ces options ne peut pas tre ractiv en attribuant la valeur
no l'option disab1e.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 320

Option Signification
log_type
Mthode d'enregistrement des vnements du dmon xinetd. Il est possible
d'utiliser le dmon syslog pour enregistrer les vnements de connexion et de
dconnexion des utilisateurs, ou directement un fichier texte. Dans le premier
cas, il faut utiliser la valeur SYSLOG suivie de la classe d'enregistrement
(gnralement daemon) et du niveau de trace (gnralement info). Dans le
deuxime cas, il faut spcifier la valeur FILE et indiquer les limites basse et
haute de la taille du fichier au del desquelles un avertissement est gnr, puis
les traces sont arrtes.
log_on_success
Informations enregistres lors de l'acceptation d'une connexion. xinetd peut
enregistrer diffrentes informations lorsqu'une nouvelle connexion est accepte.
Ces informations sont indiques grce la liste des mots-cls spcifis par cette
option. Les mots-cls utilisables sont PID , pour enregistrer l'identifiant de
processus du dmon qui traitera la requte, HOST , pour enregistrer le nom
de la machine cliente, USERID , pour enregistrer le nom de l'utilisateur (si
celui-ci peut tre obtenu par le service d'identification de sa machine), EXIT ,
pour enregistrer la terminaison du dmon qui traite la requte, et
DURATION , pour enregistrer la dure de la connexion.
log_on_failure
Informations enregistres lors d'un refus de connexion. Les informations
enregistres lors d'un refus de connexion peuvent tre spcifies l'aide de cette
option, de la mme manire que les informations de connexion peuvent tre
enregistres l'aide de l'option 1og_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 l'utilisateur
tel qu'indiqu par le service d'identification 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 dfinir les options par dfaut applicables tous les services. Les
options qui y sont dfinies peuvent toutefois tre redfinies ou prcises l'aide des oprateurs =, +=
et -= dans les sections des diffrents services. Les options utilisables dans la section defaults et que
l'on a vu ci-dessus sont les options bind, 1og_ype, 1og_on_success, 1og_on_fai1ure,
insances, per_source, on1y_from, no_access, disab1ed et enab1ed.
Gnralement, le fichier /etc/xinetd.conf ne contient que la section default et une ligne d'inclusion du
rpertoire /etc/xinetd.d/, dans lequel se trouvent les fichiers de configuration des diffrents services.
L'exemple suivant prsente donc un fichier 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 d'administration de xinetd :
disabled += servers services xadmin

# On limite le nombre d'instances total des services :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 321

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
L'exemple suivant prsente la dfinition du service telnet situe dans le fichier de configuration
/etc/xinetd.d/telnet :
service telnet
{
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 n'inclue pas les fichiers contenant un point (caractre '.') ni ceux finissant par un tilde
(caractre '~'). En particulier, on vitera de mettre une extension aux fichiers de configuration des
services, puisque dans ce cas ils contiendraient un point et ne seraient pas lus.
9.3. Configuration 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 d'accs Internet via la
ligne tlphonique. Bien entendu, ce serveur est considr comme la passerelle par dfaut pour tous les
paquets destination d'Internet. Ce type de connexion a de particulier que les adresses IP des deux
machines sont, en gnral, dtermines dynamiquement, lors de l'tablissement de la connexion. La
configuration rseau des connexions Internet se fait donc lgrement diffremment de la
configuration d'un rseau local normal. Heureusement, tous les dtails de la configuration rseau sont
pris en charge automatiquement.
9.3.1. Le protocole PPP
Les connexions Internet utilisent le protocole PPP (abrviation de l'anglais Point to Point
Protocol ), qui permet deux ordinateurs d'changer des paquets TCP/IP au travers d'un canal de
communication simple (donc, en particulier, au travers d'une ligne tlphonique en utilisant un
modem). Ce protocole est gr par le noyau et par le dmon pppd. Il permet d'effectuer la ngociation
initiale entre les deux machines, ce qui comprend notamment l'identification, l'authentification et
l'attribution des adresses IP.
Le dmon pppd ne gre pas le modem directement, car il est suppos tre utilisable sur d'autres 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 qu'il permet de dialoguer directement avec le modem). Le
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 322

programme chat ne connat pas les diffrents types de modems qui existent sur le march, il se
contente d'excuter des scripts qui dcrivent les informations envoyer au modem et les rponses
attendues en retour. Cela permet de reporter la configuration spcifique aux modems dans des scripts
de connexion. L'criture de ces scripts ncessite bien entendu de connatre les commandes que votre
modem est capable de comprendre. Notez galement qu'il est indispensable ici que votre modem soit
un vrai modem (qu'il 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
analogiques 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 d'une connexion est donc l'initialisation du modem et l'tablissement
de l'appel tlphonique par le programme chat, puis le dmarrage du dmon pppd. Celui-ci effectue la
connexion sur le serveur du fournisseur d'accs et dtermine l'adresse 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.
L'identification et l'authentification peuvent se faire de diffrentes manires selon le fournisseur
d'accs Internet utilis. Un certain nombre de fournisseurs exige l'authentification lors de l'appel
tlphonique, avec un mcanisme de login classique. Pour ces fournisseurs, l'authentification est faite
par le programme chat, auquel il faut communiquer le nom d'utilisateur et le mot de passe. D'autres
fournisseurs utilisent un protocole d'authentification spcifique. Pour ceux-ci, l'authentification est
ralise directement par le dmon pppd, une fois que la ligne a t tablie. Les deux principaux
protocoles d'authentification sont PAP (abrviation de l'anglais Password Authentification
Protocol ) et CHAP (abrviation de Challenge Handshake Authentification Protocol ). PAP ralise
l'authentification 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 dfi. Le serveur envoie une
requte contenant son nom, et le client doit s'identifier et authentifier 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 d'accs Internet.
Si vous avez le choix, utilisez de prfrence le protocole CHAP, car il n'envoie jamais de mot de passe
en clair sur la ligne tlphonique.
La configuration de l'accs Internet pour un fournisseur d'accs requiert donc la configuration du
rseau, la configuration de ppp, la configuration de chat et l'criture 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 d'accs 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
Nom de serveur (pour PAP et CHAP) serveurfai
Note : Les informations donnes dans le tableau ci-dessus sont fictives et ne servent qu' donner un
exemple. Vous devez bien entendu les remplacer par les valeurs vous concernant en chaque endroit o
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 323

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 d'accs refuseront de vous donner toutes ces informations, sous prtexte qu'ils
vous fournissent un kit de connexion pour Windows. Ce n'est pas trop grave, car il est possible de leur
extorquer ces informations malgr eux. Les seules informations rellement indispensables 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' identifier la connexion.
9.3.2. Cration d'une connexion Internet
La premire tape dans la cration d'une connexion Internet est avant tout l'ajout des serveurs DNS
du fournisseur d'accs votre configuration rseau. Cela n'est pas toujours ncessaire, car il est
possible de configurer le dmon pppd pour qu'il demande au fournisseur d'accs les adresses IP des
DNS de celui-ci lors de l'tablissement de la connexion. Cependant, il est plus facile d'utiliser le
mcanisme de connexion la demande si l'on indique les adresses des DNS du fournisseur d'accs
dans la configuration rseau.
Pour l'exemple de connexion utilis ici, vous devez simplement ajouter les lignes suivantes dans le
fichier /etc/resolv.conf :
search monfai.fr
nameserver 192.205.43.1
Si vous ne connaissez pas les adresses de DNS de votre fournisseur d'accs, vous pourrez l'obtenir en
regardant dans les traces du noyau lors de l'tablissement d'une connexion. Nous verrons cela en dtail
plus loin.
La deuxime tape est d'crire 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 ""
Ce script contient le programme que chat doit excuter pour appeler le fournisseur d'accs Internet. Il
indique toutes les erreurs possibles susceptibles de faire chouer l'opration, puis il envoie les
commandes d'initialisation 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
d'accs Internet.
Note : Dans les scripts pour chat, il est possible d'utiliser indiffremment l'apostrophe simple,
l'apostrophe double ou aucune apostrophe si la chane attendue de la part du modem ou lui envoyer
ne contient aucun espace.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 324

Si d'aventure ce script ne fonctionne pas, vous serez sans doute oblig de demander au programme
chat d'afficher tous les messages envoys et reus par le modem. Cela se fait normalement avec les
options -v et -s. Vous verrez alors les messages en provenance du modem, ce qui vous permettra de
dterminer comment modifier ce script.
Si votre fournisseur d'accs Internet utilise un mcanisme de login classique, vous devez faire
l'identification directement dans le script chat. En gnral, le serveur du fournisseur d'accs 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 d'utilisateur. Le serveur demande
alors le mot de passe avec une chane telle que password: , demande la suite de laquelle le script
chat doit envoyer votre mot de passe. Ce n'est 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 qu'il n'est 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 l'ordinateur distant. De plus, il se peut que la
premire lettre soit en majuscule ou en minuscule, selon le fournisseur d'accs Internet que vous
utilisez. Il en va de mme pour la demande de mot de passe ( password: ).
Si, en revanche, votre fournisseur d'accs utilise le mcanisme d'authentification PAP ou CHAP, vous
ne devez pas ajouter ces lignes, car le serveur n'enverra pas la chane de caractres login: . Il tentera
de communiquer directement avec votre dmon pppd pour raliser l'authentification. Bien entendu, les
dfis lancs par le serveur sont simplement constitus de la demande du login et de la demande du mot
de passe correspondant ce login. Le dmon pppd utilisera alors les secrets stocks dans le fichier
/etc/ppp/pap-secrets ou le fichier /etc/ppp/chap-secrets pour rpondre ces dfis, selon que le
protocole utilis par le serveur du fournisseur d'accs est PAP ou CHAP. C'est donc dans ces fichiers
que vous devrez enregistrer votre login et votre mot de passe. Le format de ces fichiers est trs simple.
Les deux fichiers 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

Pour que l'identification et l'authentification se fasse correctement. Comme on le voit, le nom du
serveur est indiqu dans ce fichier : 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 d'identifier des utilisateurs, mais des machines.
Cependant, pour votre fournisseur, votre machine est identifie par votre login, et il faut donc indiquer
ce nom comme nom de machine cliente dans les fichiers pap-secrets et chap-secrets.
Le nom de serveur n'est pas utilis pour la connexion. Il ne sert qu' dterminer quel secret doit tre
utilis pour une connexion donne. Comme la plupart des gens n'ont qu'un seul fournisseur d'accs
Internet, ce nom est purement et simplement facultatif. Dans ce cas, on peut parfaitement remplacer le
nom du serveur par une toile. Ce caractre gnrique indique simplement que le mme secret doit tre
utilis pour toutes les connexions.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 325

Pour les connexions Internet, il est souvent impossible de connatre a priori l'adresse 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 fichiers 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 fin de ligne permet d'indiquer que la commande se poursuit
sur la ligne suivante. Ce script commence par faire le mnage sur les fichiers ventuellement laisss
par les anciennes connexions, et appelle pppd en lui demandant d'utiliser la connexion tablie par le
programme chat avec la vitesse maximale de connexion indique. Lorsque la connexion est tablie, le
serveur du fournisseur d'accs est enregistr comme passerelle par dfaut dans la table de routage du
noyau. L'envoi et la rception des paquets IP en direction de l'Internet se fera donc en passant par cette
passerelle. Les adresses de DNS du fournisseur d'accs sont galement rcupres et ajoutes dans le
fichier /etc/ppp/resolv.conf. Vous pourrez les dterminer simplement en consultant les fichiers de log
de votre distribution dans le rpertoire /var/log/. Les deux dernires options permettent d'autoriser le
serveur du fournisseur d'accs fixer les adresses IP locales et distantes.
Dans ce script de connexion, le programme chat est appel avec le script de numrotation pour chat
que l'on a dj crit. Si l'on dsire voir exactement ce qui se passe, on peut ajouter l'option -s la
commande d'excution 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
numrotation.
Vous remarquerez que le programme pppd utilise le fichier spcial de priphrique /dev/modem pour
la communication. Il va de soi que si ce fichier spcial n'existe 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 l'identification et l'authentification. Si vous utilisez l'un des
protocoles PAP ou CHAP, il faut demander pppd d'effectuer 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, afin de prciser le nom du serveur et le nom d'utilisateur pour l'identification. 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 \
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 326

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 '\'. L'option noauh signale qu'il n'est pas ncessaire que le serveur du fournisseur
d'accs s'authentifie en tant que tel (ce n'est pas ncessaire, car les fournisseurs d'accs ne jouent pas
vraiment aux pirates du web), et les deux options suivantes permettent respectivement d'indiquer le
nom de ce serveur ainsi que le nom d'utilisateur utiliser pour le login. Lors de l'authentification, le
dmon pppd lira le fichier de secret du protocole choisi par le fournisseur d'accs pour trouver le mot
de passe utiliser. Notez encore une fois qu'il est facultatif de prciser le nom du serveur du
fournisseur d'accs si vous avez utilis le caractre gnrique '*' dans les fichiers de secrets pour PAP
et CHAP.
Il est possible de faire en sorte que la connexion Internet s'tablisse automatiquement ds qu'un
programme cherche utiliser une adresse devant passer par la route par dfaut. Toute demande
destination d'une machine dont l'adresse est inconnue localement provoque dans ce cas l'tablissement
de la connexion Internet. Pour cela, il suffit simplement :
d'ajouter l'option 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 d'activer galement la dconnexion
automatique, faute de quoi vous risqueriez de rester connect involontairement. Cela se fait
simplement en ajoutant l'option id1en 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 : L'interface rseau est automatiquement cre lorsqu'on lance le dmon pppd avec l'option
demand. Par consquent, le dmon pppd dfinira automatiquement une adresse IP locale pour cette
interface et une adresse IP distante pour la passerelle par dfaut. Malheureusement, ces adresses
peuvent changer d'une connexion une autre. En effet, la plupart des fournisseurs attribuent 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). C'est pour cela qu'il faut ajouter les options ipcp-accep-remoe et ipcp-
accep-1oca1 pour indiquer pppd de modifier ces adresses lorsqu'il tablira la connexion. Le
problme, c'est que les connexions TCP/IP utilisant ces adresses seront systmatiquement casses la
suite de ce changement. C'est en particulier le cas pour le programme qui a initi l'tablissement de la
liaison PPP. C'est pour cette raison qu'il est recommand de demander une adresse IP fixe son
fournisseur d'accs lorsqu'on veut utiliser la connexion la demande. Hlas, ce service peut faire
l'office d'une facturation supplmentaire.
Mme si l'on utilise l'option usepeerdns dans la ligne de commande de PPP, il est recommand de
rajouter les adresses des DNS dans le fichier /etc/resolv.conf. En effet, en l'absence de DNS, les noms
de domaine ne seront pas rsolus et aucune requte vers l'extrieur ne se fera. Par consquent, la route
par dfaut ne sera pas utilise, et pppd n'tablira donc pas la connexion automatiquement. Notez que si
vous dfinissez les DNS dans le fichier /etc/resolv.conf, vous pouvez vous passer de l'option
usepeerdns dans la ligne de commande de pppd. Si vous dsirez procder de cette manire, vous
devrez vous assurer que l'ordre spcifi pour la rsolution des noms dans le fichier /etc/host.conf est
bien le fichier /etc/hosts (option hoss) 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 spcifies dans le fichier d'options
/etc/ppp/options du dmon pppd. Cela peut permettre de simplifier les scripts de connexion.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 327

Si l'on n'utilise pas les mcanismes de connexion / dconnexion automatiques, on devra se dconnecter
manuellement. Pour cela, rien de plus simple : il suffit 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

# La connexion indique n'est pas active :
echo "ERREUR: Il n'y a pas de connexion PPP sur $DEVICE"
exit 1
9.3.3. Connexion l'ADSL
Les connexions ADSL ne requirent pas d'appel tlphonique vers un modem du fournisseur d'accs.
Elles s'tablissent donc d'une manire diffrente, gnralement bien plus simple. Toutefois, la manire
de procder dpend des fournisseurs d'accs et de la nature de votre modem ADSL. Il est donc difficile
de dcrire de manire gnrique la manire dont une connexion ADSL se met en place sous Linux.
Seules les grandes lignes seront donc indiques dans ce paragraphe.
Sachez pour commencer qu'il existe trois types de modems ADSL : les modems USB, les modems
Ethernet simples, et les modems routeurs. Les premiers sont connects votre ordinateur via un cble
USB. Les deuximes utilisent plutt un cble rseau Ethernet classique. Les modems routeurs quant
eux sont des modems ADSL coupls d'un switch et, de plus en plus souvent, d'un point d'accs sans fil
Wifi. Ces modems sont intressants, car ils permettent de connecter plusieurs ordinateurs Internet via
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 328

la mme ligne, et ces ordinateurs peuvent tre mis en rseau directement en les cblant au modem
routeur l'aide de cbles Ethernet, et via un rseau sans fil Wifi pour les modems avec point d'accs.
En gnral, les modems USB requirent des pilotes de priphriques spcifiques chaque type de
modem. Ce n'est pas le cas des modems Ethernet et des modems routeurs, puiqu'ils se connectent
directement votre carte Ethernet par un cble Ethernet (droit ou crois selon votre modem). Par
consquent, si votre carte rseau est prise en charge par Linux (ce qui est fort probable), vous n'aurez
absolument aucun problme pour vous connecter Internet avec un modem Ethernet, alors que les
pilotes USB pour Linux sont rarement dvelopps avec srieux par les fabricants de modem (ayant
essuy les pltres avec le modem Sagem Fast800 fourni par Free ses clients et particip au dbogage
de celui-ci, je suis bien plac pour le savoir). De plus, les modems USB ne permettent pas de partager
la connexion Internet entre plusieurs ordinateurs, fonctionnalit trs intressante dans le cadre d'un
petit rseau familial ou si vous disposez d'un ordinateur fixe et d'un portable. Enfin, les modems
Ethernet sont aliments, alors que les modems USB utilisent l'alimentation du port USB, ce qui dans
50% des cas provoque des instabilits de la connexion Internet, si ce n'est de l'ordinateur lui-mme.
Il est donc vivement conseill de choisir un modem routeur ou, dfaut, un modem Ethernet si vous
en achetez un ou si votre fournisseur d'accs Internet vous en propose. La plupart des modems
volus des offres multiples (tlphone + Internet et ventuellement TV) distribus de nos jours sont
gnralement des modems routeurs, et disposent souvent d'une possibilit de point d'accs Wifi.
Note : Mme si, comme nous le verrons plus loin, Linux est parfaitement capable de raliser un
partage de connexion Internet, l'achat d'un routeur domestique ou, pour simplifier l'installation, d'un
modem routeur prenant tout en charge, reste intressant. En effet, ces appareils, prenant totalement en
charge la connexion Internet, rendent la configuration de l'accs Internet triviale au niveau de
l'ordinateur. De plus, ils peuvent fournir des services complmentaires, tels que la configuration
dynamique des ordinateurs clients par le protocole DHCP, ou encore le relai de serveur de nom avec
un mini serveur DNS, acclrant ainsi de manire non ngligeable le temps de rponse lors de la
navigation.
De plus, et c'est sans doute l'un des plus gros avantages, les modems routeurs peuvent jouer le rle
d'un pare-feu naturel ds lors que la fonction de partage de connexion Internet est active. En
effet, mme si un seul ordinateur est connect au modem routeur, celui-ci doit utiliser un jeu d'adresses
IP prives pour votre rseau local, car votre fournisseur ne vous attribuera qu'une seule adresse IP lors
de la connexion. Or, les adresses prives utilises de ce type ne sont pas, par dfinition, routables sur
Internet. Par consquent, du point de vue d'Internet, seul le modem routeur est visible : aucun de vos
ordinateurs n'est accessible ! Il est donc quasiment impossible un pirate et encore moins un virus de
passer au travers de cet appareil, sauf le pirater en premier lieu. Dans tous les cas, cela complique
srieusement les choses, et le type de protection fourni par ces appareils est donc extrmement fiable.
Ne serait-ce que pour cet aspect des choses, je vous recommande vivement l'utilisation de ce type
d'appareil (surtout si vous avez un ordinateur qui fonctionne sous Windows).
Mme si vous utilisez un modem USB, il apparatra gnralement comme une interface Ethernet dans
le systme. L'installation des pilotes pour les modems USB tant extrmement spcifique, cette tape
ne sera pas dcrite plus en avant ici. La suite du document suppose donc que vous disposiez d'un
modem Ethernet, ou que votre modem soit accessible par l'intermdiaire d'une interface Ethernet
simule par le pilote du modem.
Lorsque vous aurez branch votre modem et que vous pourrez y accder via son interface Ethernet,
vous devrez tablir la connexion avec votre fournisseur d'accs. Cela dpend encore une fois du
fournisseur d'accs, et parfois mme, pour un mme fournisseur, de la rgion dans laquelle vous vous
trouvez. Gnralement, deux mthodes sont utilises pour tablir la connexion :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 329

soit les communications se font de manire totalement transparente via l'interface Ethernet du
modem, auquel cas la connexion s'tablit aussi facilement que si vous vous connectiez un
rseau Ethernet classique ;
soit les communications sont encapsules dans le protocole de communication PPP, via un
protocole du type PPPoE ( PPP over Ethernet ) ou PPPoA ( PPP over ATM ), auquel cas
vous devrez utiliser le dmon pppd pour tablir la connexion.
Dans le premier cas, la configuration est simpliste. Il suffit d'utiliser l'interface Ethernet du modem
comme interface de sortie dans la route par dfaut, et ventuellement de mettre un client DHCP
l'coute sur cette interface si le fournisseur d'accs utilise ce protocole pour attribuer les adresses IP de
ses clients. La manire de procder est dcrite dans la section traitant de DHCP. Cette technique est
celle utilise par le fournisseur d'accs Free en France en zone dgroupe. Pour ce fournisseur, les
adresses IP fournies tant fixes en zone dgroupe, la connexion Internet se rsume donc aux deux
commandes suivantes :
ifconfig eth0 adresse up
route add default eth0

o adresse est l'adresse IP que votre fournisseur d'accs vous a attribue. La connexion Internet se
fait donc dans ce cas comme la configuration d'une simple carte rseau.
Dans le deuxime cas, le plus simple est d'utiliser le protocole d'encapsulation PPPoE. Comme son
nom l'indique, ce protocole permet d'encapsuler les paquets de la liaison PPP avec votre fournisseur
Ethernet directement dans des trames Ethernet, qui peuvent ensuite tre envoyes via l'interface
Ethernet du modem. Cette solution peut tre mise en place avec l'outil rp-pppoe de la socit Roaring
Penguin, ou directement avec un gestionnaire PPPoE au niveau du noyau.
La mise en place d'une connexion avec rp-pppoe est rellement trs simple. En effet, un fichier
d'options pour PPP nomm pppoe.conf et des scripts de connexion et dconnexion adsl-start et adsl-
stop, permettant de lancer le dmon pppd avec les bonnes options et dans le bon contexte pour tablir
la connexion, sont fournis. Les seules oprations faire sont dans ce cas de s'assurer que les
identifiants de connexion (login et mot de passe) fournis par votre fournisseur d'accs sont bien
enregistrs dans les fichiers pap-secrets et chap-secrets, et que le fichier pppoe.conf y fait bien
rfrence (au niveau de l'option USER). La manire de procder ayant dj t dcrite ci-dessus, elle
ne sera pas dtaille outre mesure.
L'utilisation du gestionnaire PPPoE du noyau est encore plus directe, car il suffit simplement dans ce
cas de lancer le dmon pppd en lui demandant de travailler avec l'interface rseau du modem. Pour
utiliser ce gestionnaire, vous devez activer, outre le support de PPP, l'option PPP over Ethernet
(EXPERIMENTAL) dans les options de configuration du noyau. Une fois les identifiants de
connexion crits dans les fichiers pap-secrets ou chap-secrets, la connexion Internet se fera
simplement avec la commande suivante :
pppd interface

o interface est le nom de l'interface rseau du modem.
Note : Il est recommand de limiter la taille des paquets en rception et en mission 1492 octets, afin
de prendre en compte les frais ds l'encapsulation PPPoE. Pour cela, il suffit de placer les options
suivantes dans le fichier d'options de pppd :
mtu 1492
mru 1492
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 330

Il est impratif de mettre en place un pare-feu si vous disposez d'une connexion ADSL. La manire de
procder est dcrite dans la Section 9.4.
9.3.4. Les autres outils de connexion
Vous en savez suffisamment 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, d'envoyer et recevoir des courriers lectroniques ( mails ), de naviguer
( surfer ) et de lire les groupes de discussions ( news ). Cependant, l'utilisation de ces outils ne
sera pas dcrite ici, car il en existe trop pour que l'on puisse tous les prsenter. Heureusement, ces
outils sont prvus pour tre trs simples d'emploi et leur configuration ne pose rellement aucun
problme.
9.3.5. Configuration d'un cache de DNS
La rsolution des noms de domaines est une opration dont le cot est loin d'tre ngligeable au niveau
du temps de connexion aux serveurs, si ce n'est au niveau de la bande passante utilise. En effet, il est
relativement courant qu'une page Web fasse de multiples rfrences des machines inconnues et dont
les adresses doivent tre rsolues. De ce fait, la rsolution des noms de domaines peut parfois se
mesurer en secondes, surtout si les serveurs de noms des fournisseurs d'accs sont surchargs, ce qui
arrive trs couramment, mme pour les clients des offres ADSL 20Mbits/s.
De plus, il est courant qu'un internaute reste toujours sur le mme site pendant qu'il navigue sur
Internet. Il peut donc tre trs intressant de disposer d'un cache local pour les requtes DNS. Un tel
cache permet de mmoriser les interrogations faites par les programmes clients (essentiellement les
navigateurs Web) et surtout les rponses renvoyes par le serveur de nom du fournisseur d'accs.
Ainsi, lorsqu'un client effectue une requte sur un nom de domaine pour lequel il a dj fait une
requte auparavant (par exemple lors de l'accs la page prcdente), la rponse de cette requte set
accessible immdiatement, puisqu'elle se trouve dans le cache local. Ce mcanisme permet donc de
rduire sensiblement les temps de connexions aux machines situes sur Internet : seule la premire
connexion prend le temps habituel, et toutes les autres sont acclres.
Note : Les mcanismes de caches sont trs souvent utiliss en informatique pour permettre
d'obtenir rapidement des informations habituellement difficiles obtenir, mais qui varient trs peu. Du
fait de leur quasi constance, il est en effet possible de les copier dans une mmoire locale. Par
exemple, les caches sont utiliss au niveau des disques durs, dans les processeurs pour accder aux
donnes en mmoire, et au niveau du rseau. Ils permettent d'augmenter considrablement les
performances, au dtriment d'une plus grande complexit des oprations d'criture des donnes,
puisque celles-ci invalident les donnes des caches et doit forcer leur mise jour.
En pratique, la mise en place d'un cache de DNS consiste installer un petit serveur de nom local sur
la machine, qui rpond toutes les requtes des applications clientes. Ce petit serveur est lui-mme
client des serveurs de noms effectifs qui se trouvent sur Internet. L'idal est dans ce cas simplement de
s'adresser aux serveurs de noms du fournisseur d'accs Internet, afin de bnficier de son propre
cache et de sa bande passante pour les requtes intermdiaires. C'est exactement ce que se propose de
faire le programme DNSmasq.
La configuration de DNSmasq se fait essentiellement au niveau du fichier de configuration
/etc/dnsmasq.conf. Ce fichier est constitu d'une srie d'options auxquelles une valeur est affecte, les
lignes commenant par un signe dize tant des commentaires. Le fichier suivant peut vous servir
d'exemple, sachant que les options sont toutes commentes dans le fichier fourni par dfaut :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 331

# Exemple de fichier de cache de DNS :

# Fichier de dfinition des serveurs de noms en amont :
# Si on utilise ppp pour se connecter :
#resolv-file=/etc/ppp/resolv.conf

# Si on utilise DHCP directement :
resolv-file=/var/dhcp/resolv.conf

# Adresses des serveurs utiliss par les socits et les fournisseurs d'accs
# tordus qui ont mis en place une entre par dfaut pour capter toutes les requtes
# sur les noms de domaines incorrects et qui redirigent leurs clients vers des sites
# publicitaire au lieu de renvoyer une erreur comme la ntiquette l'impose :

# Verisign (ils se sont calms rcemment) :
bogus-nxdomain=64.94.110.11

# Mon fournisseur dbile :
# bogus-nxdomain=adresse.du.site.publicitaire
Ce fichier d'exemple ne montre que les options rellement ncessaires. L'option reso1v-fi1e
permet d'indiquer au dmon dnsmasq o trouver les adresses des serveurs DNS amont (c'est--dire
ceux du fournisseur d'accs en pratique). Il faut indiquer ici un fichier qui contient les lignes
nameserver donnant les adresses de ces serveurs. Comme nous allons le voir ci-dessus, il ne faut pas
spcifier ici le fichier /etc/resolv.conf du systme, car nous allons le modifier. Au contraire, il faut
indiquer un fichier dans lequel les outils de connexion rseau (client DHCP ou dmon pppd par
exemple) enregistrent les adresses des serveurs de noms du fournisseur d'accs.
Par exemple, lorsqu'une connexion est tablie avec le dmon ppp, celui-ci enregistre les serveurs DNS
primaires et secondaires du fournisseur d'accs dans le fichier /etc/ppp/resolv.conf. Il suffit donc de
rfrencer ce fichier dans l'option reso1v-fi1e.
En revanche, si la connexion s'tablit directement grce au protocole DHCP, il faut configurer le client
DHCP du systme pour qu'il enregistre les adresses des serveurs DNS dans un fichier autre que le
fichier /etc/resolv.conf du systme. Ici, nous utilisons le fichier /var/dhcp/resolv.conf. Par exemple, si
votre distribution utilise le client DHCP dhcpcd, il suffit de lui ajouter l'option -e/var/dhcp pour
que ce fichier soit cr dans le rpertoire /var/dhcp/ au lieu du rpertoire /etc/.
L'option bogus-nxdomain est un palliatif une tentative de dtournement des requtes DNS que
certaines socits effectuent pour obtenir un profit publicitaire direct ou des statistiques
comportementales sur les internautes. Ces socits redirigent en effet toutes les requtes mal formes
ou mal orthographies vers un de leur serveur Web, ce qui leur permet d'obtenir des informations sur
les sites accds, d'afficher une page de publicit, ou encore faire une redirection directe vers un site
suppos intresser l'internaute.
Bien entendu, ce comportement est pour le moins cavalier, car l'internaute ne comprend pas forcment
pourquoi il tombe sur un site inconnu alors qu'il demandait l'adresse d'un autre site. D'autre part, ces
redirections perturbent le bon fonctionnement de certains outils qui s'attendent explicitement trouver
une erreur en cas d'chec de rsolution de nom.
Il n'y a malheureusement pas grand chose faire pour faire revenir la raison ces socits ( part
porter plainte, passer la concurrence, ou plus mchamment bombarder leurs serveurs DNS de
requtes invalides avec un programme, ce que je vous dconseille de faire vivement...). En revanche,
dnsmasq peut dtecter ces redirections et gnrer une erreur de rsolution de nom classique. Pour
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 332

cela, il suffit d'identifier l'adresse IP du serveur cible de la redirection, et de l'indiquer dnsmasq
l'aide de l'option bogus-nxdomain. Ainsi, lorsque dnsmasq reoit une rponse rfrenant ces
serveurs, il renvoie directement une erreur aux programmes clients.
Une fois que vous aurez configur et lanc le dmon dnsmasq, vous devrez encore indiquer au
systme qu'il devra interroger ce dmon pour effectuer les rsolutions des noms de domaines. Comme
il l'a dj t indiqu dans les sections prcdentes, cela se fait simplement en ajoutant une ligne
nameserver rfrenant la machine locale dans le fichier de configuration /etc/resolv.conf :
nameserver 127.0.0.1
Note : Le dmon dnsmasq ne permet de cacher que les rsultats des requtes DNS. Or, de nombreux
fichiers qui ne changent quasiment jamais, comme les images de fond, les logos et les pages statiques,
sont rcuprs de multiples fois lorsqu'un internaute navique sur des pages Web. Il est donc trs
intressant de mettre galement ces fichiers en cache. Nous verrons comment raliser cela dans la
section suivante.
9.3.6. Installation d'un proxy HTTP
Lors d'une connexion Internet, bon nombre d'informations sont changes entre le serveur et le
client. En particulier, lorsqu'on navigue, un certain nombre d'images et d'informations plus ou moins
lentes tlcharger transitent systmatiquement. Or la plupart des gens visitent rgulirement les
mmes sites, dont seulement quelques pages sont modifies entre deux visites successives. Par
consquent, on peut se demander pourquoi les pages compltes devraient tre recharges chaque
visite, si seulement quelques informations ont t modifies.
Cette question prend encore plus de sens lorsqu'on 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 l'engorgement du lien partag inutilement. C'est pour rsoudre ce genre
de problme que les programmes que l'on nomme proxies ont t dvelopps.
Un proxy n'est rien d'autre qu'un programme qui s'intercale entre des clients et un serveur. Il a pour
principale fonction de mmoriser les rponses les plus courantes renvoyes par le serveur, afin de
rpondre la fois plus rapidement aux clients et d'viter 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 afin de soulager une liaison trop faible.
Le principe de fonctionnement d'un proxy est le suivant. Les navigateurs utiliss par les clients se
connectent, en temps normal, directement sur le port 80 des serveurs Web. Leur configuration doit tre
modifie 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. Lorsqu'il peut le faire, il renvoie les
donnes qu'il 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, afin de laisser la place aux donnes qui sont le plus souvent demandes et
qui changent le moins. Pour utiliser un proxy, il faut donc modifier la configuration des navigateurs
des clients, afin de donner l'adresse de la machine sur laquelle le proxy fonctionne, ainsi que le port
sur lequel il peut tre contact (gnralement, c'est le port 8080).
Note : Il est galement possible d'utiliser les mcanismes de translation d'adresse du noyau pour
rendre l'utilisation du proxy transparente aux clients. La manire de procder sera dcrite dans la
section traitant des mcanismes de filtrage du noyau.
Il existe plusieurs proxies sur le march, mais le plus utilis sous Linux est sans doute squid. C'est un
logiciel performant, puissant et libre, fourni avec la plupart des distributions modernes. Sa
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 333

configuration peut tre relativement technique, mais nous n'allons pas entrer dans tous les dtails. Il
s'agit simplement ici de donner un aperu des fonctionnalits disponibles.
squid utilise le fichier de configuration /etc/squid.conf pour lire ses options de fonctionnement. Ce
fichier contient en particulier les informations concernant le rseau, une liste de rgles indiquant qui a
le droit de lui demander des pages Web, et l'emplacement du cache dans lequel les donnes du cache
seront enregistres.
L'option la plus importante dans ce fichier de configuration est sans doute cache_dir, qui indique
l'emplacement 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 l'arborescence du
cache. La signification de ces deux nombres doit tre explique un peu plus en dtail.
Par dfaut, squid essaie de rpartir tous les objets qu'il place dans le cache de manire uniforme dans
plusieurs rpertoires, afin d'acclrer les temps de recherche sur ces objets lorsqu'un client les
demande. Il utilise cette fin 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 c'est le cas), les objets
sont rpartis de manire quilibre dans tous les rpertoires du cache, qui sont donc tous relativement
peu peupls. En fait, squid peut stocker tellement d'objets 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 spcifi dans l'option
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 spcifient les paramtres rseau du cache :
l'option hp_por indique le port TCP que les clients doivent utiliser pour accder au
proxy ;
l'option fp_user permet de donner l'adresse email utiliser comme mot de passe dans les
connexions FTP anonymes ;
l'option cache_peer permet d'intgrer le proxy local dans une hirarchie de proxies.
Les proxies peuvent en effet tre organiss dans une structure arborescente. Lorsqu'un proxy
d'un niveau ne dispose pas d'une 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 l'anglais Inter Cache Protocol ).
En gnral, les petits rseaux ne disposent que d'un seul proxy, l'option cache_peer est
donc souvent utilise de la manire suivante :
cache_peer pre parent port port_icp options
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 334

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
possibles, on utilisera le plus souvent l'option defau1, qui spcifie 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 paramtre port_icp sera inutilis) ;
L'option prefer_direc permet d'indiquer au proxy s'il doit chercher avant tout
rcuprer lui-mme les donnes qui lui manquent (valeur on) ou s'il doit contacter d'abord son
proxy pre (valeur off). Si l'on a spcifi un proxy pre l'aide de l'option cache_peer, on
aura intrt utiliser la valeur off ;
L'option dns_chi1dren permet de donner le nombre de processus en charge de cacher les
requtes sur les DNS. squid peut en effet lancer des serveurs de cache de DNS permettant
d'optimiser les temps d'accs aux pages Web. Plus le rseau local est important, plus il faudra
de tels processus, afin 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.
Les valeurs donnes par dfaut toutes ces options conviennent dans la plupart des cas. Elles sont
parfaitement documentes dans le fichier de configuration squid.conf.
Par dfaut, squid n'autorise personne accder au cache. Il est donc ncessaire de donner les droits
ncessaires pour permettre aux machines de votre rseau d'accder au cache. La gestion de la scurit
se fait par l'intermdiaire de ce que l'on appelle des ACL (abrviation de l'anglais Access Control
List ).
Une ACL est simplement un critre permettant de classifier les requtes que le proxy reoit. Ces
critres sont dfinis l'aide du mot cl acl, suivi du nom de la liste, suivi lui-mme d'un critre que
toutes les requtes concernes par cette ACL devront vrifier. Les critres sont eux-mmes exprims
l'aide d'un 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 filtrer les requtes par les adresses des machines qui les ont mises, en
indiquant l'adresse de leur rseau, donne sous la forme adresse/masque ;
dst, qui permet de filtrer les requtes par leurs adresses destination ;
port, qui permet de slectionner les requtes s'adressant sur les ports fournis en paramtres ;
proto, qui permet de spcifier 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 n'est pas exhaustif, mais il permet d'avoir une ide des capacits de filtrage des requtes
dont dispose squid. Vous trouverez ci-dessous quelques exemples pratiques de dfinitions d'ACL :
# 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 d'un 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 :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 335

acl safe_ports port 80 21 443 563 70 210 1025-65535

# ACL dfinissant les requtes de connexion :
acl connect method CONNECT
La dfinition 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
l'action prise pour les requtes vrifiant cette rgle, et ACL une liste d'ACL permettant de spcifier les
requtes concernes par cette rgle. La ressource la plus utilise est sans doute le protocole HTTP, que
l'on peut spcifier l'aide du mot cl http_access. Les actions peuvent tre l'acceptation (mot cl
allow) ou le refus (mot cl deny) de la requte. Enfin, les requtes concernes par une rgle sont celles
qui appartiennent toutes les ACL de la liste d'ACL 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 l'action oppose la dernire rgle spcifie. En pratique, il est plus sage de toujours indiquer
une politique par dfaut pour toutes les requtes restantes, par exemple en utilisant l'ACL all dfinie
ci-dessus.
L'exemple de jeu de rgles de scurit donn ci-dessous convient pour un rseau local d'adresses
192.168.0.0. Vous pouvez bien entendu modifier les options de scurit comme bon vous semble.
Encore une fois, rappelons que le fichier de configuration de squid est trs bien document et que sa
lecture est relativement facile. Je ne saurais que trop vous recommander de le consulter si vous dsirez
en savoir plus.
9.4. Pare-feu et partages de connexion Internet
Supposons qu'une machine situe sur un rseau local ait 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 336

dfinition des rgles de routage si toutes les machines ont une adresse IP attribue par l'IANA.
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 qu'a fortiori elles ne
recevront jamais de paquets provenant d'Internet. Heureusement, il existe une technique nomme
masquerading, base sur un mcanisme de translation d'adresse ( NAT en anglais, abrviation de
Network Address Translation ), qui permet de modifier les paquets mis destination d'Internet la
vole afin 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 dautres
ordinateurs d'un rseau local est un jeu d'enfant sous Linux grce cette technique.
Il faut toutefois bien se rendre compte que le fait de 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 d'intrusion. Lorsqu'on utilise
des adresses IP dynamiques, il est relativement difficile d'accder des machines du rseau local, sauf
si la passerelle expose des services internes au reste du rseau. En revanche, si les adresses utilises
sont fixes et valides sur Internet, le risque devient trs important. Par ailleurs, une machine Linux
connecte sur Internet ouvre toujours des ports indsirs, mme si elle est bien configure. Par
exemple, il est impossible d'empcher le serveur X d'couter les demandes de connexion provenant
d'Internet, mme s'il est configur pour toutes les refuser. La configuration d'un ordinateur connect
Internet doit donc se faire avec soin dans tous les cas, et l'installation d'un pare-feu est plus que
recommande (un pare-feu , ou firewall en anglais, est un dispositif qui consiste protger un
rseau local du feu de l'enfer d'Internet, sur lequel tous les crackers sont supposs grouiller).
Les paragraphes suivants exposent les mcanismes de filtrage de paquets rseau de Linux, qui sont
utilises tant pour dfinir les rgles de protection contre les intrusions indsirables sur un rseau par
l'intermdiaire d'une passerelle que pour effectuer des traitements sur les paquets. Cependant, de tous
ces traitements, nous ne verrons que la translation d'adresse, car c'est sans doute celui que la plupart
des gens cherchent utiliser.
9.4.1. Mcanismes de filtrage du noyau
Linux est capable de filtrer les paquets circulant sur le rseau et d'effectuer des translations d'adresses
depuis la version 2.0. Cependant, les techniques utilises ont t profondment remanies dans la
version 2.4.0 du noyau, et une architecture extensible a t mise en place et semble rpondre tous les
besoins de manire simple : Netfilter.
Netfilter est simplement une srie de points d'entre dans les couches rseau du noyau au niveau
desquels des modules peuvent s'enregistrer afin d'effectuer 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 d'intervenir de manire souple et n'importe quel niveau. Un certain
nombre de modules permettant d'effectuer les traitements les plus courants sont fournis directement
dans le noyau, mais l'architecture Netfilter est suffisamment souple pour permettre le dveloppement
et l'ajout 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 pare-feu se chargent spcifiquement de donner les moyens de
filtrer les paquets selon des critres bien dfinis, et les modules permettant d'effectuer des translations
d'adresses ne prennent en charge que la modification des adresses source et destination des paquets
la vole. Afin de bien les identifier, ces fonctionnalits sont regroupes dans ce que l'on appelle des
tables. Une table n'est en fait rien d'autre qu'un ensemble cohrent de rgles permettant de manipuler
les paquets circulant dans les couches rseau du noyau pour obtenir une fonctionnalit bien prcise.
Les tables les plus couramment utilises sont les tables filter , mangle et nat , qui permettent
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 337

respectivement de raliser des pare-feu, de marquer les paquets pour leur appliquer un traitement
ultrieur, et d'effectuer des translations d'adresses.
Les diffrentes tables de NetFilter s'abonnent chacune aux points d'entre qui sont ncessaires pour
implmenter leur fonctionnalit, et les paquets qui passent au travers de ces points d'entre doivent
traverser les rgles dfinies dans ces tables. Afin de faciliter la dfinition des rgles stockes dans les
tables, les rgles sont regroupes dans des listes de rgles que l'on appelle communment des chanes.
Chaque table dispose donc toujours d'une chane de rgles prdfinie pour chacun des points d'entre
de Netfilter qu'elle utilise. L'utilisateur peut bien entendu dfinir de nouvelles chanes et les utiliser
dans les chanes prdfinies, ces chanes apparaissent alors simplement comme des sous-programmes
des chanes prdfinies.
Les rgles des tables de Netfilter permettent de spcifier les paquets qui les vrifient, selon des critres
prcis, comme par exemple leur adresse source ou le type de protocole qu'ils 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 d'une machine considre comme non
sre si l'on veut faire un pare-feu. On pourra aussi envoyer ces paquets dans une autre chane, qui
peuvent indiquer d'autres rgles et d'autres traitements.
Les critres de slection de paquets des rgles de filtrage se basent sur les informations de l'en-tte de
ces paquets. Rappelez-vous que chaque paquet de donnes mis sur le rseau transporte avec lui des
informations ncessaires au fonctionnement du dit rseau, entre autres les adresses source et
destination du paquet. Ce sont sur ces informations que la slection des paquets est effectue dans
Netfilter. Dans le cas d'un 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
l'on a charg des modules complmentaires dans NetFilter. Par exemple, le numro de port TCP peut
faire partie des critres de slection d'une rgle et donc de diffrencier le trafic des diffrents services
rseau.
Les traitements que l'on peut appliquer un paquet sont galement fournis par des modules de
Netfilter. 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 :
l'enregistrer, pour analyse ultrieure ;
le rediriger vers un port local, pour traitement par un programme ddi (par exemple, par un
serveur proxy) ;
l'accepter, l'abandonner ou le rejeter directement (le rejet se distingue de l'abandon par
l'mission d'une notification hte inaccessible la machine ayant mis le paquet) ;
le modifier et, en particulier, effectuer une translation d'adresse ou le marquer pour le
reconnatre dans un traitement ultrieur ;
l'envoyer dans une autre chane pour effectuer des vrifications complmentaires ;
le faire sortir immdiatement de la chane courante.
De plus, les statistiques tenues par le noyau pour la rgle ainsi vrifie sont mises jour. Ces
statistiques comprennent le nombre de paquets qui ont vrifi cette rgle ainsi que le nombre d'octets
que ces paquets contenaient.
Lorsqu'un paquet arrive la fin d'une chane (soit parce qu'il n'a pas t rejet ou dtruit par une rgle
de filtrage de pare-feu, soit parce qu'il ne correspond aux critres d'aucune rgle, ou soit parce qu'il est
arriv ce stade aprs avoir subi des modifications), 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
prdfinie, il n'y a plus de chane appelante, et le sort du paquet est dtermin par ce qu'on appelle la
politique de la chane prdfinie. La politique ( policy en anglais) des chanes prdfinies indique
donc ce que l'on doit faire avec les paquets qui arrivent en fin de chane. En gnral, on utilise une
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 338

politique relativement stricte lorsqu'on ralise un pare-feu, qui rejette par dfaut tous les paquets qui
n'ont pas t accepts explicitement par une rgle de la chane.
Note : Certains paquets peuvent tre dcoups en plusieurs paquets plus petits lors de la traverse d'un
rseau. Par exemple, un paquet TCP un peu trop gros et initialement encapsul dans un seul paquet IP
peut se voir clat en plusieurs paquets IP. Cela peut poser quelques problmes aux rgles de filtrage,
puisque dans ce cas les donnes spcifiques TCP (par exemple les numros de ports) ne sont
disponibles que sur le premier paquet IP reu, pas sur les suivants. C'est 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 qu'elle reoit.
9.4.2. Translations d'adresses et masquerading
Nous avons vu que grce aux mcanismes de filtrage du noyau, il est possible de modifier les paquets
la vole. Il peut tre intressant de modifier un paquet pour diverses raisons, les trois plus
intressantes tant sans doute de le marquer l'aide d'un champ spcial dans son en-tte afin de le
reconnatre ultrieurement, de modifier sa priorit pour permettre un traitement privilgi ou au
contraire placer en arrire plan ce type de paquet (librant ainsi les ressources rseau pour d'autres
types de connexion), et de modifier ses adresses source et destination, pour effectuer une translation
d'adresse. Nous allons nous intresser plus particulirement aux diffrentes formes de translations
d'adresses dans la suite de cette section.
Une translation d'adresse n'est en fait rien d'autre qu'un remplacement contrl des adresses source ou
destination de tous les paquets d'une 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 modifiant 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 d'adresses : les translations d'adresse source et
les translations d'adresse destination. Parmi les translations d'adresse source se trouve un cas
particulier particulirement intressant : le masquerading . Cette technique permet de remplacer
toutes les adresses source des paquets provenant des machines d'un rseau local par l'adresse de
l'interface de la passerelle connecte Internet, tout en conservant une trace des connexions rseau
afin d'acheminer 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 d'adresses
IP fournies par l'IANA.
Lorsqu'une machine du rseau local envoie un paquet destination d'Internet, ce paquet est achemin
vers la passerelle, qui est la route par dfaut. Celle-ci commence par modifier l'adresse source de ce
paquet et mettre sa propre adresse la place, puis le transfre vers la machine du fournisseur d'accs.
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 modifiant galement le port source des paquets
provenant 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 lorsqu'elle en reoit un provenant
d'Internet. Par exemple, si une machine locale fait une connexion Internet, la passerelle alloue un
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 339

nouveau numro de port pour cette connexion et modifie tous les paquets sortants comme ayant t
mis par la passerelle elle-mme, sur ce port. Lorsque l'autre 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, l'adresse de la machine destination relle, ainsi que le port source que cette machine utilisait
initialement. La passerelle modifie 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
directement d'Internet, comme si la connexion avait t directe. Notez bien que la passerelle ne
modifie pas les adresses source des paquets provenant d'Internet, elle ne fait que les racheminer vers
la bonne destination.



Figure 9-7. Translation d'adresses 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 l'Internet, il ne semble y avoir qu'un 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, d'o le nom de masquerading.
Tout ce travail effectu par la passerelle ncessite un traitement spcifique sur chaque paquet qu'elle
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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 340

Linux, mme sur les plus petites machines (386 et 486). Vous voil rassurs, et peut-tre aurez-vous
trouv d'ici peu une utilit l'un de ces dinosaures qui tranent encore dans votre garage...
9.4.3. Trajet des paquets dans le code de Netfilter
Il existe cinq points d'entre au total pour les modules de Netfilter dans le code des couches rseau IP
de Linux. chacun de ces points d'entre, les paquets sont soumis aux diffrentes chanes des tables
qui s'y intressent. Comme on l'a dj dit plus haut, chaque table dispose d'une chane prdfinie pour
chacun des points d'entre auxquels elle s'intresse. Le nom de ces chanes prdfinies est le nom du
point d'entre au niveau duquel elles sont appeles. Les paragraphes suivants dcrivent ces cinq points
d'entre, ainsi que l'ordre dans lequel les chanes des diffrentes tables sont traverses par les paquets.
Les paquets rseau provenant de l'extrieur sont d'abord contrls par le noyau afin de dtecter les
erreurs les plus simples. Les paquets mal forms ou corrompus sont systmatiquement limins ce
niveau, avant mme d'atteindre le code de Netfilter. Les autres paquets commencent alors leur trajet
dans les couches de plus haut niveau. C'est ce moment l qu'ils rencontrent le point d'entre
PREROUTING. Les rgles des chanes PREROUTING des tables mangle et nat sont appliques ce
moment. Ces chanes prcdent le code de routage, qui est en charge de dterminer le trajet que le
paquet devra suivre par la suite partir de l'adresse destination des paquets. C'est donc dans ces chane
que l'on pourra entre autres modifier l'adresse destination des paquets, si l'on veut faire une translation
d'adresse destination. Cette opration se fait typiquement dans la table nat.
Les paquets qui passent le point d'entre PREROUTING sont ensuite orients par le code de routage
de Linux. S'ils sont destination de la machine locale, ils rencontrent un autre point d'entre : le point
d'entre INPUT. Les rgles des chanes INPUT des tables mangle et filter sont excutes ce moment.
C'est donc ce niveau que l'on peut empcher un paquet d'entrer dans le systme, ce qui se fait
naturellement dans la table filter.
Les autres paquets doivent tre transfrs vers une autre machine, souvent par une autre interface
rseau. Ils atteignent donc le point d'entre FORWARD. Ce point d'entre permet de contrler les
paquets qui transitent au travers d'une passerelle. Les paquets y traversent les chanes FORWARD des
tables mangle et filter, cette dernire tant justement ddie au filtrage des paquets qui transitent par la
passerelle.
Les paquets qui sont accepts par les chanes FORWARD retournent ensuite dans le code de routage
du noyau, afin de dterminer l'interface rseau par laquelle ils doivent tre rmis. Une fois cela
ralis, ils sont prts tre rmis, mais ils doivent auparavant traverser les chanes des tables
abonnes au point d'entre POSTROUTING. Il s'agit bien sr des chanes POSTROUTING des tables
mangle et nat. C'est dans cette dernire chane que se font les translations d'adresse source.
Enfin, les paquets mis par la machine locale destination de l'extrieur doivent imprativement
passer par le point d'entre OUTPUT, qui excute les chanes OUTPUT des tables mangle, nat et
filter. C'est donc ce niveau que l'on pourra modifier les adresses destination des paquets de la
machine locale avant leur routage et effectuer le filtrage des paquets sortants, dans les chanes
OUTPUT des tables nat et filter. Les paquets qui se rvlent avoir le droit de sortir traversent alors de
code de routage, puis, tout comme les paquets qui ont t transfrs, passent par le point d'entre
POSTROUTING.
Figure 9-8. Trajet des paquets dans le code de filtrage
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 341


9.4.4. Configuration du noyau et installation des outils
Les fonctionnalits de Netfilter sont toutes fournies par le noyau lui-mme, aussi leur configuration
doit-elle se faire au niveau du noyau. La manire de procder pour configurer le noyau a t indique
dans le paragraphe traitant de la compilation du noyau. Les options activer pour mettre en place les
fonctionnalits de filtrage des paquets et de translation d'adresse sont les suivantes :
Network packet filtering (replace ipchains) , pour activer les fonctionnalits de filtrage
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 filtrage ;
Connection tracking (required for masq/NAT) (menu IP: Netfilter
Configuration ), 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
traitement particulier pour les translations d'adresses ;
IP tables support (required for filtering/masq/NAT) , pour permettre la gestion des
tables de Netfilter ;
Packet filtering , pour inclure le support de la table filter . Cette option est ncessaire
pour raliser un pare-feu ;
REJECT target support , pour permettre le rejet des paquets (par dfaut, seul l'abandon
des paquets est fourni dans le code de filtrage) ;
Full NAT , pour inclure la table nat de Netfilter. Cette option est ncessaire pour
raliser un partage de connexion Internet ;
MASQUERADE target support , pour permettre le masquerading afin 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 d'un paramtre global permettant de contrler le routage des
paquets IP d'une 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
afin de pouvoir utiliser votre passerelle Linux. Cela peut tre ralis en crivant la valeur 1 dans le
fichier /proc/sys/net/ipv4/ip_forward du systme de fichiers virtuel /proc/ :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 342

echo "1" > /proc/sys/net/ipv4/ip_forward
La manipulation des chanes et la manipulation des rgles de Netfilter se fait grce l'outil iptables.
Cette commande doit normalement avoir t installe par votre distribution. Toutefois, si ce n'est pas
le cas, vous pouvez la compiler manuellement. Pour cela, il vous faudra rcuprer l'archive des sources
d'iptables. Cette archive peut tre trouve sur Internet. La version courante est la 1.2.9, aussi l'archive
se nomme-t-elle iptables-1.2.6a.tar.bz2.
L'installation d'iptables ne pose pas de problme particulier en soi. Vous devrez d'abord dcompresser
l'archive avec les deux commandes suivantes :
bunzip2 iptables-1.2.9.tar.bz2
tar xf iptables-1.2.9.tar

puis modifier le fichier Makefile pour dfinir les rpertoires d'installation dans les variables LIBIR,
BINIR et MANIR. 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 l'installation avec la commande make install.
9.4.5. Utilisation d'iptables
Il est possible, grce iptables, d'effectuer toutes les oprations d'administration dsires sur les
chanes des tables de Netfilter. Vous pourrez donc crer des nouvelles chanes, les dtruire, dfinir les
politiques par dfaut, ainsi que manipuler les rgles de ces chanes (en ajouter, en supprimer ou en
remplacer une). En fait, iptables dispose d'un grand nombre d'options, et seules les options les plus
importantes 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 filtrage 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 s'applique peut tre prcise l'aide de l'option -. Si cette option n'est pas
fournie, la table utilise par dfaut sera la table filter, qui est celle qui est normalement utilise pour
dfinir des rgles de filtrage des paquets dans un pare-feu.
La cration d'une nouvelle chane se fait simplement avec l'option -N :
iptables [-t table] -N chane

o chane est le nom de la chane crer. Il est interdit d'utiliser un des mots cls rservs par iptables.
En pratique, il est recommand d'utiliser des noms de chanes en minuscules, car les chanes
prdfinies sont en majuscules.
Une chane peut tre dtruite avec l'option -X :
iptables [-t table] -X chane
Une chane ne peut tre dtruite que lorsqu'elle ne contient plus de rgle. De plus, il est impossible de
dtruire les chanes prdfinies d'une table.
Vous pouvez lister l'ensemble des rgles d'une chane avec l'option -L :
iptables [-t table] -L chane
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 343

Enfin, il est possible de supprimer toutes les rgles d'une chane avec l'option -E :
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 s'agit de la table
filter) ;
chane est le nom de la chane laquelle la rgle doit tre ajoute ;
source est l'adresse source du paquet ;
destination est l'adresse destination du paquet ;
protocole est le protocole du paquet (spcifi avec son numro de port ou par le nom du
protocole tel qu'il est dclar dans le fichier /etc/services) ;
itfsource est le nom de l'interface rseau source par laquelle le paquet doit arriver ;
itfdest est le nom de l'interface destination par laquelle le paquet doit sortir ;
et cible est la cible des paquets qui vrifient les critres de slection de la rgle.
Chacun des paramtres plac entre crochets dans la syntaxe est facultatif, mais il faut au moins qu'un
critre de slection soit donn (sur les adresses source ou destination, ou sur le port ou l'interface).
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 spcifier
directement toutes les adresses d'un rseau avec la syntaxe rseau/masque . Il est galement
possible d'utiliser 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 spcifier toutes les adresses possibles (dans ce
cas, l'adresse donne pour le rseau n'est 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 Netfilter qui ont t compils.
Les principales cibles sont les suivantes :
ACCEPT, pour accepter le paquet qui vrifie le critre de slection de la rgle ;
DROP, pour liminer purement et simplement le paquet ;
REJECT, pour rejeter le paquet (en signalant l'erreur la machine mettrice). Cette cible n'est
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 prdfinies ;
REDIRECT, pour rediriger le paquet sur une autre machine, souvent la machine locale. Cette
cible n'est utilisable qu'avec la table nat, car il s'agit d'une translation d'adresse. On ne peut
l'utiliser que dans les chanes PREROUTING et OUTPUT et les chanes utilisateur appeles
partir de ces chanes ;
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 344

SNAT, pour permettre la modification de l'adresse source du paquet. Cette cible n'est bien
entendu accessible qu'au niveau de la table nat. Comme la modification de l'adresse source n'a
de signification 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 modification de l'adresse destination du paquet, afin par exemple de
le dtourner vers une autre machine que celle vers laquelle il devait aller. Cette cible n'est
accessible que dans la table nat, et n'est utilisable que dans les chanes PREROUTING et
OUTPUT ainsi que dans les chanes utilisateur appeles partir de ces chanes ;
MASQUERADE, pour effectuer une translation d'adresse sur ce paquet, dans le but de
raliser un partage de connexion Internet. Cette cible n'est accessible que dans la chane
POSTROUTING de la table nat, ainsi que dans les chanes utilisateur appeles partir de cette
chane.
Toute autre spcification de destination doit tre le nom d'une chane utilisateur, avec les rgles de
laquelle le paquet devra tre test. Si aucune cible n'est spcifie, aucune action n'est prise et la rgle
suivante est traite. Cependant, les statistiques de la rgle sont toujours mises jour.
La suppression d'une rgle d'une 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 d'utiliser l'option - avec les mmes options
que celles qui ont t utilises lors de l'ajout de la rgle, si l'on trouve cela plus pratique.
Enfin, la politique d'une chane, c'est--dire la cible par dfaut, peut tre fixe avec l'option -P :
iptables -P chane cible

o chane est l'une des chanes prdfinie, et cible est l'une des cibles ACCEPT ou DROP. Remarquez
que l'on ne peut pas dfinir de politique pour les chanes cres par l'utilisateur, puisque les paquets
sont vrifis avec les rgles restantes de la chane appelante lorsqu'ils 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 d'iptables et de raliser un pare-feu simpliste.
9.4.6.1. Exemple de rgles de filtrage
Les rgles de filtrage peuvent tre utilises pour mettre en place un pare-feu afin de protger votre
rseau. La dfinition des rgles de filtrage constitue bien souvent l'essentiel du problme, et ncessite
bien entendu de parfaitement savoir ce que l'on veut faire. De manire gnrale, la rgle d'or en
matire de scurit informatique est de tout interdire par dfaut, puis de donner les droits au compte-
gouttes. C'est exactement ce que permet de faire la politique des chanes. On dfinira donc toujours la
politique par dfaut des chanes pour utiliser la cible DROP. Cela peut tre ralis simplement avec
les trois commandes suivantes :
# Dfinition de la politique de base :
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 345

# Suppression des rgles existantes :
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
Ces rgles commencent par dfinir les politiques de base pour toutes les tables en blindant la machine
pour qu'elle ne laisse rien entrer, ne rien passer et ne rien sortir. Toutes les rgles des tables sont
ensuite dtruites. 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 l'utilisation normale de
votre systme. Le minimum est d'autoriser la machine communiquer avec elle-mme, ce qui
implique d'autoriser les paquets provenant de l'interface loopback entrer et sortir :
# Communications locales :
iptables -A INPUT -d 127.0.0.0/8 -i lo -j ACCEPT
iptables -A OUTPUT -s 127.0.0.0/8 -o lo -j ACCEPT
Si l'on dispose d'un rseau local, il peut galement tre utile d'autoriser toutes les connexions avec les
machines de ce rseau :
# Connexions au rseau local :
iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j ACCEPT
iptables -A OUTPUT -s 192.168.0.1 -o eth0 -j ACCEPT
Comme vous pouvez le constater, ces rgles ne permettent l'entre des paquets prtendant provenir du
rseau local (c'est--dire les paquets ayant comme adresse source une adresse de la forme
192.168.0.0/24) que par l'interface rseau connecte au rseau local (dans notre exemple, il s'agit de
l'interface rseau eth0). De mme, seule la machine locale ( laquelle l'adresse 192.168.0.1 est
suppose tre affecte) peut mettre des paquets sur le rseau local.
Notez que ces rgles sont beaucoup trop restrictives pour permettre un accs Internet (et, a fortiori
une intrusion provenant d'Internet...). Il est donc ncessaire d'autoriser les connexions vers les
principaux services Internet. Pour cela, il faut ajouter les lignes suivantes :
# Autorise les communications sortantes
# pour DNS, HTTP, HTTPS, FTP, POP, SMTP, SSH et IPSec :
iptables -A OUTPUT -o ppp0 -p UDP --dport domain -j ACCEPT
iptables -A OUTPUT -o ppp0 -p TCP --dport domain -j ACCEPT
iptables -A OUTPUT -o ppp0 -p TCP --dport http -j ACCEPT
iptables -A OUTPUT -o ppp0 -p TCP --dport https -j ACCEPT
iptables -A OUTPUT -o ppp0 -p TCP --dport ftp -j ACCEPT
iptables -A OUTPUT -o ppp0 -p TCP --dport pop3 -j ACCEPT
iptables -A OUTPUT -o ppp0 -p TCP --dport smtp -j ACCEPT
iptables -A OUTPUT -o ppp0 -p TCP --dport ssh -j ACCEPT
iptables -A OUTPUT -o ppp0 -p AH -j ACCEPT
iptables -A OUTPUT -o ppp0 -p ESP -j ACCEPT

Il est suppos ici que la connexion Internet se fait via le dmon pppd, et que l'interface rseau que
celui-ci a cr se nomme ppp0.
Vous pouvez constater que les rgles prsentes jusqu'ici se basaient uniquement sur les adresses
source et destination des paquets, ainsi que sur les interfaces rseau par lesquelles ils entraient et
ressortaient. Vous voyez prsent que l'on peut raliser des rgles beaucoup plus fines, qui se basent
galement sur les protocoles rseau utiliss (que l'on peut slectionner avec l'option -p) et, pour
chaque protocole, sur des critres spcifiques ces protocoles (comme les ports source et destination,
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 346

que l'on peut slectionner respectivement avec les options --spor et --dpor). Vous pouvez
consulter la page de manuel d'iptables pour plus de dtails ce sujet.
Certains protocoles requirent plusieurs connexions TCP/IP pour fonctionner correctement. La
connexion est amorce avec une premire connexion, puis une deuxime connexion est tablie aprs
ngociation. C'est en particulier le cas pour le protocole FTP, qui utilise une connexion de contrle et
une connexion pour le transfert des donnes. De plus, le protocole FTP peut fonctionner dans deux
modes distinct (respectivement le mode dit actif et le mode dit passif ), selon que c'est le
serveur contact qui tablit la connexion de donnes ou que c'est le client qui l'tablit vers le serveur.
Ces connexions additionnelles ne doivent bien entendu pas tre filtres, pour autant, on ne sait pas
avec prcision le port qui sera choisi pour elles, car ce port fait partie de la ngociation lors de
l'tablissement de la connexion. Heureusement, Netfilter dispose d'un mcanisme de suivi de
connexions capable d'analyser les donnes protocolaires (si le protocole n'est pas chiffr, bien
entendu). La solution est donc de lui indiquer qu'il doit laisser les paquets relatifs aux connexions
tablies au niveau protocolaire. La rgle utiliser est la suivante :
# Autorise l'tablissement des connexions protocolaires additionnelles :
iptables -A OUTPUT -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Vous dcouvrez ici l'option --mach, qui permet de slectionner des paquets selon certains critres.
Le critre choisi ici est bien entendu l'tat des connexions. Des options complmentaires peuvent tre
fournis ce critre l'aide de l'option --sae. Dans le cas prsent, nous acceptons tous les paquets
sortants qui appartiennent une connexion tablie (paramtre :ESTABLISHED ) ou qui a t
amorce partir d'une autre connexion dj tablie (paramtre RELATED ).
Les rgles prcdentes permettent la machine locale de se connecter Internet, mais la connexion ne
s'tablira malgr tout pas, car aucun paquet rponse n'a le droit d'entrer. Il est donc ncessaire
d'autoriser l'entre des paquets rponse provenant des serveurs auxquels on se connecte. Toutefois, il
ne faut pas tout autoriser. Seuls les paquets relatifs aux connexions dont la machine locale est
initiatrice doivent tre autoriss. Cela est ralisable encore une fois grce au mcanisme de suivi de
connexions de Netfilter. Pour notre exemple, la simple rgle suivante suffit :
# Autorise les paquets entrants pour les connexions
# que l'on a tablies :
iptables -A INPUT -i ppp0 --match state --state ESTABLISHED,RELATED -j ACCEPT

Elle dit que les paquets entrants des connexions tablies et des connexions relatives aux autres
connexions sont autoriss. Tous les autres paquets seront refuss.
Si vous dsirez laisser un service ouvert vers Internet, vous devrez ajouter des rgles complmentaires
qui autorisent les paquets entrant et sortant destination du port de ce service. Par exemple, si vous
voulez laisser un accs SSH ouvert, vous devrez ajouter les deux rgles suivantes :
# Autorise les connexions SSH entrantes :
iptables -A INPUT -i ppp0 -p TCP --dport ssh -j ACCEPT
iptables -A OUTPUT -o ppp0 -p TCP --sport ssh -j ACCEPT
Enfin, il peut tre utile d'accepter certains paquets du protocole ICMP, qui permet de contrler l'tat
des liaisons. En particulier, il faut pouvoir recevoir les paquets indiquant qu'une machine n'est pas
accessible, faute de quoi certaines connexions impossibles risqueraient d'tre trs longues dtecter.
De plus, il peut tre intressant de pouvoir envoyer des demandes de rponse aux machines pour
vrifier leur prsence. Les rgles suivantes pourront donc tre ajoutes :
# Autorise les paquets ICMP intressants :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 347

iptables -A OUTPUT -p ICMP --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type destination-unreachable -j ACCEPT

Notez qu'il n'est thoriquement pas ncessaire de rpondre aux paquets echo-request. Je vous ai
toutefois laiss les deux rgles pour le cas o le fournisseur d'accs utiliserait ces requtes pour
dterminer si la liaison reste correcte.
9.4.6.2. Exemple de partage de connexion Internet
Le masquerading est un cas particulier de translation d'adresse source. En effet, celle-ci est couple
un suivi des connexions afin d'effectuer la translation d'adresse 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 de la table nat sera utilise pour le masquerading, parce
que c'est ce niveau que la translation d'adresse est effectue. La mise en uvre du masquerading se
fait extrmement simplement, puisqu'il suffit de spcifier que tous les paquets du rseau local sortant
de l'interface rseau connecte sur Internet doivent subir le masquerading. En gnral, l'interface de la
connexion Internet est une interface PPP, aussi la rgle utiliser est-elle simplement la suivante :
# Effectue la translation d'adresses :
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE

Cette rgle permet de raliser la translation des adresses des machines du rseau local et destination
d'Internet. Remarquez que les paquets provenant de la machine locale ne subissent pas le
masquerading, car c'est compltement inutile.
Il faut ensuite autoriser les paquets provenant des machines du rseau local traverser la passerelle.
Cela se fait avec des rgles similaires celles vues dans la section prcdente, mais adaptes pour tre
utilises dans la chane FORWARD de la table filter :
# Autorise le trafic DNS, HTTP, HTTPS,
# FTP, POP, SMTP et SSH au travers de la passerelle :
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p UDP --dport domain -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport domain -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport http -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport https -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport ftp -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport pop3 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport smtp -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o ppp0 -p TCP --dport ssh -j ACCEPT

# Autorise l'tablissement des connexions protocolaires additionnelles :
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o eth0 --match state \
--state ESTABLISHED,RELATED -j ACCEPT

# Autorise le trafic en retour pour les connexions tablies par les clients :
iptables -A FORWARD -i ppp0 -d 192.168.0.0/24 --match state \
--state ESTABLISHED,RELATED -j ACCEPT

# Autorise le trafic ICMP :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 348

iptables -A FORWARD -p ICMP --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type echo-reply -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type destination-unreachable -j ACCEPT
Enfin, le routage des paquets tant, par dfaut, dsactiv sous Linux, il faut le ractiver. Si votre
distribution ne le fait pas, vous aurez donc 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.
Certains routeurs et certaines passerelles d'Internet sont bogus et ne rpondent pas correctement aux
messages ICMP. Cela a pour consquence, entre autres, que la taille maximum des paquets transmis
via la passerelle peut ne pas tre dtermine correctement. En effet, les clients de la passerelle
utiliseront gnralement la taille maximum utilisable pour communiquer avec la passerelle, et cette
taille peut malheureusement tre suprieure la taille maximum des paquets pour atteindre certains
sites Web. Les messages d'erreurs ICMP tant filtrs, personne ne peut s'en apercevoir, et certaines
connexions peuvent rester bloques ad vitam eternam. Pratiquement parlant, cela se traduit par
l'impossibilit, pour certains clients bnficiant du partage de connexion Internet, d'accder
certains sites Web ou certains gros fichiers d'une page (images par exemple).
Pour pallier ce problme Linux propose une technique approximative, dont le but est de fixer une
option des paquets TCP d'tablissement de connexion, afin de limiter la taille des paquets suivants de
la connexion la taille maximum dtermine pour la route vers les ordinateurs cibles. Ainsi, les clients
se limitent d'eux-mme, pourvu que la taille maximum des paquets de la route soit correctement
dtermine, bien entendu. Il est recommand d'activer cette fonctionnalit, ce qui se fait l'aide de la
commande suivante :
# Restreint la taille des paquets des connexions TCP
# lors de leur tablissement :
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp0 \
--clamp-mss-to-pmtu

Cette rgle un peu complique permet de modifier le champ MSS ( Maximum Segment Size ) des
paquets d'tablissement des connexions TCP (paquets disposant des flags TCP SYN ou RST) qui
traversent la passerelle, et de forcer ce champ la valeur de la taille maximum des paquets sur le
chemin ( Path Maximum Transmission Unit dans l'option --c1amp-mss-o-pmu).
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 redfinir systmatiquement.
Cela peut tre ralis dans les scripts de dmarrage de votre systme. Vous pouvez galement utiliser
les commandes iptables-save et iptables-restore pour sauvegarder toutes les chanes et leurs rgles
dans un fichier et les restaurer au dmarrage.
N'oubliez pas que votre passerelle doit dfinir une route par dfaut pour que tous les paquets qui ne
sont pas destins au rseau local soient envoys par l'interface rseau connecte Internet. Cette route
par dfaut est tablie automatiquement lorsque vous vous connectez Internet l'aide de PPP. Dans
les autres cas, vous aurez la dfinir manuellement.
9.4.7. Configuration des clients
La configuration des autres machines du rseau est trs simple. Vous devrez tout d'abord dfinir la
machine possdant la connexion Internet comme passerelle par dfaut de tous vos postes clients.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 349

Cette opration peut se raliser de diffrentes manires selon le systme d'exploitation utilis par ces
machines. Sous Linux, il suffit d'utiliser la commande suivante :
route add default gw passerelle eth0

O passerelle est l'adresse de votre passerelle vers Internet sur le rseau local. Cette commande
suppose que l'adaptateur rseau utilis est eth0
La deuxime tape est ensuite de donner accs aux postes clients au DNS de votre fournisseur d'accs.
Cela permettra en effet d'utiliser 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 suffit d'ajouter les adresses
IP des serveurs de noms de domaine de votre fournisseur d'accs dans le fichier de configuration
/etc/resolv.conf.
Si les clients ont des difficults accder certaines pages Web, c'est que le MTU ( Maximum
Transmission Unit , taille maximum des paquets rseau) est trop lev. Ceci se corrige gnralement
tel qu'on l'a indiqu dans la dfinition des rgles de la passerelle. Toutefois, si les ordinateurs qui
bnficient du partage de connexion Internet continuent d'avoir des problmes, c'est que le MTU de
la route permettant d'accder aux sites Web posant problme n'a pas pu tre dtermin correctement.
Dans ce cas, il faut le trouver soi-mme, et le fixer dans la configuration rseau des clients. Pour cela,
le plus simple est d'utiliser la commande ping avec son option -s sur les clients, avec plusieurs tailles
de paquets possible. La taille maximum est de 1500 octets sur Ethernet. En gnral, une taille de 1400
octets convient :
ping -s 1400 adresse

Une fois le MTU correctement dtermin, il suffit de fixer cette valeur lors de la configuration des
interfaces rseau des clients :

ifconfig interface mtu taille

interface reprsente ici l'interface configurer, et taille la taille maximum trouve l'aide de ping.
Note : La taille effective du MTU est en ralit la taille fournie la commande ping plus vingt-huit
octets, car les paquets utiliss contiennent toujours l'en-tte ICMP en plus des donnes gnres par
ping.
9.5. Configuration de la scurit du rseau
La scurit d'un rseau n'est pas quelque chose prendre la lgre, surtout lorsqu'on commence
transmettre des donnes personnelles sur le rseau. Internet n'est absolument pas sr, car nombre de
personnes curieuses, peu discrtes ou franchement mal intentionnes ont un accs privilgi aux
machines qui s'y trouvent. Il est donc essentiel de prendre les problmes scuritaires trs au srieux,
d'autant plus que Linux est un systme disposant d'un grand nombre de fonctionnalits serveur.
Bien qu'il 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, c'est qu'on va aller droit dans le
mur. Entre ne rien faire du tout et se fixer un niveau de scurit raisonnable permettant de limiter les
dgts, il y a un grand pas. Cette section n'a donc pas pour but de vous transformer en expert en
scurit (n'en tant pas un moi-mme, je serais bien incapable d'en crire une ayant cet objectif), mais
de vous prsenter les principes de base et le minimum requis pour laisser les mauvaises surprises aux
autres.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 350

L'un des principes de base de la scurit est de ne faire confiance personne. Ce n'est pas un
comportement paranoaque, mais simplement du bon sens : la plupart des surprises dsagrables dans
le monde environnant proviennent du mauvais jugement des personnes. De plus, mmes des personnes
de bonne foi peuvent tre manipules par un tiers sans qu'elles s'en rendent compte.
Partant de se constat, et quand bien mme on serait capable de garantir la fiabilit d'un systme
100%, il est ncessaire de limiter et de cloisonner les services fournis, et d'en restreindre l'accs aux
personnes habilites. Cela est d'autant plus important que la plupart des dmons ont besoin d'avoir les
privilges du compte root pour s'excuter. Cela peut tre dramatique si d'aventure une personne mal
intentionne dcouvrait le moyen de les dtourner de leur fonction initiale et de leur faire accomplir
des tches au nom de l'administrateur. Bien entendu, les dmons sont des programmes trs bien crits,
qui vrifient 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. Autant liminer directement le problme en ne lanant que les services rellement
ncessaires sur votre machine.
De plus, il va de soi que lorsqu'il y a un loup dans la bergerie, tout peut aller trs mal trs vite. La
scurit doit donc tre mise en place en profondeur, c'est--dire que l'on ne doit pas ngliger la
scurisation d'un rseau local sous prtexte qu'il est protg par des dispositifs en amont. En effet, ces
dispositifs peuvent trs bien tre dfaillants, et dans ce cas, l'intrus se retrouve directement en terrain
conquis. C'est pour cela qu'il faut prvoir plusieurs remparts pour se protger.
En outre, rien n'est jamais fig dans le domaine de la scurit. De nouvelles attaques sont dveloppes
rgulirement, et de nouvelles failles sont dcouvertes dans les logiciels quasiment quotidiennement. Il
est donc ncessaire de raliser un tant soi peu de veille et de mettre jour les systmes rgulirement.
Enfin, la scurit ne peut se concevoir que dans un contexte global, en prenant compte
l'environnement dans lequel on se trouve. Il est tout fait inutile d'utiliser des systmes
d'authentification par analyse de code gntique pour protger des documents ultra sensibles, si ces
documents peuvent tre sortis simplement par les poubelles.
En rsum, les principes fondamentaux de la scurit sont les suivants :
il faut limiter le nombre des services lancs au strict minimum ;
il faut en restreindre l'accs aux seules personnes autorises ;
il faut tre proactif, se tenir au courant et mettre jour les logiciels ds l'apparition des
correctifs de scurit ;
il faut prvoir plusieurs systmes de scurit ;
il faut prendre en compte les problmes de scurit de manire globale.
De tous ces points, nous ne traiterons ici que ceux qui concernent un systme de particulier. La mise
jour des logiciels et des antivirus reste bien entendu extrmement importante (surtout si des machines
Windows sont places sur le rseau), mais n'appelle pas beaucoup de commentaires. La description de
la ralisation d'un pare-feu a galement dj t faite dans la section prcdente. Nous ne prsenterons
donc que la manire de limiter les services lancs et l'accs ces services. Cela n'est toutefois pas
suffisant pour dormir tranquille car, et c'est sans doute l l'un des plus gros problmes, la plupart des
protocoles rseau ne chiffrent pas leur donnes et laissent passer toutes les informations en clair sur le
rseau, y compris les mots de passe ! Nous verrons donc galement les principales techniques de
cryptographies existantes afin de rendre les communications plus sres.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 351

9.5.1. Limitation des services et des accs
9.5.1.1. Rduction du nombre des services
Les services rseau d'un systme Linux sont nombreux, mais la plupart du temps inutiles pour l'emploi
que l'on 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
suffit de commenter les lignes des services inutiles dans le fichier /etc/inetd.conf ou d'ajouter une ligne
disable = true dans les fichiers de configuration des services inutiles du rpertoire /etc/xinetd.d/ si
votre distribution utilise le super-dmon xinetd. Faire le mnage dans ces fichiers et dans les fichiers
d'initialisation du rseau rduit donc de 90% les risques d'une intrusion dans votre systme.
9.5.1.2. Dfinition de rgles de contrle d'accs
Restreindre le nombre de services accessibles n'est toutefois pas suffisant, il faut galement restreindre
le nombre des personnes et des machines auxquels les services rseau restants sont proposs. Sur une
machine de particulier, l'quation est souvent simple : personne ne doit pouvoir s'y connecter par le
rseau, pour quelque service que ce soit ! Bien entendu, certains particuliers possdent un rseau priv
et devront donc affiner cette rgle pour ne permettre les connexions que sur le rseau local. Il faut
donc tre capable d'empcher les accs provenant de certaines machines, considres comme peu
fiables. 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 dfinir
les adresses des machines autorises se connecter de manire prcise, inetd ne permet pas de le faire
lui-mme et requiert l'aide d'un autre dmon, le dmon tcpd.
9.5.1.2.1. Restrictions d'accs avec tcpd
Le principe de fonctionnement du dmon tcpd est le suivant : il s'intercale entre le super-dmon inetd
et les dmons que celui-ci est suppos lancer lorsqu'un client le demande. Ainsi, il lui est possible
d'effectuer des vrifications de scurit primaires, principalement bases sur les adresses IP des
clients.
Comme vous pouvez sans doute le constater dans le fichier /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 l'autorisation, ainsi que les paramtres
communiquer ce dmon. L'accs quasiment tous les services est donc contrl par tcpd.
tcpd utilise les deux fichiers de configuration /etc/hosts.allow et /etc/hosts.deny pour dterminer si une
machine a le droit d'accder un service donn. Le premier de ces fichiers indique quelles sont les
machines autorises utiliser certains services locaux. Le deuxime fichier 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 fichiers est identique. Il est constitu de lignes permettant de dfinir les rgles
d'accs 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 d'adresses 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.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 352

Une rgle dfinie par une de ces lignes est utilise ds qu'une des machines indiques dans la liste des
machines tente une connexion l'un des services de la liste des services. Si la rgle se trouve dans le
fichier /etc/hosts.allow, la connexion est autorise et le service est lanc par tcpd. Si elle se trouve dans
le fichier /etc/hosts.deny, la connexion est systmatiquement refuse. Si aucune rgle n'est utilise, la
connexion est accepte par dfaut.
Les listes de machines peuvent contenir des noms de machines partiels, et utiliser des caractres
gnriques. Il est galement possible d'interdire la connexion toutes les machines d'un domaine en ne
donnant que le nom de domaine (prcd d'un point). Enfin, des mots cls spciaux permettent de
reprsenter des ensembles de machines. Par exemple, le mot cl ALL reprsente toutes les machines et
LOCAL reprsente toutes les machines du rseau local. Le mot cl ALL permet galement de
reprsenter l'ensemble des dmons dans la liste des dmons.
Par exemple, le fichier /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 n'est accepte, ce qui est un
comportement sain. Les machines ayant le droit de se connecter doivent tre spcifies au cas par cas
dans le fichier /etc/hosts.allow, comme dans l'exemple suivant :
# Exemple de fichier /etc/hosts.allow :
telnetd, ftpd : LOCAL
Cela permet d'autoriser les connexions telnet et ftp pour toutes les machines du rseau local
uniquement.
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 fichier de configuration
/etc/inetd.conf utilisant tcpd et celles qui ne l'utilisent 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 l'accs, et non son propre nom.
La scurit base sur tcpd suppose que les adresses IP source des paquets reus sont effectivement les
adresses IP des machines qui les ont envoyes. Malheureusement, cette hypothse ne peut pas tre
vrifie pour les adresses autres que les adresses des rseaux considrs comme srs (par exemple le
rseau local), car le protocole IP n'inclut aucun mcanisme d'authentification. Par consquent,
n'importe qui peut tenter de communiquer avec votre machine au nom d'une autre machine (technique
nomme IP spoofing en anglais), qu'il aura au pralable mis hors d'tat 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 vrifiant que le nom indiqu par la machine qui se connecte
correspond bien l'adresse IP qu'elle utilise. Ainsi, pour passer cette protection, il faut d'abord infecter
un DNS. Cependant, ce genre d'attaque (dite d'interposition) reste courant, surtout sur les rseaux dont
les DNS sont insuffisamment protgs (une tude rcente a montr que c'tait le cas de trois DNS sur
quatre en France). Par consquent, vous ne devez pas vous reposer uniquement sur tcpd et les
techniques de pare-feu si vous devez crer un site rellement sr. En particulier, vous devriez vous
intresser aux rseaux virtuels et au chiffrement des donnes, choses que l'on dcrira dans la Section
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 353

9.5.2.2. Le protocole Ipv6 intgrera des mcanismes d'authentification 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
superflue, tant donn que xinetd permet de dfinir ses propres rgles de contrle d'accs.
9.5.1.2.2. Restrictions d'accs avec xinetd
Le super-dmon xinetd intgre d'office un mcanisme de contrle d'accs similaire celui utilis par
tcpd. Grce aux options on1y_from et no_access, il est possible de spcifier pour chaque service
les machines qui sont autorises l'utiliser, ou inversement les machines qui doivent tre
explicitement rejetes.
Il faut toutefois prendre garde au fait que, comme pour tcpd, ne rien dire signifie accepter les
connexions provenant de toutes les machines. La rgle d'or est donc, encore une fois, de tout interdire
par dfaut et d'autoriser au compte-gouttes les accs aux services ouverts. Pour cela, il suffit d'ajouter
la ligne suivante :
only_from =

dans la section de dfinition des options par dfaut de xinetd. Avec cette ligne, contrairement ce qui
se passe si rien n'est spcifi, les accs ne sont autoriss qu' partir d'aucune 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 configuration de xinetd.
On prendra garde galement au fait que xinetd implmente quelques services internes permettant de
l'administrer 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 fichier de configuration /etc/xinetd.conf.
9.5.1.3. Contrle des utilisateurs au niveau des services
Certains services ne peuvent pas tre supprims compltement, tout simplement parce que l'on peut en
avoir besoin. Dans ce cas, il faut au moins s'assurer que l'accs ces services n'est autoris que pour
les utilisateurs qui en ont rellement besoin. La rgle est cette fois que l'utilisateur 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 s'il arrive trouver le mot de passe d'un utilisateur normal, il lui restera encore pas
mal de boulot pour trouver le mot de passe de l'utilisateur 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 d'entre pour qui
peut trouver un mot de passe valide. Il est impratif ici d'interdire une telle connexion l'utilisateur
root. Il reste toutefois concevable que cet utilisateur puisse se connecter sur la console locale (c'est--
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 354

dire, avec votre clavier et votre cran...). Il est donc ncessaire de choisir les terminaux partir
desquels l'utilisateur root pourra se connecter. Ces informations sont stockes dans le fichier de
configuration /etc/securetty.
Le format de ce fichier est trs simple, puisqu'il est constitu de la liste des terminaux partir desquels
l'utilisateur root peut se connecter, raison d'un terminal par ligne. Un fichier de configuration
/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 fichier les autres terminaux (en particulier, les terminaux
srie ttyS0 et suivants).
Un autre service sensible est le service de tlchargement de fichiers. Il est recommand d'interdire
aux utilisateurs privilgis les transferts de fichiers par FTP. En effet, si une personne parvient
accder au systme de fichiers, il peut supprimer tous les mcanismes de scurit. De la mme
manire que l'on a interdit l'utilisateur root de se connecter sur les terminaux distants, il faut lui
interdire (ainsi qu'aux autres comptes sensibles) les connexions par FTP.
Cette opration peut tre ralise en ajoutant le nom de chaque utilisateur sensible dans le fichier de
configuration /etc/ftpusers. Ce fichier a la mme structure que le fichier securetty, puisqu'il faut donner
un nom d'utilisateur 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 fichier /etc/ftpusers fourni avec cette distribution est donc, en gnral, appropri.
9.5.2. Chiffrement des communications
Les protocoles rseau de haut niveau ne garantissent en gnral pas la confidentialit des donnes
qu'ils transmettent sur le rseau, ce qui signifie qu'elles peuvent tre lues par tout le monde. Ils nen
garantissent pas non plus l'intgrit, chacun pouvant les modifier volont et fausser ainsi la
communication. Ces dfauts sont incurables, car ils sont en ralit inhrents au protocole IP lui-mme.
En effet, ce protocole a t conu initialement pour assurer l'acheminement des informations, et les
protocoles de haut niveau bass sur lui se contentent gnralement de la garantie de livraison.
Note : La confidentialit des donnes est le fait que seules les personnes autorises peuvent y accder.
L'intgrit des donnes est le fait que les donnes n'ont pas t altres ou modifies de manire non
autorise. Enfin, l'authenticit des donnes est le fait que les donnes sont certifies comme provenant
bien de celui qui prtend en tre l'metteur.
Gnralement, le moyen le plus sr pour garantir la confidentialit des donnes est de les chiffrer de
telle sorte que seuls les destinataires autoriss puissent les dchiffrer et donc y accder. C'est pour
cette raison que la cryptographie, ou science du chiffrement, est souvent utilise pour rsoudre les
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 355

problmes de scurit informatique. Mais la cryptographie fournit galement les techniques
ncessaires pour assurer l'intgrit des donnes, gnralement en calculant une empreinte ou condens
cryptographique des donnes. En effet, les algorithmes de calcul des empreintes sont conus pour
fournir des rsultats trs diffrents mme si les donnes ne sont modifies que trs lgrement. Ainsi,
si une personne mal intentionne modifie un tant soit peu les donnes, le recalcul de l'empreinte
associe indiquera tout de suite la supercherie. Enfin, l'authenticit des donnes peut tre assure en
faisant en sorte que leur metteur puisse prouver son identit. Cela se fait gnralement en exigeant
qu'il puisse rpondre une question dont on sait que lui seul connat la rponse. Toute la difficult est
alors de trouver un systme d'authentification o celui qui pose la question ne doit lui-mme pas en
connatre la rponse (faute de quoi celui qui pose la question pourrait se faire passer pour celui qui doit
rpondre !).
Note : Il est vident que pour garantir la confidentialit et l'authenticit des donnes, il faut garantir
l'authenticit des interlocuteurs. En effet, sans cela, une tierce personne pourrait s'intercaler entre deux
interlocuteurs et faire croire chacun qu'il est l'autre. Mme dans un canal de communication chiffr,
cette personne serait en mesure de dchiffrer les messages dans les deux sens, voire mme de les
modifier et d'en recalculer les empreintes. Cette technique d'interposition s'appelle l'attaque du man
in the middle ( l'homme du milieu en Franais)
Il est donc ncessaire, du fait des faiblesses des protocoles rseau standards, de recourir des solutions
cryptographiques pour fournir les services de confidentialit, d'authenticit et d'intgrit des donnes.
Parmi ces solutions, les plus utilises sont sans doute le protocole SSH (abrviation de l'anglais
Secure SHell ) et l'extension IPSec au protocole IP. Cette extension a initialement t dveloppe
pour le successeur du protocole IP, savoir le protocole IPv6, mais a galement t adapte pour
fonctionner avec l'implmentation actuelle d'IP.
9.5.2.1. Principes de base de cryptographie
Tout d'abord, commenons par quelques dfinitions, beaucoup d'articles disponibles actuellement
utilisant un vocabulaire imprcis. Le chiffrement (galement appel tord cryptage), est l'opration
qui consiste transformer une information en clair en une information code afin d'viter qu'elle ne
puisse tre utilise par une personne non autorise. Le dchiffrement est l'opration inverse du
chiffrement, qui permet donc de retrouver l'information initiale partir de l'information code. Le
dcryptage est l'opration qui consiste dchiffrer une information sans y tre autoris. La
cryptographie est la science qui se charge d'tudier la manire de chiffrer les informations. La
cryptoanalyse est l'tude des moyens de dcryptage. Cette science va de paire avec la cryptographie,
puisqu'elle permet de dterminer la fiabilit des techniques mises en uvre pour le chiffrement. Enfin,
un pirate (galement appel cracker ) est une personne dsirant s'introduire de manire illicite dans
un systme, ou dsirant dtourner une application de son contexte d'utilisation 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
des hackers).
Il existe un grand nombre de techniques de cryptographie, qui sont plus ou moins efficaces. La
premire 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 d'algorithmes ayant un effet inverse l'un de
l'autre) pour chiffrer une information. Dans ce cas, la scurit des donnes est assujettie au maintien au
secret de l'algorithme utilis. Il est vident que ce type de technique n'est pas utilisable avec les
logiciels dont les sources sont diffuses (comme Linux), puisque l'algorithme est alors connu de tout le
monde. C'est galement la technique la moins sre, parce qu'il est en gnral trs facile de dterminer
cet algorithme. Un exemple d'un tel algorithme est le codage classique qui consiste dcaler toutes les
lettres de l'alphabet (A devient B, B devient C, etc.).
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 356

Une autre technique se base sur un algorithme connu de tout le monde, mais dont l'effet est paramtr
par une clef tenue secrte. Le dchiffrement des informations ne peut se faire que si l'on connat cette
clef. Les algorithmes de ce type sont souvent qualifis de symtriques , en raison du fait que la clef
utilise pour le dchiffrement est la mme que celle utilise pour le chiffrement. Cette technique n'est
satisfaisante que dans la mesure o les personnes qui communiquent peuvent s'changer 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 chiffr (mais dans ce cas,
il faut changer la clef de dchiffrement du canal, et on se retrouve devant le problme de l'uf et de
la poule), soit l'aide d'un protocole d'change de clef sr. Les algorithmes de ce type sont galement
connus sous le nom d'algorithmes clef secrte en raison de cette particularit. Il existe un grand
nombre d'algorithmes clef secrte, les plus connus tant DES, AES et IDEA.
Figure 9-9. Algorithme de chiffrement symtrique

La technique la plus sre actuellement, et aussi la plus ruse, est d'utiliser un algorithme de
chiffrement asymtrique. la diffrence des algorithmes symtriques, les algorithmes asymtriques
utilisent deux clefs diffrentes et duales pour le chiffrement et le dchiffrement. Ces algorithmes se
basent sur des fonctions mathmatiques dont la fonction inverse est extrmement difficile dterminer
sans une information galement difficile calculer. Cette information fait office de clef permettant de
retrouver l'information 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
risqu. En fait, seule la clef de chiffrement doit (et peut sans crainte) tre publie. C'est en raison de
cette proprit que les algorithmes asymtriques sont galement appels algorithmes clef publique.
Le principe des algorithmes asymtriques est 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. Toute personne qui dsire communiquer avec le propritaire de la
clef publique utilise celle-ci pour chiffrer les informations qu'il doit lui transfrer. Ainsi, du fait que
seul le destinataire dispose de la clef de dchiffrement (sa clef prive), il est le seul pouvoir rcuprer
ces informations. Il est donc possible d'changer des informations de manire sre avec tous les
intervenants en utilisant simplement leurs clefs publiques respectives. Aucun change d'information
sensible n'est effectu en clair. Les algorithmes clef publique les plus connus sont RSA et DSA.
Figure 9-10. Algorithmes de chiffrement asymtriques
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 357


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 d'amorcer une communication
avec un algorithme clef publique, comme RSA par exemple, puis de l'utiliser 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
l'algorithme Diffie Hellman.
Enfin, il existe des algorithmes de chiffrement sens unique qui ne permettent pas de retrouver
l'information initiale, mais qui sont utiliss pour calculer une empreinte des informations transfrer.
Cela permet d'identifier l'information de manire unique. Ces algorithmes sont donc souvent utiliss
pour garantir l'intgrit des donnes diffuses dans un environnement peu sr. Pour cela, celui qui
ralise la diffusion chiffre un condens des informations diffuses avec sa clef prive. Tout le monde
peut donc dchiffrer ce condens avec la clef publique de cette personne, et vrifier que le message
qu'ils reoivent a bien la mme empreinte. Chacun a donc la certitude que le message provient bien de
son auteur, car toute modification du message changerait son empreinte d'une part, et il est impossible
de chiffrer cette nouvelle empreinte sans connatre la clef prive de l'expditeur. Les algorithmes de
calcul d'empreinte les plus connus sont MD5 et SHA.
Note : Notez que les algorithmes de chiffrement clef publique ncessitent toujours que l'on soit sr
que l'on utilise la bonne clef publique pour s'adresser une personne. Or, rien ne nous garantit que la
clef publique d'une personne diffuse sur le rseau provienne bien de cette personne ! Il est donc
toujours ncessaire d'changer les clefs publiques de main main, avec vrification de l'identit de la
personne avec qui l'change se fait. Il est galement possible de recourir une tierce personne digne de
confiance et dont on connat dj la clef publique pour garantir que la clef que l'on reoit est bien celle
de la personne qui prtend en tre le propritaire. On peut ainsi construire ce qu'on appelle un rseau
de confiance , dans lequel chacun sait que quelqu'un en qui il a confiance, directement ou
indirectement, a authentifi ses interlocuteurs.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 358

Bien entendu, tout cela est contraignant. Mais, contrairement aux algorithmes de chiffrement clef
secrte, il n'est pas grave de perdre les clefs changes avec les algorithmes asymtriques, puique ces
clefs sont destines tre publiques...
9.5.2.2. Utilisation de SSH
SSH est en ralit un protocole de communication rseau chiffr coupl d'une suite d'outils permettant
de l'utiliser. SSH a t initialement dvelopp par une socit commerciale, qui diffusait les outils en
Open Source et gratuitement pour les particuliers. Ces outils n'taient toutefois absolument pas libres.
Une implmentation libre a donc t dveloppe pour le systme FreeBSD, puis porte pour les autres
systmes d'exploitation, dont Linux. Cette implmentation est celle qui est utilise par la plupart des
distributions actuellement, il s'agit de OpenSSH . Nous ne dcrirons ici que l'utilisation
d'OpenSSH.
Pour garantir la confidentialit des donnes, SSH utilise des techniques de cryptographie avances.
Ces techniques permettent de s'assurer que personne ne peut lire les informations qui circulent sur le
rseau d'une part, et de garantir l'authentification des machines auxquelles on se connecte d'autre part.
De plus, SSH permet de rediriger les protocoles rseau non chiffrs 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 d'y
excuter des commandes. Les applications ainsi rendues obsoltes sont, entre autres, telnet, rlogin et
rsh. Enfin, SSH est galement utilisable pour chiffrer automatiquement les connexions X11, ce qui
permet d'utiliser l'environnement graphique X Window distance en toute scurit.
Note : Officiellement, il est interdit d'utiliser en France des techniques de chiffrement 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 n'ont pas encore abouti. Plus prcisment, le
gouvernement a pris position pour une libralisation de l'usage de la cryptographie, mais la loi n'a pas
encore t vote. Les sinistres vnements du 11 novembre 2001 risquent fort de retarder encore, si ce
n'est de compromettre, cette libralisation. En effet, l'argument principal des opposants cette
lgalisation est qu'elle permettrait aux truands de chiffrer leurs communications. L'argument est bien
entendu fallacieux : comme s'ils attendaient d'en 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 s'agit de la version de Bernard Perrot, nomme SSF , que l'on pourra
trouver l'adresse http://perso.univ-rennes1.fr/bernard.perrot/SSF/index.html. Si vous dsirez
absolument tre sans reproche vis vis de la loi actuellement en vigueur en France, vous devriez
remplacer la version d'OpenSSH fournie avec votre distribution (dont l'usage est donc illgal) par SSF.
Sachez cependant que SSF restreint la taille des clefs de sessions 128 bits seulement d'une part
(condition sine qua non pour qu'on puisse l'utiliser), qu'il n'est pas utilisable commercialement, et qu'il
est susceptible de ne pas tre jour en ce qui concerne les correctifs de bogues et les failles de scurit
que l'on a pu trouver rcemment dans SSH ou OpenSSH. La scurit apporte par SSF est donc trs
relative, mais c'est 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 d'un 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 l'authentification des machines et des utilisateurs et est nettement plus
fiable. Aucune attaque n'a permis de le casser ce jour, sachez toutefois qu'il existe encore des points
douteux dans ce protocole qui permettraient, en thorie, de parvenir s'immiscer dans une
communication ou d'en 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 359

trous de scurit qu'un attaquant peut utiliser. De nombreuses attaques ont t dcouvertes ces derniers
temps, aussi est-il recommand de s'assurer que l'on dispose de la dernire version d'OpenSSH. La
dernire version stable est la 3.7.1p1 (les versions antrieures doivent tre vites tout prix). Cela dit,
mener une attaque contre SSH relve le niveau de difficult nettement au dessus de ce qui est
ncessaire pour pntrer un systme qui ne l'utilise pas.
9.5.2.2.1. Principes de base de l'authentification SSH
La grande difficult dans les mcanismes d'authentification est d'tre capable de prouver son identit
sans fournir suffisamment d'information pour que quelqu'un d'autre puisse se faire passer pour soi par
la suite. La technique du mot de passe utilise par les systmes Unix est absolument insuffisante pour
des communications 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. En effet, les mcanismes d'authentification comparent
souvent une empreinte du mot de passe avec l'empreinte stocke dans les fichiers de dfinition des
mots de passe, mais rien n'empche un intrus de capter cette empreinte et de l'utiliser directement pour
s'authentifier si l'on utilise la mme technique en rseau. Il n'a mme pas besoin de connatre le mot de
passe en clair (cette technique est connue sous le nom d'attaque par rejeu , car l'attaquant se
contente dans ce cas de rejouer la squence d'authentification). Une solution contre le rejeu est de
demander la personne que l'on cherche authentifier de chiffrer un message alatoire avec son mot
de passe ou son empreinte, et de vrifier que le rsultat qu'il renvoie est bien celui attendu, en chiffrant
le mme message de son ct. Cette technique est toutefois toujours vulnrable l'attaque de l'homme
du milieu, et elle souffre de l'norme dfaut que l'on doit stocker l'empreinte de son mot de passe sur
tous les ordinateurs auxquels on dsire se connecter. Cela multiplie d'autant les points de faiblesse : si
un pirate s'introduit sur une seule machine, il obtient toutes les empreintes des mots de passe et peut
donc se faire passer pour tout le monde !
SSH ne transmet donc ni les mots de passe, ni leurs condenss, en clair sur le rseau. Il tablit d'abord
un canal de communication chiffr l'aide d'un des algorithmes d'change de clef (la technique utilise
dpend de la version utilise du protocole SSH). Une fois le canal chiffr tabli, la machine serveur est
authentifie l'aide 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 authentifie comme tant bien celle de
ce serveur. Inversement, le client peut tre authentifi par le serveur. SSH fournit plusieurs possibilits
pour cela, les deux plus courantes tant l'authentification par mot de passe et l'authentification par un
algorithme clef publique.
L'authentification 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
chiffr, vers un serveur authentifi. La scurit de ce mot de passe est donc garantie, et l'attaque de
l'homme du milieu de fonctionne plus. Ce type d'authentification permet donc d'utiliser SSH
exactement comme les commandes classiques rsh ou telnet. L'utilisation de SSH est donc
compltement transparente pour les utilisateurs.
Cela dit, il est possible de faciliter encore plus l'authentification des clients tout en augmentant le
niveau de scurit, en utilisant galement l'authentification par clef publique pour les utilisateurs. Dans
ce mode d'authentification, chaque utilisateur dispose galement d'un couple de clefs prive et
publique. Les clefs publiques de ces utilisateurs sont diffuses dans les comptes des utilisateurs au
niveau du serveur. Ainsi, il n'est plus ncessaire de fournir un mot de passe, car le serveur peut
authentifier l'utilisateur du seul fait qu'il est le seul connatre sa clef prive. La connexion est donc
automatique (une fois le serveur correctement configur, bien entendu) et aucun change d'information
sensible comme le mot de passe n'est ralis (mme si le fait que cet change tait ralis dans un
canal chiffr par SSH tait dj une bonne garantie).
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 360

Les clefs prives et publiques sont bien entendu stockes sur disque, dans les fichiers de configuration
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 d'accs sur les fichiers de
configuration doivent donc tre fixs de manire correcte pour garantir la scurit du systme. En fait,
le point faible du mcanisme d'authentification des clients est toujours au niveau des utilisateurs, qui
peuvent perdre leur clef prive ou la communiquer d'autres sans mme savoir qu'ils font une erreur
fondamentale (de la mme manire qu'ils peuvent choisir un mot de passe trop facile trouver ou
simplement le communiquer une tierce personne). C'est pour cela qu'il est possible de chiffrer les
clefs prives avec un algorithme de chiffrement symtrique. L'utilisateur doit, dans ce cas, fournir une
phrase clef chaque fois qu'il dsire raliser une connexion SSH.
9.5.2.2.2. Compilation et installation d'OpentSSH
Comme nous l'avons dit plus haut, il est recommand d'utiliser la dernire version d'OpenSSH,
savoir la version 3.7.1.p1. Il est probable que votre distribution fournisse une mise jour sur son site,
et il est recommand d'utiliser ces mises jours.
Si, toutefois, vous dsirez effectuer l'installation partir des fichiers sources, vous pourrez procder
comme suit. Il vous faudra rcuprer l'archive des fichiers sources en premier lieu sur le site
OpenSSH. Pour Linux, il faut prendre l'archive 3.7.1p1, le 'p' signifiant ici qu'il s'agit d'un 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 configurer OpenSSH pour qu'il remplace la version existante dans votre
systme. Elle indique galement que le support du dmon tcpd doit tre activ, ainsi que celui des
modules d'authentification PAM (options --wih-cp-wrapppers et --wih-pam ).
Bien entendu, si votre distribution n'utilise pas ces fonctionnalits, vous devez supprimer ces options.
La compilation et l'installation en soi ne posent pas de problme particulier. Pour les raliser, il vous
suffira d'excuter les deux commandes suivantes :
make
make install

Vous constaterez que le programme d'installation gnre automatiquement des fichiers de clefs
publiques 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 d'installer SSH. Ce
compte est en effet utilis par le dmon sshd pour raliser les communications rseau une fois la phase
d'authentification ralise. Cela permet de garantir que, mme en cas d'exploitation d'une ventuelle
faille de scurit du dmon sshd, l'accs la machine sera extrmement limit.
9.5.2.2.3. Configuration d'OpenSSH ct serveur
OpenSSH utilise un dmon nomm sshd pour prendre en charge les requtes de connexion de la part
des clients. Ce dmon est l'coute des demandes de connexion et effectue les oprations
d'authentification du serveur auprs des clients. Il vrifie galement les droits du client avant de le
laisser utiliser la connexion chiffre.
Le dmon sshd utilise un fichier de configuration gnral /etc/sshd_config et plusieurs fichiers
contenant les clefs publiques et prives de la machine pour les diffrents protocoles cryptographiques
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 361

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 fichiers pour les clefs du
serveur (un premier fichier lisible par tous les utilisateurs, pour la clef publique, et un fichier lisible
uniquement par l'utilisateur root, pour la clef prive), il peut exister au total six fichiers de clefs. Ces
fichiers 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 fichiers de clefs du serveur ont t crs automatiquement lors de l'installation de
SSH. Cependant, si vous installez SSH partir d'une 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]

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 l'option -, les clefs gnres tant forcment
des clefs RSA.
Lorsque l'on invoque la commande ssh-keygen, celui-ci demande le chemin du fichier dans lequel la
clef prive doit tre crite. Le fichier contenant la clef publique aura le mme nom, mais portera
l'extension .pub. Vous devez donc saisir le chemin du fichier correspondant au type de clef gnr.
ssh-keygen demande ensuite le mot de passe utiliser pour le chiffrement de la clef prive. Dans le
cas d'un 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 fichiers de clefs du serveur gnrs, vous pouvez vous intresser au fichier de
configuration sshd_config. Ce fichier de configuration contient un certain nombre d'options qui
indiquent les paramtres que le dmon doit utiliser. Vous trouverez ci-dessous un exemple de fichier
de configuration :
# 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 d'authentification utilisables :

# Authentification par clef publique :
RSAAuthentication no
PubkeyAuthentication yes

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 362

IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no

# Authentification par mot de passe :
PasswordAuthentication no
PermitEmptyPasswords no

# Options gnrales :

# L'utilisateur root ne doit pouvoir se loguer qu'en local :
PermitRootLogin no

# Utilise le compte non privilgi sshd
# pour les communications rseau :
UsePrivilegeSeparation yes

# On n'autorise 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 d'options sont disponibles. Les options Ror et
LisenAddress permettent de dfinir l'adresse IP sur laquelle le dmon sshd se mettra en attente
de demandes de connexion, ainsi que le port TCP utilis pour cela. L'adresse 0.0.0.0 signifie ici qu'il
doit se mettre en attente sur toutes les adresses de la machine. L'option KeepA1ive permet de
demander au dmon de vrifier rgulirement que la liaison est toujours valide, afin de fermer les
connexions automatiquement en cas d'arrt du client. L'option Rrooco1 permet de spcifier les
versions utilisables du protocole SSH. La version 1 tant obsolte, on spcifiera systmatiquement la
valeur 2 ici. L'option HosKey permet, comme son nom l'indique, de donner les noms des fichiers
contenant les clefs pour les diffrents protocoles d'authentification. Les options Sys1ogEaci1iy
et LogLeve1 permettent d'indiquer le type et le niveau des messages de traces gnrs par le dmon
sshd dans le fichier de traces du systme.
Viennent ensuite les options spcifiques aux diffrents modes d'authentification. Les options
RSAAuthentication et PubkeyAuthentication permettent d'activer et de dsactiver
l'authentification par clef publique des clients, respectivement pour les protocoles SSH de version 1 et
2. Les options IgnoreRhoss, RhossRSAAuhenicaion et
HosbasedAuhenicaion permettent de contrler un protocole d'authentification bas sur
l'identit des machines. Ce type d'authentification n'a pas t prsent car il est extrmement peu sr,
et il faut imprativement dsactiver ces fonctionnalits. Enfin, les options
RasswordAuhenicaion et RermiEmpyRasswords permettent d'activer ou de
dsactiver l'authentification par mot de passe. Vous tes libre d'utiliser ou non ces fonctionnalits.
Le fichier de configuration peut galement contenir des options complmentaires. Les plus
importantes pour la scurit sont sans doute RermiRooLogin et SricModes, qui permettent
d'interdire la connexion par le rseau l'utilisateur root d'une part, et d'interdire la connexion aux
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 363

utilisateurs qui n'ont pas bien fix les droits d'accs sur leurs fichiers de configuration personnels dans
leur compte local (il est donc impossible de garantir que ces fichiers n'ont pas t trafiqus par d'autres
utilisateurs pour accder leur compte). L'option UseRrivi1egeSeparaion permet de
demander au dmon sshd de n'effectuer les communications rseau que dans le compte spcial sshd,
compte auquel on n'affectera que le minimum de droits. Cette technique permet de protger le systme
contre l'exploitation d'une ventuelle faille de scurit dans le dmon sshd. L'option
X11Eorwarding permet d'activer l'encapsulation 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 l'option X11isp1ayOffse. Cette option est
utile pour viter les conflits avec les serveurs X locaux. Vous trouverez de plus amples informations
sur le protocole X11 et l'environnement graphique dans le Chapitre 10. Enfin, les options
RrinMod et RrinLasLog permettent de spcifier les informations affiches par le dmon
sshd lorsque la connexion des clients est accepte. Il existe bien d'autres options, vous pourrez obtenir
de plus amples renseignements dans la page de manuel du dmon sshd.
9.5.2.2.4. Utilisation d'OpenSSH ct client
Les clients peuvent se connecter un serveur SSH l'aide de la commande ssh. Cette commande
s'utilise exactement de la mme manire que les commandes rsh ou rlogin. La syntaxe de la
commande ssh est la suivante :
ssh [-l nom] machine [commande]

ou :

ssh nom@machine [commande]

o nom est ici le nom d'utilisateur utiliser pour la connexion, et machine la machine distante. Si
aucun nom d'utilisateur n'est spcifi, le nom de l'utilisateur sur la machine local est pris par dfaut. Il
est possible d'excuter une commande sur la machine distante en la spcifiant aprs le nom de la
machine. Si aucune commande n'est spcifie, un shell interactif est lanc.
Selon le mode d'authentification du client choisi par le serveur, il peut tre ncessaire ou non de dfinir
des clefs pour le client. Tout comme pour les clefs publiques et prives d'un serveur, la gnration de
ces clefs se fait l'aide 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 chiffrer la clef prive. Les fichiers de clefs gnrs par
ssh-keygen sont les fichiers identity et identity.pub pour le protocole d'authentification RSA de la
version 1 du protocole SSH, et les fichiers 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 fichiers sont stocks dans
le rpertoire .ssh/ du rpertoire personnel de l'utilisateur qui les gnre. Il va de soi que les fichiers des
clefs prives ne doivent pas tre lisibles pour les autres utilisateurs, et que les fichiers des clefs
publiques ne doivent pas pouvoir tre crits si l'on veut viter qu'un usurpateur prenne notre place sur
notre propre machine.
Afin de bnficier de l'authentification des serveurs auxquels on se connecte, il faut placer les clefs
publiqes de ces derniers dans le fichier .ssh/known_hosts. Si, lors d'une connexion un serveur, la clef
publique de celui-ci n'est pas connue, ssh vous le signalera. Il indiquera un message d'erreur indiquant
que le serveur auquel on se connecte n'est pas forcment celui qu'il prtend tre, et affiche 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 fichier
known_hosts, ce qui vous permettra de vous connecter par la suite en toute quitude. Attention, le
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 364

fichier 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 d'authentification 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 d'authentification utilis est une authentification par clef publique, alors vous
devrez avoir dfini 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 fichier authorized_keys du
rpertoire ./ssh/ du rpertoire du compte distant. Cela permettra au dmon sshd de s'assurer que c'est
bien vous qui vous connectez. Attention, le fichier 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 l'criture soi-mme dans ce fichier par un moyen sr (dplacement
physique). En aucun cas la communication de votre clef publique l'administrateur distant ne pourra
tre considre comme un moyen sr pour crire cette clef : en effet, un pirate pourrait tout aussi bien
lui demander d'crire sa propre clef dans votre fichier !
Vous constaterez qu'un certain nombre de prcautions doivent tre prises pour les manipulations de
clefs. Comme il l'a dj t indiqu plus haut, le point faible est bel et bien l'authentification des
clients. Cela concerne en premier lieu le client bien entendu, dont le compte peut tre pirat, mais c'est
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 d'autres techniques.
9.5.2.2.5. Cration d'un tunnel SSH
L'un des principaux avantages de SSH est qu'il est possible de l'utiliser pour encapsuler n'importe quel
protocole rseau TCP dans le canal de communication d'une connexion scurise. Un tel canal est
communment appel un tunnel , en raison du fait qu'il est utilis par les informations sensibles
pour traverser un rseau non sr. Grce aux tunnels SSH, il est possible d'utiliser tous les protocoles
classiques sans avoir s'inquiter de la confidentialit des informations transmises. SSH permet mme
de raliser cette opration automatiquement pour le protocole X du systme de fentrage X Window,
ce qui est trs commode si l'on dsire afficher localement les fentres graphiques des programmes
lancs sur le serveur.
Encapsuler le protocole X dans SSH est donc extrmement ais. En effet, il suffit simplement de
donner la valeur yes l'option X11Eorwarding dans le fichier de configuration du serveur
/etc/sshd_config et dans le fichier de configuration des clients (les valeurs par dfaut pour tous les
utilisateurs peuvent tre dfinies dans le fichier de configuration /etc/ssh_config et tre redfinies par
chaque utilisateur dans le fichier config de leur rpertoire .ssh/). Si ces options sont actives, SSH se
charge de fixer la variable d'environnement ISRLAY 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, modifier manuellement la variable d'environnement ISRLAY. Vous trouverez
plus d'information 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 s'adressent pas directement au serveur distant, mais plutt un proxy local
tabli par SSH pour l'occasion. Ce proxy tablit un canal de communication chiffr avec le dmon
sshd de la machine distante. Toutes les informations du protocole encapsul passent alors par le canal
chiffr, et le dmon sshd de la machine distante retransmet ces informations au service distant auquel
le client devait se connecter.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 365

Tout ce mcanisme ne fonctionne que parce qu'il 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 flux 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 spcifie en
paramtre, s'il en est spcifie une). Si l'on 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 qu'un programme dtient une connexion sur le port redirig. On peut aussi excuter
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 d'indiquer 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 l'on veut exposer de manire scurise au client. Encore une fois, cette
commande ouvre une connexion SSH, il faut donc spcifier la machine laquelle on se connecte (en
l'occurrence, le client). Une commande peut tre spcifie de manire optionnelle, s'il n'y en a pas, un
shell sera lanc sur la machine distante.
Note : Prenez bien conscience que SSH ne s'assure du chiffrement que des donnes transmises sur le
rseau. Si la machine cliente ou la machine serveur ne sont pas correctement configures, un pirate
peut espionner les communications rseau internes cette machine. Pour viter ce type de risque, il
faut utiliser des protocoles rseau eux-mmes chiffrs. Autrement dit, une fois sorti du tunnel SSH,
vous vous exposez nouveau aux risques d'intrusion.
Il existe d'autres 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 d'informations sur les
rseaux privs virtuels ci-dessous.
9.5.2.3. Utilisation d'IPSec
Le protocole IPSec est une extension du protocole IP qui permet de rpondre aux besoins
d'authentification et de confidentialit, grce aux techniques de cryptographie. Les principes utiliss
sont les mmes que pour SSH, mais ils sont mis en pratique au plus bas niveau, ce qui fait que tous les
protocoles de haut niveau en bnficient automatiquement.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 366

9.5.2.3.1. Fonctionnement d'IPSec
IPSec dfinit des protocoles complmentaires permettant d'encapsuler les donnes transfres dans les
paquets IP et assurant les services d'authentification et de confidentialit. Le protocole AH
(abrviation de l'anglais Authentication Header ) permet, comme son nom l'indique, d'assurer que
les machines sont bien celles qu'elles prtendent tre. Cela permet de supprimer tous les risques
d'attaque de l'homme du milieu. Le protocole AH permet galement d'assurer l'intgrit des donnes.
En revanche, il n'en assure pas la confidentialit. Le protocole ESP (abrviation de l'anglais
Encapsulating Security Payload ) permet d'assurer cette confidentialit. En revanche, contrairement
ce que de nombreuses documentations affirment, il ne permet pas d'assurer l'authenticit des
interlocuteurs, ce qui fait que la confidentialit peut tre brise par une attaque de l'homme du milieu.
Il est donc ncessaire d'utiliser les deux protocoles si les interlocuteurs ne sont pas authentifis de
manire physique. Ces deux protocoles permettent galement de prvenir les attaques par rejeu au
niveau protocolaire, car ils utilisent un numro de squence dont la prdtermination est trs difficile
pour chaque paquet chang.
Note : En ralit, le protocole ESP peut galement assurer l'authenticit des donnes, mme s'il ne
permet pas d'assurer l'authenticit des interlocuteurs. Cette fonctionnalit peut tre utile si
l'authenticit des machines est assure par un autre mcanisme. Toutefois, cette condition n'est
gnralement pas vrifie et il faut utiliser le protocole AH pour authentifier les machines. De ce fait,
le mcanisme d'authentification d'ESP est rarement utilis.
AH et ESP peuvent tre utilises dans deux modes diffrents : le mode transport et le mode tunnel. Le
mode transport est le mode de communication natif, dans lequel les en-ttes des protocoles AH et ESP
sont insrs entre l'en-tte IP et ses donnes. De ce fait, les protocoles de haut niveau sont simplement
encapsuls dans les protocoles AH et ESP. Le mode tunnel, quant lui, permet de crer un rseau
virtuel complet, en encapsulant la communication entre les interlocuteurs dans un canal chiffr. Ce
sont donc les paquets IP de la communication qui sont eux-mmes encapsuls dans les protocoles AH
et ESP.
IPSec utilise les algorithmes de cryptographie symtriques pour assurer ces fonctionnalits. Par
exemple, l'authenticit des machines et l'intgrit des donnes sont garanties par le protocole AH grce
la gnration de condenss cryptographiques paramtrs par une clef prive. Seule les machines
partageant cette clef peuvent donc communiquer avec ce protocole, et toute modification des donnes
serait dtecte lors de la vrification de la signature. De mme, ESP assure la confidentialit des
donnes en les chiffrant avec un algorithme de chiffrement clef prive.
Chaque canal de communication IPSec peut utiliser ses propres paramtres. Bien entendu, il est hors
de question de transfrer ces paramtres (et encore moins les clefs prives utilises !) dans chaque
paquet IP ! IPSec identifie donc ces paramtres par un numro d'identification (appel Security
Parameter Index , SPI en abrg), grce auquel chaque interlocuteur peut retrouver les paramtres
de la connexion chiffre. L'association entre le SPI et ces paramtres est appele une SA
(abrviation de l'anglais Security Association ). Les associations de scurit sont stockes sur
chaque machine dans une base de donnes que l'on appelle la SAD (de l'anglais SA Database ).
Les associations de scurit ne permettent que de dfinir la manire dont les communications doivent
tre protges. Cela dit, une machine n'est pas oblige de chiffrer toutes ses connexions, et l'on peut
parfaitement vouloir ne chiffrer les communications qu'entre deux machines, ou que pour certains
protocoles. Il est donc galement ncessaire de dfinir quelles communications doivent tre chiffres.
Cela se fait grce une politique de scurit ( Security Policy en anglais, SP en abrg). Les
politiques de scurit sont galement stockes dans une base de donnes sur chaque machine, base de
donnes que l'on appelle la SPD (abrviation de SP Database ).
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 367

Bien entendu, la dfinition des clefs secrtes, des associations et des politiques de scurit peut
devenir une opration trs lourde sur de grands rseaux. En effet, il est ncessaire de dfinir des clefs
prives pour chaque couple de machines. Par consquent, un protocole de gestion des clefs et des
associations de scurit a t dfini pour automatiser l'tablissement des connexions. Ce protocole est
le protocole ISAKMP (abrviation de l'anglais Internet Security Association and Key
Management Protocol ). Comme SSH, ce protocole s'appuie sur les algorithmes de cryptographie
asymtriques pour changer les clefs prives et dfinir les associations de scurit de manire sre
avec des machines authentifies. Ainsi, grce ce protocole, seules les politiques de scurit et les
couples de clefs publiques / prives des machines doivent tre dfinis. Les associations de scurit et
les clefs prives n'ont plus tre manipules.
9.5.2.3.2. Configuration manuelle d'IPSec en mode transport
La configuration manuelle d'IPSec reste intressante, car elle permet de bien saisir la manire dont les
oprations se droulent. Elle se fait simplement en dfinissant les SAs et les SPs sur chaque machine,
l'aide de l'outil setkey. Cet outil peut tre retrouv sur le site Web consacr IPSec.
Les associations et les politiques de scurit peuvent tre spcifies directement en ligne de commande
si l'on lance setkey avec l'option -c. Toutefois, la manire la plus simple de charger les associations et
les politiques dans les bases de donnes du systme est de les dfinir dans un fichier de configuration
et de demander setkey de le lire en lui fournissant le chemin sur ce fichier l'aide de l'option -f. En
gnral, ce fichier de configuration est plac dans le rpertoire /etc/ et se nomme ipsec.conf.
Les commandes acceptes par setkey sont nombreuses. Le fichier de configuration d'exemple suivant
vous en donnera un apperu :
#!/usr/sbin/setkey -f

# Vide la base de donnes des SAs :
flush;

# Vide la base de donnes des SPs :
spdflush;

# Dfinit les SAs pour le protocole AH :
# add source dest protocole SPI algo clef
add 170.20.57.31 170.20.58.40 ah 0x200 \
-A hmac-md5 0x848255320c7fd11b6082f9628f078af7;
add 170.20.58.40 170.20.57.31 ah 0x201 \
-A hmac-md5 0xcd23ef4b73ea54b626d16092293a298a;

# Dfinit les SAs pour le protocole ESP :
# add source dest protocole SPI algo clef
add 170.20.57.31 170.20.58.40 esp 0x300 \
-E 3des-cbc 0xe6933d365096e13be514ea1d881d87371100b15119e2ffb9;
add 170.20.58.40 170.20.57.31 esp 0x301 \
-E 3des-cbc 0xb2b630c9e9692c36d248b7206bda17c47f772f96290ac05f;

# Dfinit les politiques :
# spadd source dest protocole -P politique
# politique = direction action regles
# regle = ipsecp/mode/options/niveau
# options = rgles de dfinition des tunnels
# niveau = use ou require
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 368

spdadd 170.20.57.31 170.20.58.40 any -P out ipsec
esp/transport//require
ah/transport//require;

spdadd 170.20.58.40 170.20.57.31 any -P in ipsec
esp/transport//require
ah/transport//require;
Ce fichier permet de dcrire les associations de scurit utilises pour communiquer entre deux
machines d'adresses 170.20.57.31 et 170.20.58.40, ainsi que la politique de scurit de la machine
170.20.57.31. Bien que largement comment, ce fichier requiert quelques explications
complmentaires.
Tout d'abord, la premire ligne permet de considrer ce fichier comme un fichier excutable, dont
l'interprteur est la commande setkey elle-mme. Les deux lignes suivantes permettent de vider les
bases de donnes contenant les associations et les politiques de scurit. Attention, cela a pour
consquence de dsactiver compltement IPSec, les services rseaux qui doivent tre protgs ne
doivent donc pas tre lancs lorsque ce fichier est interprt.
Viennent ensuite les dfinitions des associations de scurit utilises par les protocoles AH et ESP.
Ces associations doivent tre dfinies strictement de la mme manire sur les deux machines pour
lesquelles la liaison est scurise. Elles sont simplement ajoutes la base de donnes des associations
l'aide de la commande add de setkey. Cette commande prend en paramtre les adresses IP source et
destination des machines intervenant dans la communication scurise, suivies du nom du protocole
pour lequel l'association est dfinie ( savoir, ah ou esp), suivi de l'identifiant de l'association (le
SPI ), et pour finir des options relatives au protocole.
Les options des protocoles dpendent videmment de ceux-ci. Le protocole AH n'accepte que l'option
-A, qui permet de spcifier l'algorithme d'authentification utiliser (ici, l'algorithme MD5). ESP quant
lui peut galement accepter l'option -E, qui permet de spcifier un algorithme de chiffrement des
donnes. Il est inutile de spcifier un algorithme d'authentification pour ESP si l'on utilise galement le
protocole AH, comme c'est le cas ici. Il est galement possible de n'utiliser que le protocole ESP et de
lui demander de raliser la fois l'authentification et le chiffrement des communications. Toutefois,
comme on l'a dit plus haut, cela ncessite d'avoir dj une authentification des machines (ce qui n'est
pas assur en gnral, une adresse IP pouvant tre vampirise par un pirate).
Les algorithmes utilisables sont varis et dpendent des options que vous avez spcifis dans la
configuration du noyau. Ceux utiliss ici sont relativement frquents, savoir MD5 pour
l'authentification et le triple DES pour le chiffrement. Vous remarquerez que ces algorithmes ont
besoin d'une clef secrte pour fonctionner. Dans le fichier d'exemple prcdent, cette clef est spcifie
en hexadcimal (c'est--dire en base 16). La taille des clefs dpend de l'algorithme utilis. Pour MD5,
il vous faudra utiliser une clef de 16 octets, et pour le triple DES, une clef de 24 octets. Les clefs de cet
exemple ont t gnres par lecture du fichier spcial de priphrique /dev/random, dont le but est de
fournir des donnes alatoires, avec la commande suivante :
dd if=/dev/random count=n bs=1 | xxd ps

o n est le nombre d'octets crer. Bien entendu, ces clefs devant rester secrtes, le fichier de
configuration ipsec.conf ne doit pas tre accessible en lecture aux autres utilisateurs que
l'administrateur.
Note : Vous remarquerez que les associations de scurit utilisent deux clefs prives distinctes pour
les deux directions du flux de donnes entre les machines qui communiquent par IPSec. Cela n'est pas
une obligation, on peut trs bien utiliser la mme clef pour les deux directions.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 369

Comme il l'a dj t indiqu, dfinir les associations de scurit ne suffit pas pour scuriser les
communications. En effet, il est galement ncessaire de dfinir la politique de scurit. Cela est
ralis l'aide de la commande spdadd. Cette commande prend en paramtre l'adresse source et
l'adresse destination, le protocole ou le port qui doit tre scuris (any signifiant que toutes les
communications doivent tre scurises), et la politique de scurit elle-mme. Cette politique permet
d'indiquer la direction du trafic rseau (in signifiant le trafic entrant et out signifiant le trafic sortant),
et ce que l'on doit faire des donnes. L'option ipsec indique qu'elles doivent tre scurises par
IPSec. L'option discard permet d'interdire le trafic entre les machines, et l'option none permet
d'autoriser ce trafic et de laisser les communications se faire classiquement.
Si l'on indique qu'IPSec doit tre utilis, il faut indiquer, respectivement pour AH et ESP, le mode de
fonctionnement (ici, transport) et le niveau de scurit exig. La valeur utilise est gnralement
require, ce qui permet de n'accepter les communications que si elles se font par IPSec. Vous trouverez
le dtail des autres options dans la page de manuel de setkey
Ainsi, la premire ligne spdadd du fichier donn en exemple ci-dessus indique que tout le trafic
sortant de 170.20.57.31 et allant vers 170.20.58.40 doit tre encapsul en mode transport dans les
protocoles AH et ESP, en utilisant les associations de scurit dfinies prcdemment. De mme, la
deuxime ligne spdadd indique que tout le trafic entrant dans 170.20.57.31 et en provenance de
170.20.58.40 doit tre scuris par IPSec.
Vous constaterez que les adresses IP sources et destination sont inverses dans les deux commandes,
parce que la direction indique est inverse et que l'on ne peut pas dfinir, sur la machine
170.20.57.31, les rgles appliquer sur la machine 170.20.58.40. Bien entendu, sur la machine
170.20.58.40, ces directions devront tre changes. Ainsi, pour reprendre l'exemple, les lignes
permettant de dfinir la politique de scurit sur cette machine doivent tre les suivantes :
# Dfinit la politique de scurit sur 170.20.58.40 :
spdadd 170.20.57.31 170.20.58.40 any -P in ipsec
esp/transport//require
ah/transport//require;

spdadd 170.20.58.40 170.20.57.31 any -P out ipsec
esp/transport//require
ah/transport//require;
Note : Pour que les communications se fassent par IPSec, il est ncessaire que vous laissiez passer le
trafic AH ou ESP au travers de votre pare-feu. Le protocole AH utilise le numro de protocole 51 et le
protocole ESP le numro 50.
9.5.2.3.3. Configuration manuelle d'IPSec en mode tunnel
La configuration d'IPSec en mode tunnel est similaire celle utilise pour le mode transport. Elle est
toutefois lgrement plus complique, puisqu'il est ncessaire de spcifier les adresses des passerelles
entre lesquelles le tunnel sera tabli. Le fichier de configuration suivant donne un exemple de
dfinition de tunnel IPSec utilisant les adresses 192.168.20.1 et 192.168.20.2, entre deux machines
d'adresses 170.20.57.31 et 170.20.58.40 :
#!/usr/sbin/setkey -f

# Vide la base de donnes des SAs :
flush;

# Vide la base de donnes des SPs :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 370

spdflush;

# Dfinit les SAs pour les en-ttes :
# add source dest protocole SPI algo clef
add 170.20.57.31 170.20.58.40 ah 0x200 -m tunnel -A hmac-md5 0x848255320c7fd11b6
082f9628f078af7;
add 170.20.58.40 170.20.57.31 ah 0x201 -m tunnel -A hmac-md5 0xcd23ef4b73ea54b62
6d16092293a298a;

# Dfinit les SAs pour les paquets :
# add source dest protocole SPU algo clef
add 170.20.57.31 170.20.58.40 esp 0x300 -m tunnel -E 3des-cbc 0xe6933d365096e13b
e514ea1d881d87371100b15119e2ffb9;
add 170.20.58.40 170.20.57.31 esp 0x301 -m tunnel -E 3des-cbc 0xb2b630c9e9692c36
d248b7206bda17c47f772f96290ac05f;

# Dfinit les politiques :
# spadd source dest protocoles politique
# politique = direction action regles
# regle = ipsecp/mode/options/niveau
# options = rgles de dfinition des tunnels
# niveau = use ou require
spdadd 192.168.20.2 192.168.20.1 any -P in ipsec
esp/tunnel/170.20.58.40-170.20.57.31/require
ah/tunnel/170.20.58.40-170.20.57.31/require;

spdadd 192.168.20.1 192.168.20.2 any -P out ipsec
esp/tunnel/170.20.57.31-170.20.58.40/require
ah/tunnel/170.20.57.31-170.20.58.40/require;
Ce fichier commence par dfinir les associations de scurit dcrivant comment le trafic rseau doit se
faire entre les machines 170.20.57.31 et 170.20.58.40. La premire diffrence avec le mode transport
est l'utilisation de l'option -m, qui prend en paramtre le mode de communication. Ici, il est demand
que tout le trafic IP, et non pas les communications elles-mmes, soit encapsul dans les protocoles
AH et ESP. Cela a effectivement pour effet de faire un tunnel IP over IPSec .
La deuxime diffrence provient ensuite de la dfinition des politiques de scurit. prsent, ces
politiques ne portent plus sur les vritables adresses rseau des machines ( savoir 170.20.57.31 et
170.20.58.40), mais sur les adresses des interfaces rseau permettant d'accder au tunnel
(respectivement 192.168.20.1 et 192.168.20.2). De plus, les informations de routage pour le trafic dans
le tunnel sont spcifies dans les rgles de la politique : il doit passer dans le tunnel IPSec tablit entre
170.20.57.31 et 170.20.58.40.
Note : Du fait que les communications doivent tre transfres via le tunnel IPSec, il est ncessaire
d'autoriser le routage sur les deux machines du tunnel. Cela se fait en autorisant le routage au niveau
du pare-feu et en excutant la commande suivante :
echo 1 > /proc/sys/net/ipv4/ip_forward
Les directions indiques dans les politiques correspondent la machine 170.20.57.31. Bien entendu,
ces directions devront tre inverses sur la machine 170.20.58.40 pour rendre la communication
symtrique.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 371

9.5.2.3.4. Autoconfiguration avec ISAKMP
La configuration manuelle d'IPSec est ralisable pour l'tablissement d'un tunnel ou pour le
chiffrement des connexions entre deux ou trois machines, mais au del de ce nombre, elle devient trs
vite lourde et contraignante. En effet, il est ncessaire de dfinir une clef prive de communication
pour chaque couple de machine, ce qui peut faire un grand nombre de clefs. Par exemple, pour un
rseau de trois machines, pas moins de six clefs AH et ESP sont ncessaires (douze si ces clefs ne sont
pas utilises pour les deux sens du trafic) !
C'est pour cette raison que le protocole d'change de clef ISAKMP a t dvelopp. Ce protocole
utilise le port 500 du protocole UDP pour dfinir les associations de scurit "utiliser pour les
connexions IPSec, et de les renouveler rgulirement afin d'accrotre la scurit des communications.
En effet, utiliser toujours la mme clef dans une association de scurit peut permettre un attaquant
de la calculer en observant certains paquets rseau dont il peut deviner une partie du contenu, comme
par exemple les paquets de demande de connexion TCP.
Pour l'tablissement des associations de scurit, le protocole ISAKMP utilise plusieurs phases. La
premire phase permet d'tablir une association de scurit de contrle entre les deux machines, par
l'intermdiaire de laquelle les autres associations de scurit seront tablies. La deuxime phase est
l'tablissement des associations de scurit utilises pour les communications.
La premire phase peut tre ralise selon plusieurs modes d'authentification. Le mode principal
est le mode le plus sr. Le mode agressif est plus conome en terme de trafic rseau, mais il n'est
pas utilisable de manire fiable en pratique. Dans chacun de ces modes, plusieurs techniques
d'authentification sont utilisables mais, en raison d'erreurs de conception du protocole ISAKMP, seul
l'authentification base sur les mcanismes de clefs publiques est fiable. De ce fait, le protocole
ISAKMP fonctionne de manire tout fait similaire OpenSSH, puisqu'il commence par tablir une
association de scurit prive partir des clefs publiques et prives, puis il utilise ce canal chiffr pour
effectuer les changes des associations de scurit IPSec des communications. Dans ce type de
configuration, il n'est plus ncessaire de dfinir qu'un couple de clefs prive et publique par machine.
Note : Pour ceux qui sont intresss par les problmes de scurit, les autres mcanismes
d'authentification proposs par le protocole ISAKMP sont :
l'authentification par signature, qui est sujette l'attaque de l'homme du milieu ;
et l'authentification par secret partag.
Ce dernier type d'authentification est trs problmatique, car il ne rsout pas le problme de la gestion
des clefs d'une part, et il requiert de connatre l'identit des machines qui se connectent d'autre part.
Cela implique que les adresses IP des machines qui se connectent soient fixes dans le mode principal,
et que les informations d'identit soient transfres sur le rseau pour viter d'avoir connatre ces
adresses IP dans le mode agressif. Cela n'est pas le plus grave, le mode agressif transfrant galement
des donnes chiffres dont on connat le contenu sur le rseau, permettant ainsi un attaquant de faire
une attaque par dictionnaire et de trouver le secret partag.
Sous Linux, le protocole ISAKMP est implment par le dmon racoon. racoon utilise des certificats
x509 pour authentifier les machines, aussi vous faudra-t-il en gnrer pour chacune de vos machines.
Les certificats x509 sont des fichiers contenant l'identit d'une personne ainsi que sa clef publique, ce
qui permet donc de l'authentifier de manire fiable condition que l'on soit sr quen le certificat
provient bien d'elle. Pour s'assurer de cela, il est courant de faire signer le certificat par une autorit de
certification en laquelle on a confiance et dont le rle est de bien s'assurer que la personne qui
demande la signature de son certificat est bien celle qu'elle prtend tre (moyennant finances bien
entendu). Il est possible de signer soi-mme ses propres certificats, ce qui ne rsout bien sr pas le
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 372

problme de l'authenticit du certificat, mais permet au moins de s'assurer qu'il n'a pas t modifi par
une tierce personne. Cela suppose bien entendu que le problme du transfert de l'empreinte du
certificat vers le destinataire est rsolu.
Les certificats peuvent tre crs et manipuls l'aide de l'outil OpenSSL, dont la ligne de commande
est malheureusement relativement complexe. La cration d'un nouveau certificat se fait typiquement
avec la commande suivante :
openssl req -new -nodes -newkey rsa:1024 -sha1 \
-keyform PEM -keyout machine1.private -outform PEM -out requete.pem

Cette commande permet de crer une requte de certification d'une clef publique RSA de 1024 bits
avec l'algorithme de gnration de condens SHA1, et de stocker la clef prive correspondante dans le
fichier machine1.private. La requte elle-mme est stocke dans le fichier requete.pem. Des
informations permettant de vous identifier vous seront demandes, et seront incluses dans la requte
de certification.
La cration du certificat se fait ensuite simplement, en signant la requte de certification. Nous
pouvons le faire nous-mme, en signant la requte avec la clef prive que l'on vient de crer. Pour
cela, il faut utiliser la commande suivante :
openssl x509 -req -in requete.pem \
-signkey machine1.private -out machine1.public

Une fois cette opration effectue, vous pouvez vous dbarrasser du fichier de requte de certification
(c'est--dire du fichier requete.pem). Vous disposerez alors d'un couple de clef prive/publique dans
les fichiers machine1.private et machine1.public.
Une fois que vous aurez cr vos clefs pour toutes vos machines, vous pourrez les distribuer sur vos
diffrentes machines. Chaque machine doit bien entendu disposer de sa clef prive, ainsi que de
l'ensemble des clefs publiques des autres machines. L'change des clefs publiques est l'opration
sensible, puisqu'il s'agit de s'assurer que les clefs reues sont bien celles que l'on a mises. Pour cela,
on pourra utiliser un condens de la clef et s'assurer que ce condens est bien le mme aprs change.
Attention toutefois, il faut tre certain que le condens soit chang de manire sre. OpenSSL vous
permet d'obtenir un condens de vos clefs publiques avec la commande suivante :
openssl dgst clef.public

o clef.public est la clef dont on dsire obtenir le condens.
Le dmon racoon utilise le fichier de configuration /etc/racoon.conf pour dcrire la manire dont les
diffrentes phases de la ngociation des associations de scurit doivent tre faites. Il est possible de
dfinir des options diffrentes pour diffrents clients, identifis par leurs adresses IP. Toutefois, en
raison de l'utilisation courante des adresses IP dynamiques, une configuration implicite doit souvent
tre donne. Vous trouverez ci-dessous un exemple de fichier de configuration racoon.conf :
path certificate "/etc/ssl/certs";
remote anonymous
{
exchange_mode main;
certificate_type x509 "neptune.public" "neptune.private";
verify_cert off;
my_identifier asn1dn;
peers_identifier asn1dn;
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 373

proposal
{
encryption_algorithm 3des;
hash_algorithm md5;
authentication_method rsasig;
dh_group modp1024;
}
}

sainfo anonymous
{
pfs_group modp1024;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
compression_algorithm deflate;
}
La premire ligne indique le chemin du rpertoire dans lequel les fichiers de clefs publiques des clients
se trouveront, ainsi que les fichiers de clefs publique et prive de la machine locale. La section remote
permet de dfinir les options d'authentification d'un client pendant la premire phase du protocole
ISAKMP. Le mot-cl anonymous indique ici que tous les clients pour lesquels une section remote plus
spcifique n'est pas disponible devront utiliser cette section. C'est donc la section utiliser pour tous
les clients disposant d'une adresse IP dynamique.
La dfinition de la premire phase du protocole contient les directives suivantes :
la directive exchange_mode, qui indique le mode de fonctionnement utiliser pendant cette
phase (le mode principal est choisi ici, parce que c'est le seul qui soit rellement sr) ;
la directive certificate_type, qui permet d'indiquer que le mcanisme d'authentification utilise
des certificats X509 (grce l'option x509) ;
la directive verify_cert, qui permet d'indiquer si les certificats manipuls doivent tre vrifis
auprs d'une autorit de certification ou non (la configuration prsente ici ne le permet pas,
car nous avons sign nous-mme nos certificats) ;
les directives my_identifier et peers_identifier, qui indiquent la manire dont les machines
sont identifies (leur option asn1dn indique que les informations qui ont t demandes lors
de la cration des certificats des machines sont utilises pour retrouver leurs certificats) ;
et enfin, la directive proposal, qui permet de fournir les paramtres cryptographiques utiliss
pour l'association de scurit de contrle ngocie pendant la premire phase du protocole
ISAKMP.
Les paramtres de l'association de scurit de contrle permettent de spcifier l'algorithme de
chiffrement et l'algorithme de gnration des signatures (directives encryption_algorithm et
hash_algorithme respectivement), ainsi que la mthode d'authentification des machines (utilisation du
protocole RSA, directive authentication_method). La directive dh-group permet de fournir un
paramtre l'algorithme d'change de clefs Diffie Hellman, utilis lors de l'change des clefs prives.
La section sainfo permet de dfinir les paramtres des associations de scurit ngocies pendant la
deuxime phase du protocole ISAKMP. Son format est semblable la section de dfinition de
l'association de scurit de contrle vue prcdemment. Toutefois, une diffrence importante est que la
mthode d'authentification est prsent base sur un secret partag et non plus sur le mcanisme des
clefs publiques et prives des machines. De ce fait, l'algorithme de gnration de signatures utilis par
le protocole AH ncessite une clef secrte change pendant la premire phase. Ce n'est donc plus un
simple algorithme de gnration d'empreintes. La directive hmac_md5 permet d'utiliser un algorithme
MD5 modifi pour tre paramtr par la clef secrte.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 374

Vous noterez que toutes ces informations permettent de dfinir la manire dont les associations de
scurit doivent tre gnres. Cependant, ces associations de scurit ne sont pas forcment utilises :
il faut pour cela dfinir la politique de scurit. Cette opration peut bien entendu se faire avec setkey.
Le fichier de configuration ipsec.conf d'un serveur ressemble alors celui-ci :
spdadd 0.0.0.0/0 serveur any -P in ipsec
esp/transport//require
ah/transport//require;

spdadd serveur 0.0.0.0/0 any -P out ipsec
esp/transport//require
ah/transport//require;

Les fichiers de configuration ipsec.conf des clients devront avoir des directions de trafic inverses.
Vous noterez que les adresses spcifies pour les clients utilisent des plages d'adresses dans les
commandes d'ajout de rgles de politique de scurit. En effet, on ne sait a priori pas quelles sont les
adresses de ces clients, car ils auront gnralement une adresse IP alloue dynamiquement. La seule
adresse connue est en gnral celle du serveur, rfrence ici par le nom de machine serveur. Si
l'adresse du serveur est elle-aussi dynamique, la configuration est plus contraignante, car il faut que
toutes les communications se fassent par IPSec (et les clients ne peuvent plus se connecter qu'aux
serveurs qu'ils connaissent).
Il est galement possible de demander racoon de dfinir lui-mme la politique de scurit, lorsque
des tentatives de connexion on lieu. Cela peut tre ralis l'aide de la directive generate_policy de la
section remote.
Une fois le fichier de configuration racoon.conf dfini, il ne reste plus qu' lancer racoon. Ceci peut se
faire avec la commande suivante :
racoon -f /etc/racoon.conf

L'option -f permet de lui indiquer le fichier de configuration qu'il doit utiliser. Si vous dsirez lancer
racoon en avant-plan pour pouvoir dboguer votre configuration, vous pouvez utiliser -E, et
augmenter le niveau de traces avec l'option -d.
9.6. Configuration des fonctions serveur
En gnral, les gens ne voient Internet que du point de vue client en terme d'architecture client /
serveur. Cela signifie qu'ils se contentent de se connecter Internet, et n'utilisent que des logiciels
clients qui communiquent avec des serveurs situs sur Internet. Ce mode d'utilisation est de loin le
plus courant et celui qui convient la majorit des gens, qui n'ont en gnral mme pas conscience de
l'existence du monde des serveurs.
Cependant, il est parfois ncessaire de mettre en place des petits serveurs, sans forcment tre un
fournisseur d'accs 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 l'on doit
laisser allum pour une raison ou une autre, afin 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 l'intermdiaire 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.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 375

9.6.1. Paramtrage des connexions extrieures
Nous avons vu dans la Section 6.8 que le programme en charge de demander l'identification des
utilisateurs sur les terminaux de login tait le programme getty. Ce programme ne permet aux
utilisateurs que de s'identifier. Lorsque quelqu'un saisit son nom, getty se contente de lancer le
processus login pour que celui-ci ralise l'authentification de l'utilisateur en lui demandant son mot de
passe. En fait, getty peut trs bien lancer un autre programme que login si l'identification n'est pas
ncessaire sur le terminal qu'il gre, mais, en gnral, il faut identifier les utilisateurs.
Le programme getty est donc le point d'entre 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 (c'est d'ailleurs ce pour quoi il a t conu
l'origine). En particulier, il est possible de lancer un processus getty sur une ligne srie, afin de
permettre l'utilisation de terminaux rels connects sur le port srie correspondant.
La ligne srie sur laquelle le processus getty fonctionne n'est 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 l'aide d'un logiciel d'mulation de terminal. Il existe plusieurs
logiciels permettant d'appeler un ordinateur distant et d'muler 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 c'est un logiciel libre.
En fait, il existe plusieurs variantes de getty, spcialises pour des usages spcifiques, et permettant de
faciliter le paramtrage du fichier de configuration /etc/inittab, dans lequel sont dfinis les terminaux
disponibles. Les distributions de Linux sont souvent fournies avec les versions suivantes :
mingetty, qui est un getty simplifi, 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 d'initialiser les modems, de
dcrocher automatiquement la ligne lorsqu'il 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 l'on
dsire proposer une connexion par l'intermdiaire d'un cble null-modem.
Note : Les cbles null-modem sont des cbles srie symtriques, qui permettent de relier deux
ordinateurs par l'intermdiaire de leurs ports srie. Ces cbles peuvent tre trouvs chez la plupart 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 suffit en effet de rajouter dans le fichier de configuration /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 qu'il se termine dans les
niveaux d'excution 2 et 3. Il doit prendre le contrle de la ligne srie utilise par le fichier spcial de
priphrique /dev/ttyS1, utiliser la vitesse de communication de 38400 bauds sur cette ligne (option -
s) et ne dcrocher qu'au bout de la troisime sonnerie (option -n). Vous pouvez bien entendu ajuster
ces options en fonction de vos besoins.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 376

En revanche, si l'on dsire offrir une possibilit de connexion sur un port srie par l'intermdiaire d'un
cble null-modem, on utilisera plutt le programme agetty. La ligne ajouter dans le fichier
/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
l'option -L indique que la ligne srie utilise est locale et ne gre pas le signal de porteuse CD
(abrviation de l'anglais Carrier Detect ) habituellement utilise pour dtecter les coupures
tlphoniques. Encore une fois, vous pouvez adapter ces commandes selon vos besoins. N'hsitez pas
consulter les pages de manuel des programmes mgetty et agetty pour obtenir plus de renseignements.
Note : Vous pouvez tester vos connexions srie l'aide de l'mulateur de terminal minicom. S'il est
install sur votre distribution, vous pourrez le lancer simplement en tapant la commande minicom. Si
vous l'utilisez sur une connexion directe (c'est--dire par un cble null-modem), vous devrez utiliser
l'option -o, afin d'viter que minicom n'envoie les codes d'initialisation du modem sur la ligne srie.
Il se peut que vous ne parveniez pas vous connecter sur vos ports srie. Dans ce cas, la premire des
choses faire est de regarder les paramtres de la ligne srie l'aide 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 modifier la vitesse d'un port srie
l'aide de la commande stty. Par exemple, pour configurer le port srie COM2 la vitesse de 115200
bauds, vous devez taper la commande suivante :
stty -F /dev/ttyS1 ispeed 115200
9.6.2. Configuration des liaisons PPP
Le protocole PPP utilis par les fournisseurs d'accs Internet est, comme son nom l'indique ( 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 d'un serveur
PPP n'est pas plus complique que celle d'un client. Les liaisons PPP sont donc couramment utilises
pour relier deux rseaux distants par l'intermdiaire des lignes tlphoniques.
Lorsque nous avons prsent la configuration des accs Internet, nous avons utilis des options
spcifiques ce cas de figure afin de grer le fait que les paramtres rseau sont imposs par le
fournisseur d'accs. Dans le cas d'un serveur, ces paramtres ne sont pas ncessaires, puisque nous
sommes cette fois la place du fournisseur d'accs. En revanche, certains paramtres supplmentaires
devront tre spcifis, notamment pour configurer le modem afin d'accepter 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 qu'une seule connexion la fois. Cette technique peut
paratre lourde, mais en fait elle est relativement pratique, car elle permet de spcifier des options
spcifiques chaque ligne srie. Comme d'habitude, ces options peuvent tre spcifies sur la ligne de
commande de pppd, mais elle peuvent galement tre enregistres dans un fichier de configuration. Le
fichier de configuration global /etc/ppp/options est gnralement utilis pour stocker les options
communes toutes les lignes srie. Les options spcifiques chaque ligne sont enregistres quant
elles dans les fichiers options.ttySx, o ttySx est le nom du fichier spcial de priphrique utilis pour
accder cette ligne. L'usage de ces fichiers de configuration permettent de simplifier notablement les
lignes de commandes utilises pour lancer pppd.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 377

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 spcifier l'adresse IP qu'il utilisera pour l'interface PPP et l'adresse IP qu'il
donnera au client lors de l'tablissement de la liaison ;
le script chat utilis ne doit pas composer un numro, mais initialiser le modem pour qu'il
rponde aux appels entrants.
Les adresses IP sont spcifies en ligne de commande l'aide de la syntaxe suivante :
locale:distante

o locale est l'adresse IP de l'interface PPP du serveur, et distante est l'adresse IP que le client recevra
lorsqu'il 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, l'option suivante :

192.168.30.1:192.168.31.1

indiquera pppd que l'adresse IP de l'interface PPP locale sera 192.168.30.1, et que les clients qui se
connecteront sur la ligne correspondante devront recevoir l'adresse 192.168.31.1.
Notez que les adresses utilises ici font partie des adresses IP rserves pour les rseaux locaux. Ce
n'est pas ce que font les fournisseurs d'accs Internet en gnral, car ils disposent d'un ensemble
d'adresses IP relles redistribuables, mais les adresses rserves sont parfaitement utilisables. Le seul
cas o cela pourrait tre gnant serait si l'on 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 d'initialisation du modem, quant lui, peut tre spcifi l'aide de l'option ini de pppd.
Cette option fonctionne exactement comme l'option connec que l'on a utilise pour tablir la liaison
tlphonique dans la Section 9.3.2. La diffrence est ici que l'on ne cherche pas composer un numro
de tlphone, mais plutt initialiser le modem pour qu'il dcroche automatiquement la ligne lorsqu'il
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 n'est pas trop gnant, car la plupart des modems sont
compatibles avec le standard Hayes, dont les commandes sont bien connues. Pour l'initialisation d'un
modem pour un serveur, les commandes d'initialisation suivantes seront trs utiles :
Commande Signification
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 n'est utile que si l'option modem est passe en paramtre
pppd sur sa ligne de commande.
AT&K3
Activation du contrle de flux matriel (pour optimiser les changes de donnes entre le
modem et l'ordinateur). Cette option ncessite d'utiliser l'option crscs dans la ligne
de commande de pppd.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 378

Au final, la ligne de commande utiliser est donc la suivante :
pppd port vitesse detach modem crtscts init "/usr/sbin/chat -v \
-f /etc/ppp/script" &

o port est le nom du fichier 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 fichier
du script chat devant servir l'initialisation du modem. L'option deach permet de demander pppd
de se dtacher du terminal courant, afin que l'on puisse le lancer en arrire plan.
Vous trouverez ci-dessous un script chat d'exemple, permettant de spcifier les options vues ci-
dessus :
"" ATZ
OK ATS0=1
OK AT&C1
OK AT&K3
OK ""
Note : Vous remarquerez qu'il n'est pas ncessaire, contrairement ce que l'on a vu lors de la
configuration d'un client PPP, de spcifier le nom de l'utilisateur et le protocole d'identification et
d'authentification utilis. Cela est normal, car le serveur n'a pas s'identifier auprs de la machine
cliente en gnral (il peut bien entendu le faire s'il 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 d'exiger que les clients s'identifient et s'authentifient l'aide de l'un
des protocoles PAP ou CHAP. Pour cela, il suffit simplement d'ajouter les noms des clients et leurs
secrets respectifs dans les fichiers de secrets /etc/ppp/pap-secrets et /etc/ppp/chap-secrets, et d'ajouter
l'une des options require-pap ou require-chap sur la ligne de commande du dmon pppd.
Remarquez que le format des fichiers pap-secrets et chap-secrets est le mme aussi bien pour les
connexions entrantes que pour les appels vers l'extrieur. Cela signifie que l'on doit donner d'abord le
nom du client, ensuite le nom du serveur, et ensuite son secret et enfin la liste des adresses IP que les
clients peuvent utiliser.
Remarquez galement que la colonne spcifiant la liste des adresses IP ne doit pas rester vide
lorsqu'on dsire crer un secret pour le serveur. En effet, pppd se base sur l'adresse IP de la machine
distante et sur le nom du client pour dterminer le secret utiliser lors de l'authentification. Cependant,
si l'on 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 signifie 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 s'appelle jdupont, on utilisera la ligne
suivante :
#Client Serveur Secret Adresses
jdupont monserveur gh25k;f *
Lorsque la liaison PPP est tablie, le dmon pppd configure l'interface rseau correspondante. Le
protocole utilis par dfaut est bien entendu le protocole IP. En gnral, il est ncessaire de configurer
cette interface afin de spcifier les rgles de routage permettant au client d'envoyer et de recevoir des
paquets. Lors de l'tablissement de la liaison, le dmon pppd ajoute donc automatiquement une rgle
de routage pour indiquer que tous les paquets destination de l'adresse du client doivent passer par
l'interface ppp de la liaison courante. Cette rgle convient dans la majorit des cas, et en tout cas pour
les fournisseurs d'accs Internet, car le client ne dispose que d'une seule machine. En revanche, si la
liaison PPP est utilise pour relier deux rseaux, les rgles de routages par dfaut ne suffiront plus, car
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 379

des paquets destination de toutes les machines du rseau distant doivent tre envoys via l'interface
ppp (et inversement). Pour rsoudre ces petits problmes, on devra complter ou modifier les scripts
/etc/ppp/ip-up et /etc/ppp/ip-down. Ces deux scripts sont appels par le dmon pppd respectivement
lors de l'tablissement 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 l'tablissement d'une connexion en tant que
client. Leur modification devra donc tre entoure d'un soin extrme. Afin de distinguer les diffrents
cas d'utilisation, ces scripts sont appels avec les paramtres suivants :
Paramtre Signification
$1 Nom de l'interface rseau (par exemple, ppp0 .
$2 Nom du fichier spcial de priphrique de la ligne srie utilise (par exemple, ttyS0 ).
$3 Vitesse de la ligne srie.
$4 Adresse IP locale de l'interface rseau.
$5 Adresse IP du client.
$6
Paramtre complmentaire, que l'on peut passer au script l'aide de l'option ipparam de
pppd.

Un script classique fait un test sur le nom de l'interface 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 d'exemple que vous pouvez bien entendu modifier soit
directement, soit l'aide de leur outil de configuration.
Le dmon pppd se termine chaque fois que la liaison PPP se termine. Ce comportement est normal
pour un client, mais ce n'est pas gnralement ce que l'on cherche faire pour un serveur. Il faut donc
relancer pppd rgulirement chaque fois qu'il se termine. Cela peut tre ralis en ajoutant sa ligne
de commande dans le fichier de configuration /etc/inittab dans les niveaux d'excution adquats.
Comme init impose une taille rduite sur les lignes de commandes des programmes qu'il peut lancer, il
est ncessaire d'utiliser les fichiers d'options de pppd. Par exemple, si l'on veut assurer le service PPP
pour une ligne entrante sur le deuxime port srie dans les niveaux d'excution 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 fichier d'options /etc/ppp/options.ttyS1 :

# Initialisation du modem :
init "/usr/sbin/chat -v -f /etc/ppp/client.ttyS1
# Protocole d'authentification :
require-pap
# Contrle de la ligne tlphonique :
modem
# Contrle de flux matriel :
crtscts
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 380

9.6.3. Liaison de deux ordinateurs par un cble srie
La connexion entre deux ordinateurs par l'intermdiaire d'un cble srie est un cas particulier des
liaisons PPP. Les techniques utilises sont les mmes, mais plusieurs simplifications importantes
peuvent tre faites :
les deux ordinateurs sont relis directement par un cble null-modem, et aucun modem ne
s'intercale pour compliquer les choses. Par consquent, on peut supprimer les scripts chat
d'initialisation et de connexion ;
on a le contrle physique sur les deux ordinateurs, ce qui implique que les mcanismes
d'identification et d'authentification sont superflus. Il est donc inutile de prciser les secrets
PAP ou CHAP sur chaque machine ;
il n'y a que deux ordinateurs relier, donc les rgles de routages sont lmentaires ;
enfin, les adresses choisies sont connues d'avance et peuvent tre spcifies de manire
symtrique sur le client et le serveur.
Il dcoule de ces simplifications que l'tablissement d'une liaison PPP au travers d'un cble null-
modem est une opration trs facile. Comme vous allez le constater, le protocole PPP est
effectivement symtrique.
Sur le serveur , il suffit 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 (fichier spcial de
priphrique /dev/ttyS0) en utilisant la vitesse de 115200 bauds (vitesse maximale gnralement
supporte par les ports srie des ordinateurs), en utilisant l'adresse IP locale 192.168.30.1 et l'adresse
IP distante 192.168.31.1. Le dmon pppd doit se dtacher du terminal, car il est lanc en arrire plan.
Enfin, le contrle de flux matriel est utilis (option crscs).
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 configurs pour utiliser les mmes paramtres de communication (vitesse,
nombre de bits de donnes, bit de parit, bit d'arrt). Vous aurez donc peut-tre utiliser la commande
stty pour fixer 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
automatiquement une rgle de routage pour acheminer les paquets d'un ordinateur l'autre. Vous
n'aurez donc pas modifier les scripts /etc/ppp/ip-up et /etc/ppp/ip-down. Comme vous pouvez le
constater, l'utilisation de PPP pour relier simplement deux ordinateurs n'est pas une opration trs
complique...
9.6.4. Configuration d'un serveur DHCP
Le protocole DHCP est gr, au niveau serveur, par le dmon dhcpd. Ce dmon se configure par
l'intermdiaire du fichier de configuration /etc/dhcpd.conf, dans lequel se trouvent les dfinitions des
rseaux configurer, ainsi que les diffrentes informations qui doivent tre communiques aux clients.
Ce fichier de configuration peut contenir plusieurs dclarations de rseau diffrentes, chacune tant
introduite par le mot cl subnet. Ces dclarations permettent de dfinir les options pour les clients de
diffrents rseaux de manire indpendante, mais si certaines de ces options sont communes tous vos
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 381

sous-rseaux, vous pouvez les factoriser en tte du fichier dhcpd.conf. Par exemple, le fichier de
configuration 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 {
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 configurer les deux rseaux 192.168.1.0 et 192.168.53.0 en spcifiant un masque de sous-
rseau gal 255.255.255.0 et une dure de bail d'adresse IP par dfaut de 10 minutes (option default-
lease-time) et maximale d'un 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 fichier de configuration dhcpd.conf n'est pas bien
complique. Le mot cl subnet doit tre suivi de l'adresse du rseau sur lesquels les clients configurer
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 spcifie par le mot cl range suivi de l'adresse de dbut et de l'adresse de fin de la plage. Il est
galement possible d'attribuer des adresses fixes 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 l'adresse Ethernet de l'interface rseau de la machine
cliente, et o fixed-address spcifie l'adresse IP que cette machine doit utiliser pour cette interface.
Enfin, un grand nombre d'options peuvent galement tre spcifies, par exemple pour dfinir 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 fichier de configuration adapt votre installation, il ne vous restera plus
qu' lancer le dmon dhcpd. Celui-ci utilise la syntaxe suivante :
dhcpd interface0 [interface1 [...]]

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 382

o interface0, interface1, etc., sont les interfaces rseau utilises pour accder aux rseaux configurer
en DHCP. Ces interfaces doivent tre configures avec des adresses de rseau pour lesquelles il est
possible de trouver une section subnet correspondante dans le fichier de configuration /etc/dhcpd.conf.
Enfin, la commande de dmarrage du dmon dhcpd pourra tre place dans les fichiers d'initialisation
du serveur DHCP.
Note : Le dmon dhcpd utilise les fonctionnalits d'accs direct aux cartes rseau et de filtrage des
paquets du noyau Linux pour couter sur le rseau les demandes de configuration par DHCP des
clients. Par consquent, vous devrez activer ces options dans la configuration du noyau si ce n'est dj
fait. Pour cela, il vous faudra cocher les options Packet socket , Packet socket: mmapped IO et
Socket Filtering du menu Networking options . Vous devrez galement activer l'option IP:
multicasting dans la liste des options pour le protocole IP afin de permettre au dmon d'effectuer des
missions de paquets en mode broadcast. Le dtail de la configuration et de la compilation du noyau a
t vu dans la Section 7.3.
9.7. Systmes de fichiers en rseau
L'une des utilits principales d'un rseau est de permettre le partage des fichiers entre plusieurs
ordinateurs. Cela ncessite de disposer d'un systme de fichiers rseau sur les machines qui dsirent
accder des fichiers d'une autre machine, et d'un programme serveur sur les machines ainsi accdes
par les clients.
Il existe deux grands standards de protocole pour les systmes de fichiers en rseau. Le premier
standard fonctionne quasiment exclusivement sous Unix, il s'agit du protocole NFS (abrviation de
l'anglais 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 (abrviation
de l'anglais 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
environnements homognes, il est assez difficile de faire communiquer les deux types de systmes.
Les principaux problmes proviennent de l'impossibilit d'utiliser le protocole rseau NetBIOS d'IBM
sur les machines Unix, et des limitations des systmes Microsoft en ce qui concerne la gestion des
utilisateurs, les droits d'accs et les liens symboliques. De plus, la diffrence de gestion des fins de
lignes dans les fichiers textes entre Unix et les systmes Microsoft pose des problmes qui peuvent
difficilement tre rsolus de manire systmatique.
Malgr ces limitations, les machines fonctionnant sous DOS ou Windows peuvent accder aux
systmes de fichiers 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 fiabilit et des performances honntes. L'utilisation 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 difficults. La principale difficult est
ici la ncessit d'encapsuler NetBIOS dans le protocole TCP/IP. En effet, le protocole SMB utilise les
messages NetBIOS, protocole qui n'est pas gr nativement par les machines Unix. Dans tous les cas,
des logiciels complmentaires sont ncessaires.
9.7.1. Installation d'un serveur de fichiers NFS
L'installation d'un serveur NFS est la solution de prdilection pour le partage des fichiers sous Unix. Il
faut savoir cependant que NFS n'offre pas des performances remarquables d'une part, et qu'il ouvre des
brches dans la scurit du systme d'autre part.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 383

Comme il l'a t dit ci-dessus, l'installation d'un serveur NFS requiert l'utilisation de programmes
spcifiques. 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 fichiers NFS, et nfsd effectue les requtes
d'accs aux fichiers pour les clients. Par ailleurs, ces deux dmons utilisent les mcanismes d'appels de
procdure distance RPC (abrviation de l'anglais Remote Procedure Call de Sun
Microsystems. Ces services sont dsormais disponibles sur toutes les machines Unix et constitue la
norme 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 l'excution 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 identifi par un numro de programme unique, ainsi qu'un
numro de version. Lorsqu'ils dmarrent, les serveurs s'enregistrent 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
demandent les numros de port des autres serveurs. Bien entendu, le portmapper doit tre toujours
contactable, ce qui implique qu'il utilise systmatiquement le mme numro de port. Par convention, le
portmapper est identifi 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 fichiers passent donc par le lancement de ces trois dmons : le dmon
portmapper, le dmon mountd et le dmon nfsd. Les fichiers 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 fichiers, il est
probable que votre distribution fasse le ncessaire dans ses scripts de dmarrage.
Note : Il est prvu d'intgrer les fonctionnalits de serveur NFS dans le noyau de Linux. Cependant, le
serveur de fichiers du noyau n'est pas encore finalis, et ne sera donc pas dcrit ici.
Une fois les dmons lancs, vous pourrez configurer les systmes de fichiers exports par votre
serveur. Ces systmes de fichiers sont en fait de simples rpertoires que vous mettez disposition de
certaines machines. La liste de ces rpertoires est place dans le fichier de configuration /etc/exports.
Chaque ligne de ce fichier 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 d'utiliser les caractres gnriques '?' et '*'
afin de spcifier des groupes de machines.
Des options peuvent tre utilises pour chaque machine, l'aide de la syntaxe suivante :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 384

machine(options)

o machine est l'une des entres de la liste de machines d'une ligne du fichier 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.
Le problme fondamental de NFS est la scurit. En effet, les fichiers sont exports par dfaut avec un
identificateur d'utilisateur qui est celui qui possde le fichier sur la machine serveur. Or il est tout fait
possible que cet identificateur ne correspond pas au mme utilisateur sur tous les clients. Cela signifie
que les utilisateurs des machines clientes peuvent parfaitement avoir accs des fichiers 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 fichiers exports. La
premire, qui est aussi la plus restrictive, est d'attribuer les fichiers exports un utilisateur ne
disposant de quasiment aucun droit (opration que l'on nomme souvent squashing de l'utilisateur ).
Cet utilisateur spcial est l'utilisateur nobody , dont l'identificateur est 65534 par dfaut. Ainsi, tous
les clients accdent ces fichiers au nom de l'utilisateur nobody, et ne peuvent donc pas modifier les
fichiers du serveur. Le squashing de l'utilisateur 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 l'identificateur des
utilisateurs du client partir de leur nom. Ainsi, chaque fichier est export avec l'identificateur de
l'utilisateur qui porte le mme nom que celui qui possde le fichier accd sur le serveur. Les
problmes de scurit poss par cette solution sont normes : rien ne garantit que deux utilisateurs
distincts sur deux machines diffrentes ne puissent pas avoir le mme nom d'une part, et un attaquant
potentiel peut utiliser le dmon ugidd pour obtenir la liste des utilisateurs de la machine cliente d'autre
part (ce qui constitue dj la moiti du travail pour s'introduire dans le systme de la machine cliente).
Cependant, cette solution est trs pratique pour les rseaux dont on contrle chaque machine,
condition de restreindre l'accs au dmon ugidd au serveur uniquement, par exemple en ayant recours
tcpd.
La troisime solution est de dfinir sur le serveur l'association entre les identificateurs des utilisateurs
du serveur et les identificateurs du client, ce pour chaque machine cliente. Cette technique est sre,
mais nettement plus complique mettre en uvre.
Enfin, la dernire solution est d'utiliser les services d'information du rseau NIS (abrviation de
l'anglais Network Information Service ), qui permettent de dfinir un certain nombre d'informations
de manire globale sur un rseau. En particulier, il est possible de centraliser la dfinition des
utilisateurs et des mots de passe. Cette solution est trs lourde mettre en uvre, puisqu'elle ncessite
de configurer NIS au pralable. Elle n'est donc mise en place que sur les grands rseaux, et un
particulier n'a pas de raisons d'y recourir ( moins de vouloir explorer ces mcanismes bien entendu).
Nous n'en parlerons donc pas.
Toutes ces techniques peuvent tre actives l'aide d'options fournies dans la liste des options pour
chaque machine dclares dans le fichier de configuration /etc/exports. Les options utilises sont
dcrites ci-dessous :
l'option all_squash permet d'exporter tous les fichiers comme appartenant l'utilisateur
nobody. C'est l'option la plus sre, mais aussi la plus restrictive ;
l'option map_daemon permet d'utiliser le dmon ugidd, qui doit tre lanc sur les machines
clientes et accessibles du serveur. L'accs aux rpertoires exports sera refus si ce dmon ne
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 385

peut tre contact par le serveur NFS. C'est certainement la solution la plus pratique pour un
particulier ;
l'option map_static=fichier permet d'utiliser un fichier de correspondance des
identificateurs des utilisateurs du serveur NFS sur les identificateurs des utilisateurs de la
machine cliente.
Comme on peut le voir, cette dernire option permet de dfinir spcifiquement, pour chaque machine,
la correspondance des identificateurs d'utilisateurs. Le fichier fourni en paramtre l'option
map_saic contient un certain nombre de lignes, chacune dfinissant l'association entre les
identificateurs d'utilisateurs de la machine distante et les identificateurs de ces utilisateurs sur le
serveur. Ces lignes sont introduites l'aide du mot cl uid. Il est galement possible de donner les
correspondances sur les groupes des utilisateurs avec le mot cl gid :
# Exemple de fichier de correspondance d'identificateurs :
# client serveur
uid 0-99 -
uid 500-1000 1000
gid 0-49 -
gid 50-100 1000
Dans l'exemple donn ci-dessus, les utilisateurs ayant un identificateur compris entre 0 et 99 inclus
seront associs l'utilisateur nobody (ils subissent le squashing ). Il en est de mme pour les
groupes allant de 0 49. En revanche, les utilisateurs dont les identificateurs vont de 500 1000 sur la
machine cliente se voient respectivement considrs comme les utilisateurs d'identificateur 1000
1500 par le serveur NFS. De mme, les groupes d'identificateurs 50 100 sont considrs comme les
groupes d'identificateurs 1000 1050.
L'exemple qui suit va permettre d'claircir un peu ces notions. Il montre comment les trois types de
contrle des identificateurs 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 l'utilisateur 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 fichier /etc/nfs/192.168.5.2.map utilis dans la troisime ligne dfinit 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 386

Les informations stockes dans le fichier /etc/exports sont prises en compte lors de l'excution de la
commande exportfs. Cette commande est gnralement excute chaque dmarrage de la machine
dans les scripts de dmarrage du systme, avec l'option -a. Cette option permet d'exporter tous les
systmes de fichiers rfrencs dans /etc/exports, tout comme la commande mount utilise cette option
pour monter tous les systmes de fichiers au dmarrage.
chaque modification du fichier /etc/exports, il est ncessaire de signaler cette modification au dmon
mountd. Cela peut tre fait simplement l'aide de la commande suivante :
exportfs -a
9.7.2. Configuration d'un client NFS
Une fois la configuration du serveur NFS effectue, il ne reste plus qu' configurer 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 d'une machine fonctionnant sous Linux.
Du point de vue du client, les fichiers accds par NFS sont considrs comme des fichiers normaux
d'un systme de fichiers classique. Ils sont donc grs directement par le noyau, en tant que systme de
fichiers part entire. L'utilisation de NFS est donc directe, pour peu que l'on ait activ les
fonctionnalits NFS dans le noyau.
Encore une fois, vous devrez modifier la configuration du noyau si celui fourni avec votre distribution
ne gre pas les systmes de fichiers NFS (ce qui est fort peu probable). La seule fonctionnalit
activer, en plus de la gestion du rseau bien entendu, est l'option NFS filesystem support du menu
Network File Systems (ce menu est un sous-menu du menu Filesystems si vous utilisez la
configuration en mode texte).
Lorsque le noyau sera compil et install, il sera capable d'utiliser les systmes de fichiers NFS
nativement. Vous n'aurez donc pas besoin des dmons nfsd et mountd, tout sera pris en charge par le
noyau. Cependant, si le serveur exporte ses rpertoires avec l'option map_daemon, il sera ncessaire
de lancer le dmon ugidd sur la machine cliente (le fichier excutable se nomme rpc.ugidd et se trouve
dans le rpertoire /usr/sbin/). Il est conseill de lancer ce dmon partir d'inetd, en l'encapsulant
l'aide du dmon tcpd.
Le montage d'un systme de fichiers NFS se fait classiquement, avec la commande mount. Il suffit
simplement ici de prciser le type de systme de fichiers nfs avec l'option -, et d'utiliser la
syntaxe suivante pour le fichier 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
fichiers NFS dans le rpertoire /mnt :

mount -t nfs \
mon.serveur.nfs:/mon/rpertoire/export /mnt
Le systme de fichiers NFS accepte des options permettant d'optimiser les transferts d'informations.
Ces options peuvent tre fournies en ligne de commande mount l'aide de l'option -o. Les plus
utiles sont sans doute rsize, qui permet de fixer la taille des blocs de donnes transfrs pour la
lecture des fichiers, et wsize, qui permet de fixer cette taille pour l'criture des fichiers. Il est
recommand d'utiliser des paramtres raisonnables afin d'viter des erreurs de transfert et des pertes de
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 387

donnes. La valeur par dfaut est 1024, mais il est recommand d'utiliser des blocs de taille 8192 pour
obtenir de meilleures performances. Ainsi, la commande prcdente pourra tre optimise comme
suit :
mount -t nfs -o rsize=8192,wsize=8192 \
mon.serveur.nfs:/mon/rpertoire/export /mnt
Bien entendu, ces valeurs dpendent de la bande passante de votre rseau, et vous aurez sans doute
effectuer des tests de transferts de fichiers pour trouver les valeurs optimales.
9.7.3. Installation d'un serveur de fichiers 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.
L'installation d'un serveur SMB requiert en effet l'utilisation de deux dmons qui prennent en charge
les services fournis par les serveurs de fichiers SMB. Ces dmons utilisent tous deux le fichier de
configuration 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 d'utiliser le systme de fichiers
SMB du noyau.
Ces dmons, ainsi que tous les outils ncessaires l'utilisation 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 d'utilisation. Elle est normalement
fournie avec toutes les distributions. La version actuelle est la 3.0.3. Si ce n'est pas celle fournie avec
votre distribution, il est fortement recommand d'effectuer une mise jour.
L'installation de Samba ne pose pas de problme particulier. Nous ne la dcrirons donc pas ici. Sachez
cependant qu'elle 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 fichiers sont fournis avec
Samba et restent ncessaires.
Comme on l'a vu ci-dessus, le protocole SMB se base sur le protocole de bas niveau NetBIOS.
NetBIOS est un protocole trs primitif, qui n'utilise pas un mcanisme d'adressage semblable celui
de la plupart des protocoles modernes. Chaque machine est identifie sur le rseau par un nom unique,
qu'elle doit dclarer avant de pouvoir utiliser les ressources du rseau. Tout nouvel arrivant sur le
rseau signale donc aux autres qu'il dsire utiliser son nom, afin de dterminer si ce nom est dj pris
ou non par une autre machine.
L'un des plus gros dfauts de NetBIOS est tout simplement qu'il n'est pas routable tel quel, et qu'il est
impossible de structurer un rseau en se basant seulement sur les noms NetBIOS. C'est pour cette
raison que l'on encapsule souvent NetBIOS dans un protocole plus volu capable de traverser les
routeurs, comme TCP/IP par exemple. C'est 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 configurs pour encapsuler NetBIOS dans TCP/IP. L'utilisation de TCP/IP est
de toutes manires fortement recommande si l'on veut raliser un rseau un tant soit peu srieux, et
les versions rcentes de Windows utilisent galement cette technique.
Outre les noms d'ordinateurs, le protocole NetBIOS permet de dfinir des groupes d'ordinateurs, qui
contiennent tous les ordinateurs supposs changer des informations couramment. Un ordinateur ne
peut faire partie que d'un seul groupe, mais il peut galement ne faire partie d'aucun groupe s'il le
dsire. Ces groupes d'ordinateurs sont crs uniquement en fonction du travail qu'ils 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 d'un groupe, un peu comme le
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 388

protocole TCP/IP permet d'utiliser des adresses de diffusion. Dans le monde Windows, ces groupes de
machines sont plus couramment dnomms des workgroup , et il n'y a en fait aucune diffrence
technique. Pour le protocole SMB, chaque ordinateur du rseau doit faire partie d'un groupe bien
dfini, bien que ce ne soit pas une ncessit au niveau de NetBIOS.
Lorsqu'un groupe de travail possde une base de donnes centrale permettant de raliser
l'authentification des utilisateurs lors des accs aux machines par le rseau, on dit qu'il s'agit d'un
domaine. En pratique, un domaine n'est donc rien d'autre qu'un groupe de travail dont fait partie un ou
plusieurs serveurs d'authentification. 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 l'indique, ces serveurs sont capables de remplacer le serveur primaire en cas de
dfaillance de celui-ci. Ils maintiennent donc une copie des tables d'utilisateurs, et la synchronisent
rgulirement avec celle du serveur primaire. Enfin, un domaine peut contenir des serveurs membres,
qui sont comme des serveurs de sauvegarde, ceci prs qu'ils 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.
Afin 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
configur en tant que serveur WINS (abrviation de l'anglais Windows Internet Name Server ), afin
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 qu'un 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 l'option -, 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 d'effectuer la gestion des utilisateurs et des partages. Il doit tre lanc galement
avec l'option - si l'on veut qu'il 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
modifiant 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
ressources 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
fichiers Unix. Le protocole SMB ne supporte d'ailleurs qu'une partie infime de ces fonctionnalits. De
plus, la gestion des droits sur les fichiers exports par un serveur de fichiers Windows se base
gnralement sur le modle de scurit des d'ACLs ( Access Control List ), plutt que sur le modle
de scurit Unix classique. Samba peut donc tre configur pour utiliser le support des ACLs natif des
systmes de fichiers Linux, ainsi que pour utiliser les modles de scurit primitifs des anciennes
versions de Windows.
La premire difficult rsoudre concerne la gestion des droits d'accs aux fichiers des partages. Sous
Unix, chaque fichier et chaque rpertoire dispose de droits d'accs, et seuls les utilisateurs autoriss
peuvent les manipuler. Dans le monde Windows, il n'y a quasiment pas de notion d'utilisateur, et en
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 389

gnral pas de gestion de la scurit. Seuls Windows NT/2000/XP disposent de ces fonctionnalits,
condition qu'ils utilisent des systmes de fichiers 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 fichiers d'un partage. Il existe
principalement deux modes de contrle d'accs aux partages SMB :
le contrle d'accs au niveau ressource, qui se fait partir d'un mot de passe unique pour la
ressource, sans tenir compte de l'utilisateur qui cherche y accder ;
le contrle d'accs au niveau utilisateur, qui ncessite de fournir un nom d'utilisateur et un mot
de passe.
Le contrle d'accs au niveau utilisateur ncessite de se trouver dans un domaine, et non dans un
simple Workgroup. Il faut donc disposer d'un serveur de domaine afin de raliser l'authentification des
utilisateurs qui cherchent accder ces ressources. Pour des raisons commerciales, Microsoft s'est
arrang pour que seuls Windows NT, Windows 2000 et Windows XP serveur puissent servir de
contrleurs de domaine, ce qui fait qu'il est impossible d'utiliser le contrle d'accs 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 configuration). Il va de soi que le contrle d'accs 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 fixer les droits de lecture et d'criture pour
celui qui accde aux fichiers du partage. Les droits d'excution n'ont pas de signification sous
Windows puisque, contrairement aux fichiers Unix, le type des fichiers est dtermin par leur
extension. Les notions de scurit des partages sont donc profondment diffrentes de celles utilises
par Unix, surtout pour le contrle d'accs au niveau ressource, puisqu'aucun nom d'utilisateur n'est
requis lors de l'authentification ! Mais ce n'est pas tout. Les fichiers Unix appartiennent tous un
utilisateur et un groupe d'utilisateurs, chose qui n'a pas de signification pour Windows. De plus, les
systmes de fichiers Unix font la distinction entre les majuscules et les minuscules dans les noms de
fichiers, 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 fichiers
accds par SMB n'empche pas le serveur de fichiers de contrler les accs effectus par le client. Si
par exemple, un fichier est marqu comme tant en lecture seule, aucun client ne peut y crire, mme
par l'intermdiaire d'un partage accd en lecture et criture.
Pour rsoudre tous ces problmes, Samba dispose d'un grand nombre d'options, qui peuvent tre
utilises dans le fichier de configuration /etc/samba/smb.conf. Ces options permettent d'indiquer la
manire dont l'authentification doit tre faite, les droits avec lesquels les fichiers sont accds ou crs,
les utilisateurs au nom desquels les fichiers sont crs, et le comportement suivre lorsqu'un 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
fonctionnalits 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
l'excellent livre Using Samba de Robert Eckstein, publi aux ditions O'Reilly. Une version en
ligne de ce livre est fournie avec les sources de Samba et complte ainsi la documentation officielle de
ce programme.
La plupart des distributions fournissent un fichier de configuration /etc/samba/smb.conf contenant la
plupart des options par dfaut, plus quelques exemples de configuration. Par exemple, les rpertoires
des utilisateurs sont souvent exports par dfaut. Vous pourrez bien entendu modifier ce fichier de
configuration. Il est donc peut-tre ncessaire de donner quelques prcisions.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 390

Le fichier smb.conf est structur en sections permettant de fixer les paramtres de diffrentes
fonctionnalits du logiciel. Chaque section est introduite par son nom, donn entre crochets. Certaines
sections sont spcifiques Samba et d'autres permettent de dfinir les partages que vous dsirez crer.
Les paramtres dfinis dans les sections se prsentent sous la forme de couple paramtre = valeur ,
o paramtre est le nom d'un 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
particulirement importante, car elle fixe les paramtres globaux de Samba, ainsi que les valeurs par
dfaut des paramtres des autres sections. La section [global] suivante peut servir d'exemple :
[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 d'utilisateurs 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 dfinir 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 dfini 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 l'utilisateur qui se connecte, etc. Toutes ces
variables sont dcrites dans la page de man du fichier 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 s'agit du groupe de travail monrezo .
Viennent ensuite les options de scurit. Le mot cl security permet de dfinir le mode de contrle
d'accs aux partages mis disposition des clients par le serveur Samba. La valeur user indique que ce
contrle d'accs 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 d'accs au niveau ressource, si l'on utilise la valeur share. Dans ce cas, Samba
essaiera de retrouver l'utilisateur qui cherche se connecter partir de son mot de passe. Il faut donc
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 391

ajouter dans ce cas une ligne telle que celle-ci dans la section globale ou dans l'une des sections
dfinissant 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 d'utilisateur est fourni par le client pour accder cette ressource, ce nom est
utilis directement. Samba mmorisera galement ce nom pour les demandes d'accs ultrieures la
ressource partage. Cet algorithme n'est pas trs sr, car un utilisateur peut se connecter par hasard au
nom d'un autre. Aussi n'est-il pas recommand d'utiliser le contrle d'accs 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 n'tant pas sr, Microsoft a dcid d'adopter une
nouvelle technique, dans laquelle les mots de passe transfrer sont chiffrs 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 configuration, l'aide de
l'option encrypt password. Cependant, si vous dcidez d'activer le chiffrement des mots de passe, vous
devrez galement crer un fichier de mots de passe pour les clients SMB. L'emplacement de ce fichier
est indiqu avec l'option smb passwd file.
Le format du fichier de mot de passe de Samba ressemble fortement celui du fichier de mot de passe
Unix /etc/passwd. Vous pourrez trouver dans la documentation de Samba une description dtaille de
ce fichier. Cependant, la chose la plus importante, c'est bien sr de pouvoir ajouter des entres pour
chaque utilisateur dans ce fichier. Cette opration se fait avec l'utilitaire smbpasswd. Excute sous le
compte root, la commande suivante permet d'ajouter un utilisateur et de dfinir son mot de passe :
smbpasswd -a utilisateur

o utilisateur est le nom de l'utilisateur dont on veut crer un nouveau mot de passe. L'utilisateur 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 fichiers. En fait, il est mme possible que plusieurs utilisateurs utilisent un mme
compte, cr uniquement pour les partages SMB. Samba fournit donc la possibilit d'utiliser un fichier
de correspondance entre les noms des utilisateurs avec l'option username map. Le format du fichier de
correspondance est trs simple, puisqu'il est constitu de lignes dfinissant chacune une association
entre un nom de login Unix et un nom d'utilisateur Windows. Ces lignes utilisent la syntaxe suivante :
login = utilisateur

o login est le nom de login de l'utilisateur sur la machine Unix, et utilisateur est le nom qu'il utilisera
pour accder aux partages.
L'option guest ok permet d'autoriser les connexions sans mot de passe sous un compte spcial, que l'on
nomme le compte invit. Pour cela, il suffit de lui affecter la valeur yes. Cette option peut tre fixe
no dans la section de configuration globale, et redfinie dans les sections spcifiques de certains
partages. Dans tous les cas, les connexions qui s'effectuent en tant qu'invit doivent utiliser un compte
utilisateur Unix classique. Ce compte peut tre dfini l'aide de l'option guest account, en gnral,
l'utilisateur nobody utilis par NFS est le plus appropri.
Enfin, il est possible de dfinir des paramtres rseau dans la section de configuration globale. Ces
paramtres rseau permettent de fixer des options de scurit complmentaires et des options
d'optimisation. L'option 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 392

interfaces only prend la valeur yes. Ces options conviennent parfaitement pour un rseau local de
particulier. L'option socket options quant elle permet de dfinir les paramtres de fonctionnement
des communications TCP. L'option TCP_NODELAY indique au systme d'envoyer les paquets TCP
ds que Samba le demande, sans chercher en regrouper plusieurs pour optimiser la taille des paquets.
Cette option acclre significativement le fonctionnement des programmes tels que Samba, qui utilise
beaucoup de petits paquets pour envoyer des requtes ou des rponses. Sans cette option, le systme
chercherait regrouper ces paquets, mme si Samba n'en a pas d'autres envoyer, et ralentirait ainsi
inutilement les transferts de donnes.
Chaque partage fourni par le serveur SMB dispose galement d'une section, dont le nom est le nom
utilis pour ce partage. Ces sections sont beaucoup plus simples que la section global, comme le
montre l'exemple 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 d'accs :
writeable = yes
guest ok = yes
Comme vous pouvez le constater, l'option path permet de dfinir le rpertoire utilis pour stocker les
fichiers 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 fichiers.
L'option comment donne la description du partage, telle qu'elle 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 spcifi l'aide de l'option volume. Enfin, les options d'accs
utilises dans cet exemple permettent d'autoriser l'criture dans les fichiers de ce partage, et d'autoriser
les accs en tant qu'invit (c'est--dire sans mot de passe).
Samba dispose d'une fonctionnalit intressante afin de dfinir automatiquement un partage pour
chacun des rpertoires personnels des utilisateurs dclars dans le serveur. Lorsqu'un client cherche
accder un partage qui n'est pas dfini par une section qui lui est propre, Samba tente de le localiser
un rpertoire personnel d'utilisateur portant ce nom. S'il le trouve, il utilisera ce rpertoire pour
effectuer le partage automatiquement. Les paramtres de ce partage automatique sont dfinis dans la
section [homes], dont vous trouverez un exemple ci-dessous :
[homes]
comment = Rpertoires personnels
browsable = no
writable = yes
L'utilisation de l'option browsable = no ici sert simplement indiquer qu'il ne doit pas apparatre de
partage nomm homes. En effet, ce qui est dsir ici, c'est d'exposer les noms des rpertoires
personnels des utilisateurs, pas le partage homes lui-mme. Les autres options sont les mmes que
pour les partages normaux.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 393

La section [homes] peut poser quelques problmes, puisqu'elle partage galement le compte root. Cela
n'est certainement pas le comportement dsir. Il est mme fortement recommand d'interdire les
connexions pour les utilisateurs privilgis du systme. Cela peut tre ralis en utilisant l'option
invalid users :
invalid users = root bin daemon adm sync shutdown \
halt mail news uucp operator gopher
En fait, il est conseill de placer cette option dans la section [global], afin d'interdire les connexions de
ces utilisateurs sur tous les partages.
Enfin, Samba fournit une fonctionnalit comparable la section [homes] pour les imprimantes
partages. Il est en effet capable d'analyser le fichier de configuration /etc/printcap pour dterminer la
liste des imprimantes installes, et les partager pour les clients Windows. Ces imprimantes
apparatront donc comme des imprimantes partages classiques. Pour cela, il suffit d'ajouter les lignes
suivantes dans la section [global] du fichier smb.conf :
[global]
# Dfinit le type d'impression utilis (bsd ou cups) :
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. Si
vous utilisez le systme d'impression BSD, vous devez fixer l'option printing bsd. Si vous utilisez
CUPS, la valeur utiliser est cups.
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 d'exemple :
[printers]
comment = Imprimantes
browseable = no
printable = yes
writeable = no
guest ok = no
path = /tmp
create mode = 0700
L'option browseable a ici la mme signification que dans la section [homes]. On ne dsire en effet pas
qu'un partage portant le nom printers apparaisse dans les voisinages rseau des machines Windows !
En revanche, l'option printable permet d'indiquer clairement que ces partages sont des imprimantes. Il
est vident que l'on ne peut pas crire sur une imprimante, l'option writeable est donc fixe no. Enfin,
les impressions ne sont autorises que pour les utilisateurs identifis, et l'utilisateur invit n'a pas le
droit de soumettre un travail d'impression.
Le mcanisme utilis par Samba pour imprimer un document est le suivant. Lorsqu'un client demande
une impression sur une des imprimantes partages, Samba copie le fichier que le client lui envoie en
local. Ce fichier est ensuite communiqu au gestionnaire d'impression Unix, en l'occurrence lpr sous
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 394

Linux. Celui-ci imprime le fichier et le supprime du disque. Dans la section [printers], l'option path
permet d'indiquer dans quel rpertoire les fichiers temporaires envoys par les clients doivent tre
stocks. Il est tout fait cohrent de les placer dans le rpertoire /tmp comme dans l'exemple donn ci-
dessus. Enfin, il est logique de protger ces fichiers contre les autres utilisateurs. Cela est ralis
l'aide de l'option create mode, qui fixe les droits de ces fichiers 0 pour tout le monde, sauf pour le
compte root, leur cration. Ainsi, seuls les programmes fonctionnant sous le compte root (donc
Samba et la commande lpr) peuvent lire, crire et effacer ces fichiers.
Il est bien entendu possible de dfinir les imprimantes manuellement, raison d'une section par
imprimante. Ce type de configuration ne sera toutefois pas dcrit ici.
Toute modification du fichier de configuration 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
commandes suivantes :
killall -HUP smbd
killall -HUP nmbd
Comme on peut le voir, le fichier de configuration smb.conf n'est pas trs compliqu, mais utilise un
grand nombre d'options. Heureusement Samba fournit l'outil de configuration SWAT (abrviation
de l'anglais Samba Web Administration Tool ), qui permet d'effectuer la configuration de Samba
graphiquement. Comme son nom l'indique, SWAT joue le rle de serveur Web, et peut tre utilis
avec n'importe 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 fichier de
configuration /etc/services :
swat 901/tcp
Vous devrez galement ajouter une ligne dans votre fichier /etc/inetd.conf, afin que le dmon inetd
puisse lancer SWAT automatiquement lorsqu'un client cherche l'utiliser 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 modification de inetd.conf l'aide de la commande :

killall -HUP inetd
Vous pourrez alors accder la configuration graphique de SWAT l'aide d'un navigateur Web, en
utilisant simplement l'URL suivante :
http://localhost:901
SWAT demandera bien entendu le nom de l'utilisateur root et son mot de passe pour permettre la
modification du fichier smb.conf. Notez qu'il est fortement dconseill de laisser la possibilit de
raliser une connexion Web sur le compte root, et que vous ne devriez pas autoriser les connexions
non locales sur le port TCP 901. L'utilisation de SWAT ne pose pas vraiment de problmes et ne sera
donc pas dcrite plus en dtail ici.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 395

9.7.4. Configuration d'un client SMB
L'utilisation des volumes partags par l'intermdiaire du protocole SMB sous Linux est trs simple.
Elle se fait exactement comme pour NFS : il suffit simplement de monter le volume dans un rpertoire
vide de l'arborescence de votre systme de fichiers.
Pour que cela puisse tre ralisable, il faut bien entendu que le noyau supporte le systme de fichiers
SMB. Ce systme de fichiers est considr par le noyau exactement comme le systme de fichiers
NFS : il s'agit d'un systme de fichiers rseau. Vous pourrez donc activer le support de ce systme de
fichiers l'aide de l'option de configuration 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 configuration en mode texte). La
compilation du noyau et son installation ont t dcrites en dtail dans la Section 7.3.
Lorsque vous aurez configur et install ce noyau, vous pourrez monter les volumes partags par des
serveurs de fichiers SMB (qu'il s'agisse de serveurs Linux ou Windows) exactement comme n'importe
quel systme de fichiers, et accder leurs ressources. Malheureusement, la commande moun du
systme ne supporte pas encore compltement le systme de fichiers SMB. Elle utilise donc un
programme complmentaire nomm smbmoun, fourni avec la distribution de Samba. Notez bien que
ce programme ne fait pas officiellement partie de Samba, il est seulement fourni en tant qu'utilitaire
complmentaire pour Linux. Bien qu'il fasse galement partie d'un paquetage indpendant, il est
recommand d'utiliser la version fournie avec Samba. Cela signifie 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 modifie un jour pour intgrer toutes les fonctionnalits de la
commande smbmount, ce qui rendra inutile l'installation de Samba sur les postes clients.
Quoi qu'il 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 fichiers 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 d'une manire gnrale), et que vous pouvez utiliser indiffremment les majuscules
ou les minuscules.
L'utilisation des slashs la place des antislashs dans le nom du partage est due au fait que l'antislash
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,
l'antislash est galement un caractre d'chappement 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
d'un antislash d'chappement ! Il faut donc doubler tous les antislashs, et la commande prcdente
devient particulirement longue et peu pratique avec cette syntaxe :
smbmount "\\\\smbserver\\donnes" /mnt
Il est trs facile de faire des erreurs avec de telles commandes, aussi je ne vous la conseille pas.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 396

En fait, il est possible de faire en sorte que la commande mount classique du systme puisse tre
utilise pour raliser les montages de partages SMB partir de la version 2.0.6. ou plus de Samba.
Pour cela, il suffit de crer dans le rpertoire /sbin/ un lien symbolique mount.smbfs vers la commande
smbmount. Lorsqu'on utilisera la commande mount avec le type de systme de fichiers 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 l'utiliser comme un systme de fichiers classique. Lorsque
vous aurez fini de l'utiliser, vous pourrez simplement le dmonter, avec la commande smbumount :
smbumount /mnt
Il est galement possible d'utiliser la commande systme classique umount, mais cela ncessite de
repasser sous le compte root, ou de fixer le bit setuid sur l'excutable de umount, ce qui est un norme
trou de scurit. La commande smbumount en revanche peut tre setuid, car elle vrifie que
l'utilisateur ne cherche dmonter que les partages qu'il a lui-mme mont.
Les partages au niveau ressource ne prennent pas en compte la notion d'utilisateur et de groupe
d'utilisateurs des systmes de fichiers Unix classiques. Par consquent, le propritaire et le groupe des
fichiers accds par un partage de ressources sont fixs par dfaut l'utilisateur 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 lorsqu'on monte un partage en tant que root pour le compte d'un autre utilisateur.
Pour rsoudre ce problme, il est possible de prciser le nom de l'utilisateur et son groupe l'aide 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 l'utilisateur et du groupe
auquel les fichiers 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 l'aurez 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 fichiers SMB.
Pour Windows, il s'agit du mot de passe attribu au partage. Pour les serveurs de fichiers Samba, il
s'agit du mot de passe de l'utilisateur au nom duquel se fait le partage, ou du mot de passe SMB
enregistr dans le fichier de mots de passe smbpasswd de Samba. Dans tous les cas, ce mot de passe
est demand, mme s'il est vide. La commande smbmount peut accepter une option password, qui
permet de prciser ce mot de passe. Cependant, il est fortement dconseill de l'utiliser, et ce pour
deux raisons. Premirement, le mot de passe apparat en clair lorsqu'il est saisi, et la ligne de
commande peut tre vue par n'importe quel utilisateur avec la commande ps. Cela pose donc un
problme de scurit vident. Deuximement, l'option password n'est pas reconnue par la
commande mount, et ne peut donc tre utilise qu'avec smbmount. C'est pour cela qu'une autre
solution a t propose, bien qu'encore imparfaite : dfinir le nom d'utilisateur et le mot de passe dans
la variable d'environnement USER. Pour cela, il suffit d'utiliser l'une des commandes suivantes :
export USER=utilisateur%secret
export USER=utilisateur/workgroup%secret

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 397

o utilisateur est le nom d'utilisateur classique, workgroup est le groupe de travail et secret le mot de
passe sur le partage monter. Cette technique n'est pas non plus trs sre, et n'est en aucun cas
pratique.
Une autre solution, plus sre, est de dfinir les paramtres d'identification et d'authentification de
l'utilisateur dans un fichier et de fournir ce fichier en paramtre la commande smbmount l'aide de
l'option credenia1s :
smbmount partage rpertoire -o credentials=fichier

o fichier est le fichier contenant l'identification de l'utilisateur. Ce fichier utilise la syntaxe suivante :

username = utilisateur
password = secret

o utilisateur est le nom de l'utilisateur et secret son mot de passe. Cette technique est la technique
recommande pour raliser le montage de partages SMB directement dans le fichier de configuration
/etc/fstab, car c'est la seule qui permette de ne pas avoir saisir le mot de passe ni d'avoir le dfinir
en clair dans une ligne de commande.
Chapitre 10 : Installation de XWindow
Table des matires

10.1. Gnralits sur XWindow
10.2. Installation de X.org
10.3. Configuration de X.org
10.4. Utilisation du pilote frame buffer du noyau
10.5. Configuration des terminaux X
10.6. Paramtrage des applications et ressources X
10.7. Gestion de la scurit sous XWindow
10.8. Gestion des polices de caractres
10.9. Problmes classiques rencontrs
Ce chapitre dcrit la manire de procder pour installer et configurer X.org, une implmentation libre
de XWindow drive du projet XFree86. Il indique galement comment installer le serveur X pour le
pilote de frame buffer du noyau. L'installation des polices Truetype, qui sont si chres aux utilisateurs
de Windows et des Macintosh, est galement traite. En revanche, il ne dcrira pas comment
configurer les gestionnaires de fentres ni les gestionnaires de bureau, car ces oprations sont
spcifiques celui que vous choisirez d'une part, et spcifiques vos desiderata d'autre part. Pour cela,
vous devrez commencer vous dbrouiller tout seul, lire les pages de manuel et poser les questions
qu'il faut aux personnes qu'il faut. Mais ne paniquez pas, si vous tes arriv jusqu'ici, c'est 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 qu'est XWindow pour pouvoir le configurer et l'utiliser. 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
l'utiliser.
La principale diffrence entre XWindow et les autres environnement graphiques est qu'il s'agit d'un
environnement graphique distribu sur un rseau. La notion de base de XWindow est que l'application
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 398

qui effectue le traitement ne ralise pas elle-mme la gestion de l'environnement graphique. Comme
on l'a dj vu, cette tche est prise en charge par le serveur X, qui est un processus indpendant.
L'application est donc cliente du serveur X, qui lui fournit les services graphiques dont elle a besoin.
Cette sparation a plusieurs consquences :
premirement, l'environnement graphique est isol des fautes des applications qui l'utilisent.
Ainsi, ce n'est pas parce qu'une application a plant en plein cran qu'on 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 s'est
termin. Par exemple, un processus de gravage de CD peut terminer le CD en cours mme s'il
a perdu son interface graphique ;
deuximement, les clients doivent tablir une connexion avec le serveur. Cette connexion est
ralise par l'intermdiaire 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. XWindow fournit par ailleurs des mcanismes de scurit complmentaires, et les
ressources graphiques ne peuvent tre utilises que par les processus qui y sont autorises ;
enfin, comme le client et le serveur X sont deux processus distincts et qu'ils communiquent
par l'intermdiaire d'une connexion rseau, rien n'interdit de lancer le client et le serveur X sur
deux machines distinctes. Ainsi, tout processus dport peut afficher ses donnes en local (et
inversement).
Chaque client doit donc se connecter au serveur X avec lequel il dsire travailler. En pratique, il
n'existe souvent qu'un seul serveur X sur une machine, mais cela n'est 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 d'utiliser les deux crans avec un seul serveur X pour
faire un cran virtuel beaucoup plus grand. Enfin, il est tout fait concevable de lancer plusieurs fois
un mme serveur X, mme si l'on ne dispose que d'une seule carte graphique et d'un seul cran, afin de
pouvoir utiliser plusieurs terminaux X virtuels. Comme on le voit, l'architecture client/serveur de
XWindow lui apporte une trs grande flexibilit.
Les serveurs X utilisent la notion de display pour grer l'affichage. En fait, un display est constitu
d'un clavier, d'une souris et d'un ou plusieurs crans. Le display est donc l'extension de la notion de
terminal pour XWindow. Notez bien qu'il est possible d'utiliser plusieurs crans sur le mme terminal
X. Cependant, un serveur X ne peut prendre en charge qu'un seul terminal X sur une machine, et
chaque display est gr par un serveur X qui lui est propre. Si l'on veut utiliser plusieurs terminaux X
sur une mme machine, il est ncessaire de lancer plusieurs serveurs X, raison d'un 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 d'tablir la connexion avec le serveur X en
charge de ce display. Les displays sont spcifis avec la syntaxe suivante :
machine:display
Comme on le voit, la prsence du champ machine confirme 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 l'un des serveurs X de la machine locale, avec un protocole de
communication optimis. Le champ display quant lui est un numro permettant d'identifier le display
de la machine en question qui doit tre utilis. C'est 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 spcifier l'cran sur lequel l'affichage doit
tre ralis. Pour cela, il suffit de suffixer le nom du display par un point suivi du numro de l'cran :
machine:display.cran
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 399


o le champ cran spcifie le numro de l'cran de ce display sur lequel l'affichage 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 d'indiquer XWindow le display qui
doit tre utilis pour chaque opration graphique effectuer. Il est donc possible pour un programme
de rpartir son affichage 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 d'images mdicales et l'architecture. Les programmes
classiques se contentent d'un seul display et effectuent toutes leurs oprations sur un mme cran. En
revanche, il est possible de configurer les serveurs X pour utiliser automatiquement plusieurs crans
pour un mme display, afin de raliser un cran virtuel gigantesque.
Le display utilis pour un programme doit donc souvent tre fix par un paramtre de sa ligne de
commande. L'option utilise est -display, avec la syntaxe suivante :
programme -display nom

o programme est le programme excuter, et nom est le nom du display tel qu'il a t dcrit ci-
dessus. Par exemple, la commande suivante :

xterm -display :0

permet de lancer le programme xterm et de raliser l'affichage sur le display :0 (sur l'cran par dfaut)
de la machine locale.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 400

Vous pouvez cependant vous passer de l'option -display, condition de dfinir la variable
d'environnement DISPLAY pour fixer le display par dfaut. Vous pouvez fixer la valeur de cette
variable l'aide d'une 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
display porte le numro 0, et l'cran utiliser est le numro 0. En gnral, cette variable
d'environnement est fixe la valeur du display courant lorsqu'on est connect sous XWindow. Par
consquent, vous pouvez lancer vos programmes sans avoir vous proccuper du display qu'ils
doivent utiliser.
En revanche, vous serez oblig de prciser le display utiliser lorsque vous lancerez une application
distance en voulant avoir l'affichage en local. Bien entendu, vous devrez au pralable donner les droits
l'utilisateur distant sur votre display local, faute de quoi les mcanismes de scurit de XWindow lui
interdiront de se connecter (message d'erreur Can't open display ). Nous verrons plus loin la
manire dont XWindow gre la scurit.
10.2. Installation de X.org
Il existe actuellement deux implmentations libres de XWindow : l'implmentation historique,
XFree86, et une branche de XFree86 cre rcemment pour des raisons politiques, X.org. Cette
duplication est de au fait que beaucoup de dveloppeurs n'ont pas eu le sentiment que leurs requtes
taient prises en compte par l'quipe de dveloppement de XFree86, qui est reste trs conservatrice
pendant de longues annes. Ces problmes ont mme provoqu des querelles intestines au sein de
l'quipe de XFree86. N'ayant pu se mettre d'accord, les diffrentes parties ont dcid de dvelopper
leur propre version de XWindow sparment. ces problmes s'est ajout un changement de licence
du projet XFree86 qui, bien que restant libre, n'a pas t du got de tout le monde. C'tait en quelque
sorte la goutte qui a fait dborder le vase.
J'ai pris le parti de dcrire X.org dans ce document, bien que j'estime que l'on doive encore rendre
crdit l'quipe de XFree86. Je considre en effet que les reproches qui sont faits au projet XFree86
sont justifis (lenteur du projet, intgration et mises jour des composants annexes trop lente, refus
d'intgration des modifications ncessaires aux autres projets utilisant XFree86, organisation du projet
monolithique et sans volont de le rendre plus modulaire, entre autres problmes). De plus, il semble
que les principales distributions et constructeurs de matriel informatique aient dcid de suivre cette
voie. Enfin, je considre que le changement de licence de XFree86 n'tait pas ncessaire et relve de la
tentative de putsch de la part de l'quipe de dveloppement actuelle d'une part, et n'a t faite que pour
des raisons politiques d'autre part. Il n'est pas certain que les deux projets subsistent l'avenir, seul
l'avenir dira qui avait raison.
Bien que dvelopps par des quipes diffrentes, XFree86 et X.org sont bass sur les mmes sources
et sont donc totalement compatibles. Cela ne durera pas forcment, car X.org est appel voluer
diffremment et plus vite que XFree86, mais l'heure actuelle, les deux produits n'ont pas eu le temps
de diverger suffisamment pour crer des incompatibilits. Les seules diffrentes se situent donc au
niveau des noms des commandes et des fichiers de configuration, qui ont t renomms dans X.org
pour bien se distinguer de XFree86. Par consquent, si votre distribution utilise XFree86, vous n'aurez
que trs peu d'adaptations faire pour lire ce chapitre.
L'installation de XWindow a t pendant longtemps une tche ardue et risque. prsent, il est
possible d'installer et de configurer cet environnement relativement facilement, et en prenant beaucoup
moins de risques que par le pass. La plupart des distributions installent XWindow et le configurent
automatiquement, ce qui fait que vous n'aurez gnralement rien faire. Les informations de ce
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 401

chapitre ne vous seront donc utiles que pour comprendre comment effectuer des modifications dans la
configuration du systme.
En fait, les seules difficults que vous pourrez rencontrer rsident dans le choix du pilote utilis par le
serveur X pour prendre en charge votre carte graphique et dans sa configuration. L'essentiel de ces
oprations rside donc dans ces deux points stratgiques :
il faut disposer d'un pilote adapt sa carte graphique pour le serveur X ;
si l'cran utilis est relativement ancien (cran cathodique non compatible avec le protocole
DDC), il vous faudra ventuellement connatre les caractristiques de votre matriel
(essentiellement les frquences de balayage horizontales et verticales supportes par votre
moniteur).
Le premier point est quasiment assur de nos jours, car la plupart des cartes graphiques vendues sur le
march de nos jours sont des cartes de marque Intel (surtout pour les puces graphiques intgres au
chipset), nVidia et ATI. Des pilotes sont disponibles pour la plupart des modles de ces fabricants.
En fait, vous devrez essentiellement choisir entre les pilotes libres fournis avec X.org, gnralement
plus stables mais ne supportant pas forcment les dernires cartes graphiques ou la totalit des
fonctions 3D, et les pilotes propritaires fournis par le fabricant, qui ne supportent souvent pas les
anciennes cartes ou qui ne sont pas compatibles avec tous les noyaux, qui sont parfois relativement
instables (surtout les pilotes AMD et, dans une moindre mesure, les pilotes nVidia des anciennes
cartes) mais qui donnent accs l'ensemble des fonctions 3D.
Note : En fait, seul Intel joue le jeu des pilotes libres, bien qu'ATI semble nouveau considrer la
question depuis son rachat par AMD. NVidia quant lui fournit des pilotes propritaires de trs bonne
qualit et la prise en charge des cartes NVidia sous Linux est excellent. Toutefois, cette socit s'est
toujours oppos ce qu'un pilote libre existe ( tel point qu'elle a mme fait pression pour que le code
source du pilote 2D de X.org soit crypt). vous de faire votre choix en fonction de vos contraintes
financires, matrielles et morales...
Si d'aventure vous ne disposez d'aucun serveur X adapt votre matriel (matriel trop rcent pour
lequel le constructeur lui-mme n'a pas encore fourni le pilote), vous pourrez vous rabattre sur le pilote
VESA, qui fonctionne avec toutes les cartes graphiques compatibles avec le standard VESA.
Toutefois, ce pilote ne vous fera bnficier d'aucune acclration graphique, mme 2D.
Pour ce qui est du deuxime point, l'avnement des crans plats a simplifi considrablement la
donne : non seulement ces crans ne supportent plus qu'une seule rsolution, mais la notion de
balayage n'a plus de sens non plus. Ces crans fournissent galement les informations ncessaires aux
pilotes de cartes graphiques permettant de dterminer les modes graphiques supports. Toutefois, si
votre cran est un vieil cran cathodique, vous aurez peut-tre connatre ses caractristiques
techniques. Pour cela, il suffit souvent de regarder la fiche techniques de l'cran. Bien entendu, cela
suppose de l'avoir conserve. Si ce n'est pas le cas, il faut esprer que les programmes d'installation
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 (c'est l qu'Internet 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 peut-tre pas installer XWindow. Rassurez-vous cependant, les
programmes de configuration de XWindow connaissent la plupart des moniteurs prsent, ce qui fait
qu'ils sont capables d'crire les fichiers de configuration correctement sans que vous ayez spcifier
les paramtres du moniteur.

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 402

10.3. Configuration de X.org
La configuration de X.org commence avant tout par l'installation du serveur X. Un mme serveur X
peut prendre en charge plusieurs cartes graphiques sur une mme machine, pourvu qu'il 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 n'a qu'un seul terminal X.
X.org fournit un unique serveur X, qui prend en charge tous les types de cartes graphiques l'aide de
pilotes spcifiques. 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
configuration du systme. Cette architecture permet un mme serveur X de charger plusieurs pilotes
pour plusieurs cartes graphiques, afin de grer les configurations 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.
Par convention, le nom du serveur X est toujours X. Comme le nom du fichier programme du serveur
X de X.org est Xorg (on s'en serait dout...), il doit exister un lien symbolique /usr/bin/X qui pointe
vers le fichier /usr/bin/Xorg. Ce lien est, encore une fois, normalement toujours prsent sur les
systmes correctement configurs.
Une fois XWindow install, la suite de la configuration de X.org se fait uniquement dans le fichier de
configuration xorg.conf. Ce fichier est classiquement stock dans le rpertoire /etc/X11/.
Normalement, vous ne devez pas crer ce fichier vous-mme. Votre distribution doit au moins vous en
fournir un par dfaut et, souvent, elle dispose d'un outil de configuration de X.org convivial qui fera
quasiment tout le travail pour vous. Ce genre d'outil est de plus capable de configurer X.org pour les
pilotes spcifiques fournis avec les distributions (il n'est 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 configuration fournis avec X.org, qui vous
permettront de gnrer ce fichier. Il existe trois possibilits pour gnrer un fichier de configuration
xorg.conf. La premire mthode est de demander directement au serveur X de dtecter le matriel
prsent sur votre machine et de gnrer le fichier xorg.conf correspondant. La deuxime mthode, qui
est aussi la plus sre, est d'utiliser le programme xorgconfig. Il s'agit d'un outil fonctionnant en mode
texte, qui est effroyablement peu pratique utiliser. Enfin, un autre outil, beaucoup plus convivial, est
en cours de dveloppement. Il s'agit de xorgcfg. Cet outil permet de gnrer et de modifier les fichiers
xorg.conf de manire conviviale, soit en mode texte avec des menus, soit en mode graphique. Lorsque
cet outil sera termin, la configuration de X.org sera beaucoup plus aise. Encore une fois, je ne saurai
que vous recommander d'utiliser l'outil de configuration fourni avec votre distribution.
10.3.1. Gnration automatique du fichier xorg.conf
Le serveur X de X.org est capable de dtecter le matriel install sur une machine et de gnrer un
fichier de configuration xorg.conf adapt ce matriel. Pour cela, il suffit simplement de le lancer
avec l'option -configure sous le compte root, comme dans l'exemple suivant :
Xorg configure

l'issue de cette commande, le serveur X crira un fichier xorg.conf.new dans le rpertoire personnel
de l'utilisateur root.
Cependant, le fichier de configuration ainsi gnr n'utilisera que les options de configuration 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 403

dans le but d'obtenir un squelette de fichier xorg.conf, que l'on personnalisera ensuite. Ce fichier
pourra tre copi dans le rpertoire /etc/X11/ sous le nom xorg.conf une fois qu'il aura t corrig.
10.3.2. Utilisation de xorgconfig
Comme il l'a t indiqu plus haut, xorgconfig est un programme fonctionnant en mode texte
exclusivement. Son principe de fonctionnement est trs simple : il pose une srie de questions sur
votre matriel, puis il gnre un fichier xorg.conf gnrique pour votre matriel. Vous pourrez ensuite
partir de ce modle pour personnaliser votre configuration et pour prciser les paramtres que
xorgconfig ne prend pas en charge.
Le principal problme de xorgconfig est qu'il ne laisse pas droit l'erreur. 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 d'autant plus nervant que dans ce cas, il ne reste plus qu'une solution, qui est de tout
recommencer partir du dbut. Aprs trois ou quatre erreurs, on finit par faire extrmement attention
ce que l'on tape.
Lorsqu'on lance xorgconfig, il commence par afficher un message indiquant qu'il va crer un nouveau
fichier de configuration xorg.conf que l'on pourra utiliser par la suite comme point de dpart pour
paramtrer son systme XWindow. Il faut valider pour passer ce message et commencer la
configuration proprement dite.
La premire question que xorgconfig 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
srielles, taient relativement rpandues et sont gnralement rfrences sous le terme de
compatible Microsoft . Il faut donc utiliser l'option 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 d'une telle souris, il faut choisir l'option Mouse Systems (3-
button protocol) .
Plus rcemment, le port PS/2 est apparu pour les claviers et les souris. Ce port permet de grer
directement la plupart des souris actuelles, et il est probable que votre souris soit une souris PS/2.
L'option utiliser est cette fois l'option PS/2 Mouse . Il faut surtout ne pas confondre les souris
PS/2 avec les souris bus (que l'on peut utiliser avec l'option 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 l'option 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, xorgconfig ne
propose pas d'option pour ces souris, et une intervention manuelle dans le fichier de configuration
xorg.conf est ncessaire pour les configurer. La manire de procder sera dtaille dans la Section
10.3.4.
La question suivante demande si vous dsirez activer la fonctionnalit d'mulation d'un troisime
bouton pour les souris deux boutons. Cette mulation permet d'utiliser les nombreux programmes
pour XWindow qui ncessitent d'utiliser 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 d'une roulette, il faut rpondre par
la ngative.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 404

xorgconfig 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. C'est 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 l'option Microsoft Natural .
Vous devrez ensuite indiquer la disposition de ce clavier. Il faut videmment choisir l'option
French . xorgconfig demande alors de saisir un nom de variante pour le clavier choisi. Comme le
clavier franais n'est dclin que sous une seule variante, vous pouvez simplement valider pour passer
la suite de la configuration du clavier.
xorgconfig vous propose alors de modifier des paramtres additionnels du clavier (emplacement des
touches modificatrices telles que les touches de majuscule, de contrle et de jeu de caractres
alternatif, tat des diodes, etc.). En gnral, cela n'est pas ncessaire et vous pouvez rpondre 'n' cette
question.
La partie difficile vient ensuite. xorgconfig vous le signale avec un message indiquant que les
informations de synchronisation horizontale et verticale sont extrmement importantes pour configurer
correctement les modes vido. La signification de ces valeurs vous sera dcrite plus loin en dtail,
pour l'instant, contentez-vous de rcuprer le manuel de votre moniteur et recherchez ses
caractristiques prcises. Validez ensuite pour passer la question suivante.
xorgconfig vous demande alors la plage de frquences horizontales que votre moniteur est en mesure
d'accepter. 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 l'aide de l'option 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 l'une des plages proposes selon le type de votre moniteur, ou saisir vous-mme la plage de
frquences cite dans ses caractristiques techniques l'aide de l'option Enter your own vertical sync
range . l'issue de cette question, xorgconfig vous demande de saisir le nom du moniteur que vous
venez ainsi de configurer. Ce nom est arbitraire, il ne sert que pour l'identifier de manire lisible par la
suite. Entrez, par exemple, le nom du modle de l'cran dont vous disposez.
La question suivante vous demande simplement si vous dsirez choisir votre carte graphique dans la
liste des cartes graphiques supportes par X.org. Il est recommand de rpondre par l'affirmative en
tapant 'y'. xorgconfig affiche 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 d'une page la
suivante. Si vous avez pass une page de trop, vous tes bon pour passer toutes les pages pour revenir
la premire, avant d'aller sur la page contenant votre carte graphique. Lorsque vous aurez trouv
votre carte, choisissez l'option correspondante et validez.
Si votre carte n'est pas prsente dans la liste, cela ne signifie pas qu'elle n'est pas supporte par X.org.
En effet, chaque pilote est capable de prendre en charge un type de puce lectronique, et il arrive que
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 405

plusieurs cartes graphiques soient bases sur une lectronique provenant d'un mme fabricant. C'est la
raison pour laquelle les pilotes de X.org 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 spcifier le
pilote correspondant l'lectronique 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 bnficierez d'aucune acclration
matrielle avec ce pilote.
Les questions qui suivent dpendent fortement de la carte slectionne. En effet, chaque carte peut
avoir besoin d'un certain nombre de paramtres complmentaires pour fonctionner. Encore une fois,
ces paramtres sont, normalement, indiqus dans le mode d'emploi 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 proposs,
mais vous pouvez galement spcifier vous-mme cette quantit l'aide de l'option Other . L'unit
est ici le kilo-octet, pensez donc bien multiplier par 1024 le nombre de mga-octet de mmoire vido
de votre carte graphique avant de saisir la valeur. Lorque la configuration de la carte graphique sera
termine, xorgconfig 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.
xorgconfig vous propose alors de modifier l'ordre d'utilisation des modes graphiques pour chaque
profondeur de couleur. Cet ordre doit tre spcifi 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
slectionnera les modes 4, 3 et 2, soit les modes 1024x768, 800x600 et 640x480. Notez que l'ordre des
numros est important, c'est l'ordre dans lequel ces modes seront choisis lorsqu'on basculera de l'un
l'autre. Lorsque vous aurez saisi les modes graphiques utiliser et leur ordre d'apparition, xorgconfig
vous proposera d'utiliser un cran virtuel de taille suprieure la rsolution physique du plus grand des
modes graphiques choisi. Cela signifie que la rsolution de l'affichage sera suprieure celle de votre
cran, et que XWindow fera dfiler automatiquement l'image affiche lorsque la souris sortira de la
portion d'image visible. Il est en gnral conseill de rpondre par la ngative cette question, car cela
peut tre facilement droutant. Cependant, c'est une affaire de got, et vous tes libre d'accepter 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 dfilement sera encore utilis pour les modes graphiques de rsolution infrieure, avec
comme taille d'cran virtuel la taille du mode ayant la rsolution la plus grande. Lorsque vous aurez
configur tous vos modes graphiques, vous pourrez passer la suite en choisissant l'option The
modes are OK, continue. .
xorgconfig 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
l'environnement graphique sera lanc. Vous pourrez bien entendu la modifier 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) .
Enfin, la dernire question est tout simplement si vous dsirez enregistrer le fichier xorg.conf
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 fichier xorg.conf gnr est gnralement fonctionnel, mais parfaitement amliorable. Le format de
ce fichier sera dcrit en dtail dans la Section 10.3.4. Si vous l'ouvrez, vous constaterez que
xorgconfig a ajout un nombre impressionnant de commentaires pour vous aider dans vos
exprimentations. Bien entendu, vous trouverez galement des informations complmentaires dans la
page de manuel xorg.conf.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 406

10.3.3. Utilisation de xorgcfg
La manire la plus agrable d'effectuer la configuration de X.org est sans nul doute d'utiliser l'utilitaire
xorgcfg. Ce programme permet aussi bien de crer un fichier de configuration xorg.conf initial que de
modifier une configuration existante de manire graphique. Il dispose galement d'un mode texte, qui
reprend les mmes questions que xorgconfig, mais d'une manire plus conviviale, l'aide d'un
systme de menus.
10.3.3.1. Configuration en mode graphique
Lorsqu'on lance xorgcfg, celui-ci commence par regarder si la variable d'environnement ISRLAY est
dfinie ou non. Si elle est dfinie, il tente de se connecter au serveur X grant ce display afin de
permettre l'dition du fichier de configuration xorg.conf du systme. Notez qu'il ne permet pas de
modifier le fichier xorg.conf utilis par le serveur X auquel il se connecte si celui-ci utilise un autre
fichier que le fichier du systme : le serveur X n'est utilis par xorgcfg que pour son affichage.
Si, en revanche, la variable d'environnement ISRLAY n'est pas dfinie, xorgcfg considre que
XWindow n'est pas install sur la machine locale et appelle le serveur X avec l'option -configure
afin de gnrer un nouveau fichier xorg.conf. Il lance ensuite le serveur X dtect et utilise ce serveur
pour permettre la modification du fichier xorg.conf ainsi cr.
son dmarrage, il vrifie que la souris est correctement configure. Si tel n'est pas le cas, il propose
d'utiliser 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 d'essayer d'effectuer la configuration dans ces conditions, car ce n'est rellement
pas utilisable. Dans ce cas de figure, on cherchera plutt utiliser l'interface en mode texte de xorgcfg,
que nous prsenterons dans la section suivante.
L'interface de xorgcfg 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 configuration. La deuxime entre (intitule Expert Mode ) donne accs quant elle un
mode de paramtrage permettant d'diter directement les proprits du fichier xorg.conf. Ce mode de
fonctionnement est rserv aux utilisateurs avertis et ne sera pas dcrit ici.

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 407

La premire entre de menu comprend plusieurs options. L'option Configure Layout permet
d'effectuer la configuration gnrale du display. L'option Configure Screen permet de configurer la
disposition des diffrents crans d'un mme display les uns par rapport aux autres. Elle n'est
rellement utile que dans le cas des configurations plusieurs crans. L'option Configure Modeline
donne la possibilit de configurer les diffrents modes graphiques de chaque configuration. Enfin,
l'option Configure AccessX permet de spcifier les options des diffrents priphriques d'entre.
Ces deux options de menus sont rserves aux utilisateurs expriments et ne seront pas dcrites dans
ce document.
L'essentiel de la configuration se fait dans l'cran affich lorsque l'option Configure Layout est
choisie. Cet cran est constitu d'une barre d'icnes permettant d'ajouter les diffrents priphriques
la configuration courante : souris, claviers, cartes graphiques et moniteurs. Il n'est possible d'diter
qu'une seule configuration la fois, la configuration courante peut tre slectionne l'aide du bouton
situ dans la partie infrieure gauche de la fentre. Le corps de la fentre elle-mme contient une
reprsentation de cette configuration, 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 l'option configure , qui donne accs
une bote de dialogue permettant d'diter les proprits de l'lment, l'option option , qui permet
d'ajouter des options gnrales cet lment, les options enable et disable , qui permettent
d'activer ou de dsactiver l'lment en question dans la configuration, et l'option remove , dont le
but est de supprimer l'lment concern.
Une configuration typique comprend au moins une souris, un clavier, une carte graphique et un
moniteur. Il est recommand d'ajouter les lments de la configuration dans cet ordre, afin d'viter
d'avoir revenir plusieurs fois sur certains de ces lments.
La bote de dialogue ouverte par l'option configure sur une souris comprend un champ contenant
l'identificateur de cette souris, la liste des fichiers spciaux de priphriques pour la slection du
fichier spcial de priphrique auquel la souris est connecte, la liste des protocoles grs par X.org et
un bouton permettant d'activer l'mulation du troisime bouton pour les souris deux boutons.
Gnralement, les souris sont connectes soit sur le port srie (fichier spcial de priphrique
/dev/ttyS0 ou /dev/ttyS1), soit sur le port PS/2 (fichier spcial de priphrique /dev/psaux). Les
principaux protocoles grs par X.org sont les suivants :
Microsoft :
C'est 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 :
C'est le protocole utilis par les souris molette connectes sur le port srie. N'utilisez pas ce
protocole pour les souris molette connectes sur le port PS/2, la souris ne fonctionnerait pas.
PS/2 :
C'est le protocole qui convient pour la majorit des souris connectes sur un port PS/2. Notez
toutefois que ce n'est pas le cas des souris molette Logitech et Microsoft ;
IMPS/2 :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 408

C'est le protocole des souris molette connectes sur port PS/2. Malheureusement, ce
protocole n'est pas propos par xorgcfg. Il est donc impossible de configurer une souris de ce
type avec cet utilitaire, sauf passer dans le mode expert. La configuration utiliser pour ce
type de souris sera dcrite dans la Section 10.3.4.
Lorsque vous aurez configur votre souris, vous pourrez utiliser le bouton Apply changes pour
prendre en compte les changements si vous avez modifi les paramtres de la souris courante. Ds
lors, vous devriez avoir une souris fonctionnelle, et vous pouvez l'activer avec l'option enable du
menu contextuel. Lorsque la souris est active, un lien apparat entre l'unit centrale de l'ordinateur et
cette souris dans la fentre de xorgcfg.
La bote de dialogue ouverte par l'option 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 configuration. 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 configur le clavier correctement, vous pourrez appliquer les changements avec le
bouton Apply changes . Vous pourrez galement activer le clavier dans la configuration courante
l'aide de l'option enable du menu contextuel du clavier. Un lien entre ce clavier et l'unit centrale
doit alors apparatre dans la fentre principale de xorgcfg.
La bote de configuration des cartes graphiques contient le champ habituel pour donner un nom la
carte et la liste des cartes graphiques reconnues automatiquement par X.org. 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 n'est adapt pour votre
carte, vous pourrez malgr tout utiliser un des pilotes gnriques vga ou vesa. Enfin, dans le cas o
plusieurs cartes graphiques sont installes dans l'ordinateur, vous devrez spcifier l'adresse de la carte
sur le bus PCI/AGP. N'oubliez pas d'activer la carte graphique l'aide de l'option enable du menu
contextuel lorsque vous aurez fini la configuration.
La bote de dialogue des moniteurs permet de spcifier 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 connect. La liste ne propose que les cartes graphiques que vous avez configures
prcdemment. Les moniteurs n'ont pas besoin d'tre activs, car ils sont lis aux cartes graphiques.
Une fois la configuration gnrale dfinie, vous pouvez, si elle contient plusieurs crans, spcifier la
disposition relative de ces crans l'aide de l'option Configure Screen du menu principal de
xorgcfg. Cette option affiche les diffrents crans dans la fentre de xorgcfg, et vous pouvez les faire
glisser pour les disposer comme vous le dsirez.
Enfin, l'option de menu principal Configure Modeline vous permettra de dfinir de nouveaux
modes graphiques et de les ajuster. Cet cran fournit les mmes fonctionnalits que l'utilitaire
xvidtune, que l'on dcrira en dtail dans la Section 10.3.6. Cet cran ne sera donc pas trait plus en
dtail ici.
Lorsque vous quittez xorgcfg, il vous propose d'enregistrer le fichier de configuration
/etc/X11/xorg.conf correspondant la configuration que vous venez de dfinir. Vous pouvez spcifier
un autre nom si vous le dsirer, afin d'enregistrer ces paramtres dans un autre fichier. xorgcfg
demande galement si vous dsirez sauvegarder la configuration du clavier, pour le cas o vous auriez
modifi les paramtres des priphriques d'entre.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 409

10.3.3.2. Configuration en mode texte
xorgcfg permet galement d'effectuer la configuration de X.org en mode texte, l'aide d'une interface
base sur un systme de menus. Bien que ce mode de fonctionnement soit en mode texte, il permet
d'effectuer les mmes tches que xorgconfig d'une manire beaucoup plus conviviale.
Pour lancer xorgcfg en mode texte, il suffit simplement de lui passer l'option -exmode en ligne de
commande :
xorgcfg textmode

Lors de son dmarrage, xorgcfg affiche un cran d'accueil que vous pouvez passer en validant l'option
Ok .
xorgcfg affiche 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 d'associer les cartes graphiques aux moniteurs, et une entre Configure layout , qui permet
de configurer le display en spcifiant le clavier, la souris et les diffrents crans utiliser.

Le menu de configuration de la souris permet d'ajouter, de supprimer et de modifier des souris. L'ajout
d'une souris ncessite de saisir un identificateur pour la souris, le protocole que cette souris utilise et si
le troisime bouton doit tre simul ou non. xorgcfg demande galement le fichier spcial de
priphrique utiliser pour accder cette souris. Notez que xorgcfg 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 configur avec cet outil.
De la mme manire, le menu de configuration du clavier demande de saisir un identificateur lorsqu'on
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.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 410

La configuration des moniteurs permet de spcifier un identificateur pour le moniteur, ainsi que les
plages de frquences horizontales et verticales. La configuration des cartes graphiques quant elle
permet galement de spcifier un identificateur pour la carte, et de choisir le type de carte dans la liste
des cartes prises en charge par X.org. Si votre carte n'est pas liste, vous devrez choisir l'option **
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. Enfin,
xorgcfg vous propose de spcifier l'adresse de la carte sur le bus PCI/AGP, pour le cas o vous auriez
plusieurs cartes installes sur la mme machine.
Les identifiants donns aux moniteurs et aux cartes sont utiliss dans le menu de configuration 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 l'interface en mode texte de xorgcfg ne permet pas de dfinir de nouveaux modes
graphiques, pour cela, il faut recourir l'interface en mode graphique ou diter manuellement le fichier
de configuration xorg.conf.
Enfin, le menu de configuration gnral permet de dfinir, de modifier et de supprimer les displays.
Chaque display doit contenir une rfrence une souris, un clavier et un ou plusieurs crans.
Remarquez encore une fois que l'interface en mode texte de xorgcfg ne permet pas de prciser la
disposition relative des crans les uns par rapport aux autres. Pour cela, vous devrez utiliser l'interface
en mode graphique ou diter manuellement le fichier de configuration de X.org.
Lorsque vous aurez fini la configuration de X.org, vous pourrez l'enregistrer l'aide du menu Write
xorg.conf and quit . Ce menu vous demande le chemin complet sur le fichier de configuration
crire. Vous pouvez spcifier un autre fichier que le fichier de configuration du systme si vous
dsirez l'diter et le modifier manuellement de manire indpendante.
10.3.4. Description du fichier xorg.conf
Les fichiers gnrs par les outils de configuration de X.org sont, comme nous l'avons dj prcis,
des fichiers devant servir de point de dpart pour raliser votre configuration. Normalement, ils
permettent de dmarrer le serveur X et de travailler dans de bonnes conditions, toutefois, il est possible
d'amliorer sensiblement la qualit de l'affichage et l'ergonomie du systme en mettant un peu la main
la pte. Cette section entreprend donc de dcrire la structure du fichier de configuration xorg.conf et
les principales options que l'on peut utiliser. D'autre part, il peut tre instructif de connatre la nature
des informations que ce fichier contient, et quelles sont les consquences des choix effectus dans les
utilitaires de configuration.
10.3.4.1. Structure gnrale du fichier xorg.conf
Le fichier xorg.conf est constitu d'un certain nombre de sections contenant chacune les options pour
une partie de l'architecture de X.org. La configuration de X.org est un sujet ardu, aussi seules les
principales sections du fichier xorg.conf seront dcrites dans ce document. Vous pouvez vous rfrer
la page de manuel xorg.conf et la documentation de X.org pour plus de dtails ce sujet.
Certaines sections peuvent tre dfinies plusieurs fois, avec diffrents jeux d'options chaque fois,
afin de permettre la dfinition de plusieurs configurations. Bien entendu, lorsqu'un serveur X tourne,
une seule configuration est utilise. Cette configuration est spcifie soit directement en ligne de
commande lors du lancement du serveur X, soit en indiquant une configuration par dfaut dans le
fichier de configuration.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 411

D'autres sections sont globales, et contiennent les options de configuration gnrales du serveur X. Ces
options concernent typiquement l'environnement dans lequel il est suppos fonctionner, et les options
qui ne dpendent pas de la configuration utilise.
La premire section globale est la section Files , qui porte relativement mal son nom, car au lieu de
fichiers, elle indique les chemins vers les diffrentes ressources que le serveur X peut utiliser. Ces
ressources comprennent les polices de caractres, l'emplacement des modules complmentaires et
l'emplacement des fichiers de dfinitions 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 d'activer ou de dsactiver certaines
fonctionnalits ou extensions non standards. Ces options fournissent des valeurs par dfaut, elles
peuvent tre modifies 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 configuration des displays. Ces sections dcrivent chacune un des
aspects du display, et peuvent apparatre en de multiples exemplaires.
Le premier type de section de configuration des displays regroupe toutes les sections qui dfinissent
les priphriques d'entre de donnes (clavier, souris, table de digitalisation, etc.). Ces sections sont
toutes nommes InputDevice .
Le deuxime type de section de configuration contient la dfinition des adaptateurs graphiques. Ces
sections permettent de donner les renseignements ncessaires pour la configuration des diffrentes
cartes graphiques installes sur le systme. Elles sont toutes nommes Device .
Viennent ensuite les sections Monitor qui, comme leur nom l'indique, permettent de dfinir les
caractristiques physiques des diffrents moniteurs utilisables. Encore une fois, il peut exister
plusieurs sections de ce type, pour dfinir plusieurs moniteurs dans les configurations multi-ttes.
Normalement, chaque moniteur est, en fonction de ses capacits, capable de grer diffrents modes
graphiques. Les sections Monitor peuvent donc contenir des dfinitions de modes graphiques, mais
ce n'est pas la technique recommande. En effet, il est possible d'utiliser plusieurs moniteurs avec des
modes graphiques identiques, aussi X.org donne-t-il la possibilit de dfinir les modes graphiques en
dehors des sections Monitor (ce n'est toutefois pas une obligation). Dans ce cas, les modes
graphiques seront dfinis 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 l'a vu ci-dessus, il est
possible de dfinir plusieurs sections Device et plusieurs sections Monitor , afin de dcrire
plusieurs cartes graphiques et plusieurs moniteurs. Il faut donc spcifier quels moniteurs sont
connects quelles cartes graphiques. C'est exactement le rle des sections Screen . Pour X.org, un
cran n'est donc rien d'autre qu'un couple fonctionnel moniteur / carte graphique. Notez que certaines
cartes graphiques haut de gamme peuvent prendre en charge plusieurs crans. Dans ce cas, il faudra
dfinir plusieurs sections Device pour la mme carte graphique, et spcifier les ports de sortie dans
les options de ces sections.
Enfin, il ne reste plus qu' dfinir le display lui-mme. Nous avons dj dfini la notion de display ci-
dessus comme tant le regroupement d'un clavier, d'une souris et d'un ou plusieurs crans. Ces
associations sont donc dfinies dans des sections nommes ServerLayout . Une section de ce type
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 412

contient donc ncessairement une rfrence une section InputDevice pour le clavier 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 l'indique, les sections
ServerLayout permettent galement de spcifier la disposition relative des crans les uns par
rapport aux autres, dans le cas des configurations multi-ttes.
Figure 10-2. Structure du fichier xorg.conf

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 d'informations peuvent tre spcifies, et peuvent mme tre regroupes en sous-sections.
tant donn le grand nombre d'options qui peuvent tre indiques dans les sections du fichier
xorg.conf, seules les plus classiques seront dcrites ci-dessous.
10.3.4.2. Section Files
La section Files , contient les chemins vers les ressources utiliss par X.org. Ce peut tre les
rpertoires de polices de caractres, les rpertoires d'installation des modules du serveur X, ou encore
des chemins indiquant l'adresse et le port de serveurs de polices sur un rseau. Cette section est donc
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 413

relativement riche de renseignements pour le serveur X. Un exemple typique de section Files est
donn ci-dessous :
Section "Files"
RgbPath "/usr/share/X11/rgb"
FontPath "/usr/share/fonts/local"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/75dpi"
FontPath "/usr/share/fonts/100dpi"
ModulePath "/usr/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 fichiers de dfinition de couleurs et les rpertoires d'installation des
modules. Cependant, comme on le verra plus loin, l'accs aux serveurs de polices se fait l'aide d'une
syntaxe de chemin particulire.
10.3.4.3. Section ServerFlags
Cette section regroupe les principales options globales de tous les serveurs X. Ces options sont
gnralement introduites l'aide du mot cl Option , suivi du nom de l'option entre guillemets, lui-
mme suivi d'une ventuelle valeur pour cette option, elle aussi entre guillemets. Par exemple,
l'option :
Option "DontZap"

permet d'empcher que l'utilisateur 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, l'option :
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 d'un mode vido au suivant ou au
prcdent.
Il existe beaucoup d'autres 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 d'crans matriels. Vous trouverez la description des autres
options dans les fichiers xorg.conf gnrs automatiquement, et bien entendu dans la page de manuel
xorg.conf.
10.3.4.4. Section Module
Cette section contient la liste des modules que les serveurs X doivent charger lorsqu'ils dmarrent. Ces
modules peuvent tre spcifis 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"
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 414

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 spcifier des options pour le module
l'aide du mot cl Option . Par exemple, les extensions du serveur X peuvent tre charges
l'exception de l'extension DGA l'aide de la sous-section suivante :
SubSection "extmod"
Option "omit X.org-DGA"
EndSubSection
Note : L'extension DGA permet aux applications d'accder directement la mmoire vido de la carte
graphique. La dsactiver accrot donc la scurit du systme, mais peut empcher certaines
applications de fonctionner correctement. C'est le cas des jeux, et surtout des programmes de
tlvision sous XWindow. Par consquent, il est probable que vous vouliez laisser ces extensions
actives. Dans ce cas, il suffit simplement de ne pas spcifier l'option omi de l'exemple 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 d'activer les fonctionnalits
DRI (abrviation de l'anglais 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
configuration du noyau, que l'on 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.3.4.5. Section InputDevice
Les sections InputDevice permettent de dcrire tous les types de priphriques d'entre. En
pratique, il s'agira 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.
Les sections InputDevice doivent tre nommes avec un identificateur unique, introduit par le mot
cl Identifier . Ce mot cl doit tre suivi du nom de la section, donn entre guillemets. C'est ce nom
qui sera utilis pour rfrencer la section dans les sections ServerLayout pour dfinir les diffrents
displays.
La nature du priphrique d'entre est ensuite spcifie par la valeur de l'option 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 l'exemple suivant :
Section "InputDevice"
Identifier "Clavier 1"
Driver "Keyboard"

# L'option 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"

# L'option suivante indique que la dfinition de clavier
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 415

# utiliser est celle de X.org :
Option "XkbRules" "xfree86"

# L'option suivante indique que le modle de clavier
# utilis est un clavier 105 touches :
Option "XkbModel" "pc105"

# L'option suivante indique que la disposition
# des touches est celle d'un 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"

# L'option suivante indique que la souris est
# une souris de type PS/2 :
Option "Protocol" "PS/2"

# L'option suivante indique le fichier spcial
# de priphrique utiliser pour cette souris :
Option "Device" "/dev/psaux"

# L'option suivante indique le nombre de boutons
# de la souris :
Option "Buttons" "2"

# L'option suivante demande X.org d'muler
# 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
l'option 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.3.4.6. Sections Device
Les sections Device contiennent les descriptions des cartes graphiques utilises. Ces descriptions
n'indiquent absolument pas quel est le serveur X utilis : elles ne contiennent qu'une description du
matriel. Notez, encore une fois, qu'il est possible de dfinir plusieurs sections Device , qui
pourront tre utilises dans les sections Screen associant les cartes graphiques aux moniteurs.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 416

Tout comme les sections InputDevice , les sections Device doivent disposer d'un identificateur
unique, afin de pouvoir les rfrencer dans les sections Screen qui les utilisent. Cet identificateur
est introduit par le mot cl Identifier et suivi d'un nom indiqu entre guillemets.
Les sections Device peuvent contenir un certain nombre d'options 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 spcifiques aux diffrentes cartes graphiques, et ne seront pas dcrites en
dtail ici.
L'option la plus importante est sans doute l'option Driver , qui permet d'indiquer le pilote que le
serveur X devra charger pour piloter cette carte graphique. C'est ce niveau qu'il 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 qu'il n'est pas difficile de dterminer la
valeur exacte utiliser. X.org 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 d'aucune
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 qu'il doit
# charger le module i740_drv pour piloter cette
# carte graphique :
Driver "i740"

# 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. Cependant,
quelques-unes peuvent poser des problmes lorsqu'on ralise des configurations multi-ttes (c'est--
dire des configurations 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 qu'il faut que chaque pilote utilise la bonne carte,
aussi faut-il indiquer, dans chaque section Device , l'adresse de la carte dcrite par la section. Cette
adresse est dfinie l'aide de l'option BusID . Cette option permet de retrouver la carte graphique
sur les diffrents bus systmes. Les cartes AGP utilisant le mme mcanisme d'adressage 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 afficher les caractristiques des diffrents
bus PCI de votre machine et dterminer les valeurs utilises par vos cartes graphiques.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 417

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 fonctionnement est le
mme : il faut crire une section Device pour chaque contrleur vido existant. Cependant, tant
donn que toutes ces sections s'adressent la mme carte graphique, il est impossible de les distinguer
par l'intermdiaire de l'option BusID . Dans ce cas, on utilise alors l'option Screen , suivie du
numro du contrleur vido que la section dcrit. Ce numro doit tre donn juste aprs l'option
Screen , sans guillemets. La numrotation des contrleurs vido commence 0. C'est cette valeur
qui est utilise pour toutes les cartes graphiques ne disposant que d'un seul contrleur vido.
10.3.4.7. Sections Monitor
Les sections Monitor contiennent les informations descriptives des crans. Notez qu'il est possible
de dfinir 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 fichier xorg.conf. 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 spcifique 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 modifier une section Monitor , car si les informations qui y sont stockes sont errones, le
moniteur correspondant risque d'tre gravement endommag.
Si votre moniteur est un cran plat, le moniteur affiche directement les informations dans son mode
vido natif. La configuration des modes graphiques au niveau de la carte graphique n'a donc que peu
d'influence : seuls la rsolution et le nombre de couleurs sont utiliss ici, et l'cran s'adapte aux
signaux horizontaux et verticaux fournis par la carte graphique dynamiquement pour reconstituer
l'image afficher dans sa rsolution native (moyennant une image plus ou moins nette et des couleurs
plus ou moins prcises). De ce fait, tous les rglages par dfaut sont gnralement valides, et la section
Monitor peut donc tre rduite sa plus simple expression.
En revanche, pour les tubes cathodiques, les signaux envoys par la carte graphique sont trs
importants. C'est rellement elle qui dfinit le mode graphique. Les informations temporelles des
signaux horizontaux et verticaux, ainsi que le nombre de couleurs utiliss, sont essentiels pour dfinir
le mode vido, tant en rsolution qu'en nombre de couleurs utiliss, ou encore en frquence de
rafrachissement de l'image. La dfinition des modes vido dans ce cas est plus complexe, sauf si les
modes dfinis par dfaut vous conviennent.
Le principe de fonctionnement des tubes cathodiques utiliss dans les moniteurs est trs simple :
chaque instant, un faisceau d'lectrons gnr par un canon lectrons vient frapper un point d'une
plaque phosphorescente situe juste derrire la vitre du moniteur. L'nergie 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 l'il. Les points de l'cran semblent donc tre tous allums en mme
temps, bien qu' chaque instant un seul d'entre eux soit atteint par le faisceau d'lectrons. Nous voyons
ainsi l'image complte du moniteur.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 418

Le dplacement du faisceau d'lectrons est assur par un champ magntique gnr par des bobinages
magntiques l'arrire du tube cathodique. Le faisceau balaye l'cran ligne par ligne, de gauche
droite (en regardant le moniteur de face). chaque fois qu'il atteint le bord gauche, il retourne
rapidement vers le dbut de la ligne suivante, sur le bord droit du moniteur. Ce retour se fait
simplement en modifiant brusquement le champ magntique qui dirige le faisceau. Il va de soi que le
faisceau d'lectrons est coup pendant ce retour de balayage, car s'il ne l'tait pas, on le verrait
traverser l'cran de droite gauche et perturber ainsi l'image. De plus, le champ magntique n'est pas
facilement contrlable lorsque le retour du faisceau commence. Par consquent, il est ncessaire que
ce retour se fasse un certain temps aprs que le bord droit ait t teint. Si ce n'tait pas le cas, l'image
serait dforme prs des bords du moniteur. Le faisceau lectronique continue donc de balayer l'cran
sur une petite zone aprs le bord de l'image, sans mettre de lumire. Cette zone s'appelle le
blanking horizontal.
De mme, le faisceau lectronique retourne rapidement en haut de l'cran ds qu'il 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 modification du champ magntique lors des retours de balayage vertical. La zone
ainsi parcourue par le faisceau aprs le bord de l'image s'appelle le blanking vertical.
Note : Il est possible d'utiliser d'autres mthodes de balayage que celle dcrite ci-dessus. En
particulier, les modes graphiques entrelacs ne suivent pas ce principe. Dans ces modes, seulement une
ligne sur deux est balaye chaque gnration d'image. Les lignes paires sont d'abord affiches pour
une premire image, puis les lignes impaires sont affiches pour l'image suivante. Ces modes
graphiques taient utiliss lorsque les moniteurs n'taient pas suffisamment rapides pour afficher une
image complte sans que l'on puisse voir le balayage du faisceau d'lectrons. De nos jours, il est
dconseill d'utiliser ces modes, car l'image a tendance trembler du fait de l'cart de luminosit
alternatif entre les lignes paires et impaires de l'cran.
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 spcifis en terme de frquences de balayage et de dures des signaux de
synchronisation. Les vieux moniteurs ne pouvaient supporter qu'un nombre limit de frquences de
balayage, que l'on qualifiaient alors de fixes . De nos jours, les crans multisynchrones acceptent
toutes les frquences comprises dans une plage de valeur, et s'adaptent 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
rafrachissement de l'cran, c'est--dire le nombre de fois que l'image de l'cran est affiche par
seconde. Il est vident qu'un taux de rafrachissement trop faible ne permet pas d'avoir une image
agrable regarder, car elle semble trembler ou clignoter. Un tube cathodique de bonne qualit est
donc un tube qui permet d'utiliser de hautes frquences verticales. Comme il est ncessaire d'afficher
toutes les lignes pour afficher une image complte, il va de soi qu'un bon tube doit galement tre
capable d'afficher les lignes rapidement, et donc accepter des frquences de balayage horizontal
leves. Typiquement, 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 l'emploi que l'on 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 affichent 25 images par seconde (en fait, elles affichent 50
demi-images par seconde, car elles utilisent l'entrelacement). En revanche, ce taux de rafrachissement
est trs insuffisant pour les moniteurs d'ordinateurs, o la limite infrieure est de 60 Hz. Le standard
VESA exige des taux de 72 Hz ou plus pour que l'image 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 rafrachissement vous
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 419

convient, car un balayage insuffisant 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 inexpliqus... Ne vous
vantez donc pas de voir le balayage, c'est 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 suffisant
pour vous. Commencez par afficher 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 l'image de
l'cran, sans le regarder directement (regardez-le en coin ). Normalement, vous devez percevoir
l'image 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
d'antennes). Ces cellules sont donc plus aptes percevoir les variations rapides de luminosit de
l'image dues au balayage du faisceau lectronique. Si l'image semble clignoter, c'est que le taux de
rafrachissement de l'cran est insuffisant. Sinon, vous tenez le bon taux, ne le lchez pas.
Certaines caractristiques techniques des tubes cathodiques influent sur les autres et permettent donc
de modifier le taux de rafrachissement. Il est vident que si la dure du retour du faisceau est
importante, l'cran ne peut pas gnrer beaucoup d'images 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 d'lectrons. Il est galement vident
que la rsolution du mode graphique influe sur le taux de rafrachissement. Si la rsolution est leve,
il y a plus de pixels afficher au total sur chaque ligne de l'cran. vitesse de balayage des pixels
fixe, le temps ncessaire pour balayer une ligne est donc plus grand. Et comme il y a plus de lignes
afficher, le temps ncessaire pour gnrer une image complte est plus grand, et le taux de
rafrachissement 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 n'intervient absolument pas dans le taux de
rafrachissement. Cette profondeur n'est un facteur limitant qu'au niveau de la carte graphique, qui peut
ne pas avoir assez de mmoire pour afficher 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 l'image. Ces informations spcifient bien entendu l'intensit du faisceau d'lectrons, 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 fichier xorg.conf contiennent.
On comprend donc l'importance de ces informations pour la qualit de l'image, aussi bien en terme de
stabilit qu'en termes de taux de rafrachissement.
Les sections Monitor sont constitues grosso modo de deux parties. La premire partie contient les
caractristiques gnrales de l'cran, 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 dfinitions des modes graphiques, raison d'une ligne par mode graphique utilisable. La
documentation de X.org 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 l'image sur l'cran, taux de
rafrachissement.
La premire partie d'une section Monitor ressemble ceci :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 420

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 l'on
utilisera plus loin dans la section Screen pour indiquer que l'on dsire utiliser ce moniteur. Les
mots cls VendorName et ModelName permettent de donner la description du moniteur. Les
informations stockes ici n'ont aucun effet sur la configuration 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 d'une 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 fiche technique de votre moniteur (cette
fiche est souvent imprime la fin du mode d'emploi). Pour les moniteurs multisynchrones, les plages
de frquences utilisables peuvent tre donnes par leurs frquences minimale et maximale, spares
d'un tiret. Les frquences fixes peuvent tre spcifies simplement avec une seule valeur. Il est
possible de spcifier plusieurs frquences fixes et plusieurs plages de frquences en les sparant par
des virgules. L'unit utilise pour les frquences horizontales est le kilohertz, et celle utilise pour les
frquences verticales est lHertz.
La deuxime partie de la section Monitor contient les lignes de mode, raison d'une ligne de mode
par mode graphique que le moniteur est capable d'afficher. 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
La premire valeur indique entre guillemets dans les lignes de mode est le nom du mode graphique.
Comme on le verra plus tard, c'est ce nom qui est utilis pour spcifier les modes graphiques
utilisables 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 fixent les
paramtres horizontaux du mode graphique : rsolution horizontale, pixel partir duquel le signal de
synchronisation pour le retour de balayage horizontal commence, pixel auquel ce signal s'arrte et
longueur totale de la ligne en pixel, blanking compris. De mme, les quatre dernires valeurs fixent les
paramtres verticaux du mode graphique, savoir rsolution verticale, ligne de dbut et ligne de fin 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. D'autre part, l'unit utilise pour ces valeurs est le pixel. Il faut donc se baser sur la
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 421

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 d'une ligne horizontale pour ce mode graphique. Enfin, il est
possible de rajouter des options complmentaires la fin des lignes de mode pour prciser le
fonctionnement du mode graphique, l'aide du mot-clef Flags . L'option la plus courante tant sans
aucun doute Interlace , qui permet de crer des modes entrelacs. L'option Doublescan quant
elle permet de faire en sorte que chaque ligne est affiche 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 xorg.conf.
La section Monitor se termine, comme toute section du fichier xorg.conf, par une ligne de fin 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 l'influence 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
affiches par le serveur X adapt cette carte lorsqu'il dmarre. Cette information est toujours juste,
mme si les lignes de mode crites dans votre fichier xorg.conf 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 n'est pas certain qu'elle soit
supporte par le moniteur. En effet, les moniteurs ne sont pas capables de grer les frquences de base
au del d'une certaine limite. La gamme de frquences qu'ils acceptent est ce que l'on appelle leur
bande passante. La frquence de base doit donc tre dans cette bande passante, c'est--dire qu'elle doit
tre infrieure la frquence maximale que le moniteur peut grer. La bande passante de votre
moniteur est normalement indique dans sa fiche de spcifications techniques. Si toutefois ce n'est pas
le cas, vous pouvez vous faire une ide de la frquence la plus leve de cette bande passante en
regardant la rsolution maximale qu'il peut afficher et en consultant ce tableau :
Tableau 10-1. Frquence maximale des moniteurs
Rsolution Frquence maximale
640x480 25
800x600 36
1024x768 65
1280x1024 110
1600x1200 185
Les valeurs des frquences indiques dans ce tableau sont les plus petites valeurs constates pour
l'ensemble des moniteurs grs par X.org. On peut donc supposer que votre moniteur gre ces
frquences, et certainement mme de plus hautes.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 422

La rsolution du mode graphique est donne par la premire des quatre valeurs des paramtres
horizontaux 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
parfaitement libre d'utiliser des rsolutions non standards, en crivant les lignes de mode
correspondantes. Dans l'exemple donn ci-dessus, il s'agit simplement du mode graphique 1024x768.
Notez, encore une fois, que la profondeur de couleur n'intervient absolument pas dans les paramtres
du moniteur. Ils n'interviennent 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 l'image, mais galement la partie due
au blanking horizontal. Rappelons que le blanking est la partie balaye par le faisceau alors qu'il est
teint, ce qui comprend la partie balaye pendant la dure du signal de synchronisation horizontal.
Dans l'exemple donn ci-dessus, le blanking a une longueur gale 1352-1024 pixels, soit 328 pixels.
La quatrime valeur des paramtres verticaux fixe 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
synchronisation commence n'est pas le dernier pixel visible. En effet, il y a 40 pixels d'cart entre le
dernier pixel visible (en l'occurrence, 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 perturbations dues au retour de balayage et pour positionner l'image sur l'cran. Cette zone noire se
trouve au del du bord droit de l'image affiche. 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 afficher. Par consquent, la
taille de la partie du blanking situ la droite de l'image est gale au numro du pixel o le signal de
synchronisation horizontal se termine moins le nombre de pixels affichs. 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 l'cran 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 l'on peut dcaler l'image vers la gauche en augmentant les valeurs de dpart et de fin
du signal de synchronisation. Inversement, on peut dcaler l'image 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 afficher. On peut donc dplacer l'image vers le haut ou vers
le bas en jouant sur les valeurs de dpart et de fin du signal de synchronisation vertical dans les
paramtres verticaux du mode graphique.






DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 423

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 l'image visible est rduite. En effet, la proportion de la partie visible de l'image sur la
largeur totale de l'cran est d'autant plus faible que le nombre de pixels physiques des lignes est grand.
Le mme raisonnement peut tre appliqu sur les paramtres verticaux. L'image peut donc tre
agrandie ou rduite horizontalement et verticalement en jouant sur la longueur totale des lignes et sur
la hauteur totale de l'image. Si l'on veut que l'image reste centre, il faut galement dcaler les points
de dbut et de fin des signaux de synchronisation, pour que la proportion du blanking place de part et
d'autre de l'image reste constante.
Il faut bien comprendre que la modification des paramtres de synchronisation et de la longueur totale
de la ligne est soumise de fortes contraintes. Il faut s'assurer 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 fixe, cela revient dfinir le taux de
rafrachissement, puisque plus il y a de pixels balayer dans chaque image, moins il est possible
d'afficher d'images par seconde. Cela n'est 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 l'image affiche.
Vous devez vous en doutez prsent : l'criture d'une ligne de mode est un sport trs difficile. 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 l'image que
vous dsirez obtenir. Cette dimension va fixer 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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 424

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.
Vous aurez peut-tre redimensionner et recentrer l'image 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 l'cart entre les
valeurs de dbut et de fin 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 l'image sur votre moniteur. Une image dont les bords ne sont pas rectilignes ou pas nets est un
signe indiquant que le signal de synchronisation n'est pas suffisamment long. Si vous ne vous en sortez
pas, c'est que vous essayez d'atteindre un taux de rafrachissement trop lev.
Si vous dsirez fabriquer un mode graphique de rsolution non standard, vous ne trouverez pas
forcment 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 fichier de documentation VideoModes.doc de
X.org 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 l'on dsire utiliser. Supposons que l'on veuille
utiliser une rsolution intermdiaire entre 1024x768 et 800x600 sur ce type d'cran 15 pouces. Prenons
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 d'ordinateurs. 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. C'est cette partie qui est la plus difficile, elle ncessite de connatre les dures
minimales des signaux de synchronisation horizontaux et verticaux. Ces donnes sont hlas rarement
fournies par les fabricants. Heureusement, on peut s'en passer en pratique, car tous les crans
cathodiques utilisent la mme technologie. En gnral, la longueur totale d'une 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 l'image = 678 lignes * (1+5/100) =
678 lignes * 1,05 = 711,9 lignes.
La longueur totale des lignes n'est pas multiple de 8, nous devons donc l'arrondir 1136. De mme, la
hauteur totale de l'image 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 fixent le dbut et la fin 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 l'image suivante. En pratique, on
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 425

peut couramment considrer qu'une marge de 32 40 pixels est suffisante pour les signaux de
synchronisation horizontaux, et qu'il faut 0 10 lignes pour les signaux de synchronisation verticaux.
L'cart entre le dbut et la fin de ces signaux doit tre suffisamment 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 d'obtenir 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, l'cran est capable de travailler 70 kHz au plus, c'est--dire d'afficher 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. C'est bien le
cas ici, puisqu'il 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 afficher 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 l'cran 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 d'tre 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 l'optimum, l'image sera bien trop grande ou dforme sur les bords. Vous devrez donc faire des
ajustements manuels pour vous rapprocher, petit petit, d'une ligne de mode utilisable. Vous pourrez
utiliser l'utilitaire xvidtune pour cela. Cet utilitaire est un utilitaire fourni avec X.org, qui permet de
modifier les dimensions et la position de l'image interactivement. Cet utilitaire fonctionne directement
sous XWindow, et permet donc d'avoir un aperu de l'image avec les paramtres modifis. Vous
trouverez une description plus dtaille de la manire d'utiliser xvidtune dans la Section 10.3.6.
Seul le redimensionnement de l'image modifie le nombre total de lignes et leur longueur totale. En
particulier, la rduction de la taille de l'image accrot la taille totale des lignes et leur nombre, ce qui
entrane la baisse du taux de rafrachissement. chaque fois que vous rduisez l'image, 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.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 426

Ainsi, aprs quelques modifications de la ligne de mode dans xvidtune et rajustements de la
frquence 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 d'obtenir un affichage correct en 904 par 678, avec un taux de
rafrachissement de 97.99 Hz, ce qui est plus qu'honorable. 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
l'image.
Si vous voulez approfondir le sujet, vous pouvez lire les formules mathmatiques donnant les relations
entre les diffrents paramtres techniques influant sur la gnration des images dans l'Annexe 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 d'utiliser les outils fournis avec
votre distribution...
10.3.4.8. Sections Modes
Gnralement, les lignes de mode sont dfinies pour un moniteur donn, car l'apparence de l'image
dpend des caractristiques physiques de chaque moniteur. Par consquent, ces lignes sont dfinies la
plupart du temps dans les sections Monitor . Cependant, il peut tre utile de regrouper toutes les
lignes de mode d'un type de moniteur donn dans une section part, afin de structurer et d'organiser le
fichier xorg.conf.
Pour cela, on crira des sections Modes , qui n'auront donc pas d'autre 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. L'intrt 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 d'un mme fabricant ou possdant des caractristiques
techniques similaires.
Le format des sections Monitor est trs simple, puisqu'elles ne contiennent qu'un identificateur,
introduit comme l'accoutume 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
EnsSection
10.3.4.9. Sections Screen
Les sections Screen permettent de regrouper les moniteurs et les cartes graphiques pour effectuer
l'affichage des crans d'un display, et d'indiquer les modes graphiques que l'on dsire utiliser parmi
tous les modes que le moniteur indiqu sait grer, pour chaque profondeur de couleur.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 427

Les sections Screen sont, comme les sections Monitor , constitues de deux parties. La premire
partie spcifie les informations gnrales de l'cran, 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
L'option Identifier permet, comme d'habitude, de nommer la section Screen courante. Le nom
doit tre indiqu entre guillemets, la suite du mot cl Identifier . C'est 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 graphique qui gre l'affichage de
cet cran. Il doit tre suivi du nom qui a t spcifi 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. Enfin, le mot-clef DefaultColorDepth
indique la profondeur de couleur utilise par dfaut au dmarrage 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 l'cran spcifiques 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 ;
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
spcifis, en donnant leurs noms respectifs, spars par des espaces.
des informations complmentaires concernant les rsolutions virtuelles pour les modes dans
lesquels la rsolution logique de l'cran est suprieure la rsolution rellement utilise. Ces
paramtres indiquent la rsolution logique de l'cran virtuel, ainsi que le positionnement de
l'image affiche par l'cran physique dans cet cran virtuel. Vous trouverez de plus amples
informations sur ces options dans la page de manuel xorg.conf.
10.3.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 l'indique, les sections de ce type fournissent les
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 428

informations concernant la disposition des crans d'un display. Cependant, dans la plupart des cas, les
displays n'ont qu'un 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 fichier xorg.conf. En effet, ce fichier peut
tre utilis par plusieurs serveurs X qui peuvent tourner simultanment sur la mme machine (que l'on
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
fichier xorg.conf, mais il est possible de lui demander d'en utiliser une autre l'aide d'une option en
ligne de commande. Toutefois, encore une fois, la plupart des machines ne disposent que d'un seul
cran, et mme si l'on lance plusieurs serveurs X, il n'y a ici besoin que d'une seule section
ServerLayout .
Les sections ServerLayout indiquent surtout au serveurs X quels sont les priphriques d'entre
utiliser (au moins un clavier et une souris) en plus de l'cran ou les crans du display. Ce sont donc ces
sections qui dfinissent compltement un display donn. L'exemple 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 d'un nom qui permet de les identifier. Ce nom est le nom qui
sera utilis dans la ligne de commande du serveur X si plusieurs sections ServerLayout sont
dfinies. Il doit tre indiqu, comme d'habitude, la suite du mot-clef Identifier , entre guillemets.
Les sections ServerLayout doivent ensuite indiquer au moins un cran pour le display qu'elles
dcrivent. Les crans sont introduits l'aide du mot-clef Screen , suivi de l'identificateur de la
section Screen utiliser. Si plusieurs crans doivent tre utiliss, il est possible de spcifier la
position des crans les uns par rapport aux autres l'aide d'options complmentaires, qui sont
spcifies la suite de l'identificateur de l'cran. Ces options permettent de positionner les crans
relativement les uns aux autres, ou de manire absolue en prcisant leurs coordonnes dans le systme
de coordonnes de l'cran virtuel. Les options les plus simples utiliser sont les options RighOf,
LefOf, Above et Be1ow, qui permettent d'indiquer respectivement que l'cran courant est situ
droite, gauche, au dessus ou en dessous de l'cran dont l'identificateur est spcifi juste aprs. Par
exemple, si l'on 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 l'aide du mot-clef InputDevice ,
suivie de l'identificateur de la section InputDevice utiliser. Le serveur X doit interprter les
vnements provenant des diffrents priphriques d'entre correctement. Il faut en particulier lui
indiquer quels sont les priphriques principaux l'aide de l'option CoreRoiner pour la souris
principale et l'option CoreKeyboard pour le clavier principal. Seuls les priphriques d'entre
principaux seront utiliss en tant que clavier et en tant que souris.
Enfin, comme vous pouvez le voir dans l'exemple donn ci-dessus, il est possible d'utiliser des options
spcifiques pour chaque section ServerLayout . Ces options sont les mmes que celles utilises
dans la section ServerFlags . Vous pouvez donc ici spcifier une autre valeur que celles indiques
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 429

dans cette section, afin de prciser le comportement d'un serveur spcifique. Dans l'exemple donn ci-
dessus, l'conomiseur d'cran a t rgl pour s'activer au bout de 5 minutes.
10.3.5. Informations utilises lors du dmarrage de X.org
Les informations stockes dans le fichier de configuration xorg.conf sont utilises par X.org pour
dterminer la manire dont l'affichage doit se faire. Lorsque le serveur X dmarre, il commence par
rechercher la section ServerLayout qu'il doit utiliser pour dterminer les principales options du
display. Par dfaut, il utilisera systmatiquement la premire section ServerLayout du fichier
xorg.conf. Cependant, il est possible de lui demander d'en utiliser une autre, l'aide de l'option de
ligne de commande -1ayou, suivie de l'identificateur de la section utiliser.
Le serveur X initialise alors tous les crans du display et prend en charge les priphriques d'entre.
Pour chaque cran, il choisit la profondeur de couleur indique dans la variable DefaultDepth de la
section Screen et tente de l'utiliser. Cependant, il est possible de choisir une autre profondeur de
couleur l'aide de l'option -deph, suivie de la profondeur de couleur utiliser, spcifie en bits par
pixels. Remarquez que dans le cas des configurations plusieurs crans, il n'est possible de spcifier
qu'une 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
rsolution indique dans la liste des modes de la sous-section Display dont la profondeur de
couleur correspond celle utilise. Il tente alors de passer l'adaptateur 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 d'une
rsolution la suivante ou la prcdente dans la liste des modes spcifis 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.
Note : La rsolution virtuelle de l'cran n'est pas modifie lorsqu'on change de rsolution physique.
Elle est toujours gale la plus grande des rsolutions disponibles dans la section Display utilise.
Seule la rsolution physique de l'affichage est modifie. Vous pourrez dplacer la zone d'affichage en
dplaant la souris, et faire dfiler ainsi tout l'cran.
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.3.6. Utilisation de xvidtune
xvidtune est un petit utilitaire permettant de rgler les paramtres d'affichage de chaque mode
graphique. Grce lui, vous pourrez ajuster la taille de l'image 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 qu'il dmarre, il commence par afficher une fentre d'avertissement, pour vous prvenir qu'un
usage par une personne non avertie peut provoquer de srieux dommages au moniteur. En effet, il
permet de modifier les paramtres de synchronisation horizontale et verticale du moniteur pour ajuster
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 430

l'image. Si vous choisissez de mauvais paramtres, vous pouvez sortir des spcifications techniques de
votre moniteur, ce qui pourrait fort bien l'endommager. Fort heureusement, la plupart des moniteurs
modernes disposent de mcanismes de scurit qui les empchent de gnrer l'image lorsque ces
paramtres sont incorrects. Par consquent, il est assez rare d'avoir des problmes avec cet utilitaire,
d'autant plus qu'il effectue des contrles avant toute tentative douteuse. Vous pouvez donc valider en
toute confiance, mais soyez malgr tout averti des risques potentiels. Rappelons que le serveur X peut
tre arrt n'importe quel moment l'aide de la squence de touches CTRL+ALT+BACKSPACE.
L'cran de xvidtune se compose de quatre parties. La partie suprieure gauche permet de rgler les
paramtres horizontaux du mode graphique, savoir la largeur de l'image 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. Enfin, la partie infrieure
gauche contient les boutons permettant de choisir les actions effectuer.
Les paramtrages horizontaux et verticaux du mode graphique peuvent tre modifis trs simplement.
Les boutons Left et Right permettent de centrer l'image horizontalement, et les boutons
Wider et Narrower permettent d'ajuster sa largeur. De mme, les boutons Up et Down
influent sur le centrage vertical, et les boutons Shorter et Taller ajustent sa hauteur.
Vous pouvez tester les modifications apportes tout instant l'aide du bouton Test . Il est mme
recommand d'essayer rgulirement les paramtres choisis et de procder pas pas. Lorsque les
paramtres conviennent, ils peuvent tre appliqus immdiatement l'aide du bouton Apply . Si
vous dsirez gnrer une ligne mode valide pour la configuration courante, par exemple afin de
modifier votre fichier de configuration xorg.conf, vous pouvez cliquer sur le bouton Show . La
ligne de mode sera affiche sur le terminal partir duquel vous avez lanc xvidtune. Vous pourrez
alors la recopier dans le fichier xorg.conf la place de la ligne de mode du mode graphique en cours
d'utilisation.
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 fichier
xorg.conf par xorgconfig ou xorgcfg. Une fois que vous aurez ajust tous les modes graphiques et que
vous les aurez enregistrs l'aide 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 fichier xorg.conf. Vous devez reporter manuellement dans le fichier xorg.conf les paramtres
du mode courant, tels qu'ils sont prsents par la commande Show .
10.4. Utilisation du pilote frame buffer du noyau
Si par malheur votre carte graphique n'est gre par aucun des pilotes de X.org (cas relativement
exceptionnel), vous serez sans doute oblig d'utiliser le pilote vesa. Ce pilote permet d'utiliser toutes
les cartes compatibles avec le standard VESA 2.0 (c'est--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 d'utiliser Linux compltement en mode graphique, en fournissant
un accs linaire direct la mmoire vido de la carte graphique grce au fichier spcial de
priphrique /dev/fb0. Il existe un pilote X.org pour le frame buffer du noyau, qui permet donc de
dmarrer le serveur X en s'appuyant compltement sur le noyau. L'avantage du frame buffer du noyau
est que mme les consoles en mode texte feront leur affichage 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.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 431

Pour accder la mmoire vido, le noyau se base galement sur l'interface de programmation du
standard VESA 2.0, qui est gre par le BIOS de la plupart des cartes graphiques rcentes. Cela
signifie galement que vous ne disposerez pas d'acclration matrielle en gnral, sauf pour quelques
cartes graphiques courantes reconnues par le noyau.
10.4.1. Configuration du noyau et installation du pilote
La mise en uvre du pilote pour le frame buffer se fait videmment dans la configuration du noyau.
Les options activer sont toutes dans le menu Console drivers . En plus de l'option 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 l'ordinateur. Vous devrez
galement cocher l'option Support for frame buffer devices (EXPERIMENTAL) (cette option ne
vous sera propose que si vous avez valid l'option 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 d'utiliser un mode graphique VESA
indiqu au dmarrage pour l'affichage 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 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 vrifier que le fichier spcial de priphrique /dev/fb0 a t cr par le programme
d'installation de votre distribution. Si ce n'est pas le cas, vous devez le crer l'aide de la commande
mknod. Le numro de priphrique majeur de ce fichier est 29. Le numro mineur utiliser est le
numro du priphrique. Par exemple, le fichier spcial de priphrique /dev/fb0 porte les numros 29
et 0, le fichier /dev/fb1 porte les numros 29 et 1, etc. Ces fichiers sont tous de type caractre, la ligne
de commande pour crer un de ces fichiers est donc la suivante :
mknod fbn c 29 n

o n est le numro du fichier spcial de priphrique crer.
Il est galement recommand de crer un lien symbolique /dev/fb vers /dev/fb0 afin d'assurer la
compatibilit avec de vieux programmes utilisant ce nom pour accder au fichier spcial de
priphrique du gestionnaire du frame buffer du noyau.
Une fois ces oprations ralises, vous devez compiler le noyau et l'installer, en suivant la mthode
dcrite dans la partie dcrivant la compilation du noyau. Lors du redmarrage du systme, vous
pourrez passer l'option 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 :

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 432

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
afficher 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 modifier le fichier
de configuration de Lilo et spcifier le numro de ce mode dans la ligne vga=... . De cette manire,
votre systme redmarrera automatiquement dans ce mode graphique.
10.4.2. Configuration du serveur X
Les manipulations prcdentes n'ont pas grand intrt si vous ne dsirez travailler qu'avec la console.
En effet, l'affichage en mode graphique est beaucoup plus lent que l'affichage en mode texte, et
l'affichage du pingouin Tux au dmarrage ne vous apportera pas grand chose. C'est pour cela que
l'tape suivante est normalement de configurer le serveur X de X.org pour le pilote frame buffer, afin
d'utiliser l'environnement graphique XWindow et son systme de fentrage.
La configuration du serveur X est lmentaire. Il faut avant tout s'assurer que l'on dispose bien du
pilote permettant au serveur X d'utiliser l'interface /dev/fb0. Ce pilote se nomme fbdev, et utilise un
autre module spcifique au systme d'exploitation nomm fbdevhw. Il faut ensuite modifier ou crer le
fichier xorg.conf pour utiliser ce pilote. Les seules sections modifier 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 fixs
par le mode VESA choisi au dmarrage d'une part, et parce que le serveur X ne saurait pas les
exploiter d'autre part. Il suffit donc simplement d'indiquer que le pilote utiliser est le pilote fbdev, et
de donner l'adresse de la carte vido sur le bus l'aide du mot-clef BusID :
Section "Device"
Identifier "Carte 1"
Driver "fbdev"
BusID "PCI:1:5:0"
EndSection

Vous pourrez dterminer l'adresse de votre carte graphique l'aide de la commande lspci, ou en
demandant au serveur X de scanner les bus PCI en lui passant l'option -scanpci en paramtre :

X.org -scanpci
La section Screen est elle aussi trs simplifie, 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"
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 433

Monitor "Moniteur 1"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "default"
EndSubSection
EndSection
Notez qu'il 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
n'est spcifi dans la section Screen , les lignes de mode des sections Monitor sont prsent
facultatives. Ces sections peuvent donc tre simplifies galement.
Une fois ces modifications ralises, vous devrez pouvoir dmarrer XWindow simplement avec la
commande startx. Vous disposerez alors de toutes les fonctionnalits de XWindow, avec des
performances quelques peu infrieures celles que vous auriez avec un serveur X adapt votre carte
graphique. Il est conseill de suivre l'actualit de X.org afin de savoir si un tel serveur est en cours de
dveloppement et, si oui, d'en rcuprer une version finale ds que possible.
10.5. Configuration des terminaux X
Nous avons vu dans le chapitre de configuration du systme de base que la connexion des utilisateurs
se faisait par l'intermdiaire d'un terminal. La plupart des terminaux sont en mode texte, mais il est
galement possible d'utiliser des terminaux graphiques sous XWindow. Les terminaux de ce type sont
logiquement appels terminaux X .
Si le niveau d'excution 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 l'intermdiaire de ce terminal X. Le principe de fonctionnement des
terminaux X n'est pas exactement le mme que celui que nous avons vu pour les terminaux virtuels
(voir la Section 6.8). En effet, les terminaux X ne sont pas grs par les processus getty et login
classiques, mais par un programme spcifique nomm xdm (abrviation de l'anglais X Display
Manager ).
10.5.1. Principe de fonctionnement de xdm
Contrairement ce qu'il fait avec les processus getty, init ne lance qu'un script d'initialisation de
XWindow lorsqu'il passe dans le niveau d'excution correspondant. Ce script a pour tche
essentiellement le dmarrage du dmon xdm. C'est ce dmon qui est en charge de grer les connexions
sur tous les serveurs X qu'il peut trouver, en proposant la fentre de login et en permettant ainsi
l'utilisateur de s'identifier et s'authentifier.
En gnral, xdm lance lui-mme le serveur X de la machine locale, et surveille son excution. Lorsque
l'utilisateur se dconnecte, le serveur X se rinitialise, et xdm affiche une nouvelle fentre de
connexion. Cependant, xdm est galement capable d'utiliser des serveurs X distants (qui sont donc
dj lancs), afin de permettre la connexion d'utilisateurs sur des terminaux X dports. Enfin, il est
possible de le configurer pour qu'il se signale sur un rseau, afin que les serveurs X fonctionnant sur ce
rseau puissent lui demander une connexion. Les serveurs X capable de se connecter xdm de cette
manire doivent comprendre le protocole XDMCP (abrviation de l'anglais XDM Control
Protocol ). Comme on le voit, la souplesse de ce mcanisme est tout simplement exceptionnelle.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 434

Note : Pratiquement, le processus xdm se duplique pour chaque terminal X dont il gre la connexion.
Ainsi, chaque processus xdm propose la connexion et surveille la dconnexion de l'utilisateur 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 d'excution. Ce mcanisme est donc compltement transparent
pour l'utilisateur.
La plupart des environnements graphiques modernes (comme KDE et GNOME) fournissent leur
propre gestionnaire de display. Ces gestionnaires sont toutefois compatibles avec xdm, et leur
configuration se fait de la mme manire.
10.5.2. Configuration de xdm
Le comportement de xdm est compltement dfini dans ses fichiers de configuration, qui sont en
gnral placs dans le rpertoire /etc/X11/xdm/. Ces fichiers de configuration dcrivent chacun un des
aspects du comportement de xdm. Le fichier de configuration principal est le fichier xdm-config, qui
contient les rfrences sur les autres fichiers de configuration. Notez que si vous utilisez
l'environnement de bureau KDE et son gestionnaire de connexion kdm, les fichiers de configuration
utiliser sont ceux de kdm. Bien qu'ils soient strictement compatibles avec ceux de xdm, ces fichers se
situent dans le rpertoire de configuration de kdm. Ce rpertoire est gnralement le sous-rpertoire
share/config/kdm/ du rpertoire d'installation de KDE.
10.5.2.1. Serveurs X locaux
La dfinition des serveurs X qui n'utilisent pas le protocole XDMCP et que xdm doit prendre en
charge directement est ralise dans le fichier de configuration rfrenc par la ligne
DisplayManager.servers du fichier xdm-config. Par dfaut, ce fichier est le fichier
/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 s'il est local. Le display indiqu sera
celui qui sera utilis pour dfinir la variable d'environnement ISRLAY, 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 afficher 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 spcifie que pour les serveurs
de type local .
Les serveurs X peuvent prendre un certain nombre 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 X.org. Les options les plus intressantes dans le cadre du lancement du serveur X par xdm
sont celles permettant de dfinir le display que le serveur aura en charge et le terminal virtuel qu'il
devra utiliser pour effectuer son affichage. Notez bien que le display doit tre le mme que celui donn
xdm. Ces deux options sont passes directement la suite du nom de l'excutable du serveur X
lancer :
/usr/bin/X display vtNN

o vtNN est le nom du terminal virtuel utiliser (vt01 pour /dev/tty01, vt02 pour /dev/tty02, etc.).
Ainsi, si l'on 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 fichier de configuration Xservers :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 435

:0 local /usr/bin/X :0 vt11
:1 local /usr/bin/X :1 vt12
Note : La spcification du terminal virtuel utiliser est facultative. Si aucun terminal n'est indiqu, le
serveur X utilisera le premier terminal qu'il trouvera. Cependant, il est plus sr de toujours indiquer le
terminal utiliser, car le noyau ne cre les terminaux qu' la demande, lorsqu'un 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 s'en approprier un, sans se proccuper du
programme qui l'utilise ce moment. Le fait d'indiquer manuellement le terminal utiliser vous
vitera donc des problmes assez curieux, tels que ceux qui peuvent survenir si les terminaux utiliss
par les serveurs X le sont dj par un getty par exemple. De plus, cela permet galement d'viter, si on
lance plusieurs serveurs X sur la mme machine, qu'ils n'accdent 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 afin 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 n'aient fini de s'initialiser. Lorsque ceux-ci dmarreront, ils changeront le terminal virtuel
courant et l'affichage de votre bureau risque d'tre corrompu. Si cela se produit, ne vous inquitez pas :
votre session X n'a pas plant. Assurez-vous seulement que vous vous trouvez bien sur le bon terminal
virtuel, et faites en sorte que l'cran soit rafrachi (par exemple, changez de bureau virtuel ou dplacez
une fentre sur l'cran).
Remarquez galement que les fichiers de configuration fournis avec X.org ne prvoient pas
l'utilisation de plus de deux sessions X par dfaut. Si d'aventure vous dsirez en utiliser plus, vous
devrez complter le fichier de configuration xdm-config 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.
Mfiez-vous enfin 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 performances du
systme risquent donc de se dgrader sensiblement si vous lancez plusieurs serveurs X. N'oubliez pas
qu'aprs tout, XWindow est un systme de fentrage et que la plupart des gestionnaires de fentres X
donnent la possibilit d'utiliser des bureaux virtuels. En pratique, deux sessions X devraient suffire,
afin de se connecter sous deux utilisateurs diffrents (un utilisateur normal et l'utilisateur root par
exemple).
Enfin, notez que le changement d'un terminal X un autre terminal virtuel peut provoquer quelques
problmes en ce qui concerne l'tat du clavier. En effet, l'affichage des diodes (Verrou numrique et
Majuscule en particulier) n'est pas rtabli correctement, mme si le clavier continue fonctionner
correctement. Cela peut surprendre quelque peu la premire fois que l'on rencontre ce problme. Il
suffit d'appuyer deux fois de suite sur les touches Verr Num et Caps Lock (c'est--dire la touche de
verrouillage des majuscules) afin de rtablir l'tat correct de ces diodes. Remarquez galement que les
serveurs X mmorisent l'tat des terminaux virtuels lors de leur dmarrage, et neutralisent chaque
basculement vers un terminal en mode texte les ventuels changements de police de caractres.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 436

10.5.2.2. Serveurs X utilisant XDMCP
Comme nous l'avons dit plus haut, xdm est galement capable de se signaler sur un rseau l'aide du
protocole XDMCP, afin de permettre aux serveurs X distants de raliser une connexion sur la machine
o il est lanc. De cette manire, le lancement d'un serveur X sur une machine du rseau permettra
d'obtenir la fentre de connexion votre machine Linux.
xdm est capable de rpondre aux demandes de connexion directes des serveurs X distants (remarquez
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
l'adresse des machines qui utilisent xdm. Cette information peut faire partie de la configuration du
poste client, mais elle peut galement tre dtermine dynamiquement. Pour cela, le serveur X du
poste client met une requte XDMCP en mode broadcast sur le rseau (c'est--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,
l'utilisateur 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 l'envoi d'une requte en mode broadcast. Par
ailleurs, il n'est pas toujours possible d'utiliser le mode broadcast, car les paquets de ce type peuvent
trs bien ne pas tre routs lors de la traverse d'un passerelle. Par consquent, xdm offre galement la
possibilit d'interroger 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 l'utilisateur peut
choisir la machine laquelle il dsire accder.
La configuration de xdm pour le protocole XDMCP se fait dans le fichier identifi par la ligne
DisplayManager.accessFile du fichier xdm-config. Par dfaut, le fichier ainsi rfrenc est le
fichier Xaccess du rpertoire /etc/X11/xdm/. La syntaxe de ce fichier est trs simple. Il contient des
rgles indiquant le comportement de xdm lorsqu'il reoit une requte de connexion de la part d'un
serveur X. Ces rgles sont dfinies pour des groupes de machines. Les machines sont identifies par
leur nom ou leur adresse IP, plusieurs machines pouvant tre spcifies par une mme rgle grce aux
caractres gnriques classiques '*' et '?'. Il est galement possible d'exclure une machine ou un groupe
de machines en prfixant le nom du caractre de ngation '!'.
Il existe quatre types de lignes dans le fichier Xaccess. Le premier type permet simplement d'indiquer
que les connexions directes ou en mode broadcast provenant d'une machine sont toutes acceptes. Ce
sont les lignes les plus simples, puisqu'il suffit simplement d'indiquer 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 qu'aux 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 fichier Xaccess :

termX3.localnet.org NOBROADCAST
Le deuxime type de ligne permet de spcifier le comportement de xdm pour les demandes de
connexion indirectes. Ces lignes contiennent toujours le nom de la machine ou du groupe de machines,
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
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 437

capable d'effectuer des requtes en mode broadcast, et que l'on veuille qu'elle 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 fichier Xaccess :
termX2.localnet.org s5.localnet.org s11.localnet.org \
s13.localnet.org
Le troisime type de ligne permet de lancer un programme nomm chooser et qui va proposer la
liste des serveurs l'utilisateur 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 l'utilisateur. La syntaxe de ces
lignes est trs simple, puisqu'il suffit de faire prcder les noms des serveurs par le mot cl
CHOOSER. Si l'on reprend l'exemple prcdent, la ligne de configuration 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 n'en n'est
pas capable. Il suffit pour cela de remplacer la liste des serveurs par le mot cl BROADCAST .
Ainsi, la ligne suivante :
termX4.localnet.org CHOOSER BROADCAST

signifie 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 broadcast
sur le rseau afin de dterminer la liste des machines excutant le processus xdm. Une fois qu'il a
obtenu cette liste, il l'affiche sur le display gr par le serveur X qui s'est connect. De cette manire,
l'utilisateur 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 enfin propose l'utilisateur.
Le quatrime type de ligne permet de dfinir des macros de remplacement pour grer les listes de
noms de machines plus simplement. La dfinition d'une macro se fait avec la syntaxe suivante :
%nom liste

o nom est le nom de la macro dfinir, et liste est la liste des machines qu'elle reprsente. Il est
possible d'utiliser des macros dans les dfinitions de macros.
Note : Le protocole XDMCP utilise le port 117 du protocole UDP. Vous pourrez donc ajouter la ligne
suivante dans votre fichier /etc/services, si elle ne s'y trouve pas dj :
xdmcp 117/udp
Notez galement que vous ne pourrez pas tester votre configuration en utilisant l'interface rseau
loopback. En effet, xdm vrifie la validit des adresses sources des paquets qu'il reoit, et il refuse par
dfaut tout paquet provenant de l'adresse 127.0.0.1. Si vous dsirez malgr tout utiliser XDMCP sans
rseau rel, vous pourrez utiliser l'interface rseau dummy. Cette interface peut tre cre en activant
l'option Dummy net driver support du menu Network device support .
10.5.2.3. Paramtrage du serveur X pour utiliser le protocole XDMCP
L'criture du fichier Xaccess ne reprsente que la partie serveur du travail de configuration du
protocole XDMCP. En effet, il faut encore indiquer aux serveurs X distants quel processus xdm ils
doivent tenter de se connecter lors de leur dmarrage. Bien entendu, cela dpend fortement du serveur
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 438

X utilis, 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 X.org sera dcrite ici.
Les serveurs X de X.org utilisent des options en ligne de commande pour dterminer comment ils
doivent se comporter leur dmarrage. Lorsqu'ils sont lancs directement par xdm (c'est--dire
lorsqu'ils sont lancs en local, avec les options indiques dans le fichier Xservers), ils n'ont pas besoin
d'options spcifiques car ils n'utilisent pas XDMCP dans ce cas. En revanche, si l'on dsire les lancer
manuellement (ou dans un script d'initialisation), on devra utiliser l'une des options suivantes :
-query permet de demander une connexion directe sur une machine donne. Le nom de la
machine doit tre spcifi la suite de l'option ;
-indirect permet de demander une connexion indirecte sur une machine donne. Le nom
de cette machine doit tre spcifi la suite de l'option. La liste des machines qui a t
indique dans le fichier Xaccess sera retourne, ou bien le programme chooser sera lanc ;
-broadcast permet de demander au serveur X d'effectuer une requte de connexion en
broadcast sur le rseau.
Les serveurs de X.org ne sont pas capables de proposer une liste de machines l'utilisateur. Ils
prennent systmatiquement la premire machine qu'ils trouvent. Vous ne contrlerez donc pas la
machine sur laquelle la connexion sera faite si vous utilisez l'option -broadcas. C'est pour cela
qu'il est recommand d'utiliser le programme chooser dans le fichier de configuration Xaccess et de
configurer les serveurs pour faire des demandes de connexion indirectes.
10.5.2.4. Fichiers d'initialisation de sessions
xdm fournit la possibilit d'effectuer des actions lorsque divers vnements concernant la session
XWindow en cours ont lieu. Par exemple, il est possible de raliser un traitement particulier pour
l'initialisation de l'environnement d'un serveur X, pour fixer l'environnement de l'utilisateur qui se
connecte, et pour effectuer le mnage lorsqu'il ferme sa session. Toutes ces actions sont effectues
dans des scripts qui sont rfrencs par des lignes du fichier xdm-config.
La ligne DisplayManager.DISPLAY.setup , o DISPLAY est le nom du display (_0 pour :0, _1
pour :1, etc.), rfrence un script qui est excut au nom de l'utilisateur root avant que la fentre de
login ne soit prsente. Le fichier par dfaut utilis par X.org est le fichier /etc/X11/xdm/Xsetup. C'est
donc dans ce script que vous pourrez mettre des commandes d'initialisation spcifiques pour prparer
le login.
De la mme manire, la ligne DisplayManager.DISPLAY.startup rfrence le script Xstartup par
dfaut. Ce fichier est excut sous le compte root juste aprs l'authentification de l'utilisateur. C'est ici
que l'on pourra par exemple enregistrer la connexion de l'utilisateur dans le systme.
La ligne DisplayManager.DISPLAY.session rfrence quant elle le script Xsession, qui est
excut aprs Xstartup, mais au nom de l'utilisateur cette fois. Ce script prend gnralement en charge
le lancement des programmes ncessaires la gestion de la session de l'utilisateur. Par exemple, il est
possible d'y placer les commandes de lancement du gestionnaire de fentres ou du gestionnaire de
bureau.
Enfin, la ligne DisplayManager.DISPLAY.reset rfrence le script Xreset du rpertoire
/etc/X11/xdm/, qui est excut au nom de l'utilisateur 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 l'utilisateur dans le systme.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 439

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, gdm ou autre), qui permettent de
reprsenter les choix que l'utilisateur a fait pour sa connexion dans la fentre de login. Le premier
paramtre de ce script est normalement le nom du gestionnaire de fentres utiliser. Par exemple, pour
l'environnement de bureau KDE, le programme qui doit tre excut est le script startkde, alors que
pour l'environnement de bureau Gnome, il s'agit du programme gnome-session. Notez que le nom
failsafe rfrence un mode dgrad, et n'est normalement utilis que quand les autres gestionnaires
de fentres disponibles ne se lancent pas correctement.
Les scripts lancs au nom de l'utilisateur root (Xsetup et Xreset) sont excuts dans un environnement
minimal. La valeur de la variable d'environnement RATH pour ces scripts est dtermine par la valeur
de la ligne DisplayManager.DISPLAY.systemPath du fichier de configuration xdm-config. De
mme, le script Xsession est excut avec la variable d'environnement RATH fixe la valeur spcifie
par la ligne DisplayManager.DISPLAY.userPath du fichier xdm-config. Si vos scripts de gestion
des connexions ne fonctionnent pas correctement, c'est sans doute un problme li l'environnement.
En pratique, ces fichiers 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 modifications si
vous estimez que les actions effectues ne vous conviennent pas. En particulier, certaines distributions
n'enregistrent pas l'utilisateur qui commence une nouvelle session. Cette opration est ncessaire,
parce que xdm n'est pas un processus de login classique et ne le fait pas automatiquement (il n'utilise
pas de terminal pour faire la connexion). Vous aurez pour cela utiliser l'utilitaire sessreg fourni avec
XWindow. Cet utilitaire permet d'enregistrer un utilisateur avec l'option -a et de le supprimer avec
l'option -d. Vous devrez donc typiquement placer une ligne telle que celle-ci :
sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $LOGNAME

dans le fichier Xstartup, afin d'enregistrer les utilisateurs qui commencent une session XWindow, et
une autre ligne telle que celle-ci :

sessreg -d -l $DISPLAY -x /etc/X11/xdm/Xservers $LOGNAME

dans le fichier Xreset, afin de les supprimer lorsqu'ils terminent cette session.
10.5.3. Paramtrage des terminaux X
La configuration des terminaux X comprend un certain nombre de points qui vont de l'ajustement du
nombre de couleurs et de la rsolution la disposition du clavier, en passant par les paramtres de la
souris et l'conomiseur d'cran. 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 dfinis dans le fichier de configuration gnral de X.org
xorg.conf. Nous verrons donc ici comment modifier des paramtres qui tiennent plus de l'ergonomie
que de la configuration de base.
10.5.3.1. La commande xset
Ces paramtres peuvent souvent tre fixs lors du dmarrage du serveur X, ou dynamiquement avec la
commande xset. Les paramtres que l'on peut fixer avec xset sont trs nombreux, et seuls les plus
utiles seront dcrits ici. Veuillez consulter la page de manuel xset pour plus de dtails.
L'option dpms permet de fixer les temps d'attente avant la mise en veille du moniteur. Sachez que la
mise en veille constitue de loin le meilleur conomiseur d'cran, et que les conomiseurs logiciels du
type ballet de lignes sont trs jolis mais ne servent rien. Pire, ils peuvent ralentir la machine, ce qui
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 440

est inadmissible si vous l'utilisez en tant que serveur (heureusement, les conomiseurs d'cran logiciels
se lancent gnralement avec des priorits trs faibles, afin 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 d'nergie du moniteur, le temps avant le passage en mode veille, et le temps avant
l'extinction 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 d'teindre l'cran au bout de dix minutes d'inactivit.
Ces temps peuvent galement tre fixs dans le fichier de configuration xorg.conf, o ils sont
exprims en minutes, l'aide des mots cls StandbyTime , SuspendTime et OffTime . Ces
mots cls doivent tre placs dans la section ServerFlags du fichier de configuration. Cependant,
les serveurs X n'activent ces fonctionnalits que pour les moniteurs capables de grer le standard
DPMS. Ces moniteurs doivent donc tre signals l'aide de la ligne suivante :
Option "DPMS" "On"

dans la section Monitor qui les dfinit.
Note : Les valeurs des temps d'attente que vous pouvez fixer dans le fichier de configuration xorg.conf
peuvent tre crases par les valeurs dfinies dans la configuration de votre gestionnaire de bureau.
Vous devrez donc vrifier ces paramtres si les modifications que vous faites dans le fichier xorg.conf
ne sont pas prises en compte ou si l'conomie d'nergie reste dsactive malgr la prsence de l'option
RMS dans la section Monitor de votre moniteur.
Une autre option importante de la commande xset est l'option fp, qui permet d'ajouter et de supprimer
des chemins de rpertoires de polices de caractres. Pour ajouter un rpertoire, il suffit d'utiliser
l'option +fp et de faire suivre le chemin de ce rpertoire. La suppression d'un rpertoire se fait de la
mme manire, avec l'option -fp. Par exemple, pour ajouter le rpertoire de polices
/usr/share/fonts/100dpi/ la liste des rpertoires de polices du serveur, il suffit de taper la commande
suivante :
xset +fp /usr/share/fonts/100dpi
De plus, comme nous l'avons dj vu plus haut, les chemins des rpertoires de polices de caractres
peuvent tre fixs statiquement l'aide du mot cl FontPath de la section Files du fichier de
configuration xorg.conf.
Enfin, l'option q de xset vous permettra de visualiser l'ensemble des paramtres en cours d'utilisation.
10.5.3.2. Configuration de la disposition du clavier
Nous avons vu dans le chapitre de configuration 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 signifie qu'ils interprtent eux-mmes le flux de
scancodes provenant du clavier.
La raison de ce choix est que X.org est une implmentation portable du systme XWindow pour PC.
Cela signifie qu'il est prvu pour fonctionner sur plusieurs systmes d'exploitation de type Unix et
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 441

fonctionnant sur l'architecture compatible PC. Par consquent, il ne pouvait pas se baser sur des
keycodes, qui sont videmment dpendant du systme utilis.
L'inconvnient en revanche est que cela impose que les serveurs X dfinissent un mcanisme parallle
de gestion des touches du clavier, qui permette de modifier la disposition des touches et de dfinir 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 l'anglais X KeyBoard ). Ce
mcanisme permet de dfinir un grand nombre de donnes concernant le clavier, puisqu'outre
l'emplacement des touches, il fournit la gomtrie du clavier. Ainsi, toute application le dsirant peut
dterminer la forme du clavier et en dessiner une reprsentation fidle.
Malheureusement, le protocole Xkb ne prvoit pas la possibilit de dfinir de nouvelles touches avec
leurs scancodes. La gestion des codes reus du clavier n'est en effet pas paramtrable. Par consquent,
il est impossible d'utiliser des claviers exotiques si ceux-ci ne sont pas reconnus par X.org.
Le protocole Xkb utilise les fichiers de configuration stocks dans le rpertoire /etc/X11/xkb/. Ce
rpertoire contient un certain nombre de sous-rpertoires, dont chacun est relatif un des aspects de la
configuration du clavier. Le rle des principaux sous-rpertoires est dtaill dans le tableau suivant :
Nom du
rpertoire
Fonction
geometry/
Contient les fichiers de description de la gomtrie des claviers. Ces fichiers peuvent
tre utiliss par les applications pour obtenir une reprsentation graphique du clavier.
keycodes/
Contient les fichiers de dfinitions 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 qu'ils ne sont pas dfinis
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 dfinitions de clavier existantes pour
prendre en charge d'ventuelles nouvelles touches.
symbols/
Contient les dfinitions des plans de clavier ou, autrement dit, les associations entre les
keycodes X et les symboles obtenus lors de l'appui sur les touches.
rules/
Contient les dfinitions des modles de clavier de X.org. Ces modles de clavier sont
utiliss pour simplifier la dfinition des claviers dans le fichier de configuration
xorg.conf.
keymaps/
Contient les dfinitions des principaux claviers connus. Une dfinition de clavier
comprend entre autres la dfinition des keycodes, des touches modificatrices et des
symboles affects aux keycodes.
Il est probable que vous n'ayez pas modifier un seul des fichiers de ces rpertoires, car ils sont
correctement dfinis par dfaut. Le seul fichier qui peut tre intressant est le fichier fr du sous-
rpertoire symbols/. En effet, c'est dans ce fichier que vous trouverez la dfinition des symboles
affects chaque touche pour un clavier franais, en fonction des modificateurs (ALT, CTRL, etc.)
actifs lors de l'appui sur la touche. Le principe de fonctionnement de ce fichier est semblable aux plans
de claviers de Linux : pour chaque keycode, un ensemble de symboles peuvent tre dfinis. Ces
symboles sont indiqus entre accolades (caractres '{' et '}'), en deux jeux de symboles entours de
crochets (caractres '[' et ']'). Le premier jeu de symboles indique les symboles accessibles directement
et en utilisant la touche majuscule, et le deuxime jeu dfinit les symboles accessibles avec la
combinaison de la touche AltGr.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 442

Par exemple, la touche du chiffre '3' au dessus des lettres 'Z' et 'E' est dfinie comme suit dans le
fichier de dfinition du clavier franais (fichier fr) :
key <AE03> { [ quotedbl, 3 ],
[ numbersign, sterling ] };
Cela signifie que la touche dont le keycode est <AE03> (c'est--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 fichier du clavier franais, vous constaterez que toutes les touches ne sont pas
dfinies. La raison de cela est que ces fichiers utilisent par dfaut les affectations de touches du clavier
amricain standard. Par consquent, seules les diffrences ont t redfinies dans ce fichier.
Vous pourrez ventuellement modifier 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 redfinie le comportement de la touche 'E' pour qu'elle
renvoie le symbole Euro (caractre '') en combinaison avec la touche AltGr. Pour cela, vous pourrez
utiliser la configuration suivante dans le fichier 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 redfinie pour un clavier franais est la touche 'O', afin de lui faire
gnrer les symboles e dans l'o franais ('' et 'OElig;') 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 d'encodage correspondent aux symboles de l'encodage 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 l'encodage ISO 8859-1 qui ont le mme code que les
symboles '' et '' dans l'encodage ISO 8859-15.
Sachez enfin que l'obtention de ces symboles est bien entendue assujettie l'utilisation d'une police de
caractres utilisant l'encodage ISO 8859-15.
Comme vous avez d le constater, un certain nombre de plans de clavier sont dfinis en standard dans
X.org. De mme, plusieurs gomtries et dfinitions de keycodes sont fournies dans les sous-
rpertoires geometry/ et keycodes/ du rpertoire /etc/X11/xkb/. Le serveur X utilise les fichiers qui
sont rfrencs dans la section Keyboard du fichier de configuration xorg.conf. Comme on l'a dj
vu plus haut dans ce chapitre, le mot cl XkbLayout permet de dfinir le plan de clavier utiliser.
Ainsi, si vous spcifiez le plan de clavier fr la suite de ce mot cl, le fichier de dfinition des
associations keycodes-symboles utilis sera le fichier fr du rpertoire /etc/X11/xkb/symbols/. Les
autres options sont fixes par les mots cls XkbRules et XkbModel . Le premier mot cl indique
quel est le fichier utiliser pour dfinir les modles de claviers de X.org. Ce fichier 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 n'est ncessaire de spcifier que trois
paramtres pour dfinir le clavier sous X.org : le fichier contenant la dfinition des modles de clavier,
le modle lui-mme et le fichier dfinissant la disposition des touches.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 443

Note : Vous pouvez galement dfinir tous les paramtres du clavier dans le fichier xorg.conf. Cette
technique est plus complique et n'est pas ncessaire pour dfinir un clavier franais, elle ne sera donc
pas dcrite ici. Vous trouverez plus de renseignements ce sujet dans la page de manuel.

10.6. Paramtrage des applications et ressources X
Du fait que toutes les applications X font appel au serveur X pour effectuer leur affichage, et au
gestionnaire de fentres pour dfinir l'apparence 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, XWindow fournit un mcanisme standard pour toutes les applications, afin qu'elles puissent
grer leurs options de configuration de manire uniforme. Ce mcanisme se base sur des paramtres
grs par le serveur X, que l'on appelle des ressources X. La plupart des applications utilisent ces
ressources pour stocker leurs paramtres de configuration, et le fait que ce soit le serveur X qui
centralise 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 l'paisseur des traits. Cependant, les applications peuvent
parfaitement utiliser les ressources pour enregistrer des paramtres qui leurs sont propres. Le serveur
X n'interprte 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
dmarrage du serveur partir de fichiers de configuration au format texte, que l'on peut donc diter et
modifier aisment. Le serveur X utilise deux jeux de fichiers lors de son initialisation : les fichiers de
configuration par dfaut des applications d'une part, et le fichier de prfrences personnelles de chaque
utilisateur d'autre part. Les fichiers de configuration des applications sont normalement placs dans le
rpertoire /etc/X11/app-defaults/. Les applications y copient leurs propres fichiers lors de leur
installation. Le nom de chaque fichier correspond au nom de l'application laquelle il appartient, ce
qui permet de retrouver aisment le fichier de configuration d'une application donne. Le fichier de
prfrences personnelles de chaque utilisateur, quant lui, se place dans son rpertoire racine et porte
le nom .Xresources.
Les fichiers de ressources des applications sont lus en premier, en gnral dans les scripts
d'initialisation de XWindow. En revanche, le fichier de prfrences personnelles d'un utilisateur n'est
lu que lors de l'ouverture d'une session X par cet utilisateur. Lorsqu'une ressource prsente dans le
fichier de configuration par dfaut d'une application est redfinie dans le fichier de prfrences
personnelles d'un utilisateur, la valeur utilise est bien entendue celle de l'utilisateur. Ainsi, chacun
peut redfinir les valeurs par dfaut des ressources de toutes les applications qu'il utilise. La plupart
des applications peuvent galement prendre des options en paramtres de ligne de commande, qui
permettent de fixer les valeurs de certaines ressources. Ces options prvalent sur les valeurs dfinies
dans les fichiers de configuration des applications et de prfrences personnelles des utilisateurs.
Vous pourrez vous inspirer du contenu des fichiers de configuration des applications pour paramtrer
vos applications. Pour cela, il vous suffira simplement de recopier les dfinitions des ressources qui
vous intressent dans votre fichier .Xresources, et de tester le rsultat avec diffrentes valeurs.
L'affectation d'une 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.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 444

Les noms de ressources sont structurs de manire hirarchique. Ils sont en effet constitus d'un
certain nombre de composantes spares par des points (caractre '.'). La premire composante qualifie
l'application elle-mme, et porte son nom. Il est d'usage 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 d'applications X ont en effet un nom commenant par un 'X'). Les composantes suivantes
dfinissent un sous-ensemble de paramtres apparents dans l'ensemble des paramtres dtermin par
les composantes prcdentes. Enfin, la dernire composante du nom de ressource constitue le nom du
paramtre lui-mme.
Par exemple, le nom de ressource suivant :
XApplication.mainWindow.background

qualifie la couleur d'arrire plan (proprit background ) de la fentre principale (proprit
mainWindow ) de l'application XApplication . Notez que les deux premires lettres du nom de
la ressource sont en majuscules ici, car la premire lettre du nom de l'application est elle-mme un 'X'
majuscule.
Note : Les fichiers de ressources utilisent des noms de couleurs prdfinies pour dfinir les couleurs
des diffrentes parties des applications. Vous pourrez trouver la liste de ces noms de couleurs ainsi que
leurs dfinitions dans le fichier /usr/share/X11/rgb.txt. Vous pouvez galement dfinir 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, l'ensemble des paramtres des applications X est organis un peu comme sont organiss les
fichiers dans une arborescence de rpertoires. L'analogie ne s'arrte pas l : il est possible de
caractriser 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
ressources dont le nom comprend les deux composantes seront slectionnes, que ces deux
composantes soient adjacentes ou spares d'autres composantes intermdiaires. Par exemple, le nom
de ressource suivant :
XApplication*background

qualifie la couleur d'arrire plan de toutes les fentres de l'application Xapplication .
De mme, le caractre gnrique point d'interrogation (caractre '?') permet de remplacer une
composante par un nom quelconque. Le nom de ressource suivant :
XApplication.?.background

reprsente donc toutes les ressources comportant les composantes XApplication et background ,
spares par une composante de nom quelconque.
La structure des noms de ressources d'une application n'est pas due au hasard. Les paramtres sont
regroups soit par fonctionnalit, soit par thme, soit par appartenance la mme partie de
l'application. En gnral, les noms de ressources utiliss par les applications sont simples
comprendre. Vous trouverez des exemples de noms de ressources dans les fichiers de ressources des
applications.
Vous pouvez obtenir la liste exhaustive des ressources d'une application avec l'utilitaire appres. En
fait, cet utilitaire permet d'obtenir la liste des noms des ressources appartenant une branche de
l'arborescence des ressources. Cet utilitaire s'utilise selon la syntaxe suivante :
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 445

appres branche

o branche est le nom de la branche que l'on veut explorer.
Comme la base de donnes des ressources est initialise au dmarrage du serveur X et l'ouverture de
la session X, les modifications que vous pourrez apporter votre fichier 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
l'aide de l'outil xrdb (abrviation de l'anglais X ressource DataBase ). En fait, cet outil permet
d'effectuer diverses oprations sur la base de donnes des ressources.
L'option -merge est certainement celle que vous utiliserez le plus. Elle permet de mettre jour les
valeurs des ressources avec celles dcrites dans un fichier. La syntaxe utilise est la suivante :
xrdb -merge fichier

o fichier est le nom du fichier contenant la dfinition des ressources (gnralement, il s'agit de votre
fichier .Xresources).
L'option -load permet d'effectuer 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
fichier pass en paramtre. Sa syntaxe est la mme que celle de l'option -merge.
L'option -remove permet de vider la base de donnes et de supprimer toutes les ressources que vous
auriez pu dfinir au pralable. Elle s'utilise selon la syntaxe suivante :
xrdb -remove
Enfin, l'option -query permet de lister l'ensemble des ressources existantes.
10.7. Gestion de la scurit sous XWindow
XWindow n'effectue pas de contrle d'accs sur les oprations demandes par un processus connect
un serveur X. Cela signifie que tous les processus qui ont accs un display y ont un accs total. Par
exemple, un processus peut parfaitement faire une prise d'cran 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 l'utilisateur
courant ont le droit de se connecter au serveur X. Cela protge donc le display de l'utilisateur contre
les malversations de personnes mal intentionnes.
Cependant, cette restriction est assez forte, parce qu'elle va vous empcher de lancer un programme
graphique sous un autre nom d'utilisateur. Par exemple, vous ne pourrez pas lancer un programme
ncessitant les droits administrateur et dont le bit setuid n'est pas positionn. En effet, une fois que
vous vous serez identifi en tant que root avec la commande su, les programmes que vous lancerez le
seront au nom de l'utilisateur root, et le serveur X refusera la connexion. Un autre cas d'cole o cette
restriction peut tre gnante est le lancement d'un 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 s'excute, et n'a aucune chance d'aboutir.
XWindow fournit donc les outils ncessaires pour contrler le niveau de scurit en cours.
Classiquement, le serveur X utilise deux techniques pour contrler la validit des demandes de
connexion des clients. Le premier mcanisme de contrle d'accs est relativement grossier, puisqu'il se
base simplement sur les adresses des machines. Le deuxime mcanisme a t introduit ultrieurement
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 446

afin de permettre des contrles plus fins. Les contrles se font alors l'aide d'un mcanisme de cls
prives, que seuls les clients autoriss connaissent.
10.7.1. La commande xhost
La commande xhost permet de fixer le niveau des contrles d'accs bass sur les adresses de
machines. Comme on l'a vu, le serveur X n'accepte les connexions que de la machine locale. Vous
pouvez cependant lui indiquer d'accepter toutes les connexions provenant d'une autre machine avec
une commande telle que celle-ci :
xhost +machine

o machine est le nom de la machine en qui l'on a confiance. Si aucun nom de machine n'est spcifi,
tous les mcanismes de contrle d'accs sont dsactivs.
Inversement, la suppression d'une 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 d'accs
s'ils ont t dsactivs par un xhost +.
Notez bien que donner le droit de connexion une machine suppose que l'on fasse confiance 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 n'a pas t usurpe par celle
d'un pirate (technique dite de l' IP spoofing ). Ce n'est donc videmment pas la solution
recommande, surtout si vous tes connect Internet.
10.7.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 pouvez
trs simplement permettre l'utilisation 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 fichier .Xauthority de votre
rpertoire personnel. Ce fichier contient une cl prive pour chaque display auquel vous avez le droit
de vous connecter. Les clients que vous lancez consultent donc ce fichier afin de dterminer la cl
utiliser, en fonction du display auquel ils dsirent accder. Une fois cette cl connue, ils peuvent
s'authentifier auprs du serveur X grant ce display, et ainsi obtenir une connexion. Notez bien que le
fichier .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 fichier temporaire du rpertoire rfrenc
par le lien symbolique /etc/X11/xdm/authdir (qui rfrence gnralement le rpertoire
/var/lib/xdm/authdir/), que seul l'utilisateur root peut accder. Il communique ensuite ce fichier au
serveur X local l'aide de l'option -auh du serveur X pour que celui-ci puisse lire la cl utiliser.
Enfin, xdm enregistre cette cl dans votre fichier .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
l'utilisateur. Cependant, il peut tre ncessaire de manipuler le fichier .Xauthority pour lire les cls
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 447

prives et les communiquer aux personnes de confiance qui doivent avoir accs votre display. Ces
manipulations peuvent tre effectues l'aide 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 affiche alors le display, le type
d'authentification 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 fichier
.Xauthority :
xauth add display . cl

o display est le display utilisant la cl cl. Le caractre '.' est une abrviation pour le type
d'authentification MIT-MAGIC-COOKIE-1 (type d'authentification par dfaut). Ds que la cl
aura t ajoute dans son fichier .Xauthority, cette personne aura accs votre display.
Enfin, la commande suivante :
xauth remove display

permet de supprimer la cl utilise pour le display display.
Note : Il est ncessaire d'utiliser une technique de communication sre pour transmettre la clef, faute
de quoi le mcanisme de scurit de XWindow ne servirait rien. L'utilisation d'OpenSSH est
vivement recommande.
10.8. Gestion des polices de caractres
La gestion des polices de caractres est relativement complique sous XWindow. En effet, elle est
gre 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 spcifiques chaque pays, ce qui complique encore un peu plus les choses.
Enfin, pour couronner le tout, XWindow n'utilise pas la notion de graphisme indpendant du
priphrique, comme la GDI de Windows. Cela implique, hlas, qu'il ne se charge que de l'affichage et
pas de l'impression. Chaque programme doit donc prendre en compte lui-mme les problmes
d'impression, ce qui implique, en gnral, que les programmes soient capables d'imprimer sur des
imprimantes PostScript. Par consquent, la configuration des polices de caractres doit non seulement
se faire pour XWindow, mais galement pour chacun des programmes (ou, au moins, pour
l'interprteur GhostScript, utilis pour l'impression avec des imprimantes non PostScript).
10.8.1. Gestion des polices de caractres sous XWindow
Originellement, XWindow ne pouvait afficher que des polices de type bitmap, c'est--dire des polices
de caractres dfinies par un dessin pour chaque caractre et pour un certain nombre de rsolutions.
Cette technique avait l'avantage d'tre rapide l'affichage, mais de relative mauvaise qualit lorsque
les tailles demandes n'taient 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.
Ultrieurement, les polices Postscript sont apparues. Ces polices sont dfinies vectoriellement, c'est--
dire par des formules mathmatiques. La forme des caractres est ainsi calcule pour chaque
dimension, ce qui permet d'avoir une qualit irrprochable. L'avantage des polices Postscript est
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 448

qu'elles sont gres de manire native par les imprimantes PostScript, et assurent une qualit
d'impression optimale. En revanche, leur affichage sur les crans n'est pas toujours correcte, 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 d'crans. Enfin, les polices Truetype
ont t inventes par Apple. Ces polices sont galement vectorielles, mais disposent en plus de petites
astuces permettant d'amliorer leur lisibilit sur les priphriques faible rsolution tels que les
crans. Microsoft a licenci la technologie Truetype et l'a intgre Windows par la suite.
Afin de dcrire les polices le plus prcisment possible, XWindow leur donne des noms relativement
complexes. Ces noms constituent ce que l'on appelle la description logique des polices ( XLFD , qui
est l'abrviation de l'anglais X Logical Font Description ). Cette convention de dnomination
spcifie que la description des polices doit tre constitue de diffrents champs, spars par des tirets
('-'). De plus, la description doit elle-mme tre prcde d'un tiret. Les diffrents champs utiliss dans
la description logique des polices sont les suivants :
le nom de l'diteur 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) ;
l'inclinaison 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 d'espacement 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.
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 qu'elles
disposent 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 l'on appelle l'encodage 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 n'est que rarement le cas. En revanche, la manire de numroter les caractres
(c'est--dire la page de codes) peut avoir une influence certaine.
Comme on le verra plus tard, le jeu de caractres le plus pratique pour les pays d'Europe de l'Ouest 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 l'encodage des polices occidentales est ISO 8859-1. Cependant,
quelques caractres ont t oublis dans cette page de codes (notamment le o e dans l'o franais ('')).
Ces caractres sont pourtant disponibles dans certaines polices (en particulier, les polices Truetype
provenant de Windows), mais ne sont malheureusement pas disponibles avec l'encodage ISO 8859-1.
Pour y accder, on est oblig d'utiliser un autre encodage, comme par exemple l'encodage ISO 8859-
15. Cet encodage est quasiment identique l'encodage ISO 8859-1, aux caractres additionnels prs,
qui ont t ajouts pour les pays europens. Il est galement possible d'utiliser la page de codes 1252
des polices de caractres de Windows. Cette page de codes correspond l'encodage windows-
1252 , parfois galement nomm microsoft-ansi ou encore microsoft-cp1252 . En rsum, le
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 449

jeu de caractres et la page de codes permettent d'indiquer pour quel pays (ou quel alphabet) une
police est destine.
Note : Le problme des encodages est que seul l'encodage 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 difficile d'imprimer des textes encods avec des encodages
non standards.
La description logique des polices de caractres est trs prcise, puisqu'elle permet de spcifier
l'origine de la police, son nom, les informations la concernant, les caractres qu'elle comprend et
comment ils sont numrots. Lorsqu'on choisit une police de caractres, on peut parfaitement ne
prciser que certains critres (comme par exemple, l'encodage de la police). Dans ce cas, les champs
constituant le nom de la police non spcifis pourront tre remplacs par des caractres gnriques. Le
caractre '*' permet ainsi de spcifier n'importe quelle valeur pour ce champ, et le caractre '?' permet
de spcifier n'importe 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 signification 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
rpertoires de polices sur un systme, si bien qu'il est ncessaire d'indiquer X.org dans quels
rpertoires ils doivent rechercher les polices de caractres utilisables. Les rpertoires des polices
utilises par le serveur X sont indiqus dans le fichier xorg.conf, 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 fichier de configuration, pour d'autres, ils sont indiqus en ligne de commande.
Dans le protocole X, les rpertoires de polices doivent contenir un fichier fonts.dir donnant la liste des
polices de ce rpertoire. Ce fichier indique, sur sa premire ligne, le nombre de polices installes dans
ce rpertoire, et, sur les lignes suivantes, l'association entre les fichiers de polices et leur description
logique. Ce fichier est cr normalement par le programme mkfontdir. Ce programme gnre le
fichier fonts.dir partir des informations contenues dans les fichiers des polices ou partir du nom des
fichiers 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 fichier fonts.dir automatiquement. Pour ces polices, il faut crer un fichier fonts.scale contenant les
mmes informations que le fichier fonts.dir, et que mkfontdir utilisera pour crer ce dernier. La
mthode pour crer le fichier fonts.scale dpend du type de police utilise. Celle utilise pour les
polices Truetype sera dcrite dans la Section 10.8.2.
En gnral, les encodages les plus standards sont grs directement par le serveur X ou par le serveur
de polices. En particulier, l'encodage ISO 8859-1 est gr nativement. Il est toutefois possible de
dfinir de nouveaux encodages dans des fichiers d'encodages. Pour que le serveur X ou le serveur de
polices puisse utiliser les polices dfinies avec ces encodages, il faut que le rpertoire d'installation des
polices contienne un fichier encodings.dir. Ce fichier a la mme structure que le fichier fonts.dir, c'est-
-dire qu'il contient le nombre des encodages sur la premire ligne et, sur chaque ligne suivante, le
nom de l'encodage et le nom d'un fichier contenant la dfinition d'un encodage, spars par un espace.
De cette manire, le serveur X et le serveur de polices sont capables de raliser l'association entre le
nom de l'encodage utilis dans la description logique de polices et le fichier de dfinition de cet
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 450

encodage. La mthode permettant de crer le fichier encodings.dir sera dcrite plus loin dans la section
traitant de l'installation des polices Truetype.
L'criture des fichiers de dfinition d'encodages de polices est une tche assez complique, qui
ncessite de bien connatre la numrotation des caractres de chaque type de fichier de police. De
manire trs simplifie, on peut dire que les fichiers de dfinition d'encodage font l'association entre le
numro de chaque caractre dans la police et une numrotation standardise des caractres (XWindow
utilise l'encodage Unicode) de cette police. Cela permet de manipuler les textes avec la numrotation
standard, et d'utiliser des polices qui ne dfinissent 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
fichiers d'encodages ne sera donc pas dcrite plus en dtail dans ce document.
10.8.2. Installation des polices Truetype
L'installation des polices TrueType sous XWindow ne pose dsormais plus de problmes, puisqu'il
suffit de dfinir le fichier fonts.dir dans le rpertoire d'installation de ces polices. Cependant, un
certain nombre d'oprations supplmentaires devront tre ralises pour permettre l'impression des
documents utilisant les polices TrueType. Ce paragraphe dtaille la manire de dclarer les polices
TrueType au niveau du serveur X, et prsente les oprations ncessaires leur impression pour
quelques logiciels courants.
Gnralement, les fichiers de polices sont places dans des sous-rpertoires du rpertoire
/usr/share/fonts/. Ces sous-rpertoires permettent de classer les fichiers 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 TTF/.
10.8.2.1. Configuration du serveur X
Pour permettre au serveur X d'utiliser les polices TrueType, il faut simplement crire le fichier
fonts.dir de chaque rpertoire de polices. Rappelons que ce fichier 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.8.3.
Normalement, le fichier fonts.dir est gnr par le programme mkfontdir. Ce programme utilise les
informations contenues dans les fichiers de polices ou dans le nom de ces fichiers 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 fichier, ni dans leurs
nom. Celui-ci ne peut donc pas crer le fichier fonts.dir directement. Dans ce cas, mkfontdir utilise le
fichier de dfinition des polices taille variable fonts.scale. Ce fichier doit tre cr soit
manuellement, soit l'aide de l'utilitaire mkfontscale. Celui-ci doit tre appel dans le rpertoire
contenant les polices de caractres, et gnre un fichier fonts.scale directement utilisable par
mkfontdir.
Une fois le fichier fonts.scale cr, il ne reste plus qu' appeler mkfontdir avec la ligne de commande
suivante :
mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large
Cette commande aura pour effet de crer le fichier fonts.dir partir du fichier fonts.scale, et de crer
les fichiers d'encodage encodings.dir associs (en fait, il s'agit d'une simple recopie). mkfontdir utilise
les fichiers de dfinition d'encodages standards placs dans les rpertoires indiqus avec l'option -e.
Dans la commande prcdente, les encodages standards supports par XWindow du rpertoire
/usr/share/fonts/encodings/ sont utiliss.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 451

Note : L'encodage Microsoft cp1252 correspond l'encodage ANSI utilis par Microsoft
Windows. C'est un encodage non standard, qui ressemble fortement l'encodage ISO 8859-1 spcifi
par l'ISO. Ce dernier souffre malheureusement de l'absence de certains caractres franais (comme le o
e dans l'o). Si vous voulez rester compatible avec les normes ISO et accder malgr tout ces
caractres, vous pouvez utiliser l'encodage ISO 8859-15. Vous accderez ainsi tous les caractres
utiliss en Europe, mais vous ne pourrez plus utiliser les caractres additionnels dfinis par Microsoft.
Il faut noter que la plupart des polices sont dfectueuses et indiquent une page de codes errone dans
leur fichier. Cela explique pourquoi quelques descriptions logiques de polices dans le fichier
fonts.scale gnr automatiquement par mkfontscale peuvent tre fausses. Pour ces polices, il faudra
corriger l'encodage manuellement en modifiant le fichier fonts.scale avant d'excuter la commande
mkfontdir.
10.8.2.2. Configuration des polices Truetype pour l'impression
La plupart des programmes modernes, comme la suite bureautique OpenOffice et les programmes du
gestionnaire de bureau KDE par exemple, prennent en charge compltement les polices de caractres
TrueType tant pour l'affichage que pour l'impression. En gnral, ils impriment dans des fichiers au
format PostScript, et embarquent la dfinition des polices de caractres TrueType dans ces fichiers,
qui sont utilisables de manire indpendante. Vous n'aurez donc certainement rien faire pour pouvoir
utiliser les polices TrueType limpression.
Cependant, les plus anciens programmes se contentent de rfrencer les polices utilises dans les
fichiers d'impression, et il faut configurer le sous-systme d'impression pour qu'il puisse reconnatre
ces polices et les imprimer correctement. D'une manire gnrale, deux cas peuvent se prsenter :
soit on dispose d'une 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 l'avantage de ne pas provoquer de perte de qualit, puisque la
police Truetype est utilise telle quelle ;
soit on ne dispose pas d'imprimante PostScript, auquel cas on utilise ncessairement un
interprteur PostScript. Cet interprteur est souvent GhostScript, car il s'agit encore une fois
d'un logiciel libre. Quel que soit l'interprteur PostScript utilis, il faut soit le configurer pour
qu'il puisse utiliser les polices Truetype, soit que les applications fournissent la dfinition des
polices TrueType qu'elles utilisent dans les fichiers PostScript qu'elles gnrent lors de
l'impression. Cette dernire solution est celle utilise par les logiciels rcents (comme les
applications de KDE ou OpenOffice), ce qui fait qu'en gnral, les polices TrueType sont
prises en charge sans configuration additionnelle. Nous verrons plus loin comment configurer
les versions de GhostScript ultrieures la 7.00 pour qu'elles puissent prendre en compte les
polices TrueType pour les autres applications.
Dans les deux cas, il se peut qu'il faille configurer le logiciel utilis pour qu'il puisse utiliser les polices
Truetype de concert avec le sous-systme d'impression.
Les paragraphes suivants dcrivent les procdures suivre pour imprimer les polices Truetype en
gnral. La configuration des logiciels ne sera pas aborde, consultez leur aide ou recherchez des
renseignements sur Internet quant la procdure suivre.
10.8.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 l'on
utilise directement une imprimante PostScript ou si l'on utilise un interprteur PostScript incapable de
grer directement les polices Truetype. De manire gnrale, il est recommand d'utiliser GhostScript
mme si l'on possde une imprimante PostScript, car la configuration de l'impression se fait de la
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 452

mme manire que les autres utilisateurs de Linux, et il est donc plus facile de trouver de l'aide 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 d'un grave dfaut : il ne
permet pas de choisir l'encodage de la police PostScript qu'il gnre. Plus grave encore, il utilise
systmatiquement l'encodage standard Adobe, qui ne dispose pas de la plupart des lettres accentues
franaises (c'est aussi la raison pour laquelle il est recommand d'utiliser GhostScript). Vous pouvez
bien entendu modifier le code source si vous vous en sentez le courage.
Vous devrez compiler ttfps pour pouvoir l'utiliser. Lorsque vous aurez extrait les fichiers sources de
l'archive, vous aurez diter le fichier Makefile pour :
dfinir la variable d'environnement CC avec pour valeur le nom du compilateur que vous
utilisez (en l'occurence, gcc) :
CC=gcc
choisir entre les deux jeux d'options de compilation CELAGS. Vous ne devez en choisir qu'un
seul, il faut obligatoirement commenter l'autre avec un caractre dise ('#'). Le choix dpend
de l'architecture de votre machine. Si vous utilisez un PC, vous devrez choisir l'option
contenant l'option -SMALLENIAN.
Une fois ces modifications faites, vous pourrez compiler ttsps avec la simple commande suivante :
make
L'utilisation de ttfps est trs simple. Pour convertir une police Truetype en police Adobe de Type 42,
il suffit d'utiliser la ligne de commande suivante :
ttfps [-a fichier.afm] fichier.ttf fichier.pfa

o fichier.afm est le nom du fichier de dfinition des dimensions de la police PostScript, fichier.ttf est
le nom du fichier de police Truetype encapsuler, et fichier.pfa est le nom de la police PostScript
rsultante. La gnration du fichier .afm est facultative.
10.8.2.2.2. Installation des polices Truetype pour GhostScript
GhostScript est un interprteur PostScript capable d'imprimer les polices Truetype. Sa configuration
est trs simple, puisqu'il suffit de lui donner le nom de police que les fichiers PostScript utilisent pour
la rfrencer et le nom du fichier de police correspondant. Cette association est dfinie dans le fichier
Fontmap de GhostScript, que vous pourrez trouver dans son rpertoire d'installation (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 fichier sont similaires celles stockes dans le fichier
fonts.dir du rpertoire de polices. Pour chaque police, il faut rajouter une ligne de la forme suivante :
(nom) (fichier) ;

o nom est le nom de la police d'imprimante que les programmes utilisent dans les fichiers PostScript
qu'ils gnrent, et fichier est le chemin absolu du fichier de la police Truetype.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 453

En pratique, le nom de la police d'imprimante 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 d'imprimante
dans les logiciels capables d'imprimer en PostScript. Si l'on ne peut pas dfinir ce nom au niveau des
logiciels, il faudra ajouter un alias dans le fichier Fontmap de GhostScript pour chaque nom de police
utilis par les logiciels. Il n'existe 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 fichier PostScript et en regardant dans le fichier les instructions de
changement de police de caractres.
10.8.3. Configuration d'un serveur de polices
XWindow tant un systme de fentrage fonctionnant en rseau, il propose des services additionnels
sur le rseau en plus de l'affichage. Parmi ces services, on notera la possibilit de mettre en place des
serveurs de polices de caractres. Ces serveurs permetttent des clients situs sur d'autres machines
d'accder la dfinition des polices de caractres de la machine locale.
Le serveur de police fourni par XWindow se nomme xfs (abrviation de l'anglais X Font
Server ). Ce serveur utilise un fichier de configuration qui permet de lui spcifier les options avec
lesquelles il doit dmarrer. Dans la suite de ce document, le nom suppos de ce fichier est
/usr/lib/X11/fs/config. Un fichier de configuration 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 d'un autre serveur quand la limite
# prcdente est atteinte :
clone-self = on

# Rpertoire des polices de caractres :
catalogue = /usr/share/fonts/TTF

# 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

# N'utilise pas le mcanisme des traces du systme :
use-syslog = off

# Utilise le fichier d'erreurs suivant la place :
error-file = /root/xfs.errors
Lorsque vous aurez cr votre fichier de configuration, il ne vous restera plus qu' tester si tout
fonctionne bien. Il vous faut pour cela lancer le serveur de polices avec la ligne de commande
suivante :
xfs -port 7100 -config /etc/xfs.conf &

et essayer de lui demander la liste des polices qu'il peut fournir :

DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 454

fslsfonts -server localhost:7100
Si cette dernire commande choue, il se peut que le chemin indiqu pour les rpertoires de polices
dans le fichier /usr/lib/X11/fs/config ne soit pas correct, ou que le fichier fonts.dir n'existe 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 automatiquement
au lancement de X. Vous pourrez pour cela crer un script de lancement du serveur de polices, 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 d'excution. Vous trouverez
ci-dessous un exemple de script de lancement du serveur de polices permettant d'utiliser le fichier de
configuration prcdent :
#!/bin/bash
#
# /etc/rc.d/xfs
#
# Fichier de lancement du serveur de polices.
#

PORT=7100
FILE=/usr/lib/X11/fs/config
PRGM=/usr/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 n'est 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
fi
;;
*)
echo "Usage: $0 {start|stop|restart}"
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 455

exit 1
esac
exit 0
Comme X11 est dmarr classiquement dans le niveau d'excution 3 ou 4, vous devrez crer les liens
symboliques vers ce fichier pour le lancement et l'arrt 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 l'entre que pour la sortie du niveau d'excution. 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.
L'utilisation du serveur de polices est trs simple. Il suffit d'y 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 d'un serveur de polices locales la liste des
polices du serveur X, il suffit de taper la commande suivante :

xset +fp tcp/127.0.0.1:7100

Vous pourrez alors vrifier que ces polices sont bien disponibles avec le programme xfontsel.
Si vous le dsirez, vous pouvez ajouter automatiquement les polices d'un serveur de polices en
ajoutant la ligne suivante dans la section Files dans le fichier de configuration xorg.conf du
serveur :
FontPath "tcp/127.0.0.1:7100"

Cette ligne permet d'indiquer au serveur X qu'il 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 fichier de configuration xorg.conf.
10.9. Problmes classiques rencontrs
Il est possible que vous rencontriez quelques problmes au lancement de XWindow aprs avoir
modifi sa configuration. Ces problmes peuvent aller du blocage complet de la machine
l'impossibilit de lancer XWindow.
D'une manire gnrale, il est recommand de ne pas modifier la configuration dans le niveau
d'excution de XWindow (3, 4 ou 5 selon les distributions). En effet, dans ces niveaux, xdm relance
automatiquement le serveur X ds qu'il dtecte sa terminaison. Si le serveur X ne peut pas se lancer,
votre ordinateur se bloquera dans une boucle infinie, avec en prime deux changements de mode
graphique chaque itration (ce qui peut endommager srieusement votre moniteur). Si cela vous
arrivait, vous n'auriez 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
n'ait le temps de tenter un redmarrage du serveur X !), et redmarrer en indiquant le niveau
d'excution 2 l'amorage du noyau. Par consquent, essayez vos changement de configuration dans
le niveau d'excution 2 si possible, et faites vos tests avec la simple commande startx.
Des erreurs un peu plus techniques peuvent provenir de la configuration rseau elle-mme (n'oubliez
pas que XWindow est un systme graphique bas rseau). Les erreurs les plus effroyables sont sans
doute les erreurs du type _X11TransSocketINETConnect: Can't connect: errno = n , o n est un
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 456

code d'erreur numrique. Typiquement, cette erreur signale un problme dans la configuration rseau.
Les deux erreurs les plus classiques sont l'erreur 101, qui signale que la machine indique dans le
display n'a pas pu tre contacte, et l'erreur 111, qui signale que cette machine est bien accessible par
le rseau, mais que le serveur X ne s'y trouve pas.
En gnral, vous devrez vrifier toute votre configuration rseau si vous rencontrez des erreurs 101, et
le problme n'est certainement pas spcifique XWindow. Vous pouvez galement vrifier la validit
de votre display, car il se peut qu'il dsigne une machine inaccessible sur votre rseau (ou que la
rsolution de nom ait chou pour cette machine).
Pour ce qui est de l'erreur 111, c'est beaucoup plus simple. Dans la grande majorit des cas, le serveur
X dsign n'existe tout simplement pas. Il faut donc s'assurer que le serveur X en charge de grer le
display indiqu dans la variable d'environnement ISRLAY est bien lanc sur la machine dsigne.
Enfin, lorsqu'une application cliente refuse de dmarrer en affichant un message d'erreur Can't open
display: , c'est tout simplement que la variable d'environnement ISRLAY n'a pas t prcise, et que
l'option en ligne de commande -disp1ay n'a pas t utilise non plus. L'application ne sait donc tout
simplement pas quel display se connecter. Si le display a bien t dfini, mais que le message Can't
open display:xxx est complt du message Connection to "xxx" refused by server ou Client is
not authorized to connect to Server , c'est 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 l'accs votre display au compte utilisateur
sous lequel vous lancez le client.
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 difficile : 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, c'est sans aucun doute le dsir de bnficier 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 finirez par ne
plus pouvoir les utiliser. Et si vous y tes contraint, vous ne louerez plus leur facilit d'emploi, 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 l'a dj t dit au dbut de ce document, ce qui parat
compliqu au premier abord est souvent tout simplement inhabituel. C'est l'usage 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 !

Annexe A. Options de configuration du noyau
Table des matires

A.1. Menu General setup
A.2. Menu Loadable module support
A.3. Menu Block layer
A.4. Menu Processor type and features
A.5. Menu Power management options (ACPI, APM)
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 457

A.6. Menu Bus options (PCI, PCMCIA, EISA, MCA, ISA)
A.7. Menu Executable file formats / Emulations
A.8. Menu Networking
A.9. Device Drivers
A.10. Menu File systems
A.11. Menu Instrumentation Support
A.12. Menu Kernel hacking
A.13. Menu Security options
A.14. Menu Cryptographic options
A.15. Menu Library routines
Les questions poses par le programme de configuration du noyau 2.6.20 sont rcapitules ci-dessous.
Les rponses recommandes ont t choisies pour correspondre la plupart des cas courants. Il ne
s'agit pas des options recommandes pour installer un serveur ou pour un machine contenant des
priphriques exotiques (carte vido, port infrarouge, etc.). Avec ce jeu d'options, 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
configuration du matriel.
Je tiens prciser que certaines de ces options m'ont laiss dubitatif, tant dans l'incapacit 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 General setup
Ce menu comprend les options gnrales de configuration de Linux.
L'option Prompt for development and/or incomplete code/drivers , permet d'activer les options de
configuration des fonctionnalits en cours de dveloppement dans le reste du programme de
configuration du noyau. Vous devez rpondre 'Y' si des pilotes particuliers sont ncessaires. Si l'on
rpond 'N', les questions de configuration 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 qu'tant tout fait stable.
L'option Local version - append to kernel release permet d'ajouter une chane de caractres
spcifique au nom du noyau, afin de lui donner un nom spcifique et de le distinguer des noyaux
gnriques pour une installation particulire. Il est recommand de laisser cette chane vide.
L'option Automatically append version information to the version string permet d'ajouter
automatiquement des informations de version pour les versions de dveloppement du noyau dans le
numro de version. Cette fonctionnalit n'est utilise que par les dveloppeurs du noyau et n'est pas
utile pour les utilisateurs normaux. Toutefois, on peut laisser la valeur par dfaut 'Y' sans crainte.
La question Support for paging of anonymous memory permet d'activer le mcanisme de
pagination de la mmoire virtuelle de Linux, couramment appel le swap . Comme cette
fonctionnalit permet d'exploiter plus efficacement la mmoire vive pour les machines disposant d'une
mmoire de taille raisonnable, il est recommand d'activer cette option et de rpondre 'Y' cette
question.
L'option System V IPC permet d'activer la gestion des communications inter-processus
compatibles System V. C'est quasiment un standard sur tous les systmes Unix, il faut donc rpondre
par 'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 458

L'option POSIX Message Queues permet d'activer l'implmentation d'un certain type de
communications inter-processus appel les files de messages selon le standard POSIX. C'est une
fonctionnalit standard qu'il est recommand d'activer sur tous les systmes Unix, il faut donc
rpondre par 'Y'.
L'option BSD Process Accounting permet d'activer les statistiques des applications utilis sur les
systmes BSD. Ce mcanisme de surveillance peut tre utilis par quelques applications, aussi est-il
recommand de rpondre par 'Y'.
L'option BSD Process Accounting version 3 file format permet d'utiliser le format de fichier
version 3 des fichiers de traces pour la surveillance des applications. La version recommande est 'N'.
L'option Export task/process statistics through netlink (EXPERIMENTAL) permet d'activer les
statistiques sur les applications via le mcanisme de communication gnrique entre le noyau et les
processus utilisateurs NETLINK. Contrairement au mcanisme de surveillance BSD, celui-ci permet
d'optenir les statistiques des applications sont disponibles par un envoir commande. Les informations
sur le processus sont galement fournies lors de la fin du processus. La rponse recommande est 'N'.
L'option Enable per-task delay accounting (EXPERIMENTAL) permet d'activer la
comptabilisation du temps pass par les processus dans les oprations bloquantes. Ces informations
peuvent tre utilises pour un meilleur ordonnancement des tches dans le systme. La rponse
recommande est 'N'.
L'option Enable extended accounting over taskstats permet d'activer la collecte de statistiques
complmentaires pour les transfrer via l'interface taskstats. Cette option vous donnera l'accs
l'option Enable per-task storage I/O accounting , qui permet de prendre en charge les statistiques
sur les entres/sorties de chaque processus. La rponse recommande est 'N' pour ces deux options.
L'option User Namespaces permet d'activer une fonction du noyau destine certains logiciels de
virtualisation, et dont le but est de modifier les informations sur la nature du systme renvoye aux
programmes excuts dans des serveurs virtuels. La rponse recommande est 'N'.
L'option Auditing support permet de prendre en charge les fonctionnalits d'audit pour les autres
sous-systme de scurit de Linux tels que SELinux. Cette fonctionnalit est encore peu utilise et la
rponse recommande est 'N'.
L'option Enable system-call auditing support permet d'activer les fonctionnalits d'audit des appels
systmes conjointement avec d'autres sous-systmes de scurit de Linux tels que SELinux. Cette
fonctionnalit est encore peu utilise et la rponse recommande est 'N'.
L'option Kernel .config support permet d'inclure les options de configuration ainsi que la
description complte de l'environnement de compilation du noyau dans le noyau lui-mme. Cela
permet de retrouver la configuration utilise pour compiler le noyau, soit pour en regnrer un, soit
pour mieux pouvoir dboguer le noyau. Cette option vous donnera accs l'option Enable access to
.config through /proc/config.gz , qui permet de crer une entre dans le systme de fichiers virtuel
/proc/ afin de rcuprer ces informations. Ces options tant plus rserves aux dveloppeurs du noyau
qu'aux utilisateurs normaux, la rponse recommande est 'N'.
L'option Kernel log buffer size (16 => 64KB, 17 => 128KB) permet de spcifier la taille du
tampon circulaire utilis pour l'affichage des messages de traces du noyau. Si cette taille est trop petite
et que le noyau gnre beaucoup de messages lors du dmarrage ou lors du chargement du
priphrique, certains messages peuvent tre perdus. De ce fait, le dboguage de la configuration peut
en tre complique, et cette option devient alors utile. La taille indique est la puissance de deux
utiliser pour spcifier la taille effective du tampon. Les noyaux utilisant l'ACPI peuvent gnrer
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 459

beaucoup de messages de traces lors de la dtection du matriel, aussi est-il recommand de fixer la
taille de ce tampon 15 au moins.
L'option Cpuset support permet d'activer les fonctionnalits de partitionnement du systme en
groupes de processeurs et de nuds de mmoire sur les architectures multiprocesseur NUMA. La
rponse recommande est 'N'.
L'option Create deprecated sysfs files permet de prendre en charge des fins de compatibilit
ascendante certains fichiers du systme de fichiers virtuel /sys/ qui sont devenus obsoltes. Ces
fichiers ne doivent plus tre utiliss de nos jours, aussi est-il recommand de rpondre 'N' cette
question, sauf si votre distribution est antrieure 2006.
L'option Kernel->user space relay support (formerly relayfs) permet de prendre en charge une
interface spciale expose par certains systmes de fichiers virtuels permettant de transfrer
rapidement des grandes quantits de donnesentre le noyau et l'espace utilisateur. La rponse
recommande est 'N
L'option Initial RAM filesystem and RAM disk (initramfs/initrd) support permet d'activer la
gestion des systmes de fichiers virtuels en mmoire que les gestionnaires de chargement peuvent
utiliser pour charger le systme de fichiers racine lors du dmarrage sans disque. Cette fonctionnalit
est utilise par les programmes d'installation, les disquettes de rcupration et les Live CD de
dmonstration. Cette opion vous donnera accs l'option Initramfs source file(s) et aux options
User ID to map to 0 (user root) et Group ID to map to 0 (group root) , qui permettent d'activer
la prise en charge du systme initrd et d'indiquer respectivement un identifiant d'utilisateur et un
identifiant de groupe pour les fichiers qui devront tre affects au superutilisateur dans le systme de
fichiers racine du disque virtuel. Cette n'tant gnralement utilise que pour les programmes
d'installation, vous pouvez rpondre 'N' cette question.
L'option Optimize for size (Look out for broken compilers!) permet d'optimiser la compilation du
noyau pour rduire sa taille. Certaines versions de GCC gnrent du code faux avec ces options,
auquel cas une mise jour s'imposera. La rponse recommande est 'N'.
L'option Configure standard kernel features (for small systems) permet d'accder un sous-menu
contenant des options de fonctionnalits que l'on dsactive gnralement lorsque l'on veut faire un
noyau de petite taille, par exemple pour un systme embarqu. Les options de ce sous-menu sont
dcrites ci-dessous. La rponse recommande est 'N'.
L'option Choose SLAB allocator permet de choisir l'allocateur mmoire utilis en interne pour les
oprations de gestion mmoire courantes dans le noyau. Deux algorithmes sont disponibles,
l'algorithme classique (SLAB) et un nouvel algorithme plus performant (SLUB). Le nouvel algorithme
est appel remplacer l'ancien mais n'est pas forcment totalement stabilis. Il est donc recommand
d'utiliser l'ancien algorithme pour quelques temps encore et la rponse recommande est 'SLAB'.
A.1.1. Sous-menu Configure standard kernel features (for small systems)
L'option Enable 16-bit UID system calls , permet de dsactiver le support des appels systmes
utilisant les identifiants d'utilisateurs cods sur 16 bits, pour ne conserver que les appels systmes 32
bits. La rponse recommande est 'N', car des programmes peuvent encore utiliser des identifiants 16
bits.
L'option Sysctl syscall support , permet d'activer l'appel systme sysctl permettant de modifier les
paramtres de configuration gnraux du noyau. Cet appel systme s'est avr difficile maintenir et a
t remplac par un accs plus simple ces paramtres via le systme de fichiers virtuel /proc/. Il est
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 460

donc possible de dsactiver cet appel systme sur les systmes les plus rcents. Toutefois, on rpondre
'Y' pour assurer la compatibilit ascendante.
L'option Load all symbols for debugging/kksymoops , permet de supprimer les informations
symboliques de dbogage du noyau pour le cas o celui-ci planterait. Cela permet de rduire la taille
du noyau sensiblement. La rponse recommande est 'N'. La sous-option Include all symbols in
kallsyms permet d'ajouter toutes les informations symboliques de dboguage au noyau. Ces
informations ne sont pas utilises par le noyau en gnral, mais peuvent l'tre par certains dbogueurs.
La rponse recommande est donc 'N'. La sous-option Do an extra kallsyms pass est une option qui
ne doit normalement jamais tre active. Elle permet de contourner un bogue de gnration du noyau
qui est en attente de correction. La rponse recommande est 'N'.
L'option Support for hot-pluggable devices permet d'activer la gestion des priphriques
connectables chaud (c'est--dire pendant que le systme fonctionne). Parmi ces priphriques, on
rencontre couramment les cartes PCMCIA des portables, mais galement les priphriques USB et
FireWire, ainsi que les cartes PCI connectables chaud. Cette option est en particulier ncessaire pour
l'utilisation des cartes PCMCIA sur les portables. Elle vous donnera l'accs au menu PCCARD
(PCMCIA/CardBus) support , qui permet d'activer la gestion des cartes PCMCIA 32 bits (cela n'est
pas ncessaire pour utiliser les cartes PCMCIA 16 bits), au menu PCI Hotplug Support , qui permet
de prendre en charge la gestion des cartes PCI connectables chaud, et l'option Hotplug firmware
loading support , qui permet le chargement des firmwares via une interface standard du noyau par les
gestionnaires de priphriques. Cette option est facultative, mais fortement conseille, pour l'utilisation
des priphriques USB. Ces priphriques ne seront parfois pas configurs automatiquement lorsque
vous les connecterez chaud si vous ne l'activez pas. En fait, pour que la configuration des
priphriques USB connects chaud fonctionne, vous devez galement activer la gestion des
modules du noyau, ainsi que les options Kernel module loader et Hotplug firmware loading
support . Si cette option est active, le noyau appellera alors le programme de configuration udev, ou,
selon votre distribution, le programme hotplug pour charger le gestionnaire de priphriques
appropri lorsqu'un priphrique sera connect et pour les configurer. La rponse recommande est
'Y'.
L'option Enable support for printk permet d'activer les traces du noyau. Ces traces sont parfois
dsactives afin d'en rduire la taille. Cette fonctionnalit est utile pour les systmes embarqus, mais
en exploitation normale ces traces sont souvent d'une grande aide. Aussi la rponse recommande est-
elle 'Y'.
L'option BUG() support permet d'activer le support des vrifications des des erreurs fatales ou
irrcuprables dans le noyau. Ces vrifications sont parfois dsactives dans les systmes embarqus,
mais elles sont vivement recommandes pour les systmes normaux. La rponse recommande est 'Y'.
L'option Enable ELF core dumps permet de prendre en charge la fonctionnalit de vidage sur
incident de la mmoire des processus dans les fichiers core . Supprimer cette fonctionnalit peut
conomiser un peu de mmoire. La rponse recommande est 'Y'.
L'option Enable full-sized data structures for core permet d'autoriser l'utilisation des structures de
donnes compltes des algorithmes du noyau. Certaines structures peuvent tre rduites en taille,
moyennant une perte de performances. Cela peut tre utile pour les systmes embarqus, mais pour les
systmes normaux, il faut rpondre 'Y'.
L'option Enable futex support permet de raliser des synchronisations rapides entre les diffrents
processus utilisateurs. Cette fonctionnalit est nouvelle et n'est pas forcment utilise par les
applications des systmes embarqus, auquel cas elle pourra tre supprime. Sur un systme normal en
revanche, cette option est intressante, aussi la rponse recommande est-elle 'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 461

L'option Enable eventpoll support permet d'optimiser les oprations d'entre/sortie des processus.
Cette fonctionnalit tant rcente, certains systmes embarqus, qui ne l'utilisent pas, peuvent ne pas
en avoir besoin. Un systme classique en revanche peut en bnficier, aussi la rponse recommande
est-elle 'Y'.
Les options Enable signalfd() system call , , Enable timerfd() system call , et Enable imerfd()
system call permettent de prendre en charge des appels systmes qui peuvent tre utiles des
applications pour grer les diffrents vnements que le systme d'exploitation peut produire de
manire gnrique. Ces fonctionnalits sont trs utiles et de nombreux programmes les utiliseront sous
peu, aussi est-il recommand de rpondre 'Y' ces questions.
L'option Use full shmem filesystem permet d'activer la gestion complte du systme de fichiers
virtuel /dev/shm/, qui est utilis pour la gestion des segments de mmoire partags. En dsactivant
cette option, ce systme de fichiers est remplac par un systme de fichiers virtuel en mmoire plus
lger, ce qui peut tre utile pour des configurations sans swap. La rponse recommande est 'Y'.
L'option Enable VM event counters for /proc/vmstat permet d'activer la prise en charge des
statistiques concernant la gestion de la mmoire. Ces statistiques ne sont pas ncessaires pour le
noyau, aussi est-il possible de ne pas les prendre en charge afin d'conomiser de la place. La rponse
recommande est 'Y'.
L'option Enable SLUB debugging support permet d'activer la gestion des fonctions de dboguage
et de diagnostic du nouvel allocateur mmoire SLUB. La rponse recommande est 'Y'.
A.2. Menu Loadable module support
L'option Enable loadable module support permet l'emploi des modules par le noyau. Il est
recommand de rpondre 'Y' cette question.
L'option Module unloading permet de dcharger des modules en cours d'excution. Les modules
ne seront dchargs que s'ils ne sont pas utiliss, toutefois, il est possible de forcer le dchargement
d'un module mme si le noyau considre qu'il est utilis (ce qui est bien entendu extrmement
dangereux). Pour cela, il faut activer la sous-option Forced module unloading . Il est recommand
de rpondre 'Y' ces questions.
L'option Module versioning support (EXPERIMENTAL) permet d'enregistrer des informations de
version dans les modules du noyau afin de dtecter les conflits entre les modules compils pour une
autre version du noyau ou compils par un autre compilateur que celui qui a compil le noyau. Cette
fonctionnalit peut permettre l'emploi des modules normalement inutilisables, mais elle ne garantit pas
un fonctionnement correct pour autant. Il est donc recommand de rpondre par 'N' cette question.
L'option Source checksum for all modules permet de demander le calcul d'une somme de contrle
sur les fichiers sources des modules du noyau. Cela permet aux dveloppeurs du noyau d'tre certains
que les sources de ces modules n'ont pas t modifies et sont identiques les leurs lorsqu'ils analysent
un rapport d'anomalie. Cette fonctionnalit n'est normalement pas utile pour un utilisateur standard,
aussi la rponse recommande cette question est-elle 'N'.
L'option Automatic kernel module loading donne la possibilit au noyau de charger lui-mme les
modules 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 Block layer
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 462

L'option Enable the block layer permet de dsactiver la prise en charge des priphriques de type
bloc, ce qui peut tre utile pour les noyaux destins des appareils embarqus. Cela supprime des
fonctionnalits essentielles aux systmes de fichiers, aussi la rponse recommand est-elle 'N'.
L'option Support for Large Block Devices permet de prendre en charge les priphriques de type
bloc de grande dimensions (c'est--dire plus de deux tra octets). La rponse recommand est 'N'.
L'option Support for tracing block io actions permet de prendre en charge le suivi des oprations
sur les priphriques de type bloc des fins d'analyse. La rponse recommand est 'N'.
L'option Support for Large Single Files permet de prendre en charge les fichiers de trs grande
dimensions (c'est--dire de taille suprieure deux tra octets). La rponse recommand est 'N'.
L'option Block layer SG support v4 (EXPERIMENTAL) permet de prendre en charge une
nouvelle implmentation des priphriques SCSI gnrique, qui est utilise par les pariphriques
SCSI, les graveurs et les disques SATA. Cette nouvelle implmentation permet de prendre en charge
des oprations plus complexes que l'ancienne implmentation, mais elle est encore marque
exprimentale. Aussi la rponse recommand est-elle 'N'.
A.3.1. Sous-menu IO Schedulers
L'option Anticipatory I/O scheduler active l'ordonnanceur d'entres/sorties par dfaut de Linux.
Cet ordonnanceur peut effectuer les oprations de manire anticipe lorsqu'il en a la possibilit, afin
d'avoir viter de les faire de manire bloquante lorsque le systme sera peut-tre plus occup des
oprations plus importantes que les entres/sorties. Cette politique permet donc d'augmenter les
performances de manire gnrale, sauf dans de rares cas d'utilisation, essentiellement lors de
l'utilisation de certaines bases de donnes. La rponse recommande est 'Y'. Cet ordonnanceur est
l'ordonnanceur par dfaut de Linux.
L'option Deadline I/O scheduler active un ordonnanceur plus simplifi et plus compact,
relativement correct et parfois plus rapide que l'ordonnaceur de l'option Anticipatory I/O
scheduler , en particulier avec certaines bases de donnes. Cette option peut donc tre utile dans
certaines applications serveur. La rponse recommande est 'Y'. Il peut tre slectionn comme
ordonnanceur par dfaut du systme au dmarrage avec la ligne de commande elevator=deadline
du noyau.
L'option CFQ I/O scheduler active un ordonnanceur qui rpartit les requtes d'entre/sortie de
manire quitable entre tous les processus du systme. Cet ordonnanceur garantit donc une meilleure
rpartition des accs aux priphriques que les autres, ce qui le rend trs adapt pour les systmes o la
ractivit des processus doit tre maximale. C'est l'ordonnanceur de prdilection pour les ordinateurs
personnels, la rponse recommande est donc 'Y'. Il peut tre slectionn comme ordonnanceur par
dfaut du systme au dmarrage avec la ligne de commande elevator=cfq du noyau.
L'option Default I/O scheduler permet de slectionner l'ordonnanceur par dfaut utilis par Linux.
Si aucun des ordonnanceur prcdent n'est disponible, les oprations d'entre/sortie se feront dans
l'ordre direct des demandes des sous-systmes utilisateurs (ordonnanceur No-op ). L'ordonnanceur
par dfaut peut tre modifi en excution, pour chaque priphrique, via le systme de fichier /sys/. La
rponse recommande est 'CFQ'.
A.4. Menu Processor type and features
L'option Symmetric multi-processing support permet d'activer le support de plusieurs processeurs.
Cela comprend les ordinateurs multiprocesseurs, ainsi que les ordinateurs utilisant un processeur
hyperthread ou curs curs, aussi est-il recommand de rpondre 'Y' cette question. En pratique,
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 463

il est mme conseill d'activer cette option mme sur les ordinateurs un seul processeur effectif de
nos jours.
L'option Subarchitecture Type permet d'accder un sous-menu pour indiquer le type de machine
pour l'architecture de processeur pour lequel le noyau doit tre dfini. Pour la plupart des machines
bases sur des processeurs x86 ou x86-64 d'AMD, le type d'architecture utilis est PC-Compatible ,
c'est donc l'option recommande.
L'option Paravirtualization support permet d'activer la prise en charge de l'excution du noyau au
sein d'une machine virtuelle sur les processeurs disposant des fonctions de paravirtualisation. Cette
option n'est utile que pour les systmes virtualiss, qui sont ainsi modifis afin de s'excuter de
manire plus performante dans une machine virtuelle. Toutefois, elle peut ralentir l'excution du noyau
en dehors de ces machines virtuelles. Cette option vous donnera accs aux options de configuration
des deux principales technologies de virtualisation, savoir Xen (option Enable support for Xen
hypervisor) et VMWare (option VMI Paravirt-ops support). La rponse recommande est donc 'N'.
L'option Processor family vous permet de spcifier le type de processeur sur lequel le noyau
fonctionnera. Choisissez le processeur dont vous disposez.
L'option Generic-x86-64 permet d'activer la prise en charge du jeu d'instructions 64 bits commun
Intel et AMD, et donc de raliser des noyaux portables. Cette option est destine aux noyaux de
distributions, qui doivent tre gnriques. Il est toutefois recommand de choisir le type processeur
effectivement utilis.
L'option Generic x86 support est similaire la prcdente, mais pour les processeurs 32 bits. Elle
permet d'activer la prise en charge d'optimisation pour certains processeurs x86, mme si le noyau
n'est pas compil spcifiquement pour ces processeurs. Cette option est destine aux noyaux de
distributions, qui doivent tre gnriques mais qui peuvent chercher bnficier de certaines
fonctionnalits des processeurs rcents. Il est donc recommand de rpondre 'N' cette option et de
choisir le type processeur adquat dans l'option Processor family .
L'option HPET Timer Support permet d'activer la prise en charge des horloges temps-rel de
nouvelle gnration sur les systmes les plus rcents. En l'absence d'une telle horloge, l'horloge
standard sera utilise. Vous pouvez rpondre 'Y' cette question si vous disposez d'un ordinateur
rcent, autrement rpondez 'N'.
L'option Provide RTC interrupt permet d'activer l'mulation de l'horloge temps-rel RTC sur les
machines 64 bits, qui utilisent normalement systmatiquement les horloges temps-rel HPET. La
rponse recommande est 'Y'.
L'option permet de slectionner le nombre maximum de processeurs disponibles sur la machine. Cette
option n'est accessible que si vous avez activ la prise en charge des processeurs multiples en
rpondant par 'Y' l'option Symmetric multi-processing support . Vous devez dans ce cas indiquer
le nombre de processeurs rels ou virtuels dont votre machine dispose. Chaque processeur virtuel des
processeurs hyperthreads compte pour un processeur part entire, ainsi que chaque cur des
processeurs multi-curs.
L'option SMT (Hyperthreading) scheduler support permet de prendre en charge un ordonnanceur
de tches spcifique pour les processeurs hyperthreads. Ces processeurs partageant les mmes caches
de mmoire, la migration des tches d'un processeur virtuel un autre peut en effet tre optimise. Cet
ordonnanceur prend donc en compte les spcificits des processeurs hyperthreads, tels que les
derniers pentiums IV. Rpondez par 'Y' si vous disposez d'un tel processeur, et par 'N' dans le cas
contraire.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 464

De la mme manire, l'option Multi-core scheduler support permet de prendre en charge un
ordonnanceur de tches spcifique pour les processeurs multi-curs. Rpondez par 'Y' si vous
disposez d'un tel processeur, et par 'N' dans le cas contraire.
L'option Preemption Model permet de spcifier si le noyau lui-mme peut tre prempt pendant
les appels systmes ou non. La premption des appels systmes rend le noyau lui-mme multitche, et
permet donc d'augmenter la ractivit du systme. Dans certaines circonstances, cela peut aussi
accrotre le taux d'utilisation du processeur. Toutefois, cela peut aussi diminuer lgrement la bande
passante dans les oprations d'entre / sortie. L'activation du multitche dans le noyau est
recommande pour les noyaux destins des applications temps-rel ou multimdia, et dconseille
pour les noyaux destins aux serveurs. De plus, si vous dcidez d'autoriser la prise en charge du
multitche au sein des appels systmes, vous pourrez faire en sorte que celui-ci soit coopratif (le
noyau lui-mme vrifiera si d'autres tches n'ont pas besoin d'tre excutes) ou premptif (le noyau
pourra tre interrompu n'importe quel moment), ce qui augmentera la ractivit du systme. Le choix
recommande est Preemptible Kernel (Low-Latency Desktop) , sauf si vous envisager d'installer un
serveur qui sera utilis intensivement.
L'option Preempt The Big Kernel Lock permet d'autoriser les mcanismes de premption mme au
sein de la section critique globale du noyau. Cette option permet d'amliorer encore plus la ractivit
du systme, et est recommande pour les noyaux destins des machines de bureau. La rponse
recommande est 'Y'.
L'option Local APIC support on uniprocessors permet d'activer les contrleurs d'interruptions
programmables intgrs dans certains processeurs. Certaines machines disposent d'un tel processeur, si
c'est votre cas, vous pouvez rpondre par 'Y' cette question. Cette option n'est disponible que si vous
avez rpondu 'N' la question Symetric multi-processing support .
L'option IO-APIC support on uniprocessors permet d'activer la gestion des contrleurs
d'interruption programmables avancs. Ces contrleurs sont utiliss sur les machines multi-
processeurs, mais certaines cartes mres monoprocesseurs les utilisent. Si c'est le cas de votre carte
mre, vous pouvez rpondre par 'Y' cette question.
L'option Machine Check Exception permet d'activer la surveillance de l'tat de l'ordinateur
(lvation anormale de temprature, pannes, etc.) afin de contourner les problmes matriels ou
d'arrter le systme avant une destruction de composants ou des pertes de donnes irrmdiables.
L'option Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 permet d'activer la
surveillance des problmes mineurs, qui ne ncessitent pas un arrt de la machine, mais pour lesquels
on dsire malgr tout avoir une trace dans les traces du noyau. L'option check for P4 thermal
throttling interrupt. permet de gnrer une trace sur les systmes base de Pentium IV lorsque ceux-
ci surchauffent. Pour les machines 64 bits, l'option Intel MCE features et AMD MCE features
permettent d'activer les fonctions de surveillance des systmes telles que la temprature du processeur
et les erreurs du bus mmoire. La rponse recommande est 'Y' pour ces options si votre systme
dispose d'un processeur de ce type.
L'option Enable VM86 support permet de prendre en charge le mode 8086 virtuel des processeurs
x86 32 bits. Ce mode permet de faire fonctionner les programmes 16 bits, tels que les vieux
programmes DOS ou certaines fonctions du BIOS qui n'existent qu'en mode 16 bits. Cette option est
en particulier ncessaire pour permettre une excution performante des mulateurs DOS tels que
DOSEMU, ou pour changer de mode graphique sur certaines cartes graphiques. La rponse
recommande est 'Y'.
L'option Toshiba Laptop support permet d'activer la gestion d'nergie 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'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 465

L'option Dell Laptop support permet d'activer la gestion d'nergie 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'.
L'option Enable X86 board specific fixups for reboot permet d'activer un contournement un
bogue matriel et logiciel dans le BIOS prsent sur certaines machines et empchant le systme de
redmarrer correctement. La rponse recommande est 'N'.
L'option /dev/cpu/microcode - Intel IA32 CPU microcode support permet d'activer la
reprogrammation du microcode des processeurs Intel postrieurs aux Pentium Pro. l'aide de cette
fonctionnalit, vous pourrez mettre jour le microcode de votre processeur (cette mise jour n'est pas
permanente, le microcode doit tre recharg chaque dmarrage de la machine). Notez que cette
option impose d'utiliser le systme de fichiers virtuel /dev/ du noyau. Il est donc ncessaire d'activer
l'option /dev filesystem support (EXPERIMENTAL) du menu File systems . En gnral, il n'est
pas ncessaire de mettre jour le microcode de son processeur, moins que celui-ci ne contienne un
bogue incontournable ou que vous n'ayez optimiser spcialement votre machine pour une utilisation
particulire. La rponse recommande est donc 'N'.
L'option /dev/cpu/*/msr - Model-specific register support permet d'activer la gestion du registre
MSR sur les processeurs x86. Il existe un registre de ce type pour chaque processeur, que l'on trouvera
dans les sous-rpertoires portant comme nom les numros de chaque processeur. La rponse
recommande est 'N'.
L'option /dev/cpu/*/cpuid - CPU information support permet d'obtenir les informations fournies
par l'instruction CPUID pour chaque processeur de la machine. Il existe un registre de ce type pour
chaque processeur, que l'on trouvera dans les sous-rpertoires portant comme nom les numros de
chaque processeur. La rponse recommande est 'N'.
L'option High Memory Support vous permet d'indiquer le mode de gestion de la mmoire que le
noyau utilisera. Pour la plupart des gens, dont les machines disposent de moins d'un Go de mmoire, la
rponse recommande est off . Si votre machine dispose d'un gigaoctet ou plus de mmoire, mais
moins de quatre Go, vous pouvez changer le mode d'adressage du noyau pour grer la totalit de votre
mmoire, en choisissant l'option 4GB . Les processeurs x86 ne permettent pas d'adresser plus de
4Go de mmoire simultanment en raison de leur bus d'adresses 32 bits. Cependant, ils peuvent grer
jusqu' 64Go de mmoire par tranches de 4Go, l'aide d'une extension spcifique aux processeurs de
type Pentium Pro. Si vous disposez d'une telle machine, vous devez choisir l'option 64GB .
L'option Memory Split permet de choisir le type de dcoupage de l'espace d'adressage des
processus entre la plage d'adresses utilisable par les programmes et la plage d'adresse correspondante
une copie de l'espace d'adressage du noyau. Sous Linux, la mmoire du noyau est projete
systmatiquement dans l'espace d'adressage de chaque programme utilisateur (mais n'est pas lisible
pour des raisons de scurit videntes), afin de permettre au noyau d'accder directement la mmoire
du programme lors des appels systmes. Il est donc d'usage de rserver le gigaoctet suprieur des
quatre gigaotcets d'espace d'adressage des processeurs 32 bits pour y placer une projection de la
mmoire du noyau. Cependant, si le systme dispose de plus d'un gigaoctet de mmoire, le noyau ne
pourra pas accder directement la totalit de la mmoire sans frais supplmentaires, car il devra
modifier cette projection. Cette option permet donc de spcifier la manire dont ce dcoupage est
ralis. La valeur classique est 3G/1G user/kernel split , ce qui est donc la valeur recommande.
Une variante est disponible pour les machines disposant exactement d'un gigaoctet de mmoire. Les
autres options permettent d'accrotre la taille de l'espace d'adressage du noyau, au dtriment de l'espace
d'adressage des processus. Utiliser ces options ncessite de bien connatre les processus utiliss, car
rduire leur espace d'adressage peut conduire des situations de fragmentation mmoire ou d'checs
de rservation de mmoire susceptibles de les empcher de fonctionner correctement.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 466

L'option PAE (Physical Address Extension) Support permet d'activer le mode d'adressage des
pages tendu sur les processeurs x86. Ce mode est ncessaire pour que le bit NX soit utilisable (bit
permettant d'viter que les zones de donnes des programmes soient excutables, et donc viter toute
une catgorie d'attaque des virus et des pirates sur des programmes bogus leur permettant de
contrler une partie de leur mmoire). Toutefois, ce mode tendu consomme plus de ressources dans le
systme. La rponse recommande est 'N'. Si vous dsirez absolument bnficier de la protection du
bit NX et d'une grande quantit de mmoire vive, il est prfrable d'utiliser une distribution 64 bits, ce
qui vite d'avoir recours des contournements plus ou moins efficaces.
L'option Non Uniform Memory Access (NUMA) Support (galement appele NUMA Memory
Allocation and Scheduler Support (EXPERIMENTAL) dans la configuration pour les processeurs 32
bits) permet de prendre en charge les ordinateurs disposant de plusieurs types de mmoire, situs sur
les bus de diffrents processeurs. Ces mmoires ont la spcificit d'avoir un temps d'accs qui n'est pas
uniforme et dpend du processeur qui y accde. Ainsi, dans ce modle, il est important que les
processus utilisent au maximum la mmoire la plus proche du processeur sur lequel ils s'excutent,
aussi des traitements particuliers doivent-ils tre raliss lors de l'allocation de mmoire et lors de
l'ordonnancement. Les fonctionnalits NUMA pour les processeurs 32 bits sont extrmement
exprimentales et ne doivent jamais tre utilises. Sur les machines 64 bits, elles sont tout fait
utilisables, mais les machines de ce type sont encore relativement rares. De ce fait, la rponse
recommande cette option est 'N'. Cette option vous donnera accs aux options Old style AMD
Opteron NUMA detection et ACPI NUMA detection , qui permet de choisir la mthode de
dtection des zones de mmoire non uniformes (directement via le bus mmoire ou par les
informations de l'ACPI). Elle vous donnera galement accs l'option NUMA emulation , qui
permet de simuler une machine mmoire non uniforme. Cette option est rserve aux dveloppeurs
du noyau, et la rponse recommande est 'N'.
L'option Memory model permet de choisir le modle utilis par l'ordinateur pour grer la mmoire
physique. La plupart des ordinateurs ont un modle mmoire continu et linaire, ce qui correspond
l'option Flat Memory (valeur par dfaut recommande). D'autres ordinateurs peuvent utiliser des
modles o la mmoire est constitue de diffrentes zones discontigus, et ncessiter ainsi le choix
Sparse Memory .
L'option Allow for memory hot-add permet d'activer la prise en charge de certains serveurs sur
lesquels de la mmoire peut tre ajoute chaud, sans teindre la machine. La rponse recommande
est 'N'.
L'option Page migration permet d'activer la fonctionnalit de dplacement de pages mmoires d'un
nud NUMA vers un autre, afin de rapprocher au maximum les pages mmoires des processus qui les
utilisent. La rponse recommande est 'N'.
L'option 64 bit Memory and IO resources (EXPERIMENTAL) , permet d'accder aux ressources
mmoires et d'entre/sortie en 64 bits sur les machines 32 bits. La rponse recommande est 'N'.
L'option Allocate 3rd-level pagetables from highmem , permet de placer les structures de donnes
du gestionnaire de mmoire virtuelle en mmoire haute. Ces structures ayant une taille proportionnelle
la quantit de mmoire effectivement installe, cette option permet d'viter qu'elles ne saturent la
mmoire basse. La rponse recommande pour cette option est 'Y' si vous vous trouvez dans ce cas de
configuration.
L'option Math emulation permet d'activer l'mulateur d'unit de calcul en virgule flottante, pour les
processeurs qui n'en disposent pas (386 et 486 SX). Si vous avez un ordinateur rcent, choisissez 'N'.
L'option MTRR (Memory Type Range Register) support permet d'activer le support des plages
mmoires du processeur. Celui-ci peut permettre l'acclration des transferts de donns dans les plages
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 467

mmoires des priphriques, en particulier pour les cartes graphiques. Cette fonctionnalit n'est
disponible que pour les processeurs de type Pentium Pro et postrieurs. Si vous avez un ordinateur
rcent, choisissez 'Y'.
L'option Boot from EFI support (EXPERIMENTAL) permet de prendre en charge les services
systmes EFI disponibles sur certaines machines lors du dmarrage. L'option recommande est 'N'.
L'option Enable kernel irq balancing permet de rpartir le traitement des interruptions matrielles
sur les diffrents processeurs dont la machine dispose. Cette option n'est disponible que si l'option
Symmetric multi-processing support a t active. La rponse recommande est 'Y'.
L'option Enable seccomp to safely compute untrusted bytecode permet d'activer le support de
bacs sable pour isoler des applications dsirant utiliser du code non authentifi dans un systme
scuris. Cette option permet aux applications de restreindre les appels systmes qu'elles peuvent
raliser, et empcher ainsi qu'elles soient dtournes de leur fonctionnalit initiale. La rponse
recommande est 'N'.
L'option Timer frequency permet de slectionner la frquence d'interruptions de l'horloge du
noyau. Les commutations de tche tant ralises lors de ces interruptions, une frquence leve
permet d'obtenir une forte ractivit du systme. Toutefois, cette frquence ne doit pas tre trop leve,
afin d'viter de passer trop de temps excuter l'ordonnanceur du systme. La frquence de 1000 Hz
est donc la frquence recommande pour une machine de bureau, alors que les frquences infrieures
sont recommandes sur les machines disposant d'un grand nombre de processeurs ou devant tre
utilises en tant que serveur. La frquence de 300Hz est galement intressante pour les machines
destines au multimdia, parce que cette frquence est divisible par les frquences d'image des films
au format PAL et NTSC. La rponse recommande est 300 Hz .
L'option IIOMMU support permet dsactiver le support des accs DMA pour les machines
embarques. Les accs DMA sont utiliss par un grand nombre de pilotes et sont importantes pour les
performances, aussi la rponse recommande est-elle 'Y'.
L'option IBM Calgary IOMMU support permet de prendre en charge les contrleurs DMA Calgary
d'IBM, qui permettent de faire fonctionner les priphriques PCI 32 bits sur des machines 64 bits
disposant de plus de 3 Go de mmoire. Cette fonctionnalit permet galement de diagnostiquer des
bugs trs graves de corruption de la mmoire que certains pilotes de priphriques mal programms
seraient susceptibles de faire. Le noyau fera normalement le bon choix dans l'utilisation de cette
fonctionnalit, mais elle reste ddie certaines machines seulement. La rponse recommande est
donc 'N'.
L'option Should Calgary be enabled by default? permet d'activer le contrleur mmoire Calgary
par dfaut au dmarrage du systme. La rponse recommande est 'Y'.
L'option kexec system call (EXPERIMENTAL) permet d'activer le support du redmarrage du
systme directement dans un nouveau noyau, sans avoir redmarrer compltement la machine. La
rponse recommande est 'N'.
L'option kernel crash dumps (EXPERIMENTAL) permet d'activer la gnration automatique d'un
rapport de plantage aprs chaque redmarrage par l'intermdiaire de l'appel systme kexec. Cela
permet d'obtenir des informations mme aprs un plantage du noyau svre. La rponse recommande
est 'N'.
L'option Physical address where the kernel is loaded permet de spcifier l'adresse de chargement du
noyau au dmarrage. Cela peut en particulier tre utile pour s'assurer, dans le cas o la fonctionnalit
de gnration automatique de rapport de plantage est active, que le noyau qui effectue le rapport n'est
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 468

pas recharg au mme emplacement que celui qui a plant. Il est fortement recommand de ne pas
changer la valeur par dfaut de cette option.
L'option Build a relocatable kernel permet de raliser un noyau relogeable au del du premier mga
octet de la mmoire. Le noyau ainsi gnr est plus gros, mais les informations complmentaires ne
sont pas conserves une fois qu'il est charg en mmoire. La rponse recommande est 'N'.
L'option Alignment value to which kernel should be aligned permet d'indiquer la valeur de
l'alignement en mmoire pour le chargement du noyau. Le noyau s'arrange pour tre excut partir
d'une adresse correctement aligne dans tous les cas, mais il est vivement recommand de ne pas
modifier la valeur par dfaut de cette option.
L'option Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL) permet de
prendre en charge le branchement chaud de processeurs dans l'ordinateur. Cette fonctionnalit est un
prrequis la fonction de mise en veille sur disque sur les machines multiprocesseur. La rponse
recommande est 'N'.
L'option Enable -fstack-protector buffer overflow detection permet d'activer la prise en charge de
la dtection des dbordements de tampons allous localement sur la pile, qui constituent une catgorie
de bugs extrmement dangereux, car ils peuvent permettre un pirate de prendre le contrle du
programme fautif. Cette fonctionnalit requiert un compilateur rcent. La rponse recommande est
'N'.
L'option Use stack-protector for all functions permet d'activer la dtection des dbordements de
tampons pour toutes les fonctions du noyau, et non uniquement celles qui dclarent des tampons sur la
pile. La rponse recommande est 'N'.
L'option Function reordering permet, si l'on dispose d'outils de compilation relativement rcents,
de rarranger les fonctions de l'ensemble du noyau afin d'optimiser les accs mmoire pour ne pas
polluer le cache du processeur destin optimiser les mcanismes de gestion de la mmoire virtuelle.
La rponse recommande est 'N'.
L'option Compat VDSO support permet de charger la bibliothque dynamique de ralisation des
appels systmes un emplacement fixe dans la mmoire des processus. Sous Linux, les appels
systmes sont raliss via des fonctions places automatiquement par le noyau dans l'espace
d'adressage des processus lors de leur lancement. Ces fonctions sont utilises par la bibliothque C, et
s'adaptent la configuration du noyau et aux conventions d'appel qu'il utilise, rendant ainsi la
bibliothque C indpendante du noyau et les appels systmes plus performants. Les noyaux rcents
positionnent ces fonctions alatoirement dans l'espace d'adressage du noyau pour des raisons de
scurit, rendant ainsi difficilement ralisable le dtournement des appels systmes par un attaquant
qui aurait russi prendre le contrle d'un programme dfaillant. Toutefois, seules les bibliothques C
2.3.3 ou plus sont capables de grer ce placement alatoire des fonctions d'interfaage avec le noyau.
Cette option permet donc, pour les anciennes bibliothques, d'utiliser l'ancienne politique de
placement (en fin d'espace d'adressage du processus). Si vous utilisez un systme rcent, cela n'est pas
ncessaire et la rponse recommande est 'N'.
A.4.1. Sous-menu Firmware Drivers
Ce sous-menu permet d'activer l'accs certaines fonctionnalits fournies par les firmware de
certaines machines. L'option BIOS Enhanced Disk Drive calls dtermine boot disk
(EXPERIMENTAL) permet de rcuprer dans le BIOS les informations sur le disque dur partir
duquel l'amorage du systme s'est fait.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 469

L'option EFI Variable Support via sysfs permet d'accder en lecture et en criture aux variables
d'environnement des systmes amorables par le mcanisme de boot avanc EFI. La rponse
recommande pour ces deux options est 'N'.
L'option Console device selection via EFI PCDP or HCDP table permet de dfinir la console de
Linux comme tant la console principale dfinie par le BIOS EFI. La rponse recommande pour ces
deux options est 'N'.
L'option BIOS update support for DELL systems via sysfs permet d'activer la fonctionnalit de
mise jour du BIOS via le systme de fichiers virtuel /sys/ pour les ordinateurs DELL. La rponse
recommande est 'N'.
L'option Dell Systems Management Base Driver permet d'exposer une interface de gestion de
l'ordinateur spcifique certains ordinateurs DELL via le systme de fichiers virtuel /sys/. La rponse
recommande est 'N'.
L'option Export DMI identification via sysfs to userspace permet d'exposer les informations DMI
via le systme de fichiers virtuel /sys/. La rponse recommande est 'N'.
A.5. Menu Power management options (ACPI, APM)
L'option Power Management support permet d'activer la gestion d'nergie sur votre machine. Il
existe actuellement deux protocoles de gestion d'nergie sur les PCs : le protocole APM (abrviation
de l'anglais Advanced Power Management , relativement ancien mais fiable, et le protocole ACPI
(abrviation de l'anglais Advanced Configuration and Power Interface ), plus rcent mais pouvant
poser quelques problmes avec certains BIOS bogus. Ces deux protocoles peuvent tre paramtrs
respectivement avec les deux jeux d'options suivantes. La rponse recommande est 'Y'.
L'option Legacy Power Management API permet de prendre en charge l'ancienne interface du
noyau de gestion de l'nergie. Cela peut tre ncessaire pour les anciens pilotes binaires ou qui n'ont
pas t ports. La rponse recommande est 'Y'.
L'option Power Management Debug Support permet d'activer les fonctionnalits de dboguage du
code de gestion de l'nergie de Linux. Cette option est essentiellement utile aux dveloppeurs de
Linux. La rponse recommande est 'N'.
L'option Keep console(s) enabled during suspend/resume permet de ne pas suspendre le pilote de
la console afin de pouvoir voir les messages de dboguage des pilotes de priphriques lors de la
suspension. Cette option peut tre dangereuse et n'est utile que pour les dveloppeurs du noyau, aussi
la rponse recommande est-elle 'N'.
L'option Suspend/resume event tracing permet de prendre en charge une fonction de mmorisation
des dernires oprations de mise en veille dans l'horloge systme, afin de pouvoir dboguer les pilotes
de priphriques lorsque la machine n'est pas parvenue se mettre en veille correctement. Cette
fonctionnalit n'est utile que pour les dveloppeurs du noyau, aussi la rponse recommande est-elle
'N'.
L'option Suspend to RAM and standby permet de prendre en charge la mise en veille du systme
en mmoire. Cette forme de mise en veille est extrmement rapide, mais ncessite une alimentation
lectrique pour conserver l'tat du systme, car celui-ci est stock en mmoire. Cette technique
fonctionne relativement bien pour les ordinateurs portables, mais certains pilotes de priphriques ne
sont pas encore capables de redmarrer correctement la sortie de la mise en veille. La rponse
recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 470

L'option Hibernation (aka 'suspend to disk') permet de prendre en charge la suspension du systme
sur disque. Cette forme de mise en veille est beaucoup plus lente que la mise en veille en mmoire, car
tout l'tat du systme doit tre stock sur disque. De plus, la sortie de la mise en veille ncessite un
redmarrage complet du noyau, et le systme est gnralement plus lent aprs le rveil le temps que
toutes les donnes stockes sur disque soient recharges en mmoire. Toutefois, cette technique est
beaucoup plus fiable et fonctionne mme sur les machines dont le matriel ne supporte pas la
suspension en mmoire. La rponse recommande est 'N'.
L'option Default resume partition permet de spcifier la partition de swap utilise par dfaut par la
fonctionnalit de suspension sur disque. Il faut indiquer ici une partition de swap de taille suffisante
pour stocker l'tat du systme lors de la suspension. Cette option est facultative, la partition utiliser
au redmarrage pouvant tre spcifie par l'option resume en ligne de commande du noyau.
Toutefois, il est plus simple de l'indiquer ici une bonne fois pour toute. La rponse dpend bien
entendu de votre plan de partitionnement.
L'option Advanced Power Management Emulation permet de demander au systme de simuler la
mise en veille selon l'ancienne gestion d'nergie APM. Cela comprend la rinitialisation de l'horloge
systme, ainsi que la notification des changements d'tat de la batterie aux programmes de gestion de
l'APM. La rponse recommande est 'N'.
L'option ACPI Support (Advanced Configuration and Power Interface) du menu ACPI
(Advanced Configuration and Power Interface) Support permet d'activer la gestion du protocole de
gestion d'nergie ACPI. Cette interface permet au systme d'exploitation de contrler finement la
consommation d'nergie du systme, mais ncessite que votre carte mre le gre ainsi que tous les
priphriques connects dessus. C'est gnralement le cas pour toutes les machines rcentes, et
quasiment certain pour les ordinateurs portables, mais si ce n'est pas le cas, les priphriques qui
seront mis en veille ne se rinitialiseront pas correctement lors du rveil de l'ordinateur. Cela peut
provoquer des plantages violents. La rponse recommande est 'Y', moins que vous ayez un doute
sur la capacit de votre matriel supporter l'ACPI. Notez que certains BIOS fournissent une
description erronne du matriel de l'ordinateur Linux et n'ont t tests que pour Microsoft
Windows. Ces informations sont gnralement gnres avec les outils Microsoft, qui ne respectent
pas la norme ACPI, mais dont Windows tolre les erreurs. Intel, le principal promoteur de l'ACPI, et
les dveloppeurs de Linux, ont dcid de ne pas prendre en charge ces erreurs de configuration et
indiquent qu'il est du ressort des fabricants de fournir des informations correctes. Toutefois, ils
permettent aux utilisateurs de spcifier au niveau de la configuration une description alternative du
matriel. Cela est ralisable grce aux options Include Custom DSDT et Custom DSDT Table
file to include . Ces options ne sont accessibles que si l'option Select only drivers that don't need
compile-time external firmware du menu Generic Driver Options n'est pas coche. Notez enfin
que si vous choisissez d'activer le protocole de gestion d'nergie ACPI et le protocole APM, celui qui
sera utilis sera le premier charg.
L'option APM (Advanced Power Management) BIOS support du menu du mme nom permet
d'activer la gestion d'nergie APM par l'intermdiaire du BIOS. Cette mthode de gestion d'nergie est
beaucoup plus sre que l'ACPI, car elle est plus ancienne et en gnral parfaitement supporte par le
matriel actuel. Il est recommand de rpondre par 'Y' cette question si vous ne pouvez pas utiliser
l'ACPI. Notez toutefois que la possibilit d'teindre l'ordinateur via les fonctionnalits APM n'est
disponible que pour les ordinateurs disposant d'un botier au format ATX. De plus, ce n'est pas la
gestion d'nergie APM qui gre l'arrt des disques durs et la veille des moniteurs Green , et il est
possible d'avoir ces fonctionnalits mme si l'on n'a pas activ la gestion d'nergie APM. Les options
suivantes dpendent fortement de la configuration APM des machines. Les options de ce menu ne
seront pas dcrites plus en dtails ici, car elles sont trop spcifiques chaque modle de machine. Pour
la plupart des gens, il faut rpondre 'N' toutes ces questions.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 471

L'option CPU Frequency scaling du menu du mme nom permet d'activer la gestion des
processeurs frquence variable. Ces processeurs se rencontrent gnralement dans les portables,
cause du gain d'nergie obtenu en abaissant la frquence du processeur lorsqu'il est peu utilis. On les
rencontre galement sur les ordinateurs de bureau rcents, car cela permet de diminuer la vitesse de
rotation des ventilateurs et d'obtenir ainsi des machines plus silencieuses. Les options qui suivent
permettent de spcifier l'interface logicielle fournie par le noyau pour contrler la frquence du
processeur, ainsi que d'indiquer la nature du processeur utilis et la politique de gestion de la
frquence du processeur. La rponse recommande est 'Y', sauf si vous utilisez une machine
relativement ancienne. Vous devrez alors choisir le pilote pour le type de processeur dont vous
disposez, ainsi que le gestionnaire d'nergie utiliser. Les plus classiques sont 'performance'
governor (pour utiliser en permanence la frquence la plus leve), 'powersave' governor (pour
utiliser en permanence la frquence la plus faible), 'ondemand' governor (pour que le noyau adapte
la frquence la charge courante du systme) et conservative (pour que le noyau adapte la
frquence la charge courante du systme, mais en passant d'une frquence une autre de manire
plus progressive et en cherchant optimiser la consommation lctrique). Notez que dans le cas de
l'adaptation la demande de la frquence du processeur les processus placs en priorit faible ne
seront pas comptabiliss comme des processus devant accrotre la frquence du processeur, sauf si le
fichier de configuration dynamique /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load
contient la valeur 0 (attention, ce paramtre est en logique inverse tant donn le nom de ce fichier).
L'option CPU idle PM support permet de prendre en charge la gestion d'nergie des processeurs au
repos. Cette gestion se fait au travers de gestionnaires logiciels en fonction de la charge du systme.
Cette option vous donnera l'accs aux deux options 'ladder' governor (NEW) et 'menu' governor
(NEW) , qui utilisent respectivement l'algorithme des anciens pilotes ACPI et un algorithme plus
rcent dont le but est de minimiser la consommation d'nergie. La rponse recommande est 'Y'.
A.6. Menu Bus options (PCI, PCMCIA, EISA, MCA, ISA)
L'option PCI support permet d'activer le support des ordinateurs base de bus PCI. Si vous avez
un ordinateur rcent, rpondez par 'Y'.
L'option PCI access mode 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 d'essayer l'initialisation par le BIOS, et de faire le travail lui-
mme si ce dernier est dfaillant. Vous pouvez donc toujours choisir l'option Any .
L'option Support mmconfig PCI config space access n'est pas documente et ne sera pas dcrite
plus en dtail dans ce document. Cette option n'est disponible que pour les machines 64 bits. La
rponse recommande est 'Y'.
L'option PCI Express support permet d'activer le support du nouveau bus PCI Express. Si vous
avez un ordinateur rcent, rpondez par 'Y'.
L'option PCI Express Hotplug driver permet d'activer le support des priphriques PCI Express
connectables chaud. Si vous avez une carte mre permettant ce type d'opration, rpondez par 'Y'.
L'option Use polling mechanism for hot-plug events (for testing purpose) permet d'utiliser un
mcanisme de scrutation des priphriques pour dtecter les priphriques PCI Express. Cela n'est
normalement pas ncessaire, aussi cette option est-elle rserve aux dveloppeurs du noyau ou de
matriel. La rponse recommande est donc 'N'.
L'option Root Port Advanced Error Reporting support permet d'activer le support de la gestion des
erreurs des priphriques PCI Express au niveau de la racine du bus PCI Express. La rponse
recommande est 'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 472

L'option Message Signaled Interrupts (MSI and MSI-X) permet de prendre en charge un nouveau
mode de gestion des interruptions matrielles. La rponse recommande est 'N'.
L'option PCI Debugging permet d'activer les traces de dbogage du sous-systme PCI. Elles
peuvent tre utiles en cas de problme, mais ne sont normalement pas ncessaires. La rponse
recommande est 'N'.
L'option Interrupts on hypertransport devices permet d'autoriser les priphriques HyperTransport
utiliser les interruptions. La rponse recommande est 'Y'.
L'option ISA 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 d'un bus ISA. La rponse recommande est 'Y'.
L'option EISA support permet d'activer la gestion des bus EISA. L'activation de cette
fonctionnalit donnera l'accs des options spcifiques au matriel, ainsi qu' l'option EISA device
name database , qui permet d'obtenir des noms humainement lisibles des priphriques EISA pendant
leur configuration, et que l'on activera si l'on dispose de tels priphriques. Ce bus a dsormais
compltement t remplac par le bus PCI, aussi devriez-vous rpondre par 'N', moins que vous ne
disposiez d'une machine trs ancienne.
L'option MCA support permet d'activer la gestion des bus MCA (pour les PS/2 d'IBM). Si vous
activez cette option, vous accderez l'option Legacy MCA API Support , qui permet de prendre
en charge l'API des anciens noyaux pour les priphriques MCA. Cette option n'est utile que pour
charger des gestionnaires de priphriques MCA fournis sous forme de module et qui n'ont pas t
port pour le noyau 2.6. Si vous l'activez, cette option vous donnera accs l'option Support for the
mca entry in /proc , qui vous permettra d'accder au fichier de gestion du bus MCA /proc/mca. Les
bus MCA tant en voie de dsutude, la rponse recommande est 'N'.
L'option NatSemi SCx200 support permet de prendre en charge le processeur SCx200 de National
Semiconductor. La rponse recommande est 'N'. Si vous activez cette option, vous pourrez accder
l'option NatSemi SCx200 27MHz High-Resolution Timer Support , qui permet d'utiliser le timer
haute rsolution du processeur comme base de temps du systme, ce qui est gnralement plus fiable
lors de la mise en veille du processeur. La rponse recommande pour cette option est 'Y'.
A.6.1. Sous-menu PCCARD (PCMCIA/CardBus) support
Ce menu contient l'option PCCard (PCMCIA/CardBus) support , qui permet de prendre en charge
la gestion des cartes PCMCIA et CardBus. Cette option vous donnera accs aux options de
configuration des contrleurs PCMCIA les plus courant, ainsi qu' l'option Enable PCMCIA
debugging , qui vous permettra d'activer les options de dbogage des gestionnaires de priphriques
PCMCIA. La rponse recommande est 'Y' si vous disposez d'un portable, 'N' dans le cas contraire.
A.6.2. Sous-menu PCI Hotplug Support
Ce menu contient l'option Support for PCI Hotplug (EXPERIMENTAL) , qui permet de prendre en
charge les contrleurs PCI capables de connecter et de dconnecter des cartes PCI chaud. L'option
Fake PCI Hotplug driver , permet de simuler un priphrique PCI Hotplug et n'est utile que pour les
dveloppeurs noyau. Les options suivantes permettent de slectionner les gestionnaires de
priphriques pour les contrleurs PCI en question. La rponse recommande est 'N'.
A.7. Menu Executable file formats / Emulations
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 473

L'option Kernel support for ELF binaries permet d'utiliser les programmes dont le format de
fichier binaire est le format ELF. Ce format de fichier tant devenu un standard, il faut rpondre par 'Y'
cette question.
L'option Kernel support for a.out and ECOFF binaries permet d'utiliser les programmes dont le
format de fichier binaire est le format a.out . Ce format de fichier binaire est obsolte, et il est peu
probable que vous rencontriez de vieilles applications qui n'ont pas t recompiles et qui l'utilisent
encore. La rponse recommande est donc 'N'.
L'option Kernel support for MISC binaries permet d'activer la gestion de formats de fichiers
binaires enregistrables dans le noyau. On peut alors utiliser des chargeurs spcifiques directement au
niveau du noyau, et ainsi utiliser ces fichiers binaires directement en ligne de commande. Il est
recommand de rpondre par 'Y' cette question.
L'option IA32 Emulation permet d'activer la prise en charge des processus 32 bits dans les
machines 64 bits de type x86_64. La rponse recommande est 'Y'.
L'option IA32 a.out support permet d'activer la prise en charge du format de fichier excutable 32
bits a.out. Ce format est obsolte et la rponse recommande est 'N'.
A.8. Menu Networking
L'option Networking support permet d'activer la prise en charge des fonctionnalits rseau dans le
noyau. tant donn que les systmes Unix sont profondment orients rseau, il faut imprativement
rpondre 'Y' cette question. Cela vous donnera accs des options complmentaires permettant de
configurer les fonctionnalits rseau prise en charge par le noyau, ainsi qu'au menu de slection des
diffrents gestionnaires de priphriques rseau.
A.8.1. Menu Networking options
L'option Packet socket permet d'autoriser la manipulation directe des trames rseau par des
applications clientes. Cette fonctionnalit peut tre utiles pour certains utilitaires rseau, et en
particulier elle est ncessaire pour les clients et les serveurs DHCP. L'option recommande est donc
'Y'.
L'option Packet socket: mmapped IO n'est disponible que si l'option prcdente a t active. Elle
permet d'utiliser 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'.
L'option Unix domain sockets permet d'activer les communications rseau bases sur la notion de
socket Unix. Comme la plupart des programmes Unix utilisent ce paradigme de communication, il faut
rpondre 'Y' cette question.
L'option Transformation user configuration interface permet d'activer l'interface de configuration
des extensions de scurit du protocole IP. Cette interface est utilise par les outils de configuration
d'IPSec, aussi est-il recommand de rpondre 'Y' cette question.
L'option Transformation sub policy support permet de prendre en charge les politiques de scurit
secondaires pour les paquets. Cela permet d'appliquer plus d'une politique de scurit un mme
paquet en mme temps, par exemple pour optiliser les traitements des paquets dont les informations ne
sont pas conserves longtemps dans le noyau. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 474

L'option Transformation migrate database (EXPERIMENTAL) permet de prendre en charge
l'association entre l'emplacement des clients IPv6 mobiles et les politiques de scurit. La rponse
recommande est 'N'.
L'option PF_KEY sockets permet de prendre en charge les communications rseau scurises par
l'intermdiaire de la suite logiciel KAME. Cette option constitue une implmentation des extensions
de scurit IPSec du protocole IP. La rponse recommande est 'Y'.
L'option PF_KEY MIGRATE (EXPERIMENTAL) permet de prendre en charge l'association entre
l'emplacement des clients IPv6 mobiles et les politiques de scurit maintenues au travers de l'interface
PF_KEY. La rponse recommande est 'N'.
L'option TCP/IP networking permet d'activer le protocole de communication rseau TCP/IP. Le
systme utilisant intensivement ce protocole de communication, il faut rpondre 'Y' cette question.
L'option IP: multicasting permet d'autoriser l'envoi des donnes plusieurs ordinateurs en mode
multicast (un paquet pour plusieurs destinations). Cette fonctionnalit permet de rduire le trafic
rseau dans certaines applications, mais elle est trs peu utilise. La rponse recommande est donc
'N'.
L'option IP: advanced router permet de configurer le systme pour tre un routeur (ordinateur qui
transfre des informations d'un rseau un autre). La rponse recommande est 'N'.
L'option Choose IP: FIB lookup algorithm (choose FIB_HASH if unsure) permet de slectionner
un algorithme de recherche dans les tables de routage. L'algorithme FIB_HASH convient pour la
majorit des utilisateurs, aussi est-il recommand de le choisir.
L'option IP: policy routing permet d'activer le routage des paquets en fonction des adresses source
en plus des adresses destination des paquets. La rponse recommande est 'N'.
L'option IP: equal cost multipath permet de choisir une route possible parmi plusieurs routes pour
chaque paquet transmis. Cette option vous donnera accs l'option IP: equal cost multipath with
caching support (EXPERIMENTAL) , qui permet de mmoriser les routes dans des caches du
systme. Les algorithmes de slection des routes multiples peuvent tre choisis avec les sous-options
suivantes. La rponse recommande est 'N' pour ces deux options.
L'option IP: verbose route monitoring permet d'activer les traces du sous-systme de routage. La
rponse recommande est 'N'.
L'option IP: kernel level autoconfiguration permet de raliser la configuration du protocole rseau
IP au niveau du noyau, lors de la phase de dmarrage. Cette option est utilise notamment lorsqu'on
dsire monter le systme de fichiers racine par NFS. La rponse recommande est 'N'.
L'option IP: DHCP support permet de demander au noyau de dterminer automatiquement
l'adresse IP lors du dmarrage grce au protocole DHCP . Cette option n'est valide que lorsque
l'option IP: kernel level autoconfiguration a t active. La rponse recommande est 'N'.
L'option IP: BOOTP support permet de demander au noyau de dterminer automatiquement
l'adresse IP lors du dmarrage grce au protocole BOOTP . Cette option n'est valide que lorsque
l'option IP: kernel level autoconfiguration a t active. La rponse recommande est 'N'.
L'option IP: RARP support permet de demander au noyau de dterminer automatiquement
l'adresse IP lors du dmarrage grce au protocole RARP . Ce protocole est un protocole plus ancien
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 475

que le protocole BOOTP, il est en passe de devenir obsolte. Cette option n'est valide que lorsque
l'option IP: kernel level configuration a t active. La rponse recommande est 'N'.
L'option IP: tunneling permet d'activer l'encapsulation des paquets d'un protocole dans les paquets
d'un autre protocole. La rponse recommande est 'N'.
L'option IP: GRE tunnels over IP permet d'autoriser l'encapsulation des protocoles IPv4 et IPv6
avec la mthode GRE abrviation de l'anglais Generic Routing Encapsulation ). Cette mthode
d'encapsulation est destine aux routeurs Cisco. La rponse recommande est 'N'.
L'option IP: broadcast GRE over IP permet de crer un rseau Ethernet virtuel sur IP par
l'intermdiaire de la mthode d'encapsulation GRE, qui permet d'effectuer des broadcasts d'IP dans le
rseau virtuel. La rponse recommande est 'N'.
L'option IP: multicast routing permet de configurer le systme pour le routage des paquets ayant
plusieurs destinations (c'est--dire les paquets IP envoys en multicast). La rponse recommande est
'N'.
L'option IP: PIM-SM version 1 support permet d'activer la gestion du protocole de routage
PIM des paquets envoys en multicast. Ce protocole est gr par Cisco. La rponse recommande
est 'N'.
L'option IP: PIM-SM version 2 support permet d'activer la gestion de la version 2 du protocole de
routage PIM. La rponse recommande est 'N'.
L'option IP: ARP daemon support EXPERIMENTAL) permet de limiter 256 la table d'adresses
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'.
L'option IP: TCP syncookie support (disabled per default) permet de protger la machine d'une
certaine forme d'attaque du protocole rseau TCP/IP visant provoquer un dni de service. Le fait de
rpondre par 'Y' cette question inclut le support de cette protection, mais ne l'active pas par dfaut.
L'activation doit se faire par configuration dynamique du noyau via /proc/. La rponse recommande
est 'N'.
L'option IP: AH transformation permet de prendre en charge l'extension AH pour le protocole
IPv4. Cette extension permet de s'assurer que les en-ttes IP sont authentiques, c'est--dire que la
machine qui prtend les avoir envoys est bien la machine qui les a effectivement envoys. Cette
option ncessite les fonctionnalits de cryptographie du menu Cryptographic options . La rponse
recommande est 'Y'.
L'option IP: ESP transformation permet de prendre en charge l'extension ESP pour le protocole
IPv4. Cette extension permet de s'assurer de la confidentialit des donnes transfres sur le rseau, en
chiffrant les donnes transmises. Cette option va de pair avec l'option IP: AH transformation et ne
sert rien sans elle (communiquer de manire chiffre avec un pirate au lieu du bon destinataire ne
drange pas vraiment celui-ci). Cette option ncessite les fonctionnalits de cryptographie du menu
Cryptographic options . La rponse recommande est 'Y'.
L'option IP: IPComp transformation permet de prendre en charge l'extension de compression de
donnes du protocole IPv4. Cette option permet de compresser les donnes avant chiffrement, dans le
cas o l'on utiliserait galement l'extension ESP. En effet, les donnes chiffres apparaissent
gnralement comme des donnes parfaitement alatoires et ne peuvent donc pas tre compresses, il
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 476

est donc ncessaire d'effectuer cette compression avant chiffrement, ce que fait cette extension. La
rponse recommande est 'Y'.
L'option IP: IPsec transport mode permet d'activer le protocole IPsec en mode transport (c'est--
dire le mode de transmission natif des paquets IPsec). La rponse recommande est 'Y'.
L'option IP: IPsec tunnel mode permet d'activer le protocole IPsec en mode tunnel (c'est--dire le
mode de transmission des paquets IPsec bas sur leur encapsulation dans le protocole IP). La rponse
recommande est 'Y'.
L'option IP: IPsec BEET mode permet d'activer le protocole IPsec en mode BEET ( Bound End-
to-End Tunnel ). Ce mode de transmission est utilis pour ralise un tunnel point point, sans tre
pnalis par l'encapsulation des paquets. Les tunnels de ce type sont moins gnriques que ceux que
l'on obtient en mode tunnel, mais conviennent dans le cas de connexions point point directes. La
rponse recommande est 'Y'.
L'option INET: socket monitoring interface permet d'activer la prise en charge de l'interface de
surveillance des sockets, qui est utilise par certains outils rseau. La rponse recommande est 'Y'.
L'option TCP: advanced congestion protocol permet d'activer la prise en charge de modules de
gestion des congestions rseau pour le protocole rseau. Cette option vous donnera accs aux
diffrents modules des algorithmes de gestion des congestions rseau. L'algorithme utilis par dfaut
convient gnralement la plupart des utilisateurs, aussi la rponse recommande est-elle 'N'.
L'option TCP: MD5 Signature Option support (RFC2385) permet d'activer la prise en charge des
signatures MD5 des donnes transmises par TCP pour en assurer l'authenticit. Cette fonctionnalit
n'est utilise que par les routeurs sur Internet pour changer leurs informations. La rponse
recommande est donc 'N'.
L'option The IPv6 protocol (EXPERIMENTAL) permet d'activer la gestion du protocole IPv6. Ce
protocole est appel remplacer la version actuelle du protocole IP, afin d'accrotre le nombre
d'adresses disponibles, d'amliorer la qualit de service et d'intgrer les fonctionnalits
d'authentification et de confidentialit des donnes. Cette option vous donnera accs aux options de
configuration complmentaires du protocole. La rponse recommande est 'N'.
L'option IPv6: Privacy Extensions (RFC 3041) support permet de demander Linux de changer
rgulirement et automatiquement l'adresse IP de votre interface, afin de garantir votre anonymat sur
le rseau. La rponse recommande est 'N'.
Les options IPv6: Router Preference (RFC 4191) support et IPv6: Route Information (RFC 4191)
support permettent d'activer la gestion d'une extension du protocole permettant aux machines de
choisir le routeur le plus appropri lorsqu'elles sont places dans un rseau disposant de plusieurs
passerelle. La rponse recommande est 'N'.
L'option IPv6: Enable RFC 4429 Optimistic DAD (EXPERIMENTAL) , active l'algorithme de
dtection de conflits d'adresses IPv6 dcrit dans la RFC 4429, qui permet un auto configuration plus
rapide des interfaces IPv6. La rponse recommande est 'N'.
Les options IPc6: AH transformation , IPv6: ESP transformation et IPv6: IPComp
transformation permettent de prendre en charge les extensions d'authentification, de confidentialit
et de compression de donnes dcrites ci-dessus pour le protocole IPv6. La rponse recommande est
'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 477

L'option IPv6: Mobility permet de prendre en charge la fonctionnalit de suivi des appareils
mobiles dans un rseau IPv6. Grce cette option, un appareil mobile conserve son adresse IPv6, mais
se voit attribu une adresse d'attache qui indique l'hte le plus proche par lequel on peut le joindre. La
transmission de ces informations se fait via un protocole rseau complmentaire IPv6. La rponse
recommande est 'Y' si vous utilisez le protocole IPv6 sur une station mobile, 'N' sinon.
Les options IPv6: IPsec transport mode , IPv6: IPsec tunnel mode et IPv6: IPsec BEET
mode sont quivalentes aux options correspondantes du protocole IPv4 et permettent de dfinir les
modes de transport des paquets IPv6 pris en charge par le noyau. La rponse recommande pour toutes
ces options est 'Y'.
L'option IPv6: MIPv6 route optimization mode permet d'activer la fonctionnalit d'optimisation du
routage pour les priphriques IPv6 mobiles. La rponse recommande est 'N'.
Les options IPv6: IPv6-in-IPv4 tunnel (SIT driver) permet d'activer les fonctionnalits
d'encapsulation des paquets IPv6 dans un flux IPv4. Cette option permet donc de raliser un tunnel
entre deux rseaux IPv6 via un rseau qui ne gre que le protocole IPv4. La rponse recommande est
'Y'.
Les options IPv6: IPv6-in-IPv6 tunnel permet d'activer les fonctionnalits d'encapsulation des
paquets IPv6 dans un flux lui-mme IPv6. La rponse recommande est 'Y'.
Les options IPv6: Multiple Routing Tables et IPv6: source address based routing permettent de
prendre en charge les tables de routage multiples pour le protocole IPv6 et de grer les conflits de
route en se basant galement sur l'adresse source et non uniquement sur l'adresse destination lors de la
dtermination de la route. La rponse recommande est 'N' pour ces deux options.
L'option NetLabel subsystem support permet d'activer la prise en charge des protocoles de
marquage des paquets tels que les protocoles CIPSO et RIPSO afin de les classifier et de leur
appliquer une politique de scurit. La rponse recommande est 'N'.
L'option Security Marking permet d'activer une fonctionnalit de marquage des paquets afin de
leur appliquer des contrles de scurit par la suite. La rponse recommande est 'N'.
L'option Network packet filtering framework (Netfilter) permet d'activer les fonctions de filtrage
des paquets rseau du noyau. Ces fonctions peuvent tre utilises pour plusieurs raisons, les plus
courantes tant sans doute la ralisation de pare-feu et de partages de connexion Internet. Pour
information, un pare-feu est un programme qui filtre les informations en provenance et destination
du rseau, selon des rgles de scurit prdfinies. Ces rgles permettent d'effectuer le filtrage en
fonction des adresses et du type des paquets mis et reus. Les actions qui peuvent tre prises sur les
paquets ainsi filtrs peuvent tre varies, allant de l'limination du paquet sa modification ou son
transfert vers une autre adresse que celle vers laquelle il devait aller initialement. Cette fonctionnalit
permet donc galement de raliser la translation d'adresse des paquets TCP/IP. Vous devez activer
cette option si vous dsirez raliser un partage de connexion Internet ou un pare-feu. Le dtail de la
configuration du sous-menu rendu accessible par cette option est dcrite dans une section ddie plus
loin dans ce document. La rponse recommande est 'Y'.
L'option Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) permet d'activer la gestion des
rseaux ATM. ATM est un type de rseau travaillant en mode connect (c'est--dire qu'une connexion
permanente est tablie entre les deux machines), ce qui permet d'effectuer 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 fixe, ce
qui permet de simplifier leur traitement et d'obtenir des dbits trs grands. ATM est utilis aussi bien
pour les rseaux de grande chelle que pour les rseaux locaux. L'option Classical IP over ATM
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 478

permet d'activer le support du protocole IP encapsul dans un rseau virtuel ATM. Une alternative
cette option est l'option LAN Emulation (LANE) support . L'option Do NOT send ICMP if no
neighbour permet d'viter l'envoi de paquet ICMP signalant l'inaccessibilit d'une machine lorsque le
noyau supprime temporairement la connexion cette machine de ses tables internes pendant certaines
oprations de maintenance. L'option LAN Emulation (LANE) support permet de simuler un rseau
local classique sur un rseau ATM et ventuellement d'tablir un pont entre ce rseau local virtuel et
d'autre rseaux Ethernet rels. L'option Multi-Protocol Over ATM (MPOA) support permet
l'tablissement de canaux virtuels ATM au travers des limites des rseaux afin d'optimiser le routage
des donnes. L'option RFC1483/2684 Bridged protocols permet d'envoyer des paquets Ethernet
sur un rseau virtuel ATM. Enfin, l'option Per-VC IP filter kludge permet de fermer un grand
nombre de canaux virtuels plus efficacement lorsqu'ils sont utiliss uniquement pour des
communications IP. La rponse recommande toutes ces questions est 'N'.
L'option 802.1d Ethernet Bridging permet de configurer le systme comme un pont Ethernet (un
pont permet de regrouper physiquement plusieurs rseaux en un seul rseau physique). La rponse
recommande est 'N'.
L'option 802.1Q VLAN Support (EXPERIMENTAL) permet de crer des interfaces rseau
virtuelles 802.1Q sur une interface Ethernet normale. La rponse recommande est 'N'.
L'option DECnet support permet d'activer la gestion des rseaux DECnet, initialement crs par
Digital (et repris maintenant par Compaq). Cette option vous donnera accs aux sous-options de
configuration des rseaux DECnet. L'option DECnet: router support (EXPERIMENTAL) permet
d'activer les fonctionnalits de routage sur les rseaux DECnet. La rponse recommande pour ces
options est 'N'.
L'option ANSI/IEEE 802.2 LLC type 2 Support permet de prendre en charge un protocole
d'encapsulation nomm LLC dans un autre protocole. La rponse recommande est 'N'.
L'option The IPX protocol permet de prendre en charge le protocole rseau IPX de Novell.
Cette option vous donnera accs la sous-option IPX: Full internal IPX network , qui permet de
configurer le serveur pour qu'il apparaisse comme un rseau IPX part entire, en lui assignant un
numro de rseau Novell. Toutes les requtes seront alors rediriges vers des nuds grs en interne
pour ce rseau virtuel. La rponse recommande est 'N' pour ces deux options.
L'option Appletalk protocol support permet d'activer la gestion des rseaux Appletalk. Elle vous
permettra d'accder des sous-options de configuration du protocole rseau Appletalk. L'option
Appletalk interfaces support vous permettre d'accder aux options de configuration des cartes
Appletalk. La sous-option AppleTalk-IP driver support permet de se connecter un rseau utilisant
le protocole IP via un adaptateur rseau AppleTalk. Cette option vous permettra de raliser des
encapsulation de paquets IP dans les paquets Appletalk (sous-option IP to Appletalk-IP
Encapsulation support ), pour les machines Linux qui n'ont accs qu' un rseau Appletalk, et
inversement d'encapsuler les paquets Appletalk dans les paquets IP (sous-option Appletalk-IP to IP
Decapsulation support ), pour les machines Linux qui font office de passerelles vers Internet pour les
machines d'un rseau Appletalk. La rponse recommande pour toutes ces options est 'N'.
L'option CCITT X.25 Packet Layer (EXPERIMENTAL) permet d'activer la gestion du protocole
de bas niveau pour X.25. La rponse recommande est 'N'.
L'option LAPB Data Link Driver (EXPERIMENTAL) permet d'activer la gestion du protocole de
communication de haut niveau de X.25. La rponse recommande est 'N'.
L'option Acorn Econet/AUN protocols (EXPERIMENTAL) permet d'activer la gestion des
rseaux Econet. Cette option vous donnera accs la sous-option AUN over UDP , qui permet
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 479

d'encapsuler les paquets Econet dans UDP, et la sous-option Native Econet , qui permet de
prendre en charge les cartes rseau Econet. La rponse recommande est 'N' pour toutes ces questions.
L'option WAN rooter permet d'effectuer le routage sur un rseau WAN (abrviation de
l'anglais Wide Area Network ). La rponse recommande est 'N'.
A.8.1.1. Sous-menu IP: Virtual Server Configuration
L'option IP virtual server support (EXPERIMENTAL) permet de raliser des serveurs virtuels
rpartition de charge. Ces serveurs ont pour but de prsenter une adresse IP unique aux clients, et de
rpartir les requtes de ceux-ci quitablement sur plusieurs machines de traitement. Les options qui
suivent permettent de configurer le gestionnaire de serveur virtuel. La rponse recommande est 'N'.
L'option IP virtual server debugging permet d'obtenir des traces complmentaires concernant le
serveur virtuel. La rponse recommande est 'N'.
L'option IPVS connection table size (the Nth power of 2) permet de dfinir la taille (en termes de
l'exposant d'une puissance de deux) de la table de rpartition des requtes au sein du serveur virtuel.
La rponse recommande est '12'.
Les options qui suivent permettent de raliser la rpartition de charge dynamique pour les diffrents
protocoles supports, ainsi que les options permettant de dfinir les algorithmes de rpartition de
charge eux-mmes.
L'option FTP protocol helper permet de prendre en charge le protocole FTP, pour lequel un
traitement spcifique doit tre ralis lors de la redirection vers les serveurs physiques. En effet, le
protocole FTP stocke des adresses IP au sein de ses paquets, et celles-ci doivent galement tre
transformes la voles. La rponse recommande est 'N'.
A.8.1.2. Sous-menu Network packet filtering (replace ipchains)
L'option Network packet filtering debugging active la gestion des messages de dbogage des
fonctionnalits de filtrage des paquets. Ces messages peuvent tre trs utiles pour le dbogage des
rgles de filtrage et de translations d'adresses du noyau, aussi la rponse recommande est-elle 'Y'.
L'option Bridged IP/ARP packets filtering permet de prendre en charge le filtrage des paquets ARP
et IP lorsque la machine est configure pour faire office de pont (c'est--dire que l'option 802.1d
Ethernet Bridging doit avoir t active dans le menu suprieur. Cette option est utile pour raliser
un pont filtrant. La rponse recommande est 'N'.
A.8.1.2.1. Sous-menu Core Netfilter Configuration
L'option Netfilter netlink interface permet d'activer la mise disposition des processus utilisateurs
des paquets filtrs par le noyau via l'interface Netlink. La rponse recommande est 'Y'. Les options
qui suivent permettent de spcifier les fonctionnalits fournies par cette nouvelle interface.
L'option Netfilter NFQUEUE over NFNETLINK interface active la prise en charge de la file
NFNETLINK dans l'interface NetLink pour permettre aux processus utilisateurs d'accder aux paquets
manipuls par Netfilter. La rponse recommande est 'Y'.
L'option Netfilter LOG over NFNETLINK interface active le transfert des messages de traces
relatifs aux paquets filtrs par Netfilter au travers de la queue NFNETLINK de l'interface NetLink. La
rponse recommande est 'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 480

L'option Netfilter connection tracking support active la prise en charge des fonctionnalits de suivi
de connexions du module de filtrage Netfilter du noyau. Ces fonctionnalits sont ncessaires pour
permettre le filtrage correct des connexions des divers protocles au niveau du pare-feu, ainsi que pour
permettre les parages de connexion Internet. La rponse recommande est donc 'Y'.
L'option Connection tracking flow accounting permet d'activer la prise en charge des statistiques
des partages de connexion pour chaque flux rseau. Ces statistiques peuvent ensuite tre utilises pour
dfinir des quotas dans iptables via le critre de slection connbytes. La rponse recommande est 'N
L'option Connection mark tracking support permet d'activer le critre de slection connmark et la
cible CONNMARK d'iptables. Cette fonctionnalit permet d'identifier tous les paquets d'une mme
connexion. La rponse recommande est 'N'.
L'option Connection tracking security mark support permet d'activer le critre de slection bas sur
les marqueurs de scurit dfinis via la cible SECMARK d'iptables. La rponse recommande est 'N'.
L'option Connection tracking events permet de prendre en charge les mcanismes de notification
des changements d'tat des connexions. Ces notifications peuvent tre utilises par d'autres parties du
noyau. La rponse recommande est 'N'.
L'option SCTP protocol connection tracking support (EXPERIMENTAL) active la gestion du
suivi des connexions SCTP utilis pour la diffusion des flux multimedia sur Internet. Ces connexions
ncessitent en effet un traitement particulier, et vous devrez activer cette option si vous voulez utiliser
des connexions SCTP avec un partage de connexion Internet. La rponse recommande est 'N'.
L'option UDP-Lite protocol connection tracking support (EXPERIMENTAL) active la gestion du
suivi des connexions UDP-Lite. La rponse recommande est 'N'.
L'option Amanda backup 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.
L'option 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'.
L'option H.323 protocol support active la gestion du suivi des connexions du protocole H.323.
H.323 est un protocole de contrle servant au transport de la voix sur IP, en particulier par les
tlphones Internet. Ce module prend galement en charge les protocoles RAS, H.245 en tunnel,
RTP/RTCP et les protocoles bass sur T.120 pour la vido, l'audio, le fax, etc. La rponse
recommande est 'Y'.
L'option IRC protocol support active la prise en charge des commandes de transfert de fichiers
DDC du protocole IRC. Si vous utiliser IRC couramment, il est expressment recommand de
rpondre 'Y' cette question, faute de quoi vous ne pourrez pas changer de fichiers avec vos
interlocuteurs.
L'option NetBIOS name service protocol support (EXPERIMENTAL) permet de prendre en
charge le filtrage des annonces de noms NetBIOS sur le rseau. La rponse recommande est 'N'.
L'option PPtP protocol support active la gestion du suivi des connexions PPTP. La gestion de ce
protocole par ce module n'est toutefois pas encore tout fait complte. La rponse recommande est
donc 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 481

L'option SANE protocol support active la gestion du suivi des connexions aux scanners grs par
SANE. La rponse recommande est 'N'.
L'option SIP protocol support (EXPERIMENTAL) active la gestion du suivi des connexions du
protocole SIP de tlphone sur Internet. La rponse recommande est 'Y'.
L'option 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 'Y'.
L'option Connection tracking netlink interface permet d'activer l'interface utilisateur Netlink pour
le suivi de connexion. La rponse recommande est 'N'.
L'option Netfilter Xtables support (required for ip_tables) active la gestion des tables de filtrage de
Netfilter. Ces tables constituent un des composants essentiels de Netfilter, aussi la rponse
recommande est-elle 'Y'.
L'option "CLASSIFY" target support active la gestion de la cible CLASSIFY, qui permet de
marquer les paquets avec une priorit utilisable avec les outils de gestion de trafic. La rponse
recommande est 'N'.
L'option "CONNMARK" target support active la gestion de la cible CONNMARK, qui permet de
marquer les paquets d'une mme connexion. La rponse recommande est 'N'.
L'option "DSCP" target support active la gestion de la cible DSCP, qui permet de manipuler le
champ DSCP des en-ttes IPv4 et IPv6. La rponse recommande est 'N'.
L'option "MARK" target support active la gestion de la cible MARK, qui permet de marquer les
paquets avec un traceur afin de pouvoir les identifier ultrieurement. Par exemple, il est possible de
modifier le routage de certains paquets selon qu'ils sont marqus ou non. On peut ainsi raliser des
liaisons prioritaires pour certaines catgories de paquets. La rponse recommande est 'N'.
L'option "NFQUEUE" Target Support active les fonctionnalits de transfert des paquets vers
l'espace utilisateur par la nouvelle interface Netlink du noyau. La rponse recommande est 'Y'.
L'option "NFLOG" target support active la gestion de la cible NLOG. Cette cible permet
d'enregistrer des messages de dbogage dans les fichiers de traces du systme via une interface
gnrique du noyau, qui elle mme pourra s'appuyer sur les clibles classiques LOG, ULOG ou
nfnetlink_log. La rponse recommande est 'Y'.
L'option "NOTRACK" target support permet de marquer les paquets comme ne devant pas tre
pris en compte par les mcanismes de suivi de connexion. La rponse recommande est 'N'.
L'option "TRACE" target support permet de marquer les paquets pour que le noyau effectue une
trace chaque fois qu'il vrifie une des rgles de Netfilter. La rponse recommande est 'N'.
L'option "SECMARK" target support permet de marquer les paquets pour des vrifications de
scurit ultrieures. La rponse recommande est 'N'.
L'option "CONNSECMARK" target support permet de marquer les paquets avec les attributs de
scurit de leur connexion et rciproquement. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 482

L'option "TCPMSS" target support permet de marquer les paquets pour modifier le champ MSS
dfinissant la taille maximum du paquet sur le lien physique. Cette option n'est normalement pas
ncessaire, sauf si le protocole ICMP est filtr par un routeur bogu ou un fournisseur d'accs non
respectueux des principes de fonctionnement fondamentaux d'Internet. La rponse recommande est
donc 'N'.
L'option "comment" match support permet de prendre en charge un mode de slection virtuel des
paquets, qui permet d'ajouter des commentaires dans les jeux de rgles de filtrage du noyau. La
rponse recommande est 'N'.
L'option "connbytes" per-connection counter match support permet de slectionner les paquets
selon leur taille en octet ou leur nombre. La rponse recommande est 'N'.
L'option "connlimit" match support permet de slectionner les paquets en fonction du nombre de
connexion maintenues en parallle par l'adresse IP du client qui les a mis. La rponse recommande
est 'N'.
L'option "connmark" connection mark match support permet de slectionner les paquets selon le
numro de la connexion laquelle ils appartiennent et qui leur est attribu par la fonctionnalit de
suivi des connexions. La rponse recommande est 'N'.
L'option "conntrack" 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 'Y'.
L'option "DCCP" protocol match support permet de slectionner les paquets qui utilisent le
protocole DCCP. La rponse recommande est 'N'.
L'option "DSCP" match support permet de slectionner les paquets selon la valeur du champ
DSCP de leur en-tte IPv4 ou IPv6. La rponse recommande est 'N'.
L'option "ESP" match support permet de slectionner les paquets qui utilisent le protocole ESP
d'IPSec. La rponse recommande est 'N'.
L'option "helper" match support active la gestion du critre de slection des paquets participant
une connexion tablie et suivie par l'une des fonctionnalits actives par l'option Connection
tracking (required for masq/NAT) . La rponse recommande est 'Y'.
L'option "length" match support active la gestion du critre de slection bas sur la longueur des
paquets. La rponse recommande est 'N'.
L'option "limit" match support active la gestion de la limitation du nombre de fois par seconde
qu'une rgle peut tre vrifie par un paquet. Cette limitation est utile lorsqu'on enregistre des
messages pour tous les paquets qui vrifient certaines rgles, afin d'viter l'engorgement des fichiers
de traces du systme. La rponse recommande est 'Y'.
L'option "mac" address match support active la gestion du critre de slection des paquets bas sur
leur adresse Ethernet source. Cette rgle n'est utilisable que pour les paquets provenant d'une interface
rseau de type Ethernet. La rponse recommande est 'N'.
L'option "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 modifi par certaines rgles des chanes
prcdemment traverses par les paquets, afin de les marquer pour un traitement ultrieur. Cette option
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 483

doit donc obligatoirement tre active si l'on dsire dtecter ces paquets pour effectuer ce traitement.
La rponse recommande est 'N'.
L'option IPsec "policy" match support active la gestion du critre de slection des paquets bas sur
la politique de scurit du protocole IPsec. La rponse recommande est 'N'.
L'option Multiple port match support permet d'utiliser 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 spcifis un un, ce qui peut rendre relativement peu pratique la dfinition de certaines
rgles. La rponse recommande est 'Y'.
L'option "physdev" match support permet de slectionner les paquets en fonction du port physique
sur lequel ils arrivent ou doivent repartir dans le cas d'une configuration de la machine en tant que
pont. Cette option n'est disponible que si la machine a t configure pour faire office de pont entre
deux rseaux. La rponse recommande est 'N'.
L'option "pkttype" packet type match support vous permet de slectionner les paquets en fonction
de leur nature (broadcast, multicast, etc...). La rponse recommande est 'N'.
L'option "quota" match support vous permet de slectionner les paquets en fonction d'un quota de
donnes transfres, calcul grce un compteur d'octet.. La rponse recommande est 'N'.
L'option "realm" match support permet de slectionner les paquets en fonction de la clef realm du
code de routage du noyau. Cette option est trs spcifique, aussi la rponse recommande est-elle 'N'.
L'option "sctp" protocol match support permet de slectionner les paquets qui utilisent le protocole
SCTP. La rponse recommande est 'N'.
L'option "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'.
L'option "statistic" match support permet de slectionner les paquets priodiquement ou selon une
proprit statistique de leur contenu. La rponse recommande est 'N'.
L'option "string" match support permet de slectionner les paquets en fonction d'un motif textuel
prdfini. La rponse recommande est 'N'.
L'option "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'.
L'option "u32" match support permet d'extraire n'importe quel valeur de 32 bits d'un paquet rseau
pour tablir les critres de slection. La rponse recommande est 'N'.
L'option "hashlimit" match support permet de slectionner les paquets selon des limites statistiques
calcules l'aide d'une table de hachage sur leurs adresses. Les limites dfinies avec cette options
peuvent tre dfinies de manire plus souple que les limites dfinies avec la fonction de limitation
classique. La rponse recommande est 'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 484

A.8.1.2.2. Sous-menu IP: Netfilter Configuration
L'option IPv4 connection tracking support (required for NAT) permet de prendre en charge le
protocole IPv4 au niveau du gestionnaire de suivi de connexions. La rponse recommande est 'Y'.
L'option proc/sysctl compatibility with old connection tracking permet de prendre en charge une
ancienne interface de configuration du suivi de connexion qui tait dpendante de la couche de niveau
3 dans la pile rseau. La rponse recommande est 'Y'.
L'option Userspace queueing via NETLINK (OBSOLETE) permet de mettre disposition de
programmes clients les paquets traits par le code de filtrage, par l'intermdiaire de l'ancienne interface
Netlink. Cette interface tant obsolte prsent, la rponse recommande est 'N'.
L'option IP tables support (required for filtering/masq/NAT) permet d'activer la gestion des tables
au sein du code de filtrage du noyau. Une table est en ralit un ensemble cohrent de fonctionnalits
permettant d'appliquer 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 filtrage des
paquets et les translations d'adresses. Vous devez donc activer cette fonctionnalit si vous dsirez
raliser un Firewall ou un partage de connexion Internet. La rponse recommande est 'Y'.
L'option IP range match support permet de prendre en charge les rgles de slection de paquets
dfinies sur des plages d'adresses IP. La rponse recommande est 'Y'.
L'option 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 dfinir le type de service des paquets, principalement afin de
distinguer les paquets prioritaires des paquets normaux. La rponse recommande est 'Y'.
L'option recent match support permet un critre de slection bas sur des listes d'adresses IP avec
lesquelles des communications se sont faites rcemment. La rponse recommande est 'N'.
L'option 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'.
L'option AH match support active la gestion des critres de slection bass sur les informations
utilises par le protocole d'authentification AH de l'extension IPSec du protocole IP. La rponse
recommande est 'N'.
L'option TTL match support permet d'utiliser le champ TTL des paquets comme critre de
slection. Ce champ permet de dfinir la dure de vie des paquets au travers des diffrents routeurs, et
permet de limiter la propagation des paquets sur Internet un certain nombre d'interconnexions
seulement. La rponse recommande est 'N'.
L'option Owner match support (EXPERIMENTAL) permet de slectionner les paquets crs par
les processus locaux en utilisant comme critre les identifiants de groupe, de processus et d'utilisateur
de celui qui les a crs. Ces critres de slection ne sont pas utilisables sur les paquets provenant de
l'extrieur. La rponse recommande est 'N'.
L'option address type match support permet de slectionner les paquets en fonction de ce que le
code de routage du noyau pense de la nature d'une adresse (diffusion, point point, etc.). Cette option
est trs spcifique, aussi la rponse recommande est-elle 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 485

L'option Packet filtering active la gestion de la table filter, couramment utilise pour filtrer les
paquets autoriss et raliser un Firewall. La rponse recommande est 'Y'.
L'option 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 qu'un message d'erreur est renvoy la machine source du paquet. La rponse recommande est
'Y'.
L'option LOG target support active la gestion de la cible LOG. Cette cible permet d'enregistrer des
messages de dbogage dans les fichiers de traces du systme. On veillera activer galement la
gestion des limites sur les rgles de filtrage afin d'viter d'engorger les fichiers de traces si l'on dsire
utiliser cette option. La rponse recommande est 'Y'.
L'option ULOG target support (OBSOLETE) active la gestion de la cible ULOG. Cette cible
permet d'enregistrer des messages de dbogage au niveau d'un processus de gestion de traces
fonctionnant dans l'espace utilisateur. Cette fonctionnalit est obsolte et a t remplace par la
nouvelle interface Netlink du noyau, aussi la rponse recommande est-elle 'N'.
L'option Full NAT active les fonctionnalits de translation d'adresses, 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 'Y'.
L'option 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 'Y'.
L'option REDIRECT target support active la gestion de la translation d'adresses destinations 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'.
L'option NETMAP target support permet d'activer le support des translations d'adresses rseau.
Cela permet de transfrer tout le trafic ddi un rseau vers un autre rseau disposant de la mme
topologie. La rponse recommande est 'N'.
L'option SAME target support permet d'activer le support des translations d'adresses sources, avec
un jeu d'adresses sources visibles des clients fixe. La rponse recommande est 'N'.
L'option Basic SNMP-ALG support (EXPERIMENTAL) active la gestion de la translation
d'adresses pour permettre l'accs et le contrle des machines situes sur le rseau et pour lesquelles
un partage de connexion Internet est ralis. moins que vous n'utilisiez le protocole SNMP pour
administrer les machines de votre rseau, vous pouvez rpondre 'N' cette question.
L'option Packet mangling active la gestion de la table mangle. Cette table a pour but de donner les
moyens d'effectuer diverses modifications des en-ttes des paquets, afin de les marquer pour un
traitement ultrieur spcifique. La rponse recommande est 'N'.
L'option TOS target support permet d'utiliser la cible TOS dans les rgles des chanes de la table
mangle. Cette cible autorise la modification du champ Type Of Service des paquets,
principalement dans le but de modifier leur priorit. La rponse recommande est 'N'.
L'option ECN target support permet d'utiliser la cible ECN dans les rgles des chanes de la table
mangle. Cette cible autorise la modification du champ ECN des paquets. La rponse recommande
est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 486

L'option TTL target support active la gestion de la cible TTL, qui permet de modifier la dure de
vie des paquets lors des passages au travers des routeurs. La rponse recommande est 'N'.
L'option CLUSTERIP target support (EXPERIMENTAL) permet de distribuer les connexions sur
une grappe de serveur pour raliser de la rpartition de charge. La rponse recommande est 'N'.
L'option raw table support (required for NOTRACK/TRACE) permet de prendre en charge le
filtrage des paquets bruts au niveau des tables PREROUTING et OUTPUT. Cette option vous
permettra d'activer la prise en charge de la cible NOTRACK.
L'option ARP tables support permet de permettre la prise en charge des paquets ARP au niveau du
code de filtrage du noyau. La rponse recommande est 'N'.
L'option ARP packet filtering permet de filtrer et slectionner les paquets ARP au niveau du
noyau, ventuellement pour les modifier. La rponse recommande est 'N'.
L'option ARP payload mangling permet de modifier la vole les informations circulant dans les
paquets ARP, comme l'adresse source et l'adresse destination, ainsi que les adresses MAC. La rponse
recommande est 'N'.
A.8.1.2.3. Sous-menu IPv6: Netfilter Configuration
L'option IPv6 connection tracking support (EXPERIMENTAL) permet de prendre en charge le
protocole IPv6 au niveau du nouveau gestionnaire de suivi de connexion, que l'on peut activer avec
l'option Layer 3 Independent Connection tracking (EXPERIMENTAL) . La rponse recommande
est 'N'.
L'option IP6 Userspace queueing via NETLINK (OBSOLETE) permet d'activer la gestion des
transferts des paquets IPv6 sur un processus utilisateur via l'ancienne interface NETLINK. Cette
interface est prsent obsolte, aussi la rponse recommande est-elle 'N'.
L'option IP6 tables support (required for filtering/masq/NAT) permet d'activer la gestion de
Netfilter pour le protocole IPv6. La rponse recommande est 'N'.
L'option Routing header match support (EXPERIMENTAL) permet d'activer le critre de slection
bas sur les informations de routage des paquets. La rponse recommande est 'N.
L'option Hop-by-hop and Dst opts header match (EXPERIMENTAL) permet d'activer le critre de
slection des paquets selon leurs options hop by hop et destination. La rponse recommande est
'N'.
L'option Fragmentation header match support (EXPRERIMENTAL) permet d'activer le critre de
slection selon les en-ttes de gestion des paquets fragments. La rponse recommande est 'N'.
L'option HL match support permet d'activer le critre de slection bas sur le nombre maximum de
sauts d'un paquet indiqu dans son en-tte. La rponse recommande est 'N'.
L'option Owner match support (EXPERIMENTAL) permet de slectionner les paquets crs par
les processus locaux en utilisant comme critre les identifiants de groupe, de processus et d'utilisateur
de celui qui les a crs. La rponse recommande est 'N'.
L'option IPv6 Extensions Headers Match (EXPERIMENTAL) permet d'activer la gestion du
critre de slection des paquets utilisant des extensions IPv6. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 487

L'option AH match support permet d'activer la slection des paquets des connexions IPv6 utilisant
le protocole d'authentification AH. La rponse recommande est 'N'.
L'option MH match support permet d'activer la slection des paquets des connexions IPv6 utilisant
le protocole MH. La rponse recommande est 'N'.
L'option UEI64 address check (EXPERIMENTAL) permet d'activer la vrification de la validit
des adresses IPv6 sources. La rponse recommande est 'N'.
L'option Packet filtering permet d'activer la gestion de la table filter, afin de raliser par exemple
un Firewall. La rponse recommande est 'N'.
L'option LOG target support active la gestion de la cible LOG. Cette cible permet d'enregistrer des
messages de dbogage dans les fichiers de traces du systme. On veillera activer galement la
gestion des limites sur les rgles de filtrage afin d'viter d'engorger les fichiers de traces si l'on dsire
utiliser cette option. La rponse recommande est 'N'.
L'option REJECT target support active la gestion de la cible REJECT. Cette cible permet de rejeter
les paquets concerns et de prvenir le correspondant de ce rejet. La rponse recommande est 'N'.
L'option Packet mangling permet d'activer la gestion de la table mangle, qui autorise la
modification de certains champs des en-ttes des paquets IP. La rponse recommande est 'N'.
L'option HL (hoplimit) target support permet de prendre en charge la gestion de la cible HL, qui
permet de spcifier le nombre de routeurs qu'un paquet peut traverser. Mal utilise, cette option peut
gnrer des paquets dont la dure de vie est virtuellement infinie. La rponse recommande est 'N'.
L'option raw table support (required for TRACE) permet de prendre en charge la gestion des filtres
sur les paquets bruts, au niveau des tables PREROUTING et OUTPUT. La rponse recommande est
'N'.
A.8.1.2.4. Sous-menu DECnet: Netfilter Configuration
L'option Routing message grabulator (for userland routing daemon) permet d'activer l'interface
noyau permettant au dmon de routage rseau pour les rseaux DECnet de fonctionner. La rponse
recommande est 'N.
A.8.1.2.5. Sous-menu Bridge: Netfilter Configuration
L'option Ethernet Bridge tables (ebtables) support permet d'activer les fonctionnalits de slection
des paquets Ethernet. Ces fonctionnalits permettent de raliser des ponts filtrants entre deux rseaux
Ethernet. Les options qui suivent permettent d'identifier les paquets Ethernet en fonction de leurs
caractristiques. La rponse recommande est 'N'.
A.8.1.3. Sous-menu DCCP Configuration (EXPERIMENTAL)
L'option The DCCP Protocol (EXPERIMENTAL) permet de prendre en charge le protocole de
datagrammes avec gestion de congestion DCCP directement au niveau noyau. Cette option vous
donnera accs des sous-options permettant de configurer ce protocole. La rponse recommande
cette question est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 488

A.8.1.4. Sous-menu SCTP Configuration (EXPERIMENTAL)
L'option The SCTP Protocol (EXPERIMENTAL) permet de prendre en charge le protocole
diffusion de flux multimdia (streaming) SCTP directement au niveau noyau. Cette option vous
donnera accs des sous-options permettant de configurer ce protocole. La rponse recommande
cette question est 'N'.
A.8.1.5. Sous-menu TIPC Configuration (EXPERIMENTAL)
L'option The TIPC Protocol (EXPERIMENTAL) permet de prendre en charge le protocole de
communication inter processus utilis dans certains clusters. Cette option vous donnera accs des
sous-options permettant de configurer ce protocole et la gomtrie de votre cluster. La rponse
recommande pour un particulier est certainement 'N'.
A.8.1.6. Sous-menu QoS and/or fair queueing
L'option QoS and/or fair queuing permet d'activer les options de configuration des algorithmes qui
fixent 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
priorits d'mission. Parmi ces algorithmes, on retrouve les algorithmes bass sur la notion de qualit
de service, qui peuvent tre activs grce l'option QoS support . Les options suivantes permettent
de paramtrer les notions attaches la qualit de service.
A.8.1.7. Sous-menu Network testing
L'option Packet Generator (USE WITH CAUTION) , permet de gnrer diffrents types de paquets
et de les envoyer sur une interface rseau des fins de tests. Cette opration peut tre dangereuse pour
la machine locale et les autres machines du rseau, aussi la rponse recommande est-elle 'N'.
L'option TCP connection probing , permet de capturer tous les changements d'tat des connexions
TCP lors de l'arrive des paquets TCP. Cette option n'est utile que pour les dveloppeurs du noyau,
pour dboguer les modules de gestion des congestions TCP, aussi la rponse recommande est-elle 'N'.
A.8.2. Menu Amateur Radio support
L'option Amateur Radio support permet d'activer 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'.
A.8.2.1. Sous-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.8.3. Menu IrDA (infrared) subsystem support
L'option IrDA (infrared) subsystem support permet d'activer 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.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 489

A.8.3.1. Sous-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.8.4. Menu Bluetooth sybsystem support
L'option Bluetooth subsystem support permet d'activer la gestion des priphriques sans fil
utilisant la norme Bluetooth. La rponse recommande est 'N'.
L'option 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.
L'option SCO links support permet d'activer la gestion de la voix au travers du protocole
Bluetooth. La rponse recommande est 'N'.
L'option RFCOMM protocol support permet d'activer le support des communications connectes
sur la technologie BlueTooth. L'option qui suit permet de permettre l'utilisation d'un terminal par ce
protocole. La rponse recommande est 'N'.
L'option BNEP protocol support permet de crer une interface rseau Ethernet virtuelle utilisant
les fonctionnalits Bluetooth comme couche de transport. Cela permet de crer des rseau privs
Bluetooth. Les options qui suivent permettent de spcifier les fonctionnalits disponibles au niveau de
l'interface implmente par ce gestionnaire. La rponse recommande est 'N'.
L'option CMTP protocol support permet d'activer le support de l'interface CAPI pour les
priphriques ISDN Bluetooth. La rponse recommande est 'N'.
L'option HIDP protocol support permet d'activer la prise en charge des priphriques d'interface
homme-machine Bluetooth. La rponse recomande est 'N'.
A.8.4.1. Sous-menu Bluetooth device drivers
L'option HCI USB driver permet de prendre en charge les priphriques Bluetooth utilisant une
interface USB. La rponse recommande est 'N'.
L'option SCO (voice) support permet d'activer le support du protocole SCO sur les priphriques
BlueTooth USB. La rponse recommande est 'N'.
L'option HCI UART driver permet de prendre en charge les priphriques Bluetooth utilisant une
interface srie classique. La rponse recommande est 'N'.
L'option UART (H4) protocol supoprt permet de prendre en charge le protocole de communication
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'.
L'option BCSP protocol support permet de prendre en charge le protocole de communication srie
BSCP utilis par les priphriques Bluetooth et leur hte. L'option Transmit CRC with every BCSP
packet permet de demander ce qu'un 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'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 490

L'option HCI BCM203x USB driver permet de prendre en charge les priphriques BCM203
d'HCI. La rponse recommande est 'N'.
L'option HCI BPA10x USB driver permet de prendre en charge les priphriques USB BPA10x
d'HCI. La rponse recommande est 'N'.
L'option HCI BlueFRITZ! USB driver permet de prendre en charge les priphriques BlueFRITZ!
d'HCI. La rponse recommande est 'N'.
L'option HCI DTL1 (PC Card) driver permet de prendre en charge les cartes PCMCIA Bluetooth
disposant de l'interface DTL1 de Nokia. La rponse recommande est 'N'.
L'option HCI BT3C (PC Card) driver permet de prendre en charge les cartes PCMCIA Bluetooth
disposant de l'interface BT3C de 3Com. La rponse recommande est 'N'.
L'option HCI BlueCard (PC Card) driver permet de prendre en charge les cartes PCMCIA
Bluetooth disposant de l'interface BlueCard de Anycom. La rponse recommande est 'N'.
L'option HCI UART (PC Card) driver permet de prendre en charge les cartes PCMCIA Bluetooth
disposant d'une interface UART. La rponse recommande est 'N'.
L'option HCI VHCI virtual HCI device driver permet d'activer le priphrique HCI virtuel, qui
vous permettra de simuler des priphriques Bluetooth. La rponse recommande est 'N'.
A.8.5. Option RxRPC session socket
L'option RxRPC session sockets permet la prise en charge des sessions RxRPC, qui sont utilises
par le systme de fichiers rseau AFS. La rponse recommande est 'N'.
L'option RxRPC dynamic debugging permet de configurer le niveau de trace des liaisons RxRPC
dynamiquement. La rponse recommande est 'N'.
L'option RxRPC Kerberos security permet la prise en charge des connexions RxRPC protges par
Kerberos. La rponse recommande est 'N'.
A.8.6. Menu Wireless
L'option Improved wireless configuration API permet de prendre en charge des extensions
l'interface de programmation des extensions pour les rseau sans fil de Linux. Actuellement, Linux
fournit deux bibliothques gnriques utilisables par les pilotes de priphriques des rseaux sans fil :
la bibliothque SoftMac, qui est la bibliothque historique et que de nombreux pilotes utilisent encore,
et la bibliothque mac80211 (anciennement nomme DeviceScape, du nom de la socit qui l'a
dveloppe et l'a offert aux dveloppeurs du noyau), plus performante mais pour laquelle les pilotes de
priphriques n'ont pas encore t adapts. L'interface de programmation tendue n'est utile que pour
cette dernire bibliothque, et elle est active automatiquement si ncessaire. La rponse
recommande est 'Y'.
L'option Wireless extensions permet de prendre en charge l'interface de programmation des
extensions pour les rseau sans fil. Cette interface est utilise par la plupart des pilotes de
priphriques, aussi la rponse recommande est-elle 'Y'.
L'option Generic IEEE 802.11 Networking Stack (mac80211) permet d'activer le support
gnrique des rseaux 802.11 via la bibliothque mac80211 dveloppe par la socit DeviceScape.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 491

Cette bibliothque est utilise par certains pilotes de priphriques et vous devrez l'activer si vous
disposer d'un tel pilote. Toutefois, la plupart des pilotes n'ont pas encore t modifis pour utiliser
cette nouvelle bibliothque, aussi pouvez-vous rpondre par 'N' cette question pour l'instant.
L'option Enable LED triggers permet de prendre en charge la gestion des diodes
lectroluminescentes prsentes sur certains priphriques pour signaler les changes sur le rseau sans
fil. La rponse recommande est 'Y'.
L'option Export mac80211 internals in DebugFS permet d'exposer des informations de dboguage
interne de la bibliothque mac80211 au travers du systme de fichiers virtuel DebugFS. La rponse
recommande est 'N'.
L'option Enable debugging output permet d'activer les traces de dboguage de la bibliothque
mac80211. La rponse recommande est 'N'.
L'option Verbose debugging output permet d'activer des traces de dboguage complmentaires de
la bibliothque mac80211. La rponse recommande est 'N'.
L'option Debug frame dumping permet d'activer des traces de dboguage pour chacun des paquets
802.11 qui traverse la bibliothque mac80211. La rponse recommande est 'N'.
L'option TKIP debugging permet d'activer les traces de dboguage de la bibliothque mac80211
pour la gestion des clefs de chiffrement temporaires. La rponse recommande est 'N'.
L'option Extra statistics for TX/RX debugging permet d'activer des statistiques sur les paquets
802.11 qui traversent la bibliothque mac80211. La rponse recommande est 'N'.
L'option Support for IBSS testing permet d'activer des fonctionnalits de test des rseaux Wifi
fonctionnant sans points d'accs (donc en mode ad-hoc). La rponse recommande est 'N'.
L'option Verbose powersave mode debugging permet d'activer des traces de dboguage
complmentaires relatives la gestion de l'nergie par la bibliothque mac80211. La rponse
recommande est 'N'.
L'option Generic IEEE 802.11 Networking Stack permet d'activer le support gnrique des rseaux
sans fil 802.11 par l'intermdiaire de la bibliothque SoftMac utilise historiquement dans Linux.
Cette bibliothque est en cours de remplacement par la bibliothque mac80211 (alias DeviceScape),
mais est encore utilise par la plupart des pilotes de priphriques. La rponse recommande est donc
'Y'.
L'option Enable full debugging output permet d'activer la gnration des informations
complmentaires de dboguage de cette fonctionnalit. La rponse recommande est 'N'.
Les options IEEE 802.11 WEP encryption (802.1x) , IEEE 802.11i CCMP support et IEEE
802.11i TKIP encryption permettent de prendre en charge respectivement les algorithmes de
chiffrement WEP, CCMP et TKIP. La rponse recommande est 'Y'.
L'option Software MAC add-on to the IEEE 802.11 networking stack permet d'activer la prise en
charge au niveau logiciel certaines tches que le matriel ne gre pas toujours. Cette fonctionnalit
peut tre ncessaire pour grer les fonctionnalits de chiffrement avec certains pilotes de priphriques
Wifi. La rponse recommande est donc 'Y'. Si vous activez cette option, vous aurez la possibilit
d'activer les traces de dboguage de la pile SoftMac l'aide de l'option Enable full debugging
output . La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 492

A.8.7. Option RF switch subsystem support
L'option RF switch subsystem support permet la prise en charge des interrupteurs prsents sur la
plupart des adaptateurs sans fil et des portables et permettant de dsactiver les communications radio.
Certains de ces interrupteurs sont grs directement par le matriel et ne ncessitent donc pas de ce
pilote. La rponse recommande est 'Y'.
L'option Input layer to RF switch connector permet de modifier l'activit des communications
radio pour les priphriques pour lesquels cette activit est contrlable logiciellement. Vous devrez
utiliser une application complmentaire pour utiliser cette fonctionnalit, le noyau ne fournissant
qu'une interface bas niveau avec ce pilote. La rponse recommande est 'N'.
A.8.8. Option Plan 9 Resource Sharing Support (9P2000) (Experimental)
L'option Plan 9 Resource Sharing Support (9P2000) (Experimental) permet la prise en charge du
protocole de partage de ressources 9P2000 dvelopp pour le systme Plan 9. La rponse
recommande est 'N'.
L'option Debug information permet d'activer des traces de dboguage pour le sous-systme Plan 9.
La rponse recommande est 'N'.
A.9. Device Drivers
Ce menu contient l'ensemble des options relatives aux gestionnaires de pripriques pris en charge par
Linux.
A.9.1. Menu Generic Driver Options
L'option Select only drivers that don't need compile-time external firmware permet de n'afficher
que les options relatives aux gestionnaires de priphriques pour lesquels des fichiers sources
complmentaires ceux fournis avec le noyau ne sont pas ncessaires. La rponse recommande est
'N'.
L'option Prevent firmware from being built permet de dsactiver la compilation des firmware
fournis avec le noyau. En gnral, le firmware ne doit tre recompil que lors d'une mise jour de
firmware et non du noyau, aussi cette option doit-elle gnralement active. La rponse recommande
est donc 'Y'.
L'option Userspace firmware loading support permet d'inclure le support du chargement du
firmware des priphriques chaud, quand bien mme aucun gestionnaire de priphrique prsent
dans le noyau ne le ncessiterait. Cela permet de disposer de cette fonctionnalit pour les gestionnaires
de priphriques externes fournis sous forme de module. La rponse recommande est 'Y'.
L'option Driver Core verbose debug messages permet d'activer les messages de trace du systme
de base des gestionnaires de priphriques. La rponse recommande est 'N'.
L'option Managed device resources verbose debug messages permet d'activer les messages de trace
des pilotes de priphriques dont la gestion des ressources est totalement prise en charge par le noyau.
Ces pilotes de priphriques sont un nouveau type de pilotes, qui utilisent des fonctions avances du
noyau permettant de grer automatiquement les ressources systmes. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 493

A.9.2. Menu Connector - unified userspace <-> kernelspace linker
L'option Connector - unified userspace <-> kernelspace linker permet d'activer une technique de
communication gnrique entre le noyau et les processus utilisateurs, base sur l'interface Netlink du
noyau. La rponse recommande est 'N'.
L'option Report process events to userspace permet d'ajouter un point de connexion permettant de
remonter les vnements concernant la vie des processus vers l'espace utilisateur. La rponse
recommande est 'N'.
A.9.3. Menu Memory Technology Devices (MTD)
Ce menu vous permet d'activer 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
fichiers sur les systmes embarqus, qui ne disposent pas ncessairement de disques magntiques.
L'option 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 menu sont
les menus RAM/ROM/Flash chip drivers , Mapping drivers for chip access , Self-contained
MTD device drivers , NAND Flash Device Drivers , OneNAND Flash Device Drivers et
UBI - Unsorted block images . Ce dernier menu permet de prendre en charge les fonctions
d'aggrgation de priphriques en mmoire Flash tout en prenant en compte la spcificit de ces
mmoires (en particulier le faible nombre de rcritures possible avant destruction de la mmoire).
A.9.4. Menu Parallel port support
L'option Parallel port support permet d'activer la gestion du port parallle au niveau du noyau. Il
est recommand de le faire sous la forme de module, car le port parallle n'est pas souvent utilis. De
toutes faons, il est recommand d'activer 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'.
L'option PC-style hardware permet d'indiquer au noyau que le port parallle est compatible PC. Si
vous compilez le noyau pour un PC ou un Alpha, rpondez par 'M' cette question.
L'option 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'.
L'option Use FIFO/DMA if available (EXPERIMENTAL) permet de demander au noyau d'utiliser
une interruption et un canal DMA pour accder au port parallle, si le chipset de la carte mre le
supporte. Cela permet gnralement d'acclrer les entres / sorties sur le port parallle, en vitant au
noyau d'utiliser un mcanisme de consultation priodique de l'tat du port afin de savoir s'il est capable
d'accepter des donnes ou si des donnes doivent tre lues. Notez que, par dfaut, le noyau n'utilisera
aucune ligne d'interruption 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 l'adresse du port et de la ligne d'interruption utiliser, spars par une virgule.
Si vous avez demand la compilation du gestionnaire de ports parallles sous forme de module, vous
devrez spcifier ces options dans le fichier /etc/modprobe.conf. La rponse recommande est 'Y'.
L'option SuperIO chipset support (EXPERIMENTAL) permet d'activer la gestion des chipset
SuperIO prsents sur certaines cartes mres. La rponse recommande est 'N'.
L'option Support for PCMCIA management for PC-style ports permet d'activer la gestion des ports
parallles via les mcanismes de gestion des cartes PCMCIA. La rponse recommande cette
question est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 494

L'option AX88796 Parallel Port permet d'activer la gestion des ports parallles prsents sur les
cartes rseau AX88796. Ce pilote de priphrique est totalement indpendant du pilote de priphrique
pour ces cartes rseau et peut donc tre activ seul. La rponse recommande est 'N'.
L'option IEEE 1284 transfer modes permet de paramtrer le gestionnaire de ports parallles pour
utiliser les communications bidirectionnelles du port. Cette option est utile si l'on utilise une
imprimante capable d'indiquer son tat l'ordinateur. 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.9.5. Menu Plug and Play support
L'option Plug and Play support permet d'activer la gestion du plug and play au niveau du noyau.
La rponse recommande est 'Y'.
L'option PnP Debug Messages permet d'activer la gestion des traces du gestionnaire de
priphriques Plug and Play. Cela permet de dboguer la configuration des priphriques Plug and
Play plus facilement. La rponse recommande est 'N'.
L'option ISA Plug and Play support permet d'activer les fonctionnalits Plug and Play pour les
priphriques ISA. Il est ainsi possible d'viter d'avoir utiliser les outils isapnp et pnpdump, et
d'viter la compilation des gestionnaires de ces priphriques en modules. La configuration de ces
priphriques ISA Plug and Play en est grandement simplifie. Le bus ISA n'tant plus utilis de nos
jours, il est donc recommand de rpondre par 'N' cette question.
L'option Plug and Play BIOS support (EXPERIMENTAL) permet d'activer la dtection des
fonctionnalits Plug and Play des cartes mres via le BIOS. Leur configuration est donc assure de ne
pas entrer en conflit avec celle des priphriques Plug and Play ISA prsents. La rponse
recommande est 'N'. Si vous activez cette option, vous aurez accs l'option Plug and Play BIOS
/proc interface , qui vous permettra d'accder aux informations du BIOS Plug and Play via ls systme
de fichiers virtuels /proc/.
L'option Plug and Play ACI support (EXPERIMENTAL) permet d'activer la dtection des
fonctionnalits Plug and Play des cartes mres via l'interface ACPI. La plupart des machines rcentes
ne disposent plus de bus ISA, mais les priphriques classiques sont toujours prsents. Ces
priphriques sont gnralement dclars dans la configuration ACPI, et cette option permet d'obtenir
leurs paramtres via cette interface. La rponse recommande est 'Y'.
A.9.6. Menu Block devices
L'option Normal floppy disk support permet d'activer la gestion des lecteurs de disquettes sous
Linux. Vous pouvez rpondre par 'Y' cette question si vous disposez d'un lecteur de disquettes.
L'option PS/2 ESDI hard disk support permet d'activer la gestion des disques ESDI sur les
ordinateurs de type PS/2. Cette option n'est disponible que si vous avez activ la gestion du bus MCA
l'aide de l'option MCA support du menu General setup . La rponse recommande est 'N'.
L'option XT hard disk support permet d'activer la gestion des disques durs XT. Ce sont de trs
vieux disques durs, que plus personne n'utilise. Rpondez par 'N' cette question.
L'option Parallel port IDE device support permet d'activer 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 l'ordinateur. Rpondez par 'M' cette question.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 495

L'option Parallel port IDE disks permet d'activer le support des disques IDE connects sur port
parallle. Si vous disposez d'un tel disque, rpondez par 'M' cette question, et choisissez le protocole
de communication sur port parallle correspondant dans l'une des options suivantes. La rponse
recommande est 'N'.
L'option Parallel port ATAPI CD-ROMs permet d'activer la gestion des CD-ROM ATAPI
connects sur port parallle. Si vous disposez d'un tel lecteur, rpondez par 'M' cette question, et
choisissez le protocole de communication sur port parallle correspondant dans l'une des options
suivantes. La rponse recommande est 'N'.
L'option Parallel port ATAPI disks permet d'activer la gestion des disques ATAPI connects sur
port parallle. Si vous disposez d'un tel disque, rpondez par 'M' cette question, et choisissez le
protocole de communication sur port parallle correspondant dans l'une des options suivantes. La
rponse recommande est 'N'.
L'option Parallel port ATAPI tapes permet d'activer la gestion des lecteurs de bandes connects sur
port parallle. Si vous disposez d'un tel lecteur, rpondez par 'M' cette question, et choisissez le
protocole de communication sur port parallle correspondant dans l'une des options suivantes. La
rponse recommande est 'N'.
L'option Parallel port generic ATAPI devices permet la gestion de priphriques ATAPI non
standards connects au port parallle. Les logiciels utilisateur peuvent envoyer des commandes
ATAPI spcifiques ces priphriques par l'intermdiaire de ce gestionnaire. En particulier, les
graveurs de CD connects sur port parallle utilisent cette fonctionnalit. Si vous disposez d'un
graveur de CD sur port parallle, rpondez par 'M' cette question, et choisissez le protocole de
communication sur port parallle correspondant dans l'une 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.
L'option Compaq SMART2 support permet d'activer la gestion des cartes contrleurs Smart Array
de Compaq. moins que vous ne disposiez d'une telle carte, la rponse recommande est 'N'.
L'option Compaq Smart Array 5xxx support permet d'activer la gestion des cartes contrleurs
Smart Array 5xxx de Compaq. moins que vous ne disposiez d'une telle carte, la rponse
recommande est 'N'. Si vous activez cette fonctionnalit, vous pourrez galement activer l'option
SCSI tape drive support for Smart Array 5xxx , qui permet d'utiliser des priphriques SCSI
connects sur les contrleurs Smart Array 5xxx. La rponse recommande pour cette option est
galement 'N'.
L'option Mylex DAC960/DAC1100 PCI RAID Controler support permet d'activer la gestion des
contrleurs RAID Mylex. La rponse recommande est 'N'.
L'option Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL) permet
d'activer la gestion des cartes mmoires alimentes par batterie MM5415. La rponse recommande
est 'N'.
L'option Virtual block device permet d'activer la gestion des priphriques de type bloc du systme
hte dans les systmes virtualiss par UML (User Mode Linux). Cela permet d'acclrer fortement les
entres/sorties dans ces systmes. La rponse recommande est donc 'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 496

L'option Always do synchronous disk IO for UBD permet de faire en sorte que les oprations
d'critures sur les priphriques virtuels des systmes virtualiss par UML sont toujours ralises de
manire synchrone au niveau du systme hte. Cela permet de faire fonctionner correctement les
systmes de fichiers journaliss pour ces systmes. La rponse recommande est 'Y'.
L'option Loopback device support permet d'utiliser des fichiers classiques pour y placer un
systme de fichiers. Cela est essentiellement utilis pour crer des images de CD et les tester avant de
les graver. Si vous disposez d'un graveur de CD-ROM, il est recommand de rpondre 'Y' cette
question. Sinon, rpondez 'M', pour vous rserver la possibilit d'utiliser des systmes de fichiers
stocks dans des fichiers classiques.
L'option Cryptoloop Support permet d'activer le chiffrement des disques durs par les algorithmes
de chiffrement de Linux, en passant par l'intermdiaire d'un systme de fichiers loopback. Cette option
ncessite d'inclure le support des algorithmes de chiffrement, accessibles dans le menu
Cryptographic options . Cette option n'est pas cryptographiquement sre, et ne permet pas de
stocker des systmes de fichiers journaliss de manire fiable. Aussi n'est-elle pas recommande, et on
lui prfrera les fonctionnalits de gestion des volumes disponibles dans le menu Multi-device
support (RAID and LVM) . La rponse recommande pour cette option est donc 'N'.
L'option Network block device support permet d'accder aux fichiers spciaux de priphriques de
type bloc d'un ordinateur distant par l'intermdiaire du rseau. Cette fonctionnalit est peu utilise, la
rponse recommande est donc 'N'.
L'option Promise SATA SX8 support permet d'activer la gestion des contrleurs Serial ATA SX8.
Vous devez l'activer si vous en disposez d'un. La rponse recommande est 'N'.
L'option Low Performance USB Block driver permet de prendre en charge certains priphriques
de masse USB trs lents. La rponse recommande est 'N'.
L'option RAM disk support permet d'activer la gestion des disques virtuels (chargs en mmoire).
Notez que cette option n'est pas ncessaire pour activer les systmes de fichiers en mmoire (ramfs),
car ceux-ci sont intgrs d'office dans le noyau. Elle ne sert qu' crer des priphriques de type bloc
afin de fixer la taille des disques virtuels (le systme de fichiers ramfs ne ncessite pas ces
priphriques et adapte dynamiquement sa taille en fonction des besoins). Ces disques virtuels sont
gnralement utiliss pour crer des disquettes de rparation, qui chargent les utilitaires systmes sur
un disque en mmoire. La rponse recommande est donc 'N' pour un systme normal, et 'Y' pour un
systme destin tre plac sur une disquette de rparation.
L'option Default number of RAM disks permet de fixer le nombre de disques virtuels par dfaut.
La valeur recommande est '16'.
L'option Default RAM disk size (kbytes) permet de fixer la taille par dfaut des disques virtuels.
La taille recommande est de 4096 Ko.
L'option Default RAM disk block size (bytes) permet de fixer la taille par dfaut des blocs sur les
disques virtuels. La taille recommande est 4096, mais la taille par dfaut est de 1024 Ko pour des
raisons de compatibilit avec le chargeur de systme initrd.
L'option Packet writing on CD/DVD media permet d'activer l'criture par paquet sur les supports
CD et DVD rinscriptibles. Cette fonctionnalit permet d'utiliser ces supports directement comme des
lecteurs amovibles classiques, sans avoir utiliser de logiciel de gravage spcifique. La rponse
recommand est 'Y'. Les sous options Free buffers for data gathering et Enable write caching
de cette option permettent de spcifier le nombre de tampons d'entre/sortie utiliss simultanment
pour les critures et si les critures doivent tre effectues de manire asynchrone afin d'optimiser les
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 497

performances. Dans ce dernier cas, les erreurs d'critures ne sont pas encore gres, aussi est-il
prfrable de rpondre par 'N' cette dernire question.
L'option ATA over Ethernet support permet de prendre en charge les priphriques de stockage
ATA connectables via un port Ethernet. La rponse recommand est 'N'.
L'option Xen virtual block device support permet de prendre en charge les priphriques de type
bloc virtuels pour les systmes virtualiss par Xen. Cela permet d'accrotre les performances des
entres/sorties sur les priphriques de type bloc du systme hte. La rponse recommand est 'Y'.
A.9.7. Sous-menu Misc devices
L'option Device driver for IBM RSA service processor active la prise en charge des coprocesseurs
cryptographiques Condor d'IBM. La rponse recommande est 'N', sauf si vous disposez d'un tel
coprocesseur.
L'option Sensable PHANToM active la prise en charge des priphriques Sensable PHANTOM.
La rponse recommande est 'N', sauf si vous disposez d'un tel coprocesseur.
L'option EEPROM 93CX6 support active la prise en charge des puces EEPROM 93c46 et 93c66.
La rponse recommande est 'N', sauf si vous disposez d'un tel coprocesseur.
L'option SGI IOC4 Base IO support active la prise en charge des puces IOC4 existantes sur
certaines cartes mres SGI. Ce pilote n'est pas utile en soit, mais est utilis par d'autres pilotes de
priphrique. La rponse recommande est 'N', sauf si vous disposez d'une telle carte mre.
L'option TI Flash Media interface support active la prise en charge des adaptateurs Flash Media de
Texas Instruments. Cette option vous donnera accs aux options permettant de slectionner les pilotes
de priphriques pour l'adaptateur dont vous disposez. La rponse recommande est 'N', sauf si vous
disposez d'un tel adaptateur.
L'option Asus Laptop Extras (EXPERIMENTAL) active la prise en charge de contrle des rseaux
Bluetooth et Wifi des portables Asus, ainsi que le contrle de la luminosit de l'cran LCD et des
vnements de gestion d'nergie. Ce pilote de priphrique fonctionne galement sur certains
ordinateurs de marque Medion, JVC ou Victor. La rponse recommande est 'N', sauf si vous disposez
d'un tel ordinateur.
L'option MSI Laptop Extras active la prise en charge de contrle des rseaux Bluetooth et Wifi des
portables MSI, ainsi que le contrle de la luminosit de l'cran LCD. La rponse recommande est 'N',
sauf si vous disposez d'un tel ordinateur.
L'option Sony Laptop Extras (EXPERIMENTAL) active la prise en charge de contrle des rseaux
Bluetooth des portables Sony, ainsi que le contrle de la luminosit de l'cran LCD et des touches
d'extinction de certains priphriques. Cette option vous donnera accs l'option Sonypi
compatibility permettant d'activer la compatibilit avec le pilote sonypi. La rponse recommande
est 'N', sauf si vous disposez d'un tel ordinateur.
L'option ThinkPad ACPI Laptop Extras active la prise en charge de contrle des rseaux Bluetooth
des portables ThinkPad d'IBM ou de Lenovo, ainsi que le contrle de la luminosit de l'cran LCD et
des touches de fonctions de ces ordinateurs. Cette option vous donnera accs aux options Verbose
debug mode , "Legacy Docking Station Support , Legacy Removable Bay Support et Enable
input layer support by default qui permettent de spcifier le niveau de traces du pilote, d'activer les
pilotes de gestion prsent obsoltes pour la dtection de la base et des priphriques amovibles, et de
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 498

rediriger les informations des touches de fonctions vers le pilote d'entre classique de Linux. La
rponse recommande est 'N', sauf si vous disposez d'un tel ordinateur.
A.9.8. Menu ATA/ATAPI/MFM/RLL support
L'option ATA/ATAPI/MFM/RLL support permet d'activer ou de dsactiver globalement le
support des priphriques IDE. moins que votre ordinateur ne contienne que des priphriques
SCSI, vous devez activer cette option.
L'option Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support permet d'activer 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.
L'option Support for SATA (deprecated; conflicts with libata SATA driver) permet d'activer la
prise en charge de quelques contrleurs Serial ATA de premire gnration. Normalement, les disques
Serial ATA doivent tre utiliss via le gestionnaire de priphrique SCSI, aussi l'activation de cette
option est-elle dconseille. La rponse recommande est 'N'.
L'option Use old disk-only driver on primary interface permet d'utiliser un vieux pilote pour les
disques IDE connects la premire interface IDE et qui poseraient quelques problmes 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'.
L'option Include IDE/ATA-2 DISK support permet d'utiliser les disques durs IDE et ATAPI. Si
l'ordinateur possde un disque IDE, il est fortement recommand de rpondre 'Y' cette question. On
ne doit rpondre 'N' que si l'ordinateur est compltement SCSI. De plus, on prendra garde au fait que
l'on ne peut pas mettre les fonctionnalits ncessaires au dmarrage de l'ordinateur dans des modules.
Cela signifie 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.
L'option Use multi-mode by default permet d'activer le mode multimode par dfaut sur les disques
IDE. Cette option n'est normalement pas ncessaire, ce mode tant automatiquement choisi par le
noyau. Toutefois, elle peut tre ncessaire dans de rares cas. La rponse recommande est 'N'.
L'option PCMCIA IDE support permet d'activer la gestion des priphriques IDE connects par un
port PCMCIA sur les portables. Cette option n'est accessible que si vous avez activ la gestion des
cartes PCMCIA avec l'option CardBus support du menu PCMCIA/CardBus support . La
rponse recommande est 'N'.
L'option Cardbus IDE support (Delkin/ASKA/Workbit) permet d'activer la gestion des adaptateurs
IDE Cardbus Delkin, ASKA ou Workbit. sur les portables. Cette option n'est accessible que si vous
avez activ la gestion des cartes PCMCIA avec l'option CardBus support du menu
PCMCIA/CardBus support . La rponse recommande est 'N'.
L'option Include IDE/ATAPI CDROM support permet d'utiliser les CD-ROM IDE et ATAPI. La
plupart des ordinateurs possdent un lecteur de CD-ROM ATAPI actuellement, il est donc
recommand d'activer cette fonctionnalit. La rponse recommande est 'Y'.
L'option Include IDE/ATAPI TAPE support (EXPERIMENTAL) permet d'inclure la gestion des
lecteurs de bandes magntiques IDE et ATAPI. Comme les lecteurs de disques amovibles IDE sont
assez rares, la rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 499

L'option Include IDE/ATAPI FLOPPY support permet d'inclure la gestion des lecteurs de disques
amovibles IDE et ATAPI. C'est 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'.
L'option SCSI emulation support permet d'muler la prsence d'un priphrique IDE par un
priphrique SCSI en convertissant les requtes SCSI en requtes ATAPI. Cette fonctionnalit n'est
utile que lorsqu'on doit utiliser des logiciels bas niveau qui ne peuvent travailler qu'avec des
priphriques SCSI. Cette option tait ncessaire pour utiliser les graveurs de CD IDE avec les
anciennes versions du noyau, mais ce n'est plus le cas prsent. Cette option n'est donc plus utile de
nos jours et la rponse recommande est 'N'.
L'option IDE ACPI support permet d'activer les fonctions d'nergie ACPI pour les priphriques
IDE. La rponse recommande est 'Y'.
L'option IDE Taskfile Access permet d'activer l'envoi de commandes directement au niveau du
contrleur IDE. La rponse recommande est 'N'.
L'option legacy /proc/ide/ support permet d'activer l'affichage des informations sur les bus IDE
dans le systme de fichiers virtuel /proc/. Ces informations sont prsent exposes au travers du
systmes de fichiers virtuel /sys/, aussi cette option n'est-elle fournie qu' titre de compatibilit pour
les applications qui n'auraient pas encore t mises jour. La rponse recommande est 'Y'.
L'option generic/default IDE chipset support permet d'activer la prise en charge gnrique des
priphriques ATAPI en cas d'absence d'un gestionnaire plus spcialis. La rponse recommande est
'N'.
L'option CMD640 chipset bugfix/support permet de contourner un bogue des chipsets IDE
CMD640. Vous devez activer cette option si vous disposez d'un tel chipset. La rponse recommande
est 'Y' si vous avez un tel chipset, et 'N' sinon.
L'option CMD640 enhanced support permet l'auto-dtection des paramtres idaux pour les
chipsets IDE CMD640. Cette option n'est 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.
L'option PNP EIDE support permet de prendre en charge la gestion des cartes ISA Plug and Play
permettant d'utiliser des disques EIDE additionnels. Cette option peut tre ncessaire si ces cartes
doivent tre initialises avant de chercher utiliser les disques qui y sont connects. La rponse
recommande est 'N'.
L'option PCI IDE chipset support permet d'activer la gestion des priphriques IDE sur bus PCI.
Vous devez rpondre par 'Y' cette question si vous disposez d'une carte mre PCI et de contrleurs
IDE, ce qui est normalement le cas pour tous les ordinateurs rcents.
L'option Sharing PCI IDE interrupts support permet d'activer le partage des lignes d'interruptions
utilises par les contrleurs IDE avec les cartes prsentes sur le bus PCI. Cette fonctionnalit ncessite
un support matriel particulier de la part du contrleur IDE, support qui n'est prsent que sur certaines
cartes mres. En gnral, l'activation de cette option ne perturbe pas le fonctionnement du systme sur
les ordinateurs incapables d'effectuer le partage des lignes d'interruptions des contrleurs IDE, mais la
rponse recommande reste 'N'.
L'option Boot off-board chipsets first support permet d'inverser la numrotation des disques IDE
connects aux contrleurs de la carte mre et des disques IDE connects aux contrleurs additionnels
que l'on peut avoir sur une carte fille. Il faut rpondre par 'N' cette question.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 500

L'option Generic PCI IDE Chipset support permet d'activer la gestion des priphriques IDE
gnriques. La rponse recommande cette question est 'Y'.
L'option OPTi 82C621 chipset enhanced support (EXPERIMENTAL) permet de prendre en
charge les chipsets OPTi 82C621. La rponse recommande est 'N'.
L'option RZ1000 chipset bugfix/support permet de prendre en charge les chipsets RZ1000 et de
corriger un de leur bogue. La rponse recommande est 'Y si vous disposez d'un tel chipset, et de 'N'
sinon.
L'option Generic PCI bus-master DMA support permet d'activer la gestion des disques Ultra
DMA. La rponse recommande est 'Y' si vous disposez d'une carte mre PCI grant l'Ultra DMA et
de disques IDE.
L'option Force enable legacy 2.0.X HOSTS to use DMA permet d'activer une vieille fonctionnalit
non documente et ne sera pas dcrite ici. L'option recommande 'N'.
L'option Use PCI DMA by default when available permet d'activer la gestion de l'Ultra DMA au
dmarrage. La rponse recommande est 'Y', sauf si l'on veut dsactiver le support de l'Ultra DMA.
L'option Enable DMA only for disks permet de dsactiver les transferts DMA pour les
priphriques 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'.
Il suit un certain nombre d'options qui permettent d'activer 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.
L'option IGNORE word93 Validation BITS permet d'viter une inconsistance dans les
spcifications du protocole matriel ATAPI. Ces spcifications n'ont 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 qu'il ne soit pas dangereux de rpondre
par l'affirmative cette question, la rponse recommande reste 'N'.
L'option Old hard disk (MFM/RLL/IDE) driver permet de prendre en charge les disques durs via
un pilote de disque alternatif, qui peut tre ncessaire sur certains vieux systmes dont le
comportement n'est pas semblable celui des ordinateurs rcents au niveau du squencement des
oprations. La rponse recommande est 'N'.
A.9.9. Menu SCSI device support
L'option RAID Transport Class permet de prendre en charge la technologie RAID pour les
priphriques SCSI. La rponse recommande est 'N'.
L'option SCSI device support permet d'activer 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 s'il a besoin de composants se trouvant sur le disque SCSI pour
s'amorcer, il ne faut pas mettre en module cette fonctionnalit. Ceux qui n'ont pas de priphrique
SCSI et ne comptent pas en utiliser peuvent rpondre 'N' cette question. Sachez toutefois que de
nombreux priphriques USB apparaissent comme des disques SCSI une fois connects l'ordinateur.
C'est en particulier le cas des clefs USB et de nombreux appareils photo numriques. Il est donc
recommand de rpondre 'Y' cette question, mme si l'on ne dispose pas de priphrique rellement
SCSI.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 501

L'option SCSI target support permet d'accder aux pilotes de priphriques SCSI en mode target.
La rponse recommande est 'Y'.
L'option legacy /proc/scsi/ support permet de dfinir les entres concernant le sous-systme SCSI
dans le systme de fichiers virtuel /proc/. Ces informations sont prsent exposes au travers du
systme de fichiers virtuel /sys/, mais des applications peuvent ne pas avoir t mises jour, aussi est-
il recommand de rpondre 'Y' cette question.
L'option SCSI disk support permet d'activer la gestion des disques durs SCSI. Il ne faut pas
rpondre par 'M' si votre systme a besoin d'un disque SCSI pour dmarrer. Cette option permet
galement de grer les lecteurs ZIP connects sur port parallle, ainsi que les priphriques comme les
clefs USB et bon nombre d'appareils photo numriques, qui apparaissent comme des disques SCSI une
fois connects l'ordinateur. La rponse recommande est donc 'Y'.
L'option SCSI tape support permet d'activer la gestion des priphriques bande SCSI. Notez que
les lecteurs de bande OnStream SC-x0 ne sont pas pris en charge par ce pilote gnrique, mais peuvent
tre utiliss malgr tout en activant l'option suivante SCSI OnStream SC-x0 tape support . Le pilote
alors utilis ncessitera la prsence des fichiers spciaux de priphrique /dev/osstX, qui utilisent le
numro de code majeur 206. La rponse recommande pour ces deux options est 'N'.
L'option SCSI CD-ROM support permet d'activer la gestion des CD-ROM SCSI. Vous devez
activer cette fonctionnalit galement si vous utilisez l'mulation SCSI pour un graveur de CD ATAPI.
Si vous tes dans l'un de deux ces cas, il est recommand de rpondre 'Y' cette question. Dans tous
les autres cas, la rponse recommande est 'N'.
L'option Enable vendor-specific extensions (for SCSI CDROM) permet d'activer la gestion de CD-
ROM SCSI disposant de commandes SCSI spcifiques. C'est notamment le cas pour les lecteurs de
CD multisessions NEC/TOSHIBA et les graveurs de CD HP. Pour la plupart des utilisateurs, la
rponse recommande est 'N'.
L'option SCSI generic support permet d'activer la gestion des priphriques SCSI non standards.
Pour ces priphriques, il faut utiliser un programme capable d'envoyer 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. C'est en particulier
le cas si vous utilisez un graveur de CD-ROM SCSI ou IDE via l'interface d'mulation SCSI du noyau.
Dans ce cas, la rponse recommande est 'Y'. Pour la plupart des utilisateurs, la rponse recommande
est toutefois 'N'.
L'option SCSI media changer support permet de prendre en charge les priphriques de
changement de mdia que l'on peut trouver dans les bibliothques de bandes magntiques ou dans
certains jukebox. La rponse recommande est 'N'.
L'option Probe all LUNs on each SCSI device permet d'effectuer la dtection de tous les numros
logiques d'units SCSI de chaque priphrique. Comme la plupart des priphriques SCSI ne disposent
que d'un seul numro d'unit logique, la rponse recommande est 'N'.
L'option Verbose SCSI error reporting (kernel size +=12K) permet d'utiliser un jeu de messages
d'erreurs alternatif pour le SCSI. Ces messages sont plus lisibles, mais prennent plus de place dans le
noyau. La rponse recommande est 'N'.
L'option SCSI logging facility permet d'activer les traces du sous-systme SCSI. La rponse
recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 502

L'option Asynchronous SCSI scanning permet d'activer la fonctionnalit de dtection asynchrone
des priphriques SCSI. Les bus SCSI ont en effet toujours t relativement lents initialiser en raison
de la recherche des priphriques qui y sont connects. Avec cette option, le dmarrage du systme
peut tre acclr en ralisant cette dtection en asynchrone. Toutefois, l'initialisation du systme peut
chouer si celle-ci ncessite un priphrique SCSI non encore dtect. Il est possible de raliser une
synchronisation dans les scripts de dmarrage du systme en chargeant le module scsi_wait_scan.
Toutefois, la rponse recommande est 'N'.
A.9.9.1. Sous-menu SCSI Transport
Ce jeu d'options permet d'exporter des informations sur les communications du sous-systme SCSI
dans le systme de fichiers virtuels /sys/. La rponse recommande pour ces options est 'N'.
A.9.9.2. Sous-menu SCSI low-level drivers
Ce jeu d'options 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 l'mulation SCSI pour les priphriques
ATAPI ou des priphriques USB qui apparaissent comme des disques SCSI une fois connect
l'ordinateur, il n'est pas ncessaire de choisir un gestionnaire bas niveau et vous pouvez dsactiver
toutes ces options. Il est recommand de rpondre 'Y' cette option et de choisir le pilote adapt
votre matriel.
A.9.9.3. Sous-menu PCMCIA SCSI adapter support
Ce jeu d'options 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.
A.9.10. Menu Serial ATA (prod) and Parallel ATA (experimental) drivers
L'option Serial ATA (prod) and Parallel ATA (experimental) drivers permet d'activer la prise en
charge gnrique des priphriques ATA. Cette prise en charge comprend la gestion des priphriques
Serial ATA, qui sont parfaitement supports, et un nouveau jeux de pilotes pour les priphriques
ATAPI classiques (dont la connectique, savoir les nappes IDE classiques, est, l'inverse des
priphriques Serial ATA, de type parallle). Si les pilotes de priphriques Serial ATA peuvent tre
utiliss sans problme, les pilotes Parallel ATA sont beaucoup plus rcents et sont encore considrs
comme exprimentaux. Il est par consquent recommand de continuer utiliser les pilotes de
priphriques classiques du menu ATA/ATAPI/MFM/RLL support pour l'instant. Cette option
vous donnera accs aux pilotes de priphriques pour les diffrents matriels supports par Linux. La
rponse recommande est donc 'Y' si votre ordianteur dispose d'une interface Serial ATA, et vous
devrez choisir le type de chipset Serial ATA utilis dans les options suivantes.
Notez que les priphriques Serial ATA et les priphriques Parallel ATA de ce menu exposent les
priphriques sous la forme de priphriques SCSI. Les fichiers spciaux de ces priphriques ont
donc un nom de la forme /dev/sdXX et non de la forme /dev/hdXX. terme, lorsque les nouveaux
pilotes Parallel ATA seront finaliss, tous les priphriques apparatront comme des priphriques
SCSI et la manire d'accder aux priphriques de type bloc sera uniforme.
A.9.11. Menu Multi-device support (RAID and LVM)
L'option Multiple devices driver support (RAID and LVM) permet d'activer la gestion de la
redondance de donnes RAID et des volumes logiques. La technologie RAID permet de raliser des
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 503

agrgats de disques, soit dans le but de simuler des disques de grande capacit, soit afin de stocker les
donnes de manire redondante sur plusieurs disques afin d'obtenir une scurit accrue de ces donnes.
La technologie LVM permet quant elle uniquement de regrouper plusieurs volumes physiques afin
de simuler la prsence d'un volume logique de trs grande capacit. Cette technologie utilise un
mcanismes de regroupement des priphriques de type bloc que l'on appelle Device Mapper . Ce
mcanisme permet galement de transformer les donnes crites sur les volumes la vole, et en
particulier de les chiffrer avec les algorithmes cryptographiques du noyau. Vous pouvez rpondre par
'Y' cette question si vous avez besoin de l'une de ces fonctionnalits. Dans le cas contraire, rpondez
par 'N'. La rponse recommande est 'N'.
L'option RAID support permet d'activer la prise en charge des technologies RAID au niveau
logiciel. Cette option n'est pas ncessaire pour utiliser les technologies RAID avec un matriel
spcifique. La rponse recommande est 'N'.
L'option Linear (append) mode permet de concatner plusieurs partitions pour ne former qu'une
seule zone de donnes plus grande. Cette fonctionnalit n'assure pas la redondance des donnes. La
rponse recommande est 'N'.
L'option 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 d'augmenter les
performances en minimisant les temps d'accs, si ces partitions sont sur des disques diffrents. Cette
fonctionnalit n'assure cependant pas la redondance des donnes. La rponse recommande est 'N'.
L'option RAID-1 (mirroring) mode permet de dupliquer les donnes sur plusieurs disques la
vole. Cette redondance des donnes permet d'assurer une grande scurit. La rponse recommande
est 'N'.
L'option RAID-10 (mirrored striping) mode (EXPERIMENTAL) permet de dupliquer les donnes
sur plusieurs disques la vole, dont l'espace peut tre combin pour raliser des partitions quilibres
plus grande. Ce mode de fonctionnement est donc un mode hybride entre le mode RAID-0 et le mode
RAID-1, et offre donc un peu plus de souplesse. La rponse recommande est 'N'.
L'option RAID-4/RAID-5/RAID-6 mode permet d'activer le support logiciel RAID-4, RAID-5 ou
RAID-6. 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 l'un des
disques. Le systme est tolrant la dfaillance d'un seul disque. Dans le mode RAID-6, les donnes
de contrle sont doubles et consomment deux disques sur l'ensemble des disques utiliss, mais le
systme tolre la dfaillance de deux disques simultanment. La rponse recommande est 'N'.
L'option Support adding drives to a raid-5 array (experimental) permet d'activer la fonctionnalit
d'ajout de disque un systme RAID-5. Cela ncessite la redistribution des donnes sur l'ensemble des
disques. Cette fonctionnalit permet de le faire en exploitation. Elle reste toutefois exprimentale,
aussi la rponse recommande est-elle 'N'.
L'option Mutipath I/O support permet d'activer le support des priphriques capables d'tre
accds par diffrents jeux de ports d'entre / sortie. La rponse recommande est 'N'.
L'option Faulty test module for MD permet d'activer une fonctionnalit de gnration d'erreurs
alatoires lors des opration de lecture sur les priphriques multiples. Cette option est utile aux
dveloppeurs du noyau pour tester les techniques de reconstitution des informations dans les
fonctionnalits RAID. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 504

L'option Device mapper support permet d'activer la gestion des volumes virtuels. Avec cette
option, vous pourrez faire des agrgats de plusieurs disques, priphriques RAID ou priphriques
loopback afin de simuler un priphrique de type bloc de trs grande capacit. Notez que cette
fonctionnalit ne permet pas d'accder aux partitions de type agrgat de Windows 2000 et Windows
XP. Pour ce type de partition, consultez le sous-menu Partition types du menu File systems . La
rponse recommande est 'Y'.
L'option Device mapper debugging support permet d'activer des messages de dboguage
complmentaires lors de l'utilisation des volumes virtuels. La rponse recommande est 'N'.
L'option Crypt target support permet d'utiliser les volumes virtuels pour chiffrer les systmes de
fichiers qui y sont stockes. La rponse recommande est 'N'.
L'option Snapshot target (EXPERIMENTAL) permet d'effectuer une photographie de l'tat
complet d'un volume virtuel un instant donn, de manire atomique. La rponse recommande est
'N'.
L'option Mirror target (EXPERIMENTAL) permet de rpliquer un volume sur un autre volume
afin d'en avoir en permanence une copie conforme. La rponse recommande est 'N'.
L'option Zero target (EXPERIMENTAL) permet de crer un volume virtuel sur lequel toutes les
critures sont ignores, et dont les donnes sont toujours nulles en lecture. Ce type de volume peut tre
utile dans certaines situation de restauration. La rponse recommande est 'N'.
L'option Multipath target (EXPERIMENTAL) permet de donner aux gestionnaires de volume la
possibilit d'accder aux priphriques capables de grer plusieurs jeux de ports d'entre/sortie. Si
vous activez cette option, vous pourrez accder aux options des pilotes de priphriques pris en charge
par Linux. La rponse recommande est 'N'.
L'option I/O delaying target (EXPERIMENTAL) permet de prendre en charge un volume virtuel
qui retarde les oprations d'entre/sortie sur les priphriques physiques. Cette fonctionnalit est
principalement utile pour raliser des tests, la rponse recommande est 'N'.
A.9.12. Menu Fusion MPT device support
Les options Fusion MPT ScsiHost drivers for SPI , Fusion MPT ScsiHost drivers for FC et
Fusion MPT ScsiHost drivers for SAS permettent d'activer la prise en charge de l'architecture
Fusion respectivement pour les adaptateurs SCSI parallles, fibre optique et SCSI srie. 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
d'entre/sortie. Vous pouvez rpondre 'Y' cette question si vous disposez d'une telle carte, et rgler le
paramtre du nombre maximum de paramtres des oprations d'entres / sorties multiples du driver
avec l'option suivante. La rponse recommande tant 'N'.
L'option Maximum number of scatter gather entries (16 - 128) permet d'indiquer le nombre
maximum de segments de donnes utilisables dans le cadre d'entres/sorties de donnes non contiges.
Il est recommand de conserver la valeur par dfaut inchange (128).
L'option Fusion MPT misc device (ioctl) driver permet d'activer un moyen de contrle
supplmentaire sur les adaptateurs MPT par l'intermdiaire du fichier 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'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 505

L'option Fusion MPT LAN driver permet de prendre en charge les rseaux IP sur les adaptateurs
Fusion fibre optique. La rponse recommande est 'N'.
L'option Fusion MPT logging facility permet d'activer des traces de fonctionnement sur les
priphriques Fusion. La rponse recommande est 'N'.
A.9.13. Menu IEEE 1394 (FireWire) support (EXPERIMENTAL)
L'option IEEE 1394 (FireWire) support - alternative stack, EXPERIMENTAL permet d'activer la
gestion des cartes FireWire. Ces cartes fournissent l'accs un bus de donnes extrmement rapide,
que l'on utilise gnralement pour connecter des priphriques exigeant une bande passante trs
leve, comme les camras vido par exemple. Le pilote rendu accessible par cette option est un
nouveau pilote de priphrique, qui n'est pas forcment totalement stabilis encore. De plus, il ne
prend pas encore en charge l'ensemble des fonctionnalits de l'ancien pilote (en particulier l'interface
rseau au travers de l'interface FireWire). La rponse recommande est donc 'N'.
L'option Support for OHCI FireWire host controllers permet d'activer la gestion des cartes
FireWire compatible OHCI dans le nouveau pilote FireWire. La rponse recommande est 'Y'.
L'option Support for storage devices (SBP-2 protocol driver) permet d'activer la gestion des
priphriques de stockage dans le nouveau pilote FireWire, tels que les disques durs connects par une
prise FireWire. La rponse recommande est 'Y'.
L'option IEEE 1394 (FireWire) support (EXPERIMENTAL) permet d'activer la gestion des cartes
FireWire. Ce pilote de priphriques est le pilote utilis historiquement dans Linux, il est donc plus
stable que le nouveau pilote mais appel tre remplac par ce dernier. La rponse recommande est
'Y'.
L'option Excessive debugging output est rserve pour les dveloppeurs de gestionnaires de
priphriques. Elle permet de stocker sur disque toutes les informations transitant sur le bus FireWire,
ce qui sature gnralement les disques durs extrmement rapidement. Il faut rpondre par 'N' cette
question.
L'option Texas Instruments PCILynx support permet d'activer la gestion des cartes FireWire
PCILynx de Texas Instruments. Cette option n'est disponible que si l'option I2C support du menu
I2C support a t active. La rponse recommande est 'N'.
L'option OHCI-1394 support active la prise en charge des contrleurs IEEE 1394 respectant les
spcifications OHCI (il s'agit d'un standard de communication pour les contrleurs). Ce pilote n'a t
test qu'avec un contrleur de Texas Instruments, mais ce contrleur est l'un des plus utiliss du
march. La rponse recommande est 'Y'.
L'option OHCI-1394 Video support permet d'utiliser la capture vido des cartes FireWire. La
rponse recommande est 'Y'.
L'option SBP-2 support (Harddisks, etc.) permet d'activer 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'.
L'option Enable replacement for physical DMA in SBP2 permet d'utiliser un code de compatiblit
pour que les gestionnaires priphriques SBP-2 puisse utiliser les accs directs la mmoire sur les
contrleurs qui ne sont pas capables de les raliser. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 506

L'option IP over 1394 permet d'utiliser une interface IEEE1394 comme une interface Ethernet. La
rponse recommande est 'N'.
L'option OHCI-DV I/O support (deprecated) permet d'activer l'envoi et la rception d'images DV
par un port IEEE1394 au travers d'une interface simplifie. Toutefois, les programmes vido n'utilisent
plus cette fonctionnalit de nos jours et accdent directement au port 1394 en mode brut (voir option
suivante). Cette option n'est donc plus ncessaire, et la rponse recommande est 'N'.
L'option Raw IEEE 1394 I/O support permet aux programmes de communiquer directement avec
le matriel IEEE 1394. C'est en gnral le mode de fonctionnement dsir, aussi la rponse
recommande cette question est-elle 'Y'.
A.9.14. Menu I2O device support
L'option I2O support permet d'activer la gestion des cartes d'entre/sortie I2O. Ces cartes prennent
en charge la gestion des entres/sorties de manire uniforme, pour tous les priphriques matriels, et
permettent donc d'crire un gestionnaire de priphriques uniforme au niveau du systme
d'exploitation pour toute une classe de priphrique. Ce gestionnaire, nomm OSM (abrviation de
Operating System Module ), communique avec des pilotes spcifiques chaque type de matriel.
Ces pilotes peuvent alors ne faire aucune hypothse sur le systme d'exploitation utilis. Ainsi, il est
possible d'crire des gestionnaires de priphriques communs tous les systmes d'exploitation. La
rponse recommande est 'N'.
L'option Enable LCT notification permet de prendre en charge les notifications relatives aux
canaux de communication logiques du protocole I2O. Cette fonctionnalit est normalement ncessaire,
mais peut tre dsactive car certains contrleurs de SUN ne la prennent pas en charge. La rponse
recommande est 'Y', sauf si vous tes dans ce cas.
L'option Enable Adaptec extensions permet de prendre en charge les extensions ncessaires
l'utilisation des contrleurs RAID de marque Adaptec. Cette option vous donnera galement accs
l'option Enable 64-bit DMA permettant d'activer les accs direct la mmoire en 64 bits sur ces
adaptateurs. La rponse recommande est 'Y' si vous disposez de ce type de priphrique.
L'option I2O Configuration support permet d'activer l'interface de configuration des priphriques
I2O. Cette option est en particulier ncessaire pour configurer les priphriques RAID sur les
contrleurs de marque Adaptec. Cette option vous donnera galement accs l'option Enable
IOCTLs (OBSOLETE) , qui permet de prendre en charge des commandes de configuration des
priphriques obsoltes, titre de compatibilit. La rponse recommande est 'Y' si vous disposez de
ce type de priphrique.
L'option I2O Bus Adapter OSM permet de prendre en charge le gestionnaire de priphriques pour
le bus I2O lui-mme. Cela permet de demander au bus de lister les priphriques qui y sont connects,
en particulier pour dtecter les nouveaux priphriques. La rponse recommande est 'Y'.
L'option I2O Block OSM permet de prendre en charge le gestionnaire de priphriques pour les
priphriques RAID. La rponse recommande est 'Y'.
L'option I2O SCSI OSM permet de prendre en charge le gestionnaire de priphriques SCSI ou
FibreChannel. Ce gestionnaire vous permettra galement d'accder de manire unitaire aux disques
RAID. La rponse recommande est 'N'.
L'option I2O /proc support permet d'exporter des informations relatives aux priphriques I2O
dans le systme de fichiers virtuel /proc/. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 507

A.9.15. Configuration des interfaces rseau
L'option Network device support permet d'activer la gestion des diverses interfaces rseau que
Linux peut prendre en charge. On notera que les choix faits pour les protocoles de communication
dans le menu Networking options sont ncessaires (la plupart des composants des systmes Unix
utilisent les fonctions rseau du systme pour communiquer) mais non suffisants pour accder au
monde extrieur. Si l'on n'active pas cette option, seuls les processus de la machine locale seront
accessibles (par l'intermdiaire de l'interface rseau loopback ). Pour accder aux autres
ordinateurs, que ce soit par une carte rseau, un cble parallle ou srie, ou par modem via un
fournisseur d'accs Internet, il faut en plus rpondre 'Y' cette question. La rponse recommande
est 'Y'.
L'option Netdevice multiple hardware queue support permet de prendre en charge plusieurs files
de transmission pour les paquets sortants, sur les adaptateurs qui fournissent cette fonctionnalit. La
rponse recommande est 'N'.
L'option Intermediate Functional Block support permet d'activer la prise en charge d'une interface
rseau virtuelle qui se positionne entre l'interface rseau physique et les clients afin de raliser des
statistiques sur le trafic rseau. La rponse recommande est 'N'.
L'option Dummy net driver support permet d'activer la fonctionnalit de rseau virtuel. Cette
fonctionnalit fournit une interface virtuelle sur un rseau ne contenant qu'une seule machine. Cette
interface peut tre utilise pour faire croire des programmes rseau que la machine est effectivement
connecte un rseau. La rponse recommande est 'N'.
L'option 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
passantes des connexions ainsi regroupes. La rponse recommande est 'N'.
L'option MAC-VLAN support (EXPERIMENTAL) permet de crer plusieurs interfaces virtuelles
afin de rediriger les paquets destins une adresse physique vers une interface spcifique. La rponse
recommande est 'N'.
L'option EQL (serial line load balancing) support permet d'activer la gestion de connexions
multiples sur plusieurs connexions srie (par exemple par l'intermdiaire de deux modems). Cette
fonctionnalit ncessite galement le support de cette fonctionnalit du ct de la machine distante. La
rponse recommande est 'N'.
L'option Universal TUN/TAP device driver support permet d'activer la gestion d'interfaces 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 l'intermdiaire de fichiers 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 qu'avec une seule autre
machine), alors que les interfaces de type tap simulent le fonctionnement d'une carte Ethernet
classique. Cette fonctionnalit permet donc aux programmes classiques d'accder aux paquets routs
vers ces interfaces, et de recevoir et d'envoyer des donnes brutes sur le rseau. Les interfaces tunX et
tapX sont cres dynamiquement, lorsque les programmes qui dsirent les utiliser s'enregistrent au
niveau du systme en ouvrant le fichier 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'.
L'option General Instruments Surfboard 1000 permet de prendre en charge les cartes modem
Surfboard 1000 utilises pour accder Internet via les oprateurs de cble. La rponse recommande
est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 508

L'option Xen network device frontend driver permet de prendre en charge les interfaces rseau
pour les machines virtuelles Xen. Ce pilote doit tre activ pour les noyaux des systmes fonctionnant
dans les machines virtuelles Xen. La rponse recommande est 'N'.
L'option FDDI driver support permet d'activer 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'.
L'option 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'.
L'option PLIP (parallel port) support permet d'activer les connexions par port parallle. Ce type de
connexion peut tre utilis pour transfrer des fichiers par un cble parallle entre deux ordinateurs. La
rponse recommande est 'N'.
L'option PPP (point-to-point protocol) support permet d'activer 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 d'activer le support de ce type de connexion, moins que vous soyez sr de ne jamais vous
connecter Internet. La rponse recommande ici est 'Y'.
L'option PPP multinlink support (EXPERIMENTAL) permet d'utiliser 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 d'accs et accrotre ainsi
votre bande passante. Bien entendu, pour que cette technique fonctionne, il faut que le fournisseur
d'accs l'autorise. La rponse recommande est 'N'.
L'option PPP filtering permet d'autoriser le filtrage des paquets traversant les interfaces PPP
existantes dans le systme. Cette fonctionnalitpeut tre utile pour raliser un firewall ou pour
effectuer des actions spcifiques lorsque certains paquets sont reus. La rponse recommande est 'N'.
L'option PPP support for async serial ports permet de prendre en charge les communications PPP
sur les cbles srie classiques. C'est en gnral l'option qui convient lorsqu'on veut se connecter
Internet l'aide d'un modem classique. Notez que cette option n'est pas utilisable pour les connexions
l'aide d'un modem Numris. La rponse recommande est 'Y'.
L'option PPP support for sync tty ports permet de prendre en charge les communications PPP avec
les adaptateurs synchones, tels que les cartes SyncLink. La rponse recommande est 'N'.
L'option PPP Deflate compression permet de prendre en charge l'algorithme de compression
Deflate (le mme algorithme que celui utilis par le programme gzip) pour compresser les donnes
transmises sur les connexions PPP. La rponse recommande est 'Y'.
L'option PPP BSD-Compress compression permet de prendre en charge l'algorithme de
compression LZW pour compresser 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.
Cependant, les brevets de logiciel sont encore illgaux en Europe, et il est tout fait lgal de l'utiliser.
Les taux de compressions obtenus sont de toutes manires infrieures ceux de la mthode Deflate,
aussi la rponse recommande est-elle 'N'.
L'option PPP MPPE compression (encryption) (EXPERIMENTAL) permet de prendre en charge
l'algorithme de compression MPPE utilis par le protocole de communication point point de
Microsoft. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 509

L'option PPP over Ethernet (EXPERIMENTAL) permet de raliser des connexions point point
sur un rseau de type Ethernet. Ce protocole est galement souvent utilis par les fournisseurs d'accs
pour transfrer les donnes via les modems ADSL. La rponse recommande est donc 'Y'.
L'option PPP over ATM permet de raliser des connexions point point sur un rseau ATM. La
rponse recommande est 'N'.
L'option PPP over L2TP (EXPERIMENTAL) permet de raliser des connexions point point sur
un rseau L2TP. La rponse recommande est 'N'.
L'option SLIP (serial line) support permet de connecter deux ordinateurs par une ligne srie ou par
un modem. Les options suivantes permettent de fixer 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'.
L'option CSLIP compressed headers permet d'activer la compression des en-ttes IP pour le
protocole SLIP. La rponse recommande est 'N'.
L'option Keepalive and linefill permet d'activer 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'.
L'option Six bit SLIP encapsulation permet de faire en sorte que le protocole SLIP n'envoie que
des donnes codes sur 6 bits. Cela permet d'amliorer la qualit des transmissions sur les rseaux peu
fiables, ou qui ne peuvent pas transfrer plus de 7 bits de donnes. La rponse recommande est 'N'.
L'option Fibre Channel driver support permet d'activer la gestion des adaptateurs Fiber Channel.
L'option qui suit donne la possibilit de slectionner le gestionnaire de priphriques pour les cartes
Interphase base de chipset Tachyon. La rponse recommande est 'N'.
L'option Traffic Shaper (EXPERIMENTAL) permet d'activer la possibilit de contrler le dbit
maximal de donnes travers une interface rseau. La rponse recommande est 'N'.
L'option Network console logging support (EXPERIMENTAL) permet d'activer la possibilit
d'envoyer les messages gnrs par le noyau vers le rseau, plutt que de les envoyer la console. La
rponse recommande est 'N'.
L'option Netpoll traffic trapping n'est pas documente et ne sera pas dcrite plus en dtail ici. La
rponse recommande est 'N'.
A.9.15.1. Sous-menu ARCnet devices
L'option ARCnet support permet d'activer 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.9.15.2. Sous-menu PHY device support
L'option PHY Device support and infrastructure permet d'activer la des priphriques PHY
auxquels les contrleurs Ethernet sont souvent attachs. Ces priphriques permettent de dterminer
l'tat du lien physique (prsence du cble, mode de communication, croisement des fils, vitesse, etc.).
La rponse recommande est 'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 510

Les options qui suivent correspondent aux diffrents pilotes pour les priphriques PHY de certaines
cartes rseau. Si vous avez une carte de ce type, rpondez par 'M' ou 'Y' la question correspondante.
La rponse recommande est 'N'.
A.9.15.3. Sous-menu Ethernet (10 or 100Mbit)
L'option Ethernet (10 or 100Mbit) permet d'activer la gestion des cartes de type Ethernet. Les
options qui suivent correspondent aux diffrents gestionnaires de priphriques 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 gestionnaire de priphriques correspondant votre matriel dans la suite du menu. La
rponse recommande est 'N'. Certaines cartes utilisent une interface commune pour le transmetteur,
dont on peut activer le support grce l'option Generic Media Independent Interface device
support , qu'il est donc conseill d'activer. La plupart des cartes rseau bon march sont compatibles
NE2000, celles fournies sur les cartes mres sont toutefois souvent diffrentes. Il existe deux types de
pilotes pour les cartes rseau, selon qu'elles sont ISA ou non. Les pilotes pour les cartes ISA peuvent
tre choisis en activant les options Other ISA cards . Les pilotes pour les cartes PCI peuvent tre
slectionns en activant les options EISA, VLB, PCI and on board controllers .
A.9.15.4. Sous-menu Ethernet (1000 Mbit)
Les options disponibles dans ce menu permettent de choisir les gestionnaires de priphriques
utiliser pour les cartes Ethernet Gigabit. Choisissez l'option qui correspond votre matriel si vous en
disposez d'une.
A.9.15.5. Sous-menu Ethernet (10000 Mbit)
Les options disponibles dans ce menu permettent de choisir les gestionnaires de priphriques
utiliser pour les cartes Ethernet 10 Gigabits. Choisissez l'option qui correspond votre matriel si vous
en disposez d'une.
A.9.15.6. Sous-menu Token Ring devices (depends on LLC=y)
Ce menu permet d'activer les gestionnaires de priphriques pour les cartes Token Ring. L'option
Token Ring driver support permet d'activer 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'.
A.9.15.7. Sous-menu Wireless LAN
Les options de ce menu permettent d'activer la gestion des connexions sans fil Wifi. Les options qui
suivent permettent de choisir les gestionnaires de priphriques disponibles. Cette option est
galement ncessaire pour les gestionnaires de priphriques Wifi non intgrs au noyau. Certains
priphriques ncessitent galement les fonctionnalits de l'infrastructure Wifi activable avec les
options Generic IEEE 802.11 Networking Stack du menu Networking . La rponse
recommande est 'Y' si vous disposez d'une interface rseau sans fil, et 'N' dans le cas contraire.
A.9.15.8. Sous-menu USB Network Adapters
Ce sous-menu permet de prendre en charge les priphriques rseau connects via un port USB. En
particulier, l'option Multi-purpose USB Networking Framework donne accs aux options de
configuration des fonctions de connexion entre deux ordinateurs ou entre un ordinateur et un appareil
USB intelligent, en utilisant un cble USB de transfert de donnes. Les interfaces rseau seront
nommes usb0, usb1, etc. Elle donne galement accs l'option CDC Ethernet support (smart
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 511

devices such as cable modems) , qui doit tre utilise pour accder la plupart des priphriques
ADSL qui simulent une interface Ethernet via le port USB. La rponse recommande est 'N'.
A.9.15.9. Sous-menu PCMCIA network device support
L'option PCMCIA network device support permet d'activer 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.9.15.10. Sous-menu Wan interfaces
L'option Wan interfaces support permet de prendre en charge les gestionnaires de priphriques
pour les adaptateurs WAN ( Wide Area Network ). Cette option vous donnera accs aux options
permettant de slectionner les gestionnaires de priphriques pour ces adaptateurs. La rponse
recommande est 'N'.
L'option WAN router drivers permet d'activer les options de menu suivantes, qui donnent la
possibilit de faire la configuration des adaptateurs WAN. Cette option n'est disponible que si l'option
Wan router du menu de configuration des options gnrales du rseau a t active. La rponse
recommande est 'N'.
L'option LAPB over Ethernet driver permet d'activer un gestionnaire de priphriques pour une
carte X.25 virtuelle. La rponse recommande est 'N'.
L'option X.25 async driver permet d'activer la gestion du protocole X.25 sur une ligne srie
normale ou sur un modem. La rponse recommande est 'N'.
A.9.15.11. Sous-menu ATM drivers
L'option Dummy ATM driver permet de fournir un pilote de priphrique ATM virtuel. Ce type
pilote n'est utile qu' des fins de test et de dveloppement. La rponse recommande est 'N'.
L'option ATM over TCP permet d'encapsuler ATM sur un rseau TCP/IP. Ce type d'encapsulation
n'est utile qu' des fins de test et de dveloppement. La rponse recommande est 'N'.
L'option Efficient Networks Speedstream 3010 permet de prendre en charge les cartes ATM
Speedstream 3010 d'Efficient Networks. La rponse recommande est 'N'.
L'option Efficient Networks ENI155P active la gestion des cartes ATM ENI155P d'Efficient
Networks et Power155 de SMC. Les options qui suivent permettent de configurer ce gestionnaire de
priphriques. La rponse recommande est 'N'.
L'option Fujitsu FireStream (FS50/FS155) active la gestion des cartes ATM FireStream de Fujitsu.
La rponse recommande est 'N'.
L'option ZeitNet ZN1221/ZN1225 active la gestion des cartes ATM ZN1221 et ZN1225 de
ZeitNet. Les options qui suivent permettent de configurer ce gestionnaire de priphriques. La rponse
recommande est 'N'.
L'option IDT 77201 (NICStAR) (ForeRunnerLE) active la gestion des cartes ATM bases sur le
chipset NICStAR 77201. Les options qui suivent permettent de configurer ce gestionnaire de
priphriques. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 512

L'option IDT 77252 (NICStAR II) active la gestion des cartes ATM bases sur le chipset
NICStAR 77252. Les options qui suivent permettent de configurer ce gestionnaire de priphriques.
La rponse recommande est 'N'.
L'option Madge Ambassador (Collage PCI 155 Server) active la gestion des cartes ATM bases
sur le chipset ATMizer. L'option qui suit permet d'activer les informations de dbogage de ce
gestionnaire de priphriques. La rponse recommande est 'N'.
L'option Madge Horizon [Ultra] (Collage PCI 25 and Collage PCI 155 Client) active la gestion des
cartes ATM bases sur le chipset Horizon. L'option qui suit permet d'activer les informations de
dbogage de ce gestionnaire de priphriques. La rponse recommande est 'N'.
L'option Interphase ATM PCI x575/x525/x531 active la gestion des cartes ATM ChipSAR
d'Interphase. L'option qui suit permet d'activer les informations de dbogage de ce gestionnaire de
priphriques. La rponse recommande est 'N'.
L'option FORE Systems 200E-series active la gestion des cartes ATM FORE Systems 200E. Les
options qui suivent permettent de configurer ce gestionnaire de priphriques. La rponse
recommande est 'N'.
L'option FORERunner HE Series active la gestion des cartes ATM ForeRunner HE. Les options
qui suivent permettent de configurer ce gestionnaire de priphriques. La rponse recommande est
'N'.
A.9.16. Menu ISDN subsystem
L'option ISDN support permet d'activer la gestion des interfaces ISDN ( Numris en
France). Si vous disposez d'une telle interface, la rponse recommande est 'M', sinon, c'est 'N'.
A.9.16.1. Ancienne interface ISDN4Linux
Le sous-menu Old ISDN4Linux permet d'activer l'ancienne interface de programmation
ISDN4Linux. Si vous y activez l'option Old ISDN4Linux (obsolete) , vous aurez accs des options
complmentaires permettant de configurer cette interface. La rponse recommande est 'N', car on
utilisera de prfrence la nouvelle interface prsent.
L'option Support synchronous PPP permet d'utiliser une version de PPP qui ne gre pas les
synchronisations dans la communication entre les deux ordinateurs. Cette fonctionnalit n'est en effet
plus ncessaire avec ISDN, puisque c'est un protocole numrique. La rponse recommande est 'Y'.
L'option Use VJ-compression with synchronous PPP permet d'utiliser l'algorithme de Van
Jacobson pour la compression des en-ttes IP dans le protocole PPP synchrone. La rponse
recommande est 'Y'.
L'option Support generic MP (RFC 1717) permet de regrouper plusieurs connexions ISDN avec le
protocole PPP synchrone, et ce afin d'accrotre la bande passante. La rponse recommande est 'N'.
L'option Filtering for synchronous PPP active les fonctionnalits de filtrage des paquets pour les
interfaces IPPP. La rponse recommande est 'N'.
L'option Support BSD compression active la gestion de la compression de donnes avec
l'algorithme BSD. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 513

L'option Support audio via ISDN permet d'activer la gestion des commandes vocales dans
l'mulateur de modem du sous-systme ISDN. La rponse recommande est 'N'.
L'option Support AT-Fax Class 1 and 2 commands permet d'activer la gestion des commandes
vocales des FAX. La rponse recommande est 'N'.
L'option X.25 PLP on top of ISDN permet de prendre en charge le protocole X.25 au dessus
d'ISDN. La rponse recommande est 'N'.
L'option isdnloop support du sous-menu ISDN feature submodules permet d'activer la gestion
d'une interface ISDN virtuelle, afin de tester la configuration sans effectuer d'appel rel. La rponse
recommande est 'N'. L'option Support isdn diversion services quant elle permet d'activer la
gestion de services ISDN supplmentaires. La rponse recommande est galement 'N'.
A.9.16.1.1. Gestionnaires de priphriques ISDN4Linux
Les sous-menus Passive cards et Active cards permettent d'inclure les drivers pour la plupart
des cartes ISDN qui supportent l'ancienne interface de programmation ISDN de Linux. Ces options
sont places dans les sous-menus en fonction de la nature des cartes utilises. Le sous-menu Passive
cards permet d'accder aux drivers pour les cartes ISDN passives, dont les cartes HiSax, AVM,
Sedlbauer et ELSA. Le sous-menu Active cards permet quant lui d'accder aux cartes ISDN
actives, dont les cartes Spellcaster, IBM, Eicon, Auvertech et Hypercope. Le sous-menu Siemens
Gigaset donne accs aux pilotes pour les cartes Siemens Gigaset. Vous devez bien entendu choisir
les options qui correspondent votre matriel.
A.9.16.2. Interface CAPI
La nouvelle interface ISDN pour Linux est base sur le standard CAPI ( Common ISDN Application
Programming Interface ) et peut tre active l'aide de l'option CAPI2.0 support . On prfrera
cette interface l'ancienne, aussi la rponse recommande est-elle 'Y' si l'on dsire utiliser les lignes
ISDN sous Linux.
L'option Verbose reason code reporting (kernel size +=7K) permet d'obtenir des messages dtaills
sur les raisons des dconnexions provoques par le pilote CAPI. La rponse recommande est 'N'.
L'option CAPI trace support permet d'obtenir des messages de trace dtaills sur le fonctionnement
du pilote CAPI. La rponse recommande est 'N'.
L'option CAPI2.0 Middleware support (EXPERIMENTAL) permet d'tendre l'interface CAPI
pour permettre le transfert des connexions tablies via l'interface CAPI vers un terminal classique. La
rponse recommande est 'N'.
L'option CAPI2.0 /dev/capi support permet de donner l'accs l'interface CAPI 2.0 aux
applications par l'intermdiaire d'un fichier spcial de priphrique /dev/capi20. L'utilisation de ce
fichier spcial de priphrique ncessite l'installation d'une bibliothque de fonctions ddie. La
rponse recommande est 'N'.
L'option CAPI2.0 filesystem support permet d'activer le support d'un systme de fichiers virtuel
semblable au systme de fichiers /dev/pts/, dans lequel les terminaux crs par les fonctionnalits
CAPI apparatront. Cette option est ncessaire pour utiliser le dmon pppd avec son module
pppdcapiplugin. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 514

L'option CAPI2.0 capidrv interface support permet d'utiliser les cartes compatibles CAPI avec
l'interface de programmation ISDN classique. La rponse recommande est 'N'.
Les options qui suivent permettent de prendre en charge les cartes AVM et Eicon. La rponse
recommande est 'N'.
A.9.17. Menu Telephony Support
L'option Linux telephony support permet d'activer 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 n'a rien voir avec un
modem, qui fait exactement l'inverse (transfert des donnes informatiques sur un rseau tlphonique
analogique). La rponse recommande est 'N'.
L'option 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'.
L'option 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.9.18. Menu Input device support
Ce menu contient les options permettant de configurer les priphriques d'entre de Linux, dont le
clavier et la souris.
L'option Generic input layer (needed for keyboard, mouse, ...) permet d'activer la prise en charge
des pilotes des priphriques d'entre sous Linux. Cela comprend le clavier et les souris, aussi la
rponse recommande est-elle 'Y'.
L'option Support for memoryless force-feedback devices permet de prendre en charge les
priphriques rtroaction sans mmoire, tels que les joysticks WingMan Force 3D de Logitech ou
FireStorm Dual Power 2 de ThrustMaster. La rponse recommande est 'N'.
L'option Polled input device skeleton permet de prendre en charge les fonctions de scrutation
priodiques des priphriques d'entre auxquelles certains pilotes de priphriques peuvent avoir
recours. Les pilotes du noyau activent automatiquement cette option s'ils en ont besoin, mais dans le
cas contraire ces fonctionnalits ne sont pas obligatoirement prsentes dans le noyau et donc ne sont
pas disposition des pilotes additionnels non intgrs au noyau. La rponse recommande est donc 'Y'
afin de fournir ces fonctionnalits aux pilotes externes ventuels, mme si aucun pilote du noyau n'en
a besoin.
L'option Mouse interface permet d'offrir un accs aux priphriques de type souris aux
applications utilisateur, par l'intermdiaire de fichiers spciaux de priphriques /dev/input/mouseX et
/dev/input/mice. Cette option vous donnera galement accs la sous-option Provide legacy
/dev/psaux device , qui permet de prendre en charge le fichier spcial de priphriqe /dev/psaux
ordinairement utilis pour les souris PS/2. La rponse recommande est 'Y' pour ces deux questions.
Les options Horizontal screen resolution et Vertical screen resolution permettent de dfinir la
rsolution horizontale et verticale de l'cran, afin de permettre l'utilisation d'une 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 l'cran. Si vous disposez d'une telle tablette, vous
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 515

devez entrer ici la rsolution du mode graphique que vous utilisez prioritairement. Dans les autres cas,
les valeurs de ces options ne sont pas utilises.
L'option Joystick interface active la prise en charge des joysticks et permet aux applications d'y
accder au travers des fichiers 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. La rponse
recommande est 'N'.
L'option Touchscreen interface active la prise en charge des priphriques de pointage absolus qui
grent le protocole Touchscreen de Compaq. Cette option vous donnera galement la possibilit de
fixer la rsolution du mode graphique que vous utilisez, pour permettre au gestionnaire de faire la
correspondance entre la position sur le TouchScreen et les pixels de l'cran. La rponse recommande
est 'N.
L'option Event interface support active la gestion des fichiers spciaux /dev/input/eventN (o N est
le numro du priphrique), qui permettent de lire les vnements provenant des priphriques d'entre
de manire gnrique. Ces fichiers peuvent tre utiliss par plusieurs priphriques distincts, et
permettent de connecter plusieurs priphriques d'entre sur la mme machine en les grant de
manire uniforme. La rponse recommande est-elle 'Y'.
L'option Event debugging permet de gnrer des traces sur tous les vnements qui se produisent
au niveau des priphriques d'entre. Ces traces ne sont utiles qu'aux dveloppeurs des gestionnaires
de priphriques d'entre, et peuvent gnrer de grandes quantits d'informations dans les fichiers de
traces. De plus, elles contiendront galement les mots de passe et constituent donc un trou de scurit
important. La rponse recommande est donc 'N'.
Les options qui suivent permettent d'activer des gestionnaires complmentaires pour les priphriques
d'entre. Vous trouverez en particulier les gestionnaires de priphriques pour les souris PS/2 et
srielles, ainsi que les gestionnaires pour les Joysticks et les Touchscreen. Vous devez activer les
options correspondantes votre matriel. Notez galement que la prise en charge des claviers et des
souris USB doit se configurer au niveau du menu USB support et ne peut tre faite ici, mme si les
options prcdentes restent ncessaires.
L'option Miscellaneous devices permet d'accder aux options de configuration de gestionnaires de
priphriques complmentaires, tels que celui permettant de contrler le haut-parleur du PC (option
PC Speaker support ) et celui qui permet de relayer la gestion des priphriques d'entres des
programmes utilisateurs (option User level driver support ). La rponse recommande est 'Y' pour
l'option PC Speaker support , et 'N' pour l'option User level driver support .
A.9.18.1. Sous-menu Hardware I/O ports
Ce sous-menu vous permettra de configurer les ports d'entre/sortie matriel classiques.
L'option Serial I/O support permet de prendre en charge les priphriques d'entre qui utilisent des
communications avec l'ordinateur de type srie. Cela comprend les claviers et les souris, aussi la
rponse recommande est-elle 'Y'.
L'option i8042 PC Keyboard controller permet de prendre en charge les contrleurs de claviers
standards. Si votre clavier n'est pas USB, vous devez activer cette option. La rponse recommande est
'Y'.
L'option Serial port line discipline permet de prendre en charge les priphriques connects sur un
port srie RS232. C'est en particulier le cas de vieilles souris srielles et de joysticks. La rponse
recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 516

L'option ct82c710 Aux port controller permet de prendre en charge les souris connectes au port
QuickPort des portables TravelMate de Texas Instrument. La rponse recommande est 'N'.
L'option Parallel port keyboard adapter permet de prendre en charge les claviers ou souris
connects sur un adaptateur pour port parallle. La rponse recommande est 'N'.
L'option PCI PS/2 keyboard and PS/2 mouse controller permet de prendre en charge les claviers et
les souris PS/2 pour connecteurs PCI externes des stations d'attache des portables. Cette option n'est
pas utile pour les ordinateurs normaux disposant de claviers ou de souris PS/2. La rponse
recommande est 'N.
L'option PS/2 driver library permet d'inclure dans le noyau les fonctions de gestion du port PS/2,
pour qu'elles soient accessibles d'un pilote externe de priphrique PS/2. La rponse recommande est
'Y'.
L'option Raw access to serio ports permet l'accs brut aux priphriques auxiliaires connects sur
les ports PS/2 via des fichiers spciaux de priphriques de numro majeur gal 10. Le premier de
ces fichiers correspond au fichier spcial de priphrique /dev/psaux pour des raisons historiques. La
rponse recommande est 'N'.
L'option Gameport support active la gestion des ports pour Joystick classiques. Cette option vous
donnera accs aux diffrents gestionnaires de priphriques pour ce type de port. La rponse
recommande est 'N'.
A.9.19. Menu Character devices
L'option Virtual terminal permet d'activer la gestion des terminaux virtuels multiples utiliss pour
grer plusieurs terminaux avec le clavier et l'cran local. Ces terminaux sont gnralement accessibles
avec les raccourcis CTRL+Alt+Fn. Ils sont trs souvent utiliss, et il est vivement recommand de
rpondre 'Y' cette option. Si vous le faites, vous pourrez accder l'option Support for console on
virtual terminal , qui permet d'autoriser l'mission des messages de la console du noyau sur les
terminaux virtuels. Encore une fois, cette fonctionnalit est trs souvent utilise, et il est recommand
de rpondre 'Y'. L'option Support for binding and unbinding console drivers permet d'activer le
support de la slection de la console utilise pour les terminaux virtuels, lorsque plusieurs consoles
sont disponibles sur la machine. La rponse recommande est 'N'.
L'option Non-standard serial port support permet d'activer les options correspondantes des ports
srie non standards. Les sous-options de cette option permettent de configurer les gestionnaires de
priphriques correspondants. La rponse recommande est 'N'. Les gestionnaires de priphriques
pour les ports srie standards sont accessibles via le sous-menu Serial drivers , dcrit plus bas.
L'option Unix98 PTY support permet d'activer les pseudo-terminaux compatibles Unix 98. Les
pseudo-terminaux sont des composants logiciels permettant d'muler des terminaux. Il y a deux
composants par pseudo-terminal : la partie matre est le programme qui cherche accder au pseudo-
terminal, et la partie esclave est le programme qui simule le terminal physique. Les composants
matres peuvent ouvrir le pseudo-terminal par l'intermdiaire des fichiers spciaux /dev/ptyxx. Les
composants esclaves doivent ouvrir le fichier spcial /dev/ptmx afin d'obtenir un numro n de pseudo-
terminal utiliser, puis ils ouvrent le fichier /dev/pts/n. Ce dernier fichier spcial est cr la vole par
le noyau, grce un systme de fichiers virtuel. Pour que ce mcanisme fonctionne, il faut donc que le
systme de fichiers /dev/pts/ ait t galement activ dans les options de configuration des systmes de
fichiers, et qu'il soit mont (voir la configuration du fichier /etc/fstab). La rponse recommande est
'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 517

L'option Legacy (BSD) PTY support permet d'activer la gestion des pseudo-terminaux classique
tels qu'ils sont utiliss sur les systmes BSD. Ces pseudo-terminaux sont simplement accds via des
fichiers spciaux de priphriques /dev/ttyxx, raison d'un fichier par pseudo-terminal. Cette
technique est obsolte depuis l'introduction des terminaux Unix98, que l'on peut activer avec l'option
prcdente. Toutefois, certains programmes peuvent ne pas avoir ports et ne pouvoir accder que via
cette ancienne interface. Dans ce cas, cette option devra tre active. Si vous rpondez 'Y' cette
option, vous accderez l'option Maximum number of legacy PTY in use , qui vous permettra de
choisir le nombre de pseudo-terminaux que le systme grera. La valeur par dfaut est 256. La rponse
recommande cette option est 'N'.
L'option Parallel printer support permet d'activer la gestion des imprimantes connectes sur port
parallle. Le fait d'activer cette option n'empche pas d'utiliser le port parallle pour d'autres
priphriques. Il est recommand d'activer cette option sous forme de module parce qu'ainsi, les
fonctionnalits d'impression ne seront charges que lorsque cela sera ncessaire. La rponse
recommande est donc 'M'.
L'option 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 fil de l'eau. La
rponse recommande est 'N'.
L'option Support for user-space parallel port device drivers active la gestion du fichier spcial de
priphrique /dev/parport, au travers duquel les programmes peuvent accder de manire uniforme au
port parallle. Cette fonctionnalit n'est pas ncessaire pour utiliser une imprimante ou des
priphriques ATAPI connects sur port parallle, aussi la rponse recommande est-elle 'N'.
L'option Texas Instruments parallel link cable support permet de prendre en charge les connexions
aux calculatrices Texas Instruments l'aide d'un cble parallle. La rponse recommande est 'N'.
L'option Xen Hypervisor Console support permet de grer la console virtuelle dans les machines
virtuelles Xen. La rponse recommande est 'N'.
L'option Hardware Random Number Generator Core support permet de prendre en charge les
gnrateurs de nombres alatoires matriels fournis sur les cartes mres rcentes. Ces gnrateurs
permettent d'obtenir des nombres alatoires utiliss dans les algorithmes de chiffrement et de scurit.
Cette option vous donnera accs aux pilotes de priphriques pour les diffrents gnrateurs de
nombres alatoires supports par Linux. La rponse recommande est 'Y'.
L'option /dev/nvram support permet d'activer l'accs la mmoire non volatile de l'horloge temps
rel. Cette mmoire peut tre accde par l'intermdiaire du fichier spcial de priphrique
/dev/nvram, de code majeur 10 et de code mineur 144. La rponse recommande est 'Y'.
L'option Enhanced Real Time Clock Support permet d'activer l'accs aux compteurs de l'horloge
temps rel par l'intermdiaire du fichier spcial de priphrique /dev/rtc, de code majeur 10 et de code
mineur 135. Cette option doit tre active si vous disposez d'une machine multiprocesseur. La rponse
recommande est 'Y'.
L'option Generic /dev/rtc emulation permet de simuler l'interface /dev/rtc l'horloge temps rel du
systme pour le cas o vous ne voudriez pas activer l'option prcdente. L'option suivante permet de
complter l'mulation avec la prise en charge d'une opration complmentaire, qui peut tre ncessaire
pour certains programmes. La rponse recommande est 'N'.
L'option Extended RTC operation permet de simuler une horloge temps rel plus volue que celle
simule par dfaut grce l'option prcdente. Certaines programmes peuvent avoir besoin des
fonctionnalits avances fournies par ces horloges. La rponse recommande est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 518

L'option Double Talk PC internal speech card support permet d'activer la gestion du synthtiseur
de voix Double Talk. La rponse recommande est 'N'.
L'option 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'.
L'option Applicom intelligent fieldbus card support active la gestion des cartes Applicom
intelligent fieldbus . La rponse recommande est 'N'.
L'option Sony Vaio Programmable I/O Control Device support permet d'activer la gestion des
contrleurs d'entre / sortie programmables des portables Sony Vaio. La rponse recommande est 'N'.
L'option /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
fichier spcial de priphrique /dev/agpgart, de code majeur 10 et de code mineur 175. Cette
fonctionnalit n'est pas ncessaire pour le bon fonctionnement des cartes graphiques AGP, mais elle
permet d'accrotre les performances des pilotes 3D. Elle est galement indispensable pour permettre
l'accs au registre MTRR du processeur permettant de contrler le bus AGP. La rponse recommande
est 'Y' si vous disposez d'une carte graphique AGP, et 'N' sinon. Les options qui suivent permettent de
slectionner le type de chipset utilis par la carte mre, afin de dterminer la manire dont le port AGP
fonctionne. Si vous avez activ cette fonctionnalit, vous devez choisir l'option correspondant votre
chipset galement.
L'option Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) permet d'activer le
support de l'architecture DRI (abrviation de l'anglais Direct Rendering Infrastructure ) de XFree86
ou de X.org. La version fournie avec le noyau 2.6 ncessite l'utilisation de XFree86 en version 4.1 ou
plus, ou de X.org en version 6.7 ou plus. Vous devrez slectionner le type de carte graphique install
sur le systme l'aide des options suivantes. La rponse recommande est donc gnralement 'N', sauf
si vous disposez d'une des cartes graphiques listes. Dans ce cas, vous devriez certainement utiliser
XFree86 4.4.0 ou X.org 6.7, afin de bnficier des gestionnaires de priphriques les plus rcents.
Notez enfin que certaines cartes graphiques 3D, bien que parfaitement supportes sous Linux,
n'utilisent pas les fonctionnalits DRI du noyau. C'est 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 d'une telle carte graphique.
L'option ACP Modem (Mwave) support permet d'activer 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 d'IBM. La rponse recommande est 'N'.
L'option NatSemi PC8736x GPIO Support permet d'autoriser l'accs depuis l'espace utilisateur aux
ports d'entre/sortie programmables des puces PC-8736x de National Semiconductor. La rponse
recommande est 'N'.
L'option NatSemi PC8736x GPIO Support permet d'inclure un module facilitant l'accs aux ports
d'entre/sortie des puces PC8736X depuis l'espace utilisateur. La rponse recommande est 'N'.
L'option AMD CS5535/CS5536 GPIO (Geode Companion Device) permet d'autoriser l'accs
depuis l'espace utilisateur aux ports d'entre/sortie programmables des puces CS5535 et CS5536
Geode d'AMD. La rponse recommande est 'N'.
L'option RAW driver (/dev/raw/rawN) (OBSOLETE) permet d'accder directement, sans copie de
donnes lors des oprations d'entre/sortie, aux priphriques de type bloc. Cet accs se fait via des
fichiers de priphriques spciaux /dev/raw/ dont les numros de priphriques majeur et de mineurs
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 519

sont identiques ceux du fichier spcial de priphrique de type bloc ainsi manipul. Cette option
permet donc de raliser des entres / sorties de manire extrmement performantes. Comme cette
fonctionnalit n'est utilisable que par des applications particulires (en gnral des grosses bases de
donnes), la rponse recommande est 'N'. De plus, cette option est obsolte, car il est prsent
possible d'accder aux priphriques de manire directe avec les interfaces de programmation
standards du systme.
L'option Maximum number of RAW devices to support (1-8192) permet d'indiquer le nombre
maximum de priphriques bruts pris en charge par le noyau. La rponse recommande est '256'.
L'option HPET - High Precision Event Timer permet d'activer la gestion des timers haute
prcision de Linux. Ces timers seront accessibles via le fichier spcial de priphrique /dev/hpet. Cette
option vous donnera galement accs aux options HPET Control RTC IRQ et Allow mmap of
HPET , qui permettent respectivement de dsactiver la gestion de l'interruption du timer systme par
le timer et de dsactiver la projection en mmoire de ce fichier. Cette dernire option doit tre
dsactive pour certains types de matriel, car ceux-ci exposent trop d'informations l'utilisateur via
cette interface. La rponse recommande est 'N'.
L'option Hangcheck timer permet d'activer un chien de garde permettant de dterminer si le
systme est bloqu depuis un temps trop long et, si tel est le cas, de le redmarrer ou afficher un
message de trace. La rponse recommande est 'N'.
L'option Telecom clock driver for MPBL0010 ATCA SBC permet d'activer une interface
spcifique aux ordinateurs MPBL0010 ATCA permettant d'accder la configuration d'une horloge
pour les tlcommunications. La rponse recommande est 'N'.
A.9.19.1. Sous-menu Serial drivers
L'option 8250/16550 and compatible serial support du sous-menu Serial drivers permet
d'activer la prise en charge des ports srie standards. Vous pouvez vous en passer si vous n'avez ni
modem ni souris srie, et si vous ne dsirez pas utiliser le port srie du tout. Il est recommand de
rpondre 'Y' cette question.
L'option Console on 8250/16550 and compatible serial port permet d'activer la redirection de la
console systme sur un port srie. En gnral, la console est redirige vers le terminal principal, aussi
la rponse recommande cette question est-elle 'N'.
L'option 8250/16550 PCI device support (NEW) permet de prendre en charge les ports srie
connects aux bus PCI. La rponse recommande est 'Y'.
L'option 8250/16550 PNP device support (NEW) permet de prendre en charge les ports srie Plug
and Play des PC standards. La rponse recommande est 'Y'.
L'option 8250/16550 PCMCIA device support permet de prendre en charge les ports srie
connects via un adaptateur PCMCIA. La rponse recommande est 'N'.
L'option Maximum number of non-legacy 8250/16550 serial ports permet d'indiquer le nombre
maximum de ports srie additionnels que Linux doit prendre en charge. La rponse recommande est
'4'.
L'option Number of 8250/16550 serial ports to register at runtime permet d'indiquer le nombre de
ports sries qui seront activs dans le noyau au dmarrage. La rponse recommande est '4'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 520

L'option Extended 8250/16550 serial driver options permet d'activer les options de configuration
tendues pour les ports srie classiques. La rponse recommande est 'N'.
L'option Support more than 4 legacy serial ports permet d'indiquer que l'ordinateur dispose de plus
de quatre ports srie livrs en standard. La rponse recommande est 'N'.
L'option Support for sharing serial interrupts permet d'activer la gestion des interruptions de
plusieurs ports srie d'une mme carte par un seul canal d'interruption. Il faut que la carte srie gre le
partage des interruptions pour pouvoir utiliser cette option. La rponse recommande est 'N'.
L'option Autodetect IRQ on standard ports (unsafe) permet de demander au noyau de tenter une
dtection automatique de la ligne d'interruption utilise par les ports srie. Cette fonctionnalit n'est
pas trs sre et la rponse recommande est 'N'.
L'option Support RSA serial ports n'est pas documente et ne sera pas dcrite ici.
L'option Support 8250-type ports on MCA buses permet de prendre en charge les ports srie sur
les bus MCA. La rponse recommande est 'N'.
L'option Digi International NEO PCI Support permet de prendre en charge les cartes multiport de
la srie NEO de Digi International. La rponse recommande est 'N'.
A.9.19.2. Sous-menu IPMI
L'option 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 configurer les
fonctionnalits de ce driver. La rponse recommande est 'N'.
A.9.19.3. Sous-menu Watchdog cards
L'option Watchdog Timer Support permet d'activer la dtection des blocages systmes grce un
chien de garde. Le chien de garde exige un accs en criture sur le fichier spcial de priphrique
/dev/watchdog, de code majeur 10 et de code mineur 130, au moins une fois par minute. Si cette
condition n'est pas vrifie, la machine est redmarre automatiquement. La gestion de cette
fonctionnalit peut tre ralise matriellement grce une carte spciale, ou logiciellement. La
rponse recommande est 'N'.
L'option Disable watchdog shutdown on close permet de maintenir l'activit du chien de garde
mme si le processus qui le rveille rgulirement ferme le fichier /dev/watchdog. Ce n'est pas le cas si
la rponse 'N' est donne, dans ce cas, le chien de garde ne fonctionnera plus en cas d'arrt du
processus de surveillance. La rponse recommande est 'N'.
L'option Software Watchdog permet d'activer la gestion du chien de garde logiciel. La rponse
recommande est 'N'.
Les options qui suivent permettent de slectionner les gestionnaires de chien de garde pour les
diffrents types de cartes mres disposant d'un chien de garde matriel. Vous devez activer l'option
correspondant votre matriel si vous dsirez utiliser cette fonctionnalit.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 521

A.9.19.4. Sous-menu PCMCIA character device support
Les options de ce menu permettent d'activer la gestion des cartes PCMCIA de type srie, comme les
modems, les ports srie et les cartes rseau intgrant un modem. La rponse recommande ces
options est 'N'.
A.9.19.5. Sous-menu TPM Hardware support
Les options de ce menu permettent d'activer la gestion des puces cryptographiques compatibles avec
les spcifications TCG (ex TCPA). Ces puces ont pour but d'authentifier le matriel et de permettre la
fourniture d'un environnement logiciel authentifi et reconnu par les diteurs de contenu afin de
garantir que les donnes protges par des droits d'auteurs stricts ne pourront pas tre lues en dehors
du cadre impos par l'diteur. Cette technique suppose que les logiciels et les systmes soient ferms,
et ne peut donc pas utiliss sous Linux sans violer la licence GPL. De ce fait, l'accs ces puces est
inutile, et ces puces ne seront gnralement pas utilises pour les tches pour lesquelles elles ont t
introduites. La rponse recommande ces options est donc 'N'.
A.9.20. Sous-menu I2C support
L'option I2C support permet d'activer la gestion du protocole de communication I2C. Ce protocole
de communication est utilis par beaucoup de micro-contrleurs, et peut tre ncessaire pour accder
certaines fonctionnalits. En particulier, les cartes d'acquisition TV bases sur les puces lectroniques
Bt848 ncessitent cette fonctionnalit pour tre utilisables. Les capteurs matriels permettant de
dterminer l'tat du systme utilisent galement cette interface. La rponse recommande est 'N'.
L'option I2C device interface active la gestion des fichiers spciaux de priphriques /dev/i2c-*.
La rponse recommande est 'N'.
L'option I2C bit-banging interfaces active la gestion des adaptateurs bit-banging . Cette option
est ncessaire pour faire fonctionner les cartes d'acquisition TV bases sur les puces lectroniques
Bt848. La rponse recommande est 'N', sauf si vous disposez d'une telle carte. Les options suivantes
activent la gestion des priphriques utilisant cette interface. Il n'est pas ncessaire de les activer pour
faire fonctionner les cartes d'acquisition TV base de Bt848. La rponse recommande pour ces
options est 'N'.
L'option I2C PCF 8584 interfaces active la gestion des adaptateurs PCF. Les options suivantes
permettent d'activer les priphriques utilisant cette interface. Les rponses recommandes ces
questions sont 'N'.
L'option I2C PCA 9564 interfaces active la gestion des adaptateurs PCA. Les options suivantes
permettent d'activer les priphriques utilisant cette interface. Les rponses recommandes ces
questions sont 'N'.
Les sous-menus I2C Hardware Bus support et Miscellaneous I2C Chip support permettent de
prendre en charge les divers capteurs I2C prsents sur les systmes modernes. Vous devez activer les
options correspondantes votre matriel si vous dsirez utiliser cette fonctionnalit.
Les options I2C Core debugging messages , I2C Algorithm debugging messages , I2C Bus
debugging messages et I2C Chip debugging messages permettent d'activer la gnration de
messages de traces complmentaires relatives aux fonctionnalits I2C. La rponse recommande pour
ces questions est 'N'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 522

A.9.21. Sous-menu SPI support
L'option SPI support active la prise du protocole de communication synchrone SPI, couramment
utilis pour accder des capteurs et des mmoires programmable et flash. Les options fournies
permettent d'activer les diffrents types de puces ainsi accessibles. La rponse recommande est 'N'.
A.9.22. Sous-menu Dallas's 1-wire bus
L'option Dallas's 1-wire support active la prise en charge de priphriques une broche
relativement lents tels que des capteurs de tempratures. Les options fournies permettent d'activer les
diffrents types de priphriques. La rponse recommande est 'N'.
A.9.23. Sous-menu Power supply class support
L'option Power supply class support active la prise en charge de la surveillance des sources
d'nergie (batteries, alimentation, ports USB, etc.). Notez que ce pilote n'est gnralement pas
ncessaire pour obtenir les informations sur les batteries des ordinateurs portables, pour lesquelles
l'ACPI est utilis. Il s'agit ici de prendre en charge les batteries des priphriques spcifiques tels que
les PDA par exemple. Si vous activez cette option, vous pourrez accder aux options des pilotes de
priphriques grant les diffrentes sources d'nergie. La rponse recommande est 'N'.
L'option Power supply debug (NEW) permet d'activer les traces de dboguage du sous-systme de
gestion des sources d'nergie. La rponse recommande est 'N'.
A.9.24. Sous-menu Hardware Monitoring support
L'option Hardware Monitoring support active la prise en charge de la surveillance du bon
fonctionnement du matriel de l'ordinateur. La plupart des ordinateurs disposent prsent de capteurs
pour mesurer la temprature, les tensions, la vitesse des ventilateurs, etc. Cette option vous donnera
la liste des pilotes pour les diffrentes cartes mres. Notez que l'accs ces pilotes ncessite galement
que l'option I2C support soit active. La rponse recommande est 'N'.
L'option Hardware Monitoring Chip debugging messages permet d'activer les traces de dboguage
du sous-systme I2C pour les pilotes de surveillance du matriel. La rponse recommande est 'N'.
A.9.25. Sous-menu Multifunction device drivers
Ce menu donne accs aux options permettant d'activer la prise en charge de diffrents priphriques
multifonctions. Ces priphriques fournissent des fonctionnalits diverses telles qu'un adaptateur USB
pour priphrique USB, des ports srie asynchrones, des fonctionnalits audio ou vido. La rponse
recommande est 'N'.
A.9.26. Menu Multimedia devices
L'option Video For Linux permet d'activer les options de gestion de la vido et de radio sous
Linux. Il faut activer cette option pour accder aux sous-menus suivants, qui permettent de choisir les
pilotes adapts au type de matriel vido install et les options de configuration pour certains de ces
pilotes. La rponse recommande est 'N'. Si vous activez cette option, vous aurez la possibilit
d'activer l'interface de programmation Video For Linux version 1 avec l'option Enable Video For
Linux API 1 (DEPRECATED) ou, dfaut, une couche de compatibilit pour les pilotes de
priphriques qui l'utilisent encore, via l'option Enable Video For Linux API 1 compatible Layer .
Comme de nombreux priphriques utilisent encore cette version de l'interface Video For Linux, la
rponse recommande est 'Y'.
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 523

L'option DVB For Linux permet d'activer les options des gestionnaires de priphriques des
adaptateurs TNT sous Linux. Vous devez activer le pilote correspondant votre matriel. La rponse
recommande ces questions est 'N'.
L'option DAB driver permet de prendre en charge les rcepteurs audio digitaux. La rponse
recommande est 'N'.
A.9.26.1. Sous-menu Video Capture Adapters
Les options de ce menu permettent de choisir les pilotes pour les diffrents types de cartes
d'acquisition vido. Vous devez activer la fonctionnalit correspondant au matriel dont vous disposez.
En gnral, il est recommand d'utiliser les pilotes sous forme de modules, car certains d'entre 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. C'est en particulier le cas pour les cartes vido bases sur la puce lectronique Bt848 et
les puces qui en sont drives.
A.9.26.2. Sous-menu Radio Adapters
Les options proposes par ce menu vous permettront d'activer les pilotes pour les diffrentes cartes
radio supportes par Linux. Vous devez activer le pilote correspondant votre matriel, et
ventuellement spcifier les paramtres matriels de cette carte. La rponse recommande ces
questions est 'N'.
A.9.27. Menu Graphics support
L'option Lowlevel video output switch controls permet de prendre en charge le pilote bas niveau
de gestion des sorties vido. La rponse recommande est 'N'.
L'option Support for frame buffer devices permet d'activer le support des cartes graphiques par
l'intermdiaire d'une interface unifie et d'une zone mmoire nomme frame buffer , accessible via
les fichiers spciaux /dev/fb*. Cette interface permet aux programmes d'accder aux fonctionnalits
des cartes graphiques de manire portable. Le support de cette fonctionnalit n'est en gnral pas
ncessaire pour les PCs, puisque beaucoup de serveurs X ont t dvelopps 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 d'une carte graphique exotique, il peut tre utile d'activer
cette fonctionnalit et d'utiliser un serveur X bas sur cette interface. Les options qui suivent
permettent d'inclure 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'.
L'option Enable firmware EDID permet d'accder l'identifiant de priphrique EDID remont par
le firmware pour l'cran. Dans le cas des PC, cet identifiant est remont par le BIOS. Cette option peut
tre utile si un pilote framebuffer ne parvient pas obtenir cet identifiant en interrogeant l'cran. Cette
option n'est pas ncessaire pour l'utilisation de l'environnement graphique X11, donc la rponse
recommande est 'N'.
Le sous-menu Console display driver support permet de choisir les gestionnaires de priphriques
pour la console de Linux, c'est--dire l'affichage en mode texte. Sur les PCs, le gestionnaire le plus
efficace et le plus performant est celui utilis pour grer les cartes VGA, aussi est-il systmatiquement
slectionn. Il donne accs l'option Enable Scrollback Buffer in System RAM , qui permet de
mmoriser les pages texte en mmoire vive et non dans la mmoire de la carte graphique, et donc
d'avoir une mmoire plus importante pour faire un dfilement arrire en mode console. L'option
Video mode selection support , quant elle permet de choisir le mode texte utiliser au dmarrage
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 524

de Linux. Ce mode peut tre indiqu grce un paramtre pass au noyau lors du dmarrage. La
rponse recommande pour ces deux options est 'Y'.
Il existe galement un gestionnaire pour les cartes graphiques MDA (ce sont des cartes extrmement
vieilles), qui peut tre activ l'aide de l'option MDA text console (dual-headed)
(EXPERIMENTAL) . Ce gestionnaire permet galement de disposer d'un second affichage en mode
texte, si l'on installe la carte MDA en parallle de la carte VGA du PC. Cette option ne doit tre
choisie que si la carte MDA n'est pas la carte d'affichage principale. La rponse recommande est 'N'.
Le sous-menu Backlight & LCD device support permet de configurer les pilotes de contrle de la
lumire de rtroclairage des crans LCD de certaines machines, telles que les PDA. Les sous-
options de ce menu permettent de slectionner les fonctionnalits prise en charge par ces pilotes. La
rponse recommande est 'N'.
Le sous-menu Display device support permet de configurer les pilotes de contrle de la puissance
des priphriques d'affichage de certaines plateformes. La rponse recommande est 'N'.
Le sous-menu Console display driver support permet galement d'utiliser le gestionnaire de
priphrique du frame buffer pour la console, si l'option Support for frame buffer devices a t
active. Pour cela, il suffit d'activer l'option Framebuffer Console support . Cette option donnera la
possibilit d'inclure une police de caractres graphique pour la console, l'aide de l'option Select
compiled-in fonts . Encore une fois, ces options ne sont pas ncessaires pour grer correctement la
console sur les ordinateurs de type PC.
Le sous-menu Bootup logo permet d'utiliser un logo reprsentant Tux au dmarrage, si la
fonctionnalit de frame buffer a t active. Pour cela, il faut activer l'option Bootup logo et choisir
un des logos proposs parmi les options suivantes. Cette fonctionnalit tant absolument indispensable
pour la bonne marche de votre systme et la scurit de vos donnes, vous devez imprativement
l'activer et admirer le magnifique Tux !
A.9.28. Menu Sound
L'option Sound card support permet d'activer la gestion des cartes son. Si vous ne disposez pas de
carte son, choisissez la rponse 'N', sinon, activez cette fonctionnalit. Elle vous permettra de choisir
parmi les deux jeux de drivers pour les cartes son dont dispose Linux actuellement. Les pilotes les plus
performants sont sans aucun doute les drivers ALSA ( Advanced Linux Sound Architecture , mais
vous aurez peut-tre utiliser les drivers OSS ( Open Sound System ) pour certaines cartes son.
Les drivers ALSA seront choisis de prfrence en activant l'option Advanced Linux Sound
Architecture . Cependant, l'interface de programmation des drivers OSS tant trs utilise, on veillera
activer les options de compatibilit OSS Mixer API , OSS PCM (digital audio) API , et OSS
Sequencer API .
L'option Sequencer support permet de prendre en charge le squenceur ALSA pour la gestion des
fichiers MIDI. Elle vous permettra d'accder l'option Sequencer dummy client , qui permet de
grer un simple client transfrant les vnements MIDI d'une entre vers une sortie. La rponse
recommande est 'Y' pour ces deux questions.
L'option RTC Timer support permet de faire en sorte que les gestionnaires de carte son ALSA
utilise l'horloge matrielle de l'ordinateur pour les oprations de squencement demandant une grande
prcision. Il est recommand d'activer cette fonctionnalit, ainsi que sa sous-option Use RTC as
default sequencer timer .
DOCUMENT SUR LINUX

CREE PAR DOLLARSOFT Page 525

L'option Dynamic device file minor numbers permet de faire en sorte que les numros de
priphriques mineurs des fichiers de priphriques des cartes son sont allous dynamiquement. Cela
permet d'avoir plus de huit cartes son connectes, mais requiert l'utilisation du gestionnaire de
priphriques en mode utilisateur udev. La rponse recommande est 'N'.
L'option Support old ALSA API permet de prendre en charge l'ancienne interface de
programmation d'ALSA (interface utilise jusqu' la version 0.9.0 rc3 comprise). Cette interface peut
encore tre utilise par certains programmes, aussi la rponse recommande est-elle 'Y'.
L'option Verbose procfs contents permet de peupler le systme de fichiers virtuel /proc/ avec des
entres complmentaires permettant d'obtenir des informations sur les priphriques audio. Ces entres
ne sont essentiellement utiles que pour les dveloppeurs du noyau, aussi la rponse recommande est-
elle 'N'.
L'option Verbose printk et les options de dbogage introduites par l'option Debug permettent
de faciliter le diagnostic et le dbogage des gestionnaires ALSA. Il n'est pas ncessaire de les activer
en temps normal, aussi la rponse recommande est-elle 'N'.
L'option Debug permet d'inclure du code de dboguage dans le sous-systme ALSA. Elle vous
donnera accs des sous-options permettant de spcifier la porte des tests effectus par ce code. Ce
code n'est rellement utile que pour les dveloppeurs du noyau, pour dboguer les pilotes de
priphrique ALSA. La rponse recommande est 'N'.
Les options qui suivent permettent de slectionner les gestionnaires de priphriques pour le matriel
install. Ces gestionnaires sont classs par type d'interface (priphriques virtuels ou logiciels, cartes
ISA ou PCI, appareils connects par un port USB ou PCMCIA) dans les sous-menus correspondants.
Vous devez bien entendu activer la prise en charge des gestionnaires de priphriques pour le matriel
disponible dans votre ordinateur. Notez que les priphriques proposs dpendent de la prise en charge
des bus correspondants. En particulier, les priphriques audio USB ne seront accessibles que si vous
activer le support de l'USB dans le menu USB support ainsi que le support des priphriques audio
USB (option USB Audio/MIDI driver ).
L'option Open Sound System (DEPRECATED) permet d'activer la prise en charge des anciens
pilotes OSS. Elle donne accs deux jeux de pilotes, dont les pilotes OSS eux-mmes. Les diffrentes
options proposes permettent de slectionner les gestionnaires de priphriques pour les diffrents
matriels supports.
Notez que le gestionnaire de priphriques pour le mixer intgr des cartes d'acquisition TV bases sur
la puce Bt848 se situe parmi les pilotes OSS (option TV card (bt848) mixer support ). Vous devez
donc l'intgrer sous forme de module si vous disposez d'une telle carte. Il n'est pas ncessaire si vous
utilisez les pilotes ALSA.
A.9.29. Menu HID Devices
L'option Generic HID support permet de prendre en charge les fonctionnalits gnriques de
l'interface homme/machine du noyau, qui sont utilises par les gestionnaires de priphriques
d'entre/sortie USB ou Bluetooth. La rponse recommande est 'Y'.
L'option USB Human Interface Devices (full HID) support permet d'activer la prise en charge des
priphriques d'entre et de saisie tels que les claviers, souris et tablettes de digitalisation. Ce pilote
gre compltement les priphriques d'entre USB, et est incompatible avec les pilotes simplifis pour
le clavier et la souris, que l'on peut activer avec les options USB HIDBP Keyboard (simple boot)
support et USB HIDBP Mouse (simple boot) support du sous-menu USB HID Boot Protocol
drivers . La rponse recommande est 'N'.
DOCUMENT SUR LINUX
ERROR:synaxerror
OEEENINGCOMMAN:--nosringva1--
STACK:
(
cv ~fpgmd2 , Ag1yf2=h headp 6hhea% $hmx~ I1ocadER _Imaxp\> ' prep'gdir U + R = U B } c c p V x Y O O T x Z I U ^ i q b 1 1 > r J i > c K a _ s d h M H \ x E V q n Z e x R =: | K B Z=R } r x % }2 U R s B R (_ Z _ p c x T _ r X f 1 u X h X u 6> q - u B ~ n!0 z h B 0> s ( p [ U $ R# /) ) U e R } Z 3 g 3 3 i > R I I[ p { { g B$q| 0 . w nhQZ. M R W \ b ' r @Yd_^|\[ZYXUTRMLKJIHGECBA@?>=<;:9876543210/.-,+*)(&%$#"!,CXE_C##NM/!#3/Y-,CX+KRX @8Y+!#3/Y-,CXN%!ME%%#Jad(RX!#%!YY-,CX!!%%I%%JadRX!!!%%IRXRX8!8!YRX8!8!YYYY-,CX+KRX 8Y+!#3/Y-,NC 8 <(+%<-,/M-,CX+ 8+!#3/Y-,CXEd_#EdiCd##/!!RX3!!YY-,KQXC#CeY-, KQX C#CY-, #p>#pE:-,+%E%E_@%#!!!-,+%E%E_%#!!!-,+!!!-,+!!!-,KQXCCeY-,i@a,b+d#da\XaY-, %EhTKRZX%E%Eh%#%#%Eh#%Eh%#Y-,%Eh#%Edhe%#-,CX!CXE+#zEi#QX+#z!zYYY-,E#Eh-,E_B-,/-,CX%%Id#Edi@ab_%%aC#!!!!!!Y-,CX%E%Ed_%E_a%E_e%#%#!!E_E_Y-,EUCZXEh#Ei@ab_#a%e%#%#!!!!+Y-,Ed#EdadB-,%%+CX%%%+%C@T%CTZX%E@aY%CT%C@TZX%E@YY!!!!-,%%.#%%+!!-,-,KRXE!!Y-,CX=Y-,KRXE!!Y-,KRX/!!!Y-,KS#KQZX%Eh%Eh%TX!!!%Eh%#!!Y!!!Y-,CX=Y-,C\XE#EE#Eab##pERXaEYh:!!!!!Y-,E%ERKQ[X%Eha%%?#!8!Y-,E%ERX%Eha%%?#!8!Y-, KQX CCY-,-,CX!ERX88YY-,UXc%Ed%EdaSX@aY%EiSXE!!Y!%E%Ead(QXE!!YY-,!!d#d@ b-,!QXd#d b @/+Y-,!QXd#dUb /+Y-,d#d@ b#!-,KSX%%Id#Edi@ab_%%a#!!!#9/Y-,%%IdTX88!!Y-,CXY-,CXY-,+#<+-,%8(+##+CX<Y-,H+-,%#<-,%I8-,KS#KQZXE!!Y-,KSX%%Id%%Idh@ab_%%a#!%#%%#9/Y!!-,CX%E#Eda!%%JY###-,CXEQXEhUX!!!!YEhUXKRXE!Y!!!YY!Y-,%Eha%%?#!8-,E#EE#Eab##pERXaYh:-,@*!-,5-,CTXKS#KQZX8!!Y!!!!Y-,I#-,CTXKS#KQZXE!!Y!!!!Y-,CX!0@Y-,KS#KQZXE!!Y-,KTXE!!Y-,KS#KQZX8!!Y-,KTX8!!Y-,CTXE+!!!!Y-,CTXG+!!!Y-,CTXH+!!!!Y-,CTXI+!!!Y-,KRX}zY-,B#Q@SZXTXCBY$QX @TXCB$TXCB KKRXCBY@ TXCBY@ cTXCBY@ cTXCBY@ cTX@CBYYYYY-,Eh#KQX#Ed@RX|YhY-,%%#> #>#eB#B#? #?#eB#B-, b#b-,%X Y%%%TX!Y!%\%ZX+Y%J%G%G%Gca%UX%%IcY%X Y%%I%\%ZX+Y%Eca%UXc!Ya#UXc!YY+%\XiY%H#:&X Y&X%/Y#2!!-,%%%%JSX%%%%Y%%%c#%c@ cSX!&&@ ceQX&e&e&&%%.%%.%%YYUX%%%%%%&TX!Y%%%%I#%%%%YQ R#xa%%%%%Iab%%%#8%%%%%%%%%%I%T#y!!!!!!!!!!!!-,#TX@ @ YTX@ @ Y[+-,TX@ @ Y[+-,TX@ @ Y[+-,&&&&[+-,Ei- X,_< = %44K9 Z4 r ywK xyK y w~ yy yK yur u: wy: w y pB/ Z_ M ^wwwwwK xQ 2yyyyyyyyy w w w w~ yy3y@5yyy yK yK yK yQ yr ur ur ur u: w: w: w: w: w: w: w: w: e: en w y y y p p p p pBBB/ Z/ Z/ Z/ Z/ Z/ Z/ Z/ Z/ Z/ Z_ _ _ _ M ^M ^M ^r uQ 2y Ra 0ip ih1 O?_ @9 S! 2 ?, ? Sw S? is I hO Sp ^%' I2 Q R R R R R R R R R RRRiiiii1 ip ihhhhhhhhh????_ @_ 49 #9 S999 9 99 S9 SZ S!2 ?? S, ??, 9x ?w Sw Sw Sw SG? i? i? i? i? i? i? i? i? [? [iO SO SO Sp ^p ^p ^p ^p ^O< O%%5' I' I' I' I' I' I' I' I' I' I2 2 2 2 Q Q Qh S> ia 1|q hi _hhM i ha h; v h h e di3 hi_ h ^9 9GG R||||||||||iiiii _ hhhhhhhhhM iM iM iM i hha 5a ha aa 4a )a a ha hh; v h h h h Bn h d d d diiiiiiiiy i_ h_ h_ h ^ ^ ^ ^ ^9 99 99 9GGGGGGGGGG RRR d hLE 8 |N || KAI A N @ @NS N, |R GE \NV.K G/ $ MO= OOOB O OOO OOOOOYYG ?G G G r I 0G G G G GGG &G G G GG G AG A GG G G G < G E y I m 1 1I I I a \a Ka K i G i GiGiG ./1 d1 d1 d1 ddddd>ZZZZZZB ++ + +_+_+' N" m" mX QyJ y 3yM ^~ y: wyyur ur: we yyb 0BH C 2o ? @ : hq {3 f_3 iX {^ E 7 H^ = d? iB ds iT h h Edh_XE E $E? iT T T d|q h h1 hR hia hv hE e dai h3 h -9 93V [(?|h ha ha 4i33?G ~GIE* yyE y= %yb %X qyy3 y1 $u~ y: we yywB %; h {/_ y_ yB y yo^ yE yy Bw pyyy@ y3 y{ %u yB %V { B: wJ RT / __w %h R _ _R _y %b h _? i_s Ii9{ h_? )h _h _9__ R# _? _V _N 3 hp ^hh9 S9 ! _R _%b __ 4_ 9: iq ; i|U hq hh$h 6|hhh$ e hi h3 hi9 9(Z \ _v * h h2 9L hI h |hh hS 9[ ^hha ha 4; hh$h^ 9( _6 9i GGn }?% n no &dZ |#6 ##n #p6 pn i: C6 ?: Cn a|O6 &=n 3V n1 xO un6 { + 136 < W8 H6 n8 d6 {6 6 o6 6 <6 6 ~6 6 n6 gn ,) ?d H \Z xHn oY Zn n n n n Mn n n n on dB iB ~B cB sB :B B gB |B cB VB fB hB fV V 2B iB ~B cB sB :B B gB |B cB VB fB hB fV V 2B iB ~B cB sB :B B gB |B cB Vn O~~piin |n n |n n rn |n |n Bn |n |n |n |n qT% n\ Tg EA # 3o ?Z [ R ' \B iB ~B cB sB :B B gB |B cB V1 O|Q d|[ ||d||% || ||dW |d| b\ ,S![ f #d #" L|Q d|[ ||d||% || ||dW |d| b\ ,S![ f #d #" LLE 8 |N || KAI A N @ @NS N, |R GE \NV.K G/ $ M||6[ |" L|d| | ||U Zd|W |4 ,\ ,x Uf #8?\R 0 ! [ ^n $S A _> G!R $, |* vr Z| 8 | 6 H Z||6[ |" L|d| | ||U Zd|W |4 ,\ ,x Uf #8?\R 0 ! [ ^n $S A _> G!R $, |* vr Z| 8 | 6 H Zn h) ) 2M 'M 'aM 'M 'M '( R( q( $( :( -( 7( f( Y( ;( ) ) 2M 'M 'aM 'M 'M '( R( q( $( :( -( 7( f( Y( ;( , s o % ; ' e _ # Y I H 5 V ; ; ; ; _ _ # s T 9 O {w g_ Y I: w? i= o dK yv Mu Er " "= i! : w i An U r Z ZZ Z; 1q 11w< T- ZoTKp yB G u n: (yw9 y^ Go >UCy; r UK ; _ Z "V , +. 1L i9 y\ y ((| v 9iI \bVh s Q s R^ s R8 8 8 8 s ssa| sd| sd s s s Q Rds! s! iss fsssy my }Q Z; A |A M s sw6v R s sw6w Q zE b z zc zc z zs szsZ3ZH sZUUsssdds Qs Qs c c c. . sE b s sssss! s! ss1- w z Mn n @Z n M##n R R' uX 9 Z 9 4 6s s cc cc nnI nnn3 np {{ 6 } u nB ~ { { d K |N | RN | R( ( = = n _n | ' '5 5 > | |< m R R RYR 4R 6+ + B Ru z | 6 6 } / | mp p p p + +}_rO N N N % %zTz 'zTzTz %zTz %r4 5 n% +}_111H ? dn T o v o ooJ vo o2oo 11 yo yr o9 c; Q[, % _f K=_o| _V MQ =I XII= XX _Ko X 4OS w %4 S Q@ 9 99 999H9A 9 77i 9i 9< E_i)h u iR \ i i ifp \_ \C nv O i 2( uZ E 7B z .= _ .m ._ ._.. . . .. _. _.)S ( 7R 7e 7a (K Z# SZR ZZ Rsc " Sq #r #ZT (# Z #_ N dr [ .= _ .m ._ ._.. . . .. _. _.)S ( 7R 7e 7a (K Z# SZR ZZ Rsc " Sq #r #ZT (# Z #_ N dr [ @ 999 9q 99 77i 99q E2Z)mn i4 M d ZZ2 sWT \$ c KC n# Zu Z #' _ _s n i w cI ed # .Y ._ m .a (. _.. ..4 _.. _Y S (2E Sw _*_ Uz Z S$ Z U S< #Z ng SSRZx %o R_ ZU U. C Z= U Zu Z+ i% .Y ._ m .a (. _.. ..4 _.. _Y S (2E Sw _*_ Uz Z S$ Z U S< #Z ng SSRZx %o R_ ZU U. C Z= U Zu Z+ i%K99? 99_ N 9| 9_H# 99N 7799E 1 _ih i\i& ie i_ \ \' - niK 2[ u* !N 7 " K99i ? 9N 9| 9# 91 N 77N 99E\ 2Z mi _ i' dZ# Z s g\! Kn| # ZZ#_A8 f _n i? c e ## %n ZRw L d5 .%^ % r ' & K JE K# @ KN [ u %4 Z' N ) i . % m R KJp K: U #X 67 | h " c b[ K n "U + <0 9a >I }K Br- <( <p &# 5& d Go 25 5 2 s ,nR4 nr n2, 4+ +) 9J =R& nY 6z I *2T +=yG xyysc y? yy uw q1 BZb ; q E R( 0( i8 ihOK[ ?S& ?? Sh Si; J( hS^Z %[ IK Rw <| 9 d< dy Kb d \ ' ( * m < &X < &A dE2\ 553 < f sW 7: nE Rn b nX 8(? @ XZ nv 2 ( I 8 # v/ y: I IX s : y_ : yT(z | A O KKh w mh mm 9E< m < G mh h mH O < E Y '2 6 ' ' 'RV (q E EY K [ 7u KT TW T Y z C ({ A@nL @d @ nN @| @E @N A1 @@X n JX n @!* xY ) Kv @d ddC< @Y @Z @| @m @< @[ d r d_ @H+ }< vsp xq q[ @n @ @, n @ @ @A@@ n8 J n3 @U c !xx Z K@dA d| dC@ @@@@@ d d @|_ }vu sx$ n T oo- 2 o _o y ooJ 11r yoo y0; Q , E- B_ f_h vT& 5 d _? id! daRo d d i5 d nwr:fc[ ,r ):H} cnC H- oZn n n 1n in Qn n n 'n gn [y[1s | ' f (! I' N N uu 7 , 4+ ST TY @ @BM4 n <X5 m[ Q i m'''f f " r r { -1 | 2 G rn 0 %& ! p' gG' gx W W' UUi '' a ' x! : a) 6a )+! i \ G p 1 <2 Gf & IU> _ | h 0 ~ 0 O q _ |~= 77 @d 'L m B BBB; B B B B@@, BB B1 ) B7 X\\% W H { )2 ) - < )12 %2< !< B Bb B6 %T BQ J BB7 i @^ @ 9Br B , BB @1 1v )S } O ~< r) , OU i H 1& M6 z %vXV %} |~& !8 | 1' U } ' ' 'v v 2"q R , = y I { I HH 6199$ } }_ \a 1 & {'d ' "ii 4 o _ ! E v Kg @M ;@~" Y$ }I , $ y w I b { A HH U 9\g s ; )" e W , R 6s .$ 4 $1 E n $H pnp a &R$ '_ _ KR | KKK Kv KW e KK K K4 K4 KC BZ ZC 0ZBg % K s \ $ 9 9v B% 91 1.@!+~ !K~ KKB K4 v Ke K K KU4 K K4 ~ B RC 0S E R N 9' + = 1 W ,1!1R 1 43 = " q q q q 4%O O # 4# Z B 2 E 1}_i 2o 2z 22_K, K* n<<, <* E1 _ --1 -_ -AAAA? ---? -}}}\ }_55\ 51 _ --1 -_ -_ _ --1 -_ - 1 _ +--1 -_ - N N N N % - % #R ##$ ##' " "q "" "" i iE in ii iC iw i i@ io iE ii iC ir i i@ ii ini iE ii iE i 1 ii1 iZ i? s ! q m ? s ? q m ! o ! o ! p ! p ! p ! p } }}_ __W _W _ _ _C sW ; f ZZZs so so so so so so so so so so so s| s| sszH s| sszZZ Z ZssssX s sRR s sX sX sX s s s s sssss 4 4 4 4 < < < < sssssC xC xw mw }w }w m> K> }}} z z z s s s^ sd s sQQ sw6 sv Rsw w sw Qw Q s w w s w Qw Q z R z R z z z z z z z z R R z s s s s s sX s |^ sss s s R R. c , c m m << <<I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?w I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ? I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?I ?T ? +# # 2 Z2 Z? w | ^p | | @i m + Z 9 9dn n B 9d%! ! 7 7 4 7 7 ? Z Z . p ii1 iZ iL 7{ <L 7{ <m # m # X A sA s ss z z p ^ R R &_< +B-d ad >B-eA A - ' E----![---- - - -& & - N
)
-mar'-
/sfns

You might also like