Update 2018

This commit is contained in:
nemunaire 2018-11-06 14:44:59 +01:00
commit 5b03f090fe
10 changed files with 64 additions and 64 deletions

View file

@ -19,7 +19,7 @@ ne sont pas encore *containerisables* :
[le document fondateur](https://www.kernel.org/doc/ols/2006/ols2006v1-pages-101-112.pdf)
parle ainsi d'isoler les périphériques, ou encore l'horloge. Pour ce
dernier,
[un patch a même déjà été proposé](https://lwn.net/Articles/179825/).
[un patch a même déjà été proposé](https://lwn.net/Articles/766089/).
### L'espace de noms `mount` {#mount-ns}
@ -194,17 +194,17 @@ similaire à :
<div lang="en-US">
```c
#include <sched.h>
#include <sched.h>
#define STACKSIZE (1024*1024)
static char child_stack[STACKSIZE];
#define STACKSIZE (1024*1024)
static char child_stack[STACKSIZE];
int clone_flags = CLONE_CGROUP | CLONE_NEWNET | SIGCHLD;
int clone_flags = CLONE_CGROUP | CLONE_NEWNET | SIGCHLD;
pid_t pid = clone(do_execvp,
child_stack + STACKSIZE,
clone_flags,
&args);
pid_t pid = clone(do_execvp,
child_stack + STACKSIZE,
clone_flags,
&args);
```
</div>
@ -220,33 +220,33 @@ auquel on passe le *file descriptor* d'un des liens du dossier
<div lang="en-US">
```c
#define _GNU_SOURCE
#include <fcntl.h>
#include <sched.h>
#include <stdlib.h>
#define _GNU_SOURCE
#include <fcntl.h>
#include <sched.h>
#include <stdlib.h>
// ./a.out /proc/PID/ns/FILE cmd args...
// ./a.out /proc/PID/ns/FILE cmd args...
int main(int argc, char *argv[])
{
int fd = open(argv[1], O_RDONLY);
if (fd == -1)
{
perror("open");
int main(int argc, char *argv[])
{
int fd = open(argv[1], O_RDONLY);
if (fd == -1)
{
perror("open");
return EXIT_FAILURE;
}
if (setns(fd, 0) == -1)
{
perror("setns");
return EXIT_FAILURE;
}
execvp(argv[2], &argv[2]);
perror("execve");
return EXIT_FAILURE;
}
if (setns(fd, 0) == -1)
{
perror("setns");
return EXIT_FAILURE;
}
execvp(argv[2], &argv[2]);
perror("execve");
return EXIT_FAILURE;
}
}
```
</div>
@ -254,7 +254,7 @@ Dans un shell, on utilisera la commande `nsenter(1)` :
<div lang="en-US">
```shell
42sh# nsenter --uts=/proc/42/ns/uts /bin/bash
42sh# nsenter --uts=/proc/42/ns/uts /bin/bash
```
</div>
@ -276,8 +276,8 @@ persister après le dernier processus), on peut utiliser un `mount bind` :
<div lang="en-US">
```shell
42sh# touch /tmp/ns/myrefns
42sh# mount --bind /proc/<PID>/ns/mount /tmp/ns/myrefns
42sh# touch /tmp/ns/myrefns
42sh# mount --bind /proc/<PID>/ns/mount /tmp/ns/myrefns
```
</div>