Linux课堂笔记 | 进程2——命名空间

Linux 容器技术(Linux Containers,LXC)

Linux 操作系统上提供的一种操作系统级虚拟化 (Operating-system-level virtualization)技术
允许在同一 Linux 内核的基础上对不同进程族的环 境进行划分和隔离。
容器技术使用 Linux 内核提供的 namespace 机制隔离应用环境,同时使用 cgroups 机制限制进程资源
Docker 是 Docker.Inc 发布的一款开源 Linux 容器引 擎,与2013年3月首次发布

Linux cgroups 机制

cgroups 最早在2006年开始由 Google 的工程师发起, 并在2008年1月首次合并到 Linux 主线内核版本 2.6.14
目的:为加入控制组的进程提供资源的限制和审计
- 这里的”资源”包括进程所使用的 CPU,内存,磁盘 I/O 和网络

Linux 将 cgroup 实现为一个文件系统,通常位于 /sys/fs/cgroup 下

  • 目录下包含 cpu,memory,devices 等资源
  • 可以在相应资源下创建分组写入资源限制
  • 然后将进程加入分组来对进程资源进行控制。

支持

在编译时启用
-逐一指定需要支持的命名空间
-一般性支持总是会编译到内核中

默认命名空间
-没有显式指定的话,则每个进程关联到一个默 认的命名空间

创建

创建新进程
- Flag:与父进程共享命名空间 or 建立新命名空间

unshare系统调用
- 分离进程上下文中与其他进程共享的部分,包 括命名空间

实现

命名空间的实现需要两个部分
- 内核子系统命名空间 :将此前所有的全局组件包装到命名空间中
- 关联 : 将给定进程关联到所属各个命名空间

nsproxy

struct nsproxy
用于汇集指向特定于子系统的命名空间包装器的指针
这里写图片描述

这里写图片描述
通过pid 和task_struct互推

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值