Chapitre 1. Un petit rappel pour les « Nuls »

Beaucoup de gens qui utilisent les ordinateurs ne comprennent que très peu à l'ordinateur lui-même. J'ai rencontré beaucoup de gens qui ne font pas la différence entre le système d'exploitation et les applications qui tournent sur ce système d'exploitation. Si par hasard vous faites partie de cette catégorie de personnes, vous devriez probablement jeter un oeil à cette partie. Vous par contre, les techniciens, vous allez probablement choisir de passer directement à la partie suivante.

Simplement dit, le système d'exploitation est le chef d'orchestre de l'ordinateur. Le système d'exploitation se charge de tous les détails d'interaction avec le matériel de sorte que les applications ne doivent pas trop s'en préoccuper. Par exemple, tant que les applications savent comment interagir avec le système d'exploitation, elles n'ont pas besoin de savoir comment gérer une imprimante, parce que le système d'exploitation le fait à leur place. Le noyau est le coeur du système d'exploitation et c'est lui qui gère la majeure partie des interactions avec le matériel.

Le tableau ci-après liste quelques systèmes d'exploitation courants, le type de matériel qu'ils utilisent et leur utilisation la plus fréquente. La plupart des gens utilisent un ou deux systèmes d'exploitation chez eux et dans leur profession, en tout cas dans les bureaux. Microsoft Windows est le plus courant de tous et fonctionne sur les PC IBM ou compatible. Mac OS X d'Apple tourne sur les ordinateurs Macintosh, communément appelés « Macs ».

MatérielSystème d'exploitationUtilisation courante
Mac (Apple)Mac OSX d'AppleGraphisme, impression, utilisation domestique
PC IBMMicrosoft WindowsOrdinateurs de bureau (privé et professionnel)
PC IBMGNU/Linux et BSDRéseaux d'entreprises et passionnés
Sun SPARCSun SolarisRéseaux d'entreprises

Ce que de nombreuses personnes ne réalisent pas, c'est qu'il existe deux alternatives à Mac OS X et Windows, répandues majoritairement par le bouche à oreille. Un s'appelle GNU et utilise le noyau Linux, alors que l'autre est BSD, qui est par ailleurs le fondement de Mac OS X. Le noyau Linux est la partie la plus connue du système GNU, et la plupart des gens parlent simplement de « Linux » à la place de GNU/Linux[1]. Ce livre utilise le terme « GNU » ou « GNU/Linux », sauf s'il s'agit de faire référence au noyau, car il est peu habituel d'utiliser le nom du noyau pour faire référence à un système d'exploitation complet.

GNU/Linux est un système d'exploitation « UNIX-like », c'est-à-dire que malgré le fait qu'il ne soit pas reconnu par les institutions qui définissent les systèmes UNIX, il est presque parfaitement conforme aux standards UNIX. Contrairement à Windows et Mac qui existent sous une seule forme, GNU/Linux et BSD peuvent exister en différentes variétés ou distributions. Il y a en fait plus de 330 distributions actives de GNU/Linux. GNU/Linux est utilisé majoritairement comme un système d'exploitation serveur, mais il devient de plus en plus fréquent comme système d'exploitation d'ordinateur individuel.

Certaines distributions GNU/Linux sont généralistes et destinées à la plupart des utilisations domestiques et professionnelles. Beaucoup d'entre elles sont spécialisées dans un objectif précis, comme des pare-feu ou des CD d'évaluation permettant de faire fonctionner le système sans l'installer sur l'ordinateur. Les « Live CD » permettent de se familiariser avec le système GNU/Linux. D'autres encore sont destinées aux passionnés qui souhaitent apprendre comment fonctionne GNU/Linux.

BSD est en fait un UNIX, et nous en connaissons au moins trois ou quatre variantes principales. Les plus connues sont FreeBSD, OpenBSD et NetBSD. Il en existe au moins six autres variantes. Il est intéressant de savoir que FreeBSD est le système de base pour le convivial Mac OS X. Microsoft semble aussi utiliser des serveurs FreeBSD pour certains de ses sites Web. MSN (ou Hotmail) se trouvait sur un système BSD.

Ces systèmes d'exploitation ont été conçus dès le départ comme des systèmes multi-utilisateurs utilisables en réseau. De nombreuses applications (programmes utilisés par les utilisateurs) existent pour GNU et BSD. Des suites bureautiques capables d'ouvrir des documents Microsoft Office, des éditeurs de notation musicale en passant par les lecteurs DVD, les utilisateurs disposent d'applications qui leur permettront d'accomplir leur tâche dans leur église ou leur ONG. Dans la mesure où ces systèmes incluent presque toujours les outils de développement de logiciels, il est toujours possible de personnaliser un logiciel ou d'en développer un nouveau.

Un des avantages de ces systèmes est qu'ils fonctionnent bien dans une infrastructure « client-serveur », où un ordinateur rend des services à d'autres. Le meilleur exemple est Internet : les serveurs Web offrent des pages aux clients Web (votre navigateur). Un autre bon exemple est illustré par les serveurs de fichiers qui stockent les fichiers que vous créez sur votre ordinateur. La terminologie « client-serveur » peut paraître quelque peu confuse, car le concept s'applique aussi bien aux programmes qu'aux ordinateurs physiques.

L'illustration ci-dessous donne une vague idée de ce que l'informatique client-serveur représente. Le serveur se trouve la plupart du temps dans une pièce protégée, et on n'y accède que lorsque des administrateurs effectuent des tâches de maintenance. Le serveur peut par exemple faire fonctionner Apache, ou de nombreux autres programmes serveurs. L'ordinateur est l'outil des utilisateurs pour accéder aux informations ou aux services du serveur, tels que l'impression ou le stockage des fichiers.

Illustration 2 - Le concept client-serveur: le serveur fournit des données et des services aux logiciels clients depuis un ordinateur distant.

En fait, un ordinateur peut être à la fois client et serveur, selon la situation. Par exemple, un seul ordinateur peut faire tourner la partie serveur et la partie cliente d'un programme, comme le serveur de base de données MySQL et ses clients. Dans d'autres situations, un ordinateur peut stocker des fichiers pour un autre, et vice-versa. Autrement dit, Jean peut donner à Sarah l'accès aux fichiers de son ordinateur, tout en pouvant également accéder aux fichiers de Sarah sur le sien. On appelle cela une configuration « poste-à-poste ».

Auriez-vous complètement perdu le fil ? Si c'est le cas, pas de soucis. Tout ça est quelque peu difficile à expliquer. Ce qu'il faut retenir, c'est que dans l'informatique client-serveur, un ordinateur ou un programme offre des services à un autre ordinateur ou programme. Dans ce livre, nous parlerons de serveurs (ordinateurs) et d'ordinateurs (clients) en parlant de matériel, et de clients et serveurs en parlant de logiciels.

De nombreuses organisations aux Etats-Unis recyclent de vieux ordinateurs et installent une version de GNU/Linux pour les donner ensuite à des familles à bas revenu. Certaines églises utilisent déjà GNU/Linux pour fournir des services réseau à des ordinateurs Windows. D'autres le font pour héberger des sites Web ou des intranets. Certains le font uniquement pour des raisons financières. Le quartier général d'une dénomination chrétienne allemande utilise SUSE Linux Open Exchange Server au profit de plus de 20'000 utilisateurs.

Une des différences principales entre GNU/Linux et Windows est le système de fichiers. Les débutants non technophiles peuvent être perturbés par le terme « répertoires » alors qu'ils ont plutôt utilisé le terme « dossiers ». Les dossiers sont fréquemment appelés « répertoires », c'était en tout cas comme ça que tout le monde les appelait. Microsoft a adopté la terminologie d'Apple en introduisant Windows 95 dans le but de simplifier le terme pour les débutants. Les termes « dossier » et « répertoire » sont donc synonymes.

La plupart des utilisateurs Windows connaissent bien l'invite c:\ qui correspond au répertoire racine du disque dur. Windows 95 a introduit les dossiers « Mes Documents » et « Program Files ». Windows 2000 et XP placent le dossier Mes Documents sous le dossier « Documents and Settings ». La plupart des programmes devraient se trouver dans le dossier « Program Files », alors que les documents personnels devraient se trouver dans le dossier « Mes Documents ».

Illustration 3 - Konqueror, le gestionnaire de fichiers de KDE affichant le répertoire racine et 3 répertoires personnels

L'illustration 3 montre un gestionnaire de fichiers similaire à l'Explorateur Windows. GNU/Linux, comme la plupart des systèmes Unix, utilise « / » pour représenter le répertoire racine. Le premier niveau sous / est assez compliqué, mais représente une structure logique. L'image qui précède montre trois utilisateurs et un répertoire public où ils peuvent tous partager leurs fichiers. Elle montre également les répertoires principaux sous /. Nous nous intéresserons au système de fichiers en détails plus loin dans ce livre. Pour l'instant, ne retenez que ces principes de base.

La plupart des systèmes d'exploitation ont aussi deux types d'interface. L'interface est le point de départ pour toutes les interactions entre l'ordinateur et l'utilisateur. Cela peut être une ligne de commande ou une interface graphique. La ligne de commande ne vous donne qu'une invite « $: » ou « c:\ » ou quelque chose du genre, et attend que vous saisissiez une commande. Après avoir saisi la commande, vous pressez la touche « Entrée » pour que quelque chose se passe. Bash (Bourne Again Shell) est l'interface ligne de commande la plus fréquente dans les systèmes GNU/Linux. Il existe d'autres interfaces (ou « shells ») pour les systèmes GNU/Linux et BSD. Windows offre le même système, mais avec un seul type d'interface. L'image ci-dessous vous montre à quoi ressemble le système de fichiers dans l'interface Bash.

llustration 4 - L'arborescence root depuis la ligne de commande

L'interface graphique (également appelée le bureau) n'est qu'une belle image pour masquer tout ce qu'on peut faire à la ligne de commande. Au lieu de devoir se souvenir du nom de la commande qui lance votre traitement de texte, vous cliquez sur une icône qui le lance. Mais si vous voulez, vous pouvez toujours taper le nom de la commande à l'invite de commande pour le lancer. De nos jours, la ligne de commande n'est utilisée que pour les tâches d'administration système, alors que l'interface graphique est utilisée pour les tâches de production.

llustration 5 - Le bureau KDE, visible ici sous SUSE Linux 9.2, est semblable au bureau Windows.

L'image précédente montre l'interface graphique KDE sous GNU/Linux. En prêtant attention, vous remarquerez la similitude avec un bureau Windows. Quelques icônes apparaissent sur le côté gauche. Le menu Démarrer est la grande icône verte tout à gauche de la barre des tâches. La zone de lancement, la barre des tâches et la zone système fonctionnent de manière semblable à leur équivalent Windows. Les rectangles numérotés dans la barre des tâches sont les bureaux virtuels. En cliquant dessus, vous aboutissez sur un bureau KDE différent.

Windows et Mac OS X sont tous deux propriétaires et leur utilisation est soumise aux licences de leurs programmeurs. De la même manière, bien des applications qui fonctionnent sur ces systèmes ont le même principe. Les licences propriétaires (à l'exception des gratuiciels propriétaires) interdisent normalement le partage du logiciel avec d'autres utilisateurs, même si beaucoup de gens le font quand même sans respecter la législation en vigueur.

GNU et BSD de leur côté ont des licences qui permettent de partager des copies avec d'autres. La plupart des applications fonctionnant sur ces deux systèmes d'exploitation ont aussi de telles licences. Ces licences offrent d'autres libertés, que nous auront le loisir de discuter plus en détails dans la suite de ce livre.

Il y a une subtile distinction entre le logiciel libre et le logiciel open source (code source ouvert). La différence réside dans le fait que le logiciel libre propage sa liberté à ses utilisateurs, ce qui force souvent les développeurs à offrir les travaux dérivés de ces logiciels sous la même licence. Le logiciel open source permet au développeur de distribuer des produits dérivés sous une licence propriétaire. Ce qui signifie que si tout logiciel libre est open source, tous les logiciels open source ne sont pas forcément des logiciels libres.

Dans la plupart des cas, j'ai utilisé le terme « FOSS » ou « free and open source software » (logiciel libre et open source) pour me référer à l'ensemble. Lorsque vous trouverez le terme « logiciel open source » dans ce livre, vous pouvez considérer le « logiciel libre » comme un sous-ensemble de l'open source.



[1] Il nous paraît plus sensé d'utiliser l'appellation « GNU » lorsqu'on fait référence au système entier. Peu de gens parlent de Microsoft Windows en utilisant « ntkernel32.exe ». Cependant, de nombreuses personnes préfèrent appeler GNU « Linux ».