• 浅谈 Linux namespace


    Linux Namespace提供了一种内核级别隔离系统资源的方法,通过将系统的全局资源放在不同的Namespace中,来实现资源隔离的目的。不同Namespace的程序,可以享有一份独立的系统资源。目前Linux中提供了六类系统资源的隔离机制,分别是:

    namespace 系统调用参数 隔离内容
    UTS CLONE_NEWUTS 主机名与域名
    IPC CLONE_NEWIPC 信号量、消息队列和共享内存
    PID CLONE_NEWPID 进程编号
    Network CLONE_NEWNET 网络设备、网络栈、端口等等
    Mount CLONE_NEWNS 挂载点(文件系统)
    User CLONE_NEWUSER 用户和用户组
    • Mount: 隔离文件系统挂载点
    • UTS: 隔离主机名和域名信息
    • IPC: 隔离进程间通信
    • PID: 隔离进程的ID
    • Network: 隔离网络资源
    • User: 隔离用户和用户组的ID

    本文所讨论的 namespace 实现针对的均是 Linux 内核 3.8 及其以后的版本。

    Namespace的使用

    涉及到Namespace的操作接口包括clone()setns()unshare()以及还有/proc下的部分文件。

    为了使用特定的Namespace,在使用这些接口的时候需要指定以下一个或多个参数:

    • CLONE_NEWNS: 用于指定Mount Namespace
    • CLONE_NEWUTS: 用于指定UTS Namespace
    • CLONE_NEWIPC: 用于指定IPC Namespace
    • CLONE_NEWPID: 用于指定PID Namespace
    • CLONE_NEWNET: 用于指定Network Namespace
    • CLONE_NEWUSER: 用于指定User Namespace

    下面简单概述一下这几个接口的用法。

  • 相关阅读:
    树的可视化
    图的可视化
    1+1=2
    用xapian来做索引
    学习的快乐
    项目小结
    z=sin(xy)
    Min Stack
    互联网公司的文化
    为什么要读数学书
  • 原文地址:https://www.cnblogs.com/lizhewei/p/12532958.html
Copyright © 2020-2023  润新知