Fix orthograf and grammar thanks to grammalecte

This commit is contained in:
nemunaire 2022-05-12 02:46:31 +02:00
parent 3d8dd24b78
commit aa925795d1
46 changed files with 121 additions and 121 deletions

View file

@ -6,7 +6,7 @@ Utiliser les *namespace*s
### S'isoler dans un nouveau *namespace*
Si l'on voit l'isolation procurée par les *namespace*s en parallèle avec les
machines virtuelle, on peut se dire qu'il suffit d'exécuter un appel système
machines virtuelles, on peut se dire qu'il suffit d'exécuter un appel système
pour arriver dans un conteneur bien isolé. Cependant, le choix fait par les
développeurs de Linux a été de laisser le choix des espaces de noms dont on veut
se dissocier.

View file

@ -3,7 +3,7 @@
Le noyau tient à jour un compteur de références pour chaque *namespace*. Dès
qu'une référence tombe à 0, la structure de l'espace de noms est
automatiquement libérée, les points de montage sont démontés, les interfaces
réseaux sont réattribués à l'espace de noms initial, ...
réseaux sont réattribuées à l'espace de noms initial, ...
Ce compteur évolue selon plusieurs critères, et principalement selon le nombre
de processus qui l'utilisent. C'est-à-dire que, la plupart du temps, le

View file

@ -11,17 +11,17 @@ systèmes de fichiers.
## Les points de montage
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
physique... ou d'une partition virtuelle, comme nous l'avons vu précédemment.
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 ?
Si pour plein de raisons on pouvait se dire que cela ne devrait pas être
autorisé, ce problème s'avère être à la base de beaucoup de fonctionnalités
intéressantes. Le noyau va finalement décorréler les notions de montage,
d'accès et d'accroche dans l'arborescence : et par exemple, une partition ne
d'accès et d'accroche dans l'arborescence : et par exemple, une partition ne
sera plus forcément démontée après un appel à `umount(2)`, mais le sera
seulement lorsque cette partition n'aura plus d'accroches dans aucune
arborescence.
@ -64,7 +64,7 @@ TARGET SOURCE FSTYPE OPTIONS
## `bind` -- montage miroir
Lorsque l'on souhaite monter à un deuxième endroit (ou plus) une partition, on
utilise le *bind mount* :
utilise le *bind mount* :
<div lang="en-US">
```bash
@ -77,12 +77,12 @@ l'installe ou qu'on le répare via un *live CD*), il est nécessaire de duplique
certains points de montage, tels que `/dev`, `/proc` et `/sys`.
Sans monter ces partitions, vous ne serez pas en mesure d'utiliser le système
dans son intégralité : vous ne pourrez pas monter les partitions indiquées par
dans son intégralité : vous ne pourrez pas monter les partitions indiquées par
le `/etc/fstab`, vous ne pourrez pas utiliser `top` ou `ps`, `sysctl` ne pourra
pas accorder les paramètres du noyau, ...
Pour que tout cela fonctionne, nous aurons besoin, au préalable, d'exécuter les
commandes suivantes :
commandes suivantes :
<div lang="en-US">
```bash
@ -96,7 +96,7 @@ mount --bind /sys sys
En se `chroot`ant à nouveau dans cette nouvelle racine, tous nos outils
fonctionneront comme prévu.
Tous ? ... en fait non. Si l'on jette un œil à `findmnt(1)`, nous constatons
Tous ? ... en fait non. Si l'on jette un œil à `findmnt(1)`, nous constatons
par exemple que `/sys/fs/cgroup` dans notre nouvelle racine est vide, alors que
celui de notre machine hôte contient bien les répertoires de nos *cgroups*.
@ -105,7 +105,7 @@ partie de celui-ci) à un autre endroit, sans se préoccuper des points de
montages sous-jacents. Pour effectuer cette action récursivement, et donc
monter au nouvel emplacement le système de fichier ainsi que tous les points
d'accroche qu'il contient, il faut utiliser `--rbind`. Il serait donc plus
correct de lancer :
correct de lancer :
<div lang="en-US">
```bash
@ -119,7 +119,7 @@ mount --rbind /sys sys
## Les types de propagation des points de montage
On distingue quatre variétés de propagation des montages pour un sous-arbre :
On distingue quatre variétés de propagation des montages pour un sous-arbre :
partagé, esclave, privé et non-attachable.
Chacun va agir sur la manière dont seront propagées les nouvelles accroches au
@ -130,7 +130,7 @@ sein d'un système de fichiers attaché à plusieurs endroits.
Dans un montage partagé, une nouvelle accroche sera propagée parmi tous les
systèmes de fichiers de ce partage (on parle de *peer group*). Voyons avec un
exemple :
exemple :
<div lang="en-US">
```bash
@ -146,7 +146,7 @@ mount --bind /tmp /mnt/test-shared
</div>
Si l'on attache un nouveau point de montage dans `/tmp` ou dans
`/mnt/test-shared`, avec la politique `shared`, l'accroche sera propagée :
`/mnt/test-shared`, avec la politique `shared`, l'accroche sera propagée :
<div lang="en-US">
```bash
@ -178,7 +178,7 @@ mount --make-slave /mnt/test-slave
```
</div>
Si l'on effectue un montage dans `/mnt/test-shared` :
Si l'on effectue un montage dans `/mnt/test-shared` :
<div lang="en-US">
```bash
@ -187,7 +187,7 @@ mount -t tmpfs none /mnt/test-shared/foo
```
</div>
Le point de montage apparaît bien sous `/mnt/test-slave/foo`. Par contre :
Le point de montage apparaît bien sous `/mnt/test-slave/foo`. Par contre :
<div lang="en-US">
```bash
@ -201,11 +201,11 @@ Le nouveau point de montage n'est pas propagé dans `/mnt/test-shared/bar`.
### privé -- *private mount*
C'est le mode le plus simple : ici les points de montage ne sont tout
C'est le mode le plus simple : ici les points de montage ne sont tout
simplement pas propagés.
Pour forcer un point d'accroche à ne pas propager et à ne pas recevoir de
propagation, on utilise l'option suivante :
propagation, on utilise l'option suivante :
<div lang="en-US">
```bash
@ -224,7 +224,7 @@ mount --make-unbindable /mnt/test-slave
```
</div>
Il ne sera pas possible de faire :
Il ne sera pas possible de faire :
<div lang="en-US">
```bash
@ -238,7 +238,7 @@ mount --bind /mnt/test-slave /mnt/test-unbindable
Les options que nous venons de voir s'appliquent sur un point de montage. Il
existe les mêmes options pour les appliquer en cascade sur les points d'attache
contenus dans leur sous-arbre :
contenus dans leur sous-arbre :
<div lang="en-US">
```bash
@ -253,7 +253,7 @@ mount --make-runbindable mountpoint
## Montage miroir de dossiers et de fichiers
Il n'est pas nécessaire que le point d'accroche que l'on cherche à dupliquer
pointe sur un point de montage (c'est-à-dire, dans la plupart des cas : une
pointe sur un point de montage (c'est-à-dire, dans la plupart des cas : une
partition ou un système de fichiers virtuel). Il peut parfaitement pointer sur
un dossier, et même sur un simple fichier, à la manière d'un *hardlink*, mais
que l'on pourrait faire entre plusieurs partitions et qui ne persisterait pas
@ -272,7 +272,7 @@ faire même si un fichier est en cours d'utilisation. Il faut cependant veiller
à ce que les programmes susceptibles d'aller chercher un fichier à l'ancien
emplacement soient prévenus du changement.
Pour déplacer un point de montage, on utilise l'option `--move` de `mount(8)` :
Pour déplacer un point de montage, on utilise l'option `--move` de `mount(8)` :
<div lang="en-US">
```bash
@ -280,7 +280,7 @@ mount --move olddir newdir
```
</div>
Par exemple :
Par exemple :
<div lang="en-US">
```bash
@ -289,7 +289,7 @@ mount --move /dev /newroot/dev
</div>
Cette possibilité s'emploie notamment lorsque l'on souhaite changer la racine
de notre système de fichiers : par exemple pour passer de l'*initramfs* au
de notre système de fichiers : par exemple pour passer de l'*initramfs* au
système démarré, de notre système hôte au système d'un conteneur, ...
@ -299,6 +299,6 @@ Voici quelques articles qui valent le détour, en lien avec les points de
montage :
* [Shared subtree](https://lwn.net/Articles/159077) (<https://lwn.net/Articles/159077>) et la
[documentation du noyau associée](https://kernel.org/doc/Documentation/filesystems/sharedsubtree.txt) (<https://kernel.org/doc/Documentation/filesystems/sharedsubtree.txt>) ;
* [Mount namespaces and shared subtrees](https://lwn.net/Articles/689856) : <https://lwn.net/Articles/689856> ;
[documentation du noyau associée](https://kernel.org/doc/Documentation/filesystems/sharedsubtree.txt) (<https://kernel.org/doc/Documentation/filesystems/sharedsubtree.txt>) ;
* [Mount namespaces and shared subtrees](https://lwn.net/Articles/689856) : <https://lwn.net/Articles/689856> ;
* [Mount namespaces, mount propagation, and unbindable mounts](https://lwn.net/Articles/690679) : <https://lwn.net/Articles/690679>.

View file

@ -63,7 +63,7 @@ des interfaces :
Cette commande ne nous montre que l'interface de *loopback*, car nous n'avons
pour l'instant pas encore attaché la moindre interface.
D'ailleurs, cette interface est rapportée comme étant désactivée, activons-là
D'ailleurs, cette interface est rapportée comme étant désactivée, activons-la
via la commande :
<div lang="en-US">
@ -72,7 +72,7 @@ via la commande :
```
</div>
À ce stade, nous pouvons déjà commencer à lancer un `ping` sur cette interface:
À ce stade, nous pouvons déjà commencer à lancer un `ping` sur cette interface :
<div lang="en-US">
```

View file

@ -91,7 +91,7 @@ de noms.
[^PR_SET_CHILD_SUBREAPER]: en réalité, ce comportement est lié à la propriété
`PR_SET_CHILD_SUBREAPER`, qui peut être définie pour n'importe quel processus
de l'arborescence. Le processus au PID 1 hérite forcément de cette propriété\ ;
il va donc récupérer tous les orphelins, si aucun de leurs parents n'ont la
il va donc récupérer tous les orphelins, si aucun de leurs parents n'a la
propriété définie.
Lorsque l'on lance un processus via `nsenter(1)` ou `setns(2)`, cela crée un

View file

@ -11,7 +11,7 @@ symbolique, représentant l'espace de nom.
#### Voir les *namespace*s d'un processus
Chaque processus lancé est rattaché à une liste d'espaces de nom, y compris
s'il est issu du système de base (« l'hôte »).
s'il est issu du système de base (« l'hôte »).
Nous pouvons dès lors consulter le dossier `/proc/<PID>/ns/` de chaque
processus, pour consulter les différents espaces de nom de nos processus.

View file

@ -3,7 +3,7 @@
#### Noyau Linux
Pour pouvoir suivre les exercices ci-après, vous devez disposez d'un noyau
Pour pouvoir suivre les exercices ci-après, vous devez disposer d'un noyau
Linux, idéalement dans sa version 5.6 ou mieux. Il doit de plus être compilé
avec les options suivantes (lorsqu'elles sont disponibles pour votre version) :