Qu’est-ce qu’un logiciel libre ?
Dans l’expression « logiciel libre », la notion de « libre » s’envisage du point de vue de la notion de « propriété intellectuelle », comme dans l’expression « libre de droit ». Cependant « logiciel libre » n’est pas exactement synonyme de « logiciel libre de droit » (comme le sont les œuvres qui ont été élevées dans le domaine public).
Un logiciel qui n’est pas libre est appelé « logiciel propriétaire ».
Préambule technique
Pour comprendre les ressorts du logiciel libre, et ce en quoi il se distingue du logiciel propriétaire, il est nécessaire de connaître quelques aspects techniques du développement de logiciels :
L’ordinateur ne comprend pas le langage humain.
Il exécute un programme sous une forme dite « binaire », que l’on représente conventionnellement par une suite de 0 et de 1. Cette forme binaire est en quelque sorte son langage naturel.
L’être humain, même l’informaticien le plus doué, ne comprend pas le langage binaire de l’ordinateur.
Il écrit ses programmes dans un langage de programmation dérivé du langage humain (généralement de l’anglais). Cette forme humaine initiale est appelée « source » du programme.
Exemple de forme source d’un programme rudimentaire :
#include<stdio.h> main() { printf("Hello World"); }Un même programme a donc deux formes : le code source compréhensible par l’humain et le code binaire compréhensible par l’ordinateur.
On passe (relativement) facilement du code source au code binaire par un procédé appelé « compilation ».
En revanche l’opération inverse est impossible1.
Il en résulte que si quelqu’un obtient un programme seulement dans sa forme binaire, il pourra l’exécuter sur un ordinateur, mais il ne pourra pas modifier le programme, ni même ne serait-ce qu’essayer de comprendre le détail de son fonctionnement ; même en s’entourant d’informaticiens compétents.
Différences concrètes entre le logiciel libre et le logiciel propriétaire
Le logiciel propriétaire est « protégé » par différentes mesures :
- Le droit d’auteur
-
Comme toutes les œuvres de l’esprit, le logiciel est soumis au droit d’auteur. Il s’accompagne d’une licence d’utilisation qui précise qui a le droit de s’en servir et qui a le droit d’en faire des copies, de les redistribuer et selon quelles modalités.
En général dans le cas du logiciel propriétaire, l’utilisateur n’a pas le droit d’en faire des copies car l’éditeur fonde son modèle économique sur la vente de ces copies ; possibilité dont il se réserve donc l’exclusivité.
- Le secret
- un logiciel propriétaire est généralement uniquement distribué au public sous sa forme binaire. Cette forme n’étant pas compréhensible par l’humain, le détail de son fonctionnement est ainsi conservé secret (comme un secret de fabrication).
Les termes « protéger » ou « protection », sans plus de précision, véhiculent une image intrinsèquement positive. Mais il convient alors de bien identifier ce qui fait l’objet de cette protection ; et contre qui ou quoi. Ainsi une protection oppose toujours deux parties : une partie bénéficiaire et une partie considérée comme potentiellement hostile contre laquelle la partie bénéficiaire est protégée.
Dans le cas du logiciel propriétaire, la partie bénéficiaire n’est pas l’utilisateur mais l’éditeur du logiciel et ce que l’on cherche avant tout à protéger est ce modèle économique basé sur la vente de copies et de licences d’utilisation.
L’utilisateur, quant à lui, est en fait la partie contre laquelle ces mesures de protection sont prises ; ces dernières lui étant donc hostiles.
Un logiciel libre est un logiciel dont les auteurs renoncent à ces « protections » hostiles aux utilisateurs, en appliquant des licences d’utilisation beaucoup moins restrictives (pour ce qui est de la « protection » par le droit d’auteur) et en publiant le code source (pour ce qui est de la « protection » par le secret).
Concrètement, et à la différence d’un logiciel propriétaire, un logiciel libre peut :
Etre utilisé sans restriction quant à la nature de l’utilisateur ou à la finalité de son utilisation.
De telles restrictions peuvent en effet apparaître dans les licences d’utilisation des logiciels propriétaires.
Par exemple un célèbre logiciel de traitement de texte peut être acheté avec une licence réservée aux étudiants. Les parents et amis dudit étudiant n’ont alors en principe pas le droit de se servir du logiciel.
Avec un logiciel libre, à l’inverse, il ne saurait y avoir de telle restriction.
Etre copié et distribué par n’importe qui et non pas exclusivement par son éditeur.
Il en découle que les logiciels libres sont généralement gratuits car leur modèle économique ne peut se fonder sur la vente de copies.
Attention cependant : tout logiciel gratuit n’est pas forcément libre, car il existe d’autres modèles économiques que celui fondé sur la vente de copies, même pour le logiciel propriétaire.
Par exemple, le navigateur Internet Explorer de Microsoft est gratuit, mais il n’est pas libre. D’autres exemples sont le « shareware » et le « freeware », des logiciels gratuits et souvent redistribuables ; mais pas libres, dans la mesure où ils ne sont distribués que dans leur forme binaire et pas dans leur forme source.
Etre obtenu dans sa forme source.
Le détail du fonctionnement d’un logiciel libre peut ainsi être étudié par quiconque maîtrise l’art de la programmation (à titre professionnel ou amateur). Il peut être modifié à fins d’amélioration par quiconque et non pas exclusivement par ses auteurs originaux.
Enfin ces versions modifiées peuvent à leur tour être distribuées librement.
Par ailleurs, la disparition de la notion de secret dans le programme exclue la possibilité pour l’auteur d’y faire figurer du code volontairement malveillant pour l’utilisateur (ce que l’on nomme « malware » ou « spyware »), comme cela existe malheureusement parfois dans les logiciels propriétaires.
Le passage du code binaire au code source n’est en fait pas totalement impossible. Il existe des décompilateurs qui, à partir d’une forme binaire peuvent recréer une forme source ; mais pas la forme source originelle. Ces formes sources recréées ne présentent généralement pas les qualités de lisibilité et d’intelligibilité de la forme source originelle écrite par des humains. Ce procédé, de toute façon interdit en temp normal sur les logiciels propriétaires, n’est qu’un ultime recours quand on n’a pas d’autre solution. Il ne constitue en aucun cas la base d’une façon « normale » de travailler dans le monde du logiciel.↩︎