I. Introduction▲
Ce livre est un guide d'installation et d'administration du système d'exploitation GNU/Linux pour ordinateur de type PC.
L'objet de ce document est donc de donner les connaissances de base nécessaires à l'installation de Linux sur un ordinateur de particulier ou un petit serveur. Il est supposé que l'utilisateur a déjà utilisé un autre système d'exploitation, par exemple MS Windows. Cependant, aucune notion avancée d'informatique n'est nécessaire. Tout sera expliqué au fur et à mesure des besoins et, si nécessité est, des compléments d'information seront donnés pour permettre la compréhension des opérations à effectuer. Néanmoins, les notions qui seront abordées 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 difficultés à les assimiler. Cela dit, à vaincre sans peine, on triomphe sans gloire, et l'installation de Linux vous procurera le plaisir d'apprendre.
I-A. Matériel, logiciel et système d'exploitation▲
Dans les grandes lignes, un ordinateur est généralement constitué :
- d'un ou plusieurs processeurs, qui effectuent tous les traitements de calcul ;
- de mémoire vive, où sont stockées les instructions que le ou les processeurs doivent exécuter, et les données qu'ils doivent manipuler ;
- d'unités de stockage de masse telles que les disques durs, permettant de stocker les données et les programmes de manière permanente (c'est-à-dire même après extinction de l'ordinateur) ;
- et d'une carte mère, sur laquelle on connecte tous ces éléments.
À ces composants de base s'ajoutent des composants annexes, que l'on appelle « périphériques ». Le clavier, la souris, les cartes graphiques, son et réseau en sont des exemples.
Ce matériel n'est toutefois généralement pas exploitable tel quel. Il faut pour cela utiliser des programmes dédiés, qui permettent de l'utiliser. L'ensemble de ces programmes constituent ce que l'on appelle le « système d'exploitation ». C'est au-dessus de ce système que viennent se placer les programmes utilisateurs, que l'on appelle également les « applications », ou « logiciels ».
La fonction première d'un système d'exploitation est donc de gérer l'ordinateur, et de permettre aux logiciels de s'exécuter. Toutefois, les systèmes d'exploitation fournissent généralement une abstraction du matériel pour les programmes, afin que ceux-ci n'aient pas à se soucier des spécificités du matériel sur lequel ils sont installés. Par exemple, il est possible de simuler certaines fonctions absentes, telles que les fonctions 3D des cartes graphiques modernes, ou encore une interface réseau sur un ordinateur qui n'en dispose pas. Ainsi, les programmes qui utilisent ces fonctionnalités peuvent s'exécuter 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 matériel sous-jacent. Le système d'exploitation apparaît donc comme une machine virtuelle de haut niveau pour les programmes.
Il est évident que le système doit savoir se montrer le plus discret possible, car le but final n'est pas de gérer l'ordinateur, mais bel et bien de s'en servir. Toutefois, la mode actuelle est de faire des systèmes de plus en plus complexes, et de plus en plus visibles, et par conséquent de moins en moins discrets (suivez mon regard…). De nos jours, la notion de système d'exploitation englobe donc de plus en plus l'ensemble des logiciels permettant d'utiliser le matériel 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 forcément pris conscience.
I-B. Qu'est-ce que Linux ?▲
Linux est le noyau d'un système 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 systèmes Unix remontent à la première version d'un système d'exploitation expérimental développé par Dennis Ritchie et Ken Thompson dans les laboratoires AT&T's Bell Laboratories en 1969. Ce système a avant tout été développé par des programmeurs, pour des programmeurs, et reprenait un certain nombre de concepts qui avaient été développés auparavant pour le système d'exploitation Multics (abréviation de « Multiplexed Information and Computing Service »), dont le rôle était de fournir des services informatiques centralisés à un grand nombre de personnes (un peu comme le Minitel a tenté de le faire par la suite). Multics n'a jamais réellement vu le jour, en revanche, le système Unix initial a engendré un grand nombre d'autres systèmes plus ou moins compatibles. Récemment, les différents fournisseurs de systèmes Unix se sont accordés pour définir l'ensemble des fonctionnalités que tous les systèmes Unix doivent supporter, afin de résoudre les problèmes engendrés par les incompatibilités existantes entre ces différents systèmes. Le terme Unix est donc un terme générique pour représenter l'ensemble de tous ces systèmes, dont Linux fait partie. Pour l'anecdote, la dénomination Unix provient de la contraction de « Unics » (abréviation de « Uniplexed Information and Computing Service »), terme forgé ironiquement pour bien signaler qu'Unix était une version allégée de ce que Multics devait être.
Bien que compatible avec les dernières spécifications Unix, Linux ne contient pas une ligne du code source du système Unix original, ce qui en fait ce que l'on appelle un « clone ». Cela dit, il s'agit réellement d'un système Unix à part entière. En tant que tel, il dispose des fonctionnalités fournies par les systèmes Unix : il est multitâche, multiutilisateur et relativement orienté réseau. Vous aurez donc, avec Linux, un système fiable, fonctionnel et performant.
Comme nous l'avons dit, Linux n'est que le noyau d'un système d'exploitation. Ce n'est donc que le composant de base qui prend en charge toute la gestion du matériel. Mais quel est donc ce système d'exploitation ? Il s'agit du système GNU/Linux, comprenant donc, outre le noyau Linux, plusieurs autres couches logicielles développées par la Free Software Foundation et d'autres organisations. Ces couches prennent en charge différentes fonctionnalités, telles que l'utilisation de l'ordinateur en ligne de commande, l'affichage graphique, et la gestion complète de l'environnement utilisateur en mode graphique. Parler de Linux en tant que système 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 idées reçues, il existe un grand nombre d'applications pour Linux. La plupart de ces applications peuvent être installées avec le système GNU/Linux, ce qui fait qu'en pratique ce système forme un ensemble complet et parfaitement utilisable pour la plupart des tâches courantes.
Une installation correcte de Linux vous permettra donc de réaliser les opérations les plus classiques, comme effectuer un travail bureautique, naviguer sur Internet, réaliser l'acquisition, la capture et le retraitement d'images, réaliser des animations 3D ou encore programmer. En revanche, autant vous prévenir tout de suite : nombre de jeux ne sont tout simplement pas disponibles sous Linux, bien que les principaux titres soient régulièrement portés. De même, vous ne trouverez pas forcément tous les logiciels spécialisés qui existent sous Windows, et certains logiciels se contenteront des fonctionnalités fondamentales. Vous ne pourrez donc pas réaliser 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 utilisées par nombre de professionnels indépendants ou par des PME.
Les systèmes Linux se présentent généralement sous la forme de « distributions », que l'ont peut acheter dans le commerce ou télécharger sur Internet (de manière tout à fait légale, 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 système d'exploitation et des logiciels les plus utiles et les plus connus pour Linux. Une distribution Linux est donc réellement bien plus qu'un système d'exploitation : c'est un tout qui vous permettra réellement d'utiliser complètement votre ordinateur, généralement sans même à avoir à installer de logiciels complémentaires ! De ce point de vue, Linux est beaucoup plus fonctionnel que les autres systèmes d'exploitation propriétaires, qui sont en pratique livrés « nus ».
I-C. Pourquoi Linux ?▲
Que les choses soient claires : l'installation de Linux peut être une opération relativement compliquée, et l'usage d'un système Unix en général n'est pas à la portée de tout le monde. Même si la qualité des distributions actuellement disponibles s'est grandement accrue ces derniers temps, au point que n'importe qui peut installer un système Linux viable sans trop de problèmes, la configuration du système pour obtenir un fonctionnement correct exige un travail assez important. En particulier, les distributions actuelles éprouvent encore quelques difficultés pour optimiser les périphériques exotiques, et souvent seules les fonctionnalités de base sont correctement configurées après une installation classique. Par ailleurs, la plupart des applications sont développées par des groupes de programmeurs indépendants, et bien que ce soit justement le rôle des distributions de réaliser l'intégration de tous ces composants dans un environnement homogène, celle-ci n'est pas forcément parfaite. Les outils de configuration des distributions vous permettront sans doute de configurer votre système de base simplement, mais pour aller au-delà, il faudra sans doute intervenir manuellement.
Néanmoins, il faut reconnaître 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 périphériques et cartes graphiques à la mode), ou dont les constituants sont de marque courante, obtient rapidement un système fonctionnel et capable de réaliser la plupart des opérations qu'il désire. En particulier, celui qui utilise son ordinateur pour travailler (j'entends par là écrire des lettres, les imprimer, naviguer sur Internet pour récupérer des informations, ou programmer) peut parfaitement se contenter de l'installation par défaut. Ce type de situation ne convient pas à tout le monde : la plupart des gens disposent de cartes graphiques récentes (surtout depuis l'avènement des jeux 3D) ou de périphériques spécifiques. 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 bât blesse ! Si l'on désire que Linux reconnaisse ces matériels exotiques, il va falloir mettre les mains dans le cambouis et avoir une bonne dose de patience. Ce problème de configuration apparaît malheureusement principalement pour les particuliers, qui souvent disposent de machines hétéroclites et absolument non standards. Dans le cadre d'une entreprise, il existe des personnes qualifiées pour résoudre ce type de problème, mais ce sont des informaticiens et, de plus, les machines sont souvent homogènes, ce qui permet d'apporter des solutions génériques.
Il faut donc être informaticien ou amateur très éclairé pour installer Linux sur une machine de particulier et pour le configurer de manière 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 même une tâche très simple à réaliser 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 à présent, et il pense que c'est relativement facile. Et pourtant, il réalise souvent des tâches d'une complexité qui dépasse, là aussi, le commun des mortels.
Heureusement, et c'est là la force de Linux, ces opérations ne doivent être effectuées 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 système 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 système. 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 nécessaire de le changer.
En résumé, on peut affirmer que :
- Linux est un système 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 très difficile à réaliser ;
- cependant, elle peut dérouter les personnes qui ne l'ont jamais effectuée ;
- mais le jeu en vaut la chandelle, parce que le système est réellement solide.
I-D. 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.
Le chapitre 2 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.
Le chapitre 3 décrit les concepts de base de la plupart des systèmes d'exploitation, et présente l'installation de trois distributions Linux représentatives de ce qui existe actuellement. À l'issue de cette partie, vous devez disposer d'un système fonctionnel, utilisable, mais non optimisé et ne permettant pas forcément d'utiliser tous vos périphériques.
Le chapitre 4 présente un peu le système 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 système.
Le chapitre 5 constitue un petit cours d'Unix pour les nouveaux utilisateurs de ce type de système. Sa lecture en est fortement recommandée, du moins si vous voulez avoir un aperçu des possibilités de Linux et de l'ensemble de ses fonctionnalités.
Le chapitre 6 traite des opérations d'administration et de maintenance de base des systèmes Unix. Cette partie est en quelque sorte la suite de la quatrième partie, où les notions plus spécifiques à l'administration de la machine sont décrites.
Le chapitre 7 donne les notions de base sur les mécanismes de compilation et décrit la manière de faire pour compiler la dernière version de GCC, le compilateur C/C++ du projet GNU. Elle décrit également la technique à utiliser pour compiler et installer un nouveau noyau dans le système, opération indispensable pour obtenir un noyau optimisé qui « colle » à la machine.
Le chapitre 8 présente la manière dont la configuration du matériel est réalisée sous Linux, ainsi que la manière dont le système fonctionne en interne. Elle vous permettra de configurer et d'optimiser votre système pour votre matériel.
Le chapitre 9 traite de la configuration du réseau sous Linux. Le réseau est réellement l'un des aspects les plus importants de Linux, et nécessite donc une attention toute particulière.
Enfin, le chapitre 10 et dernier chapitre vous décrit le fonctionnement et la procédure d'installation de XWindow, l'environnement graphique de Linux. Cet environnement est particulièrement riche et fonctionnel, et mérite donc que l'on s'y attarde également.