suivant chapitre avant contenu index

Suivant: Conseils aux débutants Chapitre: Introduction à Linux Avant: À propos du


Conception et philosophie de Linux

  Lorsque de nouveaux utilisateurs découvrent Linux, ils se font souvent de fausses idées sur le système. Linux est unique, et il est important de comprendre sa philosophie et la manière dont il est conçu pour l'utiliser efficacement. Trêve de plaisanteries. Même si vous êtes un vieux routard du monde UNIX, ce qui va suivre va certainement vous intéresser.

  Dans les multinationales développant des systèmes UNIX, la totalité du système est développé selon des règles très rigoureuses permettant de maîtriser la qualité des programmes, de la documentation, de recenser et corriger les bogues, et ainsi de suite; les développeurs n'ont pas le droit de rajouter des améliorations ou de changer des portions de code selon leurs envies; chaque programmeur se voit assigner une ou plusieurs parties du code du système, et lui et uniquement lui pourra avoir l'autorisation de modifier certaines sections une fois que les modifications seront dûment testées et validées selon des processus techniques et administratifs longs et complexes.

Le département qualité utilise des tests de régression sur chaque nouvelle version du système, et rapporte tout problème. Les développeurs ont la responsabilité de corriger ces problèmes comme il leur est indiqué; de complexes méthodes d'analyse statistiques sont employées pour s'assurer qu'un certain pourcentage de bogues sont corrigés avant chaque nouvelle version, et que le nouveau système passe avec succès un certain nombre de tests critiques.

Pour tout dire, le processus de développement et la maintenance d'un système UNIX commercial sont très compliqués. La compagnie doit avoir la preuve que la prochaine version du système est réellement prête à être diffusée. Le développement d'un UNIX commercial est un énorme travail, employant souvent des centaines (voire des milliers) de programmeurs, testeurs, documentalistes, et personnel administratif. Bien sûr cela diffère selon le cas, mais vous avez une idée de ce que ce peut être.

Avec Linux, vous pouvez oublier complètement le concept de développement organisé, contrôle de sources, rapport de bogues structurés, analyses statistiques, ou autres. Linux est, et sera probablement toujours, un système de ``hackers''   gif.

Linux a vu le jour grâce aux efforts d'un groupe de volontaires répartis aux quatre coins du monde, reliés entre eux par l'Internet. Grâce à ce réseau, quiconque ayant suffisament de connaissances et de temps peut aider au développement et au déboguage de Linux, écrire des applications, porter des programmes, rédiger de la documentation, ou aider les utilisateurs perdus. Il n'existe pas une organisation, une unique entité responsable du développement du système. Pour sa plus grande part, la communauté Linux communique par diverses listes de diffusion et de forums Usenet. Un certain nombres de conventions se sont installées d'elles-mêmes au fil du développement; par exemple celui qui désire voir son code inclus dans le noyau Linux ``officiel'' doit l'envoyer par courrier électronique à Linus Torvalds,   qui le testera et l'incorporera au noyau (tant qu'il ne provoque pas d'effets de bords ou ne va pas à l'encontre de la philosophie du système, il y a beaucoup de chances pour qu'il l'accepte).

  Le système en lui-même est conçu pour être très ouvert à toutes sortes d'améliorations ou possibilités. Bien que récemment, le nombre de nouvelles possibilités et de changements de conception de certaines parties du code ait énormément diminué, la règle générale veut qu'une nouvelle version du noyau apparaisse régulièrement au bout de quelques mois, (et à certaines époques bien plus souvent encore). Bien sûr cela est très variable, tout dépend du nombre de bogues à corriger, de la quantité de critiques des utilisateurs testant les pré-versions du code, et du nombre d'heures de sommeil en retard de Linus.         Disons tout de suite que tous les bogues n'ont pas été corrigés et que certains problèmes ne sont pas éliminés à chaque version. Mais tant que le système parait fonctionner suffisamment bien, que les bogues sont mineurs et ne provoquent pas de situations critiques, il est considéré comme ``stable'' et de nouvelles versions peuvent alors être diffusées. Le but du développement Linux n'est pas de fournir à tout prix des versions totalement parfaites, sans aucun bogues, mais de développer une implémentation d'UNIX libre et gratuite. Linux est avant tout fait pour les développeurs.

Quiconque ayant écrit une nouvelle application ou rajouté une nouvelle possibilité au système, le diffuse généralement comme version ``alpha'',     qui correspond à une étape où les personnes courageuses et ayant du temps libre testent le code pour trouver ses points faibles. Du fait que la communauté Linux dépend en grande partie de l'Internet, ces versions alpha sont généralement mises à disposition sur un ou plusieurs sites FTP (voir annexe C), et un message prévenant de leur arrivée posté dans l'un des forums Usenet consacrés à Linux. Les utilisateurs récupérant et testant ces programmes peuvent contacter l'auteur directement par courrier électronique pour lui faire part des problèmes éventuellement rencontrés.

Après ce stade alpha initial, et une fois que le programme a été amélioré et corrigé, le code arrive au stade ``bêta'',     dans lequel il est en général considéré comme étant stable, mais encore incomplet. (Par exemple, il fonctionne bien et sans erreurs mais ne contient pas encore tout le superflu). Sinon il peut passer directement au stade ``final'', où il est considéré complet, stable et utilisable. S'il s'agit de code appartenant au noyau, le développeur peut alors demander à Linus de l'inclure dans le noyau standard, ou comme option de configuration supplémentaire.

Dites vous bien que ce ne sont que des conventions,   et pas des règles. Certains sont tellement sûrs de la qualité de leur code qu'ils n'ont pas besoin de passer par les stades alpha et bêta-test. C'est toujours au développeur de prendre ce genre de décision.

Vous êtes sans doute perplexe et vous demandez comment une équipe aussi peu structurée de volontaires pourrait bien arriver à programmer et déboguer un système UNIX complet. Au risque de vous étonner, c'est l'une des méthodes de développement les plus efficaces et motivantes qui ait jamais été utilisée. La totalité du noyau de Linux a été écrite en partant de zéro sans emprunter une seule ligne de code de tout autre système. Beaucoup de volontaires ont travaillé spontanément des nuits entières pour porter tous les programmes libres qu'ils trouvaient, écrire les librairies, développer des systèmes de fichiers originaux, ou faire marcher les cartes d'extension du PC dont ils disposaient avec Linux.

Linux est généralement diffusé sous forme d'une distribution,     qui consiste en un ensemble de programmes regroupés de manière cohérente, formant après installation un système complet. Il serait très difficile pour beaucoup d'utilisateur de construire un système complet en partant du noyau, des sources des utilitaires, commandes, applications, installant tous ces programmes un par un manuellement.gif Encore une fois, précisons qu'il n'existe pas de distribution standard de Linux, mais un certain nombre, chacune ayant leurs avantages et inconvénients. Nous verrons cela plus en détail dans la section 2.1.

Bien que ces distributions permettent l'installation d'un système complet, vous aurez tout de même besoin de quelques connaissances UNIX pour obtenir une installation parfaite vous donnant toute satisfaction. De même qu'il n'existe pas de programme sans bogue, il n'y a probablement pas de distribution de Linux sans aucune erreur ou omission.

Administrer un système UNIX n'est pas une tâche aisée, qu'il soit gratuit ou commercial. Si vous désirez entretenir votre système sérieusement, notez bien que cela vous demandera beaucoup d'efforts et d'attention: ceci est vrai pour tous les systèmes UNIX, et Linux ne fait pas exception à la règle. En raison de la diversité de la communauté Linux et des ressources tellement variées que tant de programmes peuvent attendre, il est impossible de prévoir à l'avance toutes les manipulations que vous aurez à faire et vous mâcher le travail dans tous les cas de figure.





suivant chapitre avant contenu index

Suivant: Conseils aux débutants Chapitre: Introduction à Linux Avant: À propos du


Jean-Michel Antoine
Mon Apr 3 16:04:54 MET DST 1995