Linux namespaces

namespace 表示一种对全局资源使用的隔离方式, 同一 namespace 下的进程能看到一样的资源, 不同的 namespace 不能看到其他 namespace 的变动.
ls -l /proc/<pid>/ns/
UTS IPC PID User Net Cgroup Mount Time

  1. UTS (Unix Time Sharing) namespace
    隔离跟主机名称相关的数据, 其内容包括: hostname, domain name, OS name, OS version, kernel 版本, 处理器信息等信息. 隔离之后使用 uname 这个系统调用就返回不同的值. 参看 uname 系统条用和 Linux uname 命令

    ~$ uname --help
    Usage: uname [OPTION]...
    Print certain system information.  With no OPTION, same as -s.
    
    -a, --all                print all information, in the following order,
    except omit -p and -i if unknown:
    -s, --kernel-name        print the kernel name
    -n, --nodename           print the network node hostname
    -r, --kernel-release     print the kernel release
    -v, --kernel-version     print the kernel version
    -m, --machine            print the machine hardware name
    -p, --processor          print the processor type (non-portable)
    -i, --hardware-platform  print the hardware platform (non-portable)
    -o, --operating-system   print the operating system
        --help     display this help and exit
        --version  output version information and exit
  2. IPC
    隔离跟 IPC 相关的资源: System V IPC objects & POSIX message queue. 每个 IPC namespace 都有自己的 System V IPC identifiers 和它自己的 POSIX message queue filesystem. 系统必须设置 CONFIG_IPC_NS选项.
  3. PID
    用来隔离 PID 数字的命名空间, 不同 PID 的进程号可以重复, 新的 PID namespace 的进程号从 1 开始.
  4. User
  5. Net
  6. Time

参考:

  1. https://www.kernel.org/doc/html/latest/admin-guide/namespaces/compatibility-list.html
  2. https://windsock.io/uts-namespace/
  3. https://www.informit.com/articles/article.aspx?p=23618&seqNum=16#:~:text=The%20uname%20system%20call%20fills,h%3E%20if%20you%20use%20uname.
  4. http://www.linfo.org/uname.html
  5. https://man7.org/linux/man-pages/man7/namespaces.7.html
  6. https://man7.org/linux/man-pages/man7/pid_namespaces.7.html

标签: none

添加新评论