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