Le Phénomène du Logiciel Libre/Open Source
Transcription
Le Phénomène du Logiciel Libre/Open Source
Le Phénomène du Logiciel Libre/Open Source "La Cathédrale et le Bazar" Fabian Bastin Aspirant FNRS [email protected] The University of Namur www.fundp.ac.be Historique: un retour aux sources ou comment un bourrage de papier changea l’histoire du logiciel. Le combat de Richard M. Stallman (RMS): Plan → Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences • Anatomie • Librairies • Autres cas • Au delà • Conclusions • Références The University of Namur www.fundp.ac.be • contexte: la notion de disponibilité du code source et d’échange des modifications présentes dès le début de l’âge informatique; • arrivée d’une imprimante Xerox au laboratoire d’intelligence artificielle du MIT; • face aux bourrages papiers fréquents, RMS souhaite modifier le logiciel afin d’y intégrer une routine d’avertissement pour les utilisateurs (comme pour une imprimante antérieure); • RMS se heurte au refus d’accès au code source, régi par un accord de non-divulgation (NDA: non-disclosure agreement); • ne supportant pas de voir la dérive vers la fermeture du code ferme, vu comme secret de fabrication, il quitte le MIT pour fonder son projet GNU (GNU’s Not Unix!) en 1984; • 1985: fondation de la Free Software Foundation. 26 avril 2004 – p. 2 La philosophie du libre Free Software: 4 grands principes: 1. liberté d’exécution; Plan • Historique → Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences • Anatomie • Librairies • Autres cas • Au delà • Conclusions • Références The University of Namur www.fundp.ac.be 2. accès aux sources à des fins d’étude du fonctionnement, mais aussi de modification, d’adaptation à ses besoins; 3. liberté de redistribution de copies; 4. liberté de redistribution des modifications. GNU: licence GPL (General Public License) → licence “virale”: notion de copyleft: toute oeuvre dérivée doit être placée sous la même licence. → appellation introduite par Richard Stallman lors de l’élaboration de la GPL. → but avoué: encourager l’expansion du logiciel libre, en imposant que tout ajout de code à un logiciel libre sera lui-aussi libre. 26 avril 2004 – p. 3 Copyleft Nous distinguerons deux types de copyleft: Plan • Historique → Philosophie ✓ Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences • Anatomie • Librairies • Autres cas • Au delà • Conclusions • Références • copyleft fort: la licence doit être transmise à toute oeuvre qui utilise l’oeuvre de base → transfert vers d’autres codes; • copyleft faible: une oeuvre qui ne fait qu’utiliser l’oeuvre de base, indirectement, ne doit pas obligatoirement être sous la même licence. → Mozilla Public License: autorisation de créer une oeuvre plus large, et de la distribuer comme produit unique, pour autant que les parties du code sous MPL (éventuellement modifiées) restent sous MPL. → problème des librairies. The University of Namur www.fundp.ac.be 26 avril 2004 – p. 4 Copyleft (2) • Un logiciel libre n’est pas tenu d’être sous licence copyleft. Plan • Historique → Philosophie ✓ Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences • Anatomie • Librairies • Autres cas • Au delà • Conclusions • Références The University of Namur www.fundp.ac.be • Logiciel libre sous copyleft: interdiction d’ajouter des restrictions supplémentaires. → un logiciel libre doit rester libre. • Logiciel libre non sous copyleft: permission de redistribuer et de modifier, mais aussi d’ajouter des restrictions additionnelles. → un logiciel libre peut devenir non libre après modification (cas de licence BSD). • Une licence non-copyleft peut être considérée comme compatible GPL (autorisation de liaison avec un programme sous GPL); une licence incompatible avec la GPL peut être sous copyleft; une clause d’exception peut être émise (exemple: librarie GUILE). 26 avril 2004 – p. 5 Free Software et Open Source 2 concepts proches (mêmes principes de bases), mais pas identiques. Pour Eric Raymond et Bruce Perens, le mot “free” du Free Software avait causé plus de tort que de bien. D’autre part, un besoin de Plan clarification existait, notamment pour le choix des programmes • Historique → Philosophie admissibles dans la distribution Linux Debian. • Copyleft ✓ Open Source → comment définir un logiciel libre? • Implications • Utilisateur → création de l’Open Source Initiative (OSI). • Développeur • En pratique Free Software: accent sur l’argument moral/éthique (liberté); strong • Logiciels • Licences copyleft: pas de liaisons permises avec du code propriétaire • Anatomie • Librairies (http://www.gnu.org/philosophy/why-copyleft.html) • Autres cas • Au delà Open Source: accent sur l’argument économique (meilleur logiciel); • Conclusions • Références réponse à la GPL: l’Open Software License (OSL) (moins de bagages politiques). Licences Open Source mais non libres: peu fréquent, mais possible. Exemple: Apple Public Source License 1.2. The University of Namur Licence libres mais non Open Source: habituellement non soumises www.fundp.ac.be pour validation ou spécifique à un produit. 26 avril 2004 – p. 6 Open Source: définition L’Open Source tel que que défini par l’OSI: 1. redistribution libre; Plan • Historique → Philosophie • Copyleft ✓ Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences • Anatomie • Librairies • Autres cas • Au delà • Conclusions • Références 2. code source; 3. travaux dérivés; 4. intégrité du code source de l’auteur; 5. absence de discrimination envers des personnes ou des groupes; 6. absence de discrimination envers des domaines d’activités; 7. distribution de licence; 8. la licence ne doit pas être spécifique à un produit; The University of Namur www.fundp.ac.be 9. la licence ne doit pas imposer de restrictions sur d’autres logiciels; 10. la licence doit être technologiquement neutre. 26 avril 2004 – p. 7 Implications pour l’utilisateur • Liberté d’utilisation: • utilisation simultanée sur plusieurs ordinateurs; Plan • Historique • Philosophie • Copyleft • Open Source → Implications ✓ Utilisateur • Développeur • En pratique • Logiciels • Licences • Anatomie • Librairies • Autres cas • Au delà • Conclusions • Références The University of Namur www.fundp.ac.be • pas de limite dans le temps; • redistribution: • diffusion possible du logiciel à ses clients/partenaires; • facilite l’échange de données lisibles par d’autres; • généralement, possibilité d’obtenir le logiciel à bas prix; • liberté de modification: • favorise l’indépendence du client face à l’auteur original (pas d’obligation d’attendre, limite les exigences financières possibles,. . . ); • pérénnité des données: possible de porter le logiciel sur une autre architecture pour continuer son exploitation, même en cas de disparition de l’auteur; • absence de garantie. 26 avril 2004 – p. 8 Implications pour le développeur • Modèle économique à revoir: service, formation, consultance; Plan • Historique • Philosophie • Copyleft • Open Source → Implications • Utilisateur ✓ Développeur • En pratique • Logiciels • Licences • Anatomie • Librairies • Autres cas • Au delà • Conclusions • Références • liberté de distribution: • favorise l’implantation du logiciel → les activités de services sont accrues; • contribue à la réputation du développeur; • favorise la détection de bugs, signalés par les utilisateurs; • liberté de modification: • favorise la correction de bugs → plus de stabilité; • le cycle de développement est souvent plus rapide → souvent plus riche et plus performant; • le logiciel a plus de chances de survivre à son auteur; The University of Namur www.fundp.ac.be • les logiciels à code ouvert sont aussi source d’inspiration. 26 avril 2004 – p. 9 Le succès du libre Plan • Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur → En pratique ✓ Logiciels • Licences • Anatomie • Librairies • Autres cas • Au delà • Conclusions • Références • Systèmes d’exploitation: GNU/Linux, FreeBSD, NetBSD, OpenBSD,. . . • Programmation: gcc, g77, lex, yacc, autotools,. . . • Internet: Apache, Mozilla, Sendmail, PHP. . . → le logiciel libre est le moteur d’Internet, • Autres: MySQL, PostgreSQL, LATEX,. . . → Le libre tient une place importante dans le logiciel scientifique. The University of Namur www.fundp.ac.be 26 avril 2004 – p. 10 Quelques licences → par gradation de copyleft Non-copyleft: Plan • Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur → En pratique • Logiciels ✓ Licences • Anatomie • Librairies • Autres cas • Au delà • Conclusions • Références • Domaine public; • (Modified) BSD (Berkeley Software Design) License. Copyleft • MPL (Mozilla Public License); • - LGPL (Lesser General Public License); - OSL (Open Software License); • GPL (General Public License). Copyleft fort: ne peut être lié qu’avec des logiciels sous licences compatibles. Les licences varient aussi quant à des clauses face aux brevets (rejet The University de tout brevet - GPL -, demande de garantie sur les brevets couvrant of Namur des parties du logiciel - MPL, OSL -,. . . ). www.fundp.ac.be 26 avril 2004 – p. 11 Anatomie d’un projet libre Bazar: chacun peut participer. × Cathédrale: développement confiné à quelques personnes. Plan • Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences → Anatomie • Librairies • Autres cas • Au delà • Conclusions • Références Généralement, un ou quelques mainteneurs principaux. Les modifications leurs sont envoyées (souvent sous forme de patches). Le mainteneur principal peut être remplacé. Des variantes existent, suivant la nature et l’ampleur du projet. Projets plus importants: pages dédiées (sur serveur propre ou serveur de projets: sourceforge, savannah); mailing-listes. Soumissions de modifications sur les mailing-listes, forums,. . . ; CVS (Concurrent Version System) pour les développeurs principaux: • permet à plusieurs personnes de travailler simultanément sur le même projet (gestion des conflits); • historique du projet disponible; The University of Namur www.fundp.ac.be • possibilité de créer plusieurs branches (typiquement stable et non stable; corrections de bugs dans des versions antérieures). 26 avril 2004 – p. 12 Le cas particulier des librairies Plan • Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences → Anatomie ✓ Librairies • Autres cas • Au delà • Conclusions • Références The University of Namur www.fundp.ac.be Un programme: écrit sous forme de code source, lisible par un humain, généralement réparti sur plusieurs fichiers sources distincts. Compilation: transformation des sources en exécutable. 2 phases: 1. chaque fichier est traduit en langage binaire → fichier objet; 2. les différents fichiers sont liés ensemble pour former un fichier exécutable → opération de linkage. Librairie: “boîte à outils” pour le développement: ensemble de fonctions accessibles au développeur. → évite de réécrire sans cesse les mêmes fonctions. Après compilation, un fichier contenant du code objet. 2 types: • statique: le code objet est intégré dans l’exécutable lors du linkage; • dynamique: la librairie est chargée en mémoire vive lors de l’exécution du programme (sauf si elle est déjà présente en mémoire vive), voire pendant l’exécution. 26 avril 2004 – p. 13 Compilation et exécution Source A Source B Objet A Objet B Plan • Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences → Anatomie ✓ Librairies • Autres cas • Au delà • Conclusions • Références Librairie statique Exécutable Librairie dynamique Exécution The University of Namur www.fundp.ac.be → liens “fonctionnels” entre l’exécutable et la librairie dynamique. 26 avril 2004 – p. 14 Liaison avec une librairie Plan • Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences → Anatomie ✓ Librairies • Autres cas • Au delà • Conclusions • Références Pour Stallman, lier un programme avec une librairie produit une oeuvre dérivée. → librairie statique: copie du code objet dans le fichier exécutable (impossibilité de distinguer la librairie); → librairie dynamique: pas de copie propre dans le programme (exception: fonctions inlines), liaisons créées lors l’exécution (remplacement de références symboliques) → liaisons fonctionnelles; → définition précise d’oeuvre dérivée en informatique? Rosen (OSI): il n’y a production d’œuvre dérivée lors d’un simple linkage. The University of Namur www.fundp.ac.be 26 avril 2004 – p. 15 Autres problèmes Plan • Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences → Anatomie • Librairies ✓ Autres cas • Au delà • Conclusions • Références The University of Namur www.fundp.ac.be • Certains programmes génèrent du code source. Le copyleft implique alors que si dans le code ainsi produit se trouve une copie d’une partie du code du programme, le logiciel utilisant le code généré devrait suivre la même licence. Exemple: le programme Bison (générateur d’analyseur syntaxique): copie un programme standard d’analyse dans le fichier résultat. → Une clause d’exception a été prévue. • Le cas LATEX: logiciel de production de documents. La LATEX Project Public License (LPPL) oblige à renommer tout fichier modifié. Raison: LATEX respecte les règles typographiques en vigueur dans l’imprimerie; certaines modifications les violaient. → la GPL n’est pas toujours la licence la plus appropriée. 26 avril 2004 – p. 16 Au delà du logiciel libre Littérature Plan • Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences • Anatomie • Librairies • Autres cas → Au delà • Conclusions • Références The University of Namur www.fundp.ac.be • O’Reilly Open Books (http://www.oreilly.com/openbook/) • Free Documentation License (FDL); • FreeBSD Documentation License Licence Art Libre: la “copyleft attitude” → liberté de copier, de diffuser, d’interpréter et de modifier l’œuvre originale; l’oeuvre modifiée/dérivée doit être sous licence Art Libre. → interdit d’intégrer l’original de l’œuvre dans une autre œuvre non soumise à la licence Art Libre. Le projet CreativeCommons Exemple: http://www.bushin30seconds.org/ → Creative Commons Public License 26 avril 2004 – p. 17 Conclusions Logiciel libre Plan • Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences • Anatomie • Librairies • Autres cas • Au delà → Conclusions • Références • réintroduction du mode de développement originel; • notion proche: logiciel Open Source; • culture du bazar: mode de développement ouvert, où chacun a son mot à dire; • avantages tant pour l’utilisateur que le développeur; • propagation vers d’autres domaines d’activités. Difficultés • licences nombreuses et difficiles à interpréter pour un praticien; • notion d’œuvre dérivée en informatique? The University of Namur www.fundp.ac.be 26 avril 2004 – p. 18 Références Sites web: • http://www.gnu.org: Free Software Foundation Plan • Historique • Philosophie • Copyleft • Open Source • Implications • Utilisateur • Développeur • En pratique • Logiciels • Licences • Anatomie • Librairies • Autres cas • Au delà • Conclusions → Références • http://www.opensource.org: Open Source Initiative. Livres: • Eric S. Raymond, The Cathedral and the Bazaar, O’Reilly, 1999. • Various, Libres enfants du savoir numérique, Editions de l’Eclat, 2000. • Various, Open Sources: Voices from the Open Source Revolution, O’Reilly, 1999. Cette présentation est disponible sous la Free Documentation License; elle peut être téléchargée à l’adresse suivante: http://www.fundp.ac.be/ fbastin/computing/hackers/. The University of Namur www.fundp.ac.be 26 avril 2004 – p. 19