Misfu, le site des cours Informatique/Bureautique/Mathematiques


 

Linux, sa communauté et sa philosophie de développement

Linus et le système Minix


En 1989, un étudiant américain du nom de Andrew S. Tannenbaum, trouve que le système proposé sur son ordinateur muni d'un processeur de la famille i386 ne lui convient pas tout à fait. Il s'attèle à une tâche ardue puisqu'il se met à écrire son propre système. Un an plus tard, il sort la version 1.1 de son système qu'il appela Minix. C'est un système à vocation éducative, accessible pour un étudiant. Mais très rapidement Andrew tannenbaum s'essouffle ; il n'a pas que ça à faire et puis il tout seul.


En 1991, le jeune finlandais Linus Torvalds est étudiant en informatique à l'université d'Helsinki. Il utilise Minix sur son ordinateur tout neuf. Il est convaincu que l'informatique doit être pour l'utilisateur un moyen de gagner du temps, un outil et non une contrainte. En dehors des systèmes qu'il peut utiliser sur les serveurs de son université, il trouve que tous les systèmes (y compris Minix) auxquels il a accès pour sa machine personnelle sont soit trop cûteux, soit trop peu efficaces. Le système Minix qu'il a installé sur son ordinateur doté d'un processeur 386 s'avère trop limité pour lui. En conséquence, il décide d'écrire lui-même un système d'exploitation qui le satisfasse. Pour cela, il se fonde sur le système d'exploitation Minix.


Au mois d'août 1991 est né Linux, linus'Unix, L'Unix de Linus dans sa version 0.0.1. Cette version n'était même pas exécutable. L'archive ne contenait que les rudiments des sources du noyau et il fallait compiler Linux sous Minix pour l'utiliser un tant soit peu.

Le 5 octobre 1991, Linux devient autonome lors de la sortie officielle de la version 0.0.2. Celle-ci permet de faire tourner quelques applications GNU (logiciels libres) essentielles comme le compilateur gcc ou le shell bash. Mais Linus Torvalds réalise très bien que réitérer l'expérience d'Andrew Tannenbaum sur Minix n'est pas viable. Il se convainc qu'il faut répartir la tâche de développement, trouver des collaborateurs et étendre ce projet à un cercle le plus large possible. Pourquoi pas la planète ? A cette époque où la guerre froide vient de se terminer, l'Internet commence à envahir les universités et amorce l'explosion que nous connaissons. Linus Torvalds en profite pour lancer un appel qui est resté célèbre, sur le forum comp.os.minix et décide de mettre le code source sous licence GPL de telle sorte que tout le monde peut alors participer au développement de Linux.


Voici le texte de l'appel de Linus :


« Vous regrettez les beaux jours de Minix 1.1, époque où les hommes étaient des hommes et écrivaient leurs propres pilotes de périphériques ? Vous manquez d'un superbe projet et vous vous languissez d'un système que vous pourrez modifier à votre convenance ? Vous êtes frustrés que tout fonctionne doud Minix ? Plus de nuits blanches passées à tenter de faire fonctionner un périphérique récalcitrant ? Alors ce message pourrait bien être pour vous. Comme signalé il y a un mois, je travaille actuellement sur une version libre et gratuite d'un système ressemblant à Minix pour les ordinateurs AT-386. J'ai finalement atteint un stade où il est utilisable (bien qu'il puisse ne pas l'être pour vous, cela dépend de ce que vous recherchez) et je compte soumettre les sources à une diffusion plus large. Il s'agit juste de la version 0.0.2 ... mais j'ai pu exécuter bash, gcc, gnu-make, compress, etc, avec succès sur mon système. »


Définition de Linux


Sur la première page des livraisons régulières de la revue « Linux Magazine France », on peut trouver une bande rectangulaire portant en titre la question « Qu'est-ce que Linux », avec en bas la réponse qui suit :


« Linux est un système d'exploitation multiutilisateur et multitâche qui peut être installé sur plusieurs plate-formes différentes (Intel, Apple, DEC, Sparc, etc.).


Il est conforme à la norme POSIX et peut fonctionner sans problème avec d'autres systèmes d'exploitation comme Apple, Microsoft et Novell.


Le système d'exploitation Linux est libre. Il peut être copié et redistribué gratuitement. Le code source est également disponible pour tous de la même manière. »


La communauté Linux


L'appel de Linus provoqua la formation spontanée d'une communauté qui compte aujourd'hui environ 3000 développeurs (programmeurs) du noyau et 10 millions d'utilisateurs d'après les estimations de différents cabinets d'études. La communauté Linux comprend donc l'ensemble des développeurs, pas seulement du noyau d'ailleurs, et les utilisateurs. Ils mettent à profit l'internet pour tisser des liens et promouvoir une entraide à tous les niveaux. Cette dernière reste une des sources principales de résolution des problèmes techniques, et ce, même pour les informaticiens confirmés. Les informations techniques ou non sont partagées par de nombreux moyens tels que les forums de discussion, les sites spécialisés ou les sites CVS destinés aux développeurs. Aussi de nombreuses associations se sont créées pour regrouper les enthousiastes et faire connaître Linux au plus grand nombre en organisant diverses manifestations. En France ce rôle est assuré par les LUGs 5Linux Users Groups) et quelques associations dont bien sûr l'ANFA.


Le terme de communauté provient de cette collaboration entre développeurs et utilisateurs dans le monde Linux.


La communauté des développeurs de Linux, répartie à travers le monde, développe de nombreux logiciels au sein de projets tout aussi nombreux. Certains de ces projets ont pris une ampleur mondiale qui ferait pâlir d'envie de gran,des multinationales. Les principaux, ou du moins les plus médiatiques, sont le noyau lui-même, bien sûr, mais aussi deux projets de « bureaux », KDE et GNOME, et de nombreux projets de développement de solutions de clusters, de haute disponibilité, ...


Cette communauté Linux présente deux caractéristiques qu'il faut souligner :


  1. La plupart des membres de cette communauté ont en commun une certaine culture informatique qui n'est pas nécessairement une compétence particulière mais surtout un état d'esprit. Plutôt que de se plaindre que « ça ne marche pas », le linuxien tente généralement de découvrir l'origine du problème, et, dans la mesure du possible, de le résoudre par lui-même.


  2. La coopération comme base de la communauté. Sur Internet, on peut trouver aisément la solution à la plupart des problèmes courants rencontés sous Linux. En contrepartie, on attend la même démarche des nouveaux utilisateurs. Une fois un problème résolu, il peut être utile de faire profiter la communauté en publiant la solution sur une page Web, par exemple.


Logiciel libre et le GPL


On qualifie de libre un logiciel qui répond aux principaux critères suivants :

  • il est livré avec ses sources, qu'il est possible de modifier ;

  • il est possible de le redistribuer sans contrainte ;

  • il est possible de distribuer les modifications que l'on a faites. Ce type de diffusion n'interdissant pas la commercialisation.



La tradition du logiciel libre remonte aux sources de l'informatique. Développés principalement en milieu universitaire, les logiciels étaient fréquemment échangés et améliorés entre laboratoires.


Au début des années 80, Richard Stallman , alors professeur au M.I.T, le célèbre Massachusetts Institut of Technologie, s'est vu refuser l'accès au code d'un programme. Il prit conscience du risque de la propriétarisation des logiciels. Il affirme qu' »il n'est pas normal que lorsqu'on utilise un logiciel, on ne puisse pas savoir ce qu'il y a dedans ». En effet, les logiciels commerciaux sont alors livrés uniquement en format exécutable ; ils sont donc illisibles par le commun des mortels, ou du moins des programmeurs. Le risque est que ces logiciels soient développés avec un piètre souci d'optimisation ou, pire, qu'ils contiennent des bouts de codes mal intentionnés qui pourraient mettre en danger la machine ou le réseau sur lesquels ces logiciels s'exécutent. Sans compter que si l'éditeur du logiciel disparaît pour une raison ou une autre, l'utilisateur n'a plus accès au code source du programme.


L'idée de Stallman l'amènera rapidement à la création d'une fondation appelée la Free Software Foundation (FSF), comprendre Fondation pour le logiciel libre. Le fait que les anglophones désignent libre et gratuit par le même terme « free » recèle un risque de confusion entre les deux termes et contient les germes de difficulté futur. D'ailleurs Richard Stallman a certainement pressenti cette difficulté et a fait en sorte que le premier travail de la FSF a été de produire une licence parfaitement adaptée au logiciel Libre : il s'agit de la GPL (General Public Licence, ou Licence Publique Générale). En 1984 il initialise le projet GNU (prononcer gnou). Ce terme est un acronyme récursif qui signifie GNU is Not Unix. L'objectif du projet consiste à créer une version libre de la plupart des outils que l'on trouve courramment sur les systèmes Unix. C'est une suite logique de la pensée de M. Stallman : les logiciels libres étant librement reproductibles, modifiables et distribuables par qui que ce soit, rassemblons-les pour former un Système d'exploitation libre lui aussi et rendre ainsi leur liberté à tous les utilisateurs et développeurs de l'informatique. M. Stallman a lui-même contribué au projet GNU par ses proprements développements, en apportant des logiciels comme le compilateur C/C++ le plus répandu sur la planète, GCC (Gnu C Compiler), le débogueur GDB (Gnu Syumbolic Debugger), Emacs, célèbre éditeur de texte pour lequel il a reçu le prix Grace Hopper en 1991.


La GPL, la licence des produits GNU est une licence libre. Elle ajoute une contrainte particulière : elle autorise l'utilisation d'un programme GPL à l'intérieur d'un autre programme, à la condition que celui-ci soit distribué sous licence GPL. Elle garantit ainsi la non-propriétarisation des logiciels. Le hasard et la nécessité se rencontrent : Linus Torvalds a adopté la GPL pour son noyau Linux, de même qu'il a recupéré l'ensemble des programmes développés par le projet GNU pour fournir une base d'applications pour le système d'exploitation fiable que nous connaissons et qu'il est plus exact de désigner par GNU/Linux.


Les différentes licences d'utilisation des logiciels


Pour mieux saisir la portée de la licence GPL, analysons rapidement les autres licences et on se rend compte du contraste saisissant.

Tout usage d'un logiciel doit s'accompagner de l'acquisition d'une licence d'utilisation. Il s'agit d'un contrat précisant la manière dont vous aurez le droit d'utiliser ce logiciel. On peut classer les logiciels en plusieurs catégories en fonctions du degré de liberté que procure la licence d'utilisation. C'est ainsi que l'on distingue :

  • Les logiciels propriétaires. Il s'accompagnent de licences qui n'autorisent que l'utilisation, généralement assortie de restrictions (limitation d'usage à un nombre donné d'utilisateurs, installation restreinte à un ordinateur, etc).


  • Les partagiciels (sharewares) et les gratuiciels (freewares). Il s'agit de logiciels propriétaires mais ... Les partagiciels sont distribués gratuitement, charge à l'utilisateur de s'acquitter de son prix s'il continue à l'utiliser après une période définie. Les gratuiciels sont des logiciels dont le prix est nul.


Quelques aspects importants de l'économie du logiciel libre


La diffusion de logiciels sous licence GPL n'interdit pas stricto sensu leur vente. En revanche, puisqu'il est possible de les rediffuser à loisir, vous comprendrez que leur rentabilité ne puisse reposer sur l'ancien modèle économique. L'étude de l'économie du logiciel libre sort du cadre de ce manuel. Des thèses universitaires se sont penchés sur la question. C'est dire que ce n'est pas un sujet trivial. Soulignons tout simplement les aspects importants suivants :


  • La vente de service

Les éditeurs de produits GPL réalisent généralement une plus-value importante sur les services et les produits dérivés commercialisés en même temps qu'un logiciel libre. Le support technique est un exemple de service important pour tout entreprise utilisatrice de Logiciels libres. La documentation qui accompagne la plupart des distributions de Linux est un exemple de produit dérivé.

  • Le développeement universitaire

Les universités constituent les berceaux d'un grand nombre de projets développés sous licence libre. C'est le cas de Linux. L'esprit qui anime le développement libre est très proche de l'esprit universitaire de partage des connaissances, d'examen des publications par l'ensemble de la communauté. De plus la publication de logiciels libres permet de rendre un service public, une des vocations de l'administration.

  • La notoriété

Une motivation non négligeable qui pousse au développement d'un logiciel libre est la recherchje de notoriété. Il est assez grisant de savoir que son travail profite à des milliers d'utilisateurs dans le monde, et cela suffit pour motiver un grand nombre de personnes. Cette notoriété peut aussi constituer un atout pour la recherche d'emploi, et ce d'autant plus que chacun peut examiner le code des programmes. Lorsqu'un programmeur peut montrer ce qu'il a développé, il lui est plus facile de faire la démonstration de sa compétence.

  • Les avantages du LL pour l'utilisateur

* Facilité et rapidité de correction. Grâce à la publication du code source (briques constitutives d'un programme, son secret de fabrication), un grand nombre de développeurs peuvent corriger facilement et rapidement (parfois dans un délai de quelques heures, après l'apparition d'un bogue) le programme en cas de problème.

* Pérennité du programme. La disponibilité du code source permet à d'autres de reprendre le développement si l'auteur original se désintéresse du projet.

* La grande diffusion des LL. La liberté de redistribuer les LL rend accessible un grand nombre d'outils aux particuliers. Les LL étant en général diffusés gracieusement sur Internet, l'utilisateur peut disposer d'un large éventail d'applications.



Par l'équipe technique A.N.F.A