lundi 21 avril 2008

Création du blog

Salut et bienvenue sur ce blog qui t'en apprendra beaucoup sur le monde du logiciel libre !

dimanche 20 avril 2008

Au commencement était Linux ?


S'il y a bien une chose à laquelle on pense lorsqu'on commence à parler de logiciels libres, c'est bien le fameux système d'exploitation Linux. Et comme le dit le titre de ce message, il est important de se poser la question du début de Linux.

En effet, ce système d'exploitation est arrivé bien après plusieurs de ses concurrents. Tout a commencé au début des années 80, aux Etats-unis. Un Homme, Richard Stallman (photo ci-contre), travaillait alors au département d'intelligence artificielle du MIT (Massachussets Institute of Technology). Et comme toutes les bonnes idées, Linux est parti d'un problème : l'imprimante du département de Stallman tombait souvent en panne. Quoi de plus facile à l'époque que d'accéder au code source de l'imprimante et de le modifier au niveau de l'erreur ? Le problème fut vite réparé. Seulement voila, on décida de changer d'imprimante quelques temps plus tard et la nouvelle imprimante commença à présenter les mêmes symptômes que la précédente. Stallman demanda alors une copie de code source pour essayer de comprendre et réparer le problème, mais cet accès lui fut interdit. L'imprimante était inutilisable et il ne pouvait pas la réparer.

Stallman décida que refuser de partager le code source de programmes était non seulement anti-productif, mais aussi immoral. Ajouté au fait que de nombreux programmes n'étaient à l'époque pas portables, c'est à dire qu'ils ne fonctionnaient plus si on changeait de machine, cela suffit à lancer Stallman dans une grande croisade contre le logiciel propriétaire.

Il décida d'écrire un système d'exploitation libre : voila la naissance de .... du projet GNU, en 1983 ! Oui, toute cette histoire n'aboutit même pas à la naissance de Linux, pas encore ! Puis en 1985, il crée la Free Software Foundation dont le but est de promouvoir le logiciel libre en général. Cette fondation fut à l'origine de la GNU GPL (General Public License) en 1989 qui précise et définit le logiciel libre.

Mais alors, d'où vient Linux ? C'est en fait un jeune étudiant Finlandais qui est à l'origine de la révolution du logiciel libre, en 1991. Linus Torvalds aime programmer et son passe temps favori à l'époque est d'écrire le noyau de son système d'exploitation : Linux. Devant le succès progressif qu'il rencontrera, il décidera de publier ses codes sources sous licence GPL et de s'associer aux outils développés dans le cadre du projet GNU de Stallman. Enfin, GNU/Linux était né.

Maintenant qu'on en connaît un petit peu plus sur l'histoire du plus connu des représentants du libre, nous sommes prêts pour les prochaines étapes !
Prochainement sur ce blog, définition d'un logiciel libre.

samedi 15 mars 2008

Une licence libre ?


On en entend souvent parler, mais savons nous vraiment ce qu'il est ? Définissons plus précisément le logiciel libre. En effet, il existe une multitude de licences qui définissent des logiciels libres. Parmi les plus célèbres, on peut citer la licence GNU GPL, la licence GNU LGPL ou encore la licence BSD. Quel est le point commun de toutes ces licences, quelle est l'idée commune qu'elles essayent toutes d'exprimer ?
Cette idée est simple : la liberté. Et plus précisément, quatre libertés :
  • La possibilité d'utiliser l'œuvre, pour tous les usages ;
  • La possibilité d'étudier l'œuvre ;
  • La possibilité de redistribuer des copies de l'œuvre ;
  • La possibilité de modifier l'œuvre de l'esprit et de publier ces modifications.
(source : Wikipedia)

Maintenant que nous savons ce qu'est une logiciel libre, nous pouvons analyser les différences entre les différentes licences. La suite dans un prochain message.

jeudi 13 mars 2008

Les différentes licences


Commençons par la plus célèbre des licences : la licence GNU GPL (General Public License). Écrite pour la première fois en janvier 1989, elle a beaucoup évolué et en est à sa troisième version depuis le 29 juin 2007. Elle se caractérise par de fortes restrictions, ce qui lui confère un caractère viral et contagieux. En effet, elle met en application le concept de "Gauche d'auteur", véritable antagoniste du "Droit d'auteur", ce que montre son logo, le "c" inversé .En deux mots, le "Copyleft" interdit d'interdire. Un logiciel sans licence, donc appartenant au domaine public, peut être partagé, copié ou modifié. Il est ensuite possible de rendre propriétaire les versions modifiées (aussi infimes les changements soient-ils) et d'exiger des droits d'auteur. C'est précisément ceci que la licence GNU GPL empêche. Et c'est aussi pourquoi elle n'est pas utilisée par certains développeurs qui la trouvent trop utopiste pour le monde dans lequel on vit. Il est très difficile pour un programmeur d'être soutenu par des entreprises quand elles savent qu'elles produiront un logiciel libre, malgré la différence entre liberté et gratuité (différence sur laquelle nous reviendront plus tard ).

Pour compléter la licence GNU GPL, une autre licence a été écrite, avec des objectifs différents : la licence GNU LGPL (d'abord Librairy GPL, puis maintenant Lesser GPL). Elle est faite pour ce qu'on apelle les bibliothèques : ces morceaux de programmes qui sont destinés à être utilisé par d'autres programmes mais qui seul ne font rien. Lorsque de telles bibliothèques sont des alternatives libres à des bibliothèques propriétaires, il est préférable pour tous que ce soient les bibliothèques libres qui soient utilisées, même dans les programmes propriétaires. Les entreprises préfèrent payer des bibliothèques propriétaires pour conserver leurs droits d'auteurs, mais grâce à la licence LGPL, ceci n'est plus nécessaire. Cependant, toutes les bibliothèques ne devraient pas être placées sous licence LGPL. En effet, lorsqu'une bibliothèque fournit des fonctionnalités suffisament uniques, elle devrait (selon le site www.gnu.org) être placée sous licence GPL afin de faire basculer toujours plus de programme dans le monde du libre. C'est par exemple le cas pour la bibliothèque Readline qui permet de faire des programmes interactifs en console. Pour résumer, le licence LGPL est moins restrictive et ne promeut pas le libre autant que sa grande soeur, la licence GPL.

Une troisième licence de GNU existe enfin, rédigée plus récemment. Il s'agit de la licence GNU AGPL (Affero GPL). Elle corrige une lacune de la licence GNU GPL. En effet, dans un monde informatique de plus en plus inter-connecté, un nouveau type de services sont apparus : il est possible d'utiliser des programmes executés sur d'autres machines. En gros, un internaute se connecte à un site qui exécute un programme. Alors dans ce cas là, il n'y a pas "distribution" à proprement parler du programme, il ne s'agit que d'une copie privée tournant sur le serveur. Dans ce cas, la licence GPL stipule que l'on n'est pas obligé de rendre public le code source du programme. Cette situation permet dans les faits de prendre un logiciel libre sous licence GPL, de le modifer, de le "diffuser" comme expliqué plus haut, sans avoir à rendre public le code source. Ceci va à l'encontre des principes fondateurs du logiciel libre. La licence GNU AGPL permet de corriger ce problème en obligeant à diffuser le code source d'une application à quiconque l'utilise sur le réseau. GNU encourage à utiliser cette licence pour toute application destinée à être utilisée sur un réseau. Elle tire son nom du projet Affero lancé par Henry Poole, qui souhaitait trouver un cadre légal pour ce genre d'utilisation de logiciels libres. Elle est née des nombreuses discussions entre Poole et Stallman sur le sujet.

Voila pour les licences du projet GNU, plus d'infos arrivent sur les autres licences libres dans un prochain message.

mercredi 12 mars 2008

Les différentes licences (2)

En dehors des 3 licences de GNU, il en existe d'autres plus ou moins connues. Voice une liste assez complète :
  • Academic Free License: AFL
  • Apache License, Version 2.0: AL20
  • Apache Software License: ASL
  • Apple Public Source Licenses: APSL
  • BSD License: BSD
  • Common Public License: CPL
  • Licence CEA CNRS INRIA Logiciel Libre Version 2.0: CeCILL
  • Eiffel Forum Licence Version 2.0: EFL version 2
  • Eclipse Public License: EPL
  • GNU General Public License: GNU GPL
  • GNU Affero General Public License: GNU AGPL
  • GNU Lesser General Public License: GNU LGPL
  • IBM Public License: IBMPL
  • Intel Open Source License: IOSL
  • Mozilla Public License Version 1.0: MPL10
  • Mozilla Public License Version 1.1: MPL11
  • Netscape Public License, Version 1.0: NPL10
  • Netscape Public License, Version 1.1: NPL11
  • Open Software License: OSL
  • PHP License: PHPL
  • Perl Artistic Licence: PAL
  • Python License (CNRI Python License): CNRIPL
  • Python Software Foundation License: PSFL
  • Sleepycat Software Product License: SL
  • Sun Industry Standards Source License: SISSL
  • Sun Public License: SPL
  • W3C Software License
  • wxWindows Library License: WXWLL
  • zlib/libpng License: ZLL
  • Zope Public License: ZPL
(source : Wikipedia)

Il est assez interessant de commenter quelques unes de ces licences.
Premièrement, la licence BSD qui est plutôt en fait une famille de licences. Il s'agit de licences très permissives, sans "Gauche d'auteur" (donc le code peut être réutilisé dans un logiciel proprietaire) qui se rapproche fortement du domaine public. Il y a quelques différences à noter cepandant :
  • les licences BSD imposent en général quelques conditions quant à la redistribution.
  • Elles protègent l'auteur du code original en cas de bogue dans les produits dérivés
  • La legislation du domain public varie selon les pays ...
Pourquoi regroupe-t-on ces différentes licences dans une même famille ? En fait, elles proviennent toutes d'une licence originelle maintenant tombée en désuétude car elle comportait une clause de publicité trop contraignante : chaque utilisation d'un code sous licence devait être citée. Pour les gros projets (comme NetBSD), cette clause a conduit à citer plus de 75 auteurs différents! Il est interessant de noter que ce qui a permi que cette licence "fonde une famille" est justement le fait que cette licence soit sa propre licence et donc qu'elle soit libre, modifiable, copiable.

Une autre licence qui attire l'attention est la CeCILL. Elle a été crée par des organismes de recherches francais dont le CNRS (centre national de la recherche scientifique), le CEA (commissariat à l'énergie atomique) et enfin l'INRIA (Institut national de recherche en informatique et en automatique). Elle a été créer pour pouvoir faire cohabiter les principes du libres (les 4 libertés) et le droit français, notamment dans le domaine de la proprieté intellectuelle et de la responsabilité civile. Elle tient donc du droit français, mais aussi des conventions internationnales. Pour cette raison, elle protège mieux que la GNU GPL dont certaines parties ne s'appliquent pas dans certains pays. Elle se démarque aussi pour la raison suivante : c'est la premiere licence libre multilingue puisqu'elle dispose de deux versions officielles : française et anglaise. Néamoins, c'est bien le droit français qui est appliqué même dans la version anglaise. Pour finir, le projet CeCILL a donné naissance à deux autres licences : CeCILL-B qui se rapproche d'une licence de type BSD, et CeCILL-C qui se rapproche de la licence GNU LGPL.

lundi 10 mars 2008

Compatibilité entre les licences

Nous venons de voir qu'il existait un très grand nombre de licences libres. Que se passe-t-il lorsqu'on veut faire un programme sous une certaine licence en utilisant du code écrit sous une autre licence ? Certains cas sont prévus par la licence elle-même. Par exemple, la licence GNU GPL interdit de produire du code propriétaire à partir de code sous GNU GPL. De manière opposée, la licence CeCILL prévoit qu'une partie de code sous GNU GPL réutilisée dans un programme publié sous CeCILL se voit appliquer les règles de la GNU GPL. Ce sont des closes explicites des différentes licences qui s'appliquent. Dans les cas non explicités, il faut quelqu'un pour déterminer si deux licences sont compatibles. La FSF se charge de déterminer toutes les licences compatibles avec celles qu'elle a écrites, à savoir la GNU GPL, la GNU LGPL et la GNU AGPL. Une liste détaillée est disponible ici : http://www.gnu.org/licenses/license-list.fr.html.

Maintenant qu'on connaît beaucoup mieux les cadres légaux et les idées des logiciels libres, nous pouvons commencer à analyser les avantages et les défauts des logiciels libres.

dimanche 9 mars 2008

Mais enfin, pourquoi ?

Nous avons vu comment écrire des programmes libres, quelles licences adopter selon le type de programme écrit, comment les combiner pour créer des projets plus complexes. Mais au fond, on ne sait toujours pas ce qui rend le logiciel libre meilleur. Quels sont les avantages du libre ?
Tout découle de ce qui peut en apparence sembler anodin : l'accès libre au code source, le droit de le modifier à sa guise. Voyons les différents avantages :
  • Une bien plus grande réactivité. C'est ce que montre l'exemple d'introduction où Richard Stallman avait réparé rapidement sa première, mais avait dû attendre beaucoup plus longtemps. En effet, dans le cas d'un logiciel propriétaire, il faut signaler le bogue aux concepteurs, attendre qu'ils mettent au point un correctif, faire des tests, etc. C'est un processus bien plus long dans la majorité des cas que de juste regarder le code fautif et de le corriger.
  • Le libre permet de s'affranchir du piratage. Certes on peut faire payer le téléchargement d'un logiciel libre (plus sur ce sujet dans un autre message), mais en pratique, il existe toujours quelqu'un pour payer et ensuite redistribuer gratuitement (et surtout légalement) le logiciel. Ce genre de comportement est même encouragé, laissant la possibilité aux personnes le souhaitant de rémunérer le développeur (c'est la définition d'un Freeware), les autres pouvant néanmoins télécharger le programme. Souvent, ce coût empêche les personnes (honnêtes) et les entreprises de tester un logiciel et est donc néfaste à développement.
  • Le libre a un intérêt pédagogique. On peut facilement regarder dans les rouages du programme, apprendre, observer. De là, le pas pour participer n'est plus si difficile à franchir. De plus, vu qu'on connaît le fonctionnement des programmes, cela facilite vraiment le fait de pouvoir faire communiquer, travailler ensembles deux programmes : c'est l'interopérabilité.
  • Le libre est fédérateur. De nombreuses communautés sont nées quand de plus en plus de programmeurs s'associaient dans un projet libre commun. Le partage de toutes les innovations conduit à un développement beaucoup plus rapide. Cependant, le prix à payer est un éparpillement autour d'un projet, tous les développeurs travaillant en parallèle. Par exemple, on dénombre au moins une centaine de distributions Linux.
  • Le libre est globalement plus sécurisé. En fait, sa sécurité repose sur un système complètement différent de celle du propriétaire. Pour le propriétaire, la plus grande force est qu'on ne sait pas comment fonctionne le programme en dehors de ce qu'il nous montre. Les failles sont globalement plus nombreuses, mais la recherche de ces failles est moins systématique. Face à ça, le libre peut être lu par tout le monde. Il est donc beaucoup plus relu, analysé. Dès qu'une faille est trouvée, les correctifs sont immédiatement publiés. C'est pour ça que la majorité des serveurs tournent non pas sous Windows, mais bien sous linux.
  • Enfin, l'utilisateur peut être plus rassuré : il n'est plus dupé par des programmes qui l'espionnent, et transmettent ses données privées à son insu (comme le font certains programmes d'une société connue dont le nom commence par Mi.... )
Bon, on vient de le voir, il y a vraiment énormément d'avantages à utiliser des logiciels libres. Mais alors comment expliquer que tout le monde n'utilise pas ce système ? Allez, je vous donne la réponse, le logiciel propriétaire a aussi ses avantages. Nous les verrons dans le prochain message.

samedi 8 mars 2008

Les avantages du propriétaire


Malgré tous les avantages qu'on vient de citer en faveur du logiciel libre, les chiffres parlent d'eux-mêmes : au moins 98,7% des systèmes d'exploitation sont propriétaires ( Windows + MacOS). D'où vient cette suprématie ? A mon avis, elle est avant tout historique. Le monde s'est habitué à Windows. Même si cela change petit à petit aujourd'hui, peu d'ordinateurs sont livrés sans un système d'exploitation propriétaire. L'utilisateur est alors comme pris en otage. De plus, à cause de cette habitude des systèmes propriétaires, beaucoup de programmes sont développés uniquement pour eux et pas par exemple pour linux. On peut citer l'exemple des jeux vidéos. De plus, la philosophie du libre lui pose parfois des problèmes dans notre monde parfois trop capitaliste. Prenons par exemple la lecture d'un DVD. Les concepteurs de DVD cryptent les données(qu'on a pourtant payé !!) et vendent le programme de décryptage en parallèle aux concepteurs de lecteurs. Ainsi, un logiciel propriétaire peut acheter ce programme et lire des DVD, alors que cette philosophie va justement à l'encontre du libre qui doit contourner ces protections.
Autre avantage aux logiciels propriétaires, la présence d'une société qui veut gagner de l'argent et doit donc faire un bon produit, et surtout le maintenir. Pour le débutant en informatique, il est plus agréable parfois de payer pour être sur d'obtenir quelquechose qui marche. Les logiciels libres quant à eux vivent toujours une phase d'élaboration au début et ne sont absolument pas garantis. Le fait qu'il existe des personnes connues, avec des locaux, une adresse, et non pas un essaim d'informaticiens répartis partout sur la planète, est aussi un facteur rassurant : il existe quelqu'un de responsable, quelqu'un sur qui crier quand ça ne marche pas.

Voila, je laisse soin au lecteur de faire le calcul, et de décider de faire le grand pas et de rejoindre la communauté du libre. Et justement, cette communauté merite le prochain message !

mercredi 5 mars 2008

La communauté

Voici le dernier atout du logiciel libre : sa communauté. En tant que nouvel utilisateur de linux, j'ai eu plusieurs fois des problèmes. Habitué à windows, je me voyais déjà chercher désesperement sur internet, mais quelle ne fut pas ma surprise lorsque j'obtins la réponse à ma question en quelques minutes seulement ! Il me semble que les gens sont bien plus prêts à partager leurs connaissances, à apporter leur aide, et ce de manière bénévole. C'est pourquoi je vous souhaite vraiment d'arriver à faire ce pas, à venir rejoindre la communauté ! Et pour vous rassurer, il existe aussi une part de la communauté qui est professionelle, donnant des conseils (surtout à des entreprises). C'est l'exemple parfait pour parler de la relation entre gratuité et liberté. D'apres Stallman, il n'est pas du tout contradictoire de faire payer un logiciel libre, encore moins des conseils et des études sur les entreprises. C'est ainsi que fonctionne le modèle économique des plusieurs boites, comme par exemple Ubuntu, qui est aussi une distribution très répandue de Linux. Allez, si je ne vous ai pas convaincu, je ne vois pas ce que je peux faire d'autre !

dimanche 2 mars 2008

Conclusion et ouverture

J'ai tenté d'expliquer dans ce blog quelle était la philosophie et le cadre légal du logiciel libre, puis d'en tirer les avantages mais aussi les inconvenients. D'après les chiffres, il est clair qu'il est en progression, et qu'il a encore de très beau jours devant lui. J'espère vous avoir convaincu, et que vous serez le prochain utilisateur à changer de camp !