\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 des licences restrictives et moyennant le paiement de sommes parfois très élevées. 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é \angl{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}\texttrademark\ de \soft{Corel}\textregistered\ et \soft{WinZip}\texttrademark\ sont des exemples de partagiciels. \item[Gratuiciel] Aussi appelé \angl{freeware} en anglais, le gratuiciel est offert gratuitement sous certaines conditions, par exemple pour usage personnel seulement. L'anti-virus \soft{AVG Free}\texttrademark\ de \soft{Grisoft}\textregistered\ est un exemple de gratuiciel. \item[Libre] Aussi appelé \angl{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 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 à tout autre personne ou organisme. \item Le code source du logiciel, c'est-à-dire les documents lisibles par l'être humain à partir desquels une version définitive et exécutable est produite, 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.} Puisque le code source du logiciel peut être librement 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. 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.} L'utilisateur peut continuer à employer un logiciel libre, même si ce dernier n'est plus développé par son fabricant. 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. Par opposition, 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 si bien que l'utilisateur est contraint de changer de logiciel si l'entreprise cesse de le maintenir. \paragraph*{Liberté de mise à jour.} Si la version actuelle de son logiciel préféré lui convient parfaitement, l'utilisateur n'est pas obligé, lorsqu'une nouvelle version voit le jour, de l'adopter. D'un autre côté, l'utilisateur désireux de suivre l'évolution de son logiciel préféré peut le faire sans autre coût que le téléchargement et l'installation de mises à jour. Dans le cas de logiciels commerciaux, l'utilisateur peut être tenu d'adopter les nouvelles versions et de faire évoluer son matériel en conséquence, et son refus de le faire ne lui cause que des désagréments. Les organismes qui paient des coûts annuels pour renouveler des licences peuvent quant à eux être forcés 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. Avec les logiciels libres, l'utilisateur met son produit à jour \emph{au besoin}, il est \emph{libre} de le faire à sa convenance. \paragraph{Égalité des chances en éducation.} Du côté scolaire, il est avantageux d'utiliser des logiciels libres pour permettre à tout étudiant d'y avoir accès. Toute personne disposant chez elle d'un ordinateur peut alors télécharger et installer les logiciels dont elle a besoin pour sa formation. 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.} Les logiciels libres diminuent également le coût du soutien technique. D'abord, la robustesse de ces logiciels 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 et à première vue le moins prometteur, 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. Souvent, un tel logiciel évolue peu. Par contre, une personne ou un organisme désireux de faire évoluer le logiciel peut le télécharger et le modifier. 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 \angl{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}\texttrademark, \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é 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}\texttrademark\ de la firme \soft{Adobe}\textregistered. \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 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 interface semblable à celle de \msw. 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 les produits \mso\ mais plutôt à en faire une solution parmi tant d'autres plutôt que \emph{la} seule et unique solution. Mais 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 sur les postes à la disposition du personnel et des étudiants. Toute personne devrait pouvoir choisir le logiciel qu'elle désire employer.} À 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.}