Logiciel libre : des principes à la pratique - Arnaud Tisserand Novembre 2019 - Hal
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Logiciel libre : des principes à la pratique Arnaud Tisserand CNRS, Lab-STICC Novembre 2019 Arnaud Tisserand — Logiciel libre : des principes à la pratique 1/25
Préambule Objectif : présenter une introduction pour le grand public à quelques aspects du logiciel libre. Limites : les informations présentées lors de l’exposé et dans ce document peuvent contenir des simplifications, des modifications des sources et ne plus être valides dans le temps. Sources : indiquées par du texte souligné ou http:// permettant d’accéder aux liens web (URL) correspondants. Diffusion : ce document sera disponible publiquement, au format PDF, sur ma page web professionnelle (merci de citer la source en cas d’utilisation). Arnaud Tisserand — Logiciel libre : des principes à la pratique 2/25
Principales sources utilisées dans cette présentation • FSF: Free Software Foundation • AFUL: Association francophone des utilisateurs de logiciels libres • APRIL: Association pour la promotion du logiciel libre → présentation au grand public • Cours de Jean-Luc Archimbaud • Cours de Roberto Di Cosmo (Univ. Paris 7) • Projet Plume Mille remerciements sincères aux auteurs et contributeurs de ces sources. Arnaud Tisserand — Logiciel libre : des principes à la pratique 3/25
Autres sources d’information sur le logiciel libre Sites internet • La cathédrale et le bazar • Petit guide sur les logiciels libres à l’intention des professionnels et des juristes (Organisation mondiale de la propriété intellectuelle) • Politique de contribution aux logiciels libres de l’État • Article sur le LL du site JurisPedia Livres (téléchargeables gratuitement) • Richard Stallman et la révolution du logiciel libre • Option Libre. Du bon usage des licences libres • Produire du logiciel libre • Quelques éléments d’économie du logiciel libre Arnaud Tisserand — Logiciel libre : des principes à la pratique 4/25
Aspects historiques : années 50 et 60 Les ordinateurs (le matériel) sont très coûteux et sont livrés avec des programmes et des services. Les utilisateurs s’échangent librement des codes sources. Exemple du IBM 704 lancé en 1954 (40 000 op./s, 20 m3 ) : Figure 1 – source http://www.columbia.edu/cu/computinghistory/704.html Arnaud Tisserand — Logiciel libre : des principes à la pratique 5/25
Aspects historiques : années 70 Des entreprises commencent à produire du logiciel avec pour objectif de le vendre indépendamment du matériel. Besoin d’utiliser/adapter le droit pour protéger ces productions logicielles. Arrivée du Personal Computer (PC) et des réseaux : • processeur Intel 8080 en 1974 • processeur Motorola 6800 en 1975 • Microsoft fondée en 1975 • Apple fondée en 1976 • ... La programmation informatique est possible à la maison ! Arnaud Tisserand — Logiciel libre : des principes à la pratique 6/25
Aspects historiques : années 80 Démocratisation totale de l’informatique, on utilise et on produit du logiciel de façon croissante : • dans les entreprises • dans les services • chez les particuliers Mais : • copies illégales (protection par dongle, documentation indispensable) • forte croissance des réseaux grand public (modems à quelques kbps) Premiers logiciels libres : • Système d’exploitation BSD depuis 1977 • TeX/LaTeX traitement de texte scientifique depuis 1978/1983 • Système graphique X au MIT depuis 1985 • ... Arnaud Tisserand — Logiciel libre : des principes à la pratique 7/25
Aspects historiques : années 80 (suite) • Création du projet GNU en 1983 (système d’exploitation libre) http://www.gnu.org • Richard Stallman dirige le projet GNU en 1984 • Création de la Free Software Foundation (FSF) en 1985 http://www.fsf.org • Création de la licence GPL V1 (General Public License) en 1989 http://www.gnu.org/licenses/gpl.html • Création du WEB (WWW pour World Wide Web) au CERN à Genève en 1989 (versé dans le domaine public pour garantir sa promotion) • ... Arnaud Tisserand — Logiciel libre : des principes à la pratique 8/25
Extrait d’un message d’annonce de Linus Torvalds Newsgroups: comp.os.minix From: torva...@klaava.Helsinki.FI (Linus Benedict Torvalds) Date: 25 Aug 91 20:57:08 GMT Subject: What would you like to see most in minix? Hello everybody out there using minix - I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. [...] I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat [...] Linus (torva...@kruuna.helsinki.fi) https://groups.google.com/group/comp.os.minix/msg/b813d52cbc5a044b Arnaud Tisserand — Logiciel libre : des principes à la pratique 9/25
Aspects historiques : quelques dates après 1990 • Linux version 0.11 en décembre 1991 • Distribution Slackware (GNU/Linux) en 1993 • Distribution Debian (GNU/Linux) en 1994 • Distribution Red Hat (GNU/Linux) en 1994 • Distribution FreeBSD en 1995 • Logiciel Apache (serveur web, HTTP) en 1995 • Environnement graphique GNOME en 1997 • IBM “investit” 1M$ dans Linux en 2000 • Wikipedia lancé en 2001 • Suite bureautique Open Office en 2002 • Client/outils web Mozilla en 2002 (Firefox en 2004) • ... Arnaud Tisserand — Logiciel libre : des principes à la pratique 10/25
Libre ? Extrait du petit Larousse illustré 2015 : LIBRE adj. • qui n’est pas esclave, prisonnier • qui a le pouvoir d’agir / de déterminer à sa guise • qui est sans contrainte • qui n’est pas lié à un engagement • qui ne comporte pas d’obstacles Arnaud Tisserand — Logiciel libre : des principes à la pratique 11/25
Libre vs. gratuit En anglais : free = gratuit ou libre ! ! ! Dans le cas du logiciel, libre ne veut pas nécessairement dire gratuit. Le caractère commercial est généralement compatible avec le caractère libre. Mais en pratique, la grande majorité des logiciels libres sont gratuits. Libre et gratuit : Linux, FreeBSD, Android, Firefox, Apache, Python, . . . Libre et non gratuit : distributions commerciales de Linux Non libre et gratuit : Internet Explorer, Acrobat Reader, freeware, . . . Non libre et non gratuit : je vous laisse deviner. . . Arnaud Tisserand — Logiciel libre : des principes à la pratique 12/25
Survol de certains aspects légaux Droit d’auteur Ce qui protège implicitement toutes les œuvres de l’esprit 1 originales contre toute forme d’usage par des tiers, et cela au bénéfice de l’auteur. Assimilés à des œuvres de l’esprit, les logiciels sont couverts par le droit d’auteur. On parle de copyright dans les pays de droit anglo-saxon. Droit du travail Quand un logiciel est développé par un salarié 2 , c’est l’employeur qui est titulaire du droit d’auteur. Code de la propriété intellectuelle (CPI) : p. ex. articles L. 122-4, 335-2 1. Livres, musiques, peintures, vidéo, logiciels, . . . 2. Ne s’applique pas aux stagiaires. Arnaud Tisserand — Logiciel libre : des principes à la pratique 13/25
Licence de logiciel C’est un contrat par lequel le titulaire du droit d’auteur définit le cadre d’utilisation et d’exploitation (p. ex. diffusion, modification) de son logiciel par les cocontractants. Le cocontractant (p. ex. l’utilisateur) : • A des droits concédés via la licence • Doit respecter des obligations imposées par la licence Tous les logiciels libres disposent d’une licence (c’est même leur définition). Arnaud Tisserand — Logiciel libre : des principes à la pratique 14/25
Licences de logiciel libre Il existe de nombreuses licences (un petit nombre domine) : • USA I GPL : GNU General Public License I LGPL : GNU Lesser General Public License I BSD : Berkeley Software Distribution License I Apache de l’Apache Software Foundation I MPL : Mozilla Public License I ... • France : CeCILL (CEA, CNRS, INRIA) avec 3 versions • Europe : EUPL European Union Public Licence en plusieurs langues Arnaud Tisserand — Logiciel libre : des principes à la pratique 15/25
Logiciel libre selon la Free Software Fondation La licence GNU GPL de la FSF a pour objectif de garantir : • liberté d’exécuter le logiciel pour n’importe quel usage • liberté d’étudier le fonctionnement d’un programme et de le modifier (cela implique l’accès au code source) • liberté de redistribuer des copies • liberté de redistribuer les modifications (surtout le code source) Pour la FSF, la liberté des uns ne doit pas limiter celles des autres, ce qui est libre doit le rester et se propager comme libre (même modifié) et tout en assurant que chaque auteur conserve ses droits. Arnaud Tisserand — Logiciel libre : des principes à la pratique 16/25
Licence contaminante ou pas Certaines licences imposent que les versions modifiées soient redistribuées avec la même licence que celle de la version originale. Exemple : code propriétaire + GPL =⇒ GPL C’est idéal pour garantir l’ouverture du code pour toujours, mais cela peut freiner des usages (industriels principalement). Création de licences plus permissives (p. ex. LGPL, BSD). Exemple : code propriétaire + code LGPL −→ code propriétaire Arnaud Tisserand — Logiciel libre : des principes à la pratique 17/25
Remarques • Libre ne veut pas dire domaine public (le logiciel appartient à ses auteurs qui donnent des conditions d’exploitation) • Libre n’est pas du tout contraire à la propriété intellectuelle (il se fonde sur le droit d’auteur) • Téléchargeable ne veut pas dire libre ! (freeware, shareware, . . . ) • Libre ne veut pas nécessairement dire gratuit (mais c’est majoritairement le cas) • Le contraire d’un logiciel libre est un logiciel propriétaire Arnaud Tisserand — Logiciel libre : des principes à la pratique 18/25
Différence de modèles (ou de point de vue) Logiciel libre • le développeur partage la connaissance • le développeur utilise l’avis d’autres développeurs • favorise des échanges entre développeurs : notion de communauté active Logiciel propriétaire • le développeur verrouille la connaissance • le développeur impose ses choix • limite considérablement les échanges avec d’autres développeurs Arnaud Tisserand — Logiciel libre : des principes à la pratique 19/25
Pourquoi utiliser du logiciel libre • accès simple à des nombreux logiciels de qualité • essai immédiat • aspect budgétaire très intéressant • capacité d’avoir de l’aide de la communauté • capacité de comprendre • capacité de faire des contrôles du code (debug et audits de sécurité) • apporter des améliorations ou des personnalisations • diffusion rapide (time to market) • aspects idéologiques et éthiques • pérennité des solutions • souveraineté numérique : état, entreprises, particuliers • .. Arnaud Tisserand — Logiciel libre : des principes à la pratique 20/25
Loi du 7 octobre 2016 pour une République numérique • https://www.numerique.gouv.fr/publications/politique-logiciel-libre/ • Article d’éclaraige Arnaud Tisserand — Logiciel libre : des principes à la pratique 21/25
Carte conceptuelle sur le logiciel libre de Wikipédia Arnaud Tisserand — Logiciel libre : des principes à la pratique 22/25
Matériel libre (Open Hardware) Machines, composants et dispositifs physiques dont les plans et spécifications détaillés sont publics et où quiconque peut : • utiliser • fabriquer • modifier • distribuer Quelques liens pour en savoir plus : • OSHWA : open source hardware association • CERN Open Hardware License • FLOSH : free libre open source hardware Arnaud Tisserand — Logiciel libre : des principes à la pratique 23/25
Exemple de matériel libre Cartes électroniques libres Arduino : 1 2 3 4 5 6 7 8 A A VIN RN1A 10K TP_CMP 8 +5V TP_LCMD TP_GATE TP_PWRIN TP_VIN 1 X1 CMP L13 POWERSUPPLY_DC21MMX U1 8 3 U5A NCP1117ST50T3G +5V TP_5VTP_5V1 7 RN1B C1 1 3 VIN 3 4 2 3 IN OUT +5V REGARDING PRODUCTS, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE 100n +3V3 2 2 8 1 2 1K U5B D1 RN2A LMV358IDGKR SCK 5 TP_LL GATE_CMD 4 10K 7 M7 1 2 6 PWRIN PC1 PC2 C2 1 1 + + YELLOW LMV358IDGKR 47u 47u 100n ARDUINO and other Arduino brands and logos and Trademarks of Arduino SA. All Arduino SA Trademarks cannot be used without owner's formal permission GND GND B B L Reference Designs ARE PROVIDED "AS IS" AND "WITH ALL FAULTS. Arduino SA DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, TP_3V3 GND GND GND GND +5V GND GND USBVCC +5V 1 5 +3V3 +5V IN OUT +5V POWER GREEN these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. T1 FDN340P 3 C3 TP_RESET ON/OFF ON GND 1u 1 4 5 2 4 2 RN4D 1K GND NC/FB RESET 3 3 6 Arduino(TM) UNO Rev3 +3V3 4 RN4C 1K The product information on the Web Site or Materials is subject to change without notice. Do not finalize a design with this info Arduino SA may make changes to specifications and product descriptions at any time, without notice. The Customer must not GND GND 5 rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Arduino SA reserves 6 7 TP_ONL VIN 8 TP_PB6 TP_PB7 TP_MISO2 TP_RESET2 2x2 M - NM 4 2 +5V TP_PB4 TP_PB5 TP_MOSI2 TP_SCK2 GND 8x1F-H8.5 GND JP2 ICSP1 3 1 +5V C MISO2 1 2 GND C 5 2 1 ICSP C4 RESET SCK2 3 4 MOSI2 CD1206-S01575 RESET2 5 6 1 2 100n 10x1F-H8.5 6 RN1C 3 4 4 3 TS42031-160R-TR-7260 3 D3 TP_SCL 3x2 M RESET-EN 5 6 AD5/SCL 10 SCL +5V TP_SDA 1 2 AD4/SDA 9 SDA CD1206-S01575 U3 AREF 10K TP_AREF GND 3x2 M GND 8 100n RN1D 10K 21 PB7 GND 7 C5 TP_D- TP_D+ TP_XUSB 5 (PCINT7/OC0A/OC1C)PB7 D2 TP_9TP_11TP_13 20 PB6 SCK 6 (PCINT6)PB6 13 TP_8TP_10TP_12 RESET2 24 19 PB5 MISO 5 F1 RESET(PC1/DW) (PCINT5)PB5 18 PB4 ZU4 4 12 USB-B_TH USBVCC MOSI 4 TP_XT2 22p 22p (T1/PCINT4)PB4 11 C11 XT2 17 MISO2 RESET 1 19 SS 3 DTR X2 MF-MSMF050-2 500mA (PD0/MISO/PCINT3)PB3 RESET (SCK)PB5 10 16MHz Y1 2 16 MOSI2 18 2 1 22R XTAL2(PC0) (PDI/MOSI/PCINT2)PB2 (MISO)PB4 8 RN3A GND 9 GND 1 XUSB 1 R1 15 SCK2 XTAL2 17 1 (SCLK/PCINT1)PB1 (MOSI)PB3 C9 2 1M 1 14 10 16 8 USB D- RD- XTAL1 (SS/PCINT0)PB0 R2 XTAL2 (SS)PB2 SS 3 D+ XT1 XT1 1M 15 IO9 IOH 2 TP_XT4 TP_XT3 TP_XT1 (OC1)PB1 P$2 P$1 4 22R 5 RN3D 4 9 14 6x1F-H8.5 RD+ XTAL1 IO8 CG0603MLC-05E CG0603MLC-05E XTAL1 (ICP)PB0 TP_A1TP_A3TP_A5 32 22 CSTCE16M0V53-R0 16MHZ 6 USB boot En +5V AVCC (INT4/ICP1/CLK0)PC7 5 RN2D TP_A0TP_A2TP_A4 23 +5V AREF 21 28 AD5/SCL 5 2 7 4 (OC1A/PCINT8)PC6 AREF (ADC5)PC5 P$2 P$1 25 AVCC 20 27 4 UGND (PCINT9/OC1B)PC5 L2 10uH AVCC (ADC4)PC4 AD4/SDA RN3B 22R D 4 VCC (PCINT10)PC4 26 22 AGND (ADC3)PC3 26 AD3 3 D Z1 Z2 +5V 1K TP_DTR TP_USH TP_USBVCC TP_VUCAP 3 5 25 AD2 2 3 6 GND (AIN2/PCINT11)PC2 (ADC2)PC2 7 24 AD1 1 RN3C 22R VCC (ADC1)PC1 (CTS/HWB/AIN6/TO/INT7)PD7 13 GND C10 8 GND (ADC0)PC0) 23 AD0 TP_VUCAP 27 UCAP (RTS/AIN5/INT6)PD6 12 100n AD USHIELD USBVCC 31 11 TXLED TP_TXL C6 13 IO7 8x1F-H8.5 UVCC (XCK/AIN4/PCINT12)PD5 (AIN1)PD7 TP_1 TP_3 TP_5 TP_7 RD- 30 10 RXLED 100n 12 IO6 8 D- (INT5/AIN3)PD4 (AIN0)PD6 7 +5V TP_0 TP_2 TP_4 TP_6 100n RD+ 29 9 M8RXD 11 IO5 7 D+ (TXD1/INT3)PD3 1K (T1)PD5 C7 UGND 28 8 M8TXD 6 RN2C 3 GND 6 IO4 6 6 BLM21 UGND (RXD1/AIN1/INT2)PD2 (T0)PD4 5 7 5 IO3 5 2 1 33 (AIN0/INT1)PD1 6 TX (INT1)PD3 4 4 4 TP_UGND C8 YELLOW TP_RXL IO2 L1 PAD (OC0B/INT0)PD0 (INT0)PD2 3 1u 3 IO1 3 GROUND (TXD)PD1 2 GND ATMEGA16U2-MU(R) RN2B 2 IO0 2 (RXD)PD0 1 GND 7 2 1 0 ATMEGA328P-PU RX 1K IOL 1K 7 RN4B 2 YELLOW M8RXD GND_TP GND_TP1 1K 8 RN4A 1 M8TXD E ORIGIN E TP_RX TP_TX GND 1 2 3 4 5 6 7 8 Environnement de programmation libre (en langage C) et de très nombreux projets libres partagés par leurs auteurs. Arnaud Tisserand — Logiciel libre : des principes à la pratique 24/25
Fin, des questions ? Contact : • mailto:arnaud.tisserand@univ-ubs.fr • http://www-labsticc.univ-ubs.fr/~tisseran/ • http://www-labsticc.univ-ubs.fr/~tisseran/dissemination/ • CNRS Lab-STICC, Centre Recherche UBS Rue St Maudé. BP 92116. 56321 Lorient cedex, France Merci Arnaud Tisserand — Logiciel libre : des principes à la pratique 25/25
Vous pouvez aussi lire