namespace技术有6种。namespace,在Linux 内核4.6之后又添加了Cgroup这namespace,5.6 之后又添加了时钟namespace。
这里有个小细节,表格创建Mount Namespace的系统调用参数是CLONE_NEWNS,而不是CLONE_NEWMOUNT。从字面理解是创建一个命名空间的意思,这是由于历史原因导致的,因为Mount Namespace是第一个namespace,内核的开发者可能也没有预料到后续还有其它的namespace的加入,所以就先把CLONE_NEWNS给占用了。
可见,namespace的隔离其实并不充分,除了上面的隔离能力,其他的都一样。譬如,时钟在内核5.6版本之前,所有容器和操作系统都共享同一个时钟,如果修改了操作系统的时间,所有容器都时间都会变化。
namespace(中文:名字空间,别名:命名空间、名称空间)是表示着一个标识符可见范围:
一个标识符可在多个namespace中定义,它在不同namespace中的含义是互不相干的。这样,在一个新的namespace中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他namespace中。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)