pid namespace 用於隔離進程,意思就是可以用 pid namespace 對進程進行分組管理,那麼不同的進程就可以被放入不同的 namespace 分組中去。linux 系統啟動後,默認創建了第一個 namespace,此時的所有進程都位於在這個 namespace 中,所以 ps 命令才能夠查看到所有的進程。
pid namespace 是有父子嵌套關係的,當我們創建一個新的子進程的時候,完全可以同時為這個子進程分配一個新的 namespace,這個時候就會出現父子進程在不同的 namespace 中,但兩個 namespace 也是父子的嵌套關係。大概是如下這樣的一個關係: