pid namespace 用于隔离进程,意思就是可以用 pid namespace 对进程进行分组管理,那么不同的进程就可以被放入不同的 namespace 分组中去。linux 系统启动后,默认创建了第一个 namespace,此时的所有进程都位于在这个 namespace 中,所以 ps 命令才能够查看到所有的进程。
pid namespace 是有父子嵌套关系的,当我们创建一个新的子进程的时候,完全可以同时为这个子进程分配一个新的 namespace,这个时候就会出现父子进程在不同的 namespace 中,但两个 namespace 也是父子的嵌套关系。大概是如下这样的一个关系: