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

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

  • 相关阅读:
    windows update error 0x8024401c
    linux杀毒软件ClamAV的安装使用
    firewalld防火墙设置
    RPM-GPG-KEY详解
    centos修改默认启动级别
    debian9.6修改系统语言
    ubuntu18.04修改网卡名称为eth0
    Windows server 1709(不含UI)模板部署
    NVIDIA-SMI系列命令总结
    bash: lspci: command not found解决方法
  • 原文地址:https://www.cnblogs.com/lizhewei/p/12532958.html
Copyright © 2011-2022 走看看