zoukankan      html  css  js  c++  java
  • 浅谈 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

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

  • 相关阅读:
    Java中使用CyclicBarrier
    Java中CountDownLatch使用初步
    设计模式简介
    Java中byte[]和char[]互相转换
    Java转换byte[]数组、Hex十六进制字符串
    TextBox自定义控件
    DataTrigger 绑定枚举
    WPF路径动画(动态逆向动画)
    github上传
    利用Canvas进行绘制XY坐标系
  • 原文地址:https://www.cnblogs.com/lizhewei/p/12532958.html
Copyright © 2011-2022 走看看