Introduction aux systèmes GNU/Linux - S19E01 - inetdoc
←
→
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
Introduction aux
systèmes GNU/Linux
S19E01 inetdoc.net
Philippe Latu / Université Toulouse 3
Document sous licence GNU FDL v1.3
http://www.gnu.org/licenses/fdl.htmlProgression en 3 modules
11er
er
module
module L3
L3
Administrer
Administrer un
un système
système app1 app2 app3 app4
app1 app2 app3 app4
Installer
Installer la
la distribution
distribution Debian
Debian glibc glibc
glibc glibc
GNU/Linux
GNU/Linux
système système app5 app6 app7 app8
Gérer
Gérer des
paquets
des
paquets
VM VM glibc glibc
Gérer
Gérer des
conteneurs
conteneurs lxc
des lxc
Créer hyperviseur gestion conteneurs
Créer et
et personnaliser
personnaliser des
des comptes
comptes
utilisateurs
utilisateurs locaux
locaux système système
Identifier
Identifier les
les ressources
ressources systèmes
systèmes matériel matériel
Gérer
Gérer les
les processus
processus
S19E01 inetdoc.net - 2/44Progression en 3 modules
22ème
ème module M1
module M1 app1 app2 app3 app4
Administrer
Administrer des
des glibc glibc
app5 app6 app7 app8
systèmes
systèmes en
en réseau
réseau glibc glibc
Définir gestion conteneurs
Définir les
les types
types de
de stockage
stockage
système
Choisir
Choisir et
et configurer
configurer une
une solution
solution matériel
de
de stockage
stockage réseau
réseau iSCSI
iSCSI ou
ou NFSv4
NFSv4
Installer
Installer et
et configurer
configurer un
un annuaire
annuaire infrastructure
LDAP
LDAP avec
avec automontage
automontage NFSv4
NFSv4
stockage authentification
S19E01 inetdoc.net - 3/44Progression en 3 modules
33ème
ème module M1
module M1 app1 app2 app3 app4
Interconnecter
Interconnecter des
des
glibc glibc
app5 app6 app7 app8
réseaux
réseaux hétérogènes
hétérogènes glibc glibc
Configurer
Configurer une
une liaison
liaison WAN
WAN PPPoE
PPPoE gestion conteneurs
Configurer
Configurer le
le routage
routage inter-VLAN
inter-VLAN Système
Configurer
Configurer un
un espace
espace de
de noms
noms réseau
réseau Matériel
Configurer
Configurer le
le protocole
protocole de
de routage
routage
dynamique
dynamique OSPF
OSPF
PPP Session
S19E01 inetdoc.net - 4/44Introduction aux systèmes GNU/Linux
Séance
Séance 11
Définir
Définir les
les 55 fonctions
fonctions de
de base
base des
des
systèmes
systèmes Unix
Unix
Définir
Définir les
les 33 couches
couches de
de la
la
modélisation
modélisation d’un
d’un système
système application
d’exploitation
d’exploitation
Définir
Définir les
les types
types de
de virtualisation
virtualisation
et
et de
de conteneurs
conteneurs shell
Définir
Définir une
une distribution
distribution GNU/Linux
GNU/Linux
Identifier
Identifier une
une licence
licence de
de logiciel
logiciel noyau/kernel
libre
libre
S19E01 inetdoc.net - 5/44Introduction aux systèmes GNU/Linux
Séance
Séance 22
Partitionner
Partitionner et
et formater
formater un
un
périphérique
périphérique de
de stockage
stockage
Installer
Installer le
le système
système de
de base
base
Choisir
Choisir un
un jeu
jeu de
de paquets
paquets
d'applications
d'applications
Utiliser
Utiliser le
le gestionnaire
gestionnaire d'amorce
d'amorce
Opération
Opération C-3PO
C-3PO
Installer
Installer Open
Open vSwitch
vSwitch (OvS)
(OvS)
Installer
Installer les
les premiers
premiers conteneurs
conteneurs
avec
avec LXD
LXD
https://gist.github.com/platu/
https://gist.github.com/platu/
S19E01 inetdoc.net - 6/44Introduction aux systèmes GNU/Linux
Séance
Séance 33
Identifier
Identifier les
les environnements
environnements
graphiques
graphiques et
et les
les chaînes
chaînes de
de
développement
développement associées
associées
Gérer
Gérer les
les mises
mises àà jour
jour des
des
paquets
paquets de
de la
la distribution
distribution
Identifier
Identifier les
les dépendances
dépendances entre
entre
applications
applications et
et bibliothèques
bibliothèques
Utiliser
Utiliser les
les méta
méta données
données
Scénario
Scénario
Installer
Installer un
un conteneur
conteneur LXC
LXC avec
avec
les
les paquets
paquets d’un
d’un service
service Web
Web
S19E01 inetdoc.net - 7/44Introduction aux systèmes GNU/Linux
Séance
Séance 44 etu@vm0:~$
etu@vm0:~$
total
total 20K
20K
ls
ls -lAh
-lAh
Utiliser
Utiliser les
les ressources
ressources du
du shell
shell
-rw-------
-rw------- 11 etu
etu etu
etu 131
131 nov.
nov. 26
26 21:37
21:37 .bash_history
.bash_history
-rw-r--r--
-rw-r--r-- 11 etu
etu etu
etu 220
220 nov.
nov. 26
26 17:01
17:01 .bash_logout
.bash_logout
Bash
Bash -rw-r--r--
-rw-r--r-- 11 etu
etu etu
etu 3,5K
3,5K nov.
nov. 26
26 17:01
17:01 .bashrc
.bashrc
Lire
Lire la
la syntaxe
syntaxe d’un
d’un script
script drwx------
drwx------ 33 etu
etu etu
etu 4,0K
4,0K nov.
nov. 26
26 17:35
17:35 .gnupg
.gnupg
-rw-r--r--
-rw-r--r-- 11 etu
etu etu
etu 807
807 nov.
nov. 26
26 17:01
17:01 .profile
.profile
Identifier
Identifier et
et gérer
gérer les
les processus
processus
Gérer
Gérer les
les permissions
permissions sur
sur les
les
objets
objets de
de l'arborescence
l'arborescence système
système permissions owner group size date & time name
Scénario
Scénario
Installer
Installer un
un blog
blog statique
statique
S19E01 inetdoc.net - 8/44Introduction aux systèmes GNU/Linux
Séance
Séance 55
Gérer
Gérer les
les comptes
comptes utilisateurs
utilisateurs
locaux
locaux
Personnaliser
Personnaliser les
les comptes
comptes locaux
locaux
Gérer
Gérer les
les groupes
groupes
Changer
Changer d’identité
d’identité avec
avec sudo
sudo ou
ou su
su
Exploiter
Exploiter les
les messages
messages systèmes
systèmes
avec
avec rsyslog
rsyslog
Planifier
Planifier les
les tâches
tâches avec
avec cron
cron
Scénario
Scénario
Gérer
Gérer les
les permissions
permissions de
de groupes
groupes
pour
pour le
le développement
développement de
de site
site Web
Web S19E01 inetdoc.net - 9/44Introduction aux systèmes GNU/Linux
Séance
Séance 66 Basic
Basic Input
Input Ouput
Ouput System
BIOS System
Présenter
Présenter les
les étapes
étapes de
de →→ recherche
recherche MBR
MBR
l’initialisation
l’initialisation d’un
d’un système
système
MBR Master
Master Boot
Boot Record
Record
Identifier
Identifier le
le rôle
rôle du
du gestionnaire
gestionnaire →→ recherche
recherche GRUB
GRUB
d'amorce
d'amorce
Distinguer
Distinguer les
les espaces
espaces mémoire
mémoire GRUB Grand
Grand Unified
Unified Bootloader
Bootloader
noyau
noyau et
et utilisateur
utilisateur →→ recherche
recherche noyau
noyau
Reconnaître
Reconnaître les
les services
services lancés
lancés au
au
kernel Noyau
Noyau Linux
Linux
démarrage
démarrage →→ systemd
systemd →→ identification
identification des
des ressources
ressources
systemd →→ exécution
exécution /sbin/init
/sbin/init
Scénario
Scénario →→ lancement
lancement des
des services
services
Appliquer
Appliquer des
des contraintes
contraintes sur
sur
l’accès
l’accès aux
aux ressources
ressources pour
pour un
un
conteneur
conteneur LXD
LXD S19E01 inetdoc.net - 10/44Concepts Unix et GNU/Linux
Une
Une définition
définition de
de la
la notion
notion de
de culture
culture ...
... système
système
«« un
un ensemble
ensemble lié
lié de
de manières
manières de
de penser,
penser, de
de sentir
sentir et
et
d'agir
d'agir plus
plus ou
ou moins
moins formalisées
formalisées qui,
qui, étant
étant apprises
apprises
et
et partagées
partagées par
par une
une pluralité
pluralité de
de personnes,
personnes, servent,
servent,
d'une
d'une manière
manière àà la
la fois
fois objective
objective et
et symbolique,
symbolique, àà
constituer
constituer ces
ces personnes
personnes en
en une
une collectivité
collectivité
particulière
particulière et
et distincte.
distincte. »»
Guy
Guy Rocher
Rocher –– https://fr.wikipedia.org/wiki/Culture
https://fr.wikipedia.org/wiki/Culture
S19E01 inetdoc.net - 11/44Concepts Unix et GNU/Linux
Développer une culture système, c’est :
Identifier
Identifier les
les étapes
étapes d’une
d’une histoire
histoire continue
continue sur
sur 55 décennies
décennies
Comparer
Comparer la
la genèse
genèse des
des systèmes
systèmes Unix
Unix avec
avec celle
celle des
des services
services Internet
Internet
Identifier
Identifier les
les processus
processus d’assurance
d’assurance qualité
qualité des
des distributions
distributions
Décrire
Décrire les
les nouveaux
nouveaux processus
processus métier
métier →→ devops
devops !!
Comment évaluer ?
Maîtriser
Maîtriser les
les outils
outils du
du logiciel
logiciel libre,
libre, c’est
c’est
démontrer
démontrer un
un niveau
niveau de
de culture
culture système
système
S19E01 inetdoc.net - 12/44Concepts Unix et GNU/Linux
5 fonctions de base des systèmes Unix
Multi-tâches
Multi-tâches
Temps
Temps processeur
processeur partagé
partagé entre
entre plusieurs
plusieurs programmes
programmes
Multi-utilisateurs
Multi-utilisateurs
Ressources
Ressources système
système partagées
partagées entre
entre plusieurs
plusieurs utilisateurs
utilisateurs
Portabilité
Portabilité
Outils
Outils système
système partagés
partagés entre
entre cibles
cibles matérielles
matérielles différentes
différentes
Bibliothèques
Bibliothèques de
de développement
développement standard
standard
Optimiser
Optimiser la
la qualité
qualité des
des développements
développements en
en partageant
partageant le
le code
code
source
source
Applications
Applications communes
communes
Services
Services système,
système, services
services Internet,
Internet, etc.
etc.
S19E01 inetdoc.net - 13/441969 Unnamed PDP-7 operating system 1969
Open source
1971 to 1973 Unix 1971 to 1973
Version 1 to 4 Mixed/shared source
1974 to 1975 Unix Closed source 1974 to 1975
Version 5 to 6 PWB/Unix
1978 1978
BSD
Source
1.0 to 2.0 Unix
1979 Version 7 1979
Unix/32V
Wikipedia
1980 1980
BSD
3.0 to 4.1 Xenix
1981 System III 1981
1.0 to 2.3
Unix
1982 1982
Xenix
BSD 4.2 3.0
1983 SunOS 1983
1 to 1.1 System V
Family
R1 to R2
1984 SCO Xenix 1984
Unix
1985 Version 8 SCO Xenix 1985
AIX V/286 System V
Tree
1986 Unix-like systems BSD 4.3 1.0 R3 HP-UX 1986
SunOS 1.0 to 1.2
Unix 1.2 to 3.0 SCO Xenix
1987 9 and 10 V/386 1987
(last versions HP-UX
1988 BSD 4.3 System V 2.0 to 3.0 1988
from Tahoe R4
1989 Bell Labs) SCO Xenix 1989
BSD Net/1 V/386
BSD 4.3
1990 Reno 1990
1991 BSD Net/2 1991
Linux 0.0.1
SunOS
Minix 4
386BSD
1.x NexTSTEP/
1992 OPENSTEP HP-UX 1992
1.0 to 4.0 NetBSD 6 to 11
Linux BSD 0.8 to 1.0
1993 SCO UNIX UnixWare 1993
0.95 to 1.2.x 4.4-Lite 3.2.4 1.x to 2.x
FreeBSD & (System V
1994 Lite Release 2 1994
1.0 to R4.2)
1995 2.2.x NetBSD OpenBSD 1995
1.1 to 1.2 OpenServer Solaris
1.0 to 2.2 5.0 to 5.04
1996 2.1 to 9 1996
1997 1997
NetBSD 1.3
1998 FreeBSD 1998
3.0 to 3.2
Minix OpenServer
1999 Mac OS X AIX 5.0.5 to 5.0.7 1999
2.x Server
2000 3.0-7.2 2000
2001 to 2004 2001 to 2004
Linux
2005 2.x UnixWare 2005
7.x
2006 to 2007 (System V 2006 to 2007
OpenBSD R5)
2008 2.3-6.1 Solaris 2008
Mac OS X, FreeBSD NetBSD 10
OS X, 3.3-11.x 1.3-7.1 OpenServer HP-UX
2009 macOS 6.x 11i+ 2009
10.0 to 10.12 DragonFly
Minix BSD
2010 3.1.0-3.4.0 (Darwin 2010
1.2.1 to 17) 1.0 to 4.8 OpenSolaris
2011 & derivatives 2011
Linux (illumos, etc.)
2012 to 2015 3.x 2012 to 2015
Solaris
2016
Linux
4.x OpenServer
11.0-11.3
S19E01 inetdoc.net
2016
- 14/44
2017 10.x 2017Concepts Unix et GNU/Linux
1969
1969 –– Unics
Unics –– AT&T
AT&T –– Système
Système VV
Unix
Unix est
est un
un système
système «accidentel»
«accidentel»
AT&T
AT&T Bell
Bell labs
labs –– Ken
Ken Thompson
Thompson -- Dennis
Dennis Ritchie
Ritchie
1973
1973 réécriture
réécriture enen Langage
Langage CC
Diffusion
Diffusion sous
sous licence
licence AT&T
AT&T incluant
incluant la
la totalité
totalité
du
du code
code source
source
1975
1975 publication
publication RFC681
RFC681 NETWORK
NETWORK UNIX
UNIX
Apparition
Apparition des
des variantes
variantes propriétaires
propriétaires
Coût
Coût de
de licence
licence prohibitif
prohibitif
Versions
Versions constructeurs
constructeurs incompatibles
incompatibles entre
entre elles
elles
Segmentation
Segmentation en
en parts
parts de
de marché
marché captives
captives
S19E01 inetdoc.net - 15/44Concepts Unix et GNU/Linux
1977
1977 –– Berkeley
Berkeley University
University –– BSD
BSD
Branche
Branche Unix
Unix lancée
lancée àà partir
partir d'une
d'une licence
licence AT&T
AT&T
Nombreuses
Nombreuses améliorations
améliorations
Gestion
Gestion mémoire
mémoire
Sous-système
Sous-système réseau
réseau TCP/IP
TCP/IP
Diffusion
Diffusion entre
entre universités
universités
Début
Début de
de l'Internet
l'Internet universitaire
universitaire
Procès
Procès AT&T
AT&T
BSD
BSD est
est devenu
devenu un
un système
système complet
complet autonome
autonome
Éclatement
Éclatement de
de la
la branche
branche BSD
BSD
inetdoc.net - 16/44Concepts Unix et GNU/Linux
1984
1984 –– GNU
GNU –– Not
Not Unix
Unix
Projet
Projet lancé
lancé par
par Richard
Richard Stallman
Stallman
22 objectifs
objectifs
Promouvoir
Promouvoir le
le développement
développement des
des logiciels
logiciels libres
libres
Protection
Protection des
des travaux
travaux des
des développeurs
développeurs àà l'aide
l'aide de
de licences
licences
Fédérer
Fédérer les
les développements
développements libres
libres
Applications
Applications GNU
GNU
Unix
Unix comme
comme modèle
modèle
Fonctions
Fonctions de
de base
base déjà
déjà éprouvées
éprouvées
1990
1990 –– chaîne
chaîne de
de développement
développement stable
stable
GNU
GNU Compiler
Compiler Collection
Collection
1991
1991 –– arrivée
arrivée du
du noyau
noyau Linux
Linux
S19E01 inetdoc.net - 17/44Concepts Unix et GNU/Linux
1991
1991 –– Débuts
Débuts du
du noyau
noyau Linux
Linux
Développement
Développement initié
initié par
par Linus
Linus Torvalds
Torvalds
«divergences
«divergences de
de vues»
vues» avec
avec A.S.
A.S. Tanenbaum
Tanenbaum
http://www.oreilly.com/catalog/opensources/book/appa.html
http://www.oreilly.com/catalog/opensources/book/appa.html
Fonctions
Fonctions de
de base
base Unix
Unix ++ quelques
quelques spécificités
spécificités
Multi-tâches
Multi-tâches
Multi-utilisateurs
Multi-utilisateurs
Gestionnaire
Gestionnaire mémoire
mémoire
Mémoire
Mémoire virtuelle
virtuelle == utilisation
utilisation répétitive
répétitive et
et étendue
étendue
Mode
Mode protégé
protégé (processeurs
(processeurs Intel)
Intel)
Contrôle
Contrôle d'accès
d'accès ←← Débuts
Débuts sur
sur l’isolation
l’isolation mémoire
mémoire entre
entre processus
processus
S19E01 inetdoc.net - 18/44Système GNU/Linux
Modèlisation
Modèlisation d’un
d’un système
système Processus
Processus
utilisateur
GNU/Linux
GNU/Linux utilisateur
Noyau/kernel
Noyau/kernel →→ 33 fonctions
fonctions Processus application Processus
Temps
Temps processeur
processeur utilisateur utilisateur
Mémoire
Mémoire
Entrées/Sorties
Entrées/Sorties Séquencement
shell
entre processus Ligne de commande
Shell
Shell →→ 22 fonctions
fonctions
Séquencement
Séquencement entre
entre processus
processus
noyau/kernel
Ligne
Ligne de
de commande
commande Temps processeur
Application
Application Gestion mémoire
Tous
Tous les
les processus
processus utilisateur
utilisateur Entrées/Sorties
S19E01 inetdoc.net - 19/44S19E01 inetdoc.net - 20/44
Système GNU/Linux
Processus Processus Processus
Mémoire
Mémoire virtuelle
userspace
virtuelle utilisateur utilisateur utilisateur
userspace
userspace
Programmes
Programmes utilisateurs
utilisateurs Bibliothèque standard glibc
Bibliothèque
Bibliothèque standard
standard glibc
glibc Sous-systèmes du noyau
kernelspace
kernelspace
bdflush kswapd slab
Memory
Memory Management
Management Unit
Unit (MMU)
(MMU) allocator
kernelspace
Zoned
Zoned buddy
buddy allocator
allocator
Allocation zoned buddy allocator
Allocation pages
pages mémoires
mémoires
Slab
Slab allocator
allocator MMU
Cache
Cache dans
dans les
les pages
pages mémoire
mémoire
Kernel
Kernel threads
threads
Réutilisation
Réutilisation de
de la
la mémoire
mémoire
S19E01 inetdoc.net - 21/44Système GNU/Linux
Ordonnanceur/Scheduler
Ordonnanceur/Scheduler
33 domaines
domaines ou
ou types
types de
de tâches
tâches
Domaine
Domaine temps
temps réel
réel
Contraintes
Contraintes de
de temps
temps d'exécution
d'exécution
Fréquence
Fréquence d'exécution
d'exécution garantie
garantie
Domaine
Domaine entrées/sorties
entrées/sorties
Attente
Attente de
de disponibilité
disponibilité des
des périphériques
périphériques
Domaine
Domaine CPU
CPU
Temps
Temps consacré
consacré aux
aux calculs
calculs
Tranche
Tranche de
de temps
temps CPU
CPU // time
time slice
slice
Durée
Durée d'exécution
d'exécution d'un
d'un processus
processus sur
sur un
un
cœur
cœur
Préemption
Préemption
Interruption
Interruption d'un
d'un processus
processus par
par un
un
second
second de
de priorité
priorité plus
plus élevée
élevée
S19E01 inetdoc.net - 22/44Système GNU/Linux
Machine Machine
Virtualisation
Virtualisation ou
ou para-Virtualisation
para-Virtualisation virtuelle virtuelle
qemu i/o
Sans
Sans hyperviseur
hyperviseur →→ virtualisation
virtualisation qemu i/o
Émulation
Émulation du
du matériel
matériel dans
dans l’espace
l’espace application
utilisateur
utilisateur
Performances
Performances limitées
limitées
Adapté
Adapté aux
aux cibles
cibles matérielles
matérielles obsolètes
obsolètes shell
Avec
Avec hyperviseur
hyperviseur →→ para-virtualisation
para-virtualisation
Communication
Communication «directe»
«directe» entre
entre machine
machine noyau/kernel
virtuelle
virtuelle et
et matériel
matériel du
du système
système hôte
hôte
module KVM
Performances
Performances identiques
identiques entre
entre système
système hôte
hôte matériel
et
et système
système virtualisé
virtualisé
Périphériques
Périphériques dédiés
dédiés dans
dans le
le noyau
noyau de
de la
la
machine
machine virtuelle
virtuelle
S19E01 inetdoc.net - 23/44Système GNU/Linux
Machine Machine
Virtualisation
Virtualisation ou
ou para-Virtualisation
para-Virtualisation virtuelle virtuelle
qemu i/o
Outil
Outil de
de l’espace
l’espace utilisateur
utilisateur →→ qemu
qemu qemu i/o
qemu
qemu seul
seul →→ virtualisation
virtualisation application
22 fonctions
fonctions principales
principales
Manipulations
Manipulations sur
sur les
les fichiers
fichiers image
image de
de
machine
machine virtuelle
virtuelle shell
Description
Description du
du matériel
matériel des
des machines
machines
virtuelles
virtuelles noyau/kernel
Outil
Outil de
de l’espace
l’espace noyau
noyau →→ kvm
kvm module KVM
qemu
qemu ++ kvm
kvm →→ para-virtualisation
para-virtualisation matériel
Utilisation
Utilisation des
des périphériques
périphériques de
de la
la
bibliothèque
bibliothèque virtio
virtio
S19E01 inetdoc.net - 24/44Système GNU/Linux
Conteneurs
Conteneurs ou
ou micro
micro services
services
app1 app2 app1
Conteneurs
Conteneurs →→ LXC/LXD
LXC/LXD docker
glibc app2
Système
Système complet
complet «sans
«sans noyau»
noyau»
lxc docker
Données
Données stockées
stockées dans
dans le
le conteneur
conteneur ou
ou en
en
application
dehors
dehors via
via montage
montage
Pile
Pile d’applications
d’applications hébergées
hébergées
Coût
Coût d’administration
d’administration système
système complet
complet shell
Micro
Micro services
services →→ Docker
Docker
noyau/kernel
Une
Une application
application par
par conteneur
conteneur Docker
Docker
Données
Données stockées
stockées en
en dehors
dehors
Pile
Pile d’applications
d’applications →→ pile
pile de
de conteneurs
conteneurs
S19E01 inetdoc.net - 25/44Système GNU/Linux
Opération
Opération C-3PO
C-3PO :: conteneurs
conteneurs && app1 app2
app1 app2
réseaux
réseaux sans
sans orchestration
orchestration glibc
glibc
Objectifs
Objectifs lxc
eth0 lxc
Aucun
Aucun compromis
compromis entre
entre commutation
commutation eth0
application
virtuelle
virtuelle et
et commutation
commutation physique
physique
Pas
Pas de
de recours
recours àà la
la traduction
traduction d’adresses
d’adresses
Conteneurs
Conteneurs LXC/LXD
LXC/LXD shell
Configuration
Configuration simplifiée
simplifiée via
via snap
snap OvS
Raccordement
Raccordement réseau
réseau automatique
automatique noyau/kernel
eth0
Open
Open vSwitch
vSwitch (OvS)
(OvS)
Table CAM ((Content
Table CAM Content Addressable
Addressable Memory
Memory))
Base
Base de
de VLANs
VLANs
S19E01 inetdoc.net - 26/44Système GNU/Linux
S19E01 inetdoc.net - 27/44Logiciel Libre & Licences
Code
Code source
source →→ code
code exécutable
exécutable
Tout
Tout programme
programme est
est écrit
écrit dans
dans un
un langage
langage
Exemple
Exemple :: le
le noyau
noyau Linux
Linux est
est écrit
écrit en
en Langage
Langage CC
Le
Le code
code source
source n'est
n'est pas
pas directement
directement utilisable
utilisable
Compilation
Compilation
Transformation
Transformation du
du code
code source
source en
en code
code exécutable
exécutable
Transformation
Transformation inverse
inverse «impossible»
«impossible»
Code
Code exécutable
exécutable == binaire
binaire
Logiciel
Logiciel propriétaire
propriétaire
Droit
Droit d'utilisation
d'utilisation limité
limité d'un
d'un code
code exécutable
exécutable
Logiciel
Logiciel libre
libre
Accès
Accès au
au code
code source
source
Droit
Droit d'utilisation,
d'utilisation, d'échange,
d'échange, de
de modification
modification et
et de
de redistribution
redistribution
S19E01 inetdoc.net - 28/44Logiciel Libre & Licences
Licences
Licences de
de Logiciel
Logiciel Libre
Libre
Licence
Licence BSD
BSD →→ restrictions
restrictions possibles
possibles
Création
Création de
de versions
versions propriétaires
propriétaires autorisée
autorisée
Restrictions
Restrictions possibles
possibles sur
sur les
les droits
droits de
de
redistribution
redistribution
Restrictions
Restrictions rarement
rarement appliquées
appliquées dans
dans les
les faits
faits
Licence
Licence GNU
GNU →→ Copyleft
Copyleft
Copyright
Copyright !=
!= Copyleft
Copyleft
Principe
Principe de
de protection
protection du
du Logiciel
Logiciel libre
libre et
et des
des
concepteurs
concepteurs
Restrictions
Restrictions interdites
interdites sur
sur les
les conditions
conditions de
de
redistribution
redistribution
S19E01 inetdoc.net - 29/44Logiciel Libre & Licences
Application
Application du
du Copyleft
Copyleft
Appliquer
Appliquer un
un copyright
copyright sur
sur le
le logiciel
logiciel
Fixer
Fixer les
les conditions
conditions de
de distribution
distribution
««Donner
Donner àà tout
tout utilisateur
utilisateur le
le droit
droit d'utiliser,
d'utiliser,
de
de modifier
modifier et
et de
de redistribuer
redistribuer le
le programme
programme
sans
sans changer
changer les
les conditions
conditions de
de distribution
distribution»»
Le
Le code
code source
source et
et les
les libertés
libertés associées
associées
sont
sont inséparables
inséparables
http://www.gnu.org/copyleft/copyleft.fr.html
http://www.gnu.org/copyleft/copyleft.fr.html
S19E01 inetdoc.net - 30/44Projets OpenSource
Applications
Applications OpenSource
OpenSource && systèmes
systèmes GNU/Linux
GNU/Linux
Une
Une histoire
histoire commune
commune
Évolutions,
Évolutions, processus
processus et
et méthodes
méthodes
Exemples
Exemples de
de services
services Internet
Internet
Bind
Bind :: noms
noms de
de domaines
domaines
Postfix
Postfix :: courrier
courrier électronique
électronique
Apache/NGINX
Apache/NGINX :: serveurs
serveurs web
web
Terminologie
Terminologie OpenSource
OpenSource
Modifications
Modifications distribuées
distribuées dans
dans les
les mêmes
mêmes conditions
conditions que
que l'original
l'original
Restrictions
Restrictions possibles
possibles sur
sur la
la redistribution
redistribution des
des correctifs
correctifs
Licence
Licence sans
sans restrictions
restrictions sur
sur d'autres
d'autres logiciels
logiciels associés
associés
S19E01 inetdoc.net - 31/44Projets OpenSource
Modèle
Modèle de
de développement
développement
Fondations
Fondations →→ écosystèmes
écosystèmes structurés
structurés
Open
Open Source
Source Initiative
Initiative
https://opensource.org/
https://opensource.org/
Linux
Linux Foundation
Foundation
https://www.linuxfoundation.org/
https://www.linuxfoundation.org/
Mozilla
Mozilla Foundation
Foundation
https://foundation.mozilla.org/
https://foundation.mozilla.org/
The
The Document
Document Foundation
Foundation
https://www.documentfoundation.org/
https://www.documentfoundation.org/
S19E01 inetdoc.net - 32/44Projets OpenSource
Quelles
Quelles sont
sont les
les évolutions
évolutions métier
métier en
en cours
cours ??
Documentation
Documentation
https://stackoverflow.com/
https://stackoverflow.com/
The
The devops
devops buzzword
buzzword
Toujours
Toujours plus
plus d’automatisation
d’automatisation
Toujours
Toujours plus
plus d’applications
d’applications intégrées
intégrées ou
ou dépendantes
dépendantes
Fusion
Fusion des
des métiers
métiers du
du développement
développement et
et de
de l’administration
l’administration système
système
Tout
Tout est
est programmable
programmable
«le
«le déploiement
déploiement d’infrastructure
d’infrastructure utilise
utilise les
les mêmes
mêmes processus
processus que
que
le
le déploiement
déploiement logiciel»
logiciel»
S19E01 inetdoc.net - 33/44Projets OpenSource
Quelles
Quelles sont
sont les
les évolutions
évolutions métier
métier en
en cours
cours ??
Intégration continue –– continuous
Intégration continue continuous integration
integration
Déposer
Déposer souvent
souvent le
le code
code dans
dans un
un système
système de
de contrôle
contrôle de
de version.
version. Chaque
Chaque
dépôt
dépôt déclenche
déclenche une
une instance
instance automatisée
automatisée de
de génération
génération et
et de
de test.
test.
Livraison continue –– continuous
Livraison continue continuous delivery
delivery
Automatiser
Automatiser le
le processus
processus de
de publication
publication du
du logiciel.
logiciel. Un
Un projet
projet amont
amont
peut
peut lancer
lancer la
la construction
construction des
des paquets
paquets pour
pour les
les distributions.
distributions.
Déploiement continu –– continuous
Déploiement continu continuous deployment
deployment
Automatiser
Automatiser complètement
complètement l’intégration
l’intégration et
et la
la livraison
livraison sans
sans aucune
aucune étape
étape
manuelle.
manuelle.
Exemples
Exemples
Transformation
Transformation de
de github
github ou
ou gitlab
gitlab en
en outils
outils de
de développement
développement intégrés
intégrés
S19E01 inetdoc.net - 34/44Distribution
Distributions
Distributions GNU/Linux
GNU/Linux && BSD
BSD
Canaux
Canaux de
de diffusion
diffusion du
du logiciel
logiciel libre
libre
Distribution
Distribution →→ association
association de
de 33 éléments
éléments
Noyau
Noyau
Un
Un ou
ou plusieurs
plusieurs Shells
Shells
Un
Un ensemble
ensemble d'applications
d'applications
Composants
Composants distribués
distribués sous
sous forme
forme de
de paquets
paquets
Code
Code binaire
binaire exécutable
exécutable
Configuration
Configuration type
type
Gestion
Gestion de
de paquets
paquets
Principal
Principal enjeu
enjeu dans
dans la
la vie
vie d'une
d'une distribution
distribution
S19E01 inetdoc.net - 35/44Distribution
22 logiques
logiques s'opposent
s'opposent →→ devops
devops !?
!?
Publier
Publier très
très régulièrement
régulièrement →→ utilisateurs/développeurs
utilisateurs/développeurs
Fournir
Fournir les
les outils
outils les
les plus
plus récents
récents
Fournir
Fournir l'interface
l'interface la
la plus
plus attrayante
attrayante
Publier
Publier en
en fonction
fonction de
de la
la qualité
qualité →→ infrastructure/administration
infrastructure/administration
Fournir
Fournir les
les outils
outils qui
qui satisfont
satisfont les
les critères
critères de
de qualité
qualité
Garantir
Garantir la
la continuité
continuité de
de service
service
Choix
Choix d'une
d'une application
application parmi
parmi nn
Équivalence
Équivalence entre
entre qualité
qualité du
du code
code et
et gestion
gestion de
de paquet
paquet
Responsable
Responsable de
de paquet
paquet →→ un
un rôle
rôle essentiel
essentiel
Capitalisation
Capitalisation des
des compétences
compétences d'exploitation
d'exploitation
Qualités
Qualités humaines
humaines dans
dans la
la coordination
coordination
Démarche
Démarche qualité
qualité lors
lors des
des évolutions
évolutions
S19E01 inetdoc.net - 36/44Distribution
Choix
Choix d'une
d'une distribution
distribution
22 critères
critères essentiel
essentiel pour
pour l'exploitation
l'exploitation
Facilité
Facilité d'adaptation
d'adaptation
Obtenir
Obtenir une
une configuration
configuration type
type par
par contexte
contexte
Bénéficier
Bénéficier de
de l'expérience
l'expérience des
des responsables
responsables de
de paquets
paquets
Continuité
Continuité lors
lors des
des mises
mises àà jour
jour
Cohérence
Cohérence des
des évolutions
évolutions et
et corrections
corrections
Réinstallation
Réinstallation impossible
impossible
Adaptation
Adaptation ++ évolution
évolution continue
continue
Continuité
Continuité de
de service
service
Haute
Haute disponibilité
disponibilité
S19E01 inetdoc.net - 37/44Distribution
Relations
Relations && filiations
filiations entre
entre distributions
distributions
Assurance
Assurance qualité
qualité && coordination
coordination
Exemple
Exemple :: Debian
Debian →→ Ubuntu
Ubuntu →→ LinuxMint
LinuxMint
Modèle
Modèle «pipeline»
«pipeline»
S19E01 inetdoc.net - 38/44Distribution
Debian
Debian GNU/Linux
GNU/Linux
Évolution
Évolution cohérente
cohérente et
et continue
continue depuis
depuis 1993
1993
Contrat
Contrat social
social ++ Principes
Principes du
du logiciel
logiciel libre
libre selon
selon Debian
Debian
Règles
Règles àà suivre
suivre pour
pour garantir
garantir qu'un
qu'un logiciel
logiciel est
est bien
bien libre
libre
http://www.debian.org/social_contract.html
http://www.debian.org/social_contract.html
Charte
Charte Debian
Debian
Procédure
Procédure qualité
qualité du
du projet
projet
http://www.debian.org/devel/index.fr.html
http://www.debian.org/devel/index.fr.html
Gestionnaire
Gestionnaire de
de paquets
paquets APT
APT
Synthèse
Synthèse de
de toutes
toutes les
les qualités
qualités de
de la
la distribution
distribution
Continuité
Continuité indépendante
indépendante des
des versions
versions
Adaptabilité
Adaptabilité en
en séparant
séparant la
la configuration
configuration de
de l'application
l'application
Automatisation
Automatisation de
de la
la publication
publication des
des mises
mises àà jour
jour
inetdoc.net - 39/44Distribution
Debian
Debian GNU/Linux
GNU/Linux
Choix
Choix pédagogique
pédagogique
Mille
Mille et
et unes
unes distributions
distributions spécialisées
spécialisées
Très
Très peu
peu de
de distributions
distributions généralistes
généralistes
Transparence
Transparence des
des processus
processus
Qualité
Qualité :: https://tracker.debian.org
https://tracker.debian.org
Sécurité
Sécurité :: https://www.debian.org/security/
https://www.debian.org/security/
Processus
Processus métiers
métiers difficiles
difficiles àà illustrer
illustrer
Coût
Coût d'accès
d'accès au
au support
support
Diffusion
Diffusion restreinte
restreinte de
de l'information
l'information
Difficulté
Difficulté d'accès
d'accès àà l'information
l'information
Communautés
Communautés peu
peu ouvertes
ouvertes
inetdoc.net
S19E01 inetdoc.net - -40/44
40/44Bilan séance 1
Logiciels
Logiciels Libres
Libres && Projets
Projets OpenSource
OpenSource
Rôle
Rôle majeur
majeur dans
dans le
le monde
monde des
des technologies
technologies de
de l'information
l'information
Modèle
Modèle de
de développement
développement original
original et
et éprouvé
éprouvé
«La
«La Cathédrale»
Cathédrale» vs.
vs. «Le
«Le Bazar»
Bazar»
Évolutions
Évolutions en
en écosystèmes
écosystèmes
Nouvelle
Nouvelle répartition
répartition des
des rôles
rôles entre
entre entreprises
entreprises de
de services
services et
et
fondations
fondations
La
La valeur
valeur ajoutée
ajoutée est
est générée
générée àà partir
partir du
du partage
partage de
de biens
biens
communs
communs
«La
«La culture
culture système
système est
est devenue
devenue une
une condition
condition importante
importante pour
pour
l’accès
l’accès àà l’emploi»
l’emploi»
S19E01 inetdoc.net - 41/44Bilan séance 1
Étapes
Étapes du
du développement
développement des
des systèmes
systèmes Unix
Unix
Histoire
Histoire «continue»
«continue» sur
sur presque
presque de
de 50
50 ans
ans
Histoire
Histoire ++ Mémoire
Mémoire == culture
culture
Opposition
Opposition entre
entre culture
culture et
et obscurantisme
obscurantisme
Savoir-faire
Savoir-faire !=
!= «recettes
«recettes de
de cuisine»
cuisine»
Coût
Coût d'apprentissage
d'apprentissage important
important
Investissement
Investissement sur
sur le
le long
long terme
terme
Capitalisation
Capitalisation des
des savoir-faire
savoir-faire == autonomie
autonomie
Il
Il faut
faut être
être motivé
motivé !!
S19E01 inetdoc.net - 42/44S19E01 inetdoc.net - 43/44
Ressources
Cahier
Cahier de
de l’Admin
l’Admin Debian
Debian
https://debian-handbook.info/
https://debian-handbook.info/
Framabook
Framabook
Unix.
Unix. Pour
Pour aller
aller plus
plus loin
loin avec
avec la
la ligne
ligne de
de commande
commande
https://framabook.org/unixpou-allerplusloinaveclalignedecommande/
https://framabook.org/unixpou-allerplusloinaveclalignedecommande/
Manuel
Manuel d'installation
d'installation Debian
Debian
http://www.debian.org/releases/stable/installmanual
http://www.debian.org/releases/stable/installmanual
S19E01 inetdoc.net - 44/44Vous pouvez aussi lire