Accueil DexTER |
detexia.net
télécharger au format PDF
Les logiciels libres ont été créés en réaction à des restrictions jugées excessives imposées par certains éditeurs qui souhaitent protéger leur propriété intellectuelle. Ils ont été par conséquent définis à partir des droits des utilisateurs qui doivent être préservés autant, sinon plus, que ceux des auteurs. Certaines licences libres incluent même des dispositions visant à garantir ces droits même en cas de modification ou d'intégration d'un tel logiciel. Ceci n'empêche aucunement son utilisation dans un cadre professionnel ou industriel, cela permet même de s'affranchir d'une certaine emprise des éditeurs de logiciels. Par contre lors de l'intégration d'un logiciel libre dans un produit vendu à son client, certaines précautions sont à prendre pour que la diffusion puisse avoir lieu dans le respect mutuel des droits de tous les protagonistes : auteurs du logiciel libre, auteurs du produit vendu et client acheteur du nouvel ensemble.
logiciel libre, licence, génie logiciel, développement industriel
Les logiciels sont nés libres. A l'origine de l'informatique ils étaient gracieusement fournis avec l'achat du matériel exactement comme on reçoit encore de nos jours un livret de recettes lorsqu'on achète des ustensiles de cuisine. Ces quelques programmes rudimentaires n'était alors que des exemples d'utilisation du matériel. Son possesseur avait toute liberté de les utiliser, de les étudier et de les modifier à loisir.
L'industrie informatique se perfectionnant, les logiciels sont devenus un élément indispensable et les quelques recettes d'utilisation sont devenus des systèmes d'exploitation complets et des applications sophistiqués dont l'effort de développement et de mise au point allait grandissant jusqu'à devenir non négligeable. L'industrie du logiciel commença alors à émerger de l'industrie informatique encore jeune avec l'apparition de société spécialisées dont l'unique activité sera désormais la rédaction de programme. Ces sociétés ont naturellement eu le soucis de protéger leur savoir faire et leurs investissements. Elles ont pour cela cessé de fournir les sources de leur programmes et progressivement limité les droits de duplication, de modification et d'utilisation pour ne plus réellement vendre des logiciels mais, au lieu de cela, des licences. Une licence est un document contractuel, plus ou moins tacitement accepté par le futur utilisateur lors de son acte d'achat, qui décrit les droits d'utilisation du logiciel qui lui sont concédés.
Si cette situation n'a pas été gênante pour beaucoup d'utilisateurs, certains d'entre eux ont commencé à être plus particulièrement contraints par ces dispositions. En particulier un enseignant du fameux MIT, Richard Stallman, a considéré qu'il n'était même plus possible pour lui de mener à bien sa tâche d'enseignement puisque les matériels vieillissant du MIT étaient progressivement remplacé par des ordinateurs plus récents pour lesquels aucun logiciel n'était disponible avec ses sources. Il n'était donc plus possible d'examiner et de modifier les programmes reçus pour les étudier et enseigner leur fonctionnement. Devant cette impasse il a décidé de quitter son emploi pour créer des logiciels libres ainsi qu'une fondation pour leur promotion : la Free Software Fondation est créé en 1985 et elle possède maintenant une antenne française.
Cette fondation a lancé le développement d'un système d'exploitation complet baptisé GNU (acronyme récursif qui se développe en GNU's Not Unix). Ce système s'inspire d'Unix et a l'ambition de constituer à terme un système POSIX complet accompagné de nombreuses applications.
En 1991, de nombreux programmes avaient déjà été écrits pour le système GNU mais il lui manquait encore une brique essentielle : le noyau. Sa mise au point était beaucoup plus longue et on ne disposait toujours pas à cette date de système GNU même si tous les outils déjà développés pour lui étaient déjà assez populaire dans la communauté des informaticiens. A cette époque, un jeune finlandais, Linus Torvalds, a entrepris de créer un noyau de système multi-utilisateur et multi-tâche à partir du système minix qui est un système minimal créé pour l'enseignement. Avec le développement d'internet il a rapidement été rejoint par de nombreux passionnés qui ont ensemble développé un noyau un peu moins ambitieux techniquement que le noyau du système GNU mais dont la mise au point d'une première version utilisable a été beaucoup plus rapide. Ce nouveau noyau baptisé Linux en hommage à son créateur et en référence à de nombreux programme se terminant en X du monde Unix a été intégré dans le système GNU. Ce nouveau système GNU/Linux s'est répandu par l'intermédiaire d'internet car il a rendu accessible pour un coût quasi nul un système de type Unix sur les ordinateurs personnel PC les plus communs alors que ce genre de système était jusque là réservé à des stations de travail très couteuses.
La définition précise d'un logiciel libre est pour certains détails parfois encore sujet à polémiques. Il s'est toutefois dégagé un certain consensus relatifs à quelques critères fondamentaux. Un logiciel pourra être déclaré libre s'il accorde au moins les trois libertés fondamentales suivantes à ses utilisateurs :
Pourquoi ces trois libertés ? Que reproche-t-on finalement à certains éditeurs de logiciels dont les clauses d'utilisations sont jugées abusives ?
La première liberté peut sembler aller de soi mais elle ne l'est pas forcément, certains procédés et logiciels sont protégés par des brevets et le simple fait d'utiliser un logiciel dans un cadre autre pour réaliser des tâches pour lequel il n'a pas été prévu peut constituer en soi une violation de brevet. L'éditeur peut craindre également voir émerger des services basés sur ses propres logiciels qui entrent en concurrence avec son activité. En général vous n'avez pas le droit de vendre des prestations de votre utilisation de votre logiciel à des tiers qui pourraient ainsi être dispensé de son achat. Certains éditeurs ont aussi introduit des limites sur le nombres d'utilisateurs simultanés d'un logiciel même s'il n'est pas déployé sur plus d'un ordinateur.
Il devenu impossible d'exercer la deuxième liberté avec les logiciels propriétaires. Pour protéger leur propriété intellectuelle, les éditeurs ont rapidement cessé de fournir les sources des programmes mais uniquement les binaires exécutables prêts à l'emploi. Si cela n'empêche pas l'utilisation courante telle qu'elle a été prévue par les concepteurs, cela interdit en revanche toute adaptation du logiciel à des particularités personnelles, il faut donc au contraire obligatoirement adapter sa méthode de travail à la logique des concepteurs du logiciel ce qui peut s'avérer délicat. De même en cas d'anomalie gênante constatée, on n'a aucun recours autre que d'attendre la bonne volonté de l'éditeur pour l'obtention d'un correctif. En pratique ce dernier se dégage de toute obligation via les clauses de garantie de ses contrats de licences (il n'y a en général strictement aucune garantie sur ce que fait le logiciel) et incitera fortement à l'achat d'une nouvelle édition pour régler ou contourner le problème.
La dernière liberté de duplication est essentielle, pour permettre la copie de sauvegarde d'un système et surtout sa restauration, mais aussi l'évolution d'un système informatique. On peut ainsi décider de répartir différemment ses outils informatiques pour passer par exemple d'un système centralisé où le logiciel est installé sur un seul appareil, vers un système décentralisé où le logiciel est réparti sur plusieurs sites, ce qui selon la définition juridique de chaque site peut être considéré comme une redistribution à un tiers.
Les droits de l'utilisateur sont en général décrits en détail dans la licence qui accompagne le logiciel. Ce document détaille également les restrictions imposées car même pour les logiciels libres, la liberté de l'utilisateur a des limites. Ces limitations sont plus ou moins importantes selon les familles de licences :
En cas d'incertitude sur la compatibilité des droits d'un logiciel libre avec votre usage, le plus simple est de contacter les auteurs. La plupart du temps, ils sont assez facilement joignables et relativement ouverts à des situations non couvertes par la licence qu'ils ont choisi et pourrons vous proposer à ce moment une licence spécifique (peut être en échange d'une contrepartie).
On assimile souvent les logiciel libres aux logiciels "open-source" (à sources ouverts). En général les deux termes sont effectivement interchangeables et le terme "open-source" n'a aucune ambiguïté comparé à "free" qui littéralement peut signifier selon le contexte libre ou gratuit. En réalité, pour un logiciel libre, la publication des sources n'est finalement pas une fin en soi, mais la conséquence de l'obligation de permettre la modification du logiciel.
On prétend parfois qu'il est interdit de vendre un logiciel libre. En réalité cela ne l'est pas du tout. R.Stallman lui même a financé sont combat pendant un certain temps par la vente de ses premiers logiciels dont le fameux Emacs. Il est par contre difficile de dégager des revenus importants sur le modèle de la vente de licence avec des logiciels libres car en vertu du droit de l'utilisateur de dupliquer lui-même le logiciel, un modèle de rétribution basé sur le volume des copies sera forcément assez limité. L'utilisateur est même en droit de vendre lui-même de nouvelles copies pour son propre compte.
Techniquement, il n'y a pas de raison qu'un logiciel libre soit meilleur ou non qu'un logiciel propriétaire. Par contre l'accès aux sources permet à quiconque le souhaite d'étudier le fonctionnement du logiciel et d'y réparer des défaillances. Dès qu'un logiciel libre rencontre un certain succès, il devient "naturellement" meilleur au fur et à mesure que ses utilisateurs éclairés corrigent les anomalies qui les gênent.
Selon les contexte d'utilisation, les logiciels libres et surtout les obligations décrites dans leurs licences peuvent avoir différentes incidences. De même dans certains domaines d'application les caractéristiques d'un logiciel libres pourront être un atout majeur ou à l'inverse insuffisants car heureusement malgré la perception assez négatives des éditeurs de logiciels qui peut transparaître de cet article, la majorité fait heureusement un travail très profitable et utile.
L'utilisation de logiciel libre en tant qu'outillage interne en remplacement de leurs équivalent propriétaire ne pose aucun problème. Si la licence du logiciel est réellement libre, elle ne peut imposer aucune règle d'usage limitative qui imposerait quelque restriction que ce soit sur ce qui est produit à partir de ces outils. Même les licences les plus strictes comme le GPL n'imposent rien sur ce qui est produit avec le logiciel libre. Ceci est particulièrement important pour des outils comme les générateurs de code qui n'imposent pas que le code qu'ils génèrent soit libre.
Pour les outils de tous les jours (bureautique), on trouvera plus ou moins facilement des outils libres équivalents. La principale difficulté sera de trouver des produits capables de manipuler les formats de fichier issus des outils propriétaires que l'on utilise déjà ou que nos interlocuteurs (clients ou fournisseurs) utilisent pour communiquer avec eux.
Si le premier intérêt du logiciel libre est souvent l'économie sur l'achat de licences, la dernière remarque du paragraphe précédent révèle sa principal qualité : avec un logiciel libre on devient indépendant du fournisseur du logiciel. On n'utilise plus une boîte noire qui enregistre les données que l'on produit dans un format opaque et rend complètement captif vis à vis du fournisseur. L'accès au code source garantit la possibilité (technique et légale uniquement) de concevoir et utiliser des convertisseurs vers d'autres formats si besoin. Ainsi, quoi qu'il arrive, il est toujours possible d'accéder à ses propres données.
Aujourd'hui, plus rien n'empêche de se libérer de l'emprise d'un éditeur envahissant si on accepte de changer un tout petit peu ses habitudes (voir en annexe pour une liste de logiciels libres courants pour la bureautique). Cela permettra également d'améliorer sa situation légale en facilitant l'élimination de copies de logiciels propriétaires non déclarées ou de shareware indéfiniment utilisés en version théoriquement limitée dans le temps.
L'intégration d'un logiciel libre dans un logiciel industriel même propriétaire est souvent possible, l'étendue exact des obligations imposées dépend du type de licences employées, selon les trois grandes familles de licences décrites précédemment :
Si l'intégration du logiciel libre nécessite au préalable qu'il soit modifié, le statut des modifications apportées dépend lui aussi du type de licence :
Comme il a été signalé précédemment, le niveau de qualité d'un logiciel libre est comparable à celui d'un logiciel propriétaire. D'un point de vu technique il n'y a aucune raison qu'il en soit autrement. Il y a bien évidemment pour chaque logiciel considéré des écarts mais ces écarts seront parfois en faveur du logiciel libre, parfois en sa défaveur.
Il y a cependant un point particulier où le logiciel libre est en retard. Il s'agit de sa compatibilité avec un environnement critique tout particulièrement là où la vie humaine est mise en jeu comme dans le médical ou l'aéronautique. Encore une fois il ne s'agit pas d'un problème technique et la réactivité de la communauté des développeurs de logiciel libre a déjà été éprouvée mainte fois avec succès ce qui devrait jouer en sa faveur. Cependant pour ce type d'application, il ne suffit pas d'être capable de fournir des programmes avec le meilleurs taux de bugs par ligne de code. Il faut en plus respecter un protocole de qualification et certifier la conformité à des normes spécifiques des métiers visés. Les procédures de certification sont parfois très couteuses et elles ne sont que trop rarement à la porté des auteurs. En effet ces logiciels sont souvent développés par des communautés informelles de personnes individuelles volontaires. Hormis les aspects purement financiers, la qualification du logiciel est souvent bloquée par l'absence totale de structure administrative et juridique capable de la prendre en charge et surtout de l'assumer.
Le logiciel libre n'est pourtant pas dans l'impasse : n'importe quelle entité capable de certifier un logiciel peut le faire pour n'importe quel logiciel libre puisque tout y est accessible, il sera également possible de procéder aux modifications nécessaires aux cas où certaines exigences ne seraient pas remplies. Il devient même plus facile de constituer des groupements d'intérêt pour se charger de cette tâche car il n'y aura aucun ralentissement provoqué par une quelconque clause de confidentialité puisque tout est publique.
L'intérêt serait aussi de pouvoir faire bénéficier au plus grand nombre d'une bibliothèque de logiciels certifiés et de réduire plus facilement la portée des certifications futures par la possibilité de comparer effectivement, ligne par ligne les évolutions survenues entre une version certifiée et une nouvelle à certifier.
La liberté offerte à un utilisateur reste valable quel que soit cet utilisateur. Peu importe qu'il s'agisse d'un individu, d'une organisation, d'une entreprise ou même d'un état. Pour une entreprise ou un état, cela peut s'avérer stratégique et vital. En effet un état ne sera libre que s'il est souverain et s'il a effectivement les moyens d'assurer sa souveraineté. La souveraineté absolue n'est aujourd'hui plus possible car plus personne, même un état, ne peut vivre en autarcie complète. On cherchera quand même à améliorer sa souveraineté en limitant au maximum sa dépendance des autres pour le fonctionnement de systèmes critiques.
De nos jours, le fonctionnement de toute organisation dépend plus ou moins d'un ou plusieurs systèmes d'information, donc du bon fonctionnement de plusieurs logiciels. C'est particulièrement vraie pour l'administration d'un état et l'organisation de sa défense. Que se passerait il si les systèmes informatiques du trésor publique (comptes bancaire, collecte des impôts, distribution des fonds), ou les système de commandement et de communication des armées cessaient brutalement de fonctionner ? Le pays serait totalement paralysé et n'aurait plus aucun moyen de répondre à une agression.
Supposons qu'un seul logiciel particulier, par exemple (au hasard) un système d'exploitation, soit nécessaire au bon fonctionnement ne serait-ce que de la moitié de tous ces systèmes ? Quelle serait alors l'emprise de fournisseur de ce logiciel sur l'état qui aurait eu l'imprudence de mettre ainsi tous ses œufs dans le même panier. En l'état actuel des chose, l'impact serait relativement faible. Le système fonctionne tant bien que mal avec ou sans l'assentiment du fournisseur. Au pire on reste sur un statu quo, le système ne peut plus évoluer et tant que les équipements ont des défaillance ponctuelles et localisées, il y a toujours moyen de s'en remettre. Par contre si on laisse le fournisseur migrer ces systèmes vers un modèle où on lui délègue certains traitements (cf. note sur le cloud computing ci-avant), où même simplement l'autorisation d'utiliser certains produits, autorisation qu'il prétend réaliser pour "notre sécurité", il acquière de fait la capacité de paralyser totalement le système, donc le pays entier s'il décide unilatéralement de ne plus autoriser l'utilisation des services qu'il fournit. C'est un risque à prendre en considération pour les systèmes critiques d'un état à plus forte raison si ce fournisseur est étranger.
Le logiciel libre peut améliorer la souveraineté d'un état par deux moyens :
Cette prise de conscience commence à être partagée par beaucoup d'organismes publiques qui sont alors très motivés par les apports du logiciel libre, autres que la simple économie sur l'achat de licences qui reste encore trop souvent la première motivation. C'est le cas en particulier du ministère de la défense qui a même explicitement établi une préférence pour le logiciel libre dans la directive n° 1/DEF/DGSIC qui contient entre autre un paragraphe intitulé "Privilégier les logiciels libres à coût global, risques et efficacité comparable".
L'OSI (Open Source Initiative), est un organisme public californien fondé pour promouvoir les logiciels à sources ouverts (ce que sont les logiciels libres). Sa principal contribution et d'avoir relu et analysé les licences afin de classer et confirmer ou infirmer leurs qualités et caractéristiques. L'inventaire publié sur son site complète de façon exhaustive les quelques éléments présentés dans le présent annexe.
Pour comprendre ce qu'est l'édition des liens, voici en quelques mots comment s'organise la fabrication d'un logiciel. Concrètement, la plupart du temps, un logiciel se présente sous la forme d'un fichier dit exécutable (les fameux fichiers suffixés .exe dans le cas de Windwos). De leur coté, les informaticiens rédigent leurs programmes à l'aide d'un langage textuel à peu près humainement lisible. Un tel programme est enregistré dans un fichier texte (on parle aussi de fichier ASCII). La fabrication consiste à transformer ce fichier texte en fichier exécutable. Pour cela on utilise un compilateur. Il s'agit d'un programme spécialisé qui lit le fichier texte du programmeur, pour y traduire les directives du langage de programmation en instructions compréhensibles par l'ordinateur ciblé (chaque modèle de processeur possède son propre ensemble d'instruction) qu'il enregistre dans un fichier image exécutable.
Au fur et à mesure qu'un programme prend de l'importance et devient de plus en plus complexe, on a besoin de plusieurs fichiers textes pour le décrire dans son ensemble. La fabrication se déroule alors en deux étapes : la compilation, puis l'édition des liens. Chaque fichier texte fourni au compilateur est traité individuellement pour produire un fichier intermédiaire, dit fichier objet. Une étape supplémentaire, l'édition des liens, se charge ensuite d'agréger tous les fichiers objets en un fichier exécutable.
Pour réduire la consommation de mémoire vive et de masse des logiciels, les systèmes d'exploitation modernes proposent un système de liaison dynamique, c'est à dire qu'une partie de l'édition des liens est retardée au démarrage du logiciel. Un tel système sera capable de ne charger en mémoire qu'une seule fois une même bibliothèque dynamique (sur windows ce sont les fichier .dll) qui est utilisée simultanément par deux logiciels.
Si on en revient aux restrictions portant sur l'édition des liens de la licence GNU GPL, elle interdit à un programme soumis à une licence incompatible avec la GPL de se lier à une bibliothèque GPL mais pas l'inverse. C'est à dire qu'un programme GPL peut utiliser une bibliothèque non-GPL. L'édition des liens se fait selon une relation de dépendance utilisateur/utilisé et compte-tenu du caractère dynamique de l'édition des liens, il en résulte la contrainte concrète suivante : du code GPL ne peut pas être utilisé par du code propriétaire dans un même processus (pour des environnements virtuel de type Java ou .Net on assimilera le processus à une instance de machine virtuelle ce qui peut être extrêmement limitatif avec ces plateformes). Cette contrainte exige donc pour être contourné des efforts importants qui seront de plus pénalisant en terme de performance du résultat. Comme la raison d'être d'une bibliothèque est justement d'être utilisée par d'autres programmes, il a par conséquent été décidé la création d'une nouvelle licence dénommée LGPL pour assouplir cette contrainte et faciliter la diffusion de ces briques logicielles.
Copyright (c) detexia 2008, mis à jour le : mardi 2 mars 2010, 14:56:53 (UTC+0100)