gulum/argumentaire_faecum/Logiciels_Libres.tex

475 lines
22 KiB
TeX

\section{Logiciels libres}
%Definir ce qu'est un logiciel libre
\subsection{Qu'est-ce que c'est ?}
De façon générale, un \emph{logiciel} est un ensemble de données, de
programmes et de documents destinés à accomplir une certaine tâche. Il
existe des logiciels pour traiter du texte, gérer des tableaux de
données, dessiner par ordinateur, etc.
Plusieurs de ces logiciels sont développés par des entreprises qui les
rendent accessibles aux utilisateurs sous licence et
moyennant un paiement.
D'autres logiciels sont disponibles gratuitement pour le grand public.
Il existe plusieurs types de logiciels, dont les applications, les
utilitaires et les
systèmes d'exploitation. Une \emph{application} permet de manipuler ou
de produire des documents.
Par exemple, cela inclut les traitements de texte, les tableurs, les
logiciels de dessin, etc.
Un \emph{utilitaire} permet quant à lui de manipuler des données et
d'aider à la maintenance de l'ordinateur.
Par exemple, un logiciel permettant de compresser des fichiers ou de
réparer des documents endommagés peut être considéré comme un
utilitaire au même titre qu'un défragmenteur de disque.
Un \emph{système d'exploitation} fournit finalement un environnement
dans lequel les logiciels peuvent cohabiter et s'exécuter.
Il existe quatre catégories de logiciels en fonction de la licence
sous laquelle ils sont distribués.
\begin{description}
\item[Commercial] Pour utiliser un logiciel commercial, le client doit
en faire l'achat. Le fournisseur d'un tel logiciel offre des
informations générales à propos de son produit, des vidéos montrant
ses fonctions de base mais aucune version d'essai.
\msw\ et \mso\ sont des exemples de logiciels
commerciaux.
\item[Partagiciel] Aussi appelé \en{shareware} en anglais, un
partagiciel est un logiciel qui peut être librement distribué mais
qui n'offre qu'un nombre limité de fonctionnalités ou ne fonctionne
que pendant un temps limité.
L'utilisateur d'un partagiciel a la possibilité, après la période
d'essai, d'acheter la version complète du logiciel.
\soft{Paint Shop Pro} de \soft{Corel}
et
\soft{WinZip} sont des exemples de
partagiciels.
\item[Gratuiciel] Aussi appelé \en{freeware} en anglais, le
gratuiciel est offert gratuitement sous certaines conditions, par
exemple pour usage personnel seulement.
L'anti-virus \soft{AVG Free} de
\soft{Grisoft} est
un exemple de gratuiciel.
\item[Libre] Aussi appelé \en{free} en anglais, le logiciel libre,
que nous allons étudier plus en profondeur ici, peut être utilisé, modifié et
distribué sans restriction.
Comme nous allons le voir, c'est beaucoup plus qu'un logiciel gratuit !
\end{description}
Plus précisément,
un logiciel \emph{libre} répond aux quatre
caractéristiques suivantes.
\begin{enumerate}
\item Il peut être utilisé par toute personne ou tout organisme, sans
restriction. En particulier, un logiciel libre peut être employé autant
pour un usage personnel que commercial.
\item L'utilisateur d'un logiciel libre dispose du droit de le
distribuer à toute autre personne ou tout autre organisme.
\item Le code source du logiciel est disponible pour tout
utilisateur désirant le consulter.
Habituellement, le code pourra être téléchargé depuis Internet.
\item Tout utilisateur peut se procurer et modifier le code source
pour ensuite distribuer des versions modifiées du
logiciel. Idéalement, les modifications seront bien entendu
propagées dans le code source original du logiciel.
\end{enumerate}
Cette définition s'inspire de celle donnée par Roberto Di
Cosmo~\cite{dicosmo} lors de
sa conférence sur les logiciels libres donnée en avril 2007,
au Département
d'Informatique et de Recherche Opérationnelle (DIRO) de l'Université
de Montréal.
Parmi les logiciels libres figurent des applications, des utilitaires
et même des systèmes d'exploitation.
%Presenter la philosophie du libre
\subsection{Avantages des logiciels libres}
Le bénéfice le plus évident des logiciels libres est sans nul doute
leur coût minime de mise en place et d'utilisation. Il suffit en effet
de télécharger le produit
souhaité et de l'utiliser, sans devoir payer de redevance à son
fabricant ou se soumettre à un contrat de licence long et restrictif.
Par contre, les avantages des logiciels libres vont bien au-delà de la
simple réduction des coûts~\cite{PFA07} : une plus grande robustesse,
une meilleure sécurité, un soutien technique simplifié, etc.
% Pour plusieurs points, ce n'est pas systématique : il peut très bien
% y avoir des logiciels libres beaucoup moins robustes, sûrs, etc. que
% leurs équivalents commerciaux. Il ne faudrait pas qu'on diste que
% mécaniquement, si c'est libre c'est plus sûr. -- Pascal
\paragraph*{Robustesse}
Il est très courant d'observer des anomalies de fonctionnement dans
son logiciel préféré. L'utilisateur est la plupart du temps impuissant
devant ce phénomène, car seul le fabricant peut modifier le logiciel
mais consacre habituellement le gros de
ses ressources au développement de versions
futures de ses logiciels. Acheter la prochaine version devient alors
la seule solution disponible pour l'utilisateur si le problème ne peut
pas être contourné.
Puisque le code source d'un logiciel libre peut être
téléchargé et
consulté, plusieurs personnes sont susceptibles de l'examiner. Cela
permet de mieux cerner les bogues et ainsi d'améliorer la robustesse
du produit. L'équipe de développeurs se trouve ainsi élargie par
rapport à un logiciel propriétaire.
Cette accessibilité du code source est sans nul doute à l'origine de
la grande robustesse du système d'exploitation \linux\ qui s'exécute de
nos jours sur un grand nombre de serveurs hébergeant des sites web
importants sur Internet, par exemple celui de Google.
\paragraph*{Sécurité}
Souvent,
des failles de sécurité permettent à des personnes malveillantes de
s'introduire sur un serveur et d'en perturber le fonctionnement, par
exemple en modifiant des pages web hébergées, en surchargeant
volontairement la machine ou en manipulant des données sensibles (statut
d'utilisateurs, comptabilité, etc.).
Une faille de sécurité permet aussi à un virus de s'incruster
dans un ordinateur et de causer divers problèmes pour l'utilisateur,
allant du simple agacement à de lourdes pertes de données.
Dans un logiciel libre, de telles failles sont plus facilement
visibles puisque n'importe qui peut consulter le code source.
Cela semble à première vue
faciliter la vie aux personnes malveillantes, mais il n'en
est rien puisque les failles détectées peuvent être corrigées par les
développeurs du logiciel et que les utilisateurs peuvent mettre les
logiciels à jour sans contraintes de licence.
En bref,
l'accessibilité du code source fait en sorte que la sécurité doit se
fonder sur des hypothèses plus fortes que le secret, ce qui accroît la
sécurité.
\paragraph*{Pérennité du logiciel}
Si une entreprise cesse de développer un logiciel dont
elle détient jalousement le code source, plus personne ne peut
poursuivre le développement de ce logiciel ; conséquemment, le produit
«~meurt~».
L'utilisateur est alors contraint de
changer de logiciel si la version actuelle n'est pas compatible avec
sa nouvelle configuration, si la licence interdit de continuer à
l'utiliser ou s'il a besoin d'une fonctionnalité qui est absente.
Par opposition,
l'utilisateur peut continuer à employer un logiciel libre, même si ce
dernier n'est
plus développé par son fabricant. Aucune restriction légale ne lui
empêche de le faire, mais des problèmes de compatibilité peuvent bien
entendu survenir.
Par contre, un logiciel libre ne «~meurt~»
pas ; il continue toujours d'exister et son développement peut être
repris par toute personne désireuse de le faire, y compris un fervent
utilisateur.
\paragraph*{Liberté de mise à jour}
L'utilisateur peut être
contraint d'adopter les nouvelles versions de son logiciel favori et
de faire évoluer son matériel en conséquence, ce qui occasionne
évidemment des coûts.
Celui qui ne se soumet pas à cette contrainte d'évolution
subit des désagréments comme l'impossibilité d'ouvrir des documents
produits par des nouvelles
versions, la cessation de mises à jour de sécurité, etc.
Pire encore,
les organismes qui paient des coûts annuels pour renouveler des
licences peuvent même être forcés légalement de faire la mise à jour
si le
concepteur décide de ne plus renouveler leur contrat de licence.
%Prenons par exemple le système d'exploitation \msw.
%L'utilisateur particulier disposant d'une copie de Windows~98 peut
%certes continuer de l'utiliser, mais se voit privé de toute
%possibilité de mise à jour de sécurité.
%Le nombre de logiciels auxquels il a accès diminue de jour en jour et
%il ne peut s'attendre qu'à peu de soutien technique de la part de
%\ms.
%Son seul recours est alors de mettre son système d'exploitation à
%jour.
D'un autre côté,
si la version actuelle de son logiciel libre préféré lui convient
parfaitement, l'utilisateur n'est pas obligé, lorsqu'une nouvelle
version voit le jour, de l'adopter.
Mais celui désireux de suivre l'évolution de son
logiciel peut le faire sans autre coût que le téléchargement
et l'installation de mises à jour.
Ainsi,
avec les logiciels libres, l'utilisateur met son produit à jour
\textbf{au besoin}, il est \textbf{libre} de le faire à sa convenance.
\paragraph{Égalité des chances en éducation}
Bon nombre d'étudiants se voient contraints de faire l'achat de
logiciels pour leurs cours, parfois à coûts réduits si des ententes
préalables ont été établies entre l'université et les fabricants. Ceux
qui n'ont malgré tout pas les moyens de se procurer les logiciels doivent
travailler uniquement à l'université, installer des copies piratées des
logiciels requis sur leurs ordinateurs personnels ou utiliser
d'anciennes versions à leur disposition.
D'un autre côté,
quand la formation exige principalement des logiciels libres,
toute personne disposant chez elle d'un ordinateur peut
télécharger et installer les logiciels dont elle a besoin pour sa
formation ; l'université a également le droit de distribuer directement
ces logiciels aux étudiants.
Cela évite des coûts pour les étudiants, mais aussi pour l'université
qui n'a pas à établir d'entente avec les fournisseurs pour la
distribution de logiciels aux étudiants.
Cela libère aussi des postes de travail à l'université puisque davantage
d'étudiants peuvent travailler chez eux ou avec leur ordinateur
portable.
\paragraph{Soutien technique}
Une grande partie du travail du personnel de soutien technique
consiste à administrer les serveurs et à résoudre divers problèmes
techniques. Leur tâche se voit alourdie par l'impossibilité de savoir
exactement comment fonctionnent les produits, la nécessité de trouver
des parades à des bogues qui ne seront corrigés que quelques
années plus tard, dans des versions futures des logiciels, et la nécessité de
supporter de multiples versions des logiciels.
Avec tout ce travail, il ne reste pas beaucoup de temps aux
techniciens pour aider les usagers.
D'un autre côté, la robustesse des logiciels libres diminue les coûts
de maintenance, permettant aux techniciens de se consacrer à des tâches
plus intéressantes telles que l'apprentissage de nouvelles
technologies et l'assistance aux employés et aux étudiants.
De plus, les techniciens ont moins besoin de traiter les détails
spécifiques de chaque version d'un même produit. En cas de problème
technique avec une ancienne version, une mise à jour vers la plus
récente version, toujours possible sans coût, permet soit de résoudre
la difficulté, soit de donner aux techniciens les outils pour la traiter.
\subsection{Philosophie du Libre}
Beaucoup de gens se demandent comment «~vit~» un logiciel
libre. Il existe en fait plusieurs processus de développement pour un
tel produit.
Dans le mode le plus simple, un programmeur
amateur construit un logiciel pour résoudre un problème précis et
décide de le mettre à la disposition de tous les utilisateurs en le
publiant sur Internet. Le développement d'un tel logiciel peut par
exemple avoir lieu dans le cadre d'un projet de recherche
universitaire.
Même si la personne qui a construit la première version du logiciel
décide de ne plus travailler sur ce dernier,
une autre personne ou un organisme désireux de faire évoluer le
logiciel peut le télécharger et le modifier à sa guise.
Le système d'exploitation \linux\ a par exemple débuté de cette façon.
D'autres logiciels libres proviennent de produits commerciaux que
leurs concepteurs ont rendus disponibles pour la communauté. Par
exemple, le navigateur web \firefox\ est un descendant du navigateur
\soft{Netscape}, mais il a beaucoup évolué depuis que le code source
original
est devenu libre.
Une entreprise rendant un logiciel libre de cette façon se réserve
habituellement le droit d'en faire des versions non libres plus
étendues, mais la version libre demeurera toujours disponible.
Maintenant, comment un informaticien peut-il faire de l'argent avec un
logiciel libre ? À première vue, cela semble difficile.
Par contre, supposons qu'une entreprise éprouve un besoin particulier
qu'aucun produit sur le marché ne puisse combler.
Cette entreprise engagera alors un informaticien pour développer une
solution.
Cet informaticien pourrait fort bien partir d'un logiciel libre existant,
lui ajouter la fonctionnalité requise et rendre cette fonctionnalité
disponible pour qu'elle soit intégrée à la version officielle du
logiciel.
L'entreprise qui a engagé l'informaticien a, dans ce cas, non seulement
comblé son besoin initial, mais a en plus permis à la communauté
entière de
bénéficier de la solution.
Ceci contribue à enrichir le logiciel en question et encourage
d'autres entreprises à procéder de même pour développer de nouvelles
fonctionnalités.
%Recoupe un peu avec ce qui devrait aller dans la section
%Rétrocession.
% Peut-être faudra-t-il déplacer des choses d'ici vers là ou faire des
% liens...
\subsection{Exemples de logiciels libres}
Il existe un très grand nombre de logiciels dont voici quelques
exemples.
Tous les logiciels présentés ici comportent l'avantage de la
portabilité, c'est-à-dire qu'ils sont disponibles autant pour
\msw, \applemac\ que \linux.
\begin{description}
\item[\firefox]~\cite{Mozilla}
Navigateur web semblable à \msie\
doté de plusieurs fonctionnalités intéressantes telles que la
navigation par onglets et le blocage des fenêtres \en{pop-up}.
Contrairement à \msie,
ce navigateur ne prend pas en charge ActiveX qui est une
source
importante de problèmes de sécurité.
Son apparence peut être
personnalisée par des thèmes et un système de composantes
enfichables permet d'y ajouter une foule de fonctionnalités.
\item[\soft{Mozilla Thunderbird}]~\cite{Mozilla}
Client de messagerie électronique
semblable à \ms\ \soft{Outlook Express}.
Comme son complément \soft{Firefox}, \thunderbird\ procure une
grande
sécurité, permettant par exemple de filtrer les messages
indésirables, de ne pas afficher les images des courriers
électroniques et dispose lui aussi d'un système d'extensions
permettant de greffer des nouvelles fonctionnalités.
\item[\ooo]~\cite{OpenOffice}
Suite bureautique comportant un traitement de
texte, un tableur, un concepteur de diaporamas, etc., et
utilisant un format de documents ouvert appelé
\textsc{OASIS OpenDocument} (voir section~\ref{sec:ofmtex}), mais il
peut également
lire et écrire des fichiers
dans le format de \mso\ 95/97/2000/XP/2003.
\item[\soft{The GIMP}]~\cite{Gimp}
Logiciel d'édition d'images permettant entre autres la
retouche de photographies.
\soft{The Gimp} prend en charge plusieurs formats d'images courants et
possède des fonctionnalités rivalisant avec le logiciel commercial
\soft{PhotoShop} de la firme \soft{Adobe}.
\item[\soft{Inkscape}]~\cite{Inkscape} Logiciel de dessin vectoriel
utilisant principalement le format SVG (voir
section~\ref{sec:ofmtex}).
\item[\soft{7-Zip}]~\cite{7zip} Logiciel de compression de données
permettant de stocker des fichiers dans des archives au
format 7z. 7-Zip prend aussi en charge le format ZIP plus courant
ainsi que la décompression d'archives dans d'autres formats tels
que RAR, CAB, etc.
\end{description}
\proposition{Que l'Université de Montréal
installe les logiciels \firefox,
\thunderbird et \ooo\ sur
tous ses postes informatiques afin que tout étudiant
ou employé
ait la possibilité de les découvrir.}
\proposition{Que l'Université de Montréal favorise
la distribution massive aux étudiants
de disques
compacts regroupant des logiciels libres. Des disques tels que The
Open CD~\cite{TheOpenCD} ou des distributions de \linux\ pourraient
par exemple être
offerts à faible coût dans les librairies de l'Université et aux
comptoirs multiservices de la FAÉCUM.}
Évidemment, le système d'exploitation \linux\ est un autre exemple
important de logiciel libre.
Ce système permet d'accomplir à peu près les mêmes tâches (ou parfois plus) que son
homologue \msw\ tout en étant affranchi des contraintes
de licences.
Son architecture le rend moins vulnérable aux virus, et l'utilisateur a
accès à une multitude d'interfaces semblables à celles de \msw, \soft{Apple Mac OS} et autres (selon le choix de l'utilisateur).
L'installation de \linux\ a été grandement simplifiée ces
dernières années et des logiciels sont disponibles pour exploiter
presque tous les types de fichiers, même certains formats
propriétaires.
Nous croyons qu'une personne utilisant son ordinateur pour des
fonctions de base telles que naviguer sur Internet, consulter sa
messagerie électronique et se servir d'un traitement de texte pourrait
sans trop de difficulté migrer vers \linux.
\proposition{Que l'Université de Montréal
incite les étudiants à découvrir \linux\
et à l'utiliser. Ceci peut se faire entre autres
en installant \linux\ sur
quelques postes de l'université, en offrant aux étudiants des
distributions de \linux\ sur disques compacts,
en offrant du soutien technique
pour ce système, etc.}
%Quelques succès du libre dans université/organisations gouvernementales
\subsection{Exemples de succès du libre}
Plusieurs écoles et gouvernements ont migré avec succès vers des
logiciels libres, permettant dans bien des cas une réduction des
coûts, mais aussi l'accroissement de la fiabilité des systèmes. Par
exemple, dans la commission scolaire de Kamloops, en
Colombie-Britannique, les écoles primaires et secondaires ont troqué
leurs solutions logicielles à base de Novell pour un système fondé sur
\linux~\cite{BYF07}.
Initialement, ils ont rencontré de la résistance de la part des
professeurs qui ne souhaitaient pas adapter leurs cours aux nouveaux
logiciels et des techniciens formés pour les logiciels propriétaires.
Par contre, lorsque les techniciens ont été formés pour administrer
les logiciels libres, ils ont vu leur charge de travail diminuer en
raison de la réduction du travail de maintenance nécessaire et ont pu
venir en aide aux professeurs.
% Quel(s) ministère(s) ? -- Pascal
% paragraphe à reformuler, à mon avis --David
Lors de sa conférence au DIRO, en avril 2007, Roberto Di Cosmo a
mentionné l'implantation de \ooo\ au sein de ministères français, un
projet qui fut fructueux. \ms\ ne voulait plus renouveler leur contrat
de licence annuel pour \soft{Office}~97 si bien qu'ils devaient passer
à la version~2003. Cela occasionnait des coûts de formation en plus de
la licence. Au lieu de former les employés à \soft{Office}~2003, ils
les ont formés à \ooo, ce qui a donné des résultats fructueux. Dans
le cas du ministère des Finances, l'objectif n'était pas d'économiser
de l'argent, et pourtant, ils en ont économisé malgré tout !
\subsection{Le problème de la formation}
La nécessité de former les employés est un argument fréquemment
utilisé contre la migration vers une nouvelle solution logicielle.
Par exemple,
plusieurs personnes pensent que passer de \mso\ à
\ooo\ nécessitera un long apprentissage, que la formation à
\ooo\ sera aussi longue que celle à \mso\ et qu'elle sera
coûteuse.
Il n'en est rien, car les mêmes concepts généraux reviennent d'un
logiciel à l'autre.
L'utilisateur devra certes prendre quelques minutes pour s'y
retrouver, mais il réussira sans trop de mal à faire fonctionner le
nouveau logiciel.
Nous croyons que passer de \msie\ à \firefox\ ou de \mso\ vers \ooo\
est à peu près aussi facile que migrer vers une nouvelle version du
produit de la même entreprise.
Idéalement, il faudrait aider les étudiants et les employés à se
libérer de ce mythe selon lequel il est nécessaire d'apprendre et
utiliser les logiciels propriétaires puisqu'ils sont employés partout
dans l'industrie.
La formation ne devrait pas cibler un logiciel particulier, mais plutôt
des concepts généraux : comment utiliser un traitement de texte, comment
maîtriser un tableur, etc. ?
Le logiciel employé pour la formation ne devrait être qu'un exemple
appuyant le concept, pas le concept lui-même.
Par contre, il ne faut pas tomber dans l'autre extrême en remplaçant
tous les logiciels propriétaires par des logiciels libres du jour au
lendemain.
L'idée ici ne consiste pas à bannir ces produits commerciaux mais plutôt à
en faire une solution parmi tant d'autres plutôt que \emph{la}
seule et unique solution.
En d'autres mots,
l'utilisateur choisissant un logiciel propriétaire doit le faire
uniquement si le produit satisfait ses besoins.
\proposition{Que l'Université de Montréal
installe plusieurs logiciels différents pour le traitement de texte,
la navigation sur Internet, le courrier électronique, etc.
sur les postes à
la disposition du personnel et des étudiants.}
Toute personne devrait
pouvoir choisir le logiciel qu'elle désire employer pour accomplir une
tâche donnée.
À première vue, cela peut causer des problèmes de communication entre
usagers, mais les formats de fichiers ouverts (voir section
précédente) résolvent la question.
\proposition{Que l'Université de Montréal
diversifie les systèmes d'exploitation installés sur ses
postes de travail. L'Université devrait offrir aussi bien des postes
\msw\ que des postes \applemac\ et \linux.}
\proposition{Que l'Université de Montréal
offre aux étudiants de la formation pour les logiciels
libres afin de leur faire découvrir qu'ils peuvent facilement migrer
vers ces derniers.}