466
Guide d’installation et de configuration de Linux Christian Casteyde

(Ebook - French) Guide D'Installation Et Configuration Linux - 2007 - 541 Pages [Linux] [français][french][informatique][mandriva][ubuntu][debian][su

Embed Size (px)

Citation preview

  • Guide dinstallation et deconfiguration de Linux

    Christian Casteyde

  • Guide dinstallation et de configuration de Linuxpar Christian Casteyde

    Copyright 2003 Christian Casteyde

    Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with noBack-Cover Texts.A copy of the license is included in the section entitled "GNU Free Documentation License".

    Permission vous est donne de copier, distribuer et 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 lannexe intitule "Licence de Documentation Libre GNU".

    Historique des versionsVersion 2.4.1 14/06/2003 Revu par : CCCorrections orthographiques. Mise jour pour le noyau 2.4.21 et la glibc 2.3.2. Mise jour pour gcc 3.2.3 et binutils 2.14. Mise jour pour XFree86 4.3.0. Mise jour pour KDE 3.1.2 et Qt 3.1.2. Mise jour pour Gnome 2.2.1. Corrections et complments sur la gestion des modules. Mise jour pour le support des polices TrueType pour XFree86 4.3.0.Version 2.4.0 30/11/2002 Revu par : CCCorrections orthographiques. Mise jour pour le noyau 2.4.20, glibc 2.3.1, binutils 2.13.1, gcc 3.2.1, XFree86 4.2.1, Qt 3.0.6, KDE 3.0.5. Suppression de la configuration des polices TrueType pour StarOffice (OpenOffice sait prsent grer les polices TrueType lui-mme). Mise jour pour quelques autres composants systme. Dplacement de la description des options de configuration du noyau de Linux en annexe. Ajout des figures. Description du super-dmon xinetd. Ajout de la compilation de Gnome 2.0.2.Version 2.2.1 26/01/2002 Revu par : CCMise jour pour XFree86 4.2.0 et la Glibc 2.2.5. Mise jour pour LessTiff 0.93.18.Version 2.2.0 13/01/2002 Revu par : CCMises jour diverses (noyau 2.4.17, Binutils 2.11.2, Glibc 2.2.4, Mesa 4.0.1, KDE 2.2.2, Qt 2.3.1, Samba 2.2.2). Description de la compilation de LessTif 0.93.15. Suppression du support des noyaux 2.2.x. Ajout dun bref historique de Linux et dUnix. Prcisions sur les logiciels libres et la licence GPL. Rcriture du paragraphe traitant du partitionnement. Utilisation de parted pour le redimensionnement des partitions FAT. Description du systme de fichiers journalis EXT3. Description de la manire de raliser un multiboot avec NT/2000/XP et restructuration de la section traitant de LILO. Ajout de la description du GRUB. Division du chapitre de configuration en un chapitre dadministration et un chapitre de configuration du matriel. Rorganisation du chapitre de configuration du matriel. Rorganisation de lordre des chapitres, pour dcrire la compilation du noyau avant la configuration du matriel. Ajout de la section traitant de la gestion des utilisateurs et de la scurit dans le chapitre dadministration. Ajout de la configuration des priphriques SCSI, des cartes rseau, des ports parallles et srie et des cartes IEEE1394 (FireWire) dans le chapitre de configuration. Ajout dune section traitant de OpenSSH dans le chapitre traitant du rseau.Version 2.0.2 28/04/2001 Revu par : CCCorrections orthographiques. Configuration du protocole DHCP. Complments sur la configuration de base du systme. Mise jour du systme de fichiers /dev/shm. Mise jour pour le noyau 2.4.4.Version 2.0.1 04/04/2001 Revu par : CCAjout dune traduction de la FDL en franais. Corrections diverses. Mise jour pour le noyau 2.4.3. Mise jour pour la Glibc 2.2.2. Mise jour pour GCC 2.93.3. Mise jour pour XFree86 4.0.3. Mise jour pour Qt 2.3.0. Mise jour pour KDE 2.1.1. Installation de Java avec support SSL dans KDE 2.1.1. Ajout dun paragraphe pour la compilation de MESA et complments pour les cartes graphiques 3D. Suppression des symboles :, , et qui ne passaient ni en HTML, ni en RTF (les symboles : et -- ne sont plus formats correctement dans le format Adobe Acrobat, mais les autres formats sont prsent corrects).Version 2.0.0 07/01/2001 Revu par : CCMise jour pour le noyau 2.4.0. Mise jour pour la Glibc 2.2. Mise jour pour XFree86 4.0.2. Compilation des binutils. Compilation de OpenSSL. Mise jour pour Qt 2.2.3. Mise jour pour KDE 2.1. Restructuration complte du chapitre de configuration. Description du systme de fichier virtuel /dev/. Prise en compte du Plug and Play. Configuration des cartes dacquisition vido. Prise en compte des priphriques USB. Cration dun chapitre spcifique pour la configuration du rseau. Mise jour du paragraphe traitant des partages de connexion Internet pour lutilisation diptables.Version 1.0.32 02/11/2000 Revu par : CCPassage au format de fichier SGML. Ajout des liens hypertextes. Gestion des connexions la demande sur les liaisons PPP. Configuration des liaisons entrantes et des serveurs PPP. Installation dun proxy cache. Complments et corrections diverses sur le shell et sur les pipes. Description des commandes xargs et tee. Mise jour pour Samba 2.0.7. Mise jour pour KDE 2.0.Version 0.31 09/09/2000 Revu par : CCMise jour pour le noyau 2.2.17.Version 0.30 09/07/2000 Revu par : CCChangement du titre du document vers un titre plus gnrique permettant de traiter des sujets plus larges que ce que le titre originel ne permettait. Passage en licence FDL. Ajout de la table des matires.Version 0.29 10/06/2000 Revu par : CCMise jour pour le noyau 2.2.16. Corrections et modifications mineures.Version 0.28 03/06/2000 Revu par : CCMise jour pour le noyau 2.2.15. Mise jour pour make 3.79.Version 0.27 01/05/2000 Revu par : CCCorrections orthographiques diverses.Version 0.26 22/04/2000 Revu par : CCCorrection sur le bit sticky. Corrections mineures sur lditeur vi. Description des variables denvironnement. Achvement du paragraphe traitant de la configuration des rseaux locaux. Configuration dun partage de connexion Internet. Configuration de NFS. Configuration de Samba et description de la compilation de Samba 2.0.6. Rorganisation du chapitre de configuration du systme de base (description des fichiers spciaux de priphriques, clarification de la notion de modules, ajout de la configuration du port parallle, de lhorloge, des terminaux virtuels et de la console). Complment sur le fonctionnement de XWindow. Ajout de la description des display de XWindow. Configuration de xdm et des terminaux X. Configuration du clavier de XWindow. Gestion des mcanismes de scurit de XWindow. Complments sur les lignes de modes de XFree86. Correction sur lutilisation de xvidtune. Description des ressources X. Mise jour pour la bibliothque C GNU 2.1.3. Prise en compte des localedata dans la compilation de la bibliothque C. Refonte du paragraphe traitant de limpression. Description du fichier de configuration /etc/printcap.Version 0.25 16/02/2000 Revu par : CCRelease partielle. Mise jour pour le noyau 2.2.14 et XFree86 3.3.6. Ajout pour la compilation de ttmkfdir. Corrections sur la compilation de GCC et des principaux composants du systme. Corrections sur lorganisation standard du systme de fichiers Linux. Ajout sur loption read-only du fichier de configuration de Lilo. Ajout dun second exemple sur les redirections. Refonte du paragraphe traitant de la configuration du rseau (prise en compte des rseaux locaux).Version 0.24 29/01/2000 Revu par : CCModification et mise jour de la licence. Mise jour pour make 3.78.1. et la bibliothque crypt 2.1.2. Ajout du paragraphe sur la configuration des cartes son. Prcisions sur les modems logiciels. Description de lutilisation du serveur XWindow pour le pilote de frame buffer du noyau.Version 0.23 03/11/1999 Revu par : CCMise jour pour gcc 2.95.2.Version 0.22 01/11/1999 Revu par : CCAjout de lhistorique des modifications. Ajout de la licence. Description des protocoles PAP et CHAP. Mise jour pour le noyau 2.2.13. Description des Modelines de X11. Ajout de lannexe sur la compilation de la bibliothque C, de XFree86 et de KDE. Autres ajouts mineurs et corrections. Corrections orthographiques.Version 0.21 08/10/1999 Revu par : CCCorrections orthographiques.Version 0.20 14/07/1999 Revu par : CC

  • Premire version publique.

  • Table des matiresRemarques de lauteur ........................................................................................................................ i1. Introduction..................................................................................................................................... 12. GNU, Linux et les logiciels libres................................................................................................... 53. Concepts de base ............................................................................................................................. 9

    3.1. Architecture du systme....................................................................................................... 93.2. Scurit et utilisateurs ........................................................................................................ 113.3. Fonctionnalits des systmes de fichiers............................................................................ 153.4. Structure du systme de fichiers......................................................................................... 19

    4. Installation du systme de base ................................................................................................... 274.1. Rcupration des informations sur le matriel................................................................... 274.2. Sauvegarde des donnes..................................................................................................... 284.3. Amorage ........................................................................................................................... 294.4. Partitionnement du disque.................................................................................................. 30

    4.4.1. Notion de partition et damorage du systme ...................................................... 304.4.2. Plan de partitionnement......................................................................................... 324.4.3. Trouver de la place pour installer le systme ........................................................ 35

    4.4.3.1. Utilisation de parted.................................................................................. 364.4.3.2. Utilisation de fips ...................................................................................... 38

    4.4.4. Utilisation de fdisk ................................................................................................ 394.5. Cration des systmes de fichiers....................................................................................... 404.6. Cration de la partition de swap......................................................................................... 434.7. Installation des composants de base................................................................................... 444.8. Amorage du systme et configuration multiboot ............................................................. 45

    4.8.1. Ralisation dun multiboot avec LILO.................................................................. 464.8.2. Ralisation dun multiboot avec le GRUB ............................................................ 504.8.3. Ralisation dun multiboot avec NTLDR.............................................................. 53

    5. Commandes Unix de base ............................................................................................................ 555.1. Login et dconnexion......................................................................................................... 555.2. Arrt et redmarrage du systme ....................................................................................... 565.3. Pages de manuel................................................................................................................. 575.4. Oprations de base sur les rpertoires................................................................................ 595.5. Notions de chemins sous Unix........................................................................................... 605.6. Oprations de base sur les fichiers ..................................................................................... 625.7. Autres commandes utiles ................................................................................................... 64

    5.7.1. Passage en mode superviseur ................................................................................ 645.7.2. Changement des droits des fichiers, du propritaire et du groupe......................... 645.7.3. Gestion des liens.................................................................................................... 655.7.4. Montage et dmontage dun systme de fichiers................................................... 665.7.5. Recherche de fichiers............................................................................................. 685.7.6. Recherche dun texte dans un fichier..................................................................... 685.7.7. Remplacement de texte dans les fichiers ............................................................... 685.7.8. Compression et dcompression des fichiers .......................................................... 695.7.9. Archivage de fichiers ............................................................................................. 705.7.10. Gestion des paquetages........................................................................................ 71

    5.8. vi, lditeur de fichiers de base........................................................................................... 725.9. Utilisation du shell bash..................................................................................................... 74

    5.9.1. Contrle des processus .......................................................................................... 755.9.1.1. Lancement dun programme en arrire-plan............................................. 75

    v

  • 5.9.1.2. Listing des processus ................................................................................ 765.9.1.3. Notion de signal ........................................................................................ 765.9.1.4. Arrt dun processus ................................................................................. 775.9.1.5. Gel dun processus.................................................................................... 775.9.1.6. Relancement dun processus..................................................................... 78

    5.9.2. Redirections........................................................................................................... 785.9.2.1. Principe de base ........................................................................................ 785.9.2.2. Redirections de donnes en entre............................................................ 795.9.2.3. Redirection de donnes en sortie .............................................................. 795.9.2.4. Insertion de documents ............................................................................. 81

    5.9.3. Les tubes................................................................................................................ 825.9.3.1. Syntaxe des tubes...................................................................................... 825.9.3.2. Les tubes nomms..................................................................................... 845.9.3.3. La commande tee ...................................................................................... 855.9.3.4. La commande xargs .................................................................................. 85

    5.9.4. Manipulation des variables denvironnement........................................................ 865.9.5. Caractre dchappement et chanes de caractres................................................ 905.9.6. Les substitutions .................................................................................................... 92

    5.9.6.1. Gnration de chanes de caractres selon un motif ................................. 925.9.6.2. Substitution du nom dutilisateur.............................................................. 925.9.6.3. Remplacements de variables..................................................................... 935.9.6.4. Substitution du rsultat dune commande................................................. 955.9.6.5. valuation dexpressions arithmtiques.................................................... 955.9.6.6. Substitution de commandes ...................................................................... 965.9.6.7. Dcoupage en mots ................................................................................... 975.9.6.8. Remplacement des caractres gnriques................................................. 97

    5.9.7. Les expressions rationnelles .................................................................................. 985.9.8. Structures de contrle ............................................................................................ 99

    5.9.8.1. Les instructions composes....................................................................... 995.9.8.2. Les tests................................................................................................... 1005.9.8.3. Le branchement conditionnel.................................................................. 1045.9.8.4. Les boucles.............................................................................................. 1045.9.8.5. Les itrations........................................................................................... 1055.9.8.6. Les ruptures de squence ........................................................................ 1055.9.8.7. Les fonctions........................................................................................... 1065.9.8.8. Les entres / sorties de donnes .............................................................. 107

    5.9.9. Les alias ............................................................................................................... 1085.9.10. Les scripts shell ................................................................................................. 109

    6. Administration du systme de base........................................................................................... 1116.1. Sauvegarde de la configuration dinstallation .................................................................. 1116.2. Mise lheure du systme................................................................................................ 1126.3. Notion de niveau dexcution et amorage du systme ................................................... 1156.4. Maintenance des systmes de fichiers.............................................................................. 117

    6.4.1. Vrification des systmes de fichiers................................................................... 1186.4.2. Configuration du montage des systmes de fichiers............................................ 120

    6.5. Gestion des utilisateurs et de la scurit .......................................................................... 1236.5.1. Mcanismes dauthentification des utilisateurs ................................................... 1236.5.2. Cration et suppression des utilisateurs............................................................... 1266.5.3. Description de la bibliothque PAM ................................................................... 128

    6.6. Configuration des terminaux virtuels ............................................................................... 1306.7. Configuration de la console.............................................................................................. 133

    vi

  • 6.7.1. Pages de codes et Unicode................................................................................... 1336.7.2. Principe de fonctionnement du clavier ................................................................ 1346.7.3. Principe de fonctionnement de lcran de la console .......................................... 1366.7.4. Configuration du clavier ...................................................................................... 139

    6.7.4.1. Dfinition de scancodes .......................................................................... 1396.7.4.2. Dfinition dun plan de clavier ............................................................... 1416.7.4.3. Modification des paramtres du clavier .................................................. 145

    6.7.5. Choix de la police de caractres .......................................................................... 1466.7.6. Configuration des paramtres du terminal........................................................... 1476.7.7. Description des terminaux................................................................................... 1486.7.8. Paramtrage des applications............................................................................... 152

    6.7.8.1. Configuration du clavier pour la bibliothque readline .......................... 1526.7.8.2. Configuration du clavier pour vi ............................................................. 1536.7.8.3. Configuration du clavier pour less .......................................................... 156

    6.7.9. Configuration de la souris.................................................................................... 1586.8. Configuration de limprimante......................................................................................... 158

    6.8.1. Filtres dimpression ............................................................................................. 1596.8.2. Commandes dimpression ................................................................................... 1606.8.3. Configuration des files dimpression ................................................................... 160

    6.9. Configuration du lancement automatique des tches ....................................................... 1627. Notions de compilation et configuration du noyau .................................................................. 165

    7.1. Notions de base ................................................................................................................ 1657.1.1. Dfinition des termes........................................................................................... 1657.1.2. Processus de gnration....................................................................................... 169

    7.2. Compilation de GCC........................................................................................................ 1717.2.1. Prrequis .............................................................................................................. 1727.2.2. Installation des sources........................................................................................ 1727.2.3. Configuration....................................................................................................... 1737.2.4. Compilation ......................................................................................................... 1737.2.5. Installation de GCC ............................................................................................. 174

    7.3. Compilation du noyau Linux ........................................................................................... 1747.3.1. Installation des sources de Linux ........................................................................ 1757.3.2. Choix des options de configuration du noyau ..................................................... 1767.3.3. Compilation et installation du noyau................................................................... 1777.3.4. Compilation et installation des modules.............................................................. 179

    8. Configuration du matriel et des priphriques ...................................................................... 1818.1. Gnralits sur le support matriel sous Linux................................................................ 181

    8.1.1. Notion de fichiers spciaux de priphriques...................................................... 1818.1.2. Modules du noyau ............................................................................................... 183

    8.2. Configuration des priphriques de masse....................................................................... 1888.2.1. Configuration des priphriques SCSI ................................................................ 1888.2.2. Configuration des disques durs IDE.................................................................... 1898.2.3. Installation dun graveur de CD-ROM ................................................................ 192

    8.2.3.1. Notions de base sur le gravage sous Linux ............................................. 1928.2.3.2. Configuration du noyau........................................................................... 1928.2.3.3. Configuration des modules du noyau...................................................... 1948.2.3.4. Installation des logiciels de gravage ....................................................... 1958.2.3.5. Utilisation des logiciels de gravage ........................................................ 195

    8.3. Configuration des cartes filles .......................................................................................... 1988.3.1. Gnralits sur les cartes ISA, Plug And Play et PCI ......................................... 1998.3.2. Configuration des cartes son................................................................................ 202

    vii

  • 8.3.3. Installation dune carte graphique 3D ................................................................. 2058.3.4. Installation dune carte dacquisition vido ........................................................ 2078.3.5. Configuration des cartes rseau ........................................................................... 209

    8.4. Configuration des ports de communication ..................................................................... 2108.4.1. Configuration du port parallle............................................................................ 2108.4.2. Configuration des ports srie ............................................................................... 2118.4.3. Installation des priphriques USB ..................................................................... 212

    8.4.3.1. Configuration du noyau........................................................................... 2138.4.3.2. Dtection automatique des priphriques USB ...................................... 214

    8.4.4. Installation des priphriques IEEE1394 ............................................................ 2158.4.4.1. Configuration du noyau........................................................................... 2168.4.4.2. Installation des bibliothques complmentaires ..................................... 217

    9. Configuration du rseau............................................................................................................. 2199.1. Notions de rseau TCP/IP ................................................................................................ 219

    9.1.1. Gnralits sur les rseaux .................................................................................. 2199.1.2. Le protocole IP .................................................................................................... 2209.1.3. Le protocole TCP ................................................................................................ 2279.1.4. Les protocoles de haut niveau ............................................................................. 229

    9.2. Configuration du rseau sous Linux................................................................................. 2299.2.1. Configuration statique des interfaces rseau ....................................................... 2309.2.2. Dfinition des rgles de routage .......................................................................... 2319.2.3. Dfinition du nom de la machine......................................................................... 2339.2.4. Rsolution des noms de domaine ........................................................................ 2349.2.5. Utilisation des protocoles DHCP et BOOTP....................................................... 235

    9.2.5.1. Autoconfiguration des clients DHCP et BOOTP.................................... 2369.2.5.2. Configuration dun client DHCP au niveau utilisateur ........................... 236

    9.2.6. Dfinition des protocoles de haut niveau............................................................. 2389.2.7. Les super-dmons inetd et xinetd ........................................................................ 239

    9.2.7.1. Le super-dmon inetd ............................................................................. 2399.2.7.2. Le super-dmon xinetd ........................................................................... 240

    9.2.8. Configuration de la scurit du rseau................................................................. 2459.2.8.1. Limitation des services au strict minimum ............................................. 2469.2.8.2. Dfinition de rgles de contrle daccs ................................................. 246

    9.2.8.2.1. Restrictions daccs avec tcpd.................................................... 2469.2.8.2.2. Restrictions daccs avec xinetd................................................. 248

    9.2.8.3. Contrle des utilisateurs au niveau des services ..................................... 2489.2.8.4. Cryptage des connexions ........................................................................ 249

    9.2.8.4.1. Principes de base de cryptographie ............................................ 2519.2.8.4.2. Principes de base de lauthentification SSH............................... 2539.2.8.4.3. Compilation et installation dOpentSSH.................................... 2549.2.8.4.4. Configuration dOpenSSH ct serveur ..................................... 2559.2.8.4.5. Utilisation dOpenSSH ct client ............................................. 2579.2.8.4.6. Cration dun tunnel SSH .......................................................... 259

    9.3. Configuration de la connexion Internet ......................................................................... 2609.3.1. Le protocole PPP ................................................................................................. 2609.3.2. Cration dune connexion Internet ................................................................... 2629.3.3. Utilisation du mail ............................................................................................... 2679.3.4. Les autres outils de connexion............................................................................. 267

    9.4. Firewalls et partages de connexion Internet .................................................................. 2689.4.1. Mcanismes de filtrage du noyau ........................................................................ 2689.4.2. Translations dadresses et masquerading ............................................................ 270

    viii

  • 9.4.3. Trajet des paquets ................................................................................................ 2729.4.4. Configuration du noyau et installation des outils ................................................ 2739.4.5. Utilisation diptables ........................................................................................... 274

    9.4.5.1. Manipulation des chanes........................................................................ 2749.4.5.2. Manipulation des rgles .......................................................................... 275

    9.4.6. Exemple de rgles................................................................................................ 2779.4.6.1. Exemple de rgles de filtrage.................................................................. 2779.4.6.2. Exemple de partage de connexion Internet .......................................... 278

    9.4.7. Configuration des clients ..................................................................................... 2789.5. Configuration des fonctions serveur................................................................................. 279

    9.5.1. Paramtrage des connexions extrieures ............................................................. 2799.5.2. Configuration des liaisons PPP............................................................................ 2819.5.3. Liaison de deux ordinateurs par un cble srie ................................................... 2849.5.4. Installation dun proxy ........................................................................................ 2859.5.5. Configuration dun serveur DHCP ...................................................................... 289

    9.6. Systmes de fichiers en rseau ......................................................................................... 2919.6.1. Installation dun serveur de fichiers NFS ............................................................ 2919.6.2. Configuration dun client NFS ............................................................................ 2959.6.3. Installation dun serveur de fichiers SMB ........................................................... 2969.6.4. Configuration dun client SMB ........................................................................... 303

    10. Installation de XWindow.......................................................................................................... 30710.1. Gnralits sur XWindow .............................................................................................. 30810.2. Configuration de XFree86.............................................................................................. 310

    10.2.1. Gnration automatique du fichier XF86Config ............................................... 31110.2.2. Utilisation de xf86config ................................................................................... 31110.2.3. Utilisation de xf86cfg ........................................................................................ 314

    10.2.3.1. Configuration en mode graphique......................................................... 31410.2.3.2. Configuration en mode texte ................................................................. 317

    10.2.4. Description du fichier XF86Config ................................................................... 31910.2.4.1. Structure gnrale du fichier XF86Config ............................................ 31910.2.4.2. Section Files .................................................................................... 32110.2.4.3. Section ServerFlags ........................................................................ 32110.2.4.4. Section Module ............................................................................... 32210.2.4.5. Section InputDevice ........................................................................ 32210.2.4.6. Sections Device ............................................................................... 32410.2.4.7. Sections Monitor ............................................................................. 32510.2.4.8. Sections Modes ............................................................................... 33410.2.4.9. Sections Screen ............................................................................... 33510.2.4.10. Sections ServerLayout .................................................................. 336

    10.2.5. Informations utilises lors du dmarrage de XFree86....................................... 33710.2.6. Utilisation de xvidtune ...................................................................................... 338

    10.3. Utilisation du pilote frame buffer du noyau ................................................................... 33910.3.1. Configuration du noyau et installation du pilote ............................................... 33910.3.2. Configuration du serveur X ............................................................................... 340

    10.4. Configuration des terminaux X ...................................................................................... 34210.4.1. Principe de fonctionnement de xdm.................................................................. 34210.4.2. Configuration de xdm........................................................................................ 342

    10.4.2.1. Serveurs X locaux ................................................................................. 34310.4.2.2. Serveurs X utilisant XDMCP................................................................ 34410.4.2.3. Paramtrage du serveur X pour utiliser le protocole XDMCP ............. 34610.4.2.4. Fichiers dinitialisation de sessions ...................................................... 347

    ix

  • 10.4.3. Paramtrage des terminaux X............................................................................ 34810.4.3.1. La commande xset ................................................................................ 34810.4.3.2. Configuration de la disposition du clavier ............................................ 349

    10.5. Paramtrage des applications et ressources X................................................................ 35210.6. Gestion de la scurit sous XWindow............................................................................ 354

    10.6.1. La commande xhost........................................................................................... 35510.6.2. La commande xauth .......................................................................................... 355

    10.7. Gestion des polices de caractres................................................................................... 35610.7.1. Gestion des polices de caractres sous XWindow............................................. 35710.7.2. Installation des polices Truetype ....................................................................... 359

    10.7.2.1. Configuration du serveur X................................................................... 35910.7.2.2. Configuration des polices Truetype pour limpression ......................... 361

    10.7.2.2.1. Conversion des polices Truetype en polices Adobe de Type 4236110.7.2.2.2. Installation des polices Truetype pour GhostScript ................. 362

    10.7.3. Configuration dun serveur de polices............................................................... 36310.8. Problmes classiques rencontrs .................................................................................... 365

    11. Conclusion ................................................................................................................................. 367A. Options de configuration du noyau .......................................................................................... 369

    A.1. Menu Code maturity level options ............................................................................ 369A.2. Menu Loadable module support ................................................................................ 369A.3. Menu Processor type and features ............................................................................. 369A.4. Menu General setup .................................................................................................. 371A.5. Menu Memory Technology Devices (MTD) ............................................................. 373A.6. Menu Parallel port support ........................................................................................ 373A.7. Menu Plug and Play configuration ............................................................................ 374A.8. Menu Block devices .................................................................................................. 374A.9. Menu Multi-device support (RAID and LVM) ............................................................ 376A.10. Menu Networking options ....................................................................................... 376A.11. Menu IP: Netfilter Configuration ............................................................................ 381A.12. Menu IPv6: Netfilter Configuration ........................................................................ 384A.13. Menu AppleTalk devices ......................................................................................... 385A.14. Menu QoS and/or fair queueing .............................................................................. 386A.15. Menu Network testing ............................................................................................. 386A.16. Menu Telephony Support ........................................................................................ 386A.17. Menu ATA/IDE/MFM/RLL support ....................................................................... 386A.18. Menu IDE, ATA and ATAPI Block devices ............................................................ 386A.19. Menu SCSI support ................................................................................................. 389A.20. Menu SCSI low-level drivers .................................................................................. 390A.21. Menu PCMCIA SCSI adapter support .................................................................... 390A.22. Menu Fusion MPT device support .......................................................................... 390A.23. Menu IEEE 1394 (FireWire) support (EXPERIMENTAL) .................................... 391A.24. Menu I2O support ................................................................................................... 392A.25. Menu Network device support ................................................................................ 392A.26. Menu ARCnet devices ............................................................................................ 394A.27. Menu Ethernet (10 or 100Mbit) .............................................................................. 394A.28. Menu Ethernet (1000 Mbit) .................................................................................... 395A.29. Menu Wireless LAN (non-hamradio) ..................................................................... 395A.30. Menu Token ring devices ........................................................................................ 395A.31. Menu Wan interfaces ............................................................................................... 395A.32. Menu PCMCIA network device support ................................................................. 396A.33. Menu ATM drivers .................................................................................................. 397

    x

  • A.34. Menu Amateur Radio support ................................................................................. 397A.35. Menu AX.25 network device drivers ...................................................................... 398A.36. Menu IrDA subsystem support ................................................................................ 398A.37. Menu Infrared-port device drivers ........................................................................... 398A.38. Menu ISDN subsystem ........................................................................................... 398A.39. Menu ISDN feature submodules ............................................................................. 398A.40. Menu Passive ISDN cards ....................................................................................... 399A.41. Menu Active ISDN cards ........................................................................................ 399A.42. Menu Old CD-ROM drivers (not SCSI, not IDE) ................................................... 400A.43. Menu Input Core Support ........................................................................................ 400A.44. Menu Character devices .......................................................................................... 401A.45. Menu I2C support ................................................................................................... 404A.46. Menu Mice .............................................................................................................. 404A.47. Menu Joystick support ............................................................................................ 405A.48. Menu Watchdog cards ............................................................................................. 405A.49. Menu Ftape, the floppy tape device driver .............................................................. 407A.50. Menu PCMCIA character device support ............................................................... 407A.51. Menu Multimedia devices ....................................................................................... 407A.52. Menu Video For Linux ............................................................................................ 408A.53. Menu Radio Adapters ............................................................................................. 408A.54. Menu File systems ................................................................................................... 408A.55. Menu Network File Systems ................................................................................... 409A.56. Menu Partition Types .............................................................................................. 410A.57. Menu Native Language Support .............................................................................. 411A.58. Menu Console drivers ............................................................................................. 411A.59. Menu Frame-buffer support .................................................................................... 411A.60. Menu Sound ............................................................................................................ 412A.61. Menu USB support .................................................................................................. 412A.62. Menu USB Serial Converter support ....................................................................... 416A.63. Menu Bluetooth support .......................................................................................... 416A.64. Menu Bluetooth device drivers ............................................................................... 417A.65. Menu Kernel hacking .............................................................................................. 417A.66. Menu Library routines ............................................................................................. 418

    B. Compilation et mise jour des principaux composants du systme ..................................... 419B.1. Compilation de make 3.80.0............................................................................................ 419B.2. Compilation des binutils 2.14.......................................................................................... 419B.3. Compilation de la bibliothque C 2.3.2........................................................................... 420B.4. Compilation de OpenSSL................................................................................................ 423B.5. Compilation de XFree86 4.3.0 ........................................................................................ 424B.6. Compilation de Lesstif 0.93.36 ....................................................................................... 426B.7. Compilation de MESA 5.0.1 ........................................................................................... 426B.8. Compilation de KDE 3.1.2 .............................................................................................. 427B.9. Compilation de Gnome 2.2.1 .......................................................................................... 430B.10. Compilation de Samba 2.2.8a........................................................................................ 433

    C. Formulaire pour la cration des lignes de mode de XFree86 ................................................ 435D. GNU Free Documentation License........................................................................................... 439E. Licence de documentation libre GNU ...................................................................................... 445

    xi

  • xii

  • Liste des tableaux3-1. Caractristiques des liens physiques et symboliques .................................................................. 183-2. Hirarchie standard du systme de fichiers ................................................................................. 215-1. Groupes de pages de man............................................................................................................ 585-2. Principaux signaux Unix ............................................................................................................. 775-3. Variables denvironnements courantes ........................................................................................ 885-4. Tests sur les fichiers................................................................................................................... 1039-1. Plages dadresses IP rserves pour un usage personnel .......................................................... 22310-1. Frquence maximale des moniteurs ........................................................................................ 32910-2. Numros des modes graphiques VESA................................................................................... 340

    Liste des illustrations3-1. Architecture des systmes GNU/Linux....................................................................................... 113-2. Le systme de fichiers virtuel ...................................................................................................... 164-1. Pistes et secteurs dun disque dur................................................................................................ 314-2. Partitions primaires et partitions logiques ................................................................................... 324-3. Master boot record et secteurs de boot........................................................................................ 326-1. Traitements des entres clavier.................................................................................................. 1356-2. Traitement des caractres pour laffichage................................................................................ 1386-3. Filtres dimpression et imprimantes PostScript......................................................................... 1607-1. Interprtation dun programme ................................................................................................. 1667-2. Compilation et excution dun programme............................................................................... 1677-3. Processus de gnration dun excutable .................................................................................. 1688-1. Chargement automatique des modules du noyau ...................................................................... 1869-1. Notion de paquet et dadresse rseau ........................................................................................ 2199-2. Encapsulation de protocoles...................................................................................................... 2209-3. Addresse IP et adresse de rseau............................................................................................... 2229-4. Notion de passerelle .................................................................................................................. 2249-5. Notion de route.......................................................................................................................... 2269-6. Connexions TCP........................................................................................................................ 2289-7. Algorithme de cryptage symtrique .......................................................................................... 2519-8. Algorithme de cryptage asymtriques....................................................................................... 2529-9. Translation dadresses avec suivi de port TCP.......................................................................... 2719-10. Trajet des paquets dans le code de filtrage .............................................................................. 27210-1. Notion de display..................................................................................................................... 30910-2. Structure du fichier XF86Config ............................................................................................. 32010-3. Paramtres des lignes de mode................................................................................................ 331

    xiii

  • xiv

  • Remarques de lauteurIl se peut que certaines informations fournies dans ce document soient spcifiques ma distributionde Linux. titre indicatif, jutilise une Slackware 9.0. Je me suis cependant efforc de rendre cedocument gnrique et indpendant de cette distribution, mais je ne peux pas le garantir. En parti-culier, il est connu que la Slackware nutilise pas, par dfaut, la notion de niveaux dexcution. Demme, certaines informations pourront tre spcifiques la configuration matrielle des machines quejutilise. Nanmoins, la plupart des informations fournies ici sappliqueront toutes les distributionsde Linux. Elles permettront galement aux personnes qui nont jamais vu Linux de dbroussailler unpeu le terrain et de comprendre en profondeur comment le systme fonctionne.

    Je remercie davance les gens qui pourront menvoyer des remarques concernant les imprcisions,voire les horreurs et les neries que jaurais pu crire. Plus je recevrai de critiques constructives etde propositions, plus ce document a de chances de samliorer. Cependant, si vous prenez le tempsde menvoyer les remarques et les erreurs que vous avez pu dtecter, je vous serais gr de vrifier aupralable quelles sont toujours dactualit dans la dernire version de ce document, que vous pourreztrouver dans diffrents formats de fichiers sur mon site Web (http://casteyde.christian.free.fr).

    i

  • Remarques de lauteur

    ii

  • Chapitre 1. IntroductionLinux est le noyau dun systme dexploitation libre de type Unix, crit initialement par Linus Tor-valds en 1991 et auquel un grand nombre de programmeurs ont contribu par Internet depuis. Lesorigines de tous les systmes Unix remontent la premire version dun systme dexploitation exp-rimental dvelopp par Dennis Ritchie et Ken Thompson dans les laboratoires AT&Ts Bell Laborato-ries en 1969. Ce systme a avant tout t dvelopp par des programmeurs, pour des programmeurs,et reprenait un certain nombre de concepts qui avaient t dvelopps auparavant pour le systmedexploitation Multics (abrviation de Multiplexed Information and Computing Service ), dont lerle tait de fournir des services informatiques centraliss un grand nombre de personnes (un peucomme le Minitel a tent de le faire par la suite). Multics na jamais rellement vu le jour, en revanche,le systme Unix initial a engendr un grand nombre dautres systmes plus ou moins compatibles. R-cemment, les diffrents fournisseurs de systmes Unix se sont accords pour dfinir lensemble desfonctionnalits que tous les systmes Unix doivent supporter, afin de rsoudre les problmes engen-drs par les incompatibilits existantes entre ces diffrents systmes. Le terme Unix est donc un termegnrique pour reprsenter lensemble de tous ces systmes, dont Linux fait partie. Pour lanecdote, ladnomination Unix provient de la contraction de Unics (abrviation de Uniplexed Informationand Computing Service ), terme forg ironiquement pour bien signaler quUnix tait une versionallge de ce que Multics devait tre.

    Bien que compatible avec les dernires spcifications Unix, Linux ne contient pas une ligne du codesource du systme Unix original, ce qui en fait ce que lon appelle un clone . Cela dit, il sagitrellement dun systme Unix part entire. En tant que tel, il dispose des fonctionnalits fourniespar les systmes Unix : il est multitche, multiutilisateur et relativement orient rseau. Vous aurezdonc, avec Linux, un systme fiable, fonctionnel et performant.

    Linux vous permettra de raliser les oprations les plus classiques, comme effectuer un travail bu-reautique, naviguer sur Internet, raliser lacquisition, la capture et le retraitement dimages, raliserdes animations 3D ou encore programmer. En revanche, autant vous prvenir tout de suite : nombrede jeux ne sont tout simplement pas disponibles sous Linux, bien que les principaux titres soient rgu-lirement ports. De mme, il nexiste pas de logiciel complet permettant de raliser lacquisition desquences vido et den raliser le montage de manire aise. Vous ne pourrez pas non plus raliser ceque vous faisiez avec les applications MS Windows dont il nexiste pas encore dquivalent sous Li-nux, comme les applications de gestion et de paie utilises par nombre de professionnels indpendantsou par des PME.

    Que les choses soient claires : linstallation de Linux est une opration relativement complique, etlusage dun systme Unix en gnral nest pas la porte de tout le monde. Mme si la qualitdes distributions actuellement disponibles sest grandement accrue ces derniers temps, au point quenimporte qui peut installer un systme Linux viable sans trop de problmes, la configuration du sys-tme pour obtenir un fonctionnement correct exige un travail assez important. En particulier, les dis-tributions actuelles prouvent encore quelques difficults pour optimiser les priphriques exotiques,et souvent seules les fonctionnalits de base sont correctement configures aprs une installation clas-sique. Par ailleurs, la plupart des applications sont dveloppes par des groupes de programmeursindpendants, et bien que ce soit justement le rle des distributions de raliser lintgration de tousces composants dans un environnement homogne, celle-ci nest pas forcment parfaite. Les outilsde configuration des distributions vous permettront sans doute de configurer votre systme de basesimplement, mais pour aller au-del, il faudra sans doute intervenir manuellement.

    Nanmoins, il faut reconnatre que celui qui installe Linux partir dune distribution sur un ordinateurassez vieux (cest--dire un ordinateur qui ne dispose pas des derniers priphriques et cartes gra-phiques la mode), ou dont les constituants sont de marque courante, obtient rapidement un systmefonctionnel et capable de raliser la plupart des oprations quil dsire. En particulier, celui qui utilise

    1

  • Chapitre 1. Introduction

    son ordinateur pour travailler (jentends par l crire des lettres, les imprimer, naviguer sur Internetpour rcuprer des informations, ou programmer) peut parfaitement se contenter de linstallation pardfaut. Ce type de situation ne convient pas tout le monde : la plupart des gens disposent de cartesgraphiques rcentes (surtout depuis lavnement des jeux 3D) ou de priphriques spcifiques. Tout lemonde ne se place pas uniquement dans le cadre dune utilisation professionnelle, et il est absurde dedisposer dune carte son et de ne pas pouvoir lutiliser. Et cest l que le bt blesse ! Si lon dsire queLinux reconnaisse ces matriels exotiques, il va falloir mettre les mains dans le cambouis et avoir unebonne dose de patience. Ce problme de configuration apparat malheureusement principalement pourles particuliers, qui souvent disposent de machines htroclites et absolument non standards. Dans lecadre dune entreprise, il existe des personnes qualifies pour rsoudre ce type de problme, mais cesont des informaticiens et, de plus, les machines sont souvent homognes, ce qui permet dapporterdes solutions gnriques.

    En conclusion, il faut tre informaticien ou amateur trs clair pour installer Linux sur une machinede particulier et pour le configurer de manire optimale. La situation est dautant plus grave que laplupart des gens ne connaissent pas Linux, et quil est toujours difficile dapprendre et de prendre denouvelles habitudes. Je veux dire par l que mme une tche trs simple raliser peut prendre uncertain temps, car tout simplement on ne la jamais faite. Celui qui a install trois fois MS Windowssait parfaitement le faire prsent, et il pense que cest relativement facile. Et pourtant, il ralisesouvent des tches dune complexit qui dpasse, l aussi, le commun des mortels.

    Heureusement, et cest l la force de Linux, ces oprations ne doivent tre effectues quune seulefois. On na absolument pas besoin de changer la configuration chaque instant, comme cest le cassous MS Windows, parce que le systme est globalement beaucoup plus stable. Il ne plante quasimentjamais, les applications ne peuvent pas le corrompre, et sa qualit supprime le besoin permanent demettre jour une partie du systme. En clair, quand on en a un qui fonctionne, on le garde, nonpas parce que cest un enfer installer et configurer, mais tout simplement parce que ce nest pasncessaire 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 nest pas trs difficile raliser ;

    cependant, elle peut drouter les personnes qui ne lont jamais effectue ; mais le jeu en vaut la chandelle, parce que le systme est rellement solide.

    Lobjet de ce document est de donner les connaissances de base ncessaires linstallation de Linuxsur un ordinateur de particulier ou un petit serveur. Il est suppos que lutilisateur a dj utilis un autresystme dexploitation, par exemple MS Windows. Cependant, aucune notion avance dinformatiquenest ncessaire. Tout sera expliqu au fur et mesure des besoins et, si ncessit est, des complmentsdinformation 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 personnesqui nont pas une grande habitude de linformatique aient quelques difficults les assimiler. Celadit, vaincre sans peine, on triomphe sans gloire, et linstallation de Linux vous procurera le plaisirdapprendre.

    Ce document est structur en neuf parties distinctes, qui correspondent essentiellement aux grandestapes que vous suivrez pour installer et utiliser Linux. La premire partie a pour but de clarifier unpeu les notions ayant trait aux logiciels libres. Elle tente dexpliquer pourquoi ces logiciels existent, etpourquoi ils font partie des meilleurs logiciels actuels. La deuxime partie dcrit les concepts de basede la plupart des systmes dexploitation Unix. Elle ne traite pas de linstallation proprement parler,

    2

  • Chapitre 1. Introduction

    mais sa lecture est recommande pour tous ceux qui nont jamais vu un tel systme. La troisime partiedcrit linstallation du systme de base de Linux. lissue de cette partie, vous devez disposer dunsystme fonctionnel, utilisable mais non optimis et ne permettant pas forcment dutiliser tous vospriphriques. La quatrime partie constitue un petit cours dUnix pour les nouveaux utilisateurs dece type de systme, et la cinquime partie traite des oprations dadministration et de maintenance debase des systmes Unix. Bien que, comme les deux premires parties, ces deux parties ne traitent pasde linstallation proprement parler, leur lecture est vivement recommande. La sixime partie donneles notions de base sur les mcanismes de compilation et dcrit la manire de faire pour compiler ladernire 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 pourobtenir un noyau optimis qui colle la machine. La configuration des diffrents types de matrielet leur prise en charge au niveau du noyau sera dcrite ensuite dans la septime partie. La huitimepartie traite de la configuration du rseau sous Linux. Le rseau est rellement lun des aspects lesplus importants de Linux, et ncessite donc une attention toute particulire. Enfin, la neuvime etdernire partie vous dcrit la procdure dinstallation de XWindow, lenvironnement graphique deLinux. Linstallation des polices TrueType y est aussi prsente.

    3

  • Chapitre 1. Introduction

    4

  • Chapitre 2. GNU, Linux et les logiciels libresVous entendrez souvent parler de la licence GPL , du projet GNU et de la Free SoftwareFoundation dans le monde de Linux. Pour bien comprendre ce quest la Free Software Foundationet ce que signifie la licence GPL, il est ncessaire den faire une brve prsentation.

    La Free Software Foundation est une organisation dont le but est de dvelopper des logiciels libres.Le terme de libre signifie clairement que chacun peut faire ce quil veut du logiciel, y comprisle modifier. La vente nest absolument pas interdite, et il faut donc faire la distinction entre libreet gratuit. Cela tant dit, les logiciels libres sont souvent de facto gratuits, car ils sont librementredistribuables par quiconque en possde une copie.

    La libert de modifier les logiciels libres implique naturellement que leur code source, cest dire letexte de leur programme tel quil 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 lessources du programme sont disponibles. Attention cependant, tous les logiciels Open Source ne sontpas forcment libres, car il nest pas toujours possible de modifier ce code source et de le redistribuerlibrement (ventuellement gratuitement). Ainsi, nombre dditeurs de logiciels propritaires publientleur code source sans pour autant donner de droits supplmentaires ceux qui les lisent. Certainsdentre eux jouent dailleurs explicitement sur cette confusion. De plus, la plupart des journalistesanglosaxons font cette confusion et, de ce fait, occultent tous les avantages des logiciels libres. Voustrouverez de plus amples informations sur la notion de code source dans le Chapitre 7.

    Il faut bien comprendre que le fait de diffuser un logiciel sous une licence libre ne prive absolumentpas son auteur de ses droits. Il en reste lauteur et, en tant que tel, conserve les droits dauteurs sur sontravail. Il ne fait que concder la libert dexploiter ce travail aux autres. Cest en cela que les logicielslibres se dmarquent du domaine publique, 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 licenceGPL (abrviation de langlais General Public License ). Cette licence stipule que le logiciel librepeut tre redistribu, utilis, modifi librement, pourvu que celui qui en bnficie accorde les mmesdroits ceux qui il fournit les copies du logiciel, quil lait modifi ou non. En dautre termes, ellegarantit que la libert des uns sarrte l o commence celle des autres. Cette licence empche donclalination du logiciel et sa transformation en logiciel propritaire, de quelque manire que ce soit.Cela implique que tout logiciel libre modifi par une autre personne que son auteur reste libre, etle restera jamais. Ainsi, il est impossible quune socit commerciale puisse un jour sapproprierun logiciel libre, mme si elle lamliore. Si vous dsirez lire la licence GPL, vous pouvez en trou-ver une copie dans le fichier /usr/src/linux/COPYING une fois que vous aurez install Linux.La FSF a galement rdig dautres licences plus adaptes aux bibliothques de programmes et auxdocumentations libres. Ainsi, la licence LGPL ( Lesser General Public License ) permet dutiliserles bibliothques de programmes dans des programmes propritaires, et la licence FDL ( Free Do-cumentation License ) permet de diffuser des documentations libres. titre dexemple, ce guide estdistribu sous licence FDL, dont vous trouverez une tradution franaise en annexe.

    La licence GPL a t crite initialement pour le projet GNU de la Free Software Foundation, dontle but est de raliser un systme Unix libre et indpendant des Unix commerciaux. Prcisons ici quele terme Unix caractrise un ensemble de systmes dexploitation, qui disposent tous peu prsdes mmes fonctionnalits et proposent dy accder de la mme manire. Le projet GNU est toujoursen cours, puisque la Free Software Foundation a dj crit la plupart des utilitaires Unix, mais que lecur du systme (ce que lon appelle le noyau) est toujours en cours de ralisation. Pour information,ce noyau se nomme Hurd .

    Cependant, dautres noyaux sont disponibles, avec lesquels les commandes GNU peuvent tre utili-ses. Parmi ces noyaux, il existe bien entendu Linux, qui a t crit par le Finlandais Linus Torvaldslorsquil tait tudiant, et amlior par des programmeurs du monde entier sur Internet. Linux est

    5

  • Chapitre 2. GNU, Linux et les logiciels libres

    un noyau parmi tant dautres, ceci prs quil est, lui aussi, distribu sous la licence GPL, bien quenayant rien avoir avec la Free Software Foundation.

    Cela signifie quil serait en fait plus exact de parler du systme GNU/Linux que de Linux toutcourt. Sous cette dnomination, il est clair que ce systme est constitu des outils GNU fonctionnantsur le noyau Linux. Cest donc un ensemble de logiciels libres provenant de plusieurs sources dis-tinctes. Cependant, il est trs courant dentendre parler de Linux tout court, par abus de langage etpar souci de simplicit. Bien entendu, cette dnomination est proscrite sur les sites Internet de la FreeSoftware Foundation, qui devient trs susceptible ce sujet.Prcisons que la licence GPL nest pas la seule licence permettant de distribuer des logiciels libres. Ilexiste dautres licences, dont les termes sont peu prs similaires. Par exemple, la licence BSD (unautre systme Unix libre) exige galement la distribution des sources, mais permet lappropriationdes sources par des socits commerciales. De mme, la licence X, sous laquelle est diffuselenvironnement graphique X11 quutilise Linux, est une licence libre. Quelques outils fournis avecLinux sont distribus avec dautres licences plus rares.

    Les logiciels libres disposent davantages indniables par rapport aux logiciels propritaires ou ferms . Je vais tenter de donner ici une liste non exhaustive de ces avantages :

    les programmes distribus sous licence libre ont souvent t crits par des passionns du domaineapplicatif auquel ils appartiennent. Les logiciels libres disposent donc souvent des dernires fonc-tionnalits la mode et sont donc gnralement extrmement comptitifs sur ce plan ;

    du fait du grand nombre possible dintervenants sur les sources des logiciels libres, un grandnombre de possibilits techniques peuvent tre explores, et cest souvent la meilleure qui est s-lectionne. Cest une forme de slection naturelle de la meilleure solution. Ainsi, sur le long terme,les logiciels libres sont les plus efficaces en terme de performances ;

    toujours du fait du grand nombre dintervenants, et surtout de par la possibilit de consulter et demodifier librement le code source, le cycle de dtection/identification/correction des bogues esttrs court. Les logiciels libres sont donc parmi les plus fiables qui se font. On peut considrer quunlogiciel libre utilis par un grand nombre de personnes est virtuellement sans bogue connu,puisque si tel tait le cas il serait immdiatement corrig ;

    la possibilit de repartir dune base de source existante permet de raliser des dveloppementsbeaucoup plus rapidement que dans un modle ferm. Les logiciels libres sont donc galementceux qui se dveloppent le plus rapidement cot fixe, et sont certainement les plus rentables enterme de cot global pour la collectivit ;

    afin de garantir linteroprabilit entre les diffrents intervenants du monde du logiciel libre, chacunsvertue respecter les standards. Les logiciels libres sont donc les plus ouverts, non seulementen terme de code source, mais galement au niveau des formats de fichiers et des protocoles decommunication. Cela garantie une interoprabilit optimale et labsence de mauvaise surprise ;

    professionnellement parlant, la disponibilit du code source fournit une garantie de fonctionnementque lon ne peut pas retrouver ailleurs. En cas de problme, il est toujours possible de sen sortir,ventuellement en recourant des comptences externes pour adapter le logiciel ses propresbesoins ;

    enfin, la disponibilit du code source garantit une prennit absolue du logiciel, ce quaucune so-cit commerciale vendant des logiciels propritaires ne peut ou ne veut faire.

    Mais laspect le plus important des logiciels libres est sans doute le fait quils garantissent la libert desutilisateurs par rapport aux diteurs de logiciels. Le respect des standards, louverture des formats dedocuments et des protocoles de communication garantissent une interoprabilit absolue, qui permet

    6

  • Chapitre 2. GNU, Linux et les logiciels libres

    ainsi chacun de rester libre de ses choix pour sa solution informatique. Il nest que trop courant devoir les diteurs de logiciels enfermer leurs clients dans une dpendance vis vis deux, simplementen leur faisant utiliser des produits ferms et inutilisables sans leur concours. Le pire est sans doute quecette dpendance est transitive (le fait pour un auteur dutiliser un produit implique que ses lecteurs lepossdent galement) et durable (on ne peut faire de mise jour que chez le mme diteur de logiciel).Bien que cela ne se situe pas au mme niveau philosophique, la question du financement se posegalement de manire rcurrente. Il nest en effet pas vident, en premire analyse, de dterminer lesraisons qui poussent un auteur ou une entreprise rendre ainsi public son savoir faire, au risque de sele faire tout simplement voler. Les particuliers font souvent cela par amusement ou pour faire valoirleur savoir-faire. Les entreprises quant elles peuvent financer le dveloppement de certains logicielslibres soit parce quelles lutilisent en interne, soit parce quelles en vivent de manire drive (parvente de produits drivs ou de services complmentaires par exemple). Certaines socits prfrentgalement repartir dun logiciel libre qui satisfait 80% de leurs besoins, et de dvelopper les 20%restants. Le cot total de dveloppement dune solution compltement propritaire serait en effetbeaucoup plus lev. Dans ce cas, les dveloppeurs de logiciels libres sont avant tout leurs propresutilisateurs... Cela dit, il faut tre clair ce sujet : le logiciel libre rapporte moins que le logicielpropritaire, tout simplement parce quon ne peut pas pressurer le client de la mme manire.

    Enfin, pour information, le terme GNU est labrviation de langlais GNUs Not Unix . Cettecurieuse phrase rappelle que le projet GNU est de raliser un systme Unix diffrent des autres. Vousremarquerez que cette dfinition est rcursive, cest--dire quelle utilise le mot GNU elle-mme.Cela doit tre attribu au got des dveloppeurs de la Free Software Foundation pour ce genre dedfinition 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 voustrouverez donc souvent la reprsentation dun gnou sur les sites Internet de GNU.

    7

  • Chapitre 2. GNU, Linux et les logiciels libres

    8

  • Chapitre 3. Concepts de baseCe chapitre dcrit les principes de base quil faut connatre pour bien comprendre Linux. Les infor-mations qui sont donnes ici ne sont pas rellement spcifiques Linux. Elles sappliquent souventaux systmes Unix en gnral. Il est donc recommand de lire ce chapitre, surtout si lon na ja-mais vu ni utilis un systme Unix. En particulier, les utilisateurs chevronns de Windows risquentdtre lgrement drouts. Larchitecture du systme sera prsente, ainsi que la scurit et la notiondutilisateur. Viendront ensuite les descriptions des principales fonctionnalits du systme de fichierset de sa structure.

    3.1. Architecture du systmeComme tout logiciel dune certaine taille, Linux est dune grande complexit. Tous les systmesdexploitation rcents sont constitus dun grand ensemble de composants qui interagissent et dontla mise en place peut tre soit indispensable au bon fonctionnement du systme, soit facultative, soittout simplement inutile tant donns la configuration matrielle et les besoins de lutilisateur. Cettecomplexit implique un grand nombre derreurs, danomalies et de dysfonctionnements possibles. Eneffet, pour quun systme informatique fonctionne correctement, il faut tout prvoir pour donner uneaction approprie tous les vnements possibles. Cela nest pas humainement ralisable quand lesystme devient trop complexe.

    Pour rsoudre ce problme, il est courant de subdiviser le systme en composants indpendants, dontle mauvais fonctionnement potentiel ne peut perturber que partiellement les autres parties du sys-tme. Des points de synchronisation partir desquels le systme peut reprendre un fonctionnementnormal aprs une erreur sont prvus. Ces points de synchronisation permettent simplement dassurerla viabilit du systme, mme en cas derreur inopine. Pour quelques systmes, le seul point de syn-chronisation est le point de dpart, savoir le dmarrage de lordinateur. De tels systmes doiventdonc souvent tre redmarrs, parfois pour une cause mineure (erreur dun logiciel, modification dela configuration du systme, ajout dun composant au systme). Ce nest pas le cas de Linux, qui dansle pire des cas dtruit le composant qui a gnr lerreur sans toucher aux autres parties du systme.Le point de synchronisation de Linux est donc le redmarrage dune partie du systme uniquement,ce qui assure ainsi une grande stabilit du systme complet.

    Il va de soi que, lorsquun composant se plante, ceux qui lutilisent risquent fort de se retrouver dansun tat derreur assez difficile grer. Cela peut souvent provoquer leur propre perte. Par consquent,plus un composant est utilis, plus il doit tre fiable. Or il est un composant la base de tout dansLinux : le noyau ( kernel en anglais). Cest le cur du systme, et en fait cest prcisment lesystme Linux. Heureusement, ce composant est dune trs, trs grande fiabilit, et il nest pas rare devoir un systme Linux fonctionner plusieurs mois ou annes sur des serveurs. Cette fiabilit provientdu modle de dveloppement de Linux, qui est ouvert tout le monde (chacun peut rcuprer, lire,modifier, complter ou corriger le noyau condition de savoir bien programmer). partir dunetaille critique en terme de nombre dutilisateurs, taille que Linux a atteinte, il existe suffisammentde dveloppeurs pour dtecter et corriger les erreurs. Ainsi, ds quune erreur est dtecte, elle estsouvent corrige dans les jours qui suivent, ce qui assure une grande qualit.Le noyau gre quasiment tout (mmoire, disques, systmes de fichiers, rseau, clavier, droits desutilisateurs, etc.), mais il nest pas exploitable tel quel. Il nest par exemple pas capable doffrir uneinterface utilisateur permettant de lui donner les commandes quil doit excuter. Ces oprations sontdu ressort dautres modules dvelopps par la Free Software Foundation. Parmi ces modules, ontrouve le shell (ce qui signifie grosso modo environnement utilisateur ). Le shell est capable delire des commandes saisies au clavier, de les excuter et dafficher leurs rsultats lcran. En gnral,les programmes capables de raliser ces oprations sont appels des interprteurs de commandes.

    9

  • Chapitre 3. Concepts de base

    Mais le shell est bien plus que cela, car il peut tre programm, et il peut grer les processus (enarrter un, en lancer un autre, etc.).En fait, les commandes que le shell peut excuter sont en nombre trs rduit. La plupart des com-mandes sont tout simplement dautres programmes. Les programmes que lon peut utiliser dans leshell sont des programmes dits en ligne de commande , parce quils sont propres tre utilissdans les lignes de commandes que lon saisit au clavier dans le shell. Ces programmes sont, encoreune fois, dvelopps soit par la Free Software Foundation, soit par des bnvoles, toujours sous lalicence GNU. Toutes ces commandes sont des commandes compatibles Unix. Ces commandes sontabsolument essentielles pour pouvoir utiliser le systme, mais elles sont assez rbarbatives et peudutilisateurs acceptent de sen contenter.

    Cest pour cela quune couche graphique a t dveloppe, pour introduire une interface graphiqueplus conviviale (mais cependant lgrement moins puissante en termes de fonctionnalits) : XWin-dow. Encore une fois, cette couche logicielle est constitue de plusieurs composants, dont la base estle serveur X. Le serveur X est un programme capable de fournir les services graphiques (do le nomde serveur) aux autres applications. Plusieurs implmentations concurrentes existent. Lune delles estparticulirement utilise sous Linux, puisquelle est libre (comme tout le reste) : XFree86. vrai dire,un serveur X ne fait pas grand chose dautre que de raliser des affichages sous les ordres dautresprogrammes. Dautres composants permettent donc dobtenir des fonctionnalits de plus haut niveau.

    Le gestionnaire de fentres ( Window Manager en anglais) est le composant qui se place juste au-dessus du serveur X. Il est en charge, comme son nom lindique, de grer les fentres des applicationsgraphiques sous X. Cest le gestionnaire de fentres qui prend en charge la gestion des dcorationsdes fentres de premier niveau (cest--dire des fentres principales des programmes). Par exemple,il soccupe dafficher les bords, la barre de titre, les boutons de rduction et de restauration, etc.des fentres. Cest galement lui qui soccupe du positionnement des fentres, et qui donc permet lutilisateur de dplacer et de rduire les fentres des applications graphiques. Lutilisateur est libredutiliser le gestionnaire de fentres quil dsire, selon ses propres gots et ses dsirs, la diffrenceest souvent une pure question de style.

    Il existe des environnements graphiques complets qui, en plus dun gestionnaire de fentres souventextrmement puissant, fournissent la plupart des outils classiques que lon est en droit dattendredun systme graphique moderne. Ainsi, ces environnements comprennent des diteurs, des outilsde configuration, des navigateurs Internet, des logiciels multimdia... En plus de ces applications, ilsfournissent un cadre standard pour les applications graphiques qui savent communiquer avec eux.Ce cadre permet damliorer lintgration des diverses applications entre elles, et cest la raison pourlaquelle on appelle souvent ces environnements des gestionnaires de bureau. KDE et Gnome sont desexemples de tels environnements de travail.

    Enfin, au-dessus de toutes ces couches logicielles, on trouve les applications X, qui sont aussi diversesque varies (traitement de texte, tableurs, logiciels de dessin...). Quelques-unes de ces applicationssont simplement des front-end dapplications en ligne de commande, cest--dire des interfacesgraphiques des programmes non graphiques existants. Ce concept permet davoir un composantunique, et plusieurs interfaces diffrentes pour ce composant, et en plus de rendre indpendante lafonctionnalit de linterface utilisateur. Encore une fois, la stabilit en est dautant plus accrue.

    Bon nombre dapplications pour XWindow sont libres, ou utilisables librement des fins non com-merciales. Cela signifie quun particulier a le droit de les utiliser tant quil ne sen sert pas pour untravail quil revendra. Comme cest le cas de la plupart des particuliers, on peut considrer quil estactuellement possible, avec Linux, davoir un environnement logiciel complet, fiable et performant...pour un prix de revient minime.

    En rsum, un systme GNU/Linux est structur de la manire suivante :

    le noyau Linux ;

    10

  • Chapitre 3. Concepts de base

    les programmes en ligne de commande et le shell ;

    le serveur XWindow ;

    le gestionnaire de fentres et le gestionnaire de bureau ;

    les applications XWindow.

    Figure 3-1. Architecture des systmes GNU/Linux

    Il nest pas vident dtablir un parallle avec MS Windows, puisque ce systme est rellement mo-nolithique. Cependant, on peut considrer que le noyau Linux correspond aux modules KERNEL ouIO.SYS de Windows, que le shell correspond aux interprteurs de commandes COMMAND.COMou CMD.EXE, que les programmes en ligne de commande correspondent aux programmes DOS ouconsole classiques (xcopy, fdisk, format...), que le serveur X correspond au couple (pilote de cartegraphique, GDI), que le gestionnaire de fentres correspond au module USER, et le gestionnairede bureau lexplorateur, les fonctionnalits dOLE et aux programmes fournis avec Windows. Ladiffrence essentielle vient du fait que le shell est peine programmable sous Windows, que les com-mandes DOS ont tendance accder aux ressources de la machine directement sans passer par lenoyau, que le pilote de carte graphique, la GDI et le module USER sont tous intgrs dans le sys-tme au lieu den tre spars (ce qui multiplie les chances de crash du systme complet), et que laplupart des applications Windows ne peuvent fonctionner que dans lenvironnement graphique. Ellessont donc entranes par le systme lorsque les modules graphiques de Windows plantent (je naidailleurs jamais vu un processus DOS survivre un crash de linterface graphique de Windows).En conclusion :

    les systmes Unix, donc Linux, sont trs structurs, plus simples utiliser, configurer, mainteniret dvelopper ;

    ils sont trs stables, car les composants de haut niveau ninterfrent pas sur les composants de basniveau ;

    ils sont faciles personnaliser, puisque lutilisateur a le choix des outils chaque niveau ;

    Linux a de plus la particularit dtre parfaitement modifiable, puisque si lon sait programmer, onpeut personnaliser les composants du systme ou en rajouter ;

    et il nest pas propritaire, cest--dire que lon nest pas dpendant dune socit ditrice de logicielpour rsoudre un problme donn.

    En bref, cest la voie de la vrit.

    11

  • Chapitre 3. Concepts de base

    3.2. Scurit et utilisateursLinux est un systme multiutilisateur. Cela signifie que plusieurs personnes peuvent utiliserlordinateur simultanment (et pas uniquement les unes la suite des autres), et que le systmese charge de faire respecter la loi entre elles. Les ressources de la machine sont ainsi partagesquitablement, tant au niveau de la puissance de calcul quau niveau de la mmoire, du disque, desimprimantes...

    videmment, une question se pose : comment plusieurs utilisateurs peuvent-ils se partager le clavieret lcran ? La rponse est simple : ils ne le peuvent pas. Par consquent, il ny a que trois solutionspossibles : soit on connecte lordinateur dautres claviers et dautres crans (on appelle un coupleclavier/cran un terminal ), soit on accde au systme par lintermdiaire dun autre ordinateur viale rseau, soit les utilisateurs lancent tour tour leurs programmes. La dernire solution ncessite queles programmes ne soient pas interactifs : ils doivent tre capable de fonctionner sans intervention decelui qui les a lancs.

    La premire hypothse nest pas srieuse pour un particulier, il est dailleurs assez difficile de connec-ter un terminal supplmentaire sur un PC (cest ralisable, soit en connectant un terminal ddi lundes ports srie, soit en ajoutant une carte graphique PCI et en connectant un deuxime clavier etune deuxime souris, par exemple sur le port USB, et en utilisant une version modifie de XFree86.Ce nest donc pas une opration la porte du commun des mortels.). La deuxime solution, en re-vanche, est nettement plus envisageable. Il est parfaitement possible quun particulier dispose de deuxPC connects en rseau, et que deux membres de la mme famille cherchent utiliser des ressourcesde la mme machine (par exemple, une imprimante ou tout autre priphrique, un programme installsur un seul ordinateur, des fichiers personnels, etc.). Quant la troisime solution, elle est du domainedu quotidien, mme pour un ordinateur sans rseau et avec un seul utilisateur. En effet, certains pro-grammes sont lancs par le systme pour effectuer des tches de maintenance, et fonctionnent au nom