\newpage

Comparaison de *namespace*
==========================

Les *namespaces* d'un programme sont exposés sous forme de liens symboliques
dans le répertoire `/proc/<PID>/ns/`.

Deux programmes qui partagent un même *namespace* auront un lien vers la même
structure de données.

Écrivons un script ou un programme, `cmpns`, permettant de déterminer si deux
programmes s'exécutent dans les mêmes *namespaces*.


Exemples   {.unnumbered}
--------

<div lang="en-US">
```sh
42sh$ ./cmpns $(pgrep influxdb) $(pgrep init)
  - cgroup: differ
  - ipc: differ
  - mnt: differ
  - net: differ
  - pid: differ
  - user: same
  - uts: same
```
</div>

<div lang="en-US">
```sh
42sh$ ./cmpns $(pgrep init) self
  - cgroup: same
  - ipc: same
  - mnt: same
  - net: same
  - pid: same
  - user: same
  - uts: same
```
</div>

Ici, `self` fait référence au processus actuellement exécuté.

Et pourquoi pas :

<div lang="en-US">
```sh
42sh$ unshare -m ./cmpns $$ self
  - cgroup: same
  - ipc: same
  - mnt: differ
  - net: same
  - pid: same
  - user: same
  - uts: same
```
</div>
