This commit is contained in:
nemunaire 2015-09-28 22:31:53 +02:00
parent b3d5f320ce
commit e2c72c1261
7 changed files with 93 additions and 50 deletions

View File

@ -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
TEMPLATE = CambridgeUS
COLORTHEME = beaver

36
slides/apps.md Normal file
View 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

View File

@ -4,14 +4,14 @@
### Que doit-on isoler ?
* Matériel ?
* Processus ?
* Réseau ?
* Système de fichiers ?
* Utilisateurs et groupes ?
* Nom et domaine de la machine !
* IPC !
* Horloge ?
> * Matériel ?
> * Processus ?
> * Réseau ?
> * Système de fichiers ?
> * Utilisateurs et groupes ?
> * Nom et domaine de la machine !
> * IPC !
> * Horloge ?
## Made in Linux
@ -31,16 +31,20 @@ Isolation des processus (PID Namespace), interface réseau (Network
Namespace), partitions montées (Mount Namespace), utilisateurs et
groupes (User Namespace), nom de machine (UTS Namespace), IPC.
`namespaces(7)`
#### CGroups
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
Limitation de ce que `root` peut faire.
`capabilities(7)`
## pour les nuls
@ -52,7 +56,7 @@ TODO screen C'est pas sorcier
#### Système de fichiers
Sous-arbre de la racine
Sous-arbre de la racine.
* Union FileSystems
* Thin provisioning

View File

@ -6,18 +6,5 @@
%\setmonofont{fantasque-sans-mono}
\setmonofont{Inconsolata}
\beamertemplatenavigationsymbolsempty
\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
}
}
\AtBeginSection{}
\AtBeginSubsection{}

View File

@ -1,6 +1,6 @@
# Avant tout...
## John von Neuman
## John von Neumann
### 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?

View File

@ -1,4 +1,4 @@
# Système d'exploitation
# Système d'exploitation vs. hyperviseur
## Est-ce bien nécessaire ...
@ -6,30 +6,35 @@
TODO Logos de différents noyaux
. . .
Oui !
### ... 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 ;
* détection du matériel ;
* préparation des interfaces pour l'userland ;
* montage du système de fichiers racine ;
* lancement de `/sbin/init`
https://0xax.gitbooks.io/linux-insides/content/
### ... le système de fichiers ?
Eh oui !
### ... d'isoler ?
* Mutualisation des services
TODO 2-3 mots accrocheurs
> * Limitation des ressources ;
> * partage du temps de calcul ;
> * 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
@ -39,12 +44,14 @@ TODO 2-3 mots accrocheurs
* **Sécurité :** douteuse ;
* **Coûts :** élevés.
### Virtualisation et paravirtualisation
* **Difficulté :** débutant ;
* **Sécurité :** OK ;
* **Coûts :** réduits.
### Mais ...
TODO clipart lumière

View File

@ -8,31 +8,37 @@ Bonjour
Hésitez pas à poser des questions
### 2
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
Test
### 4
- Gestion de l'accès au matériel
- Gestion de la concurrence d'accès au matériel
- Répartition du temps CPU entre les tâches
- Gestion du contexte des tâches (mémoire, registres, context switch, ...)
- Gestion des erreurs (division par 0)
- Diverses couches d'abstraction :
- matériel : clavier/souris/...
- FS
### 5
### 4
- bootloader: charge le noyau en mem et jump
- détection du matériel
- mise en place des interfaces : réseau, FS, nom de machine, utilisateurs, droits, permissions, ...
- montage de la racine
- /sbin/init
### 6
### 5
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.
Mais certains programmes échangent des données entre-eux (IPC, socket, ...)
Et s'il y a une vulnérabilité ?
pourquoi partager les données de services qui ne communiquent pas entre eux ?
### 7
- grosse machine coûte moins cher
- pourquoi partager les données de services qui ne communiquent pas entre eux ?
=> serveur DNS, mails, web, de notation de l'école
- limitation quantité de RAM, BP réseau
- allocation du temps de calcul par groupe (1 serveur peut avoir plusieurs process qui sont schedulés indépendamment = triche !)
- DOS locaux => machine à genoux
- plusieurs serveur web/ssh
- sécu : droits root, exploit, ...
### 8
DEMO chroot
- complexe à mettre en œuvre
@ -62,6 +68,7 @@ On appel ça des conteneurs !
Que doit-on implémenter concrétement ?
- 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
- réseau :
- users, groups, nom de machine et IPC : pas de raison qu'ils soient partagés
- horloge : non, la timezone peut changer
### 12
@ -78,7 +85,7 @@ DEMO capabilities
### 13
- crée listes distinctes ou ajoute des propriétés
- 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
- Réseau : pas évident :
* 1 carte réseau = 1 seule IP