Histoire du logiciel libre 1786748 31165319 2008-06-30T16:42:11Z Badmood 4507 url externe --> url interne {{à vérifier}} L''''histoire du logiciel libre''' est intimement imbriquée avec celle de l'[[histoire de l'informatique|informatique]] et celle du [[génie logiciel]]. Elle ne commence en tant que telle qu'à partir du moment où est apparu le besoin de distinguer le [[logiciel libre]] du [[logiciel propriétaire]], selon le principe énoncé pour ''[[Le Cru et le cuit]]''. Ces prémices datant de la fin du XX° siècle, il ne peut s'agir d'une discipline académique. L'histoire du logiciel libre est donc présentée ici de façon informelle. ==Prémices== [[Image:Abacus 6.png|thumb|Manipulation des nombres sur un [[boulier]]]] ===Historique=== Le logiciel libre trouve ses sources dans le rapport au savoir et à la connaissance générale propres à l'[[informatique]]. Le terme « informatique » est à prendre ici dans son sens premier de mécanisme d'[[information]] [[automatique]], comparable aux formes les plus archaïques comme le [[boulier]], compréhensible et réutilisable par n'importe qui. [[Image:Eniac.jpg|thumb|right|200px|L'[[ENIAC]], la première machine brevetée comme ordinateur, mais pas forcément le premier ordinateur.]] Plus récemment, certaines de ces logiques élaborées en [[intelligence artificielle]] empruntent des principes aux [[mathématiques]] et aux [[neurosciences]] entre autres, toujours sans restrictions liées à des notions de propriété intellectuelle. Parmi les nombreux précurseurs qui ont effectué la transition entre un paradigme de connaissances multiples et un paradigme logiciel, on peut citer [[John von Neumann]] et [[Julian Bigelow]] avec la machine [[ENIAC]] de [[1948]]. Celle-ci fut brevetée comme le premier ordinateur numérique, mais un procès en [[1973]] jugea qu'elle avait repris les idées de l'ordinateur [[Atanasoff–Berry Computer|ABC]]. C'est peut-être le premier conflit de propriété sur la paternité des logiques liées à l'informatique. ===Période universitaire=== Jusque dans les années 1970, les logiciels étaient plus ou moins libres d'être étudiés, utilisés, modifiés, du moins à l'intérieur du cadre universitaire, suivant ainsi la logique des sciences en général. Ce n'était pas forcément lié aux lois en vigueur, mais aucun intérêt commercial ne s'y opposait puisque seules de grosses compagnies pouvaient acheter des [[ordinateurs]] et les logiciels associés. Elles avaient tout intérêt à permettre la création de communautés de développeurs pour favoriser l'amélioration du logiciel (qui était donc leur propriété). Autrement dit, le peu de personnes compétentes et la structure du marché pour lequel était utilisé le logiciel le rendait plus ou moins libre dans les faits. ===Transition=== [[Image:Richard Matthew Stallman.jpeg|thumb|[[Richard Stallman]], le créateur du mouvement du logiciel libre]] C'est dans ce contexte, dans les années 80, qu'un programmeur de [[système d'exploitation]] au [[Massachusetts Institute of Technology]] (MIT), un certain [[Richard Stallman]], commence à constater des restrictions des possibilités d'utilisation. Il se trouve face au problème éthique de devoir développer des logiciels dont l'utilisation sera restreinte, qui ne pourront pas être partagés en raison des droits du propriétaire du logiciel (souvent distinct du créateur). Ces restrictions il commençait à les constater en se trouvant en présence de programmes sur lesquels il ne pouvait intervenir, un pilote d'imprimante notamment.<ref>« J'avais déjà eu l'expérience douloureuse des accords de non-divulgation, quand quelqu'un m'avait refusé, ainsi qu'au laboratoire d'IA du MIT, l'accès au code source du programme de contrôle de notre imprimante (l'absence de certaines fonctionnalités dans ce programme rendait l'utilisation de l'imprimante très frustrante). Aussi ne pouvais-je pas me dire que les accords de non divulgation étaient bénins. J'avais été très fâché du refus de cette personne de partager avec nous ; je ne pouvais pas, moi aussi, me comporter d'une telle manière à l'égard de mon prochain. »([http://www.gnu.org/gnu/thegnuproject.fr.html source])</ref> [[Robert Sproull]] aurait refusé de lui fournir le code source en raison d'un contrat de non divulgation que [[Xerox]] avait passé avec lui, pratique encore peu courante a l'époque. <ref>''Free as in Freedom- Chapitre 1 ([[s:Libre comme Liberté - 1|wikisource en français]])</ref> Bien anecdotique, cette petite histoire est souvent prise comme étant le point de départ de l'informatique libre, puisque c'est à partir de là semble-t-il que ce Richard Stallman consacrera son énergie à résoudre ce problème de conscience, ce qui fera de lui le premier et le plus emblématique des ambassadeurs du logiciel libre. ==Le mouvement du logiciel libre== Un [[mouvement social]] s'est petit à petit constitué pour faire évoluer les droits que les utilisateurs ont sur le logiciel afin d'accéder à la libre circulation des informations dans ce domaine. ===Les idées=== ====Exposition des problèmes==== Richard Stallman explique dans "''Pourquoi les logiciels ne doivent pas avoir de propriétaire''" une {{citation|analogie abusive avec les objets matériels.<ref>[http://www.gnu.org/philosophy/why-free.fr.html Pourquoi les logiciels ne doivent pas avoir de propriétaire<!-- Titre généré automatiquement -->]</ref>}}. Pour expliquer ce qui sera repris dans la notion de [[Biens rivaux]] il y utilise la métaphore culinaire (qu'il reprendra régulièrement<ref>Il l'utilisera par exemple devant la caméra dans le documentaire ''Nom de code Linux'' diffusé sur arte</ref>) pour dissocier le plat qui, s'il est pris par quelqu'un d'autre peut entraîner un manque, et la recette de cuisine. Partager la recette selon lui ne peut être que bénéfique, puisque cela ne crée pas de manque, et qu'au contraire peut profiter à celui qui la donne s'il peut profiter à son tour des améliorations apportées. Il précise dans le "''[[manifeste GNU]]''" que {{début citation}}Extraire de l'argent des utilisateurs d'un programme en restreignant leur utilisation du programme est destructif parce que, au bout du compte, cela réduit la quantité de richesse que l'humanité tire du programme. {...} C'est la morale kantienne, ou règle d'or. Puisque je n'aime pas la situation qui résulte d'une rétention générale de l'information, il me revient de considérer comme immoral d'agir ainsi.<ref>''Le manifest GNU'', [[s:Manifeste GNU|wikisource]]</ref>{{fin citation}} Le problème n'était donc pas seulement de permettre la réutilisation du code source, mais de faire en sorte que l'information qu'il contient reste en libre circulation, et que les avantages qu'il procurent restent librement utilisables. Stallman précise les raisons de cette différenciation<ref>Lors d'une conférence à l'Assemblée Nationale (en France) à propos des brevets logiciels ([http://www.april.org/actions/rms/20011120/stream.html source général] [http://media.april.org/audio/assnat/stallman4.ogg source audio direct]), ou de façon proche dans une lettre ouverte au parlement italien où il écrit ''Contrairement au droit d’auteur [NDT : "copyright"], qui protège les détails d’un programme dans son ensemble mais pas les idées qu’il met en jeu, un brevet logiciel impose un monopole d’état sur l’utilisation d’une technique. Or un logiciel complexe utilise des milliers de techniques de ce genre.'' [http://www.framasoft.net/article3904.html source]</ref> : de son point de vue, ramenés à quelques concepts élémentaires les logiciels sont des idées, et on peut les ''découper'' en logiques simples dont le nombre devient alors limité. De ce point de vue une partie de code réutilisable peut se trouver en situation de ne pouvoir fonctionner qu'associé à des éléments propriétaire. Dans ce cas, son utilisation dans un contexte fonctionnel est donc soumis aux limites de copyright des éléments propriétaires indissociables. ====Solution utilisée==== [[Image:Gnu meditate levitate.png|thumb|''Levitating Gnu'' par Nevrax Design Team]] Considérant que le [[système d'exploitation]] est un élément stratégique indispensable, il entreprit en [[1983]] la conception d'un système d'exploitation libre, [[GNU]], auquel il se consacra entièrement à partir de [[1984]] après avoir démissionné du [[Massachusetts Institute of Technology|MIT]]. Pour mettre en place son [[projet GNU]], il dut préciser les principes du logiciel libre décomposés en quatre libertés fondamentales : celle d'utiliser, d'étudier, de distribuer et de redistribuer des versions modifiées. ====Le copyleft==== [[Image:Copyleft.svg|thumb|100px|Logo du copyleft]] Les principes énoncés pour le logiciel libre étaient déjà existant dans le cadre universitaire par exemple, mais pour développer GNU, les contributeurs intéressés par le projet (et Richard Stallman lui-même) voulaient être certain que leurs apports resteraient libres. L'idée d'interdire d'interdire sera alors exprimée par le [[copyleft]] (ou gauche d'auteur<ref>Cette appellation est basée sur un double [[jeu de mots]] opposant deux sens distincts des mots ''right'' et ''left'', le premier opposant littéralement « droite » et « gauche », le second opposant « le [[droit]] » et « l'abandon », signifiant ainsi que l'auteur renonce à ses droits d'auteur sur son travail.</ref>) dont la finalité est clairement exposée dans le manifeste GNU : {{début citation}}L'idée centrale du gauche d'auteur est de donner à quiconque la permission d'exécuter le programme, de le copier, de le modifier, et d'en distribuer des versions modifiées - mais pas la permission d'ajouter des restrictions de son cru. C'est ainsi que les libertés cruciales qui définissent le « logiciel libre » sont garanties pour quiconque en possède une copie; elles deviennent des droits inaliénables.<ref>[[s:Manifeste GNU|Le manifeste GNU sur wikisource]]</ref>{{fin citation}} Ce copyleft va au delà des principes du logiciel libre en les imposant définitivement à tout ce qui est créé à partir d'éléments ''copyleftés''. Il a alors été qualifié viral et la question de savoir si appliquer le copyleft rend le logiciel plus libre ou moins libre est l'un des débats sans fin les plus courants (voir [[troll]]). ====Les Licences GNU==== Ce principe de copyleft dut s'inscrire dans le cadre légal pour être utilisable. C'est avec [[Eben Moglen]] que sont mise au point les licences qui précisent sur le principe du [[droit d'auteur]] les conditions d'utilisation que celui-ci impose aux utilisateurs, en l'occurrence la pérennité des principes du logiciel libre. Les ''licences GNU'' font leur apparition avec la GPL ([[GNU General Public License]]) publié pour la première fois en [[1989]], accompagné rapidement de versions adaptées à des cas particulier, la LGPL ([[GNU Lesser General Public License]] et la GFDL ([[GNU Free Documentation License]]). ===Les groupes=== [[Image:FSF-Logo.svg|150px|right]] ====La Free Software Foundation==== La mise au point du système GNU exigeait la réunion de personnes, la création d'une communauté, autour du projet. La création de la [[Free Software Foundation]] (FSF) en [[1985]] avait ce rôle, rôle que l'on peut retrouver sous diverses formes d'associations liées aux développement de tous les grands logiciels libres. Mais en tant que mouvement précurseur, la FSF a aussi un rôle plus imbriqué avec la défense du logiciel libre en général, avec des intentions plus sociales et politiques. On peut citer sa présence indirecte dans des domaines comme les [[brevets logiciels]], ou les systèmes de gestion des droits des utilisateurs ([[Gestion des droits numériques|DRM]]). ====Le mouvement Open source==== Les principes du logiciel libre ne se limitent pourtant pas à ceux du mouvement initial associé au projet GNU, souvent jugé radical, et parfois anti-commercial. Parmi les mouvements émergeants il y a celui de l'[[Open Source]] né en [[1998]]. La figure emblématique de ce mouvement est [[Eric Raymond]] qui a analysé les avantages de ce mode de fonctionnement et les a exposé dans son livre "''[[La cathédrale et le bazar]]''". Il est également le fondateur avec [[Bruce Perens]] de l'[[Open Source Initiative]] qui se veut plus proche des problèmes techniques et économiques. La définition de l'[[Open Source]] aurait été faite par ce dernier a partir des [[principes du logiciel libre selon Debian]]<ref> On peut lire « Plus tard, Bruce Perens retira toute référence au projet Debian des DFSG pour en faire la ''Définition de l'Open Source'' » [http://www.debian.org/social_contract.fr.html#guidelines ici].</ref>. Pour les uns, et notamment ses créateurs, cette institution défend le logiciel libre mais sous une forme plus présentable et moins ambigüe. Pour les autres, dont Stallman, même à travers une pratique technique identique, ce mouvement tend à perdre la motivation première de défense des libertés. C'est également une question à l'origine de débats accentuant les discordes, bien qu'il existe des mouvements qui tendent à réunir les deux ''camps'', comme à travers le terme [[FLOSS]], et que la différence soit souvent purement syntaxique dans l'esprit de ceux qui les emploient.<ref>On peut voir sur [http://tools.wikimedia.de/~gmaxwell/jorbis/JOrbisPlayer.php?path=051118-WSIS.2005-Bruce.Perens.ogg cette vidéo] Bruce Perens expliquer que « quand [il dit] open source [il entend] la même chose que quant Richard dit logiciel libre. »</ref> ==L'évolution du logiciels libres== [[Image:Unix history-simple.svg|thumb|Arbre généalogique des systèmes Unix, les versions libres commence a partir de BSD et GNU]] Il existait avant le projet GNU de nombreux logiciels libres, principalement les travaux issus des grandes universités; on peut citer le système de fenêtrage [[X Window]] repris dans le projet GNU, mais ils ont toujours ou très majoritairement été inclus ou associés à des structures dites propriétaires dans le cadre de leur utilisation. ===Les distributions=== ====BSD==== Historiquement il existait déjà très tôt des systèmes d'exploitation libres qui n'imposent pas de par leur licence de ''droits inaliénables de l'utilisateur'' à la façon copyleft. Il sont souvent défendus comme étant donc plus libres. Le plus emblématique est le système [[BSD]], une autre architecture de type unix dont la première version date de [[1977]] et que l'on retrouve sous de nombreuses déclinaisons, y compris dans des systèmes d'exploitation dit ''propriétaires'' qui peuvent en utiliser des parties, comme [[NeXTStep]] puis [[Mac OS X]]. C'est le premier système d'exploitation libre, car il répond au qualifications de logiciel libres qui seront établies plus tard. Si le mouvement du logiciel libre ne l'a pas adopté pour autant, c'est que ces licences accordent des droits proches du domaine public, ce qui était jugé trop permissif pour aboutir des systèmes préservant les libertés de l'utilisateur. Cette idée est source de polémique et ne peut de toute façon pas stigmatiser le ''mouvement BSD'' comme le prouve de développeur [[Theo de Raadt]]. ====Linux==== [[image:59416-linuxdistrotimeline-7.5.svg|thumb|Les distributions [[GNU/Linux]] issues du mouvement des logiciels libres]] Le premier système d'exploitation libre ''à la sauce copyleft'' donc issu du projet GNU n'est apparu qu'en [[1992]] avec la première réunion des éléments de GNU en développement depuis 1984 et du [[Noyau Linux]]. Ce dernier a été crée par [[Linus Torvalds]] sur la base de [[Minix]], et diffusé sous licence GPL en [[1991]]. Il a ensuite été sans cesse amélioré par de très nombreux autres programmeurs de par le monde (dont [[Alan Cox]]) pour devenir un des [[Noyau de système d'exploitation]] de référence. C'est sur cette base dite [[GNU/Linux]] mais plus couramment appelée [[Linux]] que se sont constituées les premières [[Distribution Linux]], qui ont le plus souvent servi de base de conception aux plus récentes. Parmi les plus emblématiques on peut citer [[Slackware]], [[Debian]] et [[Red Hat]], dont la distinction à l'origine se fit par leurs philosophies respectives: l'excellence technique, l'universalité défendue par la FSF (à travers la personnalité de [[Ian Murdock]]), et l'ajustement aux besoins commerciaux. ===Les logiciels associés=== ====Les serveurs==== Une des premières utilités répandues de ces systèmes d'exploitation libre est la ''distribution de données'', on parle de [[serveur informatique]]. Un logiciel distribuant ces données "sur le [[Web]]" serveurs Web est le [[Apache HTTP Server|serveur http Apache]] qui a joué un grand rôle dans la démonstration des capacités (encore peu reconnues) des logiciels libres. Il est associé comme la plupart des grands acteurs du logiciel libre à une organisation, la [[fondation Apache]], et à un type de licence particulier répondant a des besoins précis, la [[licence Apache]]. Crée en [[1995]] a partir d'un logiciel du domaine publique, il est étroitement lié au couple PHP/MySQL, qui réunit le système de base de données [[PHP: Hypertext Preprocessor|PHP]] crée en [[1994]] par [[Rasmus Lerdorf]], et le gestionnaire de base associé [[MySQL]] crée en [[1995]] et passé sous licence GPL en [[2000]]. ====Les interfaces graphiques==== En parallèle de cette envolée, dans les années [[1995]], les mécanismes techniques de l'[[interface graphique]] étaient déjà en développement depuis longtemps. Un des personnage centraux de ce travail est [[Keith Packard]], et un ensemble de logiciels utilisant presque systématiquement la lettre X ([[X11]] [[X.org]], ... ). Pourtant les interfaces "homme/machine" n'étaient pas très évoluées ni intuitives, et les systèmes à base de logiciels libres étaient réputés pour être réservés aux informaticiens. [[Image:KDE 1.0.jpg|thumb|[[KDE]] 1.0]] Une des révolutions vient de l'inclusion à ces systèmes de l'[[interface graphique]] [[KDE]], un environnement de bureau puissant, mais basé sur une bibliothèque d'éléments alors propriétaire. La réaction de la part des défenseurs du ''tout libre'' fut la création du projet concurrent [[GNOME]] et de bibliothèques libres compatibles, harmony. Les bibliothèques [[Qt]] en question furent mises sous licence GPL, mettant fin au projet harmony, mais pas au projet GNOME. Les deux interfaces graphiques ont continué à se développer parallèlement et parfois dans un profond dénigrement réciproque, alimenté entre autres par une figure de proue du système GNOME, [[Miguel de Icaza]]. La tendance générale est pourtant au rapprochement en particulier autour de l'initiative [[freedesktop]]. Là encore, au delà du simple logiciel ce sont de véritables organisations qui se sont constituées autour de principes clairement annoncés.<ref>Par exemple dans le [http://www.kde.org/announcements/announcement.php manifeste KDE] et la présentation de la [http://foundation.gnome.org/ fondation gnome]</ref> ===Les langages de programmation=== À l'opposé de l'interface graphique, c'est-à-dire hors de portée de ce qui est visible par l'utilisateur final, une des bases du logiciel est le [[langage de programmation]]. Certaines structures sociales autour de ces langages sont de ''type logiciel libre''. Le langage [[Perl (langage)|perl]] crée en [[1987]] par [[Larry Wall]] édité lui directement sous licence GPL puis sous sa propre licence, [[Artistic License]], le tout maintenu par un organisme à but non lucratif, [[The Perl Foundation]]. De la même manière, le langage [[Python (langage)|python]], crée en [[1990]] par [[Guido van Rossum]], est géré par la [[Python Software Foundation]] et édité sous la [[Python Software Foundation License]]. ===Les logiciels multi-plateforme=== C'est une autre orientation du développement que l'on peut dire transversale qui voit un logiciel particulier tendre à devenir la référence pour une tâche donnée, tous systèmes confondus. Cette orientation [[multiplate-forme]] n'est pas toujours très appréciée par ceux qui cherchent à obtenir un système complètement libre, plutôt qu'une fonctionnalité libérée dans un environnement qui ne l'est pas forcément. On peut citer différents exemples de logiciels type suivant la part de conception dans un contexte du logiciel libre. * Type GNU, l'exemple '''[[Gimp]]''' Logiciel historique du projet GNU, il s'est répandu de par ces qualités a d'autres environnements que celui prévus a l'origine. Cette conception d'abord exclusive l'a en partie limité dans cette extension (le type de fenêtrage, ou la bibliothèque [[GIMP Toolkit|gtk]] le rendent parfois plus efficace dans son cadre ''habituel''). * Type libéré, l'exemple '''[[Mozilla]]''' Issus de la ''libération'' d'un logiciels propriétaire, ici [[Netscape]], et repris par une organisation à but non lucratif, ici la [[Fondation Mozilla]]. Il est considéré comme une réussite incontestable dans le domaine du logiciel libre, de par la forte diffusion de son produit phare, le [[navigateur internet]] [[Firefox]], mais aussi par la façon dont il s'est structuré face a une forte concurrence commerciale qui diffuse le plus souvent elle aussi ses navigateurs gratuitement. * Type commercial, l'exemple '''[[Open Office]]''' C'est un autre exemple de réussite de logiciel libre indépendant des plates formes, mais son mode de fonctionnement est très différent. C'est l'entreprise [[Sun Microsystems]] qui a choisi d'utiliser la licence GPL pour distribuer sa suite bureautique. Elle continue à payer des salariés pour son développement, en partie pour promouvoir le [[Java (langage)|Java]]. * Type libre hors contexte, l'exemple '''[[VLC media player|VLC]]''' Ce sont des logiciels de conception libre dès l'origine attachés à une tâche bien précise (ici la lecture de flux) qui ont utilisé la licence libre pour des raisons logiques, ici un développement universitaire. Sur des bases qui ne sont pas toujours celles des principes originaux, nombre de logiciels de ce genre ont profité des avantages logiques que peut apporter ce type de licence pour connaitre dans le cas de VLC une évolution rapide dans un domaine pourtant très concurrentiel. ==L'utilisation des principes au delà du logiciel== Une des formes les plus inattendues des licences et des principes issue du mouvement du logiciel libre est certainement celui du principe de [[culture libre]]. Il en découle en grande partie, dans la façon d'aborder le principe de propriété culturelle notamment, mais il s'en distingue très largement. ===Les zones d'information=== L'échange lié au logiciel libre pour se tenir au courant des nouveautés, des problèmes, et aussi pour débattre s'est en partie mis en place à travers des organisations autonomes comme [[Slashdot]]. Elle ne se limite pas au logiciel libre, mais ces concepts y sont repris et très présents. ===Les annuaires=== Une des formes les plus proches du logiciel est celle qui consiste à recenser les logiciels libres (sur internet), comme le fait [[Framasoft]]. On peut constater que le site s'est étoffé en ajoutant une partie dite ''expression libre'' et une dite ''culture libre''. Ce type de référencement libre peut aussi être imagé par l'annuaire [[Open Directory Project|dmoz]]. ===Les licences artistiques=== Une autre évolution plus indirecte mais toujours très liée au niveau culturel est celle de la création de licences particulières permettant de stipuler des autorisations de réutilisation. La plus connue est [[Creative Commons]], fondé par [[Lawrence Lessig]], qui tente de faciliter pour l'auteur d'une œuvre le choix de ce qu'il souhaite partager ou non. ===La création mise en commun=== [[Image:Wikimania stallman keynote2.jpg|thumb|Richard Stallman lors de [[Wikimania]] en 2005]] C'est également sur les bases historiques du mouvement du logiciel libre qu'ont pu se mettre en place des structures comme [[Wikipédia]]. La base logicielle [[MediaWiki]] est de type logiciel libre, et un soin particulier est mis sur la possibilité de redistribution, donc sur l'identification du type de licence utilisée pour les fichiers ajoutés comme les images. Historiquement, il y eut certainement une émulation d'idée avec le projet [[GNUPedia]].<ref>[http://www.gnu.org/encyclopedia/ The Free Universal Encyclopedia and Learning Resource - GNU Project - Free Software Foundation (FSF)<!-- Titre généré automatiquement -->]</ref> ==Voir Aussi== Sur wikipédia anglophone : * l'histoire de l'ingénierie logicielle : [[:en:History of software engineering]] * l'histoire du noyeau linux : [[:en:History of the Linux kernel]] * l'histoire de la suite Mozilla : [[:en:History of Mozilla Application Suite]] * le mouvement du logiciel libre : [[:en:Free software movement]] * La définition du logiciel libre : [[:en:The Free Software Definition]] ===Liens externes=== * La définition du logiciel libre [http://www.gnu.org/philosophy/free-sw.fr.html sur gnu.org]; [http://fsfeurope.org/documents/freesoftware.fr.html sur fsfeurope.org]; [http://www.debian.org/social_contract.fr.html#guidelines par rapport à debian]. ==Notes== <references /> {{GNU}} {{portail logiciel libre}} [[Catégorie:Logiciel libre]] [[Catégorie:Histoire de l'informatique]] [[en:History of free software]] [[hu:A szabad szoftver története]] [[id:Sejarah perangkat lunak bebas]] [[it:Storia del software libero]] [[pl:Historia Wolnego Oprogramowania]]