Le Logiciel Libre Déjeuner technologique Bruno Beaufils

De April MediaWiki
Aller à la navigationAller à la recherche


Titre : Le Logiciel Libre

Intervenant : Bruno Beaufils, Maître de conférence en informatique

Lieu : Lille 1, Les déjeuners technologiques

Date : Février 2014

Durée : 1 h 01 min

Lien vers la vidéo : [1]


00' transcrit MO

Bruno Beaufils : Bonjour.

Public : Je ne fais que passer. Je savais que tu étais là.

Bruno Beaufils : Bon. Eh bien bonjour. Désolé de ce retard indépendant de ma volonté. Je vais vous faire une petite présentation autour du Logiciel Libre. Une des difficultés c’est que je ne connaissais pas tellement le public, donc j'ai considéré que c’était essentiellement des étudiants. Donc, désolé pour les gens du fond, je pense que vous n'apprendrez pas grand-chose. Mon espoir c'est que les étudiants non plus n’apprennent rien, en gros, que vous ayez eu des enseignements suffisamment corrects pour savoir ce que c'est que le Logiciel Libre et que, a priori, aujourd'hui, vous vous embêtiez un peu pendant la présentation.

Rapidement pour ceux qui ne me connaissent pas, je suis Bruno Beaufils, je suis Maître de conférences ici à Lille 1. Je suis en poste à l'IUT, département informatique dans lequel j’enseigne les systèmes d'exploitation, en gros, en majorité. Vous avez mes coordonnées. Et puis il y a un autre truc, c’est que, en dehors de mon boulot, j'ai une vie. J'utilise l'informatique depuis presque aussi longtemps que les gens du fond, mais les logiciel libres depuis 91 à peu près, en gros depuis que je suis arrivé à Lille 1 et je participe un petit peu à la communauté, notamment en étant membre de l'April dont je parlerai un petit peu tout à l'heure si j'ai un peu de temps. Donc vous avez mes coordonnées.

La première chose c'est que la présentation que je vais faire, comme toutes les présentations que je fais sans ma casquette maître de conf, là je ne suis pas en cours donc j'ai le droit de dire ce que je veux, en cours aussi, mais en cours j’essaie d'être un peu poli, elle va être un peu biaisée. C'est-à-dire que j'ai un a priori sur ce que je vais raconter : je suis plutôt favorable au Logiciel Libre et plutôt défavorable au logiciel privateur. Ça va transparaître un peu dans ce je vais raconter. Il faut que vous ayez aussi un peu de sens critique et puis que vous voyez ce que je dis avec un peu de recul s'il le faut.

D'abord le biais vient du fait que je suis ancien chercheur. Normalement si je suis ancien chercheur, dans le public en tout cas, mon objet c'est de diffuser du savoir et donc c'est de faire en sorte que l'information circule librement. Vous allez voir que quand je vais présenter le Logiciel Libre, forcément de par ma nature, de part mon travail, de part mon implication dans l'université, je vais être proche des idées du Logiciel Libre. Ensuite j'utilise et je contribue au Logiciel Libre depuis longtemps, très longtemps, et puis je suis favorable à l'extension du libre, des principes du Logiciel Libre en dehors du cadre des logiciels. On parlera un tout petit peu à la fin, je vous présenterai un livre pour ceux que ça intéresse et puis une émission ou deux qui sont passées récemment à la radio. Je vais vous présenter un truc pour lequel je ne vais pas être pas complètement objectif. Ce qui change, puisque dans le cours je suis complètement objectif, pour les gens qui m'ont eu vous savez que cette fois j'ai été non objectif en cours.

Après incomplète parce que je l'ai faite super vite, pour plusieurs raisons. La première c'est que c'est un sujet qui me tient à cœur et du coup j'ai envie de dire plein de trucs. Et quand on veut dire plein de trucs c'est super compliqué de structurer, c'est super compliqué de faire un choix. Donc je l'ai faite volontairement assez technique du point vue de la conception du logiciel, donc de la naissance et pas tellement des logiciels eux-mêmes. Ensuite c'est incomplet parce que vous allez voir que des licences qui se disent libres, licences d'utilisation qui se disent libres, il y en a une flopée, enfin c'est un des points noirs du monde du libre, c'est qu'il y a beaucoup, beaucoup de licences, avec des petites subtilités à chaque fois et avec des petites distinctions dont une grosse qu'on verra tout à l'heure entre Logiciel Libre d'un côté et logiciel ouvert de l'autre.

Donc mon objectif c'est d'essayer de vous faire comprendre ce que c'est que le Logiciel Libre, de vous convaincre de son intérêt et si jamais j'ai réussi à faire ça je suis content. Après, ce que j'aimerais bien, c'est que vous réussissiez à avoir envie de participer à cet effort, enfin à ce mouvement. Je pense que si vous êtes là c'est que vous êtes un petit peu intéressé, donc vous l’êtes déjà plus ou moins. Et puis après c'est juste introductif parce qu'à la fin je vous donnerai quelques liens pour aller plus loin.

D'abord, vous êtes, j'espère, tous plus ou moins informaticiens, vous savez ce que c'est qu'un logiciel, donc ce que je vais vous dire là vous le savez déjà. Un logiciel c'est juste une suite d'instructions qui normalement va être exécutée sur un processeur, enfin un microprocesseur particulier. Vous savez qu'un programme et l'informatique au sens général ça ne sert qu'à deux choses : un, faire des calculs, deux stocker le résultat de ces calculs. Là je prends l’aspect très technique ; ça ne fait rien de plus que ça. Le calcul ça peut être ce qu'on veut, c'est le traitement de n'importe quel type d'information. L'information étant un nombre, enfin un truc qu'on représente par des nombres, comme on veut, mais en gros ça ne sert qu'à ça. Le troisième truc que j'ai mis c'est évidemment réutiliser ces résultats. Si on fait un calcul qu'on a un résultat dont on ne se sert pas, ce n'est pas très intéressant. Voilà à quoi sert un logiciel.

Vous savez, en gros comment on le construit. On le construit, d'abord en écrivant ce qu'on appelle un programme source, on va dire, pour simplifier un peu les choses. Ce programme source il est généralement écrit dans un langage de programmation qui n'est pas directement exécutable par le processeur. C'est assez rare d'écrire directement dans le jeu d'instructions du processeur sur lequel on va travailler. C'est possible, c'est possible dans plein de cas, notamment dans l'embarqué, en même temps on n'a pas forcément de compilateur. La plupart du temps on écrit un truc qu'on appelle le code source. Et il y a quelqu’un qui l'écrit ; donc il y a un humain qui l'écrit. Pour définir un logiciel il faut définir qui est l'auteur du logiciel et puis ensuite comment a été écrit ce logiciel, donc avec quel langage de programmation, quel code source on a utilisé. Et enfin, à partir du langage de programmation et du code source, généralement ce qu'on fait c'est qu'on fait une version exécutable, d'un manière ou d'une autre, soit en la compilant, soit en interprétant à travers une machine virtuelle, comme par exemple ce que fait Java, ou ce qu'on pourrait faire avec n'importe quel autre interpréteur comme Python, PERL ou ???. En gros voila ce que c'est qu'un logiciel.

Ce qui nous intéresse là-dedans, dans la conception du Logiciel Libre, c'est le code, qu'il soit source ou exécutable on s'en fout parce qu'a priori, quand on a le code exécutable on peut toujours essayer de revenir en arrière en faisant ce qu'on appelle du rétro-ingéniering, c'est-à-dire en allant regarder les instructions comment comment elles sont exécutées sur le processeur. C'est un peu compliqué, il faut mieux avoir accès au code source. C'est ça, c'est le code d'un côté et puis l'auteur. L'auteur est donc la personne qui a écrit le code et qui en a la propriété puisqu'on verra qu'a priori quand on a écrit un truc, quand on a une idée, pour l'instant elle est protégée. Je rajoute qu'un logiciel ça ne vit pas tout seul. Un logiciel c'est fait pour être en interaction avec des humains, donc ce qu'on va appeler des utilisateurs et puis ça aide, de temps en temps, de communiquer avec d'autres ordinateurs, c'est-à-dire avec d'autres logiciels, avec d'autres programmes, par exemple pour l'échange de données qu'on a vu dans le premier point. Ce qui m'intéresse, c'est l'auteur d'un code source. Ça c'était du point de vue de la technique en gros, ça c’était du point de vue de l'informatique. Vous savez ce que c'est qu'un logiciel. Du point de vue du droit, c'est quoi un logiciel ? C'est une idée. C'est une idée qui a été écrite. On pourrait comparer un logiciel à, par exemple, je grossis le trait à chaque fois, un livre, une chanson, une musique, n'importe quoi. Il y a quelqu'un qui écrit l’œuvre, qui a eu l'idée, qui la met en œuvre. C'est un peu plus compliqué dans le monde de la musique ou des lettres parce qu'il n'y pas qu’un seul auteur, il y un auteur, un interprète, enfin il y a plein de personnes qui concourent à la réalisation de l’œuvre. Dans l'informatique on peut considérer qu'il y a un auteur ; alors quand je dis auteur, ça peut être un ensemble de gens, en gros ça peut être une entreprise, une organisation. C'est pour ça que je l'appelle éditeur.

Un éditeur, quand il a une idée, quand il a développé un logiciel, il est simplement propriétaire de son œuvre, donc il est propriétaire de son logiciel. Propriétaire ça veut dire qu'il en fait ce qu'il veut : il peut vous le donner, il peut vous le vendre, il peut vous concéder les droits qu'il a dessus, ce qu'il veut. Il est protégé dans tous les pays du monde, en tout cas donc quasiment dans tous les pays qui sont à l'ONU ou à l'OMC par un truc qu'on appelle le droit d'auteur. Le droit d'auteur, en anglais c'est copyright, c'est un ensemble de droits qui sont appliqués dans les différents pays qui sont reconnus par des organisations et des actes, des pactes entre pays pour protéger le propriétaire d'une idée ou d'une œuvre.

Et du coup l'éditeur, le propriétaire fait ce qu'il veut avec son idée, avec son œuvre. Vraiment, il fait ce qu'il veut et la plupart du temps on considère que le copyright c'est un truc qui est fait pour protéger et faire gagner de l'argent à l'auteur, mais pas forcément. Tout ce que ça implique le copyright c'est qu'il y a un droit de propriété sur une œuvre. C'est tout. Le propriétaire en fait ce qu'il veut.

A l'autre bout de la chaîne, quand vous avez écrit un logiciel, ce qui nous intéresse, c'est qu'il soit utile à des gens. Ça peut n’être qu'à vous : vous avez peut-être écrit un logiciel qui ne vous sert qu'à vous. Très bien ! Vous êtes content. Vous ne vous en servez pas plus que dans votre utilisation personnelle, il n'y a pas de problème. Mais la plupart du temps, ce n'est pas ça. Si on regarde la planète, on est aujourd'hui six ou sept milliards, les gens qui sont informaticiens sur la planète, il n'y en a pas beaucoup. C'est une race super rare. Il y moins de un pour cent de gens sur la planète qui sont informaticiens. Donc la plupart des gens utilisent des outils informatiques, donc des calculs électroniques, sans vraiment avoir les compétences pour écrire les outils dont ils ont besoin. Aujourd'hui vous avez quasiment tous un téléphone portable ; il y a plus de téléphones portables en France que de téléphones fixes, quasiment, pourtant je suis assez convaincu que si on fait un micro-trottoir dans la rue, personne ne sait comment fonctionne un téléphone portable pour de vrai ; on ne sait pas comment ça fonctionne. Du point de vue du matériel on ne sait pas comment ça fonctionne, du point de vue logiciel ; on n'a pas les compétences. Pourtant on en a besoin. Aujourd'hui on a besoin du téléphone portable, par exemple pour téléphoner en cas d'urgence ou en cas de problème. On a des besoins qui sont identifiés par des gens qui n'ont pas forcément les compétences pour trouver la solution à ces besoins.

Du coup si un utilisateur a besoin d'un logiciel et qu'il n'a pas les compétences pour l'écrire il va être tributaire de quelqu'un qui va écrire le logiciel pour lui. Donc il va être tributaire d'un éditeur, d'un auteur, donc de quelqu'un qui va écrire un programme, donc de vous, en gros vous plus tard. Plus tard vous serez tous éditeurs ou auteurs de logiciels. Du coup il y a une liaison entre le propriétaire du logiciel et puis l'utilisateur. Cette liaison se fait par un contrat. Ce contrat c'est ce qu'on appelle une licence.

10' 07

Dans une licence on met ce qu'on veut. Le propriétaire du logiciel fait ce qu'il veut avec sa licence. C'est son œuvre alors il met ce qu'il veut dedans. En gros les deux sont liés, l'éditeur et l'utilisateur sont liés. Généralement il y a un éditeur et plusieurs utilisateurs, mais on pourrait très bien imaginer que, comme dans des échanges de troc comme on pouvait le constater avant les apparitions de monnaie, que deux interlocuteurs. La plupart du temps ce n'est pas ça, c'est un vers quelques. Donc il y a un contrat entre les deux et ce contrat on appelle ça une licence.

Les licences logiciels, on les appelle souvent abusivement les licences d'utilisation logiciel, c'est-à-dire les licences logiciels la plupart du temps, il y en a de deux catégories, il y a les licences qu'on appelle libres et celles qu'on appelle non libres et je mettrai des noms derrière non libres tout de suite après.

Une licence libre, c'est une licence pour laquelle un propriétaire de logiciel a décidé de faire respecter quatre libertés, quatre droits particuliers, c'est-à-dire qu'il est propriétaire d'une œuvre et il donne quatre droits à n'importe qui, qui veut utiliser son œuvre. Les quatre droits sont notés liberté zéro, un, deux et trois.

En gros la première c'est de pouvoir utiliser sans aucune restriction le logiciel. Je reviendrai sur quelques exemples tout à l'heure. La seconde c'est de pouvoir l'étudier et le modifier. Vous avez un logiciel vous avez le droit de regarder ce qu'il y a dedans, vous avez le droit de le modifier s'il ne vous plaît pas, si jamais vous en avez les compétences ou le faire modifier par quelqu'un si vous n'avez pas les compétences directes.

La troisième c'est de le redistribuer. C'est-à-dire que vous avez récupéré le logiciel, vous avez le droit de le redistribuer à qui vous voulez et la quatrième, enfin la liberté trois, c'est de le redistribuer avec les modifications que vous avez apportées. La première est super importante et souvent on ne la comprend pas très bien. Une licence libre vous confère le droit de faire ce que vous voulez avec votre logiciel, y compris préparer des attentats. Il n'y a aucune restriction possible sur l'utilisation d'un logiciel libre. Dès qu'on en met une on n'est plus libre. Je pousse volontairement le bouchon un peu loin quand je dis un attentat parce que vous comprenez tout de suite qu'il y a une idée de méchant et pervers, mais a priori on ne doit pas préjuger l'utilisation d'un logiciel. Si on préjuge l'utilisation d'un logiciel, comme on pourrait le faire par exemple pour les logiciels privateurs, a priori ça veut dire qu'on n'est pas libre, c'est-à-dire qu'on ne donne pas toute la liberté à l'utilisateur final, à la personne qui va se servir du logiciel qu'on a écrit. D'accord ? On est bien propriétaire de cette version du logiciel.

La seconde c'est dire qu'on doit donner le code source. En gros on ne doit pas écrire un logiciel et le distribuer à quelqu'un en disant « Tu en fais ce que tu veux, mais je ne te dis pas comment ça marche ». C'est-à-dire qu'on ne fait pas du Apple. Clairement quand on donne un truc, on doit savoir comment ça fonctionne derrière. On doit être capable de le faire. Je ne dis pas que vous allez le faire, mais vous avez la possibilité de le faire, on vous donne la possibilité de le faire. C'est-à-dire que pour vous, ça veut dire que quand vous avez développé un logiciel, vous ne distribuez pas simplement un binaire, vous distribuez un binaire et un source. Surtout, si jamais vous n'avez pas le source, vous dites « Vous avez le droit d'aller regarder comment le binaire a été construit. Je ne vous interdis pas de faire quoi que ce soit sur le binaire, à regarder en arrière, de faire du rétro-ingéniering sur le binaire par exemple ».

Le redistribuer et le redistribuer avec les versions modifiées. Ça veut dire qu'en gros vous avez le droit d'aider votre prochain. Quelqu'un qui est à côté de vous, qui ne connaissait pas forcément l'éditeur, qui vous connaît vous, sait que vous faites un truc, il sait que le vous le faites avec un logiciel particulier, vous avez le droit de lui donner, vous avez le droit de lui donner, après l'avoir récupéré tel quel, vous avez le droit de lui donner après avoir fait des modifications ou avoir fait faire des modifications. Ces quatre lois sont super importantes. Une licence qui va être libre est une licence qui respecte ça strictement. Dans le monde on a des licences libres et on a celles qui ne sont pas libres. Celles qui ne sont pas libres, souvent, à tort, on les appelle licences propriétaires. Il n'y a pas de raison de les appeler licences propriétaires. Vous êtes propriétaire du code que vous écrivez, même si vous avez défini ou distribué votre logiciel sous une licence libre. Vous êtes toujours propriétaire. Pour moi le contraire de libre, c'est être en prison. Être en prison c'est être privé de quelque chose. En gros le contraire de licences libres ce sont les licences que moi j'appelle privatrices, je ne suis pas le seul, et puis je ne suis pas le premier ; je ne pense pas que je suis celui qui le dise le plus fort. On en parlera un petit peu tout à l'heure.

Une licence non libre ou privatrice, c'est en gros une licence qui restreint une des quatre. C'est-à-dire que si on a une des quatre libertés qui est restreinte, on est dans une licence qui est privatrice. Elle vous prive d'une des libertés qui sont là. Ça se voit très nettement, on le verra tout à l'heure si on a un peu de temps de parler des logiciels qui ont été libérés, il y a plein de codes de logiciels qui ont été libérés. Libérés ça veut dire qu'avant on était en prison. On a libéré par exemple le code de Mozilla, on a libéré le code de StarOffice. On en reparlera un petit peu tout à l'heure.

A l'opposé des logiciels sous licence libre, on a souvent des logiciels sous licence qu'on dit non libre donc privatrice qui sont généralement des trucs que vous ne lisez pas. Enfin la plupart du temps quand on démarre un logiciel on ne fait pas attention à ça. Quand vous démarrez votre iPhone, c'est-à-dire un super iPhone, vous cliquez plein de fois sur « J'accepte », vous n'avez pas lu le truc écrit en tout petit très, très long, ce qu'on appelle le Contrat de Licence Utilisateur Final. La plupart du temps c'est un contrat comme une licence libre. Dans ce contrat on fixe explicitement des cadres à l'utilisation de ce que vous avez acheté, ou de ce qu'on vous a donné. Il n'y a aucune notion d'argent entre libre, non libre. On peut avoir un truc libre, on en parlera tout à l'heure, qui est payant, un truc non libre qui est gratuit. Un truc non libre, la CLUF que vous connaissez la plus, souvent, sans vraiment l'avoir lue en entier c'est la CLUF de Microsoft, qui, en gros fixe l’utilisation prévue du logiciel auquel vous avez accès, je reviendrai par exemple sur un cas 'particulier de CLUF qui est un peu perverse. On vous interdit généralement de faire de la rétro-ingénierie, c'est-à-dire qu'on ne vous donne pas le source, on ne vous donne pas le code source de votre logiciel mais on vous interdit d’aller le construire, de le regarder.

On peut vous l'interdire, ça ne veut pas pour autant dire que vous n'allez pas pouvoir le faire. On ne vous empêche pas techniquement de le faire. On vous empêche légalement de le faire. Après techniquement on peut essayer vous empêcher, mais vous savez bien qu'il n'y a aucune mesure de contrainte technique qui tient très longtemps. Plus ça va plus on va réussir à les casser. Et enfin on vous interdit de la copier. Ça c'est généralement ce qu'on voit dans les CLUFS, donc dans les contrats de licence d'utilisateur final.

J'insiste sur le fait que je n'ai pas parlé d'argent. Je prends un exemple précis. Vous êtes tous ici étudiants, vous avez tous, plus ou moins, eu un jour ou l'autre, à faire à Microsoft parce que vous étiez intéressé par un programme. Je dis Microsoft, mais je pourrais dire Apple ou IBM, par un programme qui s'appelle par exemple le programme Academic Alliance ou le programme University chez IBM, etc, dans lequel on vous donne accès gratuitement à tout un tas de logiciels, par exemple le programme MS??? donc de Microsoft est un programme auquel on donne accès à tous les étudiants, gratuitemen,t à tous les outils de développement de Microsoft. Vous avez le droit de tout récupérer gratuitement chez Microsoft et complètement, enfin version complète. Pourtant il y a une CLUF. Ce n'est parce qu'on vous donne accès gratuitement à un truc que c'est un logiciel libre. On vous donne accès à quelque chose en vous privant d'un certain nombre de libertés. Par exemple si vous lisez bien les termes des licences de ce genre de programme, on vous interdit d'utiliser ces logiciels en dehors du cadre universitaire. On vous interdit de faire de l'argent avec, par exemple. On vous interdit plein de choses. En gros tous ces CLUFS sont souvent des choses qui sont privateurs au sens, non pas privateurs d'argent, mais privateurs de vraies libertés d’utilisation. C'est vraiment sur l'utilisation que la plupart du temps on a une privation. C'est pour cela que la liberté zéro a été rajoutée. En fait quand les libertés ont été crées pour le Logiciel Libre, on a commencé par les trois. Puis il en manquait une, et comme elle paraissait plus importante que les autres, on l'a mise en premier. Ce n'est pas parce qu'en informatique on commence par compter par zéro ça tombait bien, mais ce n’était pas vraiment pour ça. La liberté d'utilisation a été vraiment celle qui a été rajoutée en dernier, quand Stallman a créé tout ça, on en reparlera tout à l'heure.

Du coup il y a une petite technique qui a été utilisée ou qui est souvent mise en avant par les gens qui défendent le Logiciel Libre pour dire on respecte la loi, c'est simplement qu'on va bien faire comprendre que a priori le droit d'auteur nous intéresse mais on ne veut pas s'en servir comme il a été prévu mais en le détournant. Donc on fait ce qu'on appelle du copyleft et vous avez ici une phrase qu'on trouve dans la définition du copyleft selon la FSF. En gros pour mettre un logiciel sous copyleft, c'est super simple, on le met d’abord sous copyright, et puis après on rajoute ce qu'on veut derrière. C'est-à-dire qu'en gros on dit ce logiciel m'appartient, c'est moi qui l'ai édité, c'est moi qui en suis l'auteur et j'en fais ce que je veux, et du coup, je rajoute comme contrainte sur la licence que j'y applique les quatre libertés enfin le respect des quatre libertés que je viens de citer. C'est un truc qu'on fait très souvent.

Ce qu'il faut bien comprendre là-dedans c'est qu'il y a un aspect viral. Dans les quatre libertés et dans le copyleft, c'est qu'on oblige un logiciel sous copyleft à rester sous copyleft tout au long de sa vie. C'est-à-dire que vous ne pouvez pas dire j'ai un logiciel libre que j'ai récupéré, j'en fais ce que je veux, je le ferme, je ne distribue plus le code, je fais de l'argent avec, je le distribue sans vous donner le code. Vous ne pouvez pas faire ça. Il y a un vrai aspect viral, on en reparlera un petit tout à l'heure si on un petit peu de temps, c'est un des reproches qu'on a fait aux licences libres, c'est qu'elles sont virales. Quand vous mettez une licence copyleft, quand vous mettez un logiciel sous copyleft, il ne peut plus quitter le copyleft, plus jamais, légalement. Si quelqu’un lui faisait quitter le copyleft, vous pourriez l'attaquer au tribunal et vous gagneriez. C'est ce qui s'est passé plusieurs fois déjà, à chaque fois que quelqu'un a essayé de s’attribuer du code qui était sous copyleft et qu'on a pu le prouver devant un tribunal, la personne qui a, ou l'entreprise, l'organisation, ça se fait souvent dans le monde embarqué, qui a mis le logiciel sous copyright sans mettre le copyleft, a perdu et a dû payer des sommes importantes et surtout a dû ouvrir le code, c'est ça qui est important. Les sommes ne sont pas très au centre du débat là-dedans.

Donc il a un aspect viral qui est super important dans la copyleft. Ça c'est une technique qui est mise en place, vous comprenez bien que cette technique c'est un peu du hacker, en gros on bidouille le truc. On a une loi qui ne nous intéresse pas tellement, qui a une interprétation commune qui ne nous intéresse pas tellement, eh bien on essaye de la détourner. On va revenir tout de suite après.

19'41

Il y a quelques exemples de logiciels de licences libres.