Update 2018

This commit is contained in:
nemunaire 2018-10-22 16:49:38 +02:00
parent 3c2e528390
commit b2b5c1c0eb
12 changed files with 194 additions and 182 deletions

View File

@ -1,9 +1,7 @@
SOURCES = tutorial.md installation.md chroot.md pseudofs.md capabilities.md cgroups.md oom.md project-intro.md project-body.md project-rendu.md SOURCES = tutorial.md installation.md chroot.md pseudofs.md mount.md capabilities.md cgroups.md oom.md project-intro.md project-body.md project-rendu.md
PANDOCOPTS = --latex-engine=xelatex \ PANDOCOPTS = --pdf-engine=xelatex \
--standalone \ --standalone \
--normalize \
--number-sections \ --number-sections \
--smart \
-M lang=fr-FR \ -M lang=fr-FR \
-M fontsize=12pt \ -M fontsize=12pt \
-M papersize=a4paper \ -M papersize=a4paper \
@ -12,7 +10,6 @@ PANDOCOPTS = --latex-engine=xelatex \
-M sansfont="Linux Biolinum O" \ -M sansfont="Linux Biolinum O" \
-M colorlinks=true \ -M colorlinks=true \
-M linkcolor="black" \ -M linkcolor="black" \
-M urlcolor="[rgb]{0.2,0.6,0.4}" \
--include-in-header=../header.tex --include-in-header=../header.tex

View File

@ -79,11 +79,11 @@ Par exemple, on peut définir un attribut sur un fichier comme cela :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
42sh$ echo 'Hello World!' > toto 42sh$ echo 'Hello World!' > toto
42sh$ setfattr -n user.foo -v bar toto 42sh$ setfattr -n user.foo -v bar toto
42sh$ getfattr -d toto 42sh$ getfattr -d toto
# file: toto # file: toto
user.foo="bar" user.foo="bar"
``` ```
</div> </div>
@ -91,12 +91,12 @@ Encore plus fort, vous pouvez utiliser les ACL POSIX :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
42sh$ sudo chown root:root toto && sudo chmod o-r toto 42sh$ sudo chown root:root toto && sudo chmod o-r toto
42sh$ cat toto 42sh$ cat toto
cat: toto: Permission denied cat: toto: Permission denied
42sh$ sudo setfattr -m u:$USER:r toto 42sh$ sudo setfattr -m u:$USER:r toto
42sh$ cat toto 42sh$ cat toto
Hello World! Hello World!
``` ```
</div> </div>
@ -107,9 +107,9 @@ Vous pouvez voir ces attributs avec la commande :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
42sh$ getfattr -d -m "^system" toto 42sh$ getfattr -d -m "^system" toto
# file: toto # file: toto
system.posix_acl_access=0sgAAEAD/////AgAEOgDAEAA/////xAABAD////8= system.posix_acl_access=0sgAAEAD/////AgAEOgDAEAA/////xAABAD////8=
``` ```
</div> </div>
@ -127,9 +127,9 @@ Si votre distribution profite de ces attributs étendus, vous devriez obtenir :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
42sh$ getfattr -d -m "^security" $(which ping) 42sh$ getfattr -d -m "^security" $(which ping)
# file: bin/ping # file: bin/ping
security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA= security.capability=0sAQAAAgAgAAAAAAAAAAAAAAAAAAA=
``` ```
</div> </div>
@ -137,8 +137,8 @@ Ou, dans sa version plus lisible :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
42sh$ getcap $(which ping) 42sh$ getcap $(which ping)
/bin/ping = cap_net_raw+ep /bin/ping = cap_net_raw+ep
``` ```
</div> </div>
@ -150,31 +150,31 @@ d'un processus :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
42sh$ ./view_caps 1 42sh$ ./view_caps 1
cap_user_header_t cap_user_header_t
----------------- -----------------
Version: 20080522 Version: 20080522
PID: 1 PID: 1
cap_user_data_t cap_user_data_t
--------------- ---------------
effective: 0x3fffffffff effective: 0x3fffffffff
CAP_AUDIT_CONTROL CAP_AUDIT_CONTROL
CAP_AUDIT_READ CAP_AUDIT_READ
[...] [...]
CAP_SYS_TIME CAP_SYS_TIME
CAP_SYS_TTY_CONFIG CAP_SYS_TTY_CONFIG
CAP_SYSLOG CAP_SYSLOG
CAP_WAKE_ALARM CAP_WAKE_ALARM
permitted: 0x3fffffffff permitted: 0x3fffffffff
CAP_AUDIT_CONTROL CAP_AUDIT_CONTROL
CAP_AUDIT_READ CAP_AUDIT_READ
[...] [...]
CAP_SYS_TIME CAP_SYS_TIME
CAP_SYS_TTY_CONFIG CAP_SYS_TTY_CONFIG
CAP_SYSLOG CAP_SYSLOG
CAP_WAKE_ALARM CAP_WAKE_ALARM
inheritable: 0x0 inheritable: 0x0
``` ```
</div> </div>

View File

@ -24,8 +24,8 @@ procédure suivante :
<div lang="en-US"> <div lang="en-US">
``` ```
mkdir /sys/fs/cgroup/freezer/ mkdir /sys/fs/cgroup/freezer/
mount -t cgroup -o freezer none /sys/fs/cgroup/freezer/ mount -t cgroup -o freezer none /sys/fs/cgroup/freezer/
``` ```
</div> </div>
@ -43,8 +43,8 @@ par exemple la racine :
<div lang="en-US"> <div lang="en-US">
``` ```
mkdir /sys/fs/cgroup/freezer/virli/ mkdir /sys/fs/cgroup/freezer/virli/
ls /sys/fs/cgroup/freezer/virli/ ls /sys/fs/cgroup/freezer/virli/
``` ```
</div> </div>
@ -65,7 +65,7 @@ du groupe. Pour ajouter une tâche à ce groupe, cela se passe de cette manière
<div lang="en-US"> <div lang="en-US">
``` ```
echo $PID > /sys/fs/cgroup/freezer/virli/tasks echo $PID > /sys/fs/cgroup/freezer/virli/tasks
``` ```
</div> </div>
@ -103,7 +103,7 @@ l'exécution s'arrêter. Si vous manquez d'inspiration, utilisez :
<div lang="en-US"> <div lang="en-US">
``` ```
for i in $(seq 9999); do echo -n $i; sleep .1; echo -n " - "; sleep .1; done for i in $(seq 9999); do echo -n $i; sleep .1; echo -n " - "; sleep .1; done
``` ```
</div> </div>
@ -112,7 +112,7 @@ calcul à notre shell et ses fils :
<div lang="en-US"> <div lang="en-US">
``` ```
echo FROZEN > /sys/fs/cgroup/freezer/virli/freezer.state echo FROZEN > /sys/fs/cgroup/freezer/virli/freezer.state
``` ```
</div> </div>
@ -121,7 +121,7 @@ l'exécution :
<div lang="en-US"> <div lang="en-US">
``` ```
echo THAWED > /sys/fs/cgroup/freezer/virli/freezer.state echo THAWED > /sys/fs/cgroup/freezer/virli/freezer.state
``` ```
</div> </div>
@ -139,7 +139,7 @@ l'installer sur notre machine) :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
docker container run --name mytsdb -d -p 8086:8086 influxdb docker container run --name mytsdb -d -p 8086:8086 influxdb
``` ```
</div> </div>
@ -148,10 +148,10 @@ métriques. Voici comment on s'était débrouillé dans un précédent TP :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
docker container exec -i mytsdb <<EOF docker container exec -i mytsdb <<EOF
CREATE DATABASE metrics; CREATE DATABASE metrics;
SHOW DATABASES; SHOW DATABASES;
EOF EOF
``` ```
</div> </div>
@ -184,8 +184,8 @@ Maintenant, envoyons nos données vers la base
<div lang="en-US"> <div lang="en-US">
``` ```
curl -i -XPOST 'http://localhost:8086/write?db=metrics' --data-binary \ curl -i -XPOST 'http://localhost:8086/write?db=metrics' --data-binary \
"$my_cgroup_name memory.usage_in_bytes=$(cat .../my_cgroup_name/memory.usage_in_bytes)" "$my_cgroup_name memory.usage_in_bytes=$(cat .../my_cgroup_name/memory.usage_in_bytes)"
``` ```
</div> </div>
@ -194,7 +194,7 @@ requête suivante dans notre client `influx` :
<div lang="en-US"> <div lang="en-US">
```sql ```sql
SELECT * from "$my_cgroup_name"; SELECT * from "$my_cgroup_name";
``` ```
</div> </div>
@ -226,8 +226,8 @@ particuliers.
<div lang="en-US"> <div lang="en-US">
``` ```
42sh$ sudo ./monitor_init my_cgroup_name 42sh$ sudo ./monitor_init my_cgroup_name
42sh$ ./monitor my_cgroup_name memhog 500 42sh$ ./monitor my_cgroup_name memhog 500
``` ```
</div> </div>
@ -243,13 +243,13 @@ correspondant à une valeur limite, comme par exemple
processus va pouvoir allouer au maximum : processus va pouvoir allouer au maximum :
```shell ```shell
42sh$ cat /sys/fs/cgroup/memory/virli/memory.max_usage_in_bytes 42sh$ cat /sys/fs/cgroup/memory/virli/memory.max_usage_in_bytes
0 0
# 0 = Aucune limite # 0 = Aucune limite
42sh$ echo 4M > /sys/fs/cgroup/memory/virli/memory.max_usage_in_bytes 42sh$ echo 4M > /sys/fs/cgroup/memory/virli/memory.max_usage_in_bytes
# Maintenant, la limite est à 4MB, vérifions... # Maintenant, la limite est à 4MB, vérifions...
42sh$ cat /sys/fs/cgroup/memory/virli/memory.max_usage_in_bytes 42sh$ cat /sys/fs/cgroup/memory/virli/memory.max_usage_in_bytes
4194304 4194304
``` ```
Chaque *cgroup*s défini de nombreux indicateurs et possède de nombreux Chaque *cgroup*s défini de nombreux indicateurs et possède de nombreux

View File

@ -16,7 +16,7 @@ commencer par créer le dossier de notre nouvelle racine :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
mkdir newroot mkdir newroot
``` ```
</div> </div>
@ -30,8 +30,8 @@ première isolation :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
cp $(which busybox) newroot/ cp $(which busybox) newroot/
chroot newroot /busybox ash chroot newroot /busybox ash
``` ```
</div> </div>
@ -40,9 +40,9 @@ Jusque là ... ça fonctionne, rien de surprenant ! Mais qu'en est-il pour
<div lang="en-US"> <div lang="en-US">
```shell ```shell
42sh$ cp $(which bash) newroot/ 42sh$ cp $(which bash) newroot/
42sh# chroot newroot /bash 42sh# chroot newroot /bash
chroot: failed to run command bash: No such file or directory chroot: failed to run command bash: No such file or directory
``` ```
</div> </div>
@ -58,7 +58,7 @@ l'utilisateur lors de l'installation) le système de base.
<div lang="en-US"> <div lang="en-US">
```shell ```shell
debootstrap jessie newroot/ http://httpredir.debian.org/debian/ debootstrap jessie newroot/ http://httpredir.debian.org/debian/
``` ```
</div> </div>
@ -67,13 +67,13 @@ debootstrap jessie newroot/ http://httpredir.debian.org/debian/
### *stage3* ### *stage3*
Les distributions « à l'ancienne » proposent encore de télécharger leur système Les distributions *à l'ancienne* proposent encore de télécharger leur système
de base sous forme de tarball : de base sous forme de tarball :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
wget ftp://gentoo.mirrors.ovh.net/gentoo-distfiles/releases/amd64/autobuilds/20160929/stage3-amd64-20160929.tar.bz2 wget http://gentoo.mirrors.ovh.net/gentoo-distfiles/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20181021T214502Z.tar.xz
tar xpf stage3-amd64-*.tar.bz2 -C newroot/ tar xpf stage3-amd64-*.tar.xz -C newroot/
``` ```
</div> </div>
@ -87,9 +87,9 @@ environnement qui tient dans 300 MB.
<div lang="en-US"> <div lang="en-US">
```shell ```shell
make escape make escape
echo bar > ../foo echo bar > ../foo
chroot . chroot .
``` ```
</div> </div>
@ -97,7 +97,7 @@ Dans le nouvel environnement, vous ne devriez pas pouvoir faire :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
cat ../foo cat ../foo
``` ```
</div> </div>
@ -105,7 +105,7 @@ Mais une fois votre programme `escape` exécuté, vous devriez pouvoir !
<div lang="en-US"> <div lang="en-US">
```shell ```shell
./escape ./escape
cat /path/to/foo cat /path/to/foo
``` ```
</div> </div>

View File

@ -46,7 +46,7 @@ Dans les sources, on affiche la liste des options avec la commande :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
make menuconfig make menuconfig
``` ```
</div> </div>

View File

@ -8,8 +8,8 @@ Des particularités de `mount` {#mount}
Au premier abord, les points de montage dans l'arborescence d'un système de Au premier abord, les points de montage dans l'arborescence d'un système de
fichiers n'ont pas l'air d'être remplis de notions complexes : un répertoire fichiers n'ont pas l'air d'être remplis de notions complexes : un répertoire
peut être le point d'entrée d'un montage vers la partition d'un disque peut être le point d'entrée d'un montage vers la partition d'un disque
physique... ou d'une partition virtuelle, comme nous l'avons vu au TP physique... ou d'une partition virtuelle, comme nous l'avons vu dans la partie
précédent. précédente.
Mais avez-vous déjà essayé de monter la même partition d'un disque physique à Mais avez-vous déjà essayé de monter la même partition d'un disque physique à
deux endroits différents de votre arborescence ? deux endroits différents de votre arborescence ?
@ -64,7 +64,7 @@ utilise le *bind mount* :
<div lang="en-US"> <div lang="en-US">
``` ```
mount --bind olddir newdir mount --bind olddir newdir
``` ```
</div> </div>
@ -82,10 +82,10 @@ commandes suivantes :
<div lang="en-US"> <div lang="en-US">
``` ```
cd newroot cd newroot
mount --bind /dev dev mount --bind /dev dev
mount --bind /proc proc mount --bind /proc proc
mount --bind /sys sys mount --bind /sys sys
``` ```
</div> </div>
@ -105,10 +105,10 @@ correct de lancer :
<div lang="en-US"> <div lang="en-US">
``` ```
cd newroot cd newroot
mount --rbind /dev dev mount --rbind /dev dev
mount -t proc none proc mount -t proc none proc
mount --rbind /sys sys mount --rbind /sys sys
``` ```
</div> </div>
@ -129,14 +129,14 @@ systèmes de fichiers de ce partage (on parle de *peer group*).
<div lang="en-US"> <div lang="en-US">
```shell ```shell
# Création de nos répertoires de travail # Création de nos répertoires de travail
mkdir /mnt/test-shared mkdir /mnt/test-shared
# On s'assure que le dossier que l'on va utiliser pour nos tests utilise bien la politique shared # On s'assure que le dossier que l'on va utiliser pour nos tests utilise bien la politique shared
mount --make-shared /tmp mount --make-shared /tmp
# Duplication de l'accroche, sans s'occuper des éventuels sous-accroches # Duplication de l'accroche, sans s'occuper des éventuels sous-accroches
mount --bind /tmp /mnt/test-shared mount --bind /tmp /mnt/test-shared
``` ```
</div> </div>
@ -145,8 +145,8 @@ Si l'on attache un nouveau point de montage dans `/tmp` ou dans
<div lang="en-US"> <div lang="en-US">
```shell ```shell
mkdir /mnt/test-shared/toto mkdir /mnt/test-shared/toto
mount -t tmpfs none /mnt/test-shared/toto mount -t tmpfs none /mnt/test-shared/toto
``` ```
</div> </div>
@ -162,14 +162,14 @@ esclave ne propagera pas ses nouveaux points de montage à son *maître*.
<div lang="en-US"> <div lang="en-US">
```shell ```shell
# Suite de l'exemple précédent # Suite de l'exemple précédent
cd /mnt/test-slave cd /mnt/test-slave
# Duplication de l'accroche, sans s'occuper des éventuels sous-accroches # Duplication de l'accroche, sans s'occuper des éventuels sous-accroches
mount --bind /mnt/test-shared /mnt/test-slave mount --bind /mnt/test-shared /mnt/test-slave
# On rend notre dossier esclave # On rend notre dossier esclave
mount --make-slave /mnt/test-slave mount --make-slave /mnt/test-slave
``` ```
</div> </div>
@ -177,8 +177,8 @@ Si l'on effectue un montage dans `/mnt/test-shared` :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
mkdir /mnt/test-shared/foo mkdir /mnt/test-shared/foo
mount -t tmpfs none /mnt/test-shared/foo mount -t tmpfs none /mnt/test-shared/foo
``` ```
</div> </div>
@ -186,8 +186,8 @@ Le point de montage apparaît bien sous `/mnt/test-slave/foo`. Par contre :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
mkdir /mnt/test-slave/bar mkdir /mnt/test-slave/bar
mount -t tmpfs none /mnt/test-slave/bar mount -t tmpfs none /mnt/test-slave/bar
``` ```
</div> </div>
@ -204,7 +204,7 @@ propagation, on utilise l'option suivante :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
mount --make-private mountpoint mount --make-private mountpoint
``` ```
</div> </div>
@ -215,7 +215,7 @@ Ce mode interdira tout tentative d'attache à un autre endroit.
<div lang="en-US"> <div lang="en-US">
```shell ```shell
mount --make-unbindable /mnt/test-slave mount --make-unbindable /mnt/test-slave
``` ```
</div> </div>
@ -223,8 +223,8 @@ Il ne sera pas possible de faire :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
mkdir /mnt/test-unbindable mkdir /mnt/test-unbindable
mount --bind /mnt/test-slave /mnt/test-unbindable mount --bind /mnt/test-slave /mnt/test-unbindable
``` ```
</div> </div>
@ -237,10 +237,10 @@ contenus dans leur sous-arbre :
<div lang="en-US"> <div lang="en-US">
``` ```
mount --make-rshared mountpoint mount --make-rshared mountpoint
mount --make-rslave mountpoint mount --make-rslave mountpoint
mount --make-rprivate mountpoint mount --make-rprivate mountpoint
mount --make-runbindable mountpoint mount --make-runbindable mountpoint
``` ```
</div> </div>
@ -270,7 +270,7 @@ On utilise pour cela l'option `--move` de `mount(8)` :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
mount --move olddir newdir mount --move olddir newdir
``` ```
</div> </div>
@ -278,13 +278,13 @@ Par exemple :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
mount --move /dev /newroot/dev mount --move /dev /newroot/dev
``` ```
</div> </div>
Il est courant de faire appel à cette option lorsque l'on souhaite changer la Il est courant de faire appel à cette option lorsque l'on souhaite changer la
racine de notre système de fichiers: par exemple pour passer de l'*initramfs* au racine de notre système de fichiers : par exemple pour passer de l'*initramfs*
système démarré, de notre système hôte au système d'un conteneur, ... au système démarré, de notre système hôte au système d'un conteneur, ...
## Aller plus loin ## Aller plus loin

View File

@ -67,5 +67,5 @@ Grâce à cette notification, il est possible de figer le processus pour
l'envoyer sur une autre machine. Et ainsi libérer la mémoire avant que l'OOM l'envoyer sur une autre machine. Et ainsi libérer la mémoire avant que l'OOM
killer ne passe. killer ne passe.
Jetez un œil à [cet article parru LVM](https://lwn.net/Articles/590960/) à ce Jetez un œil à [cet article parru sur LVM](https://lwn.net/Articles/590960/) à
sujet. ce sujet.

View File

@ -1 +1 @@
../../subject/project-part1.md ../../subject/2/project-part1.md

View File

@ -24,11 +24,11 @@ pour chaque exercice) :
<div lang="en-US"> <div lang="en-US">
``` ```
login_x-TP3/escape.c login_x-TP3/escape.c
login_x-TP3/procinfo.sh login_x-TP3/procinfo.sh
login_x-TP3/rev_kdb_leds.sh login_x-TP3/rev_kdb_leds.sh
login_x-TP3/view_caps.c login_x-TP3/view_caps.c
login_x-TP3/monitor.sh login_x-TP3/monitor.sh
login_x-TP3/monitor_init.sh login_x-TP3/monitor_init.sh
``` ```
</div> </div>

View File

@ -16,8 +16,8 @@ montage :
<div lang="en-US"> <div lang="en-US">
``` ```
/dev/sda1 on / type ext4 (rw,relatime,data=ordered) /dev/sda1 on / type ext4 (rw,relatime,data=ordered)
/dev/sda3 on /home type ext4 (rw,relatime,data=ordered) /dev/sda3 on /home type ext4 (rw,relatime,data=ordered)
``` ```
</div> </div>
@ -62,14 +62,14 @@ exemple, pour modifier les paramètres du noyau, on passe par le fichier
La consultation d'un élément se fait généralement à l'aide d'un simple `cat` : La consultation d'un élément se fait généralement à l'aide d'un simple `cat` :
```shell ```shell
42sh$ cat /sys/power/state 42sh$ cat /sys/power/state
freeze mem freeze mem
``` ```
La modification d'un élément se fait avec `echo`, comme ceci : La modification d'un élément se fait avec `echo`, comme ceci :
```shell ```shell
echo mem > /sys/power/state 42sh# echo mem > /sys/power/state
``` ```
Vous devriez constater l'effet de cette commande sans plus attendre ! Vous devriez constater l'effet de cette commande sans plus attendre !
@ -84,39 +84,54 @@ afficher des informations sur un processus donné :
<div lang="en-US"> <div lang="en-US">
``` ```
42sh$ ./procinfo $$ 42sh$ ./procinfo $$
PID: 4242 PID: 4242
Path: /bin/bash Path: /bin/bash
Command line: bash Command line: bash
Working directory: /home/nemunaire/virli/ Working directory: /home/nemunaire/virli/
Root: / Root: /
State: S (sleeping) State: S (sleeping)
Threads: 1 Threads: 1
CGroups CGroups
======= =======
12:pids:/ 12:pids:/
11:net_prio:/ 11:net_prio:/
10:perf_event:/ 10:perf_event:/
9:net_cls:/ 9:net_cls:/
8:freezer:/ 8:freezer:/
7:devices:/ 7:devices:/
6:memory:/ 6:memory:/
5:blkio:/ 5:blkio:/
4:cpuacct:/ 4:cpuacct:/
3:cpu:/ 3:cpu:/
2:cpuset:/ 2:cpuset:/
1:name=openrc:/ 1:name=openrc:/
Namespaces Namespaces
========== ==========
cgroup:[4026531835] cgroup:[4026531835]
ipc:[4026531839] ipc:[4026531839]
mnt:[4026531840] mnt:[4026531840]
net:[4026531969] net:[4026531969]
pid:[4026531836] pid:[4026531836]
user:[4026531837] user:[4026531837]
uts:[4026531838] uts:[4026531838]
```
</div>
### `batinfo.sh`
Explorons le pseudo système de fichiers `/sys` pour écrire un script
qui va nous renvoyer des statistiques sur votre batterie.
Voici un exemple d'utilisation :
<div lang="en-US">
```shell
42sh$ ./rev_kdb_leds.sh input20
``` ```
</div> </div>
@ -142,6 +157,6 @@ Voici un exemple d'utilisation :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
42sh$ ./rev_kdb_leds.sh input20 42sh$ ./rev_kdb_leds.sh input20
``` ```
</div> </div>

View File

@ -1,16 +1,16 @@
--- ---
title: Virtualisation légère -- Linux Internals partie 1 title: Virtualisation légère -- TP n^o^ 3
subtitle: Travaux pratiques subtitle: Linux Internals partie 1
author: Pierre-Olivier *Nemunaire* Mercier author: Pierre-Olivier *Nemunaire* Mercier
institute: EPITA institute: EPITA
date: Jeudi 26 octobre 2017 date: Mercredi 24 octobre 2018
... ...
Ce premier TP consacré aux Linux Internals va nous permettre d'appréhender les Ce premier TP consacré aux Linux Internals va nous permettre d'appréhender les
notions de pseudos systèmes de fichiers, de cgroups ainsi que de capabilities. notions de pseudos systèmes de fichiers, de cgroups ainsi que de capabilities.
Certains éléments de ce TP sont à rendre à <virli@nemunai.re> au plus tard le Certains éléments de ce TP sont à rendre à <virli@nemunai.re> au plus tard le
jeudi 2 novembre 2017 à 8 h 42. Consultez la dernière section de chaque partie mercredi 7 novembre 2018 à 12 h 42. Consultez la dernière section de chaque partie
pour plus d'information sur les éléments à rendre. pour plus d'information sur les éléments à rendre.
En tant que personnes sensibilisées à la sécurité des échanges électroniques, En tant que personnes sensibilisées à la sécurité des échanges électroniques,

View File

@ -1,5 +1,5 @@
SOURCES_TUTO = tutorial.md setup.md cmpns.md docker-exec.md mountns.md rendu.md SOURCES_TUTO = tutorial.md setup.md cmpns.md docker-exec.md mountns.md rendu.md
SOURCES_LESSON = lesson.md mount.md namespaces.md networkns.md pidns.md userns.md SOURCES_LESSON = lesson.md namespaces.md networkns.md pidns.md userns.md
PANDOCOPTS = --latex-engine=xelatex \ PANDOCOPTS = --latex-engine=xelatex \
--standalone \ --standalone \