命名空间是什么
对内核资源进行分区,为进程隔离提供支持。
命名空间类型
Namespace | CloneFlag | Version | Year |
---|---|---|---|
Mount (mnt) | CLONE_NEWNS | 2.4.19 | 2002 |
UTS | CLONE_NEWUTS | 2.6.19 | 2006 |
Inter-process Communication (ipc) | CLONE_NEWIPC | 2.6.19 | 2006 |
Process ID (pid) | CLONE_NEWPID | 2.6.24 | 2008 |
Network (net) | CLONE_NEWNET | 2.6.29 | 2009 |
User ID (user) | CLONE_NEWUSER | 3.8 | 2013 |
Control group (cgroup) | CLONE_NEWCGROUP | 4.6 | 2016 |
Time | CLONE_NEWTIME | 5.6 | 2020 |
Mount
挂载点可以在不同命名空间之间共享。
UTS
UNIX Time-Sharing
不知道为什么叫这个名字。作用是隔离主机名和域名。
IPC
不同 IPC 命名空间的进程不能通过 shm
系列方法共享内存。
PID
Network
每个网络命名空间都有一组自己的网络资源,包括 IP 地址、路由表、套接字列表、连接跟踪表、防火墙等等。
User
主要作用是权限的隔离。
Cgroup
进程控制组。
Time
时间的隔离。
系统调用
- clone
- unshare
- setns