Chapitre 9. Ressources système

La manière dont votre système d'exploitation et vos applications utilisent les ressources de votre ordinateur est un autre élément intéressant. Même si GNU/Linux et Windows exigent tous deux une assez grande quantité d'espace disque pour l'installation, GNU/Linux est bien plus flexible et utilise plus efficacement les ressources de votre ordinateur. Certaines distributions GNU/Linux tiennent sur une disquette. Ces distributions ont généralement une utilité bien définie.

Exigences du système pour Windows XP (d'après le site Web Microsoft)

Si votre système correspond aux exigences de Windows (selon liste ci-dessus), il est très probable que cela conviendra également à GNU/Linux. Les exigences de GNU/Linux varient selon vos besoins ou désirs. En fait, il est possible de faire fonctionner GNU/Linux sur un ancien matériel, avec 4-8 Mo de RAM et 60-600 Mo de disque dur. Il est évident que cela ne sera de loin pas idéal, mais vous avez d'autres options.

Certaines distributions GNU/Linux tiennent sur un CD format carte de crédit. D'autres peuvent être utilisées à partir de périphériques USB (pour autant que votre BIOS le permette). De telles distributions sont fréquemment utilisées pour restaurer des systèmes en panne (même pour des systèmes Windows), pour tester GNU/Linux ou encore pour fournir un ensemble limité d'applications qui sont alors disponibles même sans avoir accès à une distribution GNU/Linux complète. Elles sont également idéales pour effectuer des démonstrations.

Pour des églises, il peut évidemment être très important de pouvoir faire fonctionner GNU/Linux sur du matériel ancien. Le matériel donné aux églises est parfois aussi utile qu'un presse-papier. Avec GNU/Linux, Emacs (un éditeur de texte puissant) et bc (un tableur en mode console), même les cas les plus désespérés peuvent être améliorés. Vous préféreriez certainement disposer d'une interface graphique (GUI), mais GNU/Linux est supérieur à DOS pour l'utilisation de la ligne de commande!

GNU/Linux utilise la mémoire libre comme un cache de disque, ce qui réduit la nécessité de rechercher des données sur le disque dur. Cela accélère un peu le système, car l'accès aux disques est plus lent. Il offre un système de fichiers journalisé et efficace, ReiserFS, qui correspond à NTFS dans le monde Windows. ReiserFS peut gérer jusqu'à 17 To (Téraoctets) de données, plus que votre église ne pourra jamais utiliser.

Les applications GNU/Linux utilisent généralement moins d'espace disque, moins de mémoire vive, et créent des fichiers plus petits que leur équivalent Windows. La version MS Word de ce document est 100 Ko plus grande que la version OOo. Le site Web du Consortium du Logiciel Libre présente un document qui met en avant les différences importantes entre MS Office et OpenOffice.org. Ce n'est qu'un exemple d'un développement logiciel robuste dans le mode open source.

Le système de fichiers est probablement l'aspect le plus troublant de GNU/Linux et de UNIX en général. Nous allons présenter les bases du système de fichiers GNU/Linux afin que le lecteur puisse s'y retrouver aisément. Cette présentation s'applique à un système GNU/Linux typique. Bien que cela ne puisse pas s'appliquer complètement à tous les systèmes UNIX ou même GNU, ce qui va suivre correspond à une situation assez traditionnelle.

Parlons un peu tout d'abord des disques et des partitions. Windows utilise des lettres pour nommer les lecteurs. Même les partitions d'un même disque dur reçoivent chacune une lettre. Comme il n'y a que 26 lettres dans l'alphabet, il est possible (bien qu'improbable) de ne pas disposer d'assez de lettres. Il existe peut-être des manières de détourner cela, mais Windows n'a jamais résolu cette limite.

Voici les associations de lettres typiques d'un système Windows:

Le lecteur CD-ROM/DVD-ROM (ou autre périphérique inscriptible) correspond presque toujours à la lettre qui suit la dernière partition de disque dur. Chaque périphérique supplémentaire reçoit la prochaine lettre disponible. Si on dispose d'un seul disque avec 4 partitions, le CD/DVD recevra la lettre « G ».

Le dossier racine de la première partition du disque dur sera appelé « C:\ ». Windows est toujours installé sur le disque « C ». En plus, la plupart des systèmes Windows disposent de quelques autres dossiers:

Les partitions supplémentaires peuvent héberger n'importe quel dossier de votre choix.

GNU/Linux considère la plupart du matériel comme des périphériques de toute sorte. Comme GNU/Linux traite ces périphériques comme des fichiers, des informations à leur sujet peuvent être obtenues dans le répertoire /dev. Le premier disque dur est dénoté « hda », le second « hdb ». La première partition du premier disque se nomme « hda1 ». /dev/hdb1 se réfère donc à la première partition du deuxième disque. Gardez donc cela à l'esprit un moment en examinant le système de fichiers.

Le système de fichiers GNU/Linux utilise une approche plus flexible que Windows, et qui donne plus d'informations. Un répertoire donné peut se trouver sur la première partition du premier disque dur ou sur la sixième partition du deuxième disque sans que l'utilisateur ne s'en aperçoive. Cette flexibilité rend le système transparent pour les utilisateurs. Tout apparaît comme s'il n'y avait qu'un seul système de fichiers.

Le système de fichiers GNU/Linux typique est partagé en plusieurs répertoires qui ont chacun une utilité bien précise. Tout d'abord, les utilisateurs ne peuvent en général pas enregistrer de fichiers en dehors de leur répertoire « home » sans la permission expresse de l'administrateur. Examinons plus en détails le système de fichiers.

/

C'est le répertoire racine (à ne pas confondre avec le répertoire « root » que nous verrons ci-après). On le considère comme le répertoire principal.

/bin

Le répertoire des « binaires » contient essentiellement des commandes à disposition de l'utilisateur.

/boot

Le répertoire « boot » contient des informations requises pour démarrer GNU/Linux lorsque vous enclenchez votre ordinateur.

/dev

Le répertoire « device » contient les fichiers de périphériques. Comme déjà mentionné, tous les périphériques sont traités comme des fichiers.

/etc

Ce répertoire contient des fichiers de configuration pour la plupart du système ainsi que pour un certain nombre de logiciels serveurs.

/home

Le répertoire « home » contient les fichiers de tous les utilisateurs disposant d'un accès (en général quelque chose comme /home/xypublic)

/lib

Le répertoire des bibliothèques (« libraries ») contient des bibliothèques de programmes utilisées par vos applications.

/lost+found

Dans l'éventualité improbable d'une panne du système, vous pourriez y retrouver des données perdues.

/media

Le répertoire « media » est l'endroit où sont connectés (« montés ») des périphériques amovibles, tels que des CD, des disquettes ou des clés USB.

/mnt

Le répertoire « mount » sert à connecter des systèmes de fichiers externes, comme par exemple ceux d'un autre ordinateur du réseau local.

/opt

Le répertoire « optionnel » contient habituellement des programmes expérimentaux ou propriétaires (ou simplement commerciaux). Anciennement, ce répertoire était utilisé pour installer des programmes qui ne faisaient pas partie du système d'exploitation à la base.

/proc

Le répertoire « processus » est en réalité un système de fichiers virtuel et ne consomme pas d'espace disque. Les logiciels de surveillance du système en retirent des informations utiles.

/root

C'est le répertoire privé de l'administrateur système (c'est-à-dire l'utilisateur « root »).

/sbin

Le répertoire des « binaires système » contient des fichiers binaires utilisés par le système et des programmes uniquement à disposition de l'administrateur système (utilisateur root).

/srv

Le répertoire des « services » (ou serveur) est assez récent, et il contient des services tels que le serveur Web Apache. Il peut contenir des scripts CGI pour les développeurs Web. Il faut être conscient que cette hiérarchie peut être utilisée différemment dans des organisations différentes.

/tmp

Le répertoire « temporaire » contient des fichiers temporaires.

/usr

Le répertoire « utilisateur » contient des programmes et de la documentation (/usr/doc ou /usr/share/doc) pour les utilisateurs.

/var

Le répertoire « varié » contient des données de journalisation ou de mise en tampon, entre autres données utiles.

Bien que chaque répertoire soit conçu pour contenir un certain type d'information, les administrateurs ont une très grande latitude pour les utiliser selon leurs désirs. Par exemple, certaines distributions installent OpenOffice.org dans /usr/local ou dans /opt. D'autres préfèrent l'installer dans /usr/lib. Toutes ces options sont valides et dépendent des préférences. C'est par ailleurs une des raisons qui explique la difficulté pour les virus d'endommager sérieusement des systèmes GNU/Linux. Les documents des utilisateurs doivent être sauvegardés dans le cadre de /home.

Maintenance et mises à jour des logiciels

Lorsqu'ils développent des logiciels, les programmeurs créent généralement des fichiers contenant du code réutilisable dans d'autres programmes. C'est ce qu'on appelle les bibliothèques. Les programmeurs ont plusieurs possibilités de tirer avantage des ressources de l'ordinateur. Dans le développement pour Windows, la plupart des programmeurs ont l'habitude d'intégrer les bibliothèques dans leurs programmes. Dans le développement pour GNU/Linux ou UNIX, les programmeurs essaient de tirer profit des bibliothèques disponibles dans le système. Considérons les avantages et les inconvénients de chaque solution.

Lorsque un programme est installé sous Windows, l'installeur présente quelques options, puis il installe les fichiers du programme dans son propre répertoire. Les utilisateurs ne voient pas ce qui se passe en arrière-plan. Cette approche présente cependant quelques inconvénients. D'un côté, plusieurs occurrences d'une bibliothèque peuvent être installées dans le système. De plus, un programme peut copier une bibliothèque modifiée et écraser ainsi une bibliothèque existante.

Supposons qu'un bogue ou une faille de sécurité soit découverte dans une bibliothèque. Si vous mettez à jour un seul programme utilisant cette bibliothèque, il est toujours possible que d'autres copies non mises à jour existent dans le système. La plupart des gens ne vont même pas penser à contrôler si d'autres programmes utilisent cette bibliothèque. Si les autres fournisseurs de logiciels n'ont pas offert de mise à jour de leur côté, le système concerné reste ainsi vulnérable.

Lorsqu'une bibliothèque est écrasée par une version nouvelle ou modifiée, il est possible que la différence ne soit pas perceptible dans un premier temps. En principe, l'installeur devrait avertir l'utilisateur des conflits et proposer le choix de conserver l'ancien fichier ou de le remplacer. Il est probable que la plupart des utilisateurs vont choisir d'écraser l'ancienne version, dans la mesure où le nouveau programme a besoin de la nouvelle version. Imaginez la tête du comptable en constatant qu'un rapport financier trimestriel n'a pas été mis à jour parce qu'une bibliothèque a été mise à jour lors de l'installation d'un nouveau programme.

Les systèmes UNIX adoptent une approche totalement opposée. Les développeurs n'incluent des bibliothèques supplémentaires que lorsqu'ils ont besoin d'en créer une nouvelle pour offrir une fonctionnalité qui n'est pas à leur disposition. Sinon, les programmes s'appuient généralement sur les librairies standard installées dans le système. Cette approche réduit ou élimine le nombre de copies d'une même bibliothèque et permet la mise à jour de celle-ci sans influencer les fonctionnalités des logiciels déjà installés.

Cela peut occasionnellement constituer une certaine difficulté. Il peut arriver que lors de la mise à jour d'un programme, une bibliothèque utilisée par ce programme dépende d'une autre bibliothèque. C'est ce que certains ont appelé « l'enfer des dépendances ». Ce problème tend à diminuer en raison de l'aide apportée par les logiciels de gestion des paquets qui se chargent de résoudre ce cercle vicieux des dépendances.

Les distributions basées sur Debian utilisent « Apt » et possèdent ainsi une solide réputation d'éliminer en pratique les problèmes de dépendances. La popularité de Apt a amené à la création d'une version de Apt pour RPM qui fonctionne sur les distributions basées sur RPM, comme Red Hat, Fedora Core, SUSE et Mandrake. Le « Yellow Dog Updater, Modified » (YUM) est utilisé par beaucoup d'utilisateurs de Fedora Core.