Introduction à Linux
aux logiciels Free/Libres/Open Source (aka FLOSS)
et leurs licenses
Mars 2023
Bruno Cornec, HPE Open Source and Linux Strategist
Introducing myself
●
Software engineering and Unices since 1988:
– Mostly Configuration Management Systems (CMS), Build systems, quality tools, on multiple commercial Unix systems
– Discovered Free, Libre, Open Source Software & Linux (FLOSS) & made first contributions in 1993
– Full time on OSL since 1995, first as HPE reseller then @HPE
●
Currently:
– WW FLOSS Technology Strategist in HPE, Grenoble, France
– HPE FLOSS Advocate and Converged Infrastructure Ambassador
– WW Linux Community Lead for the HPE Open Source Profession
– AFUL and APRIL member. Mageia board member. FLOSSITA board chair.
– Conferences at WW level at LinuxCon, Linux.conf.au, Fosdem, ...
– MondoRescue, Project-Builder.org, python-redfish, UUWL and PUSK Project Lead
– LinuxCOE, mrepo, tellico, rinse, fossology, collectl, Ironic contributor
– FOSSBazaar/SPDX and FLOSS Governance enthusiast
– Mageia (and Fedora) packager
●
And also:
– Amateur singer (Alto / Tenor), recorder player since 1976 and Choir director since 1987, CD collector (7000+), Concerts, Photography
30/03/2023 5
L'information joue un rôle primordial et croissant.
Son contrôle procure un pouvoir culturel, économique et
politique extrêmement fort.
Le support de l'information se dématérialise.
L'informatique, en tant que science de la gestion de
l'information, devient prépondérante, omniprésente.
L'outil devient stratégique et de titanesques luttes de
pouvoir s'engagent pour son contrôle.
Qu'est-ce que l'informatique ?
30/03/2023 6
Favoriser le libre accès à l'information et à la diffusion du savoir.
Préserver un espace non marchand où le partage est naturel mais n'est
pas un acte de piratage.
Préserver les libertés individuelles.
Veiller à la pluralité des opinions et des moyens techniques.
Garantir au citoyen les moyens d'exercer son libre arbitre.
Informatique libre: le partage du savoir
30/03/2023 8
C'est un outil spécialisé qui répond à un besoin spécifique
de traitement automatisé d'une information (mettre en
page un texte, retoucher une photo, filtrer un son, ...).
Il satisfait ce besoin en enchaînant selon une logique
déterminée un nombre incalculable d'opérations
élémentaires.
Ces opérations élémentaires sont décrites de la seule
manière accessible à un microprocesseur : le langage
binaire.
Sous sa forme « prête à l'emploi », un logiciel est donc une
suite logique de 0 et de 1 appelée code binaire.
Qu'est-ce qu'un logiciel ?
1010001010
0010110110
1001100101
0110100110
0101011011
0101000000
0000001101
0110110111
1111111010
0100101101
30/03/2023 9
Code source et code binaire
int rangeSum
(int low, int high){
int i;
int sum = low;
for (i = low + 1;
i <= high;
i++){
sum = sum + i;
}
return sum;
}
30/03/2023 10
Sous sa forme binaire, un logiciel est
incompréhensible par un être humain.
Le développeur conçoit donc le logiciel dans un
langage symbolique et plus accessible, dit de haut
niveau par rapport au langage binaire, dit de bas
niveau.
Cette description de haut niveau, qui n'est pas
exploitable en l'état par le microprocesseur, est
appelée code source.
La conversion du code source en code binaire est
assurée par un outil nommé compilateur.
Code source et code binaire
int rangeSum
(int low, int high){
int i;
int sum = low;
for (i = low + 1;
i <= high;
i++){
sum = sum + i;
}
return sum;
}
30/03/2023 11
En Europe, le logiciel est à ce jour exclusivement
protégé par le droit d'auteur (droit latin) ou par le
copyright (droit anglo-saxon).
Le droit d'auteur ne reconnaît que peu de droits à
l'utilisateur et lui interdit beaucoup de choses.
Les logiciels classiques sont accompagnés de licences
d'exploitation et de diffusion encore plus restrictives.
Un utilisateur n'est pas possesseur d'un logiciel qu'il
acquiert pas plus que le film d'un DVD ou la musique
d'un CD. Il l'est d'un livre, sans l'être de l'oeuvre bien
évidemment.
Droit d'auteur
30/03/2023 12
L'auteur d'un logiciel libre veut rétablir l'équilibre. A
cette fin, il accorde 4 libertés fondamentales à
l'utilisateur :
Exécuter le programme à sa guise et sans
restriction.
Etudier le fonctionnement du programme.
Redistribuer des copies, gratuites ou payantes.
Modifier le programme, s'en inspirer et redistribuer
les modifications pour le profit de tous.
L'exercice de ces libertés exige le libre accès au code
source et la liberté de le modifier.
Droit de l'utilisateur
≠ Freeware/Shareware
30/03/2023 13
Tout provient de la disponibilité du code source :
Portabilité – Universalité - Facteur d'échelle
Flexibilité – Adaptabilité
Stabilité – Fiabilité
Performance – Réactivité – Sécurité
Interopérabilité – Pérennité – Indépendance
Universalité aux travers des standards, RFCs,
normes
Le coût n'est qu'une conséquence
Un logiciel libre est comme une voiture dont on peut
ouvrir le capot
Force du logiciel libre
30/03/2023 14
Conséquences
● Pour les utilisateurs :
● Les solutions FLOSS ont un coût d'entrée plus bas, procurent sécurité par l'ouverture
● Liberté de choix uniquement sur dess critères techniques, donnant le contrôle total
● Liberté de développer une expertise interne ou d'externaliser
● Liberté de brancher si le projet père se comporte de façon non acceptable
● Pour l'industrie informatique :
● Les standards sont maintenant fourni avec une implémentation libre
● Les compagnies qui réussissent ne sont pas celles qui luttent contre, mais adoptent et participent.
● Le modèle commercial est autour du matériel et des services (consultance, intégration, support, formation,
hébergement, infogérance, SaaS)
● La différentiation est faite sur la crédibilité commerciale et technique (implication dans les communautés), la
diffusion rapide (innovation) et des matériels et services uniques qui répondent aux besoins des clients.
30/03/2023 15
Au delà du code, le Logiciel Libre a 3 pilliers
Licences
Licences Communauté
Communauté Methodologie
Methodologie
•On peut utiliser les 3 aspects en tant qu'avantage compétitif
On peut utiliser les 3 aspects en tant qu'avantage compétitif
•Le modèle commercial se déplace sur le service
Le modèle commercial se déplace sur le service
•Plus vous vous impliquez, plus vous influencez/contrôlez.
Plus vous vous impliquez, plus vous influencez/contrôlez.
Près de 60 licences
aujourd'hui:
Les Copyleft (pas virales – à
réciprocité): les modifications
diffusées de code doivent
retourner à la communauté
Les autres sont similaires au
domaine public et ont peu
d'exigences
Le droit d'auteur et le
copyright sont des éléments
fondamentaux pour toutes ces
licences FLOSS.
“Une communauté est une
entité sociale de toute taille qui
partage des valeurs [...] Depuis
l'avênement d'Internet, la
notion de communauté n'a plus
de limitation géographique,
puisque ses membres peuvent
se réunir virtuellement en ligne
et partager des intérêts
communs indépendamment de
leur localisation.”
(d'après Wikipedia)
Développement partagé.
De multiple projets avec leur
propre structure. Divers
modèles de gouvernance,
certains autocratiques,
d'autres basé sur le
consensus.
Variété d'information sur la
feuille de route.
Méritocratie où l'influence et
le contrôle s'obtiennent
par l'implication.
Certains projets sont pilotés
par des entreprises,
beaucoup ar des individus.
30/03/2023 16
Licences FLOSS
freeware
Sun
SCSL
Microsoft
shared source
Code source
disponible
Binaire seul
source avec
limitations
many
java
libraries
Logiciel
gratuit
shareware
Adobe
Reader
GNU LGPL MIT
Art Libre
Mozilla
W3C
Apache
permissive
Copyleft /
réciprocité
GNU GPL
FLOSS
BSD
Reference URL: http://www.gnu.org/licenses/licenses.en.html
CC
30/03/2023 17
Licences FLOSS … ou pas ?
Composant License Libre ?
winzip
firefox
chrome
Linux
glibc
python
Samba
Spark
vlc
Elastic Search
MariaDB
MySQL
LibreOffice
Wikipedia
30/03/2023 18
Licences FLOSS … ou pas ?
Composant License Libre ?
winzip https://www.winzip.com/win/en/eula.html non
firefox https://www.mozilla.org/en-US/MPL/ oui
chrome https://www.google.com/intl/fr/chrome/terms/ non
Linux https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/COPYING oui
glibc https://www.gnu.org/software/libc/manual/html_mono/libc.html#Copying oui
python https://docs.python.org/3/license.html oui
Samba https://www.samba.org/samba/docs/GPL.html oui
Spark https://www.apache.org/licenses/LICENSE-2.0 oui
vlc https://www.videolan.org/legal.html oui / codec
Elastic Search https://www.elastic.co/fr/pricing/faq/licensing oui et non
MariaDB https://mariadb.com/kb/en/licensing-faq/ oui
MySQL https://www.mysql.com/fr/about/legal/licensing/oem/ oui et non
LibreOffice https://www.libreoffice.org/about-us/licenses oui
Wikipedia https://github.com/wikimedia/mediawiki/blob/master/COPYING &&
https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Respect_de_la_licence_%C3%A0_
v%C3%A9rifier
oui
30/03/2023 19
Communautés FLOSS
Entrer dans une communauté <=> Entrer dans un groupe social
Moyens de communication (Listes de diffusion, forums, wiki, bugs, …)
Comprendre la communauté == Lire
Influencer ? Commencer par des actions simples (le code n'est pas tout !):
Faire des rapports d'anomalies
Améliorer la documentation (interne, externe: wikipedia, blog, ...)
Améliorer le look & feel du projet (Logo, Web, ...)
Ecrire des tests
Proposer des patchs, faire des pull-request (ou autre)
Organiser des activités (événements, conférences, association, ...)
Dictacteur bénévole à vie !
30/03/2023 20
Communautés FLOSS
Projet URL Votre Contribution Votre Retour / Commentaire
Tout type de contribution acceptée (sous license libre)
Ou utiliser la proposition plus tard
30/03/2023 21
Et l’argent là-dedans ?
Les développeurs de logiciels libres aussi aiment manger !
Certains sont employés pour développer du logiciel libre
Beaucoup de logiciels libres sont développés sur le temps “libre” de développeurs
Si c’est gratuit, vous êtes le produit !
Si c’est libre, vous êtes libres
Vous êtes notamment aussi libres de contribuer et/ou de financer
Inciter à mutualiser les développements
Donner de l’argent aux fondations, aux projets, aux développeurs:
April, AFUL, LQDN, Framasoft, Wikipedia, FSF, ODF, GIMP, VLC, Mozilla, LibreOffice,
Mageia, le paypal d’un développeur dont vous aimez le projet, ... voire FLOSSITA
30/03/2023 22
Citation d'Eben Moglen
“We now have a body of software accessible to
everybody on earth so robust and so profound in its
possibilities, that we are a few man months away
from doing whatever it is that anyone wants to do
with computers all the time.”
From a speech given at Harvard Law School
30/03/2023 24
1967 – Arpanet (Internet Ancestor) - L. Roberts
1969 – UNIX – B. Kernighan, D. Ritchie, K. Thomson
1971 – C Language – B. Kernighan, D. Ritchie
1972
First e-mail
1973 – Mouse and Ethernet – Xerox Parc
1973
TCP/IP – V. Cerf
1974 – Smart Card – R. Moreno
1975 – Microsoft – P. Allen, B. Gates
1976
Apple and Apple II
S. Wozniak, S. Jobs
2005 -
1978 – BSD 1 – B. Joy
1980 – Internet – V. Cerf
1981
PC - IBM
1984
MacIntosh/Apple – LaserJet/HP
1985 – MS Windows
1991
Linux – L. Torvalds
1995 – Java – Sun
2001
Wikipedia
2008 - Cloud
Il était une fois...
1984 – GNU Project – R. Stallman
1984 – X-Window/MIT – DNS
2010
2013 -
2006
2015 -
30/03/2023
Le projet GNU :
Tout démarre d'un problème d'imprimante
Richard M. Stalmann, AI Lab au MIT
But : Fabriquer un système d'exploitation libre à partir de rien
Début avec un éditeur (emacs), une chaîne de compilation C (gcc, gdb, glibc,as, ld), ...
Des outils el ligne de commande : ls, mv, rm, grep, awk, sed, make, bash, ...
Des centaines d'outils aujourd'hui
GNU Hurd
Les licences GPL
GNU ?
30/03/2023 26
Linux
Kernel
Linux implémentation GPL d'un noyau conforme au standard POSIX (Portable
Operating System Interface Unix-Like - IEEE comitee 1003.x)
Fournit des services et interfaces pour les composants matériels et logiciels.
Premiers test de conformité fait par le Gouvernement US avec le noyau 1.2.13.
Développé mondialement par des milliers de développeurs.
12,000,000+ lignes de code, 77MB xz compressed tarball... (50 % pour les pilotes,
moins de 3 % de code assembleur ...) [sloccount sur 3.17.4]
http://en.wikipedia.org/wiki/List_of_Linux_supported_computer_architectures
Ubiquité : Fonctionne sur le Superdome Flex 1792 threads 48To de RAM et sur un
téléphone Android ou un GPS Tomtom (28 architectures de CPU prises en charge),
des routeurs, des box ADSL/Vidéos... Il est utilisé dans des voitures, la navette
spatiale internationale, 80 % des marchés financiers, 100 % des machines du
top500.org et il y a 1.3 Million de périphériques Android activaté par jour.
http://en.wikipedia.org/wiki/Linux-powered_device
Valeur : En 2011, l'effort de développement du noyau Linux était estimé à environ 3
milliards de dollar. En 2015, à 5 milliards .
Linux ?
30/03/2023
Ensemble coherent de paquets (1k-30k) pris dans les projets pères
Gestionnaire de paquets
Outil de contrôle
Programme d'installation
Scripts de démarrage
Outils adhoc
Mise à jour fonctionnelles
Mise à jour de sécurité
Géré par une communauté
ou une entité commerciale
(certification matérielle,
LTS, support)
Distribution Linux : un projet en soi
30/03/2023 28
1984 – GNU/FSF Project - R. Stallman
1991 - Linux
L. Torvalds
1996 – SuSE & Yast – Florian La Roche
Evolution des distributions Linux
1993 – Slackware – Patrick Volkerding
1993 – Red Hat Linux
Marc Ewing
1997 – Red Hat Package Manager
Erik Troan & Mark Ewing
1993 – Debian Package
2003 – YUM - Seth Vidal
1996 – Debian GNU/Linux
Ian Murdock
2003 – Fedora
Warren Togami
1998 – Advanced Packaging Tool
Brian White
2004 – Ubuntu
Mark Shtuttleworth
1992 – SLS – Peter Mc Donald
2001 – SLES 2002 – RHEL
2005 – OpenSUSE
2010 – Mageia
Anne Nicolas
2015 – DNF
Les contributions au Logiciel Libre
I think that many people assume, wrongly,
that a company exists simply to make money.
While this is an important result of a company’s
existence, we have to go deeper and find the
real reasons for our being.
As we investigate this, we inevitably come to the conclusion that a
group of people get together and exist as an institution that we call a
company so they are able to accomplish something collectively
which they could not accomplish separately. They are able to do
something worthwhile — they make a contribution to society (a
phrase which sounds trite but is fundamental).
David Packard, March 8, 1960
Exemple de complexité d'alignement de cycle de vie
45nm 32nm 22nm
tick tock
Xeon 5500
(Nehalem)
Xeon 5600
(Westmere)
Xeon 2600
(Sandy-Bridge)
Broadwell /
Skylake
Xeon 5400
Xeon 5200
G6
G6w
G7
2009 2010 2011 Future
Gen8
G6 long-life
RHEL 5
5.5y full support 1.5y on hw, sw, bugs 3.5y on xxxx
5.5
+3y LTS
4.8
RHEL 4
2012
RHEL 7
2013
tick tick
tock tock
2014
Xeon 2600 v2
(Ivy Bridge)
Gen9
RHEL 6
Cf: https://access.redhat.com/site/support/policy/updates/errata/
2015
Xeon 2600 v3
(Haswell)
tick
30/03/2023 Private | Confidential | Internal Use Only
”Changes are never easy to make.
There is comfort and safety in tradition,
but change must come, no matter how
painful or expensive it may be.”
Bill Hewlett
Bruno.Cornec@hpe.com
(Open Source and Linux Technology Strategist
at the WW Customer Innovation Center)
http://downloads.linux.hpe.com/
Linus Torvalds, Richard Stallman, Eric Raymond,
Nat Makarevitch, René Cougnenc, Eric Dumas,
Rémy Card, Bdale Garbee, Bryan Gartner, Craig
Lamparter, Lee Mayes, Gallig Renaud, Andree
Leidenfrost, Phil Robb, Bob Gobeille, Martin
Michlmayr among others, for their work and
devotion to the Open Source Software cause...
and my family for their patience :-)
MERCI !