wip
This commit is contained in:
parent
b3d5f320ce
commit
e2c72c1261
@ -1,4 +1,4 @@
|
|||||||
SOURCES = slides.md rappels.md gnulinux.md prod.md
|
SOURCES = slides.md intro.md os.md containers.md apps.md
|
||||||
HEADER = header.tex
|
HEADER = header.tex
|
||||||
TEMPLATE = CambridgeUS
|
TEMPLATE = CambridgeUS
|
||||||
COLORTHEME = beaver
|
COLORTHEME = beaver
|
||||||
|
36
slides/apps.md
Normal file
36
slides/apps.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# Conteneurs applicatif
|
||||||
|
|
||||||
|
## Grandes idées
|
||||||
|
|
||||||
|
TODO une image représentant les conteneurs applicatifs
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
TODO une image pour expliquer UnionFS
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
TODO une image d'architecture nginx/php-fpm
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
TODO logo Docker
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
TODO image tetris, illustration ordonnancement
|
||||||
|
|
||||||
|
|
||||||
|
## Quelques bonnes pratiques
|
||||||
|
|
||||||
|
### Garder les couches propres
|
||||||
|
|
||||||
|
### Séparer les données du système
|
||||||
|
|
||||||
|
TODO image représentant les data only container
|
||||||
|
|
||||||
|
### Prendre les arguments depuis l'environnement
|
||||||
|
|
||||||
|
### Ne pas installer syslog, utiliser `docker logs`
|
||||||
|
|
||||||
|
### Ne pas containeriser des applications intégrant déjà cette notion
|
@ -4,14 +4,14 @@
|
|||||||
|
|
||||||
### Que doit-on isoler ?
|
### Que doit-on isoler ?
|
||||||
|
|
||||||
* Matériel ?
|
> * Matériel ?
|
||||||
* Processus ?
|
> * Processus ?
|
||||||
* Réseau ?
|
> * Réseau ?
|
||||||
* Système de fichiers ?
|
> * Système de fichiers ?
|
||||||
* Utilisateurs et groupes ?
|
> * Utilisateurs et groupes ?
|
||||||
* Nom et domaine de la machine !
|
> * Nom et domaine de la machine !
|
||||||
* IPC !
|
> * IPC !
|
||||||
* Horloge ?
|
> * Horloge ?
|
||||||
|
|
||||||
|
|
||||||
## Made in Linux
|
## Made in Linux
|
||||||
@ -31,16 +31,20 @@ Isolation des processus (PID Namespace), interface réseau (Network
|
|||||||
Namespace), partitions montées (Mount Namespace), utilisateurs et
|
Namespace), partitions montées (Mount Namespace), utilisateurs et
|
||||||
groupes (User Namespace), nom de machine (UTS Namespace), IPC.
|
groupes (User Namespace), nom de machine (UTS Namespace), IPC.
|
||||||
|
|
||||||
|
`namespaces(7)`
|
||||||
|
|
||||||
#### CGroups
|
#### CGroups
|
||||||
|
|
||||||
Statistiques sur l'utilisation des ressources et limitation.
|
Statistiques sur l'utilisation des ressources et limitation.
|
||||||
|
|
||||||
http://kernel.org/doc/FIXME/cgroups.txt
|
https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt
|
||||||
|
|
||||||
#### Capabilities
|
#### Capabilities
|
||||||
|
|
||||||
Limitation de ce que `root` peut faire.
|
Limitation de ce que `root` peut faire.
|
||||||
|
|
||||||
|
`capabilities(7)`
|
||||||
|
|
||||||
|
|
||||||
## pour les nuls
|
## pour les nuls
|
||||||
|
|
||||||
@ -52,7 +56,7 @@ TODO screen C'est pas sorcier
|
|||||||
|
|
||||||
#### Système de fichiers
|
#### Système de fichiers
|
||||||
|
|
||||||
Sous-arbre de la racine
|
Sous-arbre de la racine.
|
||||||
|
|
||||||
* Union FileSystems
|
* Union FileSystems
|
||||||
* Thin provisioning
|
* Thin provisioning
|
||||||
|
@ -6,18 +6,5 @@
|
|||||||
%\setmonofont{fantasque-sans-mono}
|
%\setmonofont{fantasque-sans-mono}
|
||||||
\setmonofont{Inconsolata}
|
\setmonofont{Inconsolata}
|
||||||
\beamertemplatenavigationsymbolsempty
|
\beamertemplatenavigationsymbolsempty
|
||||||
\AtBeginSection{
|
\AtBeginSection{}
|
||||||
\let\insertsectionnumber\relax
|
|
||||||
\let\sectionname\relax
|
|
||||||
\frame{
|
|
||||||
\begingroup
|
|
||||||
\centering
|
|
||||||
{\usebeamerfont{section name}\usebeamercolor[fg]{section name}\sectionname~\insertsectionnumber}
|
|
||||||
\vskip1em\par
|
|
||||||
\begin{beamercolorbox}[sep=12pt,center]{part title}
|
|
||||||
\usebeamerfont{section title}\insertsection\par
|
|
||||||
\end{beamercolorbox}
|
|
||||||
\endgroup
|
|
||||||
}
|
|
||||||
}
|
|
||||||
\AtBeginSubsection{}
|
\AtBeginSubsection{}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Avant tout...
|
# Avant tout...
|
||||||
|
|
||||||
## John von Neuman
|
## John von Neumann
|
||||||
|
|
||||||
### Un personnage important
|
### Un personnage important
|
||||||
|
|
||||||
@ -8,6 +8,8 @@ TODO ici une photo
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### John von Neuman
|
#### John von Neumann
|
||||||
|
|
||||||
> Citation de lui sur le langage Assembleur
|
About assembly language:
|
||||||
|
|
||||||
|
> Why would you want more than machine language?
|
||||||
|
33
slides/os.md
33
slides/os.md
@ -1,4 +1,4 @@
|
|||||||
# Système d'exploitation
|
# Système d'exploitation vs. hyperviseur
|
||||||
|
|
||||||
## Est-ce bien nécessaire ...
|
## Est-ce bien nécessaire ...
|
||||||
|
|
||||||
@ -6,30 +6,35 @@
|
|||||||
|
|
||||||
TODO Logos de différents noyaux
|
TODO Logos de différents noyaux
|
||||||
|
|
||||||
. . .
|
|
||||||
|
|
||||||
Oui !
|
|
||||||
|
|
||||||
### ... le temps de boot ?
|
### ... le temps de boot ?
|
||||||
|
|
||||||
|
> * Initialisation du/des processeur(s) et de la mémoire ;
|
||||||
|
> * détection du matériel ;
|
||||||
|
> * préparation des interfaces pour l'userland ;
|
||||||
|
> * montage du système de fichiers racine ;
|
||||||
|
> * lancement de `/sbin/init`
|
||||||
|
|
||||||
. . .
|
. . .
|
||||||
|
|
||||||
* Initialisation du/des processeur(s) et de la mémoire ;
|
https://0xax.gitbooks.io/linux-insides/content/
|
||||||
* détection du matériel ;
|
|
||||||
* préparation des interfaces pour l'userland ;
|
|
||||||
* montage du système de fichiers racine ;
|
|
||||||
* lancement de `/sbin/init`
|
|
||||||
|
|
||||||
### ... le système de fichiers ?
|
### ... le système de fichiers ?
|
||||||
|
|
||||||
Eh oui !
|
Eh oui !
|
||||||
|
|
||||||
|
|
||||||
### ... d'isoler ?
|
### ... d'isoler ?
|
||||||
|
|
||||||
* Mutualisation des services
|
> * Limitation des ressources ;
|
||||||
|
> * partage du temps de calcul ;
|
||||||
TODO 2-3 mots accrocheurs
|
> * prévention des dénis de service :
|
||||||
|
> ```sh
|
||||||
|
> 42sh$ while true; do mkdir x; cd x; done
|
||||||
|
> ```
|
||||||
|
> * abstraction des ports ;
|
||||||
|
> * sécurité (root, exploit, ...).
|
||||||
|
|
||||||
## Les techniques d'isolation
|
## Les techniques d'isolation
|
||||||
|
|
||||||
@ -39,12 +44,14 @@ TODO 2-3 mots accrocheurs
|
|||||||
* **Sécurité :** douteuse ;
|
* **Sécurité :** douteuse ;
|
||||||
* **Coûts :** élevés.
|
* **Coûts :** élevés.
|
||||||
|
|
||||||
|
|
||||||
### Virtualisation et paravirtualisation
|
### Virtualisation et paravirtualisation
|
||||||
|
|
||||||
* **Difficulté :** débutant ;
|
* **Difficulté :** débutant ;
|
||||||
* **Sécurité :** OK ;
|
* **Sécurité :** OK ;
|
||||||
* **Coûts :** réduits.
|
* **Coûts :** réduits.
|
||||||
|
|
||||||
|
|
||||||
### Mais ...
|
### Mais ...
|
||||||
|
|
||||||
TODO clipart lumière
|
TODO clipart lumière
|
||||||
|
@ -8,31 +8,37 @@ Bonjour
|
|||||||
Hésitez pas à poser des questions
|
Hésitez pas à poser des questions
|
||||||
### 2
|
### 2
|
||||||
Commençons par parler de quelqu'un d'important...
|
Commençons par parler de quelqu'un d'important...
|
||||||
|
Pourquoi aurait-on besoin de gaspiller du temps de calcul scientifique si précieux pour générer du code binaire ?
|
||||||
|
- 1 machine = 1 programme => perte de temps de calcul pendant les I/O
|
||||||
|
=> Ordonnanceur rudimentaires : partager le temps de calcul entre les bloquages d'I/O
|
||||||
|
=> problèmes : ex : partage de l'espace d'adressage (=> MMU)
|
||||||
### 3
|
### 3
|
||||||
Test
|
- Gestion de la concurrence d'accès au matériel
|
||||||
### 4
|
|
||||||
- Gestion de l'accès au matériel
|
|
||||||
- Répartition du temps CPU entre les tâches
|
- Répartition du temps CPU entre les tâches
|
||||||
- Gestion du contexte des tâches (mémoire, registres, context switch, ...)
|
- Gestion du contexte des tâches (mémoire, registres, context switch, ...)
|
||||||
|
- Gestion des erreurs (division par 0)
|
||||||
- Diverses couches d'abstraction :
|
- Diverses couches d'abstraction :
|
||||||
- matériel : clavier/souris/...
|
- matériel : clavier/souris/...
|
||||||
- FS
|
- FS
|
||||||
### 5
|
### 4
|
||||||
- bootloader: charge le noyau en mem et jump
|
- bootloader: charge le noyau en mem et jump
|
||||||
- détection du matériel
|
- détection du matériel
|
||||||
- mise en place des interfaces : réseau, FS, nom de machine, utilisateurs, droits, permissions, ...
|
- mise en place des interfaces : réseau, FS, nom de machine, utilisateurs, droits, permissions, ...
|
||||||
- montage de la racine
|
- montage de la racine
|
||||||
- /sbin/init
|
- /sbin/init
|
||||||
### 6
|
### 5
|
||||||
Le noyau seul ne fait rien, il lui faut des programmes et des données.
|
Le noyau seul ne fait rien, il lui faut des programmes et des données.
|
||||||
|
|
||||||
Tous les programmes n'ont pas besoin de toutes les données.
|
Tous les programmes n'ont pas besoin de toutes les données.
|
||||||
Mais certains programmes échangent des données entre-eux (IPC, socket, ...)
|
Mais certains programmes échangent des données entre-eux (IPC, socket, ...)
|
||||||
Et s'il y a une vulnérabilité ?
|
Et s'il y a une vulnérabilité ?
|
||||||
|
pourquoi partager les données de services qui ne communiquent pas entre eux ?
|
||||||
### 7
|
### 7
|
||||||
- grosse machine coûte moins cher
|
- limitation quantité de RAM, BP réseau
|
||||||
- pourquoi partager les données de services qui ne communiquent pas entre eux ?
|
- allocation du temps de calcul par groupe (1 serveur peut avoir plusieurs process qui sont schedulés indépendamment = triche !)
|
||||||
=> serveur DNS, mails, web, de notation de l'école
|
- DOS locaux => machine à genoux
|
||||||
|
- plusieurs serveur web/ssh
|
||||||
|
- sécu : droits root, exploit, ...
|
||||||
### 8
|
### 8
|
||||||
DEMO chroot
|
DEMO chroot
|
||||||
- complexe à mettre en œuvre
|
- complexe à mettre en œuvre
|
||||||
@ -62,6 +68,7 @@ On appel ça des conteneurs !
|
|||||||
Que doit-on implémenter concrétement ?
|
Que doit-on implémenter concrétement ?
|
||||||
- matos : non, le noyau l'abstrait déjà (ex webcam/group video) mais limitation des ressources
|
- matos : non, le noyau l'abstrait déjà (ex webcam/group video) mais limitation des ressources
|
||||||
- processus, interfaces réseau et liste de partitions montées pour éviter l'espionnage et l'accès à des données sensibles
|
- processus, interfaces réseau et liste de partitions montées pour éviter l'espionnage et l'accès à des données sensibles
|
||||||
|
- réseau :
|
||||||
- users, groups, nom de machine et IPC : pas de raison qu'ils soient partagés
|
- users, groups, nom de machine et IPC : pas de raison qu'ils soient partagés
|
||||||
- horloge : non, la timezone peut changer
|
- horloge : non, la timezone peut changer
|
||||||
### 12
|
### 12
|
||||||
@ -78,7 +85,7 @@ DEMO capabilities
|
|||||||
### 13
|
### 13
|
||||||
- crée listes distinctes ou ajoute des propriétés
|
- crée listes distinctes ou ajoute des propriétés
|
||||||
- FS : sous-arbre de la racine comme chroot + AUFS/OverlayFS (cache), LVM (thin provisioning)
|
- FS : sous-arbre de la racine comme chroot + AUFS/OverlayFS (cache), LVM (thin provisioning)
|
||||||
- Processus : premier lancé PID 1
|
- Processus : premier lancé PID 1 (2 PID : in/out NS)
|
||||||
### 14
|
### 14
|
||||||
- Réseau : pas évident :
|
- Réseau : pas évident :
|
||||||
* 1 carte réseau = 1 seule IP
|
* 1 carte réseau = 1 seule IP
|
||||||
|
Loading…
x
Reference in New Issue
Block a user